diff options
author | jeff <jeff> | 2008-04-02 20:42:44 +0000 |
---|---|---|
committer | jeff <jeff> | 2008-04-02 20:42:44 +0000 |
commit | 37f181cc0b65e4509dd68593cb7555db42d8e088 (patch) | |
tree | eb6aea3dc3a4d79fbbb2cb549853b2d66d1300dc /httemplate/edit | |
parent | 4ddcaeadf6f2a313b37e276275a6d44a4c0d5f7d (diff) |
checkpoint tax editors and correct a blunder
Diffstat (limited to 'httemplate/edit')
-rwxr-xr-x | httemplate/edit/part_pkg.cgi | 7 | ||||
-rw-r--r-- | httemplate/edit/part_pkg_taxoverride.html | 157 | ||||
-rwxr-xr-x | httemplate/edit/process/part_pkg.cgi | 2 |
3 files changed, 115 insertions, 51 deletions
diff --git a/httemplate/edit/part_pkg.cgi b/httemplate/edit/part_pkg.cgi index 84f7498e1..2e7c732e6 100755 --- a/httemplate/edit/part_pkg.cgi +++ b/httemplate/edit/part_pkg.cgi @@ -94,13 +94,13 @@ Tax information <TD align="right">Tax product</TD> <TD> <INPUT name="part_pkg_taxproduct_taxproductnum" id="taxproductnum" type="hidden" value="<% $hashref->{'taxproductnum'}%>"> - <INPUT name="part_pkg_taxproduct_description" id="taxproduct_description" type="text" value="<% $taxproduct_description %>" size="12" onclick="overlib( OLiframeContent('part_pkg_taxproduct.html?'+document.getElementById('taxproductnum').value, 800, 400, 'tax_product_popup'), CAPTION, 'Select product', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK); return false;"> + <INPUT name="part_pkg_taxproduct_description" id="taxproduct_description" type="text" value="<% $taxproduct_description %>" size="12" onclick="overlib( OLiframeContent('part_pkg_taxproduct.html?'+document.getElementById('taxproductnum').value, 1000, 400, 'tax_product_popup'), CAPTION, 'Select product', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK); return false;"> </TD> </TR> <TR> <TD colspan="2" align="right"> <INPUT name="tax_override" id="tax_override" type="hidden" value="<% $tax_override %>"> - <A href="javascript:void(0)" onclick="overlib( OLiframeContent('part_pkg_taxoverride.html?'+document.getElementById('tax_override').value, 800, 400, 'tax_product_popup'), CAPTION, 'Edit product tax overrides', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK); return false;"> + <A href="javascript:void(0)" onclick="overlib( OLiframeContent('part_pkg_taxoverride.html?selected='+document.getElementById('tax_override').value, 1100, 600, 'tax_product_popup'), CAPTION, 'Edit product tax overrides', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK); return false;"> <% $tax_override ? 'Edit tax overrides' : 'Override taxes' %> </A> </TD> @@ -467,7 +467,8 @@ if ( $cgi->param('clone') ) { (@agent_type) = map {$_->typenum} qsearch('type_pkgs',{'pkgpart'=>$1}) unless $part_pkg; $tax_override = - join (",", map {$_->taxnum} qsearch('part_pkg_taxoverride',{'pkgpart'=>$1})) + join (",", map {$_->taxclassnum} + qsearch('part_pkg_taxoverride',{'pkgpart'=>$1})) unless $part_pkg; $part_pkg ||= qsearchs('part_pkg',{'pkgpart'=>$1}); $pkgpart = $part_pkg->pkgpart; diff --git a/httemplate/edit/part_pkg_taxoverride.html b/httemplate/edit/part_pkg_taxoverride.html index 61cca1fbc..ba709ce64 100644 --- a/httemplate/edit/part_pkg_taxoverride.html +++ b/httemplate/edit/part_pkg_taxoverride.html @@ -1,61 +1,124 @@ -<%doc> +<% include('/elements/header-popup.html', 'Override taxes', '', 'onload="resizeFrames()"') %> - The crappy version - -</%doc> -<% include('/elements/header-popup.html', 'Select tax product') %> +<TABLE WIDTH="100%" HEIGHT="100%"> + <TR><TD> + <iframe name="selected" src="<% $p %>browse/tax_class.html?_type=select;magic=select;maxrecords=15;offset=<% $selected_offset %>;selected=<% $selected %>;" width="100%" frameborder="0" border="0" id="selectorSelected" scrolling="no"> +</iframe> + <BR> + </TD></TR> + + <TR><TD> +<FORM="dummy"> + <CENTER> + <INPUT type="submit" value="Finish" onclick="s=fetchSelected(); s.shift(); parent.document.getElementById('tax_override').value=s.toString(); parent.cClick();"> + <INPUT type="reset" value="Cancel" onclick="parent.cClick();"> + </CENTER> +</FORM> + </TD></TR> + + <TR><TD> + <iframe name="unselected" src="<% $p %>browse/tax_class.html?_type=select;magic=omit;maxrecords=15;offset=<% $unselected_offset %>;omit=<% $selected %>;" width="100%" frameborder="0" border="0" id="selectorUnselected" scrolling="no"> +</iframe> + <BR> + </TD></TR> + +</TABLE> <SCRIPT> - function saveit2() { - var num = parent.document.getElementById('tax_override'); - var sel = document.getElementById('taxoverride_popup_select'); - var value = ''; - for (i=0; i< sel.length; i++) { - if (sel.options[i].selected) { - value = value + sel.options[i].value + ","; + + function resizeFrames() { + //frames['selected'].style.height = + // frames['selected'].contentWindow.document.body.scrollHeight + "px"; + //frames['unselected'].style.height = + // frames['unselected'].contentWindow.document.body.scrollHeight + "px"; + var f = document.getElementById('selectorSelected'); + f.style.height = f.contentWindow.document.body.scrollHeight + "px"; + var f = document.getElementById('selectorUnselected'); + f.style.height = f.contentWindow.document.body.scrollHeight + "px"; + } + + function fetchOffset(search) { + var value = 0; + if (search.length > 1) { + var params = search.split(';'); + for (i=0; i<params.length; i++) { + if (params[i].substr(0,7) == 'offset=') { + value = params[i].substr(7); + } + } + } + return value; + } + + function fetchOffsetStrings() { + return 'selected_offset=' + + fetchOffset(frames['selected'].location.search) + ';' + + 'unselected_offset=' + + fetchOffset(frames['unselected'].location.search) + ';'; + } + + function fetchSelected() { + var i; + var selected = new Array; + var replace = '?'; + if (window.location.search.length > 1) { + var search = window.location.search.substr(1).split(';'); + for (i=0; i<search.length; i++) { + if (search[i].substr(0,9) == 'selected=') { + selected = search[i].substr(9).split(',') + }else if (search[i].substr(0,16) == 'selected_offset=') { + }else if (search[i].substr(0,18) == 'unselected_offset=') { + }else if (search[i].length) { + replace += search[i] + ';'; + } + } + } + selected.unshift(replace); + return selected; + } + function doUnselect(classnum) { + var selected = fetchSelected(); + var search = selected.shift(); + //alert("discovered: "+selected.toString()); + var i=-1, j=-1, k=selected.length; + while(++j < k) { + if (!(selected[j]==classnum)) { + selected[++i]=selected[j]; + } } + selected.length = ++i; + //alert("finished: "+selected.toString()); + + search += "selected=" + selected.toString() + ';'; + window.location.search = search + fetchOffsetStrings(); } - if (value.length > 0) { - value = value.substr(0, value.length-1); + function doSelect(classnum) { + var selected = fetchSelected(); + var search = selected.shift(); + selected.push(classnum); + search += "selected=" + selected.toString() + ';'; + window.location.search = search + fetchOffsetStrings(); } - - num.value = value; - parent.cClick(); - } </SCRIPT> -<FORM="dummy" METHOD="POST" onsubmit="saveit2();return false;" > - -<% ntable("#cccccc", 2) %> -<TR> - <TD align="left">Tax override</TD> - <TD> - <% include( '/elements/select-table.html', - 'table' => 'tax_rate', - 'name_col' => 'taxname', - 'curr_value' => \@curr_value, - 'element_etc' => "id='taxoverride_popup_select'", - 'multiple' => '1', - ) - %> - </TD> -</TR> -</TABLE> -<BR><BR> -<CENTER><INPUT type="submit" value="Select"></CENTER> -</FORM> + <% include('/elements/footer.html') %> +<%once> + +my $conf = new FS::Conf; +</%once> <%init> -my $conf = new FS::Conf; +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); + + +my $selected_offset = $1 + if $cgi->param('selected_offset') =~/^(\d+)$/; -my @curr_value; -my ( $query ) = $cgi->keywords; -$query =~ /^([\d,]+)$/; -push @curr_value, split ',', $1 - if $1; +my $unselected_offset = $1 + if $cgi->param('unselected_offset') =~/^(\d+)$/; -unless (scalar(@curr_value)) { - #push @curr_value, map {$_=>taxnum} $part_pkg->tax_rate; -} +my $selected = $1 + if $cgi->param('selected') =~/^([,\d]+)$/; </%init> diff --git a/httemplate/edit/process/part_pkg.cgi b/httemplate/edit/process/part_pkg.cgi index eac20af57..94bff0fbb 100755 --- a/httemplate/edit/process/part_pkg.cgi +++ b/httemplate/edit/process/part_pkg.cgi @@ -116,7 +116,7 @@ unless ( $error || $conf->exists('agent_defaultpkg') ) { unless ( $error ) { $error = $new->process_m2m( 'link_table' => 'part_pkg_taxoverride', - 'target_table' => 'tax_rate', + 'target_table' => 'tax_class', 'params' => \@tax_overrides, ); } |