<TR>
<TD ALIGN="right">Package</TD>
- <TD BGCOLOR="#ffffff"><% $cust_pkg->pkg %></TD>
+ <TD BGCOLOR="#ffffff"><% $part_pkg->pkg %></TD>
+ </TR>
+
+ <TR>
+ <TD ALIGN="right">Custom</TD>
+ <TD BGCOLOR="#ffffff"><% $part_pkg->custom %></TD>
</TR>
<TR>
<TD ALIGN="right">Comment</TD>
- <TD BGCOLOR="#ffffff"><% $cust_pkg->comment %></TD>
+ <TD BGCOLOR="#ffffff"><% $part_pkg->comment %></TD>
</TR>
<TR>
<TD BGCOLOR="#ffffff"><% $cust_pkg->otaker %></TD>
</TR>
+% if ( $cust_pkg->setup && ! $cust_pkg->start_date ) {
+ <& .row_display, cust_pkg=>$cust_pkg, column=>'start_date', label=>'Start' &>
+% } else {
+ <& .row_edit, cust_pkg=>$cust_pkg, column=>'start_date', label=>'Start' &>
+% }
+
<& .row_edit, cust_pkg=>$cust_pkg, column=>'setup', label=>'Setup' &>
<& .row_edit, cust_pkg=>$cust_pkg, column=>'last_bill', label=>$last_bill_or_renewed &>
<& .row_edit, cust_pkg=>$cust_pkg, column=>'bill', label=>$next_bill_or_prepaid_until &>
- <& .row_edit, cust_pkg=>$cust_pkg, column=>'adjourn', label=>'Adjournment', note=>'(will <b>suspend</b> this package when the date is reached)' &>
- <& .row_display, cust_pkg=>$cust_pkg, column=>'susp', label=>'Suspension' &>
+% if ( $cust_pkg->contract_end or $part_pkg->option('contract_end_months',1) ) {
+ <& .row_edit, cust_pkg=>$cust_pkg, column=>'contract_end',label=>'Contract end' &>
+% }
+ <& .row_display, cust_pkg=>$cust_pkg, column=>'adjourn', label=>'Adjournment', note=>'(will <b>suspend</b> this package when the date is reached)' &>
+ <& .row_display, cust_pkg=>$cust_pkg, column=>'susp', label=>'Suspension' &>
- <& .row_edit, cust_pkg=>$cust_pkg, column=>'expire', label=>'Expiration', note=>'(will <b>cancel</b> this package when the date is reached)' &>
+ <& .row_display, cust_pkg=>$cust_pkg, column=>'expire', label=>'Expiration', note=>'(will <b>cancel</b> this package when the date is reached)' &>
<& .row_display, cust_pkg=>$cust_pkg, column=>'cancel', label=>'Cancellation' &>
+
<%def .row_edit>
<%args>
$cust_pkg
<SCRIPT TYPE="text/javascript">
Calendar.setup({
inputField: "<% $column %>_text",
- ifFormat: "%m/%d/%Y",
+ ifFormat: "<% $date_format %>",
button: "<% $column %>_button",
align: "BR"
});
$cust_pkg
$column
$label
+ $note => ''
</%args>
% if ( $cust_pkg->get($column) ) {
<TR>
<TD ALIGN="right"><% $label %> date</TD>
- <TD BGCOLOR="#ffffff"><% time2str($format,$cust_pkg->get($column)) %></TD>
+ <TD BGCOLOR="#ffffff"><% time2str($format,$cust_pkg->get($column)) %>
+% if ( $note ) {
+ <BR><FONT SIZE=-1><% $note %></FONT>
+% }
+ </TD>
</TR>
% }
</%def>
</FORM>
<% include('/elements/footer.html') %>
+<%shared>
-<%once>
+my $conf = new FS::Conf;
+my $date_format = $conf->config('date_format') || '%m/%d/%Y';
-#my $format = "%c %z (%Z)";
-my $format = "%m/%d/%Y %T %z (%Z)";
+my $format = $date_format. ' %T'; # %z (%Z)';
-#false laziness w/view/cust_main/packages.html
-#my( $billed_or_prepaid,
-
-</%once>
+</%shared>
<%init>
die "access denied"
unless $FS::CurrentUser::CurrentUser->access_right('Edit customer package dates');
+
my $error = '';
my( $pkgnum, $cust_pkg );
if ( $cgi->param('error') ) {
$pkgnum = $cgi->param('pkgnum');
- if ( $cgi->param('error') eq '_bill_areyousure' ) {
- if ( $cgi->param('bill') =~ /^([\s\d\/\:\-\(\w\)]*)$/ ) {
- my $bill = $1;
- $cgi->param('error', '');
- $error = "You are attempting to set the next bill date to $bill, which is
- in the past. This will charge the customer for the interval
- from $bill until now. Are you sure you want to do this? ".
- '<INPUT TYPE="checkbox" NAME="bill_areyousure" VALUE="1">';
+
+ if ( $cgi->param('error') =~ /^_/ ) {
+
+ my @errors = ();
+ my %errors = map { $_=>1 } split(',', $cgi->param('error'));
+ $cgi->param('error', '');
+
+ if ( $errors{'_bill_areyousure'} ) {
+ if ( $cgi->param('bill') =~ /^([\s\d\/\:\-\(\w\)]*)$/ ) {
+ my $bill = $1;
+ push @errors,
+ "You are attempting to set the next bill date to $bill, which is
+ in the past. This will charge the customer for the interval
+ from $bill until now. Are you sure you want to do this? ".
+ '<INPUT TYPE="checkbox" NAME="bill_areyousure" VALUE="1">';
+ }
+ }
+
+ if ( $errors{'_setup_areyousure'} ) {
+ push @errors,
+ "You are attempting to remove the setup date. This will re-charge the
+ customer for the setup fee. Are you sure you want to do this? ".
+ '<INPUT TYPE="checkbox" NAME="setup_areyousure" VALUE="1">';
}
+
+ if ( $errors{'_start'} ) {
+ push @errors,
+ "You are attempting to add a start date to a package that has already
+ started billing.";
+ }
+
+ $error = join('<BR><BR>', @errors );
+
}
#get package record
$cust_pkg = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum});
die "No package!" unless $cust_pkg;
- foreach my $col (qw( setup last_bill bill adjourn expire )) {
+ foreach my $col (qw( start_date setup last_bill bill adjourn expire )) {
my $value = $cgi->param($col);
- $cust_pkg->set( $col, $value ? str2time($value) : '' );
+ $cust_pkg->set( $col, $value ? parse_datetime($value) : '' );
}
} else {