also supress sending invoices w/selfservice-hide_invoices-taxclass, RT#15327
[freeside.git] / FS / FS / ClientAPI / MyAccount.pm
index 784a33f..2530725 100644 (file)
@@ -1140,7 +1140,10 @@ sub invoice_pdf {
 
   return { 'error'       => '',
            'invnum'      => $invnum,
-           'invoice_pdf' => $cust_bill->print_pdf( { unsquelch_cdr => 1 } ),
+           'invoice_pdf' => $cust_bill->print_pdf({
+                              'unsquelch_cdr' => 1,
+                              'locale'        => $p->{'locale'},
+                            }),
          };
 
 }
@@ -1154,10 +1157,15 @@ sub legacy_invoice {
 
   my $legacyinvnum = $p->{'legacyinvnum'};
 
-  my $legacy_cust_bill = qsearchs('legacy_cust_bill', {
+  my %hash = (
     'legacyinvnum' => $legacyinvnum,
     'custnum'      => $custnum,
-  }) or return { 'error' => "Can't find legacyinvnum" };
+  );
+
+  my $legacy_cust_bill =
+         qsearchs('legacy_cust_bill', { %hash, 'locale' => $p->{'locale'} } )
+      || qsearchs('legacy_cust_bill', \%hash )
+    or return { 'error' => "Can't find legacyinvnum" };
 
   #my %return;
 
@@ -1236,9 +1244,12 @@ sub list_invoices {
   my $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } )
     or return { 'error' => "unknown custnum $custnum" };
 
-  my @cust_bill = $cust_main->cust_bill;
+  my $conf = new FS::Conf;
+
   my @legacy_cust_bill = $cust_main->legacy_cust_bill;
 
+  my @cust_bill = grep ! $_->hide, $cust_main->cust_bill;
+
   my $balance = 0;
 
   return  { 'error'       => '',
@@ -1434,13 +1445,15 @@ sub list_svcs {
             my $svc_x = $_->svc_x;
             my($label, $value) = $_->label;
             my $svcdb = $_->part_svc->svcdb;
-            my $part_pkg = $_->cust_pkg->part_pkg;
+            my $cust_pkg = $_->cust_pkg;
+            my $part_pkg = $cust_pkg->part_pkg;
 
             my %hash = (
-              'svcnum' => $_->svcnum,
-              'svcdb'  => $svcdb,
-              'label'  => $label,
-              'value'  => $value,
+              'svcnum'     => $_->svcnum,
+              'svcdb'      => $svcdb,
+              'label'      => $label,
+              'value'      => $value,
+              'pkg_status' => $cust_pkg->status,
             );
 
             if ( $svcdb eq 'svc_acct' ) {
@@ -1507,6 +1520,22 @@ sub _customer_svc_x {
 
 }
 
+sub svc_status_html {
+  my $p = shift;
+
+  my($context, $session, $custnum) = _custoragent_session_custnum($p);
+  return { 'error' => $session } if $context eq 'error';
+
+  #XXX only svc_dsl for now
+  my $svc_x = _customer_svc_x( $custnum, $p->{'svcnum'}, 'svc_dsl')
+    or return { 'error' => "Service not found" };
+
+  my $html = $svc_x->getstatus_html;
+
+  return { 'html' => $html };
+
+}
+
 sub list_dsl_devices {
   my $p = shift;