X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fview%2Fcust_main.cgi;h=322f0674e933ac9962ee7ca06b2f74bae5a56aa4;hb=8d4abaa99403699aa5b5f02e899d2ea33980f913;hp=1a04ff61c384fd2ddc0cb29a805ed17a558e2d76;hpb=4dbbbee37e78a035022974d19b3b80aeaead6049;p=freeside.git
diff --git a/httemplate/view/cust_main.cgi b/httemplate/view/cust_main.cgi
index 1a04ff61c..322f0674e 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') ) {
@@ -46,562 +70,800 @@ 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,
- ' |
',
- ;
- print 'Day Phone | ',
- $cust_main->daytime || ' ', ' |
',
- 'Night Phone | ',
- $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 'Day Phone | ',
- '',
- $cust_main->get("${pre}daytime") || ' ', ' |
',
- 'Night Phone | '.
- '',
- $cust_main->get("${pre}night") || ' ', ' |
',
- 'Fax | ',
- $cust_main->get("${pre}fax") || ' ', ' |
',
- '', ""
- ;
+%>
+
+<%= &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 ) %>
+ <% } %>
+ |
+
+
+
+<%
+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) %>
+ |
+
+
+<% } %>
+
+<% if ( $conf->config('ticket_system') ) { %>
+
+ <%= include('cust_main/tickets.html', $cust_main ) %>
+<% } %>
+
+
+
+
-print '';
+<%
- print &ntable("#cccccc"), " | ", &ntable("#cccccc",2),
- ' |
Customer number | ',
- $custnum, ' |
',
- ;
+if ( $conf->config('payby-default') ne 'HIDE' ) {
- my @agents = qsearch( 'agent', {} );
- my $agent;
- unless ( scalar(@agents) == 1 ) {
- $agent = qsearchs('agent',{ 'agentnum' => $cust_main->agentnum } );
- print 'Agent | ',
- $agent->agentnum, ": ", $agent->agent, ' |
';
+ print
+ qq!
!;
+
+}
+
+print qq!Packages !,
+ qq!( Bulk order and cancel packages (preserves services) )!,
+;
+
+#begin display packages
+
+#get package info
+
+my $packages = get_packages($cust_main, $conf);
+
+if ( @$packages ) {
+%>
+
+
+ Package |
+ Status |
+ Services |
+
+<%
+foreach my $pkg (sort pkgsort_pkgnum_cancel @$packages) {
+ my $rowspan = 0;
+
+ if ($pkg->{cancel}) {
+ $rowspan = 0;
+ } else {
+ foreach my $svcpart (@{$pkg->{svcparts}}) {
+ $rowspan += $svcpart->{count};
+ $rowspan++ if ($svcpart->{count} < $svcpart->{quantity});
+ }
+ }
+
+%>
+
+
+ >
+ <%=$pkg->{pkgnum}%>:
+ <%=$pkg->{pkg}%> - <%=$pkg->{comment}%>
+<% unless ($pkg->{cancel}) { %>
+ ( <%=pkg_change_link($pkg)%> )
+ ( <%=pkg_dates_link($pkg)%> | <%=pkg_customize_link($pkg,$custnum)%> )
+<% } %>
+ |
+<%
+ #foreach (qw(setup last_bill next_bill susp expire cancel)) {
+ # print qq! ! . pkg_datestr($pkg,$_,$conf) . qq! | \n!;
+ #}
+ print "". &itable('');
+
+ sub myfreq {
+ my $part_pkg = shift;
+ my $freq = $part_pkg->freq_pretty;
+ $freq =~ s/ / /g;
+ $freq;
}
- print " |
";
+ if ( $pkg->{cancel} ) { #status: cancelled
-print '';
+ print 'Cancelled | '.
+ ''. pkg_datestr($pkg,'cancel',$conf). ' |
';
+ unless ( $pkg->{setup} ) {
+ print 'Never billed |
';
+ } else {
+ print "Setup | ".
+ pkg_datestr($pkg, 'setup',$conf). ' |
';
+ print "Last bill | ".
+ pkg_datestr($pkg, 'last_bill',$conf). ' |
'
+ if $pkg->{'last_bill'};
+ print "Suspended | ".
+ pkg_datestr($pkg, 'susp',$conf). ' |
'
+ if $pkg->{'susp'};
+ }
-if ( defined $cust_main->dbdef_table->column('comments')
- && $cust_main->comments )
-{
- print "
Comments", &ntable("#cccccc"), "",
- &ntable("#cccccc",2),
- ' |
', $cust_main->comments,
- ' |
';
-}
+ } else {
-print '';
-
-print '
'.
- '