From: Mitch Jackson Date: Sun, 5 May 2019 01:53:28 +0000 (-0400) Subject: RT# 83122 Move wa_tax_rate_update for dist X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=690d877102bcbddb20806995c549ed35b7b36647;ds=sidebyside RT# 83122 Move wa_tax_rate_update for dist --- diff --git a/FS/FS/Misc/Geo.pm b/FS/FS/Misc/Geo.pm index 2e44364f2..bc020a22d 100644 --- a/FS/FS/Misc/Geo.pm +++ b/FS/FS/Misc/Geo.pm @@ -159,8 +159,8 @@ L from +the Washington State Department of Revenue website. + +Creates, or updates, a L row for every tax district +in Washington state. Some cities have different tax rates based on the +address, within the city. Because of this, some cities have +district. + +If tax classes are enabled, a row is created in every tax class for +every district. + +Customer addresses aren't classified into districts here. Instead, +when a Washington state address is inserted or changed in L, +a job is queued for FS::geocode_Mixin::process_district_update, to ask the +Washington state API which tax district to use for this address. + +Options: + + -f : Skip downloading, and process the given excel file + + -t : Updated or created records will be set to the given tax name. + If not specified, conf value 'tax_district_taxname' will be used + + -y : Specify year for tax table - defaults to current year + + -q : Specify quarter for tax table - defaults to current quarter + + -l : Attempt to look up the tax district classification for + unclassified cust_location records in Washington. Will + notify of records that cannot be classified + +=head1 Washington State Department of Revenue Resources + +The state of Washington makes data files available via their public website. +It's possible the availability or format of these files may change. As of now, +the only data file that contains both city and county names is published in +XLSX format. + +=item WA Dept of Revenue + +https://dor.wa.gov + +=item Data file downloads + +https://dor.wa.gov/find-taxes-rates/sales-and-use-tax-rates/downloadable-database + +=item XLSX file example + +https://dor.wa.gov/sites/default/files/legacy/Docs/forms/ExcsTx/LocSalUseTx/ExcelLocalSlsUserates_19_Q1.xlsx + +=item CSV file example + +https://dor.wa.gov/sites/default/files/legacy/downloads/Add_DataRates2018Q4.zip + + +=item Address lookup API tool + +http://webgis.dor.wa.gov/webapi/AddressRates.aspx?output=xml&addr=410 Terry Ave. North&city=&zip=98100 + +=cut + +use strict; +use warnings; + +our $VERSION = '0.02'; # Make Getopt:Std happy + +use Getopt::Std; + +use FS::Cron::tax_rate_update qw( + wa_sales_update_tax_table + wa_sales_log_customer_without_tax_district +); +use FS::Log; +use FS::UID qw(adminsuidsetup); + +my %opts; +getopts( 't:y:q:f:l', \%opts ); + +my $user = shift + or die HELP_MESSAGE(); + +adminsuidsetup( $user ) + or die "bad username '$user'\n"; + +my $log = FS::Log->new('wa_tax_rate_update'); + +$log->info('Begin wa_tax_rate_update'); + +{ + local $@; + eval { + wa_sales_update_tax_table({ + $opts{f} ? ( filename => $opts{f} ) : (), + $opts{t} ? ( taxname => $opts{t} ) : (), + $opts{y} ? ( year => $opts{y} ) : (), + $opts{q} ? ( quarter => $opts{q} ) : (), + }); + }; + + if ( $@ ) { + $log->error( "Error: $@" ); + warn "Error: $@\n"; + } else { + $log->info( 'Finished wa_tax_rate_update' ); + warn "Finished wa_tax_rate_update\n"; + } +} + + +if ( $opts{l} ) { + $log->info( 'Begin wa_sales_log_customer_without_tax_district' ); + + wa_sales_log_customer_without_tax_district(); + + $log->info( 'Finished wa_sales_log_customer_without_tax_district' ); + warn "Finished wa_sales_log_customer_without_tax_district\n"; +} + +exit; + +sub HELP_MESSAGE { + print " + Tool to update city/district sales tax rates in I from + the Washington State Department of Revenue website. + + Usage: wa_tax_rate_update [-f filename] [-t taxname] [-y year] [-q quarter] [-l] freeside_username + + Optional Options: + -f filename Skip download, and process the specified filename + -t taxname Apply tax name value to created or updated records + defaults as conf value 'tax_district_taxname' + -y year Year for data file download + -q quarter Quarter of data file to download + -l lookup Try to fix cust_location records without a district + + "; + exit; +} + diff --git a/bin/wa_tax_rate_update b/bin/wa_tax_rate_update deleted file mode 100755 index ad14687c9..000000000 --- a/bin/wa_tax_rate_update +++ /dev/null @@ -1,147 +0,0 @@ -#!/usr/bin/env perl - -=head1 NAME - -wa_tax_rate_update - -=head1 DESCRIPTION - -Tool to update city/district sales tax rates in I from -the Washington State Department of Revenue website. - -Creates, or updates, a L row for every tax district -in Washington state. Some cities have different tax rates based on the -address, within the city. Because of this, some cities have -district. - -If tax classes are enabled, a row is created in every tax class for -every district. - -Customer addresses aren't classified into districts here. Instead, -when a Washington state address is inserted or changed in L, -a job is queued for FS::geocode_Mixin::process_district_update, to ask the -Washington state API which tax district to use for this address. - -Options: - - -f : Skip downloading, and process the given excel file - - -t : Updated or created records will be set to the given tax name. - If not specified, conf value 'tax_district_taxname' will be used - - -y : Specify year for tax table - defaults to current year - - -q : Specify quarter for tax table - defaults to current quarter - - -l : Attempt to look up the tax district classification for - unclassified cust_location records in Washington. Will - notify of records that cannot be classified - -=head1 Washington State Department of Revenue Resources - -The state of Washington makes data files available via their public website. -It's possible the availability or format of these files may change. As of now, -the only data file that contains both city and county names is published in -XLSX format. - -=item WA Dept of Revenue - -https://dor.wa.gov - -=item Data file downloads - -https://dor.wa.gov/find-taxes-rates/sales-and-use-tax-rates/downloadable-database - -=item XLSX file example - -https://dor.wa.gov/sites/default/files/legacy/Docs/forms/ExcsTx/LocSalUseTx/ExcelLocalSlsUserates_19_Q1.xlsx - -=item CSV file example - -https://dor.wa.gov/sites/default/files/legacy/downloads/Add_DataRates2018Q4.zip - - -=item Address lookup API tool - -http://webgis.dor.wa.gov/webapi/AddressRates.aspx?output=xml&addr=410 Terry Ave. North&city=&zip=98100 - -=cut - -use strict; -use warnings; - -our $VERSION = '0.02'; # Make Getopt:Std happy - -use Getopt::Std; - -use FS::Cron::tax_rate_update qw( - wa_sales_update_tax_table - wa_sales_log_customer_without_tax_district -); -use FS::Log; -use FS::UID qw(adminsuidsetup); - -my %opts; -getopts( 't:y:q:f:l', \%opts ); - -my $user = shift - or die HELP_MESSAGE(); - -adminsuidsetup( $user ) - or die "bad username '$user'\n"; - -my $log = FS::Log->new('wa_tax_rate_update'); - -$log->info('Begin wa_tax_rate_update'); - -{ - local $@; - eval { - wa_sales_update_tax_table({ - $opts{f} ? ( filename => $opts{f} ) : (), - $opts{t} ? ( taxname => $opts{t} ) : (), - $opts{y} ? ( year => $opts{y} ) : (), - $opts{q} ? ( quarter => $opts{q} ) : (), - }); - }; - - if ( $@ ) { - $log->error( "Error: $@" ); - warn "Error: $@\n"; - } else { - $log->info( 'Finished wa_tax_rate_update' ); - warn "Finished wa_tax_rate_update\n"; - } -} - - -if ( $opts{l} ) { - $log->info( 'Begin wa_sales_log_customer_without_tax_district' ); - - wa_sales_log_customer_without_tax_district(); - - $log->info( 'Finished wa_sales_log_customer_without_tax_district' ); - warn "Finished wa_sales_log_customer_without_tax_district\n"; -} - -exit; - -sub HELP_MESSAGE { - print " - Tool to update city/district sales tax rates in I from - the Washington State Department of Revenue website. - - Usage: wa_tax_rate_update [-f filename] [-t taxname] [-y year] [-q quarter] [-l] freeside_username - - Optional Options: - -f filename Skip download, and process the specified filename - -t taxname Apply tax name value to created or updated records - defaults as conf value 'tax_district_taxname' - -y year Year for data file download - -q quarter Quarter of data file to download - -l lookup Try to fix cust_location records without a district - - "; - exit; -} -