=================================================================== RCS file: /cvs/RT/Invoicing/rt_invoices.pl,v retrieving revision 1.47 retrieving revision 1.50 diff -u -r1.47 -r1.50 --- RT/Invoicing/rt_invoices.pl 2012/01/31 04:36:28 1.47 +++ RT/Invoicing/rt_invoices.pl 2013/06/20 05:36:06 1.50 @@ -1,5 +1,5 @@ #!/usr/bin/perl -# $AFresh1: rt_invoices.pl,v 1.46 2012/01/27 04:13:45 andrew Exp $ +# $AFresh1: rt_invoices.pl,v 1.49 2013/02/05 03:41:58 andrew Exp $ ######################################################################## # Copyright (c) 2011 Andrew Fresh # @@ -189,6 +189,36 @@ } } +if ( my $credits = $state->credits ) { + foreach my $custid ( keys %{$credits} ) { + + my $cust; + foreach ( @{$customers} ) { + if ( $_->{id} eq $custid ) { + $cust = $_; + last; + } + } + + next unless $cust; + next unless $cust->{invoice}; + next unless $credits->{$custid} < 0; + + $cust->{invoice}->{credit} = $credits->{$custid}; + + unshift @{ $cust->{invoice}->{projects} }, { + title => 'Credits', + no_total => 1, + fees => [ + { contents => 'Available Credit', + count => 1, + rate => -$credits->{$custid}, + } + ], + }; + } +} + foreach my $cust ( @{$customers} ) { my $invoice = $cust->{invoice}; next unless $invoice && $invoice->{projects} && @{ $invoice->{projects} }; @@ -508,7 +538,7 @@ # XXX Only need $ticket for the alternate subject my $work_time = sprintf "%.03f", $txn->time_taken / 60; - my $work_type = $txn->cf('WorkType'); + my $work_type = $txn->cf('WorkType') || ''; if ( $work_type =~ s/\s*Onsite//i ) {