Skip to content

Commit 77f64c6

Browse files
bugfix double import of templates
1 parent 5c12769 commit 77f64c6

File tree

2 files changed

+34
-37
lines changed

2 files changed

+34
-37
lines changed

src/Command/FirstRunCommand.php

Lines changed: 21 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -191,39 +191,27 @@ function ($value) {
191191

192192
private function createTemplateTypes(): void
193193
{
194-
$t1 = new TemplateType();
195-
$t1->setIcon('fa-envelope');
196-
$t1->setName('TEMPLATE_RESERVATION_EMAIL');
197-
$t2 = new TemplateType();
198-
$t2->setIcon('fa-file-pdf');
199-
$t2->setName('TEMPLATE_FILE_PDF');
200-
$t3 = new TemplateType();
201-
$t3->setIcon('fa-file-pdf');
202-
$t3->setName('TEMPLATE_INVOICE_PDF');
203-
$t4 = new TemplateType();
204-
$t4->setIcon('fa-file-pdf');
205-
$t4->setName('TEMPLATE_RESERVATION_PDF');
206-
$t5 = new TemplateType();
207-
$t5->setIcon('fa-file-pdf');
208-
$t5->setName('TEMPLATE_CASHJOURNAL_PDF');
209-
$t6 = new TemplateType();
210-
$t6->setIcon('fa-file-pdf');
211-
$t6->setName('TEMPLATE_GDPR_PDF');
212-
$t7 = new TemplateType();
213-
$t7->setIcon('fa-file-pdf');
214-
$t7->setName('TEMPLATE_OPERATIONS_PDF');
215-
$t8 = new TemplateType();
216-
$t8->setIcon('fa-file-pdf');
217-
$t8->setName('TEMPLATE_REGISTRATION_PDF');
218-
219-
$this->em->persist($t1);
220-
$this->em->persist($t2);
221-
$this->em->persist($t3);
222-
$this->em->persist($t4);
223-
$this->em->persist($t5);
224-
$this->em->persist($t6);
225-
$this->em->persist($t7);
226-
$this->em->persist($t8);
194+
$definitions = [
195+
'TEMPLATE_RESERVATION_EMAIL' => 'fa-envelope',
196+
'TEMPLATE_FILE_PDF' => 'fa-file-pdf',
197+
'TEMPLATE_INVOICE_PDF' => 'fa-file-pdf',
198+
'TEMPLATE_RESERVATION_PDF' => 'fa-file-pdf',
199+
'TEMPLATE_CASHJOURNAL_PDF' => 'fa-file-pdf',
200+
'TEMPLATE_GDPR_PDF' => 'fa-file-pdf',
201+
'TEMPLATE_OPERATIONS_PDF' => 'fa-file-pdf',
202+
'TEMPLATE_REGISTRATION_PDF' => 'fa-file-pdf',
203+
];
204+
205+
foreach ($definitions as $name => $icon) {
206+
$templateType = $this->em->getRepository(TemplateType::class)->findOneBy(['name' => $name]);
207+
if (!$templateType instanceof TemplateType) {
208+
$templateType = new TemplateType();
209+
$templateType->setName($name);
210+
$this->em->persist($templateType);
211+
}
212+
213+
$templateType->setIcon($icon);
214+
}
227215
}
228216

229217
private function createDummyCustomer(): void

src/Service/TemplatesService.php

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -260,13 +260,22 @@ public function importTemplates(TemplateType $type, array $entries, string $base
260260
}
261261

262262
$content = $response->getContent();
263+
$templateName = $this->resolveTemplateName(
264+
$type->getName(),
265+
$entry['name'] ?? null
266+
);
267+
$template = $this->em->getRepository(Template::class)->findOneBy([
268+
'templateType' => $type,
269+
'name' => $templateName,
270+
]);
271+
if ($template instanceof Template) {
272+
continue;
273+
}
274+
263275
$template = new Template();
264276
$template->setParams($this->buildTemplateParams($entry['params'] ?? []));
265277
$template->setIsDefault(isset($entry['isDefault']) ? (bool) $entry['isDefault'] : false);
266-
$template->setName($this->resolveTemplateName(
267-
$type->getName(),
268-
$entry['name'] ?? null
269-
));
278+
$template->setName($templateName);
270279
$template->setTemplateType($type);
271280
$template->setText($content);
272281

0 commit comments

Comments
 (0)