From 1e7f443126d5e03bd16a7ed08fa68fe8cb8a45fb Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Mon, 18 Jan 2010 08:51:17 -0800 Subject: [PATCH] Fix problems with the Sales tab in the Shop Account plugin. Only display the Sales tab to vendors, and prevent www_viewSales from erroring out if the user is not a vendor. New template, template variable, i18n. --- docs/changelog/7.x.x.txt | 1 + ...ort_account_shop_shop-account-layout.wgpkg | Bin 0 -> 1462 bytes lib/WebGUI/Account/Shop.pm | 50 ++++++++++-------- lib/WebGUI/Help/Account_Shop.pm | 1 + lib/WebGUI/i18n/English/Account_Shop.pm | 5 ++ 5 files changed, 36 insertions(+), 21 deletions(-) create mode 100644 docs/upgrades/packages-7.8.10/root_import_account_shop_shop-account-layout.wgpkg diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 5749fef83..72f0ca304 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -8,6 +8,7 @@ - fixed #11348: Typ-o in debug notice SQLReport - fixed #11350: Story Topic asset missing description... - fixed #11351: Double submits on ITransact checkout + - fixed #11353: shop - sales - error 7.8.9 - fixed #11235: wiki search diff --git a/docs/upgrades/packages-7.8.10/root_import_account_shop_shop-account-layout.wgpkg b/docs/upgrades/packages-7.8.10/root_import_account_shop_shop-account-layout.wgpkg new file mode 100644 index 0000000000000000000000000000000000000000..eb1173c513621e306f7e2678ef0be6277fc94aee GIT binary patch literal 1462 zcmV;n1xflJiwFP!00000|Ls_9Z__#y?q`05=_js4m!z+>^i~>dY()dg-Ntmq#^k16 z>yg^QcDfbBf4|3e5+_}^F)ou3TBJ6q&x?=G>(gvh?*He`Ix&JGX3JWkP-ClRH#?1>g20>if8AI7H}2o`U$Mit zM^J=SMdopY6*k~6eWhysL`52K|s&s#ZvQD z8&xB(2@#fR`!ePNsGCNHB~g@gys$f<%8GSEX7;1U4e-xQb?ioWa^B?};ZkS00^fQ#~Ap zJYo5LBb4&5=fJL(F#&c3`*^T+Tpc*0_yr^45ZcAi?pbg`$*g-e=$JW^u#`ll=HSCE z`MS1v(fwySs%`$e7`zAm$l`^lUKbj|Zzt`W~!#7(QS`!DuU_tP4YyJIWPpsHOm>5<#z{Ri=4$pF%?O>&RL_SLhJCa=>OcNS*o2;))M^D~kB8eQ z16a9>Ds9M$HrSyM6Pb)(a;BiUn6Q+>xlCwHex|G@@jMTj;h+;Z#l>{fR-z4Ru2hRL zynyV^g-oQ&8yg?MQi*3ZXHr#Hcnn`eU4-YDK`)e}M1(Uei5&h|#Mh*i)pQzXnod{p z?9&juB^XweGaNm!>?mhP5gwE1Y3iBNeW**_oCbX|AN-7H-vhxlDX2Z5uRO;!78=SA zkT+Zmprty>f|84U3~lx2ouXBoO0DBIcPx=%yNerc5-A_w6|1X7>jrQ{@yIqR2l(>m zkDTU#!k4!l*`yu<#=9K)W}))2%ZKgTR+FDQZ8`bxVwvgs2@B<&G3mQ2WQE7U`Vz~V zZK@>gcA1*2-IaeMYi~v@-`yCYY(@lCha!3<_&l(LsXgek| zaE$4?+)-NlXm4cuE2oMv>YQ@paU#S4)h4T zeShuD#K5vDjsYqzig3=Lk$w8r>S+X>rn4c&0-B52;2MYZdb_EG}PW|s56LEM7hPfgy#$>T?dhDW4{WFpwImt za42oY1_YU&WDEUH=%nbAqn#2Kxe1B5*7ZXeq@?O-r+_?)&UaX2%_#Zfkwxjue-L8$ zb5X%+&1L^>$}``UN;>7;Uz}{Fr*&&^#MNilHVF&GGFGEC9aZ6J`cF1lPNz-ZSKU@~ zdu#9O4DWwApTBoXsN7#lXpgIX)pYc1P*e*Y8AhXdL$Pi+nim`8F;H)}+kUgrbvwfJ z0%VbzxB2dTv{Qe(J3ZU$zWmajY`yNxVI1eLJo5gZ+Na;Ne1G))SG?7E(DC4b2M;`W Q;C2uE2a)zks{k4R02N%_Pyhe` literal 0 HcmV?d00001 diff --git a/lib/WebGUI/Account/Shop.pm b/lib/WebGUI/Account/Shop.pm index 135f3bb73..35c745bf9 100644 --- a/lib/WebGUI/Account/Shop.pm +++ b/lib/WebGUI/Account/Shop.pm @@ -6,6 +6,7 @@ use WebGUI::Exception; use WebGUI::International; use WebGUI::Pluggable; use WebGUI::Utility; +use WebGUI::Shop::Vendor; use JSON qw{ from_json }; use base qw/WebGUI::Account/; @@ -58,6 +59,10 @@ sub appendCommonVars { $var->{ 'manage_tax_url' } = $self->getUrl( 'module=shop;do=manageTaxData' ); $var->{ 'manageTaxIsActive' } = $method eq 'manageTaxData'; + + eval { WebGUI::Shop::Vendor->newByUserId($session, $session->user->userId); }; + $var->{ 'userIsVendor' } = ! Exception::Class->caught(); + $session->log->warn($@); } #------------------------------------------------------------------- @@ -253,32 +258,35 @@ Page that show your earnings if you are a vendor. sub www_viewSales { my $self = shift; my $session = $self->session; - my $vendor = WebGUI::Shop::Vendor->newByUserId( $session, $session->user->userId ); - - my $var = $vendor->getPayoutTotals; - my $totalSales = 0; + my $vendor = eval { WebGUI::Shop::Vendor->newByUserId( $session, $session->user->userId ); }; my @products; + my $totalSales = 0; + my $var = {}; + if (! Exception::Class->caught()) { - my $sth = $session->db->read( - q{ SELECT t1.*, sum(t1.quantity) as quantity, sum(t1.vendorPayoutAmount) as payoutAmount } - . q{ FROM transactionItem as t1, transaction as t2 } - . q{ WHERE t1.transactionId=t2.transactionId AND t2.isSuccessful <> 0 } - . q{ AND vendorId=? } - . q{ group by assetId order by quantity desc }, - [ $vendor->getId ] - ); - while (my $row = $sth->hashRef) { - my $data = $row; + $var = $vendor->getPayoutTotals; - # Add asset properties to tmpl_vars. - my $asset = WebGUI::Asset->newByDynamicClass( $session, $row->{ assetId } ); - $row = { %{ $row }, %{ $asset->get } } if $asset; - - push @products, $row; + my $sth = $session->db->read( + q{ SELECT t1.*, sum(t1.quantity) as quantity, sum(t1.vendorPayoutAmount) as payoutAmount } + . q{ FROM transactionItem as t1, transaction as t2 } + . q{ WHERE t1.transactionId=t2.transactionId AND t2.isSuccessful <> 0 } + . q{ AND vendorId=? } + . q{ group by assetId order by quantity desc }, + [ $vendor->getId ] + ); + while (my $row = $sth->hashRef) { + my $data = $row; - $totalSales += $row->{quantity}; + # Add asset properties to tmpl_vars. + my $asset = WebGUI::Asset->newByDynamicClass( $session, $row->{ assetId } ); + $row = { %{ $row }, %{ $asset->get } } if $asset; + + push @products, $row; + + $totalSales += $row->{quantity}; + } + $sth->finish; } - $sth->finish; $var->{ product_loop } = \@products; $var->{ total_products } = scalar @products; diff --git a/lib/WebGUI/Help/Account_Shop.pm b/lib/WebGUI/Help/Account_Shop.pm index 130f8f21a..b8b0d669a 100644 --- a/lib/WebGUI/Help/Account_Shop.pm +++ b/lib/WebGUI/Help/Account_Shop.pm @@ -18,6 +18,7 @@ our $HELP = { variables => [ { name => "manage_purchases_url", }, { name => "managePurchasesIsActive", }, + { name => "userIsVendor", }, ], related => [ ], }, diff --git a/lib/WebGUI/i18n/English/Account_Shop.pm b/lib/WebGUI/i18n/English/Account_Shop.pm index 98e7f5e55..690f18ffc 100644 --- a/lib/WebGUI/i18n/English/Account_Shop.pm +++ b/lib/WebGUI/i18n/English/Account_Shop.pm @@ -44,6 +44,11 @@ our $I18N = { lastUpdated => 1119068809, }, + 'userIsVendor' => { + message => q{A boolean that is true if the current user is a vendor.}, + lastUpdated => 1263833421, + }, + 'common account variables' => { message => q{Common Account, Shop Plugin, Template Variables.}, lastUpdated => 1230867169,