From ff27089dd05a3d9ff0b0b9898d7104d18c0174ac Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 13 Jul 2009 09:19:02 +0000 Subject: [PATCH] fix self-service agent-specific logos --- FS/FS/ClientAPI/MyAccount.pm | 11 +++++++++-- fs_selfservice/FS-SelfService/cgi/cust_bill-logo.cgi | 14 ++++++++++---- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 298fe1796..02b54ffc9 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -654,7 +654,14 @@ sub invoice_logo { #sessioning for this? how do we get the session id to the backend invoice # template so it can add it to the link, blah - my $templatename = $p->{'templatename'}; + my $agentnum = ''; + if ( $p->{'invnum'} ) { + my $cust_bill = qsearchs('cust_bill', { 'invnum' => $p->{'invnum'} } ) + or return { 'error' => 'unknown invnum' }; + $agentnum = $cust_bill->cust_main->agentnum; + } + + my $templatename = $p->{'template'} || $p->{'templatename'}; #false laziness-ish w/view/cust_bill-logo.cgi @@ -668,7 +675,7 @@ sub invoice_logo { my $filename = "logo$templatename.png"; return { 'error' => '', - 'logo' => $conf->config_binary($filename), + 'logo' => $conf->config_binary($filename, $agentnum), 'content_type' => 'image/png', #should allow gif, jpg too }; } diff --git a/fs_selfservice/FS-SelfService/cgi/cust_bill-logo.cgi b/fs_selfservice/FS-SelfService/cgi/cust_bill-logo.cgi index 5f344a32e..253f853f8 100644 --- a/fs_selfservice/FS-SelfService/cgi/cust_bill-logo.cgi +++ b/fs_selfservice/FS-SelfService/cgi/cust_bill-logo.cgi @@ -7,10 +7,16 @@ use FS::SelfService qw( invoice_logo ); my $cgi = new CGI; -my($query) = $cgi->keywords; -$query =~ /^([^\.\/]*)$/ or '' =~ /^()$/; -my $templatename = $1; -my $hashref = invoice_logo('templatename' => $templatename); +my %hash = (); +if ( $cgi->param('invnum') ) { + $hash{$_} = scalar($cgi->param($_)) foreach qw( invnum template ); +} else { + my($query) = $cgi->keywords; + $query =~ /^([^\.\/]*)$/ or '' =~ /^()$/; + $hash{'template'} = $1; +} + +my $hashref = invoice_logo(%hash); print $cgi->header( '-type' => $hashref->{'content_type'}, '-expires' => 'now', -- 2.11.0