[BACK]Return to rt_invoices.pl CVS log [TXT][DIR] Up to [local] / RT / Invoicing

Diff for /RT/Invoicing/rt_invoices.pl between version 1.45 and 1.46

version 1.45, 2011/12/31 02:14:32 version 1.46, 2012/01/27 04:13:45
Line 1 
Line 1 
 #!/usr/bin/perl  #!/usr/bin/perl
 # $AFresh1: rt_invoices.pl,v 1.44 2011/12/30 05:01:41 andrew Exp $  # $AFresh1: rt_invoices.pl,v 1.45 2011/12/31 02:14:32 andrew Exp $
 ########################################################################  ########################################################################
 # Copyright (c) 2011 Andrew Fresh <andrew@afresh1.com>  # Copyright (c) 2011 Andrew Fresh <andrew@afresh1.com>
 #  #
Line 135 
Line 135 
   
 if ( my $unpaid_invoices = $state->unpaid_invoices() ) {  if ( my $unpaid_invoices = $state->unpaid_invoices() ) {
     foreach my $custid ( keys %{$unpaid_invoices} ) {      foreach my $custid ( keys %{$unpaid_invoices} ) {
         my %project = ( title => 'Unpaid Invoices', fees => [], );          my %project  = ( title => 'Unpaid Invoices', fees => [], );
         my $past_due = 0;          my $past_due = 0;
           my $unpaid   = 0;
   
         my $cust;          my $cust;
         foreach ( @{$customers} ) {          foreach ( @{$customers} ) {
Line 147 
Line 148 
         }          }
         $cust ||= fake_customer($custid);          $cust ||= fake_customer($custid);
   
         foreach my $id ( sort { $a <=> $b }          foreach my $id (
             keys %{ $unpaid_invoices->{$custid} } )              sort { $a <=> $b }
               keys %{ $unpaid_invoices->{$custid} }
               )
         {          {
             my $unpaid  = $state->get_invoice($id);              my $unpaid  = $state->get_invoice($id);
             my $invdate = ymd_to_DateTime( $unpaid->{invdate} );              my $invdate = ymd_to_DateTime( $unpaid->{invdate} );
   
             next              my $content
                 if $cust->{duedate}                  = sprintf( "Invoice %06d from %s", $id, $invdate->ymd );
                     && DateTime->compare( $invdate, $cust->{duedate} ) > 0;              if ( $cust->{duedate}
                   && DateTime->compare( $invdate, $cust->{duedate} ) > 0 )
               {
                   $content = "PAST DUE: $content";
                   $past_due += $unpaid_invoices->{$custid}->{$id};
               }
               else {
                   $unpaid += $unpaid_invoices->{$custid}->{$id};
               }
   
             $past_due += $unpaid_invoices->{$custid}->{$id};  
             push @{ $project{fees} },              push @{ $project{fees} },
                 {                  {
                 id => $id,                  id       => $id,
                 contents =>                  contents => $content,
                     sprintf( "Invoice %06d from %s", $id, $invdate->ymd ),                  count    => 1,
                 count => 1,                  rate     => $unpaid_invoices->{$custid}->{$id},
                 rate  => $unpaid_invoices->{$custid}->{$id},  
                 };                  };
         }          }
   
Line 172 
Line 181 
             $cust->{invoice} ||= make_invoice();              $cust->{invoice} ||= make_invoice();
   
             $cust->{invoice}->{past_due} = $past_due;              $cust->{invoice}->{past_due} = $past_due;
               $cust->{invoice}->{unpaid}   = $unpaid;
             $cust->{invoice}->{total_due}              $cust->{invoice}->{total_due}
                 = $cust->{invoice}->{total} + $past_due;                  = $cust->{invoice}->{total} + $past_due + $unpaid;
   
             unshift @{ $cust->{invoice}->{projects} }, \%project;              unshift @{ $cust->{invoice}->{projects} }, \%project;
         }          }

Legend:
Removed from v.1.45  
changed lines
  Added in v.1.46

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>