summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2016-03-01 09:08:48 -0800
committerIvan Kohler <ivan@freeside.biz>2016-03-01 09:08:48 -0800
commit6e33e8af0974d49c1c0cf65b1963846d35f6c156 (patch)
treec1b35bbc91a9681526e8c306339973cb3475ad5a
parentb946b5a2acce328ac0e163dbf7bf8e83e7eb677a (diff)
parent47f8f6a1868aeb155b985c10f332c5a9d455f032 (diff)
Merge branch 'master' of git.freeside.biz:/home/git/freeside
-rw-r--r--FS/bin/freeside-ipifony-download12
-rw-r--r--httemplate/misc/send-invoice.cgi2
-rw-r--r--httemplate/search/agent_commission.html3
-rwxr-xr-xhttemplate/search/elements/cust_pay_or_refund.html4
-rw-r--r--httemplate/search/sales_commission.html3
-rwxr-xr-xhttemplate/view/cust_bill.cgi38
-rw-r--r--httemplate/view/elements/cust_bill-typeset4
7 files changed, 47 insertions, 19 deletions
diff --git a/FS/bin/freeside-ipifony-download b/FS/bin/freeside-ipifony-download
index 51db035d5..ee1f4bdfe 100644
--- a/FS/bin/freeside-ipifony-download
+++ b/FS/bin/freeside-ipifony-download
@@ -13,7 +13,7 @@ use File::Copy qw(copy);
use Text::CSV;
my %opt;
-getopts('va:P:C:e:', \%opt);
+getopts('vqa:P:C:e:', \%opt);
# Product codes that are subject to flat rate E911 charges. For these
# products, the'quantity' field represents the number of lines.
@@ -31,6 +31,7 @@ sub HELP_MESSAGE { '
Usage:
freeside-ipifony-download
[ -v ]
+ [ -q ]
[ -a archivedir ]
[ -P port ]
[ -C category ]
@@ -201,10 +202,12 @@ FILE: foreach my $filename (@$files) {
amount => $hash{unit_price},
quantity => $hash{quantity},
start_date => $cust_main->get('charge_date'),
- pkg => $hash{date_desc} .
- ' (' . $hash{quantity} . ' @ $' . $hash{unit_price} . ' ea)',
+ pkg => $hash{date_desc},
taxclass => $TAXCLASSES{ $hash{taxclass} },
);
+ if ( $opt{q} ) {
+ $charge_opt{pkg} .= ' (' . $hash{quantity} . ' @ $' . $hash{unit_price} . ' ea)';
+ }
if (my $classname = $hash{classname}) {
if (!exists($classnum_of{$classname}) ) {
# then look it up
@@ -292,6 +295,7 @@ freeside-ipifony-download - Download and import invoice items from IPifony.
freeside-ipifony-download
[ -v ]
+ [ -q ]
[ -a archivedir ]
[ -P port ]
[ -C category ]
@@ -312,6 +316,8 @@ I<hostname>: the SFTP server.
-v: Be verbose.
+-q: Include the quantity and unit price in the charge description.
+
-a I<archivedir>: Save a copy of the downloaded file to I<archivedir>.
-P I<port>: Connect to that TCP port.
diff --git a/httemplate/misc/send-invoice.cgi b/httemplate/misc/send-invoice.cgi
index 435875348..dea081020 100644
--- a/httemplate/misc/send-invoice.cgi
+++ b/httemplate/misc/send-invoice.cgi
@@ -25,6 +25,7 @@ my $invnum = $cgi->param('invnum');
my $template = $cgi->param('template');
my $notice_name = $cgi->param('notice_name') if $cgi->param('notice_name');
my $method = $cgi->param('method');
+my $no_coupon = $cgi->param('no_coupon');
my $mode;
if ( $cgi->param('mode') =~ /^(\d+)$/ ) {
$mode = $1;
@@ -42,6 +43,7 @@ $cust_bill->set('mode' => $mode) if $mode;
#these methods die instead of return errors, so, handle that without a backtrace
eval { $cust_bill->$method({ 'template' => $template,
'notice_name' => $notice_name,
+ 'no_coupon' => $no_coupon,
});
};
my $error = $@;
diff --git a/httemplate/search/agent_commission.html b/httemplate/search/agent_commission.html
index 386452aeb..a7edc3b22 100644
--- a/httemplate/search/agent_commission.html
+++ b/httemplate/search/agent_commission.html
@@ -1,5 +1,6 @@
% if ( $agentnum ) {
-<% $cgi->redirect($sales_link->[0] . $agentnum) %>
+% my $url = 'agent_pkg_class.html?' . $cgi->query_string;
+<% $cgi->redirect($url) %>
% } else {
<& elements/commission.html,
'title' => $title,
diff --git a/httemplate/search/elements/cust_pay_or_refund.html b/httemplate/search/elements/cust_pay_or_refund.html
index 697cf844b..7d7fb73e9 100755
--- a/httemplate/search/elements/cust_pay_or_refund.html
+++ b/httemplate/search/elements/cust_pay_or_refund.html
@@ -58,12 +58,12 @@ Examples:
'group_column' => 'payby',
'group_label' => 'payby_name',
- 'subtotal' => { $opt{name_verb} => "sum($amount_field)" },
+ 'subtotal' => { $opt{amount_field} => "sum($amount_field)" },
'subtotal_row' => [ 'Subtotal',
sub { sprintf($money, $_[0]->$amount_field) },
],
'total_row' => [ '<B>Total</B>',
- sub { sprintf("<B>$money</B>", $_[0]->$amount_field) },
+ sub { warn Dumper @_; sprintf("<B>$money</B>", $_[0]->$amount_field) },
],
'show_combined' => 1,
&>
diff --git a/httemplate/search/sales_commission.html b/httemplate/search/sales_commission.html
index 68e030dd2..340195474 100644
--- a/httemplate/search/sales_commission.html
+++ b/httemplate/search/sales_commission.html
@@ -1,5 +1,6 @@
% if ( $salesnum ) {
-<% $cgi->redirect($sales_link->[0] . $salesnum) %>
+% my $url = 'sales_pkg_class.html?' . $cgi->query_string;
+<% $cgi->redirect($url) %>
% } else {
<& elements/commission.html,
'title' => $title,
diff --git a/httemplate/view/cust_bill.cgi b/httemplate/view/cust_bill.cgi
index d73edbd79..cf0c3190a 100755
--- a/httemplate/view/cust_bill.cgi
+++ b/httemplate/view/cust_bill.cgi
@@ -110,21 +110,25 @@ function areyousure(href, message) {
% }
-% if ( $conf->exists('invoice_latex') ) {
+% my $br = 0;
+% if ( $conf->exists('invoice_latex') ) {
<A HREF="<% $p %>view/cust_bill-pdf.cgi?<% $link %>"><% mt('View typeset invoice PDF') |h %></A>
- <BR><BR>
+
+% $br++;
% }
-% my $br = 0;
-% if ( $cust_bill->num_cust_event ) { $br++;
-<A HREF="<%$p%>search/cust_event.html?invnum=<% $cust_bill->invnum %>">( <% mt('View invoice events') |h %> )</A>
+% if ( $cust_bill->num_cust_event ) {
+<% $br ? '|' : '' %>
+<A HREF="<%$p%>search/cust_event.html?invnum=<% $cust_bill->invnum %>"><% mt('View invoice events') |h %></A>
+% $br++;
% }
% my @modes = grep {! $_->disabled}
% $cust_bill->cust_main->agent->invoice_modes;
-% if ( @modes ) {
-( <% mt('View as:') %>
+% if ( @modes || $include_statement_template ) {
+<% $br ? '|' : '' %>
+<% mt('View as:') %>
<FORM STYLE="display:inline" ACTION="<% $cgi->url %>" METHOD="GET">
<INPUT NAME="invnum" VALUE="<% $invnum %>" TYPE="hidden">
<& /elements/select-table.html,
@@ -135,16 +139,18 @@ function areyousure(href, message) {
name_col => 'modename',
onchange => 'change_invoice_mode',
empty_label => '(default)',
-&> )
+ $include_statement_template ? (
+ 'post_options' => [ 'statement', '(statement)' ]
+ ) : ()
+&>
<SCRIPT TYPE="text/javascript">
function change_invoice_mode(obj) {
obj.form.submit();
}
</SCRIPT>
-% $br++;
% }
-<% $br ? '<BR><BR>' : '' %>
+<BR><BR>
% if ( $conf->exists('invoice_html') && ! $cgi->param('plaintext') ) {
<% join('', $cust_bill->print_html(\%opt) ) %>
@@ -162,7 +168,7 @@ die "access denied"
my $conf = FS::Conf->new;
-my( $invnum, $mode, $template, $notice_name );
+my( $invnum, $mode, $template, $notice_name, $no_coupon );
my($query) = $cgi->keywords;
if ( $query =~ /^((.+)-)?(\d+)$/ ) {
$template = $2;
@@ -175,6 +181,15 @@ if ( $query =~ /^((.+)-)?(\d+)$/ ) {
$mode = $cgi->param('mode');
}
+if ($mode eq 'statement') {
+ $mode = undef;
+ $template = 'statement';
+ $notice_name = 'Statement';
+ $no_coupon = 1;
+}
+
+my $include_statement_template = $conf->config('payment_receipt_statement_mode') ? 0 : 1;
+
my %opt = (
'unsquelch_cdr' => $conf->exists('voip-cdr_email'),
'template' => $template,
@@ -208,5 +223,6 @@ my $link = "invnum=$invnum";
$link .= ';mode=' . $mode if $mode;
$link .= ';template='. uri_escape($template) if $template;
$link .= ';notice_name='. $notice_name if $notice_name;
+$link .= ';no_coupon=1' if $no_coupon;
</%init>
diff --git a/httemplate/view/elements/cust_bill-typeset b/httemplate/view/elements/cust_bill-typeset
index 778e538d1..ab5d298f0 100644
--- a/httemplate/view/elements/cust_bill-typeset
+++ b/httemplate/view/elements/cust_bill-typeset
@@ -6,7 +6,7 @@ die "access denied"
my $type = shift;
-my( $invnum, $mode, $template, $notice_name );
+my( $invnum, $mode, $template, $notice_name, $no_coupon );
my($query) = $cgi->keywords;
if ( $query =~ /^((.+)-)?(\d+)(.pdf)?$/ ) { #probably not necessary anymore?
$template = $2;
@@ -18,6 +18,7 @@ if ( $query =~ /^((.+)-)?(\d+)(.pdf)?$/ ) { #probably not necessary anymore?
$template = $cgi->param('template');
$notice_name = $cgi->param('notice_name');
$mode = $cgi->param('mode');
+ $no_coupon = $cgi->param('no_coupon');
}
my $conf = new FS::Conf;
@@ -26,6 +27,7 @@ my %opt = (
'unsquelch_cdr' => $conf->exists('voip-cdr_email'),
'template' => $template,
'notice_name' => $notice_name,
+ 'no_coupon' => $no_coupon,
);
my $cust_bill = qsearchs({