diff options
author | ivan <ivan> | 2007-11-29 23:51:37 +0000 |
---|---|---|
committer | ivan <ivan> | 2007-11-29 23:51:37 +0000 |
commit | 49d37cfcbe366b28de81944ebe28e4f768942ec1 (patch) | |
tree | 7ab54036b1475cc5f160e95085408900dc83e27b | |
parent | 562f095ef72c0b610906bc6b80a58a01afcabb12 (diff) |
fix dates going all wacky on errors, when you're asked to confirm a date move into the past
-rwxr-xr-x | httemplate/edit/REAL_cust_pkg.cgi | 284 | ||||
-rwxr-xr-x | httemplate/edit/process/REAL_cust_pkg.cgi | 5 |
2 files changed, 126 insertions, 163 deletions
diff --git a/httemplate/edit/REAL_cust_pkg.cgi b/httemplate/edit/REAL_cust_pkg.cgi index 99a3f3098..fe6984673 100755 --- a/httemplate/edit/REAL_cust_pkg.cgi +++ b/httemplate/edit/REAL_cust_pkg.cgi @@ -1,77 +1,9 @@ -% -% -%my $error =''; -%my $pkgnum = ''; -%my($susp,$adjourn,$cancel,$expire, $pkg, $comment, $setup, $bill, $otaker); -% -%my( $cust_pkg, $part_pkg ); -% -%if ( $cgi->param('error') ) { -% $error = $cgi->param('error'); -% $pkgnum = $cgi->param('pkgnum'); -% if ( $error eq '_bill_areyousure' ) { -% my $bill = $cgi->param('bill'); -% $error = "You are attempting to set the next bill date to $bill, which is -% in the past. This will charge the customer for the interval -% from $bill until now. Are you sure you want to do this? ". -% '<INPUT TYPE="checkbox" NAME="bill_areyousure" VALUE="1">'; -% } -% -% $susp = $cgi->param('susp'); -% $adjourn = $cgi->param('adjourn'); -% $cancel = $cgi->param('cancel'); -% $expire = $cgi->param('expire'); -% $pkg = $cgi->param('pkg'); -% $comment = $cgi->param('comment'); -% $setup = $cgi->param('setup'); -% $bill = $cgi->param('bill'); -% $otaker = $cgi->param('otaker'); -% -% #get package record -% $cust_pkg = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum}); -% die "No package!" unless $cust_pkg; -% $part_pkg = qsearchs('part_pkg',{'pkgpart'=>$cust_pkg->getfield('pkgpart')}); -% -%} else { -% my($query) = $cgi->keywords; -% $query =~ /^(\d+)$/ or die "no pkgnum"; -% $pkgnum = $1; -% -% #get package record -% $cust_pkg = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum}); -% die "No package!" unless $cust_pkg; -% $part_pkg = qsearchs('part_pkg',{'pkgpart'=>$cust_pkg->getfield('pkgpart')}); -% -% ($susp,$adjourn,$cancel,$expire)=( -% $cust_pkg->getfield('susp'), -% $cust_pkg->getfield('adjourn'), -% $cust_pkg->getfield('cancel'), -% $cust_pkg->getfield('expire'), -% ); -% ($pkg,$comment)=($part_pkg->getfield('pkg'),$part_pkg->getfield('comment')); -% ($setup,$bill)=($cust_pkg->getfield('setup'),$cust_pkg->getfield('bill')); -% $otaker = $cust_pkg->getfield('otaker'); -%} -% -%if ( $error ) { -% #$cust_pkg->$_(str2time($cgi->param($_)) foreach qw(setup bill); -% $cust_pkg->setup(str2time($cgi->param('setup'))); -% $cust_pkg->bill(str2time($cgi->param('bill'))); -% $cust_pkg->last_bill(str2time($cgi->param('last_bill'))); -%} -% -%#my $custnum = $cust_pkg->getfield('custnum'); -% - - <% include("/elements/header.html",'Customer package - Edit dates') %> -% + %#, menubar( %# "View this customer (#$custnum)" => popurl(2). "view/cust_main.cgi?$custnum", %# 'Main Menu' => popurl(2) %#)); -% - <LINK REL="stylesheet" TYPE="text/css" HREF="../elements/calendar-win2k-2.css" TITLE="win2k-2"> <SCRIPT TYPE="text/javascript" SRC="../elements/calendar_stripped.js"></SCRIPT> @@ -80,130 +12,166 @@ <FORM NAME="formname" ACTION="process/REAL_cust_pkg.cgi" METHOD="POST"> <INPUT TYPE="hidden" NAME="pkgnum" VALUE="<% $pkgnum %>"> -% if ( $error ) { +% if ( $error ) { <FONT SIZE="+1" COLOR="#ff0000">Error: <% $error %></FONT> % } -% -% -%#my $format = "%c %z (%Z)"; -%my $format = "%m/%d/%Y %T %z (%Z)"; -% -%#false laziness w/view/cust_main/packages.html -%#my( $billed_or_prepaid, -%my( $last_bill_or_renewed, $next_bill_or_prepaid_until ); -%unless ( $part_pkg->is_prepaid ) { -% #$billed_or_prepaid = 'billed'; -% $last_bill_or_renewed = 'Last bill'; -% $next_bill_or_prepaid_until = 'Next bill'; -%} else { -% #$billed_or_prepaid = 'prepaid'; -% $last_bill_or_renewed = 'Renewed'; -% $next_bill_or_prepaid_until = 'Prepaid until'; -%} -% -% - <% ntable("#cccccc",2) %> <TR> <TD ALIGN="right">Package number</TD> - <TD BGCOLOR="#ffffff"><% $pkgnum %></TD> + <TD BGCOLOR="#ffffff"><% $cust_pkg->pkgnum %></TD> </TR> <TR> <TD ALIGN="right">Package</TD> - <TD BGCOLOR="#ffffff"><% $pkg %></TD> + <TD BGCOLOR="#ffffff"><% $cust_pkg->pkg %></TD> </TR> <TR> <TD ALIGN="right">Comment</TD> - <TD BGCOLOR="#ffffff"><% $comment %></TD> + <TD BGCOLOR="#ffffff"><% $cust_pkg->comment %></TD> </TR> <TR> <TD ALIGN="right">Order taker</TD> - <TD BGCOLOR="#ffffff"><% $otaker %></TD> + <TD BGCOLOR="#ffffff"><% $cust_pkg->otaker %></TD> </TR> - <TR> - <TD ALIGN="right">Setup date</TD> - <TD> - <INPUT TYPE="text" NAME="setup" SIZE=32 ID="setup_text" VALUE="<% ( $setup ? time2str($format, $setup) : "" ) %>"> - <IMG SRC="../images/calendar.png" ID="setup_button" STYLE="cursor: pointer" TITLE="Select date"> - </TD> - </TR> + <& .row_edit, cust_pkg=>$cust_pkg, column=>'setup', label=>'Setup' &> + <& .row_edit, cust_pkg=>$cust_pkg, column=>'last_bill', label=>$last_bill_or_renewed &> + <& .row_edit, cust_pkg=>$cust_pkg, column=>'bill', label=>$next_bill_or_prepaid_until &> + <& .row_edit, cust_pkg=>$cust_pkg, column=>'adjourn', label=>'Adjournment', note=>'(will <b>suspend</b> this package when the date is reached)' &> + <& .row_display, cust_pkg=>$cust_pkg, column=>'susp', label=>'Suspension' &> + + <& .row_edit, cust_pkg=>$cust_pkg, column=>'expire', label=>'Expiration', note=>'(will <b>cancel</b> this package when the date is reached)' &> + <& .row_display, cust_pkg=>$cust_pkg, column=>'cancel', label=>'Cancellation' &> + +<%def .row_edit> +<%args> + $cust_pkg + $column + $label + $note => '' +</%args> +% my $value = $cust_pkg->get($column); +% $value = $value ? time2str($format, $value) : ""; <TR> - <TD ALIGN="right"><% $last_bill_or_renewed %> date</TD> + <TD ALIGN="right"><% $label %> date</TD> <TD> - <INPUT TYPE="text" NAME="last_bill" SIZE=32 ID="last_bill_text" VALUE="<% ( $cust_pkg->last_bill ? time2str($format, $cust_pkg->last_bill) : "" ) %>"> - <IMG SRC="../images/calendar.png" ID="last_bill_button" STYLE="cursor: pointer" TITLE="Select date"> + <INPUT TYPE = "text" + NAME = "<% $column %>" + SIZE = 32 + ID = "<% $column %>_text" + VALUE = "<% $value %>" + > + <IMG SRC = "../images/calendar.png" + ID = "<% $column %>_button" + STYLE = "cursor: pointer" + TITLE = "Select date" + > +% if ( $note ) { + <BR><FONT SIZE=-1><% $note %></FONT> +% } </TD> </TR> - <TR> - <TD ALIGN="right"><% $next_bill_or_prepaid_until %> date</TD> - <TD> - <INPUT TYPE="text" NAME="bill" SIZE=32 ID="bill_text" VALUE="<% ( $bill ? time2str($format, $bill) : "" ) %>"> - <IMG SRC="../images/calendar.png" ID="bill_button" STYLE="cursor: pointer" TITLE="Select date"> - </TD> - </TR> - <TR> - <TD ALIGN="right">Adjournment date</TD> - <TD> - <INPUT TYPE="text" NAME="adjourn" SIZE=32 ID="adjourn_text" VALUE="<% ( $adjourn ? time2str($format, $adjourn) : "" ) %>"> - <IMG SRC="../images/calendar.png" ID="adjourn_button" STYLE="cursor: pointer" TITLE="Select date"> - <BR><FONT SIZE=-1>(will <b>suspend</b> this package when the date is reached)</FONT> - </TD> - </TR> -% if ( $susp ) { - + <SCRIPT TYPE="text/javascript"> + Calendar.setup({ + inputField: "<% $column %>_text", + ifFormat: "%m/%d/%Y", + button: "<% $column %>_button", + align: "BR" + }); + </SCRIPT> + +</%def> + +<%def .row_display> +<%args> + $cust_pkg + $column + $label +</%args> +% if ( $cust_pkg->get($column) ) { <TR> - <TD ALIGN="right">Suspension date</TD> - <TD BGCOLOR="#ffffff"><% time2str($format, $susp) %></TD> + <TD ALIGN="right"><% $label %> date</TD> + <TD BGCOLOR="#ffffff"><% time2str($format,$cust_pkg->get($column)) %></TD> </TR> % } +</%def> +</TABLE> - <TR> - <TD ALIGN="right">Expiration date</TD> - <TD> - <INPUT TYPE="text" NAME="expire" SIZE=32 ID="expire_text" VALUE="<% ( $expire ? time2str($format, $expire) : "" ) %>"> - <IMG SRC="../images/calendar.png" ID="expire_button" STYLE="cursor: pointer" TITLE="Select date"> - <BR><FONT SIZE=-1>(will <b>cancel</b> this package when the date is reached)</FONT> - </TD> - </TR> -% if ( $cancel ) { +<BR> +<INPUT TYPE="submit" VALUE="Apply Changes"> +</FORM> - <TR> - <TD ALIGN="right">Cancellation date</TD> - <TD BGCOLOR="#ffffff"><% time2str($format, $cancel) %></TD> - </TR> -% } +<% include('/elements/footer.html') %> +<%once> -</TABLE> +#my $format = "%c %z (%Z)"; +my $format = "%m/%d/%Y %T %z (%Z)"; -<SCRIPT TYPE="text/javascript"> -% -% my @cal = qw( setup bill expire ); -% push @cal, 'last_bill' -% if $cust_pkg->dbdef_table->column('last_bill'); -% foreach my $cal (@cal) { -% - - Calendar.setup({ - inputField: "<% $cal %>_text", - ifFormat: "%m/%d/%Y", - button: "<% $cal %>_button", - align: "BR" - }); -% } +#false laziness w/view/cust_main/packages.html +#my( $billed_or_prepaid, + +</%once> +<%init> + +my $error = ''; +my( $pkgnum, $cust_pkg ); + +if ( $cgi->param('error') ) { + + $error = $cgi->param('error'); + $pkgnum = $cgi->param('pkgnum'); + if ( $error eq '_bill_areyousure' ) { + if ( $cgi->param('bill') =~ /^([\s\d\/\:\-\(\w\)]*)$/ ) { + my $bill = $1; + $error = "You are attempting to set the next bill date to $bill, which is + in the past. This will charge the customer for the interval + from $bill until now. Are you sure you want to do this? ". + '<INPUT TYPE="checkbox" NAME="bill_areyousure" VALUE="1">'; + } + } + + #get package record + $cust_pkg = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum}); + die "No package!" unless $cust_pkg; + + foreach my $col (qw( setup last_bill bill adjourn expire )) { + my $value = $cgi->param($col); + $cust_pkg->set( $col, $value ? str2time($value) : '' ); + } + +} else { + + my($query) = $cgi->keywords; + $query =~ /^(\d+)$/ or die "no pkgnum"; + $pkgnum = $1; + + #get package record + $cust_pkg = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum}); + die "No package!" unless $cust_pkg; + +} + +my $part_pkg = qsearchs( 'part_pkg', { 'pkgpart' => $cust_pkg->pkgpart } ); + +my( $last_bill_or_renewed, $next_bill_or_prepaid_until ); +unless ( $part_pkg->is_prepaid ) { + #$billed_or_prepaid = 'billed'; + $last_bill_or_renewed = 'Last bill'; + $next_bill_or_prepaid_until = 'Next bill'; +} else { + #$billed_or_prepaid = 'prepaid'; + $last_bill_or_renewed = 'Renewed'; + $next_bill_or_prepaid_until = 'Prepaid until'; +} + +</%init> -</SCRIPT> -<BR><INPUT TYPE="submit" VALUE="Apply Changes"> -</FORM> -</BODY> -</HTML> diff --git a/httemplate/edit/process/REAL_cust_pkg.cgi b/httemplate/edit/process/REAL_cust_pkg.cgi index 9255672c0..ec951c86c 100755 --- a/httemplate/edit/process/REAL_cust_pkg.cgi +++ b/httemplate/edit/process/REAL_cust_pkg.cgi @@ -1,5 +1,3 @@ -% -% %my $pkgnum = $cgi->param('pkgnum') or die; %my $old = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum}); %my %hash = $old->hash; @@ -31,6 +29,3 @@ % print $cgi->redirect(popurl(3). "view/cust_main.cgi?$custnum". % "#cust_pkg$pkgnum" ); %} -% -% - |