From 3fbe580e0534c463938663e0c7a9604003613cab Mon Sep 17 00:00:00 2001 From: gonzalo Date: Thu, 13 Jul 2023 08:24:42 -0300 Subject: [PATCH] closes #1732 for magento 2.3 --- Setup/UpgradeData.php | 57 ++++++++++++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 19 deletions(-) diff --git a/Setup/UpgradeData.php b/Setup/UpgradeData.php index 1e0b86eb..0c18b6fe 100644 --- a/Setup/UpgradeData.php +++ b/Setup/UpgradeData.php @@ -186,28 +186,47 @@ public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $config->getResource()->delete($config); } } - if (version_compare($context->getVersion(), '102.3.52') < 0) { + if (version_compare($context->getVersion(), '102.3.53') < 0) { $setup->startSetup(); $connection = $this->_resource->getConnectionByName('default'); - $syncCollection = $this->syncCollectionFactory->create(); - $syncCollection->addFieldToFilter('type', ['eq'=>'ORD']); - foreach($syncCollection as $item) { - try { - $order = $this->orderFactory->create()->loadByAttribute('entity_id', $item->getRelatedId()); - $order->setMailchimpSent($item->getMailchimpSent()); - $order->setMailchimpSyncError($item->getMailchimpSyncError()); - $order->save(); - } catch (\Exception $e) { - $this->_helper->log($e->getMessage()); - } + try { + $tableOrders = $setup->getTable('sales_order'); + $tableEcommerce = $setup->getTable('mailchimp_sync_ecommerce'); + $query = "UPDATE `$tableOrders` as A "; + $query .= "INNER JOIN `$tableEcommerce` as B ON A.`entity_id` = B.`related_id` "; + $query .= "SET A.`mailchimp_sync_error` = B.`mailchimp_sync_error`, A.`mailchimp_sent` = B.`mailchimp_sent` "; + $query .= "WHERE B.`type` = 'ORD'"; + $connection->query($query); + + } catch(\Exception $e) { + $this->_helper->log($e->getMessage()); + throw new \Exception($e->getMessage()); + } + try { + $tableOrdersGrid = $setup->getTable('sales_order_grid'); + $tableEcommerce = $setup->getTable('mailchimp_sync_ecommerce'); + $query = "UPDATE `$tableOrdersGrid` as A "; + $query .= "INNER JOIN `$tableEcommerce` as B ON A.`entity_id` = B.`related_id` "; + $query .= "SET A.`mailchimp_sync_error` = B.`mailchimp_sync_error`, A.`mailchimp_sent` = B.`mailchimp_sent` "; + $query .= "WHERE B.`type` = 'ORD'"; + $connection->query($query); + + } catch(\Exception $e) { + $this->_helper->log($e->getMessage()); + throw new \Exception($e->getMessage()); + } + try { + $tableProducts = $setup->getTable('catalog_product_entity'); + $tableEcommerce = $setup->getTable('mailchimp_sync_ecommerce'); + $query = "UPDATE `$tableProducts` as A "; + $query .= "INNER JOIN `$tableEcommerce` as B ON A.`entity_id` = B.`related_id` "; + $query .= "SET A.`mailchimp_sync_error` = B.`mailchimp_sync_error`, A.`mailchimp_sent` = B.`mailchimp_sent` "; + $query .= "WHERE B.`type` = 'PRO'"; + $connection->query($query); + } catch(\Exception $e) { + $this->_helper->log($e->getMessage()); + throw new \Exception($e->getMessage()); } - $tableProducts = $setup->getTable('catalog_product_entity'); - $tableEcommerce = $setup->getTable('mailchimp_sync_ecommerce'); - $query = "UPDATE `$tableProducts` as A "; - $query.= "INNER JOIN `$tableEcommerce` as B ON A.`entity_id` = B.`related_id` "; - $query.= "SET A.`mailchimp_sync_error` = B.`mailchimp_sync_error`, A.`mailchimp_sent` = B.`mailchimp_sent` "; - $query.= "WHERE B.`type` = 'PRO'"; - $connection->query($query); } } }