X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fview%2Fcust_main.cgi;h=322f0674e933ac9962ee7ca06b2f74bae5a56aa4;hb=8d4abaa99403699aa5b5f02e899d2ea33980f913;hp=4497713c982037e82e91d71098953e474d3e4abf;hpb=582e73e52fd2f0324e8836ee66ae69e7a82ed364;p=freeside.git diff --git a/httemplate/view/cust_main.cgi b/httemplate/view/cust_main.cgi index 4497713c9..322f0674e 100755 --- a/httemplate/view/cust_main.cgi +++ b/httemplate/view/cust_main.cgi @@ -70,243 +70,68 @@ print "This customer's signup URL: ". "$signupurl?ref=$custnum

"; } -print ''; - -print &itable(), ''; - -print ''; - - print "Billing address", &ntable("#cccccc"), "", - &ntable("#cccccc",2), - 'Contact name', - '', - $cust_main->last, ', ', $cust_main->first, - ''; -print 'SS#', - $cust_main->ss || ' ', '' - if $conf->exists('show_ss'); - -print '', - 'Company', - $cust_main->company, - '', - 'Address', - $cust_main->address1, - '', - ; - print ' ', - $cust_main->address2, '' - if $cust_main->address2; - print 'City', - $cust_main->city, - 'State', - $cust_main->state, - 'Zip', - $cust_main->zip, '', - 'Country', - $cust_main->country, - '', - ; - 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_label. - '', - $cust_main->night || ' ', '', - 'Fax', - $cust_main->fax || ' ', '', - '', "" - ; - - if ( defined $cust_main->dbdef_table->column('ship_last') ) { - - my $pre = $cust_main->ship_last ? 'ship_' : ''; - - print "
Service address", &ntable("#cccccc"), "", - &ntable("#cccccc",2), - 'Contact name', - '', - $cust_main->get("${pre}last"), ', ', $cust_main->get("${pre}first"), - '', - 'Company', - $cust_main->get("${pre}company"), - '', - 'Address', - $cust_main->get("${pre}address1"), - '', - ; - print ' ', - $cust_main->get("${pre}address2"), '' - if $cust_main->get("${pre}address2"); - print 'City', - $cust_main->get("${pre}city"), - 'State', - $cust_main->get("${pre}state"), - 'Zip', - $cust_main->get("${pre}zip"), '', - 'Country', - $cust_main->get("${pre}country"), - '', - ; - print ''. $daytime_label. '', - '', - $cust_main->get("${pre}daytime") || ' ', '', - ''. $night_label. ''. - '', - $cust_main->get("${pre}night") || ' ', '', - 'Fax', - $cust_main->get("${pre}fax") || ' ', '', - '', "" - ; - - } +%> -print ''; + +<%= &itable() %> + + + <%= include('cust_main/contacts.html', $cust_main ) %> + + + <%= include('cust_main/misc.html', $cust_main ) %> + <% if ( $conf->config('payby-default') ne 'HIDE' ) { %> +
+ <%= include('cust_main/billing.html', $cust_main ) %> + <% } %> + + + -print ''; +<% +if ( defined $cust_main->dbdef_table->column('comments') + && $cust_main->comments =~ /[^\s\n\r]/ ) { +%> +
+Comments +<%= ntable("#cccccc") %><%= ntable("#cccccc",2) %> + + +
<%= encode_entities($cust_main->comments) %>
+ + + +<% } %> - print &ntable("#cccccc"), "", &ntable("#cccccc",2), - 'Customer number', - $custnum, '', - ; +<% if ( $conf->config('ticket_system') ) { %> +
+ <%= include('cust_main/tickets.html', $cust_main ) %> +<% } %> - my @agents = qsearch( 'agent', {} ); - my $agent; - unless ( scalar(@agents) == 1 ) { - $agent = qsearchs('agent',{ 'agentnum' => $cust_main->agentnum } ); - print 'Agent', - $agent->agentnum, ": ", $agent->agent, ''; +
+ +
+ +!. - '
-print '
'; +<% if ( $conf->config('payby-default') ne 'HIDE' ) { @@ -350,7 +177,7 @@ if ( $conf->config('payby-default') ne 'HIDE' ) { } print qq!Packages !, - qq!( Order and cancel packages (preserves services) )!, + qq!( Bulk order and cancel packages (preserves services) )!, ; #begin display packages @@ -397,27 +224,13 @@ foreach my $pkg (sort pkgsort_pkgnum_cancel @$packages) { #} print "". &itable(''); - sub freq { - - #false laziness w/edit/part_pkg.cgi - my %freq = ( #move this - '1d' => 'daily', - '1w' => 'weekly', - '2w' => 'biweekly (every 2 weeks)', - '1' => 'monthly', - '2' => 'bimonthly (every 2 months)', - '3' => 'quarterly (every 3 months)', - '6' => 'semiannually (every 6 months)', - '12' => 'annually', - '24' => 'biannually (every 2 years)', - ); - - my $freq = shift; - exists $freq{$freq} ? $freq{$freq} : "every $freq months"; + sub myfreq { + my $part_pkg = shift; + my $freq = $part_pkg->freq_pretty; + $freq =~ s/ / /g; + $freq; } - #eomove - if ( $pkg->{cancel} ) { #status: cancelled print 'Cancelled '. @@ -466,7 +279,7 @@ foreach my $pkg (sort pkgsort_pkgnum_cancel @$packages) { print '( '. pkg_cancel_link($pkg). ' )'; } else { - print 'billed '. freq($pkg->{freq}). ')'; + print 'billed '. myfreq($pkg->{part_pkg}). ')'; } } else { #setup @@ -477,7 +290,7 @@ foreach my $pkg (sort pkgsort_pkgnum_cancel @$packages) { pkg_datestr($pkg,'setup',$conf). ''; } else { print 'Active'. - ', billed '. freq($pkg->{freq}). ''. + ', billed '. myfreq($pkg->{part_pkg}). ''. 'Setup '. pkg_datestr($pkg, 'setup',$conf). ''; } @@ -570,6 +383,7 @@ print ''; my $target = "$payby$payinfo"; $payby =~ s/^BILL$/Check #/ if $payinfo; + $payby =~ s/^CHEK$/Electronic check /; $payby =~ s/^BILL$//; $payby =~ s/^(CARD|COMP)$/$1 /; my $info = $payby ? " ($payby$payinfo)" : ''; @@ -625,17 +439,17 @@ print ''; my $refund = ''; my $refund_days = $conf->config('card_refund-days') || 120; if ( $cust_pay->closed !~ /^Y/i - && $cust_pay->payby eq 'CARD' + && $cust_pay->payby =~ /^(CARD|CHEK)$/ && time-$cust_pay->_date < $refund_days*86400 && $cust_pay->unrefunded > 0 ) { - $refund = qq! (paynum. qq!">refund)!; } my $void = ''; if ( $cust_pay->closed !~ /^Y/i - && $cust_pay->payby ne 'CARD' + && $cust_pay->payby !~ /^(CARD|CHEK)$/ ) { $void = qq! ('; : $cust_refund->payinfo; $payby =~ s/^BILL$/Check #/ if $payinfo; + $payby =~ s/^CHEK$/Electronic check /; $payby =~ s/^(CARD|COMP)$/$1 /; push @history, { @@ -883,8 +699,13 @@ sub get_packages { ) { my $part_pkg = $cust_pkg->part_pkg; - + my %pkg = (); + + #to get back to the original object... should use it in the first place!! + $pkg{cust_pkg} = $cust_pkg; + $pkg{part_pkg} = $part_pkg; + $pkg{pkgnum} = $cust_pkg->pkgnum; $pkg{pkg} = $part_pkg->pkg; $pkg{pkgpart} = $part_pkg->pkgpart; @@ -896,29 +717,16 @@ sub get_packages { $pkg{susp} = $cust_pkg->getfield('susp'); $pkg{expire} = $cust_pkg->getfield('expire'); $pkg{cancel} = $cust_pkg->getfield('cancel'); - - my %svcparts = (); - foreach my $pkg_svc ( - qsearch('pkg_svc', { 'pkgpart' => $part_pkg->pkgpart }) - ) { - - next if ($pkg_svc->quantity == 0); - - my $part_svc = qsearchs('part_svc', { 'svcpart' => $pkg_svc->svcpart }); - - my $svcpart = {}; - $svcpart->{svcpart} = $part_svc->svcpart; - $svcpart->{svc} = $part_svc->svc; - $svcpart->{svcdb} = $part_svc->svcdb; - $svcpart->{quantity} = $pkg_svc->quantity; - $svcpart->{count} = 0; - $svcpart->{services} = []; - - $svcparts{$svcpart->{svcpart}} = $svcpart; - - } + my %svcparts = map { + $_->svcpart => { + $_->part_svc->hash, + 'quantity' => $_->quantity, + 'count' => $cust_pkg->num_cust_svc($_->svcpart), + #'services' => [], + }; + } $part_pkg->pkg_svc; foreach my $cust_svc ( $cust_pkg->cust_svc ) { #warn "svcnum ". $cust_svc->svcnum. " / svcpart ". $cust_svc->svcpart. "\n"; @@ -930,18 +738,14 @@ sub get_packages { #false laziness with above, to catch extraneous services. whole #damn thing should be OO... my $svcpart = ( $svcparts{$cust_svc->svcpart} ||= { - 'svcpart' => $cust_svc->svcpart, - 'svc' => $cust_svc->part_svc->svc, - 'svcdb' => $cust_svc->part_svc->svcdb, + $cust_svc->part_svc->hash, 'quantity' => 0, - 'count' => 0, - 'services' => [], + 'count' => $cust_pkg->num_cust_svc($cust_svc->svcpart), + #'services' => [], } ); push @{$svcpart->{services}}, $svc; - $svcpart->{count}++; - } $pkg{svcparts} = [ values %svcparts ]; @@ -971,11 +775,21 @@ sub svc_label_link { sub svc_provision_link { my ($pkg, $svcpart, $conf) = @_; ( my $svc_nbsp = $svcpart->{svc} ) =~ s/\s+/ /g; - my $pkgnum_svcpart = "pkgnum$pkg->{pkgnum}-svcpart$svcpart->{svcpart}"; my $num_left = $svcpart->{quantity} - $svcpart->{count}; + my $pkgnum_svcpart = "pkgnum$pkg->{pkgnum}-svcpart$svcpart->{svcpart}"; - my $link = qq!!. + my $url; + if ( $svcpart->{svcdb} eq 'svc_external' + && $conf->exists('svc_external-skip_manual') + ) { + $url = "${p}edit/process/$svcpart->{svcdb}.cgi?". + "pkgnum=$pkg->{pkgnum}&". + "svcpart=$svcpart->{svcpart}"; + } else { + $url = "${p}edit/$svcpart->{svcdb}.cgi?$pkgnum_svcpart"; + } + + my $link = qq!!. "Provision $svc_nbsp ($num_left)"; if ( $conf->exists('legacy_link') ) { $link .= '
'.