improve importer for GSD

This commit is contained in:
Dennis Eichhorn 2020-07-05 22:05:34 +02:00
parent 6323817d1b
commit 5bddebd280
2 changed files with 54 additions and 26 deletions

View File

@ -16,7 +16,9 @@ namespace Modules\Exchange\Interfaces\GSD;
use Modules\Accounting\Models\CostCenter; use Modules\Accounting\Models\CostCenter;
use Modules\Accounting\Models\CostCenterMapper; 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\GSDCostCenterMapper;
use Modules\Exchange\Interfaces\GSD\Model\GSDCostObjectMapper; 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\DatabaseStatus;
use phpOMS\DataStorage\Database\DataMapperAbstract; use phpOMS\DataStorage\Database\DataMapperAbstract;
use phpOMS\Message\RequestAbstract; 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 * GSD import class
@ -99,12 +104,10 @@ final class Importer extends ImporterAbstract
} }
if (((bool) ($request->getData('customers') ?? false))) { if (((bool) ($request->getData('customers') ?? false))) {
$this->importAddress($start, $end);
$this->importCustomer($start, $end); $this->importCustomer($start, $end);
} }
if (((bool) ($request->getData('suppliers') ?? false))) { if (((bool) ($request->getData('suppliers') ?? false))) {
$this->importAddress($start, $end);
$this->importSupplier($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')) $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')); ->andWhere('row_create_time', '<=', $end->format('Y-m-d H:i:s'));
$costCenters = GSDCostCenterMapper::getByQuery($query); $costCenters = GSDCostCenterMapper::getAllByQuery($query);
DataMapperAbstract::setConnection($this->local); DataMapperAbstract::setConnection($this->local);
foreach ($costCenters as $cc) { foreach ($costCenters as $cc) {
$obj = new CostCenter(); $obj = new CostCenter();
$obj->setCostCenter((int) $cc->getCostCenter()); $obj->setCode($cc->getCostCenter());
$obj->setCostCenterName($cc->getDescription()); $obj->setName($cc->getDescription());
CostCenterMapper::create($obj); 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')) $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')); ->andWhere('row_create_time', '<=', $end->format('Y-m-d H:i:s'));
$costObjects = GSDCostObjectMapper::getByQuery($query); $costObjects = GSDCostObjectMapper::getAllByQuery($query);
DataMapperAbstract::setConnection($this->local); DataMapperAbstract::setConnection($this->local);
foreach ($costObjects as $cc) { foreach ($costObjects as $co) {
$obj = new CostCenter(); $obj = new CostObject();
$obj->setCostObject((int) $co->getCostObject()); $obj->setCode($co->getCostObject());
$obj->setCostObjectName($co->getDescription()); $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 * Import customers
* *
@ -217,6 +206,21 @@ final class Importer extends ImporterAbstract
*/ */
public function importCustomer(\DateTime $start, \DateTime $end) : void 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);
}
} }
/** /**

View File

@ -24,4 +24,28 @@ namespace Modules\Exchange\Interfaces\GSD\Model;
*/ */
final class GSDCustomer 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;
}
} }