From 87cf7c26f5e039b19279ba644301388d412e2003 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Thu, 3 Apr 2008 14:42:08 +0000 Subject: [PATCH] ribbon discounts now work with ribbons purchased previously --- lib/WebGUI/Asset/Sku/EMSTicket.pm | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/lib/WebGUI/Asset/Sku/EMSTicket.pm b/lib/WebGUI/Asset/Sku/EMSTicket.pm index a07f51e3c..3de890144 100644 --- a/lib/WebGUI/Asset/Sku/EMSTicket.pm +++ b/lib/WebGUI/Asset/Sku/EMSTicket.pm @@ -254,11 +254,23 @@ sub getPrice { my $self = shift; my @ribbonIds = split("\n", $self->get('relatedRibbons')); my $price = $self->get("price"); - foreach my $item (@{$self->getCart->getItemsByAssetId(\@ribbonIds)}) { - my $ribbon = $item->getSku; - $price -= ($price * $ribbon->get('percentageDiscount') / 100); - last; + my $discount = 0; + my $badgeId = $self->getOptions->{badgeId}; + my $ribbonId = $self->session->db->quickScalar("select ribbonAssetId from EMSRegistrantRibbon where badgeId=? limit 1",[$badgeId]); + if (defined $ribbonId) { + my $ribbon = WebGUI::Asset->new($self->session,$ribbonId,'WebGUI::Asset::Sku::Ribbon'); + $discount = $ribbon->get('percentageDiscount'); } + else { + foreach my $item (@{$self->getCart->getItemsByAssetId(\@ribbonIds)}) { + if ($item->get('options')->{badgeId} eq $badgeId) { + my $ribbon = $item->getSku; + $discount = $ribbon->get('percentageDiscount'); + last; + } + } + } + $price -= ($price * $discount / 100); return $price; }