From 93252fdc493769902cc003dbe37c39360f0dda11 Mon Sep 17 00:00:00 2001 From: Hendrik Mennen Date: Mon, 25 Nov 2024 11:24:15 +0100 Subject: [PATCH] fix: Fixed Services for preparing export entities --- .../MakairaConnect/App/GambioConnectService.php | 2 +- .../GambioConnectCategoryService.php | 2 +- .../GambioConnectManufacturerService.php | 17 +++++++++-------- .../GambioConnectProductService.php | 9 +++++++-- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/GXModules/MakairaIO/MakairaConnect/App/GambioConnectService.php b/src/GXModules/MakairaIO/MakairaConnect/App/GambioConnectService.php index 5419ba4..da121e6 100755 --- a/src/GXModules/MakairaIO/MakairaConnect/App/GambioConnectService.php +++ b/src/GXModules/MakairaIO/MakairaConnect/App/GambioConnectService.php @@ -73,7 +73,7 @@ protected function getLanguages(): Languages public function callStoredProcedure(int $id, string $type): void { - $this->connection->executeQuery('CALL makairaChange('.$id.','.$type.')'); + $this->connection->executeQuery('CALL makairaChange('.$id.',"'.$type.'")'); } public function exportIsDoneForType(string $type) diff --git a/src/GXModules/MakairaIO/MakairaConnect/App/GambioConnectService/GambioConnectCategoryService.php b/src/GXModules/MakairaIO/MakairaConnect/App/GambioConnectService/GambioConnectCategoryService.php index 4b3646b..21f47bb 100644 --- a/src/GXModules/MakairaIO/MakairaConnect/App/GambioConnectService/GambioConnectCategoryService.php +++ b/src/GXModules/MakairaIO/MakairaConnect/App/GambioConnectService/GambioConnectCategoryService.php @@ -25,7 +25,7 @@ public function prepareExport(): void /** @var \CategoryReadService $categoryReadService */ $categoryReadService = \StaticGXCoreLoader::getService('CategoryRead'); /** @var \CategoryListItemCollection $categories */ - $categories = $categoryReadService->getCategoryList(new \LanguageCode($language->code())); + $categories = $categoryReadService->getCategoryList(new \LanguageCode(new \StringType($language->code()))); /** @var CategoryListItem $category */ foreach($categories as $category) { $this->callStoredProcedure($category->getCategoryId(), 'category'); diff --git a/src/GXModules/MakairaIO/MakairaConnect/App/GambioConnectService/GambioConnectManufacturerService.php b/src/GXModules/MakairaIO/MakairaConnect/App/GambioConnectService/GambioConnectManufacturerService.php index 57ec6e5..50fab4f 100644 --- a/src/GXModules/MakairaIO/MakairaConnect/App/GambioConnectService/GambioConnectManufacturerService.php +++ b/src/GXModules/MakairaIO/MakairaConnect/App/GambioConnectService/GambioConnectManufacturerService.php @@ -4,6 +4,7 @@ use Doctrine\DBAL\FetchMode; use Exception; +use Gambio\Admin\Modules\Language\Model\Language; use GXModules\MakairaIO\MakairaConnect\App\Documents\MakairaEntity; use GXModules\MakairaIO\MakairaConnect\App\GambioConnectService; use GXModules\MakairaIO\MakairaConnect\App\Mapper\MakairaDataMapper; @@ -17,14 +18,14 @@ class GambioConnectManufacturerService extends GambioConnectService implements G public function prepareExport(): void { - $languages = $this->getLanguages(); + /** @var \ManufacturerReadService $readService */ + $readService = \StaticGXCoreLoader::getService('ManufacturerRead'); - foreach ($languages as $language) { - $manufacturers = $this->getQuery($language->id()); + $manufacturers = $readService->getAll(); - foreach ($manufacturers as $manufacturer) { - $this->callStoredProcedure($manufacturer['manufacturers_id'], 'manufacturer'); - } + /** @var \ManufacturerInterface $manufacturer */ + foreach($manufacturers as $manufacturer) { + $this->callStoredProcedure($manufacturer->getId(), 'manufacturer'); } } @@ -73,7 +74,7 @@ public function pushRevision(array $manufacturer): MakairaEntity return MakairaDataMapper::mapManufacturer($manufacturer); } - public function getQuery(string $language, array $makairaChanges = []): array + public function getQuery(Language $language, array $makairaChanges = []): array { $query = $this->connection->createQueryBuilder() ->select('*') @@ -85,7 +86,7 @@ public function getQuery(string $language, array $makairaChanges = []): array 'manufacturers.manufacturers_id = manufacturers_info.manufacturers_id' ) ->where('manufacturers_info.languages_id = :languageId') - ->setParameter('languageId', $language); + ->setParameter('languageId', $language->id()); if (! empty($makairaChanges)) { $ids = array_map(fn ($change) => $change['gambio_id'], $makairaChanges); diff --git a/src/GXModules/MakairaIO/MakairaConnect/App/GambioConnectService/GambioConnectProductService.php b/src/GXModules/MakairaIO/MakairaConnect/App/GambioConnectService/GambioConnectProductService.php index 4c5ab36..4abd9a6 100644 --- a/src/GXModules/MakairaIO/MakairaConnect/App/GambioConnectService/GambioConnectProductService.php +++ b/src/GXModules/MakairaIO/MakairaConnect/App/GambioConnectService/GambioConnectProductService.php @@ -41,11 +41,16 @@ public function prepareExport(): void { $languages = $this->getLanguages(); + /** @var \ProductReadService $productReadService */ + $productReadService = \StaticGXCoreLoader::getService('ProductRead'); + + foreach ($languages as $language) { - $products = $this->getQuery($language->id()); + $products = $productReadService->getProductList(new \LanguageCode(new \StringType($language->code()))); + /** @var \ProductListItem $product */ foreach ($products as $product) { - $this->connection->executeQuery('CALL makairaChange('.$product['products_id'].', "product")'); + $this->connection->executeQuery('CALL makairaChange('.$product->getProductId().', "product")'); } } }