my $cust_main = qsearchs('cust_main',{'custnum'=>$custnum});
die "Customer not found!" unless $cust_main;
-print qq!<A HREF="!, popurl(2),
- qq!edit/cust_main.cgi?$custnum">Edit this customer</A>!;
-print qq! | <A HREF="!, popurl(2),
- qq!misc/delete-customer.cgi?$custnum"> Delete this customer</A>!
+print qq!<A HREF="${p}edit/cust_main.cgi?$custnum">Edit this customer</A>!;
+
+print <<END;
+<SCRIPT>
+function cancel_areyousure(href) {
+ if (confirm("Perminantly delete all services and cancel this customer?") == true)
+ window.location.href = href;
+}
+</SCRIPT>
+END
+
+print qq! | <A HREF="javascript:cancel_areyousure('${p}misc/cust_main-cancel.cgi?$custnum')">!.
+ 'Cancel this customer</A>'
+ if $cust_main->ncancelled_pkgs;
+
+print qq! | <A HREF="${p}misc/delete-customer.cgi?$custnum">!.
+ 'Delete this customer</A>'
if $conf->exists('deletecustomers');
unless ( $conf->exists('disable_customer_referrals') ) {
'<TR><TD ALIGN="right">Billing type</TD><TD BGCOLOR="#ffffff">',
;
- if ( $cust_main->payby eq 'CARD' ) {
+ if ( $cust_main->payby eq 'CARD' && $cust_main->payby eq 'DCRD' ) {
my $payinfo = $cust_main->payinfo;
$payinfo = 'x'x(length($payinfo)-4). substr($payinfo,(length($payinfo)-4));
- print 'Credit card</TD></TR>',
+ print 'Credit card ',
+ ( $cust_main->payby eq 'CARD' ? '(automatic)' : '(on-demand)' ),
+ '</TD></TR>',
'<TR><TD ALIGN="right">Card number</TD><TD BGCOLOR="#ffffff">',
$payinfo, '</TD></TR>',
'<TR><TD ALIGN="right">Expiration</TD><TD BGCOLOR="#ffffff">',
'<TR><TD ALIGN="right">Name on card</TD><TD BGCOLOR="#ffffff">',
$cust_main->payname, '</TD></TR>'
;
- } elsif ( $cust_main->payby eq 'CHEK' ) {
+ } elsif ( $cust_main->payby eq 'CHEK' && $cust_main->payby eq 'DCHK') {
my( $account, $aba ) = split('@', $cust_main->payinfo );
- print 'Electronic check</TD></TR>',
+ print 'Electronic check',
+ ( $cust_main->payby eq 'CHEK' ? '(automatic)' : '(on-demand)' ),
+ '</TD></TR>',
'<TR><TD ALIGN="right">Account number</TD><TD BGCOLOR="#ffffff">',
$account, '</TD></TR>',
'<TR><TD ALIGN="right">ABA/Routing code</TD><TD BGCOLOR="#ffffff">',
'<TR><TD ALIGN="right">Bank name</TD><TD BGCOLOR="#ffffff">',
$cust_main->payname, '</TD></TR>'
;
+ } elsif ( $cust_main->payby eq 'LECB' ) {
+ $cust_main->payinfo =~ /^(\d{3})(\d{3})(\d{4})$/;
+ my $payinfo = "$1-$2-$3";
+ print 'Phone bill billing</TD></TR>',
+ '<TR><TD ALIGN="right">Phone number</TD><TD BGCOLOR="#ffffff">',
+ $payinfo, '</TD></TR>',
+ ;
} elsif ( $cust_main->payby eq 'BILL' ) {
print 'Billing</TD></TR>';
print '<TR><TD ALIGN="right">P.O. </TD><TD BGCOLOR="#ffffff">',
qq!<INPUT TYPE="hidden" NAME="custnum" VALUE="$custnum">!.
'<SELECT NAME="pkgpart"><OPTION> ';
-foreach my $type_pkgs ( qsearch('type_pkgs',{'typenum'=> $agent->typenum }) ) {
- my $pkgpart = $type_pkgs->pkgpart;
-# my $part_pkg = qsearchs('part_pkg', { 'pkgpart' => $pkgpart } )
-# or do { warn "unknown type_pkgs.pkgpart $pkgpart"; next; };
- my $part_pkg =
- qsearchs('part_pkg', { 'pkgpart' => $pkgpart, 'disabled' => '' } )
- or next;
- print qq!<OPTION VALUE="$pkgpart">!. $part_pkg->pkg. ' - '.
+foreach my $part_pkg (
+ qsearch( 'part_pkg', { 'disabled' => '' }, '',
+ ' AND 0 < ( SELECT COUNT(*) FROM type_pkgs '.
+ ' WHERE typenum = '. $agent->typenum.
+ ' AND type_pkgs.pkgpart = part_pkg.pkgpart )'
+ )
+) {
+ print '<OPTION VALUE="'. $part_pkg->pkgpart. '">'. $part_pkg->pkg. ' - '.
$part_pkg->comment;
}
#display packages
-#formatting
-print qq!!, &table(), "\n",
- qq!<TR><TH COLSPAN=2 ROWSPAN=2>Package</TH><TH COLSPAN=5>!,
- qq!Dates</TH><TH COLSPAN=2 ROWSPAN=2>Services</TH></TR>\n!,
- qq!<TR><TH><FONT SIZE=-1>Setup</FONT></TH><TH>!,
- qq!<FONT SIZE=-1>Next bill</FONT>!,
- qq!</TH><TH><FONT SIZE=-1>Susp.</FONT></TH><TH><FONT SIZE=-1>Expire!,
- qq!</FONT></TH>!,
- qq!<TH><FONT SIZE=-1>Cancel</FONT></TH>!,
- qq!</TR>\n!;
-
#get package info
my @packages;
if ( $conf->exists('hidecancelledpackages') ) {
@packages = sort { $a->pkgnum <=> $b->pkgnum } ($cust_main->all_pkgs);
}
+if ( @packages ) {
+ #formatting
+
+ my $colspan = $packages[0]->dbdef_table->column('last_bill') ? 6 : 5;
+
+ print &table(), "\n",
+ qq!<TR><TH COLSPAN=2 ROWSPAN=2>Package</TH><TH COLSPAN=$colspan>!,
+ qq!Dates</TH><TH COLSPAN=2 ROWSPAN=2>Services</TH></TR>\n<TR>!,
+ qq!<TH><FONT SIZE=-1>Setup</FONT></TH>!;
+
+ print qq!<TH><FONT SIZE=-1>Last bill</FONT></TH>!
+ if $packages[0]->dbdef_table->column('last_bill');
+
+ print qq!<TH><FONT SIZE=-1>Next bill</FONT></TH>!,
+ qq!<TH><FONT SIZE=-1>Susp.</FONT></TH>!,
+ qq!<TH><FONT SIZE=-1>Expire</FONT></TH>!,
+ qq!<TH><FONT SIZE=-1>Cancel</FONT></TH>!,
+ qq!</TR>\n!;
+}
+
my $n1 = '<TR>';
foreach my $package (@packages) {
my $pkgnum = $package->pkgnum;
qq!$pkg - $comment ( <a href="$pkgview">Details</a> )!;
# | !;
- print qq! ( <A HREF="${p}misc/change_pkg.cgi?$pkgnum">!.
- 'Change package</A> )';
-
#false laziness with view/cust_pkg.cgi, but i'm trying to make that go away so
unless ( $package->getfield('cancel') ) {
+
+ print qq! ( <A HREF="${p}misc/change_pkg.cgi?$pkgnum">!.
+ 'Change package</A> )';
+
print ' ( ';
if ( $package->getfield('susp') ) {
print qq!<A HREF="${p}misc/unsusp_pkg.cgi?$pkgnum">Unsuspend</A>!;
}
print '</FONT></TD>';
- for ( qw( setup bill susp expire cancel ) ) {
+ my @fields = qw( setup );
+ push @fields, qw( last_bill ) if $package->dbdef_table->column('last_bill');
+ push @fields, qw( bill susp expire cancel);
+
+ for ( @fields ) {
print "<TD ROWSPAN=$rowspan><FONT SIZE=-1>", ( $package->getfield($_)
? time2str("%D</FONT><BR><FONT SIZE=-3>%l:%M:%S%P %z</FONT>",
$package->getfield($_) )
#formatting
print "</TABLE>";
+
print <<END;
<SCRIPT>
function cust_pay_areyousure(href) {