freeside/httemplate/edit part_bill_event.cgi,1.17,1.18

ivan ivan at pouncequick.420.am
Fri May 14 05:25:51 PDT 2004


Update of /home/cvs/cvsroot/freeside/httemplate/edit
In directory pouncequick:/tmp/cvs-serv23946/httemplate/edit

Modified Files:
	part_bill_event.cgi 
Log Message:
add per-agent invoice templates, add per-package suspend invoice events, fix automatic creation of invoice_latex alternate templates

Index: part_bill_event.cgi
===================================================================
RCS file: /home/cvs/cvsroot/freeside/httemplate/edit/part_bill_event.cgi,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- part_bill_event.cgi	10 Jan 2004 03:50:59 -0000	1.17
+++ part_bill_event.cgi	14 May 2004 12:25:44 -0000	1.18
@@ -68,6 +68,31 @@
 
 #print ntable();
 
+sub select_pkgpart {
+  my $label = shift;
+  my $plandata = shift;
+  my %selected = map { $_=>1 } split(/,\s*/, $plandata->{$label});
+  qq(<SELECT NAME="$label" MULTIPLE>).
+  join("\n", map {
+    '<OPTION VALUE="'. $_->pkgpart. '"'.
+    ( $selected{$_->pkgpart} ? ' SELECTED' : '' ).
+    '>'. $_->pkg. ' - '. $_->comment
+  } qsearch('part_pkg', { 'disabled' => '' } ) ).
+  '</SELECT>';
+}
+
+sub select_agentnum {
+  my $plandata = shift;
+  my $agentnum = $plandata->{'agentnum'};
+  '<SELECT NAME="agentnum">'.
+  join("\n", map {
+    '<OPTION VALUE="'. $_->agentnum. '"'.
+    ( $_->agentnum == $agentnum ? ' SELECTED' : '' ).
+    '>'. $_->agent
+  } qsearch('agent', { 'disabled' => '' } ) ).
+  '</SELECT>';
+}
+
 #this is pretty kludgy right here.
 tie my %events, 'Tie::IxHash',
 
@@ -84,6 +109,18 @@
     'code'   => '$cust_main->suspend();',
     'weight' => 10,
   },
+  'suspend-if-pkgpart' => {
+    'name'   => 'Suspend packages',
+    'code'   => '$cust_main->suspend_if_pkgpart(%%%if_pkgpart%%%);',
+    'html'   => sub { &select_pkgpart('if_pkgpart', @_) },
+    'weight' => 10,
+  },
+  'suspend-unless-pkgpart' => {
+    'name'   => 'Suspend packages except',
+    'code'   => '$cust_main->suspend_unless_pkgpart(%%%unless_pkgpart%%%);',
+    'html'   => sub { &select_pkgpart('unless_pkgpart', @_) },
+    'weight' => 10,
+  },
   'cancel' => {
     'name'   => 'Cancel',
     'code'   => '$cust_main->cancel();',
@@ -140,6 +177,26 @@
     'weight' => 50,
   },
 
+  'send_agent' => {
+    'name' => 'Send invoice (email/print) ',
+    'code' => '$cust_bill->send(\'%%%agent_templatename%%%\', %%%agentnum%%%);',
+    'html' => sub {
+        '<TABLE BORDER=0>
+          <TR>
+            <TD ALIGN="right">only for agent </TD>
+            <TD>'. &select_agentnum(@_). '</TD>
+          </TR>
+          <TR>
+            <TD ALIGN="right">with template </TD>
+            <TD>
+              <INPUT TYPE="text" NAME="agent_templatename" VALUE="%%%agent_templatename%%%">
+            </TD>
+          </TR>
+        </TABLE>';
+    },
+    'weight' => 50,
+  },
+
   'send_csv_ftp' => {
     'name' => 'Upload CSV invoice data to an FTP server',
     'code' => '$cust_bill->send_csv( protocol => \'ftp\',
@@ -188,6 +245,9 @@
   my %plandata = map { /^(\w+) (.*)$/; ($1, $2); }
                    split(/\n/, $part_bill_event->plandata);
   my $html = $events{$event}{html};
+  if ( ref($html) eq 'CODE' ) {
+    $html = &{$html}(\%plandata);
+  }
   while ( $html =~ /%%%(\w+)%%%/ ) {
     my $field = $1;
     $html =~ s/%%%$field%%%/$plandata{$field}/;




More information about the freeside-commits mailing list