version 1.1.1.1, 2011/03/19 23:27:16 |
version 1.5, 2011/12/21 02:20:59 |
|
|
#!/usr/bin/perl |
#!/usr/bin/perl |
# $AFresh1$ |
# $AFresh1: test.pl,v 1.4 2011/03/22 04:53:59 andrew Exp $ |
use strict; |
use strict; |
use warnings; |
use warnings; |
|
|
|
|
|
|
my %invoice = ( |
my %invoice = ( |
id => 1, |
id => 1, |
|
logo => '/home/andrew/.rt_invoicing/afresh_logo.pdf', |
info1 => 'Visit me online at http://example.com', |
info1 => 'Visit me online at http://example.com', |
info2 => 'Create a new ticket rt@example.com', |
info2 => 'Create a new ticket rt@example.com', |
from => { |
from => 'Example Company |
name => 'Example Company', |
|
#attn => 'Jane Smith', |
22115 Central Way |
addr1 => '22115 Central Way', |
|
addr2 => 'Suite C', |
Suite C |
city => 'Anytown', |
|
state => 'America', |
Anytown, America 11111 |
zip => '11111', |
|
phone => '(800) 555-1212', |
(800) 555-1212 |
email => 'company@example.com', |
|
}, |
\texttt{<company@example.com>}', |
to => { |
to => 'John Doe |
name => 'John Doe', |
|
addr1 => '123 W Main St', |
123 W Main St |
city => 'Anytown', |
|
state => 'America', |
Anytown, America 11111', |
zip => '11111', |
|
}, |
|
projects => [ |
projects => [ |
{ |
{ |
title => 'Weekly Retainer', |
title => 'Weekly Retainer', |
|
|
{ |
{ |
id => 60, |
id => 60, |
title => '60: A Special Project', |
title => '60: A Special Project', |
|
detail => 'Requestors jdoe@example.net', |
fees => [ |
fees => [ |
{ |
{ |
contents => '2011-01-01: Talk a lot (727)', |
contents => '2011-01-01: Talk a lot (727)', |
|
detail => 'This is detail about 727', |
count => 0.33, |
count => 0.33, |
rate => 75, |
rate => 75, |
}, |
}, |
{ |
{ |
contents => '2011-01-15: Write Stuff (730)', |
contents => '2011-01-15: Write Stuff (730)', |
|
detail => 'This is detail about 730', |
count => 1.5, |
count => 1.5, |
rate => 100, |
rate => 100, |
}, |
}, |
], |
|
discounts => [ |
|
{ |
{ |
contents => 'Included Hours', |
contents => 'Rounding FAIL', |
amount => .33 * 75, |
detail => 'Should be $8.30', |
|
count => .083, |
|
rate => 100, |
}, |
}, |
{ |
|
contents => 'Included Hours', |
|
amount => 1.5 * 100, |
|
}, |
|
], |
], |
}, |
}, |
{ |
{ |
id => 65, |
id => 65, |
title => '65: More work!', |
title => '65: More work!', |
|
detail => 'Requestors jdoe@example.net', |
fees => [ |
fees => [ |
{ |
{ |
contents => '2011-01-06: Define Project (751)', |
contents => '2011-01-06: Define Project (751)', |
|
|
rate => 125, |
rate => 125, |
}, |
}, |
], |
], |
discounts => [ |
|
{ |
|
contents => 'Included Hours', |
|
amount => (.33 * 75) + ( 3.33 * 100 ), |
|
}, |
|
{ |
|
contents => 'Included Hours', |
|
amount => (.25 * 75 ) + (2.25 * 100), |
|
}, |
|
], |
|
}, |
}, |
{ |
{ |
id => 85, |
id => 85, |
title => '85: Replace stuff', |
title => '85: Replace stuff', |
|
detail => 'Requestors maintenance@example.net', |
fees => [ |
fees => [ |
{ |
{ |
contents => '2011-01-13: Go unplug, replace, replug (834)', |
contents => '2011-01-13: Go unplug, replace, replug (834)', |
|
|
], |
], |
}, |
}, |
], |
], |
|
discount => { |
|
contents => 'Discount', |
|
amount => '8.498', |
|
}, |
); |
); |
|
|
my $tt = Template->new; |
my $tt = Template->new; |