From 9365a554776cee4e7b5a6f2be1b87391c21c378c Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Tue, 27 Apr 2010 13:14:53 -0700 Subject: [PATCH] Bad code fixes, and no tax calculations without an address. --- .../default-shopping-cart-template.wgpkg | Bin 4072 -> 4063 bytes lib/WebGUI/Shop/Cart.pm | 29 ++++++++++++------ 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/docs/upgrades/packages-7.9.4/default-shopping-cart-template.wgpkg b/docs/upgrades/packages-7.9.4/default-shopping-cart-template.wgpkg index 4c412e09d149c1a26327b203983a104da3c4a748..d82eaac2165171b1a9c35c875a40b23f5f18f133 100644 GIT binary patch literal 4063 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\%billingData); - $cartProperties{billingAddressId} = $newAddress->get('addressId'); + $cartProperties->{billingAddressId} = $newAddress->get('addressId'); } elsif ($billingAddressId eq 'update_address' && $self->get('billingAddressId')) { ##User changed the address selector @@ -660,7 +660,7 @@ sub updateFromForm { $address->update(\%billingData); } elsif ($billingAddressId ne 'new_address' && $billingAddressId) { - $cartProperties{billingAddressId} = $billingAddressId; + $cartProperties->{billingAddressId} = $billingAddressId; } else { $self->session->log->warn('billing address: something else: '. $billingData{error}); @@ -669,12 +669,12 @@ sub updateFromForm { my %shippingData = $book->processAddressForm('shipping_'); my $shippingAddressId = $form->process('shippingAddressId'); if ($form->process('sameShippingAsBilling', 'yesNo')) { - $cartProperties{shippingAddressId} = $self->get('billingAddressId'); + $cartProperties->{shippingAddressId} = $self->get('billingAddressId'); } elsif ($shippingAddressId eq 'new_address' && ! exists $shippingData{'error'}) { ##Add a new address my $newAddress = $book->addAddress(\%shippingData); - $cartProperties{shippingAddressId} = $newAddress->get('addressId'); + $cartProperties->{shippingAddressId} = $newAddress->get('addressId'); } elsif ($shippingAddressId eq 'update_address' && $self->get('shippingAddressId')) { ##User changed the address selector @@ -682,7 +682,7 @@ sub updateFromForm { $address->update(\%shippingData); } elsif ($shippingAddressId ne 'new_address' && $shippingAddressId) { - $cartProperties{shippingAddressId} = $shippingAddressId}; + $cartProperties->{shippingAddressId} = $shippingAddressId; } else { $self->session->log->warn('shipping address: something else: '. $shippingData{error}); @@ -889,6 +889,8 @@ sub www_view { push(@items, \%properties); } + $session->log->warn('below item loop'); + my %var = ( %{$self->get}, items => \@items, @@ -909,10 +911,12 @@ sub www_view { , shippableItemsInCart => $shippableItemsInCart, ); + $session->log->warn('below var block'); # if there is no shipping address we can't check out # if there is a shipping address calculate tax and shipping options if ($address) { + $session->log->warn('have address'); my $ship = WebGUI::Shop::Ship->new($self->session); my $options = $ship->getOptions($self); my $numberOfOptions = scalar keys %{ $options }; @@ -950,18 +954,20 @@ sub www_view { $error{id $self} = ($i18n->get('Choose a shipping method and update the cart to checkout')); } $var{shippingPrice} = $shipperId && $options->{$shipperId}->{hasPrice} ? $self->formatCurrency($var{shippingPrice}) : ''; + $var{tax} = $self->calculateTaxes; } } else { $var{shippingPrice} = $var{tax} = $self->formatCurrency(0); } + $session->log->warn('current user is visitor'); # Tax variables - $var{tax} = $self->calculateTaxes; #Address form variables $var{userIsVisitor} = $session->user->isVisitor; if ($var{userIsVisitor}) { + $session->log->warn('current user is visitor'); $var{loginFormHeader} = WebGUI::Form::formHeader($session, {action => $session->url->page}) . WebGUI::Form::hidden($session,{ name => 'op', value => 'auth'}) . WebGUI::Form::hidden($session,{ name => 'method', value => 'login'}) @@ -974,6 +980,7 @@ sub www_view { $var{loginFormFooter} = WebGUI::Form::formFooter($session) } else { + $session->log->warn('current user is okay'); ##Address form variables my $addressBook = $self->getAddressBook; my $addresses = $addressBook->getAddresses; @@ -1027,18 +1034,20 @@ sub www_view { options => \%paymentOptions, value => $self->get('gatewayId') || $form->get('gatewayId') || '', }); + $session->log->warn('below payment block'); # POS variables - $var{isCashier} = WebGUI::Shop::Admin->new($session)->isCashier; + $var{isCashier} = WebGUI::Shop::Admin->new($session)->isCashier; $var{posLookupForm} = WebGUI::Form::email($session, {name=>"posEmail"}) .WebGUI::Form::submit($session, {value=>$i18n->get('search for email'), extras=>q|onclick="this.form.method.value='lookupPosUser';this.form.submit;"|}); - my $posUser = $self->getPosUser; + my $posUser = $self->getPosUser; $var{posUsername} = $posUser->username; - $var{posUserId} = $posUser->userId; + $var{posUserId} = $posUser->userId; + $session->log->warn('below POS'); # calculate price adjusted for in-store credit - $var{totalPrice} = $var{subtotalPrice} + $var{shippingPrice} + $var{tax}; + $var{totalPrice} = $var{subtotalPrice} + $var{shippingPrice} + $var{tax}; my $credit = WebGUI::Shop::Credit->new($session, $posUser->userId); $var{ inShopCreditAvailable } = $credit->getSum; $var{ inShopCreditDeduction } = $credit->calculateDeduction($var{totalPrice});