OpenXE/classes/Modules/ImportTemplate/Service/ImportTemplateService.php
2021-05-21 08:49:41 +02:00

76 lines
2.4 KiB
PHP

<?php
namespace Xentral\Modules\ImportTemplate\Service;
use RuntimeException;
use Xentral\Modules\ImportTemplate\Data\ImportTemplate;
use Xentral\Components\Database\Database;
class ImportTemplateService
{
/** @var Database $db */
private $db;
public function __construct(Database $db)
{
$this->db = $db;
}
/**
* @param ImportTemplate $importTemplate
*
* @throws RuntimeException
*
* @return int
*/
public function insertImportTemplate(ImportTemplate $importTemplate)
{
$sql = 'INSERT INTO `importvorlage`
(
`bezeichnung`,
`ziel`,
`internebemerkung`,
`fields`,
`importtrennzeichen`,
`importerstezeilenummer`,
`importdatenmaskierung`,
`importzeichensatz`,
`utf8decode`,
`charset`
)
VALUES (
:bezeichnung,
:ziel,
:internebemerkung,
:fields,
:importtrennzeichen,
:importerstezeilenummer,
:importdatenmaskierung,
:importzeichensatz,
:utf8decode,
:charset
)';
$values = [
'bezeichnung' => $importTemplate->getLabel(),
'ziel' => $importTemplate->getTarget(),
'internebemerkung' => $importTemplate->getInternalNote(),
'fields' => $importTemplate->getFields(),
'importtrennzeichen' => $importTemplate->getDelimiter(),
'importerstezeilenummer' => $importTemplate->getLineNumber(),
'importdatenmaskierung' => $importTemplate->getMasking(),
'importzeichensatz' => $importTemplate->getImportCharSet(),
'utf8decode' => $importTemplate->getUtf8decode(),
'charset' => $importTemplate->getCharset(),
];
$this->db->perform($sql, $values);
$insertId = $this->db->lastInsertId();
if ($insertId === 0) {
throw new RuntimeException('Import template could not be created.');
}
return $insertId;
}
}