[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.18 and 1.21

version 1.18, 2011/03/22 05:55:27 version 1.21, 2011/03/24 21:03:49
Line 1 
Line 1 
 #!/usr/bin/perl  #!/usr/bin/perl
 # $AFresh1$  # $AFresh1: rt_invoices.pl,v 1.20 2011/03/23 23:05:47 andrew Exp $
 ########################################################################  ########################################################################
 # Copyright (c) 2011 Andrew Fresh <andrew@afresh1.com>  # Copyright (c) 2011 Andrew Fresh <andrew@afresh1.com>
 #  #
Line 172 
Line 172 
     next unless $invoice->{total} > 0 || $invoice->{total_due};      next unless $invoice->{total} > 0 || $invoice->{total_due};
   
     $invoice->{info} = $config->get('info');      $invoice->{info} = $config->get('info');
     $invoice->{from} = make_address( $config->get('from') );      my $from = $config->get('from');
     $invoice->{to}   = make_address( $cust->{address} || $custid );      $from = get_user($from) if !ref $from;
   
       $invoice->{organization} = $from->{organization} || $from->{name};
       $invoice->{from}         = make_address($from);
       $invoice->{to}           = make_address( $cust->{address} || $custid );
   
     $state->{lastinvoice}++;      $state->{lastinvoice}++;
     $invoice->{id} = $state->{lastinvoice};      $invoice->{id} = $state->{lastinvoice};
     $invoice->{file} = sprintf 'invoice_%06d.pdf', $state->{lastinvoice};      $invoice->{file} = sprintf 'invoice_%06d.pdf', $state->{lastinvoice};
Line 206 
Line 210 
     File::Path::make_path($invoice_dir);      File::Path::make_path($invoice_dir);
     my $file = join '/', $invoice_dir, $invoice->{file};      my $file = join '/', $invoice_dir, $invoice->{file};
   
     my $tt = Template->new;      my $tt = Template->new( INCLUDE_PATH => $config->get('template_dir'), )
     $tt->process( 'invoice.tex.tt', $invoice, $file )          || die $Template::ERROR, "\n";
   
       $tt->process( $config->get('invoice_template'), $invoice, $file )
         or die $tt->error . "\n";          or die $tt->error . "\n";
   
     printf "Generated %s for %s: \$%.02f\n", $invoice->{file}, $custid,      printf "Generated %s for %s: \$%.02f\n", $invoice->{file}, $custid,
Line 309 
Line 315 
 sub make_invoice {  sub make_invoice {
     my ($cust) = @_;      my ($cust) = @_;
   
     my $day  = $cust->{day}       ||= 1;      my $day  = $cust->{day}       ||= 0;
     my $per  = $cust->{per}       ||= 'week';      my $per  = $cust->{per}       ||= 'week';
     my $freq = $cust->{frequency} ||= 1;      my $freq = $cust->{frequency} ||= 1;
   
Line 323 
Line 329 
     my $billends = DateTime->now->set( hour => 0, minute => 0, second => 0 );      my $billends = DateTime->now->set( hour => 0, minute => 0, second => 0 );
   
     # XXX This is helpful, but monthly and billday > 28 == !!!      # XXX This is helpful, but monthly and billday > 28 == !!!
     $billends->subtract( days => 1 ) while $billends->$day_method != $day;      $billends->subtract( days => 1 )
           while $day && $billends->$day_method != $day;
   
     my $date = $billends->clone->subtract( $per => $freq );      my $date = $billends->clone->subtract( $per => $freq );
   
Line 399 
Line 406 
         $date = $enddate->clone if $date > $enddate;          $date = $enddate->clone if $date > $enddate;
   
         # XXX This is helpful, but monthly and billday > 28 == !!!          # XXX This is helpful, but monthly and billday > 28 == !!!
         $date->subtract( days => 1 ) while $date->$day_method != $day;          $date->subtract( days => 1 ) while $day && $date->$day_method != $day;
   
         my $end = $date->clone->subtract( seconds => 1 );          my $end = $date->clone->subtract( seconds => 1 );
   
Line 626 
Line 633 
         }          }
         when ('invoice_dir') {          when ('invoice_dir') {
             $value = dirname( $self->{file} ) . '/invoices';              $value = dirname( $self->{file} ) . '/invoices';
           }
           when ('template_dir') {
               $value = dirname( $self->{file} );
           }
           when ('invoice_template') {
               $value = 'invoice.tex.tt';
         }          }
     }      }
   

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.21

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