[freeside-devel] texas tax diff

Rick Eicher II rick at pbol.net
Thu Mar 21 12:25:02 PST 2002


Is this the correct way to submit patch?


> -----Original Message-----
> From: Rick Eicher II [mailto:rick at pbol.net]
> Sent: Monday, March 18, 2002 2:33 PM
> To: Freeside Dev
> Subject: [freeside-devel] texas tax diff
>
>
> I am sure that this is probably is not the way you would prefer this to be
> done. But I figure that since this does work you will forgive the
> method of
> posting this.
>
> Any way here it is.
>
> ##########################################################
> [root at zeppelin src]# diff -rub freeside freeside_new/
> Only in freeside_new/FS/FS: CGIwrapper.pm
> Only in freeside/FS/FS: CVS
> Only in freeside/FS/FS/UI: CVS
> diff -rub freeside/FS/FS/cust_main.pm freeside_new/FS/FS/cust_main.pm
> --- freeside/FS/FS/cust_main.pm Fri Mar  1 05:14:08 2002
> +++ freeside_new/FS/FS/cust_main.pm     Mon Mar 18 08:10:33 2002
> @@ -861,6 +861,9 @@
>    my( $total_setup, $total_recur ) = ( 0, 0 );
>    my( $taxable_setup, $taxable_recur ) = ( 0, 0 );
>    my @cust_bill_pkg = ();
> +  my $taxable_charged = 0;
> +  my $tax = 0;
> +  my $charged = 0;
>
>    foreach my $cust_pkg (
>      qsearch('cust_pkg', { 'custnum' => $self->custnum } )
> @@ -989,17 +992,7 @@
>                   && $part_pkg->recurtax =~ /^Y$/i;
>        }
>      }
> -
> -  }
> -
> -  my $charged = sprintf( "%.2f", $total_setup + $total_recur );
> -  my $taxable_charged = sprintf( "%.2f", $taxable_setup +
> $taxable_recur );
> -
> -  unless ( @cust_bill_pkg ) {
> -    $dbh->commit or die $dbh->errstr if $oldAutoCommit;
> -    return '';
> -  }
> -
> +    $taxable_charged = sprintf( "%.2f", $taxable_setup +
> $taxable_recur );
>    unless ( $self->tax =~ /Y/i
>             || $self->payby eq 'COMP'
>             || $taxable_charged == 0 ) {
> @@ -1009,10 +1002,31 @@
>          'country' => $self->country,
>      } ) or die "fatal: can't find tax rate for state/county/country ".
>                 $self->state. "/". $self->county. "/".
> $self->country. "\n";
> -    my $tax = sprintf( "%.2f",
> -      $taxable_charged * ( $cust_main_county->getfield('tax') / 100 )
> -    );
>
> +         if ( $part_pkg->dbdef_table->column('taxclass') &&
> $part_pkg->taxclass ne 'none' ){
> +           if ( $part_pkg->taxclass eq 'access' &&
> $taxable_charged > 25){
> +            $taxable_charged = $taxable_charged - 25;
> +            $tax += sprintf( "%.2f",$taxable_charged * (
> $cust_main_county->getfield('tax') / 100 ));
> +          }elsif ($part_pkg->taxclass eq 'hosting')
> +           {
> +            $taxable_charged = $taxable_charged * .80;
> +            $tax += sprintf( "%.2f",$taxable_charged * (
> $cust_main_county->getfield('tax') / 100 ));
> +          }else
> +              {
> +               $tax += sprintf("%.2f",0);
> +              }
> +      }else{
> +            $tax += sprintf( "%.2f",$taxable_charged * (
> $cust_main_county->getfield('tax') / 100 ));
> +      }
> +    }
> +  }
> +
> +  $charged = sprintf( "%.2f", $total_setup + $total_recur );
> +  $tax = sprintf( "%.2f",$tax);
> +  unless ( @cust_bill_pkg ) {
> +    $dbh->commit or die $dbh->errstr if $oldAutoCommit;
> +    return '';
> +  }
>      if ( $tax > 0 ) {
>        $charged = sprintf( "%.2f", $charged+$tax );
>
> @@ -1025,7 +1039,7 @@
>        });
>        push @cust_bill_pkg, $cust_bill_pkg;
>      }
> -  }
> +
>
>    my $cust_bill = new FS::cust_bill ( {
>      'custnum' => $self->custnum,
> diff -rub freeside/FS/FS/part_pkg.pm freeside_new/FS/FS/part_pkg.pm
> --- freeside/FS/FS/part_pkg.pm  Mon Feb 18 02:39:21 2002
> +++ freeside_new/FS/FS/part_pkg.pm      Mon Mar 18 08:10:33 2002
> @@ -59,6 +59,8 @@
>
>  =item recurtax - Recurring fee tax exempt flag, empty or `Y'
>
> +=item taxclass - Texas tax class flag, empty or `Y'
> +
>  =item plan - Price plan
>
>  =item plandata - Price plan data
> @@ -224,6 +226,7 @@
>        || $self->ut_alphan('plan')
>        || $self->ut_anything('plandata')
>        || $self->ut_enum('setuptax', [ '', 'Y' ] )
> +      || $self->ut_enum('taxclass',['none','access','hosting' ] )
>        || $self->ut_enum('recurtax', [ '', 'Y' ] )
>        || $self->ut_enum('disabled', [ '', 'Y' ] )
>      ;
> Only in freeside_new/bin: .fs-setup.swp
> diff -rub freeside/bin/fs-setup freeside_new/bin/fs-setup
> --- freeside/bin/fs-setup       Mon Mar 18 08:18:27 2002
> +++ freeside_new/bin/fs-setup   Mon Mar 18 08:08:07 2002
> @@ -656,6 +656,7 @@
>          'plan',       'varchar', 'NULL', $char_d,
>          'plandata',   'text', 'NULL', '',
>          'disabled',   'char', 'NULL', 1,
> +        'taxclass',    'varchar',   '',   $char_d,
>        ],
>        'primary_key' => 'pkgpart',
>        'unique' => [ [] ],
> @@ -956,3 +957,4 @@
>    %tables;
>
>  }
> +
> diff -rub freeside/httemplate/docs/schema.html
> freeside_new/httemplate/docs/schema.html
> --- freeside/httemplate/docs/schema.html        Thu Mar 14 06:06:14 2002
> +++ freeside_new/httemplate/docs/schema.html    Mon Mar 18 08:09:12 2002
> @@ -226,7 +226,6 @@
>          <li>plan - price plan
>          <li>plandata - additional price plan data
>          <li>disabled - Disabled flag, empty or `Y'
> -        <li>taxclass - tax class used for calculating texas tax,
> none,access,hosting
>        </ul>
>      <li><a name="part_referral"
> href="man/FS/part_referral.html">part_referral</a> - Referral listing
>        <ul>
> diff -rub freeside/httemplate/edit/part_pkg.cgi
> freeside_new/httemplate/edit/part_pkg.cgi
> --- freeside/httemplate/edit/part_pkg.cgi       Mon Feb 18 20:57:39 2002
> +++ freeside_new/httemplate/edit/part_pkg.cgi   Mon Mar 18 08:09:12 2002
> @@ -100,6 +100,26 @@
>
>  print '</TD></TR>';
>
> +print <<END;
> +<TR><TD ALIGN="right">Use Texas Tax Class</TD><TD>
> +END
> +
> +#print '<INPUT TYPE="text" NAME="taxclass">';
> +
> +print '<SELECT SIZE="1" NAME="taxclass">';
> +print '<OPTION VALUE="none"';
> +print ' SELECTED' if $hashref->{taxclass} eq "none";
> +print '>None</OPTION>';
> +print '<OPTION VALUE="access"';
> +print ' SELECTED' if $hashref->{taxclass} eq "access";
> +print '>access</OPTION>';
> +print '<OPTION VALUE="hosting"';
> +print ' SELECTED' if $hashref->{taxclass} eq "hosting";
> +print '>hosting</OPTION></SELECT>';
> +
> +print '</TD></TR>';
> +
> +
>  print '<TR><TD ALIGN="right">Disable new orders</TD><TD>';
>  print '<INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"';
>  print ' CHECKED' if $hashref->{disabled} eq "Y";
> @@ -354,7 +374,7 @@
>  }
>
>  function fixup(what) {
> -<% foreach my $f ( qw( pkg comment freq ), @fixups ) { %>
> +<% foreach my $f ( qw( pkg comment freq taxclass), @fixups ) { %>
>    what.<%= $f %>.value = document.dummy.<%= $f %>.value;
>  <% } %>
>  <% foreach my $f ( qw( setuptax recurtax disabled ) ) { %>
> @@ -395,6 +415,7 @@
>  <INPUT TYPE="hidden" NAME="freq" VALUE="<%= $hashref->{freq} %>">
>  <INPUT TYPE="hidden" NAME="setuptax" VALUE="<%= $hashref->{setuptax} %>">
>  <INPUT TYPE="hidden" NAME="recurtax" VALUE="<%= $hashref->{recurtax} %>">
> +<INPUT TYPE="hidden" NAME="taxclass" VALUE="<%= $hashref->{taxclass} %>">
>  <INPUT TYPE="hidden" NAME="disabled" VALUE="<%= $hashref->{disabled} %>">
>  <% foreach my $f ( @fixups ) { %>
>  <INPUT TYPE="hidden" NAME="<%= $f %>" VALUE="">
> Only in freeside_new/httemplate/edit: part_pkg.cgi_new
> diff -rub freeside/httemplate/edit/process/part_pkg.cgi
> freeside_new/httemplate/edit/process/part_pkg.cgi
> --- freeside/httemplate/edit/process/part_pkg.cgi       Sun Feb
> 10 07:21:31
> 2002
> +++ freeside_new/httemplate/edit/process/part_pkg.cgi   Mon Mar
> 18 08:09:12
> 2002
> @@ -1,5 +1,5 @@
>  <%
> -
> +$FS::Record::DEBUG = 1;
>  my $dbh = dbh;
>
>  my $pkgpart = $cgi->param('pkgpart');
> @@ -13,7 +13,7 @@
>    join('', map { "$_=". join(', ', $cgi->param($_)). "\n" } @plandata )
>  );
>
> -foreach (qw( setuptax recurtax disabled )) {
> +foreach (qw( setuptax recurtax diabled )) {
>    $cgi->param($_, '') unless defined $cgi->param($_);
>  }
>
> @@ -23,8 +23,8 @@
>    } fields('part_pkg')
>  } );
>
> -#warn "setuptax: ". $new->setuptax;
> -#warn "recurtax: ". $new->recurtax;
> +warn "setuptax: ". $new->setuptax;
> +warn "recurtax: ". $new->recurtax;
>
>  #most of the stuff below should move to part_pkg.pm
>
> Only in freeside_new/httemplate/edit/process: part_pkg.cgi_test
> ####################################################################
>
>
> If you prefer this done in a different way let me know. I have never done
> diff and patch. As far as the coding goes I know that this works but I am
> sure there are other ways of doing this.
>
> Rick
>
>
>
>





More information about the freeside-devel mailing list