invoice voiding, RT#18677
authorIvan Kohler <ivan@freeside.biz>
Wed, 1 Aug 2012 21:04:50 +0000 (14:04 -0700)
committerIvan Kohler <ivan@freeside.biz>
Wed, 1 Aug 2012 21:04:50 +0000 (14:04 -0700)
FS/FS/Mason.pm
FS/FS/Schema.pm
FS/FS/cust_bill_pkg_discount.pm
FS/FS/quotation.pm
FS/MANIFEST
httemplate/view/cust_bill.cgi
httemplate/view/cust_bill_void.html
httemplate/view/quotation.html

index c45e783..663a48e 100644 (file)
@@ -322,6 +322,7 @@ if ( -e $addl_handler_use_file ) {
   use FS::cust_bill_pkg_tax_location_void;
   use FS::cust_bill_pkg_tax_rate_location_void;
   use FS::cust_tax_exempt_pkg_void;
+  use FS::cust_bill_pkg_discount_void;
   # Sammath Naur
 
   if ( $FS::Mason::addl_handler_use ) {
index e59268b..cff0afd 100644 (file)
@@ -1784,6 +1784,19 @@ sub tables_hashref {
       'index' => [ [ 'billpkgnum' ], [ 'pkgdiscountnum' ] ],
     },
 
+    'cust_bill_pkg_discount_void' => {
+      'columns' => [
+        'billpkgdiscountnum',    'int',        '', '', '', '',
+        'billpkgnum',            'int',        '', '', '', '', 
+        'pkgdiscountnum',        'int',        '', '', '', '', 
+        'amount',          @money_type,                '', '', 
+        'months',            'decimal', 'NULL', '7,4', '', '',
+      ],
+      'primary_key' => 'billpkgdiscountnum',
+      'unique' => [],
+      'index' => [ [ 'billpkgnum' ], [ 'pkgdiscountnum' ] ],
+    },
+
     'discount' => {
       'columns' => [
         'discountnum', 'serial',     '',      '', '', '',
index e7dd5f2..dfa83d3 100644 (file)
@@ -28,8 +28,8 @@ FS::cust_bill_pkg_discount - Object methods for cust_bill_pkg_discount records
 =head1 DESCRIPTION
 
 An FS::cust_bill_pkg_discount object represents the slice of a customer
-applied to a line item.  FS::cust_bill_pkg_discount inherits from
-FS::Record.  The following fields are currently supported:
+discount applied to a specific line item.  FS::cust_bill_pkg_discount inherits
+from FS::Record.  The following fields are currently supported:
 
 =over 4
 
index ccaa1c3..9e7723c 100644 (file)
@@ -142,9 +142,8 @@ sub cust_main {
 
 =cut
 
-sub cust_bill_pkg {
+sub cust_bill_pkg { #actually quotation_pkg objects
   my $self = shift;
-  #actually quotation_pkg objects
   qsearch('quotation_pkg', { quotationnum=>$self->quotationnum });
 }
 
index 01dab20..2163a23 100644 (file)
@@ -663,3 +663,5 @@ FS/cust_bill_pkg_tax_rate_location_void.pm
 t/cust_bill_pkg_tax_rate_location_void.t
 FS/cust_tax_exempt_pkg_void.pm
 t/cust_tax_exempt_pkg_void.t
+FS/cust_bill_pkg_discount_void.pm
+t/cust_bill_pkg_discount_void.t
index a8b4ac1..95ce60b 100755 (executable)
@@ -166,8 +166,6 @@ die "Invoice #$invnum not found!" unless $cust_bill;
 my $custnum = $cust_bill->custnum;
 my $display_custnum = $cust_bill->cust_main->display_custnum;
 
-#my $printed = $cust_bill->printed;
-
 my $link = "invnum=$invnum";
 $link .= ';template='. uri_escape($template) if $template;
 $link .= ';notice_name='. $notice_name if $notice_name;
index 148c0ed..2c52674 100755 (executable)
@@ -2,7 +2,19 @@
   emt("View this customer (#[_1])",$display_custnum) => "${p}view/cust_main.cgi?$custnum",
 ) &>
 
-%#XXX something very big and obvious showing its voided...
+<SCRIPT TYPE="text/javascript">
+function areyousure(href, message) {
+  if (confirm(message) == true)
+    window.location.href = href;
+}
+</SCRIPT>
+<% areyousure_link("${p}misc/unvoid-cust_bill_void.html?invnum=". $cust_bill_void->invnum,
+                     emt('Are you sure you want to unvoid this invoice?'),
+                     emt('Unvoid this invoice'), #tooltip
+                     emt('Unvoid this invoice') #link
+                  )
+%>
+<BR><BR>
 
 % #voided PDFs?
 % #if ( $conf->exists('invoice_latex') ) {
@@ -11,6 +23,7 @@
 %#  <BR><BR>
 % #} 
 
+%#something very big and obvious showing its voided...
 <DIV STYLE="color:#FF0000; font-size:1000%; font-weight:bold; z-index:100;
             position: absolute; top: 300px; left: 130px;
             zoom: 1; filter: alpha(opacity=25); opacity: 0.25;
@@ -58,4 +71,9 @@ my $display_custnum = $cust_bill_void->cust_main->display_custnum;
 
 #my $link = "invnum=$invnum";
 
+sub areyousure_link {
+    my ($url,$msg,$title,$label) = (shift,shift,shift,shift);
+    '<A HREF="javascript:areyousure(\''.$url.'\',\''.$msg.'\')" TITLE="'.$title.'">'.$label.'</A>';
+}
+
 </%init>
index 461b5df..a88acf8 100755 (executable)
@@ -44,8 +44,6 @@ XXX resending quotations
 % }
 % #plaintext quotations? <PRE><% join('', $quotation->print_text() ) %></PRE>
 
-</%doc>
-
 <& /elements/footer.html &>
 <%init>