remove
[freeside.git] / httemplate / edit / part_bill_event.cgi
1 <!-- $Id: part_bill_event.cgi,v 1.2 2002-01-30 14:18:08 ivan Exp $ -->
2
3 <%
4
5 if ( $cgi->param('eventnum') && $cgi->param('eventnum') =~ /^(\d+)$/ ) {
6   $cgi->param('eventnum', $1);
7 } else {
8   $cgi->param('eventnum', '');
9 }
10
11 my ($query) = $cgi->keywords;
12 my $action = '';
13 my $part_bill_event = '';
14 if ( $cgi->param('error') ) {
15   $part_bill_event = new FS::part_bill_event ( {
16     map { $_, scalar($cgi->param($_)) } fields('part_bill_event')
17   } );
18 }
19 if ( $query && $query =~ /^(\d+)$/ ) {
20   $part_bill_event ||= qsearchs('part_bill_event',{'eventpart'=>$1});
21 } else {
22   $part_bill_event ||= new FS::part_bill_event {};
23 }
24 $action ||= $part_bill_event->pkgpart ? 'Edit' : 'Add';
25 my $hashref = $part_bill_event->hashref;
26
27 print header("$action Invoice Event Definition", menubar(
28   'Main Menu' => popurl(2),
29   'View all invoice events' => popurl(2). 'browse/part_bill_event.cgi',
30 ));
31
32 print qq!<FONT SIZE="+1" COLOR="#ff0000">Error: !, $cgi->param('error'),
33       "</FONT>"
34   if $cgi->param('error');
35
36 print '<FORM ACTION="', popurl(1), 'process/part_bill_event.cgi" METHOD=POST>';
37
38 print "Invoice Event #", $hashref->{eventpart} ? $hashref->{eventpart} : "(NEW)";
39
40 print ntable("#cccccc",2), <<END;
41 <TR><TD ALIGN="right">Payby</TD><TD><SELECT NAME="payby">
42 END
43
44 for (qw(CARD BILL COMP)) {
45   print qq!<OPTION VALUE="$_"!;
46   if ($part_bill_event->payby eq $_) {
47     print " SELECTED> $_</OPTION>";
48   } else {
49     print ">$_</OPTION>";
50   }
51 }
52
53 my $days = $hashref->{seconds}/3600;
54
55 print <<END;
56 </SELECT></TD></TR>
57 <TR><TD ALIGN="right">Event</TD><TD><INPUT TYPE="text" NAME="event" VALUE="$hashref->{event}"></TD></TR>
58 <TR><TD ALIGN="right">After</TD><TD><INPUT TYPE="text" NAME="days" VALUE="$days"> days</TD></TR>
59 END
60
61 print '<TR><TD ALIGN="right">Disabled</TD><TD>';
62 print '<INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"';
63 print ' CHECKED' if $hashref->{disabled} eq "Y";
64 print '>';
65 print '</TD></TR>';
66
67 print '<TR><TD ALIGN="right">Action</TD><TD>';
68
69 #print ntable();
70
71 #this is pretty kludgy right here.
72 tie my %events, 'Tie::IxHash',
73
74   'fee' => {
75     'name'   => 'Late fee',
76     'code'   => '$cust_main->charge( %%%charge%%%, \'%%%reason%%%\' );',
77     'html'   => 'Amount <INPUT TYPE="text" SIZE="7" NAME="charge"><BR>'.
78               'Reason <INPUT TYPE="text" NAME="reason">',
79     'weight' => 10,
80   },
81   'suspend' => {
82     'name'   => 'Suspend',
83     'code'   => '$cust_main->suspend();',
84     'weight' => 10,
85   },
86   'cancel' => {
87     'name'   => 'Cancel',
88     'code'   => '$cust_main->cancel();',
89     'weight' => 10,
90   },
91
92   'addpost' => {
93     'name' => 'Add postal invoicing',
94     'code' => '$cust_main->invoicing_list_addpost();',
95     'pad'  => 20,
96   },
97
98   'send' => {
99     'name' => 'Send invoice (email/print)',
100     'code' => '',
101     'weight' => 30
102   },
103
104   'Generate invoices' => {
105     'code' => '$cust_main->bill();',
106     'pad'  => 40,
107   },
108
109   'Apply unapplied payments and credits' => {
110     'code' => '$cust_main->apply_payments; $cust_main->apply_credits;',
111     'pad'  => 50,
112   },
113
114   'Collect on invoices' => {
115     'code' => '$cust_main->collect();',
116     'pad'  => 60,
117   },
118
119 ;
120
121 foreach my $event ( keys %events ) {
122   print ntable( "#cccccc", 2).
123         qq!<TR><TD><INPUT TYPE="radio" NAME="eventcode" VALUE="!.
124         $events{$event}{weight}. ":".
125         encode_entities($events{$event}{code}). qq!">$event</TD>!;
126   print '<TD>'. $events{$event}{html}. '</TD>' if exists $events{$event}{html};
127   print qq!</TR>!;
128   print '</TABLE>';
129 }
130
131 #print '</TABLE>';
132
133 print <<END;
134 </TD></TR>
135 </TABLE>
136 END
137
138 print qq!<INPUT TYPE="submit" VALUE="!,
139       $hashref->{eventpart} ? "Apply changes" : "Add invoice event",
140       qq!">!;
141 %>
142
143     </FORM>
144   </BODY>
145 </HTML>
146