X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fview%2Fcust_main.cgi;h=4d27765d0125776d8e9a56a2614b6ae2922fe79d;hp=421bd98a4f30fe25a5c498a880cace4ef56b2374;hb=b3e85cf7a5a514f185c7d9c5ba50550c759c9ab5;hpb=86bf1d97a86661716d2d0276b28985c24180153b diff --git a/httemplate/view/cust_main.cgi b/httemplate/view/cust_main.cgi index 421bd98a4..4d27765d0 100755 --- a/httemplate/view/cust_main.cgi +++ b/httemplate/view/cust_main.cgi @@ -3,7 +3,6 @@ my $conf = new FS::Conf; -#false laziness with view/cust_pkg.cgi, but i'm trying to make that go away so my %uiview = (); my %uiadd = (); foreach my $part_svc ( qsearch('part_svc',{}) ) { @@ -15,6 +14,16 @@ print header("Customer View", menubar( 'Main Menu' => popurl(2) )); +%> + + + +<% + die "No customer specified (bad URL)!" unless $cgi->keywords; my($query) = $cgi->keywords; # needs parens with my, ->keywords returns array $query =~ /^(\d+)$/; @@ -22,10 +31,25 @@ my $custnum = $1; my $cust_main = qsearchs('cust_main',{'custnum'=>$custnum}); die "Customer not found!" unless $cust_main; -print qq!Edit this customer!; -print qq! | Delete this customer! +print qq!Edit this customer!; + +%> + + + +<% + +print qq! | !. + 'Cancel this customer' + if $cust_main->ncancelled_pkgs; + +print qq! | !. + 'Delete this customer' if $conf->exists('deletecustomers'); unless ( $conf->exists('disable_customer_referrals') ) { @@ -54,7 +78,7 @@ print ''; print "Billing address", &ntable("#cccccc"), "", &ntable("#cccccc",2), - 'Contact name', + 'Contact name', '', $cust_main->last, ', ', $cust_main->first, ''; @@ -83,9 +107,13 @@ print '', $cust_main->country, '', ; - print 'Day Phone', + my $daytime_label = FS::Msgcat::_gettext('daytime') || 'Day Phone'; + my $night_label = FS::Msgcat::_gettext('night') || 'Night Phone'; + print ''. $daytime_label. + '', $cust_main->daytime || ' ', '', - 'Night Phone', + ''. $night_label. + '', $cust_main->night || ' ', '', 'Fax', $cust_main->fax || ' ', '', @@ -122,10 +150,10 @@ print '', $cust_main->get("${pre}country"), '', ; - print 'Day Phone', + print ''. $daytime_label. '', '', $cust_main->get("${pre}daytime") || ' ', '', - 'Night Phone'. + ''. $night_label. ''. '', $cust_main->get("${pre}night") || ' ', '', 'Fax', @@ -140,7 +168,7 @@ print ''; print ''; print &ntable("#cccccc"), "", &ntable("#cccccc",2), - 'Customer number', + 'Customer number', $custnum, '', ; @@ -158,13 +186,13 @@ print ''; my $referral = qsearchs('part_referral', { 'refnum' => $cust_main->refnum } ); - print 'Advertising source', + print 'Advertising source', $referral->refnum, ": ", $referral->referral, ''; } print 'Order taker', $cust_main->otaker, ''; - print 'Referring Customer'; + print 'Referring Customer'; my $referring_cust_main = ''; if ( $cust_main->referral_custnum && ( $referring_cust_main = @@ -188,26 +216,29 @@ print ''; print '
'; +if ( $conf->config('payby-default') ne 'HIDE' ) { + my @invoicing_list = $cust_main->invoicing_list; print "Billing information (", qq!!, "Bill now)", &ntable("#cccccc"), "", &ntable("#cccccc",2), - 'Tax exempt', + 'Tax exempt', $cust_main->tax ? 'yes' : 'no', '', - 'Postal invoices', + 'Postal invoices', ( grep { $_ eq 'POST' } @invoicing_list ) ? 'yes' : 'no', '', - 'Email invoices', + 'Email invoices', join(', ', grep { $_ ne 'POST' } @invoicing_list ) || 'no', '', - 'Billing type', + 'Billing type', ; - if ( $cust_main->payby eq 'CARD' ) { - my $payinfo = $cust_main->payinfo; - $payinfo = 'x'x(length($payinfo)-4). substr($payinfo,(length($payinfo)-4)); - print 'Credit card', + if ( $cust_main->payby eq 'CARD' || $cust_main->payby eq 'DCRD' ) { + my $payinfo = $cust_main->payinfo_masked; + print 'Credit card ', + ( $cust_main->payby eq 'CARD' ? '(automatic)' : '(on-demand)' ), + '', 'Card number', $payinfo, '', 'Expiration', @@ -215,6 +246,25 @@ print '
'; 'Name on card', $cust_main->payname, '' ; + } elsif ( $cust_main->payby eq 'CHEK' || $cust_main->payby eq 'DCHK') { + my( $account, $aba ) = split('@', $cust_main->payinfo ); + print 'Electronic check ', + ( $cust_main->payby eq 'CHEK' ? '(automatic)' : '(on-demand)' ), + '', + 'Account number', + $account, '', + 'ABA/Routing code', + $aba, '', + 'Bank name', + $cust_main->payname, '' + ; + } elsif ( $cust_main->payby eq 'LECB' ) { + $cust_main->payinfo =~ /^(\d{3})(\d{3})(\d{4})$/; + my $payinfo = "$1-$2-$3"; + print 'Phone bill billing', + 'Phone number', + $payinfo, '', + ; } elsif ( $cust_main->payby eq 'BILL' ) { print 'Billing'; print 'P.O. ', @@ -227,7 +277,7 @@ print '
'; ; } elsif ( $cust_main->payby eq 'COMP' ) { print 'Complimentary', - 'Authorized by', + 'Authorized by', $cust_main->payinfo, '', 'Expiration', $cust_main->paydate, '', @@ -236,418 +286,766 @@ print '
'; print ""; +} + print ''; if ( defined $cust_main->dbdef_table->column('comments') - && $cust_main->comments ) + && $cust_main->comments =~ /[^\s\n\r]/ ) { - print "
Comments", &ntable("#cccccc"), "", - &ntable("#cccccc",2), - '
', $cust_main->comments,
+  print "
Comments". &ntable("#cccccc"). "". + &ntable("#cccccc",2). + '
'.
+        encode_entities($cust_main->comments).
         '
'; } -print ''; +%> -print '
'. - '
'. - qq!!. - '

'; - -print '
'. - qq!
!. - qq!!. - qq!Description:!. - qq! Amount:!. - qq! !; - -#false laziness w/ edit/part_pkg.cgi -if ( $conf->exists('enable_taxclasses') ) { - print ' +

!; +<% +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 )' + ) +) { +%> +