version 1.4, 2011/03/22 05:53:59 |
version 1.6, 2020/08/02 02:05:31 |
|
|
#!/usr/bin/perl |
#!/usr/bin/perl |
# $AFresh1: test.pl,v 1.3 2011/03/20 05:20:11 andrew Exp $ |
# $AFresh1: test.pl,v 1.5 2011/12/21 02:20:59 andrew Exp $ |
use strict; |
use strict; |
use warnings; |
use warnings; |
|
|
use Template; |
use Template; |
|
use DateTime; |
|
use Cwd qw< abs_path >; |
|
|
my %invoice = ( |
my %invoice = ( |
id => 1, |
id => 1234, |
info1 => 'Visit me online at http://example.com', |
invdate => DateTime->new( year => 2011, month => 3, day => 1 ), |
info2 => 'Create a new ticket rt@example.com', |
start => DateTime->new( year => 2011, month => 1, day => 1 ), |
|
end => DateTime->new( year => 2011, month => 3, day => 19 ), |
|
logo => abs_path( 'logo.pdf' ), |
|
info => [ |
|
'Visit me online at http://example.com', |
|
'Create a new ticket rt@example.com', |
|
], |
from => 'Example Company |
from => 'Example Company |
|
|
22115 Central Way |
22115 Central Way |
|
|
rate => 100, |
rate => 100, |
}, |
}, |
{ |
{ |
contents => '2011-01-12: REdefine Project (903)', |
contents => '2011-01-12: Redefine Project (903)', |
count => 0.25, |
count => 0.25, |
rate => 75, |
rate => 75, |
}, |
}, |
|
|
amount => '8.498', |
amount => '8.498', |
}, |
}, |
); |
); |
|
|
|
foreach my $project (@{ $invoice{projects} || [] }) { |
|
foreach my $fee (@{ $project->{fees} || [] }) { |
|
$invoice{total} += $fee->{count} * $fee->{rate}; |
|
} |
|
foreach my $expense (@{ $project->{expenses} || [] }) { |
|
$invoice{total} += $expense->{amount}; |
|
} |
|
} |
|
|
|
$invoice{total} -= $invoice{discount}{amount} |
|
if $invoice{discount}; |
|
|
my $tt = Template->new; |
my $tt = Template->new; |
|
|