=================================================================== RCS file: /cvs/RT/Invoicing/rt_invoices.pl,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- RT/Invoicing/rt_invoices.pl 2011/03/22 01:01:53 1.9 +++ RT/Invoicing/rt_invoices.pl 2011/03/22 01:15:27 1.10 @@ -140,11 +140,11 @@ while ( my $ticket = &$iterator ) { my $cust = find_customer_for_ticket( $customers, $ticket ); if ( !$cust ) { - say "No customer found for ticket " . $ticket->id; + warn "No customer found for ticket " . $ticket->id; next; } if ( !$cust->{invoice} ) { - say "Customer has no open invoices for ticket " . $ticket->id; + #say "Customer has no open invoices for ticket " . $ticket->id; next; } my $invoice = $cust->{invoice}; @@ -234,19 +234,28 @@ $invoice->{id} = $state->{lastinvoice}; $invoice->{file} = 'invoice_' . $state->{lastinvoice} . '.pdf'; + foreach my $k (qw/ file transactions start end total past_due total_due /) + { + my $v; + if ( $invoice->{$k} ) { $v = $invoice->{$k} } + elsif ( $cust->{$k} ) { $v = $cust->{$k} } + + if (defined $v && length $v) { + if ( ref $v eq 'DateTime' ) { + $li{$k} = $v->ymd; + } + else { + $li{$k} = $v; + } + } + } + $state->{invoice}->{ $li{end} }{ $invoice->{id} } = \%li; + foreach my $key (qw/ start end /) { if ( exists $invoice->{$key} ) { $invoice->{$key} = $invoice->{$key}->strftime('%B %d, %Y'); } } - - foreach my $k (qw/ transactions start end total past_due total_due /) { - if ( $invoice->{$k} ) { $li{$k} = $invoice->{$k} } - elsif ( $cust->{$k} ) { $li{$k} = $cust->{$k} } - } - - $state->{invoice}->{ $invoice->{end} }{ $invoice->{id} } = \%li; - my $tt = Template->new; $tt->process( 'invoice.tex.tt', $invoice, $invoice->{file} ) or die $tt->error . "\n"; @@ -439,7 +448,7 @@ sub ymd_to_DateTime { my ($ymd) = @_; - my ( $date, $time ) = split ' ', $ymd; + my ( $date, $time ) = split /[\sT]/, $ymd; my ( $year, $month, $day ) = split '-', $date; my ( $hour, $minute, $second ) = split ':', $time if $time;