[freeside-commits] freeside/httemplate/edit REAL_cust_pkg.cgi, 1.12.2.2, 1.12.2.3

Ivan,,, ivan at wavetail.420.am
Thu Nov 29 15:51:40 PST 2007


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

Modified Files:
      Tag: FREESIDE_1_7_BRANCH
	REAL_cust_pkg.cgi 
Log Message:
fix dates going all wacky on errors, when you're asked to confirm a date move into the past

Index: REAL_cust_pkg.cgi
===================================================================
RCS file: /home/cvs/cvsroot/freeside/httemplate/edit/REAL_cust_pkg.cgi,v
retrieving revision 1.12.2.2
retrieving revision 1.12.2.3
diff -u -d -r1.12.2.2 -r1.12.2.3
--- REAL_cust_pkg.cgi	30 Sep 2007 00:25:20 -0000	1.12.2.2
+++ REAL_cust_pkg.cgi	29 Nov 2007 23:51:38 -0000	1.12.2.3
@@ -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' &>
 
-  <TR>
-    <TD ALIGN="right"><% $last_bill_or_renewed %> 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">
-    </TD>
-  </TR>
+  <& .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"><% $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 ALIGN="right"><% $label %> 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>
+      <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>
-% 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) {
-%
+#false laziness w/view/cust_main/packages.html
+#my( $billed_or_prepaid,
 
-  Calendar.setup({
-    inputField: "<% $cal %>_text",
-    ifFormat:   "%m/%d/%Y",
-    button:     "<% $cal %>_button",
-    align:      "BR"
-  });
-% } 
+</%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>



More information about the freeside-commits mailing list