Merge branch 'master' of git.freeside.biz:/home/git/freeside
authorJonathan Prykop <jonathan@freeside.biz>
Tue, 15 Nov 2016 09:10:32 +0000 (03:10 -0600)
committerJonathan Prykop <jonathan@freeside.biz>
Tue, 15 Nov 2016 09:10:32 +0000 (03:10 -0600)
FS/FS/cust_bill_pkg_tax_location.pm
FS/FS/cust_bill_pkg_tax_location_void.pm
FS/FS/cust_bill_pkg_void.pm
httemplate/view/cust_main/notes.html

index 7c67c2d..4a641be 100644 (file)
@@ -125,7 +125,7 @@ sub check {
     || $self->ut_number('pkgnum', 'cust_pkg', 'pkgnum' )
     || $self->ut_foreign_key('locationnum', 'cust_location', 'locationnum' )
     || $self->ut_money('amount')
-    || $self->ut_foreign_key('taxable_billpkgnum', 'cust_bill_pkg', 'billpkgnum')
+    || $self->ut_foreign_keyn('taxable_billpkgnum', 'cust_bill_pkg', 'billpkgnum')
   ;
   return $error if $error;
 
index 7b79e6f..bb4a5af 100644 (file)
@@ -119,7 +119,7 @@ sub check {
     || $self->ut_number('pkgnum', 'cust_pkg', 'pkgnum' )
     || $self->ut_foreign_key('locationnum', 'cust_location', 'locationnum' )
     || $self->ut_money('amount')
-    || $self->ut_foreign_key('taxable_billpkgnum', 'cust_bill_pkg_void', 'billpkgnum')
+    || $self->ut_foreign_keyn('taxable_billpkgnum', 'cust_bill_pkg_void', 'billpkgnum')
   ;
   return $error if $error;
 
index 9bfd41f..2cbfa02 100644 (file)
@@ -296,6 +296,7 @@ sub _upgrade_data {  # class method
   my $error;
   # fix voids with tax from before July 2013, when the taxable_billpkgnum
   # field was added to the void table
+  local $FS::Record::nowarn_classload = 1;
   my $search = FS::Cursor->new({
     'table'   => 'cust_bill_pkg_tax_location_void',
     'hashref' => { 'taxable_billpkgnum' => '' }
@@ -307,11 +308,14 @@ sub _upgrade_data {  # class method
     my $unvoid = qsearchs({
       'table'   => 'h_cust_bill_pkg_tax_location',
       'hashref' => { 'billpkgtaxlocationnum' => $num },
+      'extra_sql' => ' AND taxable_billpkgnum IS NOT NULL',
       'order_by' => ' ORDER BY history_date DESC LIMIT 1'
     });
     if (!$unvoid) {
       # should never happen
-      die "billpkgtaxlocationnum $num: could not find pre-void history record to restore taxable_billpkgnum.";
+      # but should this be fatal? or wait until someone actually tries to
+      # use the record?
+      warn "billpkgtaxlocationnum $num: could not find pre-void history record to restore taxable_billpkgnum.";
     }
     if ($unvoid) {
       $void->set('taxable_billpkgnum', $unvoid->taxable_billpkgnum);
index 6250200..c02af38 100755 (executable)
 <A HREF="<% $p.'view/cust_main.cgi?custnum=' . $cust_main->custnum .
            ($view ? ";show=$view" : '') . '#notes' 
            %>"><I>(<% mt('Show active attachments') |h %>)</I></A>
-%   } elsif($curuser->access_right('View deleted attachments')) {
+%   } elsif ( $curuser->access_right('View deleted attachments')
+%               && FS::Record->scalar_sql(
+%                    'SELECT 1 FROM cust_attachment WHERE custnum = ? '.
+%                      ' AND disabled IS NOT NULL AND disabled > 0 LIMIT 1',
+%                    $custnum )
+%           )
+%   {
 <A HREF="<% $p.'view/cust_main.cgi?custnum=' . $cust_main->custnum .
            ($view ? ";show=$view" : '') . ';show_deleted=1#notes'
            %>"><I>(<% mt('Show deleted attachments') |h %>)</I></A>