From 5bddebd280410a0f95b5f8e9ea17afda322976ce Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sun, 5 Jul 2020 22:05:34 +0200 Subject: [PATCH] improve importer for GSD --- Interfaces/GSD/Importer.php | 56 +++++++++++++++------------- Interfaces/GSD/Model/GSDCustomer.php | 24 ++++++++++++ 2 files changed, 54 insertions(+), 26 deletions(-) diff --git a/Interfaces/GSD/Importer.php b/Interfaces/GSD/Importer.php index 9ee9a72..a4827a8 100755 --- a/Interfaces/GSD/Importer.php +++ b/Interfaces/GSD/Importer.php @@ -16,7 +16,9 @@ namespace Modules\Exchange\Interfaces\GSD; use Modules\Accounting\Models\CostCenter; use Modules\Accounting\Models\CostCenterMapper; - +use Modules\Accounting\Models\CostObject; +use Modules\Accounting\Models\CostObjectMapper; +use Modules\ClientManagement\Models\Client; use Modules\Exchange\Interfaces\GSD\Model\GSDCostCenterMapper; use Modules\Exchange\Interfaces\GSD\Model\GSDCostObjectMapper; @@ -27,6 +29,9 @@ use phpOMS\DataStorage\Database\Connection\ConnectionFactory; use phpOMS\DataStorage\Database\DatabaseStatus; use phpOMS\DataStorage\Database\DataMapperAbstract; use phpOMS\Message\RequestAbstract; +use Modules\Exchange\Interfaces\GSD\Model\GSDAddressMapper; +use Modules\Exchange\Interfaces\GSD\Model\GSDCustomerMapper; +use Modules\ClientManagement\Models\ClientMapper; /** * GSD import class @@ -99,12 +104,10 @@ final class Importer extends ImporterAbstract } if (((bool) ($request->getData('customers') ?? false))) { - $this->importAddress($start, $end); $this->importCustomer($start, $end); } if (((bool) ($request->getData('suppliers') ?? false))) { - $this->importAddress($start, $end); $this->importSupplier($start, $end); } @@ -148,14 +151,14 @@ final class Importer extends ImporterAbstract $query->where('row_create_time', '=>', $start->format('Y-m-d H:i:s')) ->andWhere('row_create_time', '<=', $end->format('Y-m-d H:i:s')); - $costCenters = GSDCostCenterMapper::getByQuery($query); + $costCenters = GSDCostCenterMapper::getAllByQuery($query); DataMapperAbstract::setConnection($this->local); foreach ($costCenters as $cc) { $obj = new CostCenter(); - $obj->setCostCenter((int) $cc->getCostCenter()); - $obj->setCostCenterName($cc->getDescription()); + $obj->setCode($cc->getCostCenter()); + $obj->setName($cc->getDescription()); CostCenterMapper::create($obj); } @@ -178,33 +181,19 @@ final class Importer extends ImporterAbstract $query->where('row_create_time', '=>', $start->format('Y-m-d H:i:s')) ->andWhere('row_create_time', '<=', $end->format('Y-m-d H:i:s')); - $costObjects = GSDCostObjectMapper::getByQuery($query); + $costObjects = GSDCostObjectMapper::getAllByQuery($query); DataMapperAbstract::setConnection($this->local); - foreach ($costObjects as $cc) { - $obj = new CostCenter(); - $obj->setCostObject((int) $co->getCostObject()); - $obj->setCostObjectName($co->getDescription()); + foreach ($costObjects as $co) { + $obj = new CostObject(); + $obj->setCode($co->getCostObject()); + $obj->setName($co->getDescription()); - CostCenterMapper::create($obj); + CostObjectMapper::create($obj); } } - /** - * Import addresses - * - * @param \DateTime $start Start time (inclusive) - * @param \DateTime $end End time (inclusive) - * - * @return void - * - * @since 1.0.0 - */ - public function importAddress(\DateTime $start, \DateTime $end) : void - { - } - /** * Import customers * @@ -217,6 +206,21 @@ final class Importer extends ImporterAbstract */ public function importCustomer(\DateTime $start, \DateTime $end) : void { + DataMapperAbstract::setConnection($this->remote); + $query = GSDCustomerMapper::getQuery(); + $query->where('row_create_time', '=>', $start->format('Y-m-d H:i:s')) + ->andWhere('row_create_time', '<=', $end->format('Y-m-d H:i:s')); + + $customers = GSDCustomerMapper::getAllByQuery($query); + + DataMapperAbstract::setConnection($this->local); + + foreach ($customers as $customer) { + $obj = new Client(); + $obj->setNumber($customer->getNumber()); + + ClientMapper::create($obj); + } } /** diff --git a/Interfaces/GSD/Model/GSDCustomer.php b/Interfaces/GSD/Model/GSDCustomer.php index 94598b5..083c558 100755 --- a/Interfaces/GSD/Model/GSDCustomer.php +++ b/Interfaces/GSD/Model/GSDCustomer.php @@ -24,4 +24,28 @@ namespace Modules\Exchange\Interfaces\GSD\Model; */ final class GSDCustomer { + private int $id = 0; + + /** + * Creator. + * + * @var int + * @since 1.0.0 + */ + protected $createdBy = 0; + + /** + * Created. + * + * @var null|\DateTime + * @since 1.0.0 + */ + protected ?\DateTime $createdAt = null; + + private string $number = ''; + + public function getNumber() : string + { + return $this->number; + } }