From b6ff115996cfb8fa089518bd35652643930dfede Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Mon, 8 Mar 2021 14:16:20 +0200 Subject: [PATCH 01/21] implemented translations for carrier name --- .../Template/Admin/ProductBlockBuilder.php | 5 ++ src/Config/Config.php | 66 ++++++++++++++++--- src/Service/Carrier/UpdateCarrierService.php | 15 +++++ src/Service/Product/ProductService.php | 10 +-- 4 files changed, 83 insertions(+), 13 deletions(-) diff --git a/src/Builder/Template/Admin/ProductBlockBuilder.php b/src/Builder/Template/Admin/ProductBlockBuilder.php index 17ef2cee..a7b1d6ff 100644 --- a/src/Builder/Template/Admin/ProductBlockBuilder.php +++ b/src/Builder/Template/Admin/ProductBlockBuilder.php @@ -116,6 +116,11 @@ public function renderProducts() } $carrier = Carrier::getCarrierByReference($product->id_reference); + + if (!$carrier) { + continue; + } + $delays = []; foreach ($carrier->delay as $key => $item) { $delays[Language::getIsoById($key)] = $item; diff --git a/src/Config/Config.php b/src/Config/Config.php index 4bf52808..5f2de518 100644 --- a/src/Config/Config.php +++ b/src/Config/Config.php @@ -227,6 +227,55 @@ class Config const PRODUCT_TYPE_SAME_DAY_DELIVERY = '274'; const PS_VERSION_1_7_7 = '1.7.7.0'; + const PRODUCT_NAME_B2B = [ + 'LT' => 'DPD B2C', + 'EE' => 'DPD kuller', + 'LV' => 'DPD B2C', + 'EN' => 'DPD B2C', + ]; + + const PRODUCT_NAME_PUDO = [ + 'LT' => 'DPD Pickup', + 'EE' => 'DPD pakiautomaat', + 'LV' => 'DPD Pickup', + 'EN' => 'DPD Pickup', + ]; + + const PRODUCT_NAME_B2B_COD = [ + 'LT' => 'DPD B2C COD', + 'EE' => 'Lunamakse', + 'LV' => 'DPD B2C COD', + 'EN' => 'DPD B2C COD', + ]; + + + const PRODUCT_NAME_PUDO_COD = [ + 'LT' => 'DPD Pickup COD', + 'EE' => 'Lunamakse DPD pakiautomaat ', + 'LV' => 'DPD Pickup COD', + 'EN' => 'DPD Pickup COD', + ]; + + const PRODUCT_NAME_SATURDAY_DELIVERY = [ + 'LT' => 'Saturday Delivery', + 'EE' => 'DPD kuller laupäeval', + 'LV' => 'Saturday Delivery', + 'EN' => 'Saturday Delivery', + ]; + + const PRODUCT_NAME_SATURDAY_DELIVERY_COD = [ + 'LT' => 'Saturday Delivery COD', + 'EE' => 'Lunamakse DPD kuller laupäeval', + 'LV' => 'Saturday Delivery COD', + 'EN' => 'Saturday Delivery COD', + ]; + + const PRODUCT_NAME_SAME_DAY_DELIVERY = [ + 'LT' => 'Same day Delivery', + 'EE' => 'Samal päeval kohaletoimetamine', + 'LV' => 'Same day Delivery', + 'EN' => 'Same day Delivery', + ]; public static function getProducts() { @@ -304,12 +353,13 @@ public static function getOnBoardImportTypes() ]; } - public static function getProductByReference($productReference) + public static function getProductByReference($productReference, $countryCode = 'EN') { + switch ($productReference) { case self::PRODUCT_TYPE_B2B: $product = new DPDProductInstall(); - $product->setName('DPD B2C'); + $product->setName(self::PRODUCT_NAME_B2B[$countryCode]); $product->setId(self::PRODUCT_TYPE_B2B); $product->setDelay('Your delivery experts'); $product->setIsPudo(0); @@ -318,7 +368,7 @@ public static function getProductByReference($productReference) break; case self::PRODUCT_TYPE_PUDO: $product = new DPDProductInstall(); - $product->setName('DPD Pickup'); + $product->setName(self::PRODUCT_NAME_PUDO[$countryCode]); $product->setId(self::PRODUCT_TYPE_PUDO); $product->setDelay('Your delivery experts'); $product->setIsPudo(1); @@ -327,7 +377,7 @@ public static function getProductByReference($productReference) break; case self::PRODUCT_TYPE_B2B_COD: $product = new DPDProductInstall(); - $product->setName('DPD B2C COD'); + $product->setName(self::PRODUCT_NAME_B2B_COD[$countryCode]); $product->setId(self::PRODUCT_TYPE_B2B_COD); $product->setDelay('Your delivery experts'); $product->setIsPudo(0); @@ -336,7 +386,7 @@ public static function getProductByReference($productReference) break; case self::PRODUCT_TYPE_PUDO_COD: $product = new DPDProductInstall(); - $product->setName('DPD Pickup COD'); + $product->setName(self::PRODUCT_NAME_PUDO_COD[$countryCode]); $product->setId(Config::PRODUCT_TYPE_PUDO_COD); $product->setDelay('Your delivery experts'); $product->setIsPudo(1); @@ -345,7 +395,7 @@ public static function getProductByReference($productReference) break; case self::PRODUCT_TYPE_SATURDAY_DELIVERY: $product = new DPDProductInstall(); - $product->setName('Saturday Delivery'); + $product->setName(self::PRODUCT_NAME_SATURDAY_DELIVERY[$countryCode]); $product->setId(self::PRODUCT_TYPE_SATURDAY_DELIVERY); $product->setDelay('Your delivery experts'); $product->setIsPudo(0); @@ -354,7 +404,7 @@ public static function getProductByReference($productReference) break; case self::PRODUCT_TYPE_SATURDAY_DELIVERY_COD: $product = new DPDProductInstall(); - $product->setName('Saturday Delivery COD'); + $product->setName(self::PRODUCT_NAME_SATURDAY_DELIVERY_COD[$countryCode]); $product->setId(self::PRODUCT_TYPE_SATURDAY_DELIVERY_COD); $product->setDelay('Your delivery experts'); $product->setIsPudo(0); @@ -363,7 +413,7 @@ public static function getProductByReference($productReference) break; case self::PRODUCT_TYPE_SAME_DAY_DELIVERY: $product = new DPDProductInstall(); - $product->setName('Same day Delivery'); + $product->setName(self::PRODUCT_NAME_SAME_DAY_DELIVERY[$countryCode]); $product->setId(self::PRODUCT_TYPE_SAME_DAY_DELIVERY); $product->setDelay('Your delivery experts'); $product->setIsPudo(1); diff --git a/src/Service/Carrier/UpdateCarrierService.php b/src/Service/Carrier/UpdateCarrierService.php index 7d71b0d2..a5345173 100644 --- a/src/Service/Carrier/UpdateCarrierService.php +++ b/src/Service/Carrier/UpdateCarrierService.php @@ -59,4 +59,19 @@ public function updateCarrier($productId, $params) throw new ProductUpdateException($e->getMessage()); }; } + + public function updateCarrierName($productId, $name) + { + try { + $dpdProduct = new DPDProduct($productId); + + $this->carrierUpdateValidate->validateCarrierName($name); + + $carrier = Carrier::getCarrierByReference($dpdProduct->id_reference); + $carrier->name = $name; + $carrier->update(); + } catch (Exception $e) { + throw new ProductUpdateException($e->getMessage()); + }; + } } diff --git a/src/Service/Product/ProductService.php b/src/Service/Product/ProductService.php index 35f70ac0..982a0e6b 100644 --- a/src/Service/Product/ProductService.php +++ b/src/Service/Product/ProductService.php @@ -66,10 +66,10 @@ public function deleteProduct($productReference) return $this->productRepository->deleteByProductReference($product->getProductReference()); } - public function addProduct($productReference) + public function addProduct($productReference, $countryCode = null) { $collection = new DPDProductInstallCollection(); - $product = Config::getProductByReference($productReference); + $product = Config::getProductByReference($productReference, $countryCode); $collection->add($product); return $this->createCarrierService->createCarriers($collection); @@ -82,21 +82,21 @@ public function updateCarriersOnCountryChange($newCountryIsoCode) if ($newCountryIsoCode === Config::LATVIA_ISO_CODE) { $this->deleteProduct(Config::PRODUCT_TYPE_PUDO_COD); } elseif (!$productId) { - $this->addProduct(Config::PRODUCT_TYPE_PUDO_COD); + $this->addProduct(Config::PRODUCT_TYPE_PUDO_COD, $newCountryIsoCode); } $productId = $this->productRepository->getProductIdByProductReference(Config::PRODUCT_TYPE_SAME_DAY_DELIVERY); if ($newCountryIsoCode !== Config::LATVIA_ISO_CODE) { $this->deleteProduct(Config::PRODUCT_TYPE_SAME_DAY_DELIVERY); } elseif (!$productId) { - $this->addProduct(Config::PRODUCT_TYPE_SAME_DAY_DELIVERY); + $this->addProduct(Config::PRODUCT_TYPE_SAME_DAY_DELIVERY, $newCountryIsoCode); } $productId = $this->productRepository->getProductIdByProductReference(Config::PRODUCT_TYPE_SATURDAY_DELIVERY_COD); if ($newCountryIsoCode === Config::LATVIA_ISO_CODE) { $this->deleteProduct(Config::PRODUCT_TYPE_SATURDAY_DELIVERY_COD); } elseif (!$productId) { - $this->addProduct(Config::PRODUCT_TYPE_SATURDAY_DELIVERY_COD); + $this->addProduct(Config::PRODUCT_TYPE_SATURDAY_DELIVERY_COD, $newCountryIsoCode); } return true; From ac0659e825248eeb9097088984214d1154c65c3c Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Mon, 8 Mar 2021 16:25:41 +0200 Subject: [PATCH 02/21] functionality added, calculate shipping price with shipment --- src/Service/ShipmentService.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Service/ShipmentService.php b/src/Service/ShipmentService.php index cff68089..23bc7213 100644 --- a/src/Service/ShipmentService.php +++ b/src/Service/ShipmentService.php @@ -182,10 +182,12 @@ private function createNonDistributedShipment(Order $order, $idProduct, $isTestM $products = $order->getProducts(); $parcelPrice = 0; $parcelWeight = 0; + $orderShippingCost = $order->total_shipping_tax_incl ?: 0; foreach ($products as $product) { $parcelPrice += round($product['total_wt'], 2); $parcelWeight += $product['weight'] * $product['product_quantity']; } + $parcelPrice += $orderShippingCost; $shipment = $this->createShipment($order, $idProduct, $isTestMode, 1, $parcelWeight, $parcelPrice); if (!$shipment->id) { @@ -201,15 +203,16 @@ private function createParcelDistributedShipments(Order $order, $idProduct, $isT $parcelPrice = 0; $parcelWeight = 0; $parcelsNum = 0; + $orderShippingCost = $order->total_shipping_tax_incl ?: 0; + foreach ($products as $product) { $parcelPrice += round($product['total_wt'], 2); + $parcelPrice += $orderShippingCost; $parcelWeight += $product['weight'] * $product['product_quantity']; $parcelsNum++; $shipment = $this->createShipment($order, $idProduct, $isTestMode, $parcelsNum, $parcelWeight, $parcelPrice); } - - if (!$shipment->id) { return false; } @@ -223,12 +226,15 @@ private function createParcelQuantityDistributedShipments(Order $order, $idProdu $parcelPrice = 0; $parcelWeight = 0; $parcelsNum = 0; + $orderShippingCost = $order->total_shipping_tax_incl ?: 0; + foreach ($products as $product) { $parcelPrice += round($product['total_wt'], 2); $parcelWeight += $product['weight'] * $product['product_quantity']; $parcelsNum += $product['product_quantity']; } + $parcelPrice += $orderShippingCost; $shipment = $this->createShipment($order, $idProduct, $isTestMode, $parcelsNum, $parcelWeight, $parcelPrice); if (!$shipment->id) { return false; From 6b77341ec7bb678c5e3351aeb3d4767c62ec3042 Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Mon, 8 Mar 2021 16:39:24 +0200 Subject: [PATCH 03/21] changelog added --- CHANGELOG.md | 4 ++++ dpdbaltics.php | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index afb54526..bd5e549f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,3 +40,7 @@ - Set parcels from different countries functionality added - Bugfix when no idcart in order page to select parcel +## [3.1.5] - 2021-03-08 +### Changed +- Added shipping cost to dpd shipment + diff --git a/dpdbaltics.php b/dpdbaltics.php index 50bdfb50..e75881b1 100644 --- a/dpdbaltics.php +++ b/dpdbaltics.php @@ -98,7 +98,7 @@ public function __construct() $this->displayName = $this->l('DPDBaltics'); $this->author = 'Invertus'; $this->tab = 'shipping_logistics'; - $this->version = '3.1.4'; + $this->version = '3.1.5'; $this->ps_versions_compliancy = ['min' => '1.7.1.0', 'max' => _PS_VERSION_]; $this->need_instance = 0; parent::__construct(); From 29dee69ed473b31b883728a1bec472515f78e093 Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Mon, 8 Mar 2021 16:56:15 +0200 Subject: [PATCH 04/21] anotate service --- config/provider.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/config/provider.yml b/config/provider.yml index 43c61246..b33bf660 100644 --- a/config/provider.yml +++ b/config/provider.yml @@ -30,5 +30,6 @@ services: - '@Invertus\dpdBaltics\Repository\ProductAvailabilityRepository' Invertus\dpdBaltics\Provider\CurrentCountryProvider: + class: 'Invertus\dpdBaltics\Provider\CurrentCountryProvider' arguments: - '@context' From 3112a4fff99685b6067b588d63773571c7d5ed5b Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Wed, 17 Mar 2021 11:44:56 +0200 Subject: [PATCH 05/21] code cleanup --- config/service.yml | 1 - src/Service/Carrier/CarrierUpdateHandler.php | 2 +- src/Service/Product/ProductService.php | 6 ++++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/config/service.yml b/config/service.yml index c6054f5a..f7673d8e 100644 --- a/config/service.yml +++ b/config/service.yml @@ -237,7 +237,6 @@ services: arguments: - '@Invertus\dpdBaltics\Repository\ShipmentRepository' - Invertus\dpdBaltics\Service\Carrier\CarrierUpdateHandler: class: 'Invertus\dpdBaltics\Service\Carrier\CarrierUpdateHandler' arguments: diff --git a/src/Service/Carrier/CarrierUpdateHandler.php b/src/Service/Carrier/CarrierUpdateHandler.php index 74af571a..ba125c5c 100644 --- a/src/Service/Carrier/CarrierUpdateHandler.php +++ b/src/Service/Carrier/CarrierUpdateHandler.php @@ -47,4 +47,4 @@ public function updateCarrierName($webServiceCountry) $this->productService->updateProductName($productId, $product->getName()); } } -} \ No newline at end of file +} diff --git a/src/Service/Product/ProductService.php b/src/Service/Product/ProductService.php index 60405292..fbc0b5b3 100644 --- a/src/Service/Product/ProductService.php +++ b/src/Service/Product/ProductService.php @@ -50,6 +50,12 @@ public function updateProduct($productId, $active) } } + /** + * @param $productId + * @param $name + * + * @throws ProductUpdateException + */ public function updateProductName($productId, $name) { From b66f321ced28556b68a5f54082c9eb2e5c7c7031 Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Wed, 17 Mar 2021 11:46:54 +0200 Subject: [PATCH 06/21] changelog updated --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bd5e549f..f1c6415d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,4 +43,5 @@ ## [3.1.5] - 2021-03-08 ### Changed - Added shipping cost to dpd shipment +- Translations added for carriers on webservice change From 7bb1be805451e8d90d33bd6256ea6550052ad9e1 Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Wed, 17 Mar 2021 12:10:16 +0200 Subject: [PATCH 07/21] cleanup --- src/Service/Carrier/UpdateCarrierService.php | 2 +- src/Service/Product/ProductService.php | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Service/Carrier/UpdateCarrierService.php b/src/Service/Carrier/UpdateCarrierService.php index 5db8a938..2f38c58a 100644 --- a/src/Service/Carrier/UpdateCarrierService.php +++ b/src/Service/Carrier/UpdateCarrierService.php @@ -81,6 +81,6 @@ public function updateCarrierName($productId, $name) $carrier->update(); } catch (Exception $e) { throw new ProductUpdateException($e->getMessage()); - }; + } } } diff --git a/src/Service/Product/ProductService.php b/src/Service/Product/ProductService.php index fbc0b5b3..49b148ef 100644 --- a/src/Service/Product/ProductService.php +++ b/src/Service/Product/ProductService.php @@ -99,21 +99,27 @@ public function addProduct($productReference, $countryCode = null) public function updateCarriersOnCountryChange($newCountryIsoCode) { - $productId = $this->productRepository->getProductIdByProductReference(Config::PRODUCT_TYPE_PUDO_COD); + $productId = $this->productRepository->getProductIdByProductReference( + Config::PRODUCT_TYPE_PUDO_COD + ); if ($newCountryIsoCode === Config::LATVIA_ISO_CODE) { $this->deleteProduct(Config::PRODUCT_TYPE_PUDO_COD); } elseif (!$productId) { $this->addProduct(Config::PRODUCT_TYPE_PUDO_COD, $newCountryIsoCode); } - $productId = $this->productRepository->getProductIdByProductReference(Config::PRODUCT_TYPE_SAME_DAY_DELIVERY); + $productId = $this->productRepository->getProductIdByProductReference( + Config::PRODUCT_TYPE_SAME_DAY_DELIVERY + ); if ($newCountryIsoCode !== Config::LATVIA_ISO_CODE) { $this->deleteProduct(Config::PRODUCT_TYPE_SAME_DAY_DELIVERY); } elseif (!$productId) { $this->addProduct(Config::PRODUCT_TYPE_SAME_DAY_DELIVERY, $newCountryIsoCode); } - $productId = $this->productRepository->getProductIdByProductReference(Config::PRODUCT_TYPE_SATURDAY_DELIVERY_COD); + $productId = $this->productRepository->getProductIdByProductReference( + Config::PRODUCT_TYPE_SATURDAY_DELIVERY_COD + ); if ($newCountryIsoCode === Config::LATVIA_ISO_CODE) { $this->deleteProduct(Config::PRODUCT_TYPE_SATURDAY_DELIVERY_COD); } elseif (!$productId) { From 81252c58f01b68d2ba28130ef3a701db25a7b4ba Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Wed, 17 Mar 2021 12:48:49 +0200 Subject: [PATCH 08/21] add DGS-40 changes for label --- src/Config/Config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Config/Config.php b/src/Config/Config.php index ad827e98..7945e8bd 100644 --- a/src/Config/Config.php +++ b/src/Config/Config.php @@ -320,7 +320,7 @@ public static function getPsAndModuleVersion() { $module = Module::getInstanceByName('dpdbaltics'); - return 'PS_'._PS_VERSION_.';'. $module->version; + return 'PS_'._PS_VERSION_.'|'. $module->version; } From 875555d15ede542ed1fe41d63ab71385ed071b4c Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Thu, 25 Mar 2021 16:29:26 +0200 Subject: [PATCH 09/21] uninstall tabs added --- src/Config/Config.php | 8 ++++ src/Install/Installer.php | 21 ++++++++-- .../ModuleTabs/ModuleTabsUninstaller.php | 39 +++++++++++++++++++ 3 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 src/Uninstaller/ModuleTabs/ModuleTabsUninstaller.php diff --git a/src/Config/Config.php b/src/Config/Config.php index 7945e8bd..85ecf62e 100644 --- a/src/Config/Config.php +++ b/src/Config/Config.php @@ -575,4 +575,12 @@ public static function isPrestashopVersionAbove177() return false; } + + /** + * @return bool + */ + public static function isPrestashopVersionBelow174() + { + return (bool) version_compare(_PS_VERSION_, '1.7.4', '<'); + } } diff --git a/src/Install/Installer.php b/src/Install/Installer.php index 079340f5..6004af0b 100644 --- a/src/Install/Installer.php +++ b/src/Install/Installer.php @@ -15,8 +15,10 @@ use Invertus\dpdBaltics\Service\Carrier\CreateCarrierService; use Invertus\dpdBaltics\Factory\TabFactory; use Invertus\dpdBaltics\Service\Label\LabelPositionService; +use Invertus\dpdBaltics\Uninstaller\ModuleTabs\ModuleTabsUninstaller; use Invertus\psModuleTabs\Object\TabsCollection; use Invertus\psModuleTabs\Service\TabsInitializer; +use Invertus\psModuleTabs\Service\TabsUninstaller; use Symfony\Component\Validator\Constraints\Count; use Tools; use Validate; @@ -120,7 +122,7 @@ public function uninstall() } if (!$this->uninstallTabs()) { - $this->errors[] = $this->module->l('Failed to install tabs', self::FILE_NAME); + $this->errors[] = $this->module->l('Failed to uninstall tabs', self::FILE_NAME); return false; } @@ -288,9 +290,12 @@ private function uninstallConfiguration() private function installTabs() { + if (!Config::isPrestashopVersionBelow174()) { + return true; + } /** @var TabsCollection $tabCollection */ $tabCollection = $this->tabFactory->getTabsCollection(); - + print_r($tabCollection); $tabsInitializer = new TabsInitializer(_PS_VERSION_, $tabCollection); return $tabsInitializer->initializeTabsByPsVersion(); @@ -298,8 +303,16 @@ private function installTabs() private function uninstallTabs() { - //TODO uninstall tabs - return true; + if (!Config::isPrestashopVersionBelow174()) { + return true; + } + + /** @var TabsCollection $tabCollection */ + $tabCollection = $this->tabFactory->getTabsCollection()->getTabsCollection(); + + $tabsUninstaller = new ModuleTabsUninstaller($tabCollection); + + return $tabsUninstaller->uninstallTabs(); } private function processDeleteCarriers() { diff --git a/src/Uninstaller/ModuleTabs/ModuleTabsUninstaller.php b/src/Uninstaller/ModuleTabs/ModuleTabsUninstaller.php new file mode 100644 index 00000000..a9f0e8c0 --- /dev/null +++ b/src/Uninstaller/ModuleTabs/ModuleTabsUninstaller.php @@ -0,0 +1,39 @@ +tabs = $tabs; + } + + public function uninstallTabs() + { + + foreach ($this->tabs as $tab) { + $idTab = Tab::getIdFromClassName($tab->getClassName()); + + if (!$idTab) { + continue; + } + + $tab = new Tab($idTab); + if (!$tab->delete()) { + return false; + } + } + + return true; + } +} \ No newline at end of file From 69a1c083c066546795c438be7f17ed553b3ed33b Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Thu, 25 Mar 2021 17:41:52 +0200 Subject: [PATCH 10/21] remove dublicates and invisible tabs --- dpdbaltics.php | 15 ++++++++++ src/Service/TabService.php | 16 ++++++++++ views/js/admin/tabsHandlerBelowPs174.js | 39 +++++++++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 views/js/admin/tabsHandlerBelowPs174.js diff --git a/dpdbaltics.php b/dpdbaltics.php index e75881b1..f9c5819c 100644 --- a/dpdbaltics.php +++ b/dpdbaltics.php @@ -663,6 +663,20 @@ public function hookActionAdminControllerSetMedia($params) { $currentController = Tools::getValue('controller'); + if (Config::isPrestashopVersionBelow174()) { + /** @var $tabs TabService*/ + $tabs = $this->getModuleContainer()->get(TabService::class); + $visibleClasses = $tabs->getVisibleTabsClassNames(); + + if (in_array($currentController, $visibleClasses)) { + Media::addJsDef([ + 'visibleTabs' => $visibleClasses, + ] + ); + $this->context->controller->addJS($this->getPathUri() . 'views/js/admin/tabsHandlerBelowPs174.js'); + } + + } if ('AdminOrders' === $currentController) { $this->handleLabelPrintService(); @@ -717,6 +731,7 @@ public function hookActionAdminControllerSetMedia($params) ]); + $this->context->controller->addJS($this->getPathUri() . 'views/js/admin/carrier_phone.js'); $this->context->controller->addJS($this->getPathUri() . 'views/js/admin/custom_select.js'); $this->context->controller->addJS($this->getPathUri() . 'views/js/admin/label_position.js'); diff --git a/src/Service/TabService.php b/src/Service/TabService.php index 8de295e8..48348aac 100644 --- a/src/Service/TabService.php +++ b/src/Service/TabService.php @@ -172,4 +172,20 @@ public function getTabs() ], ]; } + + /** + * Filter visible tabs to handle in javascript for ps versiosns below 1704 + */ + public function getVisibleTabsClassNames() + { + $filtered = []; + $tabs = $this->getTabs(); + + foreach ($tabs as $tab) { + if (isset($tab['visible']) && $tab['visible']) { + $filtered[] = $tab['class_name']; + } + } + return $filtered; + } } diff --git a/views/js/admin/tabsHandlerBelowPs174.js b/views/js/admin/tabsHandlerBelowPs174.js new file mode 100644 index 00000000..c269a0bd --- /dev/null +++ b/views/js/admin/tabsHandlerBelowPs174.js @@ -0,0 +1,39 @@ + +$(document).ready(function (){ + var tabs = $('.page-head-tabs > a'); + var visible = visibleTabs; + var seen = {}; + $( tabs ).each(function() { + var txt = $(this).text(); + if (seen[txt]) { + $(this).remove(); + } else { + seen[txt] = true; + } + + var href = $( this ).attr('href'); + var controller = getUrlParam('controller', href); + if (!inArray(controller, visible)) { + $(this).remove(); + } + }); + + function getUrlParam( name, url ) { + if (!url) url = location.href; + name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); + var regexS = "[\\?&]"+name+"=([^&#]*)"; + var regex = new RegExp( regexS ); + var results = regex.exec( url ); + return results == null ? null : results[1]; + } + + function inArray(needle, haystack) { + var length = haystack.length; + for(var i = 0; i < length; i++) { + if(haystack[i] == needle){ + return true; + } + } + return false; + } +}); From 6f30414fd243911cab2be836042386987f9e626d Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Thu, 25 Mar 2021 17:43:23 +0200 Subject: [PATCH 11/21] cleanup --- dpdbaltics.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dpdbaltics.php b/dpdbaltics.php index f9c5819c..cc3d28aa 100644 --- a/dpdbaltics.php +++ b/dpdbaltics.php @@ -668,7 +668,7 @@ public function hookActionAdminControllerSetMedia($params) $tabs = $this->getModuleContainer()->get(TabService::class); $visibleClasses = $tabs->getVisibleTabsClassNames(); - if (in_array($currentController, $visibleClasses)) { + if (in_array($currentController, $visibleClasses, true)) { Media::addJsDef([ 'visibleTabs' => $visibleClasses, ] From 9b472673e458bfdcf4e748d86019f4abc9bae944 Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Thu, 25 Mar 2021 17:58:07 +0200 Subject: [PATCH 12/21] cleanup --- CHANGELOG.md | 3 ++- dpdbaltics.php | 7 ++----- src/Service/TabService.php | 6 ++++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f1c6415d..9d5cd4e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,8 +40,9 @@ - Set parcels from different countries functionality added - Bugfix when no idcart in order page to select parcel -## [3.1.5] - 2021-03-08 +## [3.1.5] - 2021-03-25 ### Changed - Added shipping cost to dpd shipment - Translations added for carriers on webservice change +- Module tab install/uninstall dublication on module tab titles, all invisible titles are showing bug fixes added diff --git a/dpdbaltics.php b/dpdbaltics.php index cc3d28aa..cdac000e 100644 --- a/dpdbaltics.php +++ b/dpdbaltics.php @@ -666,13 +666,10 @@ public function hookActionAdminControllerSetMedia($params) if (Config::isPrestashopVersionBelow174()) { /** @var $tabs TabService*/ $tabs = $this->getModuleContainer()->get(TabService::class); - $visibleClasses = $tabs->getVisibleTabsClassNames(); + $visibleClasses = $tabs->getTabsClassNames(false); if (in_array($currentController, $visibleClasses, true)) { - Media::addJsDef([ - 'visibleTabs' => $visibleClasses, - ] - ); + Media::addJsDef(['visibleTabs' => $tabs->getTabsClassNames(true)]); $this->context->controller->addJS($this->getPathUri() . 'views/js/admin/tabsHandlerBelowPs174.js'); } diff --git a/src/Service/TabService.php b/src/Service/TabService.php index 48348aac..51492938 100644 --- a/src/Service/TabService.php +++ b/src/Service/TabService.php @@ -176,13 +176,15 @@ public function getTabs() /** * Filter visible tabs to handle in javascript for ps versiosns below 1704 */ - public function getVisibleTabsClassNames() + public function getTabsClassNames($visible = true) { $filtered = []; $tabs = $this->getTabs(); foreach ($tabs as $tab) { - if (isset($tab['visible']) && $tab['visible']) { + if ($visible && isset($tab['visible']) && $tab['visible']) { + $filtered[] = $tab['class_name']; + } else { $filtered[] = $tab['class_name']; } } From b4d6a4452d5dc36331cb6928cbb951b6e32dfe7a Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Thu, 25 Mar 2021 18:00:19 +0200 Subject: [PATCH 13/21] cleanup --- dpdbaltics.php | 3 +-- src/Uninstaller/ModuleTabs/ModuleTabsUninstaller.php | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/dpdbaltics.php b/dpdbaltics.php index cdac000e..0f6eb441 100644 --- a/dpdbaltics.php +++ b/dpdbaltics.php @@ -672,8 +672,8 @@ public function hookActionAdminControllerSetMedia($params) Media::addJsDef(['visibleTabs' => $tabs->getTabsClassNames(true)]); $this->context->controller->addJS($this->getPathUri() . 'views/js/admin/tabsHandlerBelowPs174.js'); } - } + if ('AdminOrders' === $currentController) { $this->handleLabelPrintService(); @@ -728,7 +728,6 @@ public function hookActionAdminControllerSetMedia($params) ]); - $this->context->controller->addJS($this->getPathUri() . 'views/js/admin/carrier_phone.js'); $this->context->controller->addJS($this->getPathUri() . 'views/js/admin/custom_select.js'); $this->context->controller->addJS($this->getPathUri() . 'views/js/admin/label_position.js'); diff --git a/src/Uninstaller/ModuleTabs/ModuleTabsUninstaller.php b/src/Uninstaller/ModuleTabs/ModuleTabsUninstaller.php index a9f0e8c0..bd8a92c4 100644 --- a/src/Uninstaller/ModuleTabs/ModuleTabsUninstaller.php +++ b/src/Uninstaller/ModuleTabs/ModuleTabsUninstaller.php @@ -36,4 +36,4 @@ public function uninstallTabs() return true; } -} \ No newline at end of file +} From fe705a6f48165dc1ec5927fa04d3c23d7653847a Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Thu, 25 Mar 2021 18:01:50 +0200 Subject: [PATCH 14/21] clean print --- src/Install/Installer.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Install/Installer.php b/src/Install/Installer.php index 6004af0b..d396f032 100644 --- a/src/Install/Installer.php +++ b/src/Install/Installer.php @@ -295,7 +295,6 @@ private function installTabs() } /** @var TabsCollection $tabCollection */ $tabCollection = $this->tabFactory->getTabsCollection(); - print_r($tabCollection); $tabsInitializer = new TabsInitializer(_PS_VERSION_, $tabCollection); return $tabsInitializer->initializeTabsByPsVersion(); From e623fe27969a9bb54127ce1923f49ecf2cc5a5e3 Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Thu, 25 Mar 2021 18:15:06 +0200 Subject: [PATCH 15/21] remove regex which formats name --- views/js/admin/tabsHandlerBelowPs174.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/views/js/admin/tabsHandlerBelowPs174.js b/views/js/admin/tabsHandlerBelowPs174.js index c269a0bd..f1e9f1fe 100644 --- a/views/js/admin/tabsHandlerBelowPs174.js +++ b/views/js/admin/tabsHandlerBelowPs174.js @@ -19,8 +19,7 @@ $(document).ready(function (){ }); function getUrlParam( name, url ) { - if (!url) url = location.href; - name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); + var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( url ); From f1d2d249bc2a3b4b92dcca7a85c75e8b3718951e Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Thu, 25 Mar 2021 18:15:55 +0200 Subject: [PATCH 16/21] cleanup --- views/js/admin/tabsHandlerBelowPs174.js | 1 - 1 file changed, 1 deletion(-) diff --git a/views/js/admin/tabsHandlerBelowPs174.js b/views/js/admin/tabsHandlerBelowPs174.js index f1e9f1fe..f9dc7082 100644 --- a/views/js/admin/tabsHandlerBelowPs174.js +++ b/views/js/admin/tabsHandlerBelowPs174.js @@ -19,7 +19,6 @@ $(document).ready(function (){ }); function getUrlParam( name, url ) { - var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( url ); From 21209cb9060e8e367994a311b7398dcac876c34d Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Fri, 26 Mar 2021 10:21:57 +0200 Subject: [PATCH 17/21] comment code --- views/js/admin/tabsHandlerBelowPs174.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/views/js/admin/tabsHandlerBelowPs174.js b/views/js/admin/tabsHandlerBelowPs174.js index f9dc7082..33e84849 100644 --- a/views/js/admin/tabsHandlerBelowPs174.js +++ b/views/js/admin/tabsHandlerBelowPs174.js @@ -4,6 +4,7 @@ $(document).ready(function (){ var visible = visibleTabs; var seen = {}; $( tabs ).each(function() { + //Extracts distinct value from module tab names as ps version < 174 cannot handle lang var txt = $(this).text(); if (seen[txt]) { $(this).remove(); @@ -19,8 +20,10 @@ $(document).ready(function (){ }); function getUrlParam( name, url ) { - var regexS = "[\\?&]"+name+"=([^&#]*)"; - var regex = new RegExp( regexS ); + + //Extracs param value from href link + var extractedParamValue = "[\\?&]"+name+"=([^&#]*)"; + var regex = new RegExp( extractedParamValue ); var results = regex.exec( url ); return results == null ? null : results[1]; } From 1def7ca7790e0166a273c3ed5ae0ceb390109c12 Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Fri, 26 Mar 2021 16:54:20 +0200 Subject: [PATCH 18/21] updt translation --- src/Config/Config.php | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Config/Config.php b/src/Config/Config.php index 85ecf62e..45c90c0f 100644 --- a/src/Config/Config.php +++ b/src/Config/Config.php @@ -228,24 +228,24 @@ class Config const PS_VERSION_1_7_7 = '1.7.7.0'; const PRODUCT_NAME_B2B = [ - 'LT' => 'DPD kurjeris', + 'LT' => 'Pristatymas privatiems asmenims', 'EE' => 'DPD kuller', - 'LV' => 'DPD B2C', - 'EN' => 'DPD B2C', + 'LV' => 'Kurjerpiegādes Privātpersonām', + 'EN' => 'DPD courier', ]; const PRODUCT_NAME_PUDO = [ - 'LT' => 'DPD Paštomatas', + 'LT' => 'Pristatymas į paštomatą', 'EE' => 'DPD pakiautomaat', - 'LV' => 'DPD Pickup', - 'EN' => 'DPD Pickup', + 'LV' => 'Piegādes uz Paku Skapjiem un Paku Bodēm', + 'EN' => 'DPD Pickup points', ]; const PRODUCT_NAME_B2B_COD = [ - 'LT' => 'DPD Kurjeris, atsiskaitymas grynaisiais', + 'LT' => 'Atsiskaitymas pristatymo metu', 'EE' => 'Lunamakse', - 'LV' => 'DPD B2C COD', - 'EN' => 'DPD B2C COD', + 'LV' => 'Naudas iekasēšana piegādes brīdī', + 'EN' => 'Cash on Delivery', ]; @@ -257,10 +257,10 @@ class Config ]; const PRODUCT_NAME_SATURDAY_DELIVERY = [ - 'LT' => 'Pristatymas Šestadienį', + 'LT' => 'Pristatymas šeštadienį', 'EE' => 'DPD kuller laupäeval', - 'LV' => 'Saturday Delivery', - 'EN' => 'Saturday Delivery', + 'LV' => 'Sestdienas piegāde', + 'EN' => 'DPD Saturday', ]; const PRODUCT_NAME_SATURDAY_DELIVERY_COD = [ From b94c1fa153b222b775301a47e684f8873e02cfbc Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Fri, 9 Apr 2021 11:11:51 +0300 Subject: [PATCH 19/21] update translation --- src/Config/Config.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Config/Config.php b/src/Config/Config.php index 45c90c0f..604eb8b1 100644 --- a/src/Config/Config.php +++ b/src/Config/Config.php @@ -236,14 +236,14 @@ class Config const PRODUCT_NAME_PUDO = [ 'LT' => 'Pristatymas į paštomatą', - 'EE' => 'DPD pakiautomaat', + 'EE' => 'DPD pakiautomaat lunamaksega', 'LV' => 'Piegādes uz Paku Skapjiem un Paku Bodēm', 'EN' => 'DPD Pickup points', ]; const PRODUCT_NAME_B2B_COD = [ 'LT' => 'Atsiskaitymas pristatymo metu', - 'EE' => 'Lunamakse', + 'EE' => 'DPD kuller lunamaksega', 'LV' => 'Naudas iekasēšana piegādes brīdī', 'EN' => 'Cash on Delivery', ]; @@ -251,7 +251,7 @@ class Config const PRODUCT_NAME_PUDO_COD = [ 'LT' => 'DPD Paštomatas, atsiskaitymas grynaisiais', - 'EE' => 'Lunamakse DPD pakiautomaat ', + 'EE' => 'DPD pakiautomaat lunamaksega', 'LV' => 'DPD Pickup COD', 'EN' => 'DPD Pickup COD', ]; @@ -265,7 +265,7 @@ class Config const PRODUCT_NAME_SATURDAY_DELIVERY_COD = [ 'LT' => 'Pristatymas Šestadienį, atsiskaitymas grynaisiais', - 'EE' => 'Lunamakse DPD kuller laupäeval', + 'EE' => 'DPD kuller laupäeval lunamaksega', 'LV' => 'Saturday Delivery COD', 'EN' => 'Saturday Delivery COD', ]; From 98a194a7d339c4e23be8a7120a874f0c58535ab1 Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Thu, 15 Apr 2021 12:52:00 +0300 Subject: [PATCH 20/21] map rendering fix --- views/js/front/pudo.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/views/js/front/pudo.js b/views/js/front/pudo.js index 90903972..8df13963 100644 --- a/views/js/front/pudo.js +++ b/views/js/front/pudo.js @@ -23,11 +23,13 @@ var dpdMap = {}; var infoWindow; -if (typeof google !== 'undefined') { - infoWindow = new google.maps.InfoWindow(); -} $(document).ready(function () { + + if (typeof google !== 'undefined') { + infoWindow = new google.maps.InfoWindow(); + } + $(".dpd-input-wrapper .dpd-input-placeholder").on("click", function () { $(this).closest(".dpd-input-wrapper").find("input").focus(); }); From b6f19b1be68430be1271296edbeb971014dc3c64 Mon Sep 17 00:00:00 2001 From: Arturas Bespalovas Date: Thu, 15 Apr 2021 13:10:18 +0300 Subject: [PATCH 21/21] update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d5cd4e2..0aa4e2d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,4 +45,5 @@ - Added shipping cost to dpd shipment - Translations added for carriers on webservice change - Module tab install/uninstall dublication on module tab titles, all invisible titles are showing bug fixes added +- Maps loading sequence fixed