From c8e1c3c3d3ea0d57e8b84236cfe6c97da5172fdf Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Thu, 3 Apr 2008 03:40:56 +0000 Subject: [PATCH] more work on translating Asset Products to Sku Products --- docs/upgrades/upgrade_7.5.2-7.5.3.pl | 33 +++++++++++++++++++--------- lib/WebGUI/Asset.pm | 3 ++- t/Shop/loadProducts.pl | 1 + 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/docs/upgrades/upgrade_7.5.2-7.5.3.pl b/docs/upgrades/upgrade_7.5.2-7.5.3.pl index c4d199aea..63fc8d169 100644 --- a/docs/upgrades/upgrade_7.5.2-7.5.3.pl +++ b/docs/upgrades/upgrade_7.5.2-7.5.3.pl @@ -412,21 +412,34 @@ sub addShippingDrivers { #------------------------------------------------- sub migrateOldProduct { - return; my $session = shift; print "\tMigrate old Product to new SKU based Products.\n" unless ($quiet); # and here's our code ##Grab data from Wobject table, and move it into Sku and Product, as appropriate. - my $oldTax = $session->db->prepare('select * from commerceSalesTax'); - my $newTax = $session->db->prepare('insert into tax (taxId, country, state, city, code, taxRate) VALUES (?,?,?,?,?,?)'); - my $rmWobject = - $oldTax->execute(); - while (my $oldTaxData = $oldTax->hashRef()) { - $newTax->execute([$oldTaxData->{commerceSalesTaxId}, 'USA', $oldTaxData->{regionIdentifier}, '', '', $oldTaxData->{salesTax}]); + ##Have to change the className's in the db, too + ## Wobject description -> Sku description + ## Wobject displayTitle -> Sku displayTitle + ## Product productNumber -> Sku sku + ## asset className WebGUI::Asset::Wobject::Product -> WebGUI::Asset::Sku::Product + my $fromWobject = $session->db->read('select w.assetId, w.revisionDate, w.description, w.displayTitle, p.productNumber from Product as p JOIN wobject as w on p.assetId=w.assetId and p.revisionDate=w.revisionDate'); + my $toSku = $session->db->prepare('insert into sku (assetId, revisionDate, sku, description, displayTitle) VALUES (?,?,?,?,?)'); + my $rmWobject = $session->db->prepare('delete from wobject where assetId=? and revisionDate=?'); + while (my $product = $fromWobject->hashRef()) { + $toSku->execute([ + $product->{assetId}, + $product->{revisionDate}, + $product->{productNumber}, + $product->{description}, + $product->{displayTitle}, + ]); + $rmWobject->execute([$product->{assetId}, $product->{revisionDate}]); } - $oldTax->finish; - $newTax->finish; - ##Delete data from Wobject table. + $fromWobject->finish; + $toSku->finish; + $rmWobject->finish; + ## Remove productNumber from Product; + ## Update config file, deleting Wobject::Product and adding Sku::Product + return; } #------------------------------------------------- diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index ce5b59132..223ae5c13 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -1833,7 +1833,8 @@ sub newByDynamicClass { =head2 newByPropertyHashRef ( session, properties ) -Constructor. This creates a standalone asset with no parent. +Constructor. This creates a standalone asset with no parent. It does not update the +database. =head3 session diff --git a/t/Shop/loadProducts.pl b/t/Shop/loadProducts.pl index 503309c51..424a09d63 100644 --- a/t/Shop/loadProducts.pl +++ b/t/Shop/loadProducts.pl @@ -68,6 +68,7 @@ $tag = WebGUI::VersionTag->getWorking($session); my $product1a = $product1->addRevision({price => 11.11}); +sleep 1; $tag->commit; diag "Done.";