[freeside-commits] freeside/httemplate/browse cust_main_county.cgi, 1.20, 1.21
Ivan,,,
ivan at wavetail.420.am
Sat Oct 11 17:54:21 PDT 2008
Update of /home/cvs/cvsroot/freeside/httemplate/browse
In directory wavetail.420.am:/tmp/cvs-serv7229/browse
Modified Files:
cust_main_county.cgi
Log Message:
add a quick bulk tax add tool (eating my own dogfood instead of running a one-off SQL query), RT#4117
Index: cust_main_county.cgi
===================================================================
RCS file: /home/cvs/cvsroot/freeside/httemplate/browse/cust_main_county.cgi,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- cust_main_county.cgi 31 Mar 2008 23:09:34 -0000 1.20
+++ cust_main_county.cgi 12 Oct 2008 00:54:18 -0000 1.21
@@ -4,6 +4,8 @@
'menubar' => \@menubar,
'html_init' => $html_init,
'html_posttotal' => $html_posttotal,
+ 'html_form' => '<FORM NAME="taxesForm">',
+ 'html_foot' => $html_foot,
'query' => {
'table' => 'cust_main_county',
'hashref' => $hashref,
@@ -200,6 +202,77 @@
).
'</SELECT>)';
+my $bulk_popup_link =
+ include( '/elements/popup_link_onclick.html',
+ 'action' => "${p}edit/bulk_cust_main_county.html?MAGIC_taxnum_MAGIC",
+ 'actionlabel' => 'Bulk add new tax',
+ 'nofalse' => 1,
+ 'height' => 420,
+ #default# 'width' => 540,
+ #default# 'color' => '#333399',
+ );
+
+my $html_foot = <<END;
+<SCRIPT TYPE="text/javascript">
+
+ function setAll(setTo) {
+ theForm = document.taxesForm;
+ for (i=0,n=theForm.elements.length;i<n;i++) {
+ if (theForm.elements[i].name.indexOf("cust_main_county") != -1) {
+ theForm.elements[i].checked = setTo;
+ }
+ }
+ }
+
+ function toggleAll() {
+ theForm = document.taxesForm;
+ for (i=0,n=theForm.elements.length;i<n;i++) {
+ if (theForm.elements[i].name.indexOf("cust_main_county") != -1) {
+ if ( theForm.elements[i].checked == true ) {
+ theForm.elements[i].checked = false;
+ } else {
+ theForm.elements[i].checked = true;
+ }
+ }
+ }
+ }
+
+ function bulkPopup() {
+ var bulk_popup_link = "$bulk_popup_link";
+ var bulkstring = '';
+ theForm = document.taxesForm;
+ for (i=0,n=theForm.elements.length;i<n;i++) {
+ if ( theForm.elements[i].name.indexOf("cust_main_county") != -1
+ && theForm.elements[i].checked == true
+ ) {
+ var name = theForm.elements[i].name;
+ var taxnum = name.replace(/cust_main_county/, '');
+ if ( bulkstring != '' ) {
+ bulkstring = bulkstring + ',';
+ }
+ bulkstring = bulkstring + taxnum;
+
+ }
+ }
+ if ( bulk_popup_link.length > 1920 ) { // IE 2083 URL limit
+ alert('Too many selections'); // should do some session thing...
+ return false;
+ }
+ bulk_popup_link = bulk_popup_link.replace(/MAGIC_taxnum_MAGIC/, bulkstring);
+ eval(bulk_popup_link);
+ }
+
+</SCRIPT>
+
+<BR>
+<A HREF="javascript:setAll(true)">select all</A> |
+<A HREF="javascript:setAll(false)">unselect all</A> |
+<A HREF="javascript:toggleAll()">toggle all</A>
+<BR><BR>
+<A HREF="javascript:void(0);" onClick="bulkPopup();">Add new tax to selected</A>
+
+END
+
my $hashref = {};
my $count_query = 'SELECT COUNT(*) FROM cust_main_county';
if ( $country ) {
@@ -269,33 +342,68 @@
$align .= 'l';
}
-push @header, 'Tax name',
+push @header,
+ '', #checkbox column
+ 'Tax name',
'Rate', #'Tax',
'Exemptions',
;
-push @header2, '(printed on invoices)',
+push @header2,
+ '',
+ '(printed on invoices)',
'',
'',
;
+my $newregion = 1;
+my $cb_oldrow = '';
+my $cb_sub = sub {
+ my $cust_main_county = shift;
+
+ if ( $cb_oldrow ) {
+ if ( $cb_oldrow->country ne $cust_main_county->country
+ || $cb_oldrow->state ne $cust_main_county->state
+ || $cb_oldrow->county ne $cust_main_county->county
+ || $cb_oldrow->taxclass ne $cust_main_county->taxclass )
+ {
+ $newregion = 1;
+ } else {
+ $newregion = 0;
+ }
+
+ } else {
+ $newregion = 1;
+ }
+ $cb_oldrow = $cust_main_county;
+
+ if ( $newregion ) {
+ my $taxnum = $cust_main_county->taxnum;
+ qq!<INPUT NAME="cust_main_county$taxnum" TYPE="checkbox" VALUE="1">!;
+ } else {
+ '';
+ }
+};
+
push @fields,
+ $cb_sub,
sub { shift->taxname || 'Tax' },
sub { shift->tax. '% <FONT SIZE="-1">(edit)</FONT>' },
$exempt_sub,
;
push @color,
+ '000000',
sub { shift->taxname ? '000000' : '666666' },
sub { shift->tax ? '000000' : '666666' },
'000000',
;
-$align .= 'lrl';
+$align .= 'clrl';
my @cell_style = map $cell_style_sub, (1..scalar(@header));
-push @links, '', $edit_link, '';
-push @link_onclicks, '', $edit_onclick, '';
+push @links, '', '', $edit_link, '';
+push @link_onclicks, '', '', $edit_onclick, '';
</%init>
More information about the freeside-commits
mailing list