internationalization/localization, RT12515
[freeside.git] / httemplate / view / cust_main / payment_history / payment.html
index 96fca7f..6148651 100644 (file)
@@ -1,9 +1,11 @@
-<% $pre %>Payment<% $post %> by <% $otaker %>
+<% $payment %>
 <% "$info$desc$view$apply$refund$void$delete$unapply" %>
 <%init>
 
 my( $cust_pay, %opt ) = @_;
 
+my $date_format = $opt{'date_format'} || '%m/%d/%Y';
+
 my $conf = new FS::Conf;
 my $curuser = $FS::CurrentUser::CurrentUser;
 
@@ -14,7 +16,7 @@ if ( $payby eq 'CARD' ) {
   $payinfo = $cust_pay->paymask;
 } elsif ( $payby eq 'CHEK' ) {
   my( $account, $aba ) = split('@', $cust_pay->paymask );
-  $payinfo = "ABA $aba, Acct #$account";
+  $payinfo = mt("ABA [_1], Acct #[_2]",$aba,$account);
 } else {
   $payinfo = $cust_pay->payinfo;
 }
@@ -22,47 +24,74 @@ my @cust_bill_pay = $cust_pay->cust_bill_pay;
 my @cust_pay_refund = $cust_pay->cust_pay_refund;
 
 my $target = "$payby$payinfo";
-$payby =~ s/^BILL$/Check #/ if $payinfo;
-$payby =~ s/^CHEK$/Electronic check /;
-$payby =~ s/^PREP$/Prepaid card /;
-$payby =~ s/^CARD$/Credit card #/; 
-$payby =~ s/^COMP$/Complimentary by /; 
-$payby =~ s/^CASH$/Cash/;
-$payby =~ s/^WEST$/Western Union/;
-$payby =~ s/^MCRD$/Manual credit card/;
-$payby =~ s/^BILL$//;
+$payby = translate_payby($payby,$payinfo);
 my $info = $payby ? "($payby$payinfo)" : '';
 
-my( $pre, $post, $desc, $apply, $ext ) = ( '', '', '', '', '' );
+my $desc = '';
+if ( $opt{'pkg-balances'} && $cust_pay->pkgnum ) {
+  my $cust_pkg = qsearchs('cust_pkg', { 'pkgnum' => $cust_pay->pkgnum } );
+  $desc .= ' for '. $cust_pkg->pkg_label_long;
+}
+
+my %cust_bill_pay_width = ('width' => 392);
+my %cust_bill_pay_height = ();
+if ($conf->exists('cust_bill_pay_pkg-manual')) {
+  %cust_bill_pay_width = ('width' => 592);
+  %cust_bill_pay_height = ('height' => 436);
+}
+
+my( $apply, $ext ) = ( '', '', '', '' );
+
+my $otaker = $cust_pay->otaker;
+$otaker = '<i>auto billing</i>'          if $otaker eq 'fs_daily';
+$otaker = '<i>customer self-service</i>' if $otaker eq 'fs_selfservice';
+
+my $payment = mt("Payment by [_1]",$otaker);
+
 if (    scalar(@cust_bill_pay)   == 0
      && scalar(@cust_pay_refund) == 0 ) {
   #completely unapplied
-  $pre = '<B><FONT COLOR="#FF0000">Unapplied ';
-  $post = '</FONT></B>';
+  $payment = '<B><FONT COLOR="#FF0000">' 
+                . mt("Unapplied Payment by [_1]",$otaker)
+                . '</FONT></B>';
   if ( $curuser->access_right('Apply payment') ) {
-    $apply = ' ('. include( '/elements/popup_link.html',
-                              'label'       => 'apply',
-                              'action'      => "${p}edit/cust_bill_pay.cgi?".
-                                               $cust_pay->paynum,
-                              'actionlabel' => 'Apply payment',
-                              'width'       => 392,
-                              #default# 'height' => 336,
-                          ).
-              ')';
+    if ( $cust_pay->cust_main->total_owed > 0 ) {
+      $apply = ' ('.
+               include( '/elements/popup_link.html',
+                          'label'       => mt('apply'),
+                          'action'      => "${p}edit/cust_bill_pay.cgi?".
+                                           $cust_pay->paynum,
+                          'actionlabel' => mt('Apply payment'),
+                          %cust_bill_pay_width,
+                          %cust_bill_pay_height,
+                      ).
+                ')';
+    }
+    if ( $cust_pay->cust_main->total_unapplied_refunds > 0 ) {
+      $apply.= ' ('.
+               include( '/elements/popup_link.html',
+                          'label'       => mt('apply to refund'),
+                          'action'      => "${p}edit/cust_pay_refund.cgi?".
+                                           $cust_pay->paynum,
+                          'actionlabel' => mt('Apply payment to refund'),
+                          'width'       => 392,
+                      ).
+               ')';
+    }
   }
 } elsif (    scalar(@cust_bill_pay)   == 1
           && scalar(@cust_pay_refund) == 0
           && $cust_pay->unapplied == 0     ) {
   #applied to one invoice, the usual situation
-  $desc = ' '. $cust_bill_pay[0]->applied_to_invoice;
+  $desc .= ' '. $cust_bill_pay[0]->applied_to_invoice;
 } elsif (    scalar(@cust_bill_pay)   == 0
           && scalar(@cust_pay_refund) == 1
           && $cust_pay->unapplied == 0     ) {
   #applied to one refund
-  $desc = ' refunded on '. time2str("%D", $cust_pay_refund[0]->_date);
+  $desc .= mt(" refunded on [_1]", time2str($date_format, $cust_pay_refund[0]->_date) );
 } else {
   #complicated
-  $desc = '<BR>';
+  $desc .= '<BR>';
   foreach my $app ( sort { $a->_date <=> $b->_date }
                          ( @cust_bill_pay, @cust_pay_refund ) ) {
     if ( $app->isa('FS::cust_bill_pay') ) {
@@ -70,11 +99,11 @@ if (    scalar(@cust_bill_pay)   == 0
                '$'. $app->amount.
                ' '. $app->applied_to_invoice.
                '<BR>';
-               #' on '. time2str("%D", $cust_bill_pay->_date).
+               #' on '. time2str($date_format, $cust_bill_pay->_date).
     } elsif ( $app->isa('FS::cust_pay_refund') ) {
       $desc .= '&nbsp;&nbsp;'.
                '$'. $app->amount.
-               ' refunded on '. time2str("%D", $app->_date).
+               mt(" refunded on [_1]", time2str($date_format, $app->_date) ) .
                '<BR>';
     } else {
       die "$app is not a FS::cust_bill_pay or FS::cust_pay_refund";
@@ -85,15 +114,29 @@ if (    scalar(@cust_bill_pay)   == 0
              '<B><FONT COLOR="#FF0000">$'.
              $cust_pay->unapplied. ' unapplied</FONT></B>';
     if ( $curuser->access_right('Apply payment') ) {
-      $desc = ' ('. include( '/elements/popup_link.html',
-                               'label'      => 'apply',
-                               'action'     => "${p}edit/cust_bill_pay.cgi?".
-                                               $cust_pay->paynum,
-                               'actionlabel' => 'Apply payment',
-                               'width'      => 392,
-                               #default# 'height' => 336,
-                          ).
-              ')';
+      if ( $cust_pay->cust_main->total_owed > 0 ) {
+        $apply = ' ('.
+                 include( '/elements/popup_link.html',
+                            'label'      => mt('apply'),
+                            'action'     => "${p}edit/cust_bill_pay.cgi?".
+                                            $cust_pay->paynum,
+                            'actionlabel' => mt('Apply payment'),
+                            %cust_bill_pay_width,
+                            %cust_bill_pay_height,
+                        ).
+                 ')';
+      }
+      if ( $cust_pay->cust_main->total_unapplied_refunds > 0 ) {
+        $apply.= ' ('.
+                 include( '/elements/popup_link.html',
+                            'label'      => mt('apply to refund'),
+                            'action'     => "${p}edit/cust_pay_refund.cgi?".
+                                            $cust_pay->paynum,
+                            'actionlabel' => mt('Apply payment to refund'),
+                            'width'      => 392,
+                        ).
+                 ')';
+      }
     }
     $desc .= '<BR>';
   }
@@ -101,20 +144,23 @@ if (    scalar(@cust_bill_pay)   == 0
 
 my $view =
   ' ('. include('/elements/popup_link.html',
-                  'label'     => 'view receipt',
+                  'label'     => mt('view receipt'),
                   'action'    => "${p}view/cust_pay.html?link=popup;paynum=".
                                   $cust_pay->paynum,
-                  'actionlabel' => 'Payment Receipt',
+                  'actionlabel' => mt('Payment Receipt'),
                ).
    ')';
 
 my $refund = '';
-my $refund_days = $conf->config('card_refund-days') || 120;
+my $refund_days = $opt{'card_refund-days'} || 120;
+my @rights = ('Refund payment');
+push @rights, 'Refund credit card payment' if $payby eq 'CARD';
+push @rights, 'Refund Echeck payment' if $payby eq 'CHEK';
 if (    $cust_pay->closed !~ /^Y/i
      && $cust_pay->payby =~ /^(CARD|CHEK)$/
      && time-$cust_pay->_date < $refund_days*86400
      && $cust_pay->unrefunded > 0
-     && $curuser->access_right('Refund payment')
+     && $curuser->access_right(\@rights)
 ) {
   $refund = qq! (<A HREF="${p}edit/cust_refund.cgi?payby=$1;!.
             qq!paynum=!. $cust_pay->paynum. '"'.
@@ -149,7 +195,7 @@ if (    $cust_pay->closed !~ /^Y/i
 
 my $delete = '';
 if ( $cust_pay->closed !~ /^Y/i
-     && $conf->exists('deletepayments')
+     && $opt{'deletepayments'}
      && $curuser->access_right('Delete payment')
    )
 {
@@ -173,8 +219,4 @@ if (    $cust_pay->closed !~ /^Y/i
              qq!>unapply</A>)!;
 }
 
-my $otaker = $cust_pay->otaker;
-$otaker = '<i>auto billing</i>'          if $otaker eq 'fs_daily';
-$otaker = '<i>customer self-service</i>' if $otaker eq 'fs_selfservice';
-
 </%init>