X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=FS%2FFS%2Fcust_location.pm;h=f863b10204e078dc1891f6e5fa53b48504641094;hb=5e76ae4e7a11bd28478ed68eef8124fb7ff0767c;hp=a3d5bcb3ecf0376ed5f96e2d2ec78c56f3f8244f;hpb=f5d62095722c3756c897db1903bddb1a9aad3a06;p=freeside.git diff --git a/FS/FS/cust_location.pm b/FS/FS/cust_location.pm index a3d5bcb3e..f863b1020 100644 --- a/FS/FS/cust_location.pm +++ b/FS/FS/cust_location.pm @@ -76,6 +76,10 @@ Country (see L) Geocode +=item district + +Tax district code (optional) + =item disabled Disabled flag; set to 'Y' to disable the location. @@ -102,6 +106,26 @@ sub table { 'cust_location'; } Adds this record to the database. If there is an error, returns the error, otherwise returns false. +=cut + +sub insert { + my $self = shift; + my $error = $self->SUPER::insert(@_); + + #false laziness with cust_main, will go away eventually + my $conf = new FS::Conf; + if ( !$error and $conf->config('tax_district_method') ) { + + my $queue = new FS::queue { + 'job' => 'FS::geocode_Mixin::process_district_update' + }; + $error = $queue->insert( ref($self), $self->locationnum ); + + } + + $error || ''; +} + =item delete Delete this record from the database. @@ -111,6 +135,30 @@ Delete this record from the database. Replaces the OLD_RECORD with this one in the database. If there is an error, returns the error, otherwise returns false. +=cut + +sub replace { + my $self = shift; + my $old = shift; + $old ||= $self->replace_old; + my $error = $self->SUPER::replace($old); + + #false laziness with cust_main, will go away eventually + my $conf = new FS::Conf; + if ( !$error and $conf->config('tax_district_method') + and $self->get('address1') ne $old->get('address1') ) { + + my $queue = new FS::queue { + 'job' => 'FS::geocode_Mixin::process_district_update' + }; + $error = $queue->insert( ref($self), $self->locationnum ); + + } + + $error || ''; +} + + =item check Checks all fields to make sure this is a valid location. If there is @@ -142,6 +190,7 @@ sub check { || $self->ut_textn('location_number') || $self->ut_enum('location_kind', [ '', 'R', 'B' ] ) || $self->ut_alphan('geocode') + || $self->ut_alphan('district') ; return $error if $error;