[freeside-commits] freeside/httemplate/edit cust_main_county-expand.cgi, 1.11, 1.12 cust_main_county.html, NONE, 1.1

Ivan,,, ivan at wavetail.420.am
Thu Jan 3 18:42:09 PST 2008


Update of /home/cvs/cvsroot/freeside/httemplate/edit
In directory wavetail:/tmp/cvs-serv10501/httemplate/edit

Modified Files:
	cust_main_county-expand.cgi 
Added Files:
	cust_main_county.html 
Log Message:
new tax rate editor

--- NEW FILE: cust_main_county.html ---
<% include('elements/edit.html',
     'popup'  => 1,
     'name'   => 'Tax rate', #Edit tax rate
     'table'  => 'cust_main_county',
     'labels' => { 'taxnum'   => 'Tax',
                   'country'  => 'Country',
                   'state'    => 'State',
                   'county'   => 'County',
                   'taxclass' => 'Tax class',
                   'taxname'  => 'Tax name',
                   'tax'      => 'Tax rate',
                   'setuptax' => 'This tax not applicable to setup fees',
                   'recurtax' => 'This tax not applicable to recurring fees',
                   'exempt_amount' => 'Monthly exemption per customer ($25 "Texas tax")',
                 },
     'fields' => \@fields,
   )
%>
<%once>

my $conf = new FS::Conf;

</%once>

<%init>

die "access denied"
  unless $FS::CurrentUser::CurrentUser->access_right('Configuration');

my $taxnum;
if ( $cgi->param('error') ) {
  $cgi->param('taxnum') =~ /^(\d+)$/ or die 'error, but no taxnum';
  $taxnum = $1;
} else {
  my($query) = $cgi->keywords;
  $query =~ /^(\d+)$/ or die 'no taxnum';
  $taxnum = $1;
}

my $cust_main_county = qsearchs('cust_main_county', { 'taxnum' => $taxnum })
  or die "unknown taxnum $1";

my @fields = (
  { field=>'country',  type=>'fixed-country', },
  { field=>'state',    type=>'fixed-state', },
  { field=>'county',   type=>'fixed', },
);

push @fields, { field=>'taxclass', type=>'fixed', }
  if $conf->exists('enable_taxclasses');

push @fields,
  'taxname',
  { field=>'tax',      type=>'percentage', },

  { type=>'tablebreak-tr-title', value=>'Exemptions' },
  { field=>'setuptax', type=>'checkbox', value=>'Y', },
  { field=>'recurtax', type=>'checkbox', value=>'Y', },
  { field=>'exempt_amount', type=>'money', },
;

</%init>

Index: cust_main_county-expand.cgi
===================================================================
RCS file: /home/cvs/cvsroot/freeside/httemplate/edit/cust_main_county-expand.cgi,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- cust_main_county-expand.cgi	27 Dec 2006 03:29:29 -0000	1.11
+++ cust_main_county-expand.cgi	4 Jan 2008 02:42:07 -0000	1.12
@@ -1,59 +1,65 @@
-<!-- mason kludge -->
-%
-%
-%my($taxnum, $delim, $expansion, $taxclass );
-%my($query) = $cgi->keywords;
-%if ( $cgi->param('error') ) {
-%  $taxnum = $cgi->param('taxnum');
-%  $delim = $cgi->param('delim');
-%  $expansion = $cgi->param('expansion');
-%  $taxclass = $cgi->param('taxclass');
-%} else {
-%  $query =~ /^(taxclass)?(\d+)$/
-%    or die "Illegal taxnum (query $query)";
-%  $taxclass = $1 ? 'taxclass' : '';
-%  $taxnum = $2;
-%  $delim = 'n';
-%  $expansion = '';
-%}
-%
-%my $cust_main_county = qsearchs('cust_main_county',{'taxnum'=>$taxnum})
-%  or die "cust_main_county.taxnum $taxnum not found";
-%if ( $taxclass ) {
-%  die "Can't expand entry!" if $cust_main_county->getfield('taxclass');
-%} else {
-%  die "Can't expand entry!" if $cust_main_county->getfield('county');
-%}
-%
-%my $p1 = popurl(1);
-%print header("Tax Rate (expand)", menubar(
-%  'Main Menu' => popurl(2),
-%));
-%
-%print qq!<FONT SIZE="+1" COLOR="#ff0000">Error: !, $cgi->param('error'),
-%      "</FONT>"
-%  if $cgi->param('error');
-%
-%print <<END;
-%    <FORM ACTION="${p1}process/cust_main_county-expand.cgi" METHOD=POST>
-%      <INPUT TYPE="hidden" NAME="taxnum" VALUE="$taxnum">
-%      <INPUT TYPE="hidden" NAME="taxclass" VALUE="$taxclass">
-%      Separate by
-%END
-%print '<INPUT TYPE="radio" NAME="delim" VALUE="n"';
-%print ' CHECKED' if $delim eq 'n';
-%print '>line (broken on some browsers) or',
-%      '<INPUT TYPE="radio" NAME="delim" VALUE="s"';
-%print ' CHECKED' if $delim eq 's';
-%print '>whitespace.';
-%print <<END;
-%      <BR><INPUT TYPE="submit" VALUE="Submit">
-%      <BR><TEXTAREA NAME="expansion" ROWS=100>$expansion</TEXTAREA>
-%    </FORM>
-%    </CENTER>
-%  </BODY>
-%</HTML>
-%END
-%
-%
+<% include('/elements/header-popup.html', "Enter $title") %>
+
+<% include('/elements/error.html') %>
 
+<FORM ACTION="<% $p1 %>process/cust_main_county-expand.cgi" METHOD=POST>
+
+<INPUT TYPE="hidden" NAME="taxnum" VALUE="<% $taxnum %>">
+<INPUT TYPE="hidden" NAME="taxclass" VALUE="<% $taxclass |h %>">
+
+<TEXTAREA NAME="expansion" COLS="50" ROWS="16"><% $expansion |h %></TEXTAREA>
+
+<BR>
+<INPUT TYPE="submit" VALUE="Add <% $title %>">
+
+</FORM>
+</BODY>
+</HTML>
+
+<%init>
+
+my($taxnum, $expansion, $taxclass);
+my($query) = $cgi->keywords;
+if ( $cgi->param('error') ) {
+  $taxnum = $cgi->param('taxnum');
+  $expansion = $cgi->param('expansion');
+  $taxclass = $cgi->param('taxclass');
+} else {
+  $query =~ /^(taxclass)?(\d+)$/
+    or die "Illegal taxnum (query $query)";
+  $taxclass = $1 ? 'taxclass' : '';
+  $taxnum = $2;
+  $expansion = '';
+}
+
+my $cust_main_county = qsearchs('cust_main_county',{'taxnum'=>$taxnum})
+  or die "cust_main_county.taxnum $taxnum not found";
+
+my $title;
+if ( $taxclass ) {
+  die "Can't expand entry!" if $cust_main_county->taxclass;
+
+  $title = 'Tax Classes';
+
+  # prepopuplate with other tax classes... which should really have a primary
+  #  key of their own... also this could be more efficient in the error case...
+  my $sth = dbh->prepare("SELECT DISTINCT taxclass FROM cust_main_county")
+    or die dbh->errstr;
+  $sth->execute or die $sth->errstr;
+  my %taxclasses = map { $_->[0] => 1 } @{$sth->fetchall_arrayref};
+  $expansion ||= join("\n", grep $_, keys %taxclasses );
+  
+} else {
+  die "Can't expand entry!" if $cust_main_county->county;
+
+  if ( $cust_main_county->state ) {
+    $title = 'Counties';
+  } else {
+    $title = 'States/Provinces';
+  }
+
+}
+
+my $p1 = popurl(1);
+
+</%init>



More information about the freeside-commits mailing list