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, ' |
';
+
+
+
';
+<%
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 .= '
'.