From f786ad7ce4370fcb0787b660cce2ddc53560b86c Mon Sep 17 00:00:00 2001 From: JT Smith Date: Thu, 12 Jun 2008 06:00:13 +0000 Subject: [PATCH] fixed several ems migration bugs --- docs/upgrades/upgrade_7.5.10-7.5.11.pl | 45 ++++++++++++++------------ 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/docs/upgrades/upgrade_7.5.10-7.5.11.pl b/docs/upgrades/upgrade_7.5.10-7.5.11.pl index b4c8fa57c..02ed48639 100644 --- a/docs/upgrades/upgrade_7.5.10-7.5.11.pl +++ b/docs/upgrades/upgrade_7.5.10-7.5.11.pl @@ -22,9 +22,11 @@ use WebGUI::Storage; use WebGUI::Asset; use WebGUI::DateTime; use WebGUI::Asset::Sku::Product; +use WebGUI::Asset::Wobject::EventManagementSystem; use WebGUI::Workflow; use WebGUI::User; use WebGUI::Utility; +use WebGUI::Pluggable; use File::Find; use File::Spec; use File::Path; @@ -628,7 +630,7 @@ sub upgradeEMS { $newBadges{$badge->getId} = $badgeData->{productId}; } print "\t\t\tMigrating old tickets for $emsId.\n" unless ($quiet); - my %metaFields = $db->buildHash("select fieldId,label from EventManagementSystem_metaField where assetId=? order by sequenceNumber",[$emsId]); + my %metaFields = $db->buildHash("select fieldId,label from EMSEventMetaField where assetId=? order by sequenceNumber",[$emsId]); my $ticketResults = $db->read("select * from EventManagementSystem_products left join products using (productId) where assetId=? and prerequisiteId<>''",[$emsId]); while (my $ticketData = $ticketResults->hashRef) { my %oldMetaData = $db->buildHash("select fieldId,fieldData from EventManagementSystem_metaData where productId=?",[$ticketData->{productId}]); @@ -654,14 +656,33 @@ sub upgradeEMS { $oldTickets{$ticketData->{productId}} = $ticket->getId; $newTickets{$ticket->getId} = $ticketData->{productId}; } + print "\t\t\tMigrating old registrant tickets and registrant ribbons for $emsId.\n" unless ($quiet); + my %oldBadgeRegistrants = (); + my $regticResults = $db->read("select * from EventManagementSystem_registrations left join EventManagementSystem_products using (productId) where EventManagementSystem_registrations.assetId=?",[$emsId]); + while (my $registrantData = $regticResults->hashRef) { + my $id = $oldTickets{$registrantData->{productId}}; + if ( $registrantData->{prerequisiteId} eq "") { + $oldBadgeRegistrants{$registrantData->{badgeId}} = $registrantData->{productId}; + } + elsif ($id ne "") { + $db->write("insert into EMSRegistrantTicket (badgeId,ticketAssetId,purchaseComplete) values (?,?,1)", + [$registrantData->{badgeId}, $id]); + } + else { + my $id = $oldRibbons{$registrantData->{productId}}; + if ($id ne "") { + $db->write("insert into EMSRegistrantRibbon (badgeId,ribbonAssetId) values (?,?)", + [$registrantData->{badgeId}, $id]); + } + } + } print "\t\t\tMigrating old registrants for $emsId.\n" unless ($quiet); my $registrantResults = $db->read("select * from EventManagementSystem_badges where assetId=?",[$emsId]); while (my $registrantData = $registrantResults->hashRef) { $db->setRow("EMSRegistrant","badgeId",{ badgeId => "new", userId => $registrantData->{userId}, - badgeNumber => $registrantData->{badgeId}, - badgeAssetId => $oldBadges{$registrantData->{badgeId}}, + badgeAssetId => $oldBadges{$oldBadgeRegistrants{$registrantData->{badgeId}}}, emsAssetId => $emsId, name => $registrantData->{firstName}.' '.$registrantData->{lastName}, address1 => $registrantData->{address}, @@ -674,22 +695,6 @@ sub upgradeEMS { purchaseComplete => 1, },$registrantData->{badgeId}); } - print "\t\t\tMigrating old registrant tickets and registrant ribbons for $emsId.\n" unless ($quiet); - my $regticResults = $db->read("select * from EventManagementSystem_registrations where assetId=?",[$emsId]); - while (my $registrantData = $regticResults->hashRef) { - my $id = $oldTickets{$registrantData->{productId}}; - if ($id ne "") { - $db->write("insert into EMSRegistrantTicket (badgeId,ticketAssetId,purchaseComplete) values (?,?,1)", - [$registrantData->{badgeId}, $id]); - } - else { - my $id = $oldRibbons{$registrantData->{productId}}; - if ($id ne "") { - $db->write("insert into EMSRegistrantRibbon (badgeId,ribbonAssetId) values (?,?)", - [$registrantData->{badgeId}, $id]); - } - } - } } $db->write("drop table EventManagementSystem_badges"); $db->write("drop table EventManagementSystem_discountPasses"); @@ -1736,7 +1741,7 @@ sub migratePaymentPlugins { # Create paydriver instance my $plugin = eval { - WebGUI::Pluggable::instanciate("WebGUI::Shop::PayDriver::$namespace", 'create', [ + WebGUI::Pluggable::instanciate("WebGUI::Shop::PayDriver::$namespace", 'create', [ $session, $properties->{ label }, $properties