X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fview%2Fcust_bill.cgi;h=762eec03351d42e44f7a7e8f8c5e006e42414f96;hb=6b0c4f9f90b299dabe3e946ad8ea00ca94efa7de;hp=39c1a191f75b2187f9e4d26dad8d87a78316c64b;hpb=8d5366cf84513ed7e7832315fb3d36c49f4f9a8a;p=freeside.git
diff --git a/httemplate/view/cust_bill.cgi b/httemplate/view/cust_bill.cgi
index 39c1a191f..762eec033 100755
--- a/httemplate/view/cust_bill.cgi
+++ b/httemplate/view/cust_bill.cgi
@@ -1,111 +1,262 @@
-<%
+<& /elements/header-cust_main.html, view=>'payment_history', custnum=>$custnum &>
-#untaint invnum
-my($query) = $cgi->keywords;
-$query =~ /^((.+)-)?(\d+)$/;
-my $templatename = $2;
-my $invnum = $3;
+
Invoice #<% $invnum %>
+
+% if ( !$cust_bill->closed ) { # otherwise allow no changes
+% my $can_delete = $conf->exists('deleteinvoices')
+% && $curuser->access_right('Delete invoices');
+% my $can_void = $curuser->access_right('Void invoices');
+% if ( $can_void ) {
+ <& /elements/popup_link.html,
+ 'label' => emt('Void this invoice'),
+ 'actionlabel' => emt('Void this invoice'),
+ 'action' => $p.'misc/void-cust_bill.html?invnum='.$invnum,
+ &>
+% }
+% if ( $can_void and $can_delete ) {
+ |
+% }
+% if ( $can_delete ) {
+ \
+ <% emt('Delete this invoice') |h %>
+% }
+% if ( $can_void or $can_delete ) {
+
+% }
+% }
-my $conf = new FS::Conf;
+% if ( $cust_bill->owed > 0
+% && $curuser->access_right(['Post payment', 'Post check payment', 'Post cash payment'])
+% && ! $conf->exists('pkg-balances')
+% )
+% {
+% my $s = 0;
-my $cust_bill = qsearchs('cust_bill',{'invnum'=>$invnum});
-die "Invoice #$invnum not found!" unless $cust_bill;
-my $custnum = $cust_bill->getfield('custnum');
+ <% mt('Post') |h %>
+
+% if ( $curuser->access_right(['Post payment', 'Post check payment']) ) {
+ <% $s++ ? ' | ' : '' %>
+ <% mt('check') |h %>
+% }
+
+% if ( $curuser->access_right(['Post payment', 'Post cash payment']) ) {
+ <% $s++ ? ' | ' : '' %>
+ <% mt('cash') |h %>
+% }
+
+%# % if ( $payby{'WEST'} && $curuser->access_right(['Post payment']) ) {
+%# <% $s++ ? ' | ' : '' %>
+%# <% mt('Western Union') |h %>
+%# % }
+%#
+%# % if ( $payby{'MCRD'} && $curuser->access_right(['Post payment']) ) {
+%# <% $s++ ? ' | ' : '' %>
+%# <% mt('manual credit card') |h %>
+%# % }
+%#
+%# % if ( $payby{'MCHK'} && $curuser->access_right(['Post payment']) ) {
+%# <% $s++ ? ' | ' : '' %>
+%# <% mt('manual electronic check') |h %>
+%# % }
+
+ <% mt('payment against this invoice') |h %>
-#my $printed = $cust_bill->printed;
+% }
-my $link = $templatename ? "$templatename-$invnum" : $invnum;
+% if ( $conf->exists('cust_bill-enable_promised_date') ) {
+% my $onclick = include('/elements/popup_link_onclick.html',
+% 'action' => $p.'misc/cust_bill-promised_date.html?'.$invnum,
+% 'actionlabel' => emt('Set promised payment date'),
+% 'width' => 320,
+% 'height' => 240,
+% );
+% $onclick = '';
+% if ( $cust_bill->promised_date ) {
+% my $date_format = $conf->config('date_format') || '%b %o, %Y';
+ <% emt('Payment promised by [_1]',
+ time2str($date_format, $cust_bill->promised_date) ) %>
+ ( <% $onclick %><% mt('change') |h %> )
+
+% }
+% elsif ( $cust_bill->owed > 0 ) {
+ <% $onclick %><% mt('Set promised payment date' ) |h %>
+
+% }
+% }
-%>
-<%= header('Invoice View', menubar(
- "Main Menu" => $p,
- "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum",
-)) %>
+% if ( $curuser->access_right('Resend invoices') ) {
+ <% mt('Print this invoice') |h %>
+% }
-<% if ( $cust_bill->owed > 0 ) { %>
- Enter payments (check/cash) against this invoice |
-<% } %>
+% if ( $conf->exists('support-key')
+% && $curuser->access_right('Print and mail invoices')
+% )
+% {
+ | <& /elements/popup_link.html,
+ 'action' => $p."misc/post_fsinc-invoice.cgi?$link",
+ 'label' => 'Print and mail this invoice online',
+ 'actionlabel' => 'Invoice printing and mailing',
+ &>
+% }
-Reprint this invoice
+% if ( $curuser->access_right('Resend invoices') ) {
-<% if ( grep { $_ ne 'POST' } $cust_bill->cust_main->invoicing_list ) { %>
- | Re-email
- this invoice
-<% } %>
+% if ( grep { $_ ne 'POST' } $cust_bill->cust_main->invoicing_list ) {
+ | <% mt('Re-email this invoice') |h %>
+% }
-<% if ( $conf->exists('hylafax') && length($cust_bill->cust_main->fax) ) { %>
- | Re-fax
- this invoice
-<% } %>
+% if ( $conf->exists('hylafax') && length($cust_bill->cust_main->fax) ) {
+ | <% mt('Re-fax this invoice') |h %>
+% }
+
+% }
+
+% if ( $curuser->access_right('Resend invoices')
+% || $curuser->access_right('Print and mail invoices') ) {
+
+% }
+
+% my $br = 0;
+% if ( $conf->exists('invoice_latex') ) {
+
+ <% mt('View typeset invoice PDF') |h %>
+
+% $br++;
+% }
+
+% my @modes = grep {! $_->disabled}
+% $cust_bill->cust_main->agent->invoice_modes;
+% if ( @modes || $include_statement_template ) {
+<% $br ? '|' : '' %>
+<% emt('View as:') %>
+
+% }
+
+% if ( $cust_bill->num_cust_event ) {
+<% $br ? '|' : '' %>
+<% mt('View invoice events') |h %>
+% $br++;
+% }
+% if ( $cust_bill->tax > 0 ) { # inefficient
+<% $br ? '|' : '' %>
+<& /elements/popup_link.html,
+ 'action' => 'cust_bill_tax_matrix.html?' . $cust_bill->invnum,
+ 'label' => mt('View tax details'),
+ 'actionlabel' => mt('Tax details'),
+ 'width' => 1050,
+ 'height' => 500,
+ 'title' => emt('Tax details'),
+&>
+% $br++;
+% }
+% if ( $cust_bill->taxengine_request ) { # inefficient
+<% $br ? '|' : '' %>
+<& /elements/popup_link.html,
+ 'action' => 'cust_bill-taxengine_request.html?invnum=' . $cust_bill->invnum,
+ 'label' => mt('View raw tax engine request'),
+ 'actionlabel' => mt('Tax engine request'),
+ 'width' => 1050,
+ 'height' => 600,
+ 'title' => emt('Tax engine request'),
+&>
+% $br++;
+% }
-<% if ( $conf->exists('invoice_latex') ) { %>
- View typeset invoice
-
-<% } %>
-
-<% #false laziness with search/cust_bill_event.cgi
- unless ( $templatename ) { %>
-
- <%= table() %>
-
- Event |
- Date |
- Status |
-
-
- <% foreach my $cust_bill_event (
- sort { $a->_date <=> $b->_date } $cust_bill->cust_bill_event
- ) {
-
- my $status = $cust_bill_event->status;
- $status .= ': '. encode_entities($cust_bill_event->statustext)
- if $cust_bill_event->statustext;
- my $part_bill_event = $cust_bill_event->part_bill_event;
- %>
-
- <%= $part_bill_event->event %>
-
- <% if (
- $part_bill_event->plan eq 'send_alternate'
- && $part_bill_event->plandata =~ /^(agent_)?templatename (.*)$/m
- ) {
- my $alt_templatename = $2;
- my $alt_link = "$alt_templatename-$invnum";
- %>
- ( view
- | view
- typeset
- | re-print
- <% if ( grep { $_ ne 'POST' }
- $cust_bill->cust_main->invoicing_list ) { %>
- | re-email
- <% } %>
-
- <% if ( $conf->exists('hylafax')
- && length($cust_bill->cust_main->fax) ) { %>
- | re-fax
- <% } %>
-
- )
- <% } %>
-
- |
- <%= time2str("%a %b %e %T %Y", $cust_bill_event->_date) %> |
- <%= $status %> |
-
- <% } %>
-
-
-
-
-<% } %>
-
-<% if ( $conf->exists('invoice_html') ) { %>
- <%= $cust_bill->print_html('', $templatename) %>
-<% } else { %>
- <%= $cust_bill->print_text('', $templatename) %>
-<% } %>
-
-