update
This commit is contained in:
@@ -97,15 +97,7 @@ final class EmailTemplateController
|
||||
|
||||
public function index(Request $request): Response
|
||||
{
|
||||
$t = $this->translator;
|
||||
$templates = $this->repository->listAll();
|
||||
$mailboxes = $this->mailboxRepository->listActive();
|
||||
|
||||
$editTemplate = null;
|
||||
$editId = (int) $request->input('edit', '0');
|
||||
if ($editId > 0) {
|
||||
$editTemplate = $this->repository->findById($editId);
|
||||
}
|
||||
|
||||
$html = $this->template->render('settings/email-templates', [
|
||||
'title' => 'Szablony e-mail',
|
||||
@@ -114,9 +106,6 @@ final class EmailTemplateController
|
||||
'user' => $this->auth->user(),
|
||||
'csrfToken' => Csrf::token(),
|
||||
'templates' => $templates,
|
||||
'mailboxes' => $mailboxes,
|
||||
'editTemplate' => $editTemplate,
|
||||
'variableGroups' => self::VARIABLE_GROUPS,
|
||||
'attachmentTypes' => self::ATTACHMENT_TYPES,
|
||||
'successMessage' => Flash::get('settings.email_templates.success', ''),
|
||||
'errorMessage' => Flash::get('settings.email_templates.error', ''),
|
||||
@@ -125,11 +114,32 @@ final class EmailTemplateController
|
||||
return Response::html($html);
|
||||
}
|
||||
|
||||
public function create(Request $request): Response
|
||||
{
|
||||
return $this->renderForm(null);
|
||||
}
|
||||
|
||||
public function edit(Request $request): Response
|
||||
{
|
||||
$id = (int) $request->input('id', '0');
|
||||
$template = $id > 0 ? $this->repository->findById($id) : null;
|
||||
|
||||
if ($template === null) {
|
||||
Flash::set('settings.email_templates.error', 'Nie znaleziono szablonu');
|
||||
return Response::redirect('/settings/email-templates');
|
||||
}
|
||||
|
||||
return $this->renderForm($template);
|
||||
}
|
||||
|
||||
public function save(Request $request): Response
|
||||
{
|
||||
$templateId = (int) $request->input('id', '0');
|
||||
$formPath = $this->buildFormPath($templateId > 0 ? $templateId : null);
|
||||
|
||||
if (!Csrf::validate((string) $request->input('_token', ''))) {
|
||||
Flash::set('settings.email_templates.error', 'Nieprawidlowy token CSRF');
|
||||
return Response::redirect('/settings/email-templates');
|
||||
return Response::redirect($formPath);
|
||||
}
|
||||
|
||||
$name = trim((string) $request->input('name', ''));
|
||||
@@ -138,7 +148,7 @@ final class EmailTemplateController
|
||||
|
||||
if ($name === '' || $subject === '' || $bodyHtml === '') {
|
||||
Flash::set('settings.email_templates.error', 'Nazwa, temat i tresc sa wymagane');
|
||||
return Response::redirect('/settings/email-templates');
|
||||
return Response::redirect($formPath);
|
||||
}
|
||||
|
||||
$attachment1Raw = trim((string) $request->input('attachment_1', ''));
|
||||
@@ -158,6 +168,7 @@ final class EmailTemplateController
|
||||
Flash::set('settings.email_templates.success', 'Szablon zostal zapisany');
|
||||
} catch (Throwable) {
|
||||
Flash::set('settings.email_templates.error', 'Blad zapisu szablonu');
|
||||
return Response::redirect($formPath);
|
||||
}
|
||||
|
||||
return Response::redirect('/settings/email-templates');
|
||||
@@ -266,4 +277,32 @@ final class EmailTemplateController
|
||||
$text
|
||||
);
|
||||
}
|
||||
|
||||
private function renderForm(?array $template): Response
|
||||
{
|
||||
$html = $this->template->render('settings/email-templates-form', [
|
||||
'title' => $template !== null ? 'Edytuj szablon e-mail' : 'Nowy szablon e-mail',
|
||||
'activeMenu' => 'settings',
|
||||
'activeSettings' => 'email-templates',
|
||||
'user' => $this->auth->user(),
|
||||
'csrfToken' => Csrf::token(),
|
||||
'mailboxes' => $this->mailboxRepository->listActive(),
|
||||
'template' => $template,
|
||||
'variableGroups' => self::VARIABLE_GROUPS,
|
||||
'attachmentTypes' => self::ATTACHMENT_TYPES,
|
||||
'successMessage' => Flash::get('settings.email_templates.success', ''),
|
||||
'errorMessage' => Flash::get('settings.email_templates.error', ''),
|
||||
], 'layouts/app');
|
||||
|
||||
return Response::html($html);
|
||||
}
|
||||
|
||||
private function buildFormPath(?int $templateId): string
|
||||
{
|
||||
if ($templateId !== null && $templateId > 0) {
|
||||
return '/settings/email-templates/edit?id=' . $templateId;
|
||||
}
|
||||
|
||||
return '/settings/email-templates/create';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,29 +194,40 @@ final class DeliveryStatus
|
||||
private const ALLEGRO_EDGE_MAP = [
|
||||
// Realne slugi z edge API (po slugify opisów)
|
||||
'przygotowana_przez_nadawce' => self::CREATED,
|
||||
'prepared_by_the_sender' => self::CREATED,
|
||||
'nadana' => self::CONFIRMED,
|
||||
'dispatched' => self::CONFIRMED,
|
||||
'podjeta_z_maszyny_przez_kuriera' => self::IN_TRANSIT,
|
||||
'podjeta_z_punktu_przez_kuriera' => self::IN_TRANSIT,
|
||||
'podjeta_z_punktu' => self::IN_TRANSIT,
|
||||
'odebrana_przez_kuriera' => self::IN_TRANSIT,
|
||||
'picked_up_from_point_by_courier' => self::IN_TRANSIT,
|
||||
'picked_up_by_the_courier' => self::IN_TRANSIT,
|
||||
'przekazal_przesylke_do_magazynu' => self::IN_TRANSIT,
|
||||
'przekazana_do_magazynu' => self::IN_TRANSIT,
|
||||
'transferred_the_parcel_to_the_warehouse' => self::IN_TRANSIT,
|
||||
'accepted_at_the_branch' => self::IN_TRANSIT,
|
||||
'przesylka_wyjechala_w_droge_do_punktu_docelowego' => self::IN_TRANSIT,
|
||||
'w_sortowni' => self::IN_TRANSIT,
|
||||
'wyjechala_w_droge_do_punktu_docelowego' => self::IN_TRANSIT,
|
||||
'wyslana_z_sortowni' => self::IN_TRANSIT,
|
||||
'w_doreczeniu' => self::OUT_FOR_DELIVERY,
|
||||
'wydana_do_doreczenia' => self::OUT_FOR_DELIVERY,
|
||||
'released_for_delivery' => self::OUT_FOR_DELIVERY,
|
||||
'dostarczana' => self::OUT_FOR_DELIVERY,
|
||||
'gotowa_do_odbioru' => self::READY_FOR_PICKUP,
|
||||
'oczekuje_na_odbior' => self::READY_FOR_PICKUP,
|
||||
'przesylka_oczekuje_na_odbior' => self::READY_FOR_PICKUP,
|
||||
'awaiting_pick_up' => self::READY_FOR_PICKUP,
|
||||
'dostarczona' => self::DELIVERED,
|
||||
'doreczona' => self::DELIVERED,
|
||||
'odebrana' => self::DELIVERED,
|
||||
'delivered' => self::DELIVERED,
|
||||
'zwrocona' => self::RETURNED,
|
||||
'zwrocona_do_nadawcy' => self::RETURNED,
|
||||
'returned_to_the_sender' => self::RETURNED,
|
||||
'anulowana' => self::CANCELLED,
|
||||
'cancelled' => self::CANCELLED,
|
||||
'odmowa_przyjecia' => self::PROBLEM,
|
||||
'uszkodzona' => self::PROBLEM,
|
||||
'zagubiona' => self::PROBLEM,
|
||||
@@ -224,27 +235,38 @@ final class DeliveryStatus
|
||||
|
||||
private const ALLEGRO_EDGE_DESCRIPTIONS = [
|
||||
'przygotowana_przez_nadawce' => 'Przesyłka przygotowana przez nadawcę',
|
||||
'prepared_by_the_sender' => 'Przesyłka przygotowana przez nadawcę',
|
||||
'nadana' => 'Przesyłka nadana',
|
||||
'dispatched' => 'Przesyłka nadana',
|
||||
'podjeta_z_maszyny_przez_kuriera' => 'Podjęta z maszyny przez kuriera',
|
||||
'podjeta_z_punktu_przez_kuriera' => 'Podjęta z punktu przez kuriera',
|
||||
'odebrana_przez_kuriera' => 'Odebrana przez kuriera',
|
||||
'picked_up_from_point_by_courier' => 'Podjęta z punktu przez kuriera',
|
||||
'picked_up_by_the_courier' => 'Odebrana przez kuriera',
|
||||
'przekazana_do_magazynu' => 'Przekazana do magazynu',
|
||||
'transferred_the_parcel_to_the_warehouse' => 'Przekazana do magazynu',
|
||||
'accepted_at_the_branch' => 'Przyjęta w oddziale',
|
||||
'przesylka_wyjechala_w_droge_do_punktu_docelowego' => 'Wyjechała w drogę do punktu docelowego',
|
||||
'w_sortowni' => 'W sortowni',
|
||||
'wyjechala_w_droge_do_punktu_docelowego' => 'Wyjechała w drogę do punktu docelowego',
|
||||
'wyslana_z_sortowni' => 'Wysłana z sortowni',
|
||||
'w_doreczeniu' => 'W doręczeniu',
|
||||
'wydana_do_doreczenia' => 'Wydana do doręczenia',
|
||||
'released_for_delivery' => 'Wydana do doręczenia',
|
||||
'dostarczana' => 'Dostarczana',
|
||||
'gotowa_do_odbioru' => 'Gotowa do odbioru',
|
||||
'oczekuje_na_odbior' => 'Oczekuje na odbiór',
|
||||
'przesylka_oczekuje_na_odbior' => 'Oczekuje na odbiór',
|
||||
'awaiting_pick_up' => 'Oczekuje na odbiór',
|
||||
'dostarczona' => 'Dostarczona',
|
||||
'doreczona' => 'Doręczona',
|
||||
'odebrana' => 'Odebrana',
|
||||
'delivered' => 'Dostarczona',
|
||||
'zwrocona' => 'Zwrócona',
|
||||
'zwrocona_do_nadawcy' => 'Zwrócona do nadawcy',
|
||||
'returned_to_the_sender' => 'Zwrócona do nadawcy',
|
||||
'anulowana' => 'Anulowana',
|
||||
'cancelled' => 'Anulowana',
|
||||
'odmowa_przyjecia' => 'Odmowa przyjęcia',
|
||||
'uszkodzona' => 'Uszkodzona',
|
||||
'zagubiona' => 'Zagubiona',
|
||||
@@ -369,6 +391,9 @@ final class DeliveryStatus
|
||||
$text = preg_replace('/^Przesy[łl]ka zosta[łl]a\s+/ui', '', $text);
|
||||
$text = preg_replace('/^Kurier\s+/ui', '', $text);
|
||||
$text = preg_replace('/^Paczka zosta[łl]a\s+/ui', '', $text);
|
||||
$text = preg_replace('/^Parcel has been\s+/i', '', $text);
|
||||
$text = preg_replace('/^Parcel is\s+/i', '', $text);
|
||||
$text = preg_replace('/^Courier has\s+/i', '', $text);
|
||||
|
||||
// Polskie znaki na ASCII
|
||||
$polish = ['ą','ć','ę','ł','ń','ó','ś','ź','ż','Ą','Ć','Ę','Ł','Ń','Ó','Ś','Ź','Ż'];
|
||||
@@ -391,6 +416,34 @@ final class DeliveryStatus
|
||||
{
|
||||
$lower = mb_strtolower($description, 'UTF-8');
|
||||
|
||||
if (str_contains($lower, 'delivered') || str_contains($lower, 'picked up by recipient')) {
|
||||
return self::DELIVERED;
|
||||
}
|
||||
if (str_contains($lower, 'returned')) {
|
||||
return self::RETURNED;
|
||||
}
|
||||
if (str_contains($lower, 'cancelled') || str_contains($lower, 'canceled')) {
|
||||
return self::CANCELLED;
|
||||
}
|
||||
if (str_contains($lower, 'out for delivery') || str_contains($lower, 'released for delivery')) {
|
||||
return self::OUT_FOR_DELIVERY;
|
||||
}
|
||||
if (str_contains($lower, 'awaiting pick-up') || str_contains($lower, 'awaiting pickup') || str_contains($lower, 'ready for pickup') || str_contains($lower, 'ready for pick-up')) {
|
||||
return self::READY_FOR_PICKUP;
|
||||
}
|
||||
if (str_contains($lower, 'courier') || str_contains($lower, 'warehouse') || str_contains($lower, 'branch') || str_contains($lower, 'in transit') || str_contains($lower, 'picked up')) {
|
||||
return self::IN_TRANSIT;
|
||||
}
|
||||
if (str_contains($lower, 'dispatched')) {
|
||||
return self::CONFIRMED;
|
||||
}
|
||||
if (str_contains($lower, 'prepared') || str_contains($lower, 'created')) {
|
||||
return self::CREATED;
|
||||
}
|
||||
if (str_contains($lower, 'damaged') || str_contains($lower, 'problem') || str_contains($lower, 'lost')) {
|
||||
return self::PROBLEM;
|
||||
}
|
||||
|
||||
if (str_contains($lower, 'doręczon') || str_contains($lower, 'dostarczono') || str_contains($lower, 'odebrana przez odbiorc')) {
|
||||
return self::DELIVERED;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user