Mercurial > laserkard
view paypal/generate_paylists.pm @ 31:d269b63b4a54 laserkard
[svn r32]
author | rlm |
---|---|
date | Sun, 17 Jan 2010 22:11:27 -0500 |
parents | 293275d50722 |
children | 0deeb2d5d1db |
line wrap: on
line source
2 package generate_paylists;5 use Exporter;7 our @ISA= qw( Exporter );8 our @EXPORT = qw( paylist );13 sub paylist14 {16 {#input stuff17 my %args = (18 TITLE => "Clarity LaserKard --- Classic Style",19 NAME => 'classic_acrylic_clear',20 FIELDS => ["Line 1", "Line 2","Line 3","Line 4","Line 5","Side"],21 ADD_PENNY => 1,22 COSTS_NAMES => ['40 cards -- $125', '3 cards -- $15'],23 COSTS_CODE => ['40 cards @125.00', '3 cards @15.00'],24 INITIAL_PRICE => '$125.00',25 DEFAULTS => ['jbond@mi6.co.uk','123.456.7890','James Bond','MI6','Secret Agent','http://www.jamesbond.com'],26 @_, # argument pair list goes here27 );28 $prod_name = $args{PRODUCT_NAME};29 @defaults = @{$args{DEFAULTS}};30 $name = $args{NAME};31 @fields = @{$args{FIELDS}};32 @costs_names = @{$args{COSTS_NAMES}};33 @costs_code = @{$args{COSTS_CODE}};34 $penny = $args{ADD_PENNY};35 $title = $args{TITLE};36 $initial_price = $args{INITIAL_PRICE};38 }40 {#determine the total number of fields and payment options present:45 $num_fields = $#fields +1;46 $payment_opts = $#costs_names +1 ;48 }50 {#read in the file52 {53 local( $/, *FH ) ;54 open( FH, "<BASE.paylist" ) or die "sudden flaming death\n";55 $base = <FH>;56 }58 }60 #The base file has the following options:62 #PERL::TITLE x63 #PERL::OPT0 -- PERL::OPT9 x64 #PERL::PAYMENT x65 #PERL::INPUT x66 #PERL::PENNY x67 #PERL::INITIAL_COST x70 {#PERL::TITLE71 $base =~ s/PERL::TITLE/$title/g;72 $base =~ s/PERL::PRODUCT-NAME/$prod_name/g;74 }76 {#PERL::OPT0 -- PERL::OPT977 for (0..9)78 {79 my $index = $_;80 my $field = @fields[$index];81 my $find = 'PERL::OPT'.$index;82 my $replace = "value = \"$field\"";85 if (!@fields[$index]){$replace = "";}87 $base =~ s/$find/$replace/;88 }89 }91 {#PERL::PAYMENT94 my $start =95 <<DDDDD;97 <input type="radio" name = "whatev"99 value="PERL::CODE" PERL::CHECKED100 onclick = "ReadForm (this.form, false);"101 onload = "ReadForm (this.form, false);" >102 PERL::COST104 <br>106 DDDDD109 $start2 = $start;111 $start =~ s/PERL::COST/@costs_names[0]/;112 $start =~ s/PERL::CODE/@costs_code[0]/;113 $start =~ s/PERL::CHECKED/CHECKED/;117 if (2 == $payment_opts)118 {120 $start2 =~ s/PERL::COST/@costs_names[1]/;121 $start2 =~ s/PERL::CODE/@costs_code[1]/;122 $start2 =~ s/PERL::CHECKED//;123 $start = $start.$start2;125 }127 $base =~ s/PERL::PAYMENT/$start/;129 }131 {#PERL::INPUT134 $start = <<OHYEAH;135 <br>136 PERL::OPT: 137 <input type="text" id="PERL::OPT" name="line_PERL::NUMb" size="20" value = "PERL::DEFAULT" ONFOCUS="clearDefault(this)"138 onKeyUp="139 tt.remove();141 var font_size = 65;143 tt = raphe.print(0, 145, value, raphe.getFont('HelveticaNeue', 700), font_size);144 tt.attr('stroke', '#f00');145 tt.attr('fill', 'TRANSPARENT');146 var c = tt.getBBox().width;147 tt.translate((502 - c)/2,0);154 //document.write( c );160 "162 >163 <!-- -->164 <br>165 OHYEAH168 my $input = "";170 for (0..$#fields)171 {172 $rrr = $_+1;173 $t = $start;174 $t =~ s/PERL::NUM/$rrr/;175 $t =~ s/PERL::OPT/$fields[$_]/g;176 $t =~ s/PERL::DEFAULT/$defaults[$_]/;177 $input = $input.$t;179 }181 $base =~ s/PERL::INPUT/$input/;183 }185 {#PERL::PENNY186 my $penny_text;188 if ($penny){189 $penny_text =190 <<PPP191 <br>192 <input type = "checkbox" onclick = "ReadForm (this.form, false);" value = "( +0.01 ^__^ )">193 Add a penny! ^__^194 <br>195 PPP196 }198 $base =~ s/PERL::PENNY/$penny_text/;199 }201 {#PERL::INITIAL_COST202 $base =~ s/PERL::INITIAL_COST/\"$initial_price\"/;203 }207 {#print the revised paylist out208 open(OUT,">$name.paylist") or die "DEATH $!";209 print OUT $base;210 }214 }216 1;#stupidity