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\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);
}
}
/**

View File

@ -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;
}
}