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