aktualizacja modułu dpd

This commit is contained in:
2026-02-02 10:46:49 +01:00
parent dfc86a1895
commit 764d54f8d5
722 changed files with 70854 additions and 1051 deletions

View File

@@ -0,0 +1,44 @@
{% extends '@PrestaShop/Admin/layout.html.twig' %}
{% form_theme form '@PrestaShop/Admin/TwigTemplateForm/prestashop_ui_kit.html.twig' %}
{% block content %}
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar.html.twig' %}
<div class="row">
<div class="col-sm-12 col-md-3">
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar-configuration.html.twig' %}
</div>
<div class="col-sm-12 col-md-9">
{{ form_start(form) }}
<div class="card">
<h3 class="card-header bg-white">
{{ 'Address'|trans({}, 'Modules.Dpdshipping.AdminAddress') }} {{ addressId }}
</h3>
<div class="card-body">
{% if shopContext > 1 %}
<div class="alert alert-warning" role="alert">
{{ 'You are editing settings for multiple shops contexts. These settings will be applied to other contexts and may override current values.'|trans({}, 'Modules.Dpdshipping.Admin') }}
</div>
{% endif %}
<div class="form-wrapper">
{{ form_widget(form) }}
</div>
</div>
<div class="card-footer bg-white">
<div class="d-flex justify-content-end">
<button class="btn btn-secondary float-right" id="save-button">
{{ 'Save'|trans({}, 'Modules.Dpdshipping.AdminAddress') }}
</button>
</div>
</div>
</div>
</div>
{{ form_end(form) }}
</div>
{% endblock %}

View File

@@ -0,0 +1,36 @@
{% extends '@PrestaShop/Admin/layout.html.twig' %}
{% block content %}
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar.html.twig' %}
<div class="row">
<div class="col-sm-12 col-md-3">
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar-configuration.html.twig' %}
</div>
<div class="col-sm-12 col-md-9">
<div class="row">
<div class="col-12 mb-2">
<a class="btn btn-primary float-right"
href="{{ path('dpdshipping_address_edit_form') }}">{{ 'Add new sender address'|trans({}, 'Modules.Dpdshipping.AdminAddress') }}</a>
</div>
<div class="col-12">
{% block quotes_list_panel %}
<div class="row">
<div class="col">
{% include '@PrestaShop/Admin/Common/Grid/grid_panel.html.twig' with {'grid': quoteGrid} %}
</div>
</div>
{% endblock %}
</div>
</div>
</div>
</div>
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script src="{{ asset('../modules/dpdshipping/views/js/configuration/address-grid.js') }}"></script>
{% endblock %}

View File

@@ -0,0 +1,450 @@
{% extends '@PrestaShop/Admin/layout.html.twig' %}
{% form_theme form '@PrestaShop/Admin/TwigTemplateForm/prestashop_ui_kit.html.twig' %}
{% block content %}
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar.html.twig' %}
<div class="row">
<div class="col-sm-12 col-md-3">
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar-configuration.html.twig' %}
</div>
<div class="col-sm-12 col-md-9">
{{ form_start(form) }}
<div class="card">
<h3 class="card-header bg-white">
{{ 'Carriers'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}
</h3>
<div class="card-body">
<div class="alert alert-info mb-4" role="alert">
{{ 'Select an available shipping method for the Create Prestashop carrier. You can manage carriers on the standard prestashop page.'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}
</div>
{% if shopContext > 1 %}
<div class="alert alert-warning mb-4" role="alert">
{{ 'Select a single shop context to manage carriers.'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}
</div>
{% endif %}
<h4>{{ 'Available shipping methods'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</h4>
<div class="row pt-2">
<div class="col-12">
<div class="pl-2">
{{ form_label(form.dpdPolandCarrierSwipBox) }}
{{ form_widget(form.dpdPolandCarrierSwipBox) }}
{{ form_errors(form.dpdPolandCarrierSwipBox) }}
</div>
</div>
<div class="offset-2 col-10">
{% if dpdCarrierSwipBox is not null and dpdCarrierSwipBox is not empty and dpdCarrierSwipBox[0].id is defined %}
<table class="table">
<thead>
<tr>
<th class="col-2" scope="col">{{ 'Id'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-2" scope="col">{{ 'Id Shop'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-6" scope="col">{{ 'Name'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-2" scope="col">{{ 'Visible'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-2" scope="col">{{ 'Actions'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
</tr>
</thead>
<tbody>
{% for row in dpdCarrierSwipBox %}
{% if row.id is defined %}
<tr>
<th>{{ row.id }}</th>
<th>{{ row.idShop }}</th>
<td>{{ row.name }}</td>
<td>
{% if row.active %}
<i class="color_success"></i> <i class="material-icons" style="color:#009d00">done</i>
{% else %}
<i class="color_danger"></i> <i class="material-icons" style="color:red">blockade</i>
{% endif %}
</td>
<td>
<a href="{{ path('admin_carriers_edit', {'carrierId': row.id }) }}" type="button"
class="btn btn-sm btn-secondary">{{ 'Configure'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</a>
</td>
</tr>
{% endif %}
{% endfor %}
</tbody>
</table>
{% if shopContext == 1 %}
{% set apiConnection = [
form.dpdPolandCarrierSwipBoxFilterSwipBox,
form.dpdPolandCarrierSwipBoxFilterPointsWithServices
] %}
<p class="font-weight-bold">{{ 'Filters for SwipBox map'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}:</p>
<div class="row">
{% for item in apiConnection %}
<div class="col-xs-12 col-sm-12 col-md-4 col-xl-3">
{{ form_widget(item) }}
{{ form_errors(item) }}
</div>
{% endfor %}
</div>
{% set apiConnection = [
form.dpdPolandCarrierSwipBoxFilterOpenLate,
form.dpdPolandCarrierSwipBoxFilterOpenSaturdays,
form.dpdPolandCarrierSwipBoxFilterOpenSundays,
form.dpdPolandCarrierSwipBoxFilterParking,
form.dpdPolandCarrierSwipBoxFilterDirectDelivery,
form.dpdPolandCarrierSwipBoxFilterDirectDeliveryCod,
form.dpdPolandCarrierSwipBoxFilterDropoffOnline,
form.dpdPolandCarrierSwipBoxFilterDropoffOffline,
form.dpdPolandCarrierSwipBoxFilterSwapParcel,
form.dpdPolandCarrierSwipBoxFilterFresh,
form.dpdPolandCarrierSwipBoxFilterFittingRoom,
form.dpdPolandCarrierSwipBoxFilterCardPayment,
form.dpdPolandCarrierSwipBoxFilterRod,
form.dpdPolandCarrierSwipBoxFilterLQ,
form.dpdPolandCarrierSwipBoxFilterDigitalLabel,
form.dpdPolandCarrierSwipBoxFilterDisabledFriendly,
] %}
<div class="row">
{% for item in apiConnection %}
<div class="col-xs-12 col-sm-12 col-md-4 col-xl-3">
{{ form_widget(item) }}
{{ form_errors(item) }}
</div>
{% endfor %}
</div>
{% endif %}
{% endif %}
</div>
</div>
<div class="row pt-2">
<div class="col-12">
<div class="pl-2">
{{ form_label(form.dpdPolandCarrierPickup) }}
{{ form_widget(form.dpdPolandCarrierPickup) }}
{{ form_errors(form.dpdPolandCarrierPickup) }}
</div>
</div>
<div class="offset-2 col-10">
{% if dpdCarrierPickup is not null and dpdCarrierPickup is not empty and dpdCarrierPickup[0].id is defined %}
<table class="table">
<thead>
<tr>
<th class="col-2" scope="col">{{ 'Id'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-2" scope="col">{{ 'Id Shop'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-6" scope="col">{{ 'Name'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-2" scope="col">{{ 'Visible'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-2" scope="col">{{ 'Actions'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
</tr>
</thead>
<tbody>
{% for row in dpdCarrierPickup %}
{% if row.id is defined %}
<tr>
<th>{{ row.id }}</th>
<th>{{ row.idShop }}</th>
<td>{{ row.name }}</td>
<td>
{% if row.active %}
<i class="color_success"></i> <i class="material-icons" style="color:#009d00">done</i>
{% else %}
<i class="color_danger"></i> <i class="material-icons" style="color:red">blockade</i>
{% endif %}
</td>
<td>
<a href="{{ path('admin_carriers_edit', {'carrierId': row.id }) }}" type="button"
class="btn btn-sm btn-secondary">{{ 'Configure'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</a>
</td>
</tr>
{% endif %}
{% endfor %}
</tbody>
</table>
{% if shopContext == 1 %}
{% set apiConnection = [
form.dpdPolandCarrierPickupFilterSwipBox,
form.dpdPolandCarrierPickupFilterPointsWithServices
] %}
<p class="font-weight-bold">{{ 'Filters for Pickup map'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}:</p>
<div class="row">
{% for item in apiConnection %}
<div class="col-xs-12 col-sm-12 col-md-4 col-xl-3">
{{ form_widget(item) }}
{{ form_errors(item) }}
</div>
{% endfor %}
</div>
{% set apiConnection = [
form.dpdPolandCarrierPickupFilterOpenLate,
form.dpdPolandCarrierPickupFilterOpenSaturdays,
form.dpdPolandCarrierPickupFilterOpenSundays,
form.dpdPolandCarrierPickupFilterParking,
form.dpdPolandCarrierPickupFilterDirectDelivery,
form.dpdPolandCarrierPickupFilterDirectDeliveryCod,
form.dpdPolandCarrierPickupFilterDropoffOnline,
form.dpdPolandCarrierPickupFilterDropoffOffline,
form.dpdPolandCarrierPickupFilterSwapParcel,
form.dpdPolandCarrierPickupFilterFresh,
form.dpdPolandCarrierPickupFilterFittingRoom,
form.dpdPolandCarrierPickupFilterCardPayment,
form.dpdPolandCarrierPickupFilterRod,
form.dpdPolandCarrierPickupFilterLQ,
form.dpdPolandCarrierPickupFilterDigitalLabel,
form.dpdPolandCarrierPickupFilterDisabledFriendly,
] %}
<div class="row">
{% for item in apiConnection %}
<div class="col-xs-12 col-sm-12 col-md-4 col-xl-3">
{{ form_widget(item) }}
{{ form_errors(item) }}
</div>
{% endfor %}
</div>
{% endif %}
{% endif %}
</div>
</div>
<div class="row pt-2">
<div class="col-12">
<div class="pl-2">
{{ form_label(form.dpdPolandCarrierPickupCOD) }}
{{ form_widget(form.dpdPolandCarrierPickupCOD) }}
{{ form_errors(form.dpdPolandCarrierPickupCOD) }}
</div>
</div>
<div class="offset-2 col-10">
{% if dpdCarrierPickupCod is not null and dpdCarrierPickupCod is not empty and dpdCarrierPickupCod[0].id is defined %}
<table class="table">
<thead>
<tr>
<th class="col-2" scope="col">{{ 'Id'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-2" scope="col">{{ 'Id Shop'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-6" scope="col">{{ 'Name'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-2" scope="col">{{ 'Visible'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-2" scope="col">{{ 'Actions'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
</tr>
</thead>
<tbody>
{% for row in dpdCarrierPickupCod %}
{% if row.id is defined %}
<tr>
<th>{{ row.id }}</th>
<th>{{ row.idShop }}</th>
<td>{{ row.name }}</td>
<td>
{% if row.active %}
<i class="color_success"></i> <i class="material-icons" style="color:#009d00">done</i>
{% else %}
<i class="color_danger"></i> <i class="material-icons" style="color:red">blockade</i>
{% endif %}
</td>
<td>
<a href="{{ path('admin_carriers_edit', {'carrierId': row.id }) }}" type="button"
class="btn btn-sm btn-secondary">{{ 'Configure'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</a>
</td>
</tr>
{% endif %}
{% endfor %}
</tbody>
</table>
{% if shopContext == 1 %}
{% set apiConnection = [
form.dpdPolandCarrierPickupCODFilterSwipBox,
form.dpdPolandCarrierPickupCODFilterPointsWithServices,
] %}
<p class="font-weight-bold">{{ 'Filters for Pickup map'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}:</p>
<div class="row">
{% for item in apiConnection %}
<div class="col-xs-12 col-sm-12 col-md-4 col-xl-3">
{{ form_widget(item) }}
{{ form_errors(item) }}
</div>
{% endfor %}
</div>
{% set apiConnection = [
form.dpdPolandCarrierPickupCODFilterOpenLate,
form.dpdPolandCarrierPickupCODFilterOpenSaturdays,
form.dpdPolandCarrierPickupCODFilterOpenSundays,
form.dpdPolandCarrierPickupCODFilterParking,
form.dpdPolandCarrierPickupCODFilterDirectDelivery,
form.dpdPolandCarrierPickupCODFilterDirectDeliveryCod,
form.dpdPolandCarrierPickupCODFilterDropoffOnline,
form.dpdPolandCarrierPickupCODFilterDropoffOffline,
form.dpdPolandCarrierPickupCODFilterSwapParcel,
form.dpdPolandCarrierPickupCODFilterFresh,
form.dpdPolandCarrierPickupCODFilterFittingRoom,
form.dpdPolandCarrierPickupCODFilterCardPayment,
form.dpdPolandCarrierPickupCODFilterRod,
form.dpdPolandCarrierPickupCODFilterLQ,
form.dpdPolandCarrierPickupCODFilterDigitalLabel,
form.dpdPolandCarrierPickupCODFilterDisabledFriendly,
] %}
<div class="row">
{% for item in apiConnection %}
<div class="col-xs-12 col-sm-12 col-md-4 col-xl-3">
{{ form_widget(item) }}
{{ form_errors(item) }}
</div>
{% endfor %}
</div>
{% endif %}
{% endif %}
</div>
</div>
<div class="row pt-2">
<div class="col-12">
<div class="pl-2">
{{ form_label(form.dpdPolandCarrierStandard) }}
{{ form_widget(form.dpdPolandCarrierStandard) }}
{{ form_errors(form.dpdPolandCarrierStandard) }}
</div>
</div>
<div class="offset-2 col-10">
{% if dpdCarrier is not null and dpdCarrier is not empty and dpdCarrier[0].id is defined %}
<table class="table">
<thead>
<tr>
<th class="col-2" scope="col">{{ 'Id'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-2" scope="col">{{ 'Id Shop'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-6" scope="col">{{ 'Name'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-2" scope="col">{{ 'Visible'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-2" scope="col">{{ 'Actions'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
</tr>
</thead>
<tbody>
{% for row in dpdCarrier %}
{% if row.id is defined %}
<tr>
<th>{{ row.id }}</th>
<th>{{ row.idShop }}</th>
<td>{{ row.name }}</td>
<td>
{% if row.active %}
<i class="color_success"></i> <i class="material-icons" style="color:#009d00">done</i>
{% else %}
<i class="color_danger"></i> <i class="material-icons" style="color:red">blockade</i>
{% endif %}
</td>
<td>
<a href="{{ path('admin_carriers_edit', {'carrierId': row.id }) }}" type="button"
class="btn btn-sm btn-secondary">{{ 'Configure'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</a>
</td>
</tr>
{% endif %}
{% endfor %}
</tbody>
</table>
{% endif %}
</div>
</div>
<div class="row pt-2">
<div class="col-12">
<div class="pl-2">
{{ form_label(form.dpdPolandCarrierStandardCod) }}
{{ form_widget(form.dpdPolandCarrierStandardCod) }}
{{ form_errors(form.dpdPolandCarrierStandardCod) }}
</div>
</div>
<div class="offset-2 col-10">
{% if dpdCarrierCod is not null and dpdCarrierCod is not empty and dpdCarrierCod[0].id is defined %}
<table class="table">
<thead>
<tr>
<th class="col-2" scope="col">{{ 'Id'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-2" scope="col">{{ 'Id Shop'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-6" scope="col">{{ 'Name'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-2" scope="col">{{ 'Visible'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
<th class="col-2" scope="col">{{ 'Actions'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</th>
</tr>
</thead>
<tbody>
{% for row in dpdCarrierCod %}
{% if row.id is defined %}
<tr>
<th>{{ row.id }}</th>
<th>{{ row.idShop }}</th>
<td>{{ row.name }}</td>
<td>
{% if row.active %}
<i class="color_success"></i> <i class="material-icons" style="color:#009d00">done</i>
{% else %}
<i class="color_danger"></i> <i class="material-icons" style="color:red">blockade</i>
{% endif %}
</td>
<td>
<a href="{{ path('admin_carriers_edit', {'carrierId': row.id }) }}" type="button"
class="btn btn-sm btn-secondary">{{ 'Configure'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}</a>
</td>
</tr>
{% endif %}
{% endfor %}
</tbody>
</table>
{% endif %}
</div>
</div>
{% if shopContext == 1 %}
<div class="row pt-2">
<div class="col ml-3">
<p class="mt-3 font-weight-bold">{{ 'COD payment methods'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}:</p>
{% for codPaymentMethod in form.dpdCarrierCodPaymentMethods %}
<div class="d-flex align-items-center">
<div class="form-check form-check-inline">
{{ form_widget(codPaymentMethod.enable, {'attr': {'class': 'form-check-input'}}) }}
<label class="form-check-label" for="{{ codPaymentMethod.enable.vars.id }}"></label>
</div>
<span> {{ codPaymentMethod.displayName.vars.value }}</span>
{{ form_errors(codPaymentMethod.enable) }}
</div>
{% endfor %}
</div>
</div>
{% endif %}
</div>
<div class="card-footer bg-white">
{% if shopContext == 1 %}
<div class="d-flex justify-content-end">
<button class="btn btn-secondary float-right" id="save-button">
{{ 'Save'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}
</button>
</div>
{% endif %}
</div>
</div>
</div>
{{ form_widget(form._token) }}
{{ form_end(form, {'render_rest': false}) }}
</div>
{% endblock %}

View File

@@ -0,0 +1,44 @@
{% extends '@PrestaShop/Admin/layout.html.twig' %}
{% form_theme form '@PrestaShop/Admin/TwigTemplateForm/prestashop_ui_kit.html.twig' %}
{% block content %}
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar.html.twig' %}
<div class="row">
<div class="col-sm-12 col-md-3">
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar-configuration.html.twig' %}
</div>
<div class="col-sm-12 col-md-9">
{{ form_start(form) }}
<div class="card">
<h3 class="card-header bg-white">
{{ 'Configuration'|trans({}, 'Modules.Dpdshipping.AdminConfiguration') }}
</h3>
<div class="card-body">
{% if shopContext > 1 %}
<div class="alert alert-warning" role="alert">
{{ 'You are editing settings for multiple shops contexts. These settings will be applied to other contexts and may override current values.'|trans({}, 'Modules.Dpdshipping.Admin') }}
</div>
{% endif %}
<div class="form-wrapper">
{{ form_widget(form) }}
</div>
</div>
<div class="card-footer bg-white">
<div class="d-flex justify-content-end">
<button class="btn btn-secondary float-right" id="save-button">
{{ 'Save'|trans({}, 'Modules.Dpdshipping.AdminConfiguration') }}
</button>
</div>
</div>
</div>
</div>
{{ form_end(form) }}
</div>
{% endblock %}

View File

@@ -0,0 +1,107 @@
{% extends '@PrestaShop/Admin/layout.html.twig' %}
{% form_theme form '@PrestaShop/Admin/TwigTemplateForm/prestashop_ui_kit.html.twig' %}
{% block content %}
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar.html.twig' %}
<div class="row">
<div class="col-sm-12 col-md-3">
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar-configuration.html.twig' %}
</div>
<div class="col-sm-12 col-md-9">
{{ form_start(form) }}
<div class="card">
<h3 class="card-header bg-white">
{{ 'Connection with DPD Poland'|trans({}, 'Modules.Dpdshipping.AdminConnection') }}
</h3>
<div class="card-body">
{% if shopContext > 1 %}
<div class="alert alert-warning" role="alert">
{{ 'You are editing settings for multiple shops contexts. These settings will be applied to other contexts and may override current values.'|trans({}, 'Modules.Dpdshipping.Admin') }}
</div>
{% endif %}
<div class="form-wrapper">
{% set inputs = [
form.name,
form.login,
form.password,
form.masterfid,
form.environment,
] %}
{% for item in inputs %}
<div class="form-group row select-widget">
{{ form_label(item) }}
<div class="col-sm input-container">
{{ form_widget(item, {'attr': {'class': 'form-control'}}) }}
{{ form_errors(item) }}
</div>
</div>
{% endfor %}
</div> <div class="form-wrapper">
{% set inputs = [
form.isDefault,
] %}
{% for item in inputs %}
<div class="form-group row select-widget">
{{ form_label(item) }}
<div class="col-xs-12 col-sm-8 offset-sm-4">
{{ form_widget(item, {'attr': {'class': 'form-control'}}) }}
{{ form_errors(item) }}
</div>
</div>
{% endfor %}
</div>
<div class="col-xs-12 col-sm-8 offset-sm-3">
<h4>
{{ 'Payer data'|trans({}, 'Modules.Dpdshipping.AdminConnection') }}
</h4>
<table class="table mb-2" id="fidTable">
<thead class="bg-light">
<tr>
<th class="col-4">{{ 'FID number'|trans({}, 'Modules.Dpdshipping.AdminConnection') }}</th>
<th class="col-3">{{ 'FID name'|trans({}, 'Modules.Dpdshipping.AdminConnection') }}</th>
<th class="col-1">{{ 'Default'|trans({}, 'Modules.Dpdshipping.AdminConnection') }}</th>
<th class="col-1"></th>
</tr>
</thead>
<tbody>
{% for payer in form.payerList %}
<tr>
<td>{{ form_widget(payer.name) }}</td>
<td>{{ form_widget(payer.fid) }}</td>
<td>{{ form_widget(payer.default) }}</td>
<td><i class="material-icons btn btn-sm text-secondary delete-icon-gray dpdshipping-remove-row">delete</i></td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="col-xs-12 col-sm-8 offset-sm-3 pb-2 mb-4">
<button type="button" class="btn btn-sm btn-secondary float-right" id="addFidRow">
{{ 'Add row'|trans({}, 'Modules.Dpdshipping.Button') }}
</button>
</div>
</div>
<div class="card-footer bg-white">
<div class="d-flex justify-content-end">
<button class="btn btn-secondary float-right" id="save-button">
{{ 'Save'|trans({}, 'Modules.Dpdshipping.AdminConnection') }}
</button>
</div>
</div>
</div>
</div>
{{ form_end(form) }}
</div>
{% endblock %}
{% block javascripts %}
<script src="{{ asset('../modules/dpdshipping/views/js/configuration/connection.js') }}"></script>
{% endblock %}

View File

@@ -0,0 +1,36 @@
{% extends '@PrestaShop/Admin/layout.html.twig' %}
{% block content %}
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar.html.twig' %}
<div class="row">
<div class="col-sm-12 col-md-3">
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar-configuration.html.twig' %}
</div>
<div class="col-sm-12 col-md-9">
<div class="row">
<div class="col-12 mb-2">
<a class="btn btn-primary float-right"
href="{{ path('dpdshipping_connection_edit_form') }}">{{ 'Add new API connection'|trans({}, 'Modules.Dpdshipping.AdminAddress') }}</a>
</div>
<div class="col-12">
{% block quotes_list_panel %}
<div class="row">
<div class="col">
{% include '@PrestaShop/Admin/Common/Grid/grid_panel.html.twig' with {'grid': quoteGrid} %}
</div>
</div>
{% endblock %}
</div>
</div>
</div>
</div>
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script src="{{ asset('../modules/dpdshipping/views/js/configuration/connection-grid.js') }}"></script>
{% endblock %}

View File

@@ -0,0 +1,33 @@
<?php
/**
* Copyright 2024 DPD Polska Sp. z o.o.
*
* NOTICE OF LICENSE
*
* Licensed under the EUPL-1.2 or later.
* You may not use this work except in compliance with the Licence.
*
* You may obtain a copy of the Licence at:
* https://joinup.ec.europa.eu/software/page/eupl
* It is also bundled with this package in the file LICENSE.txt
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the Licence is distributed on an AS IS basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions
* and limitations under the Licence.
*
* @author DPD Polska Sp. z o.o.
* @copyright 2024 DPD Polska Sp. z o.o.
* @license https://joinup.ec.europa.eu/software/page/eupl
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,130 @@
{% extends '@PrestaShop/Admin/layout.html.twig' %}
{% form_theme form '@PrestaShop/Admin/TwigTemplateForm/prestashop_ui_kit.html.twig' %}
{% block content %}
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar.html.twig' %}
<div class="bg-white p-2">
<h2 class="pt-2 pb-2"> {{ 'Onboarding'|trans({}, 'Modules.Dpdshipping.AdminOnboarding') }}</h2>
{% if shopContext > 1 %}
<div class="alert alert-warning" role="alert">
{{ 'You are editing settings for multiple shops contexts. These settings will be applied to other contexts and may override current values.'|trans({}, 'Modules.Dpdshipping.Admin') }}
</div>
{% endif %}
{{ form_start(form, { 'attr' : { 'class': 'row' } }) }}
<div class="col-sm-12 col-md-4">
<div class="card">
<div class="card-header">
{{ 'DPD Poland API connections'|trans({}, 'Modules.Dpdshipping.AdminOnboarding') }}
</div>
<div class="card-body">
<div class="alert alert-info mb-4" role="alert">
{{ 'Configure DPD Poland API connection'|trans({}, 'Modules.Dpdshipping.AdminOnboarding') }}
</div>
{% set apiConnection = [
form.login,
form.password,
form.masterfid,
form.defaultFidNumber,
form.environment] %}
{% for item in apiConnection %}
<div class="form-group row text-widget">
{{ form_label(item) }}
<div class="col-sm input-container">
{{ form_widget(item) }}
{{ form_errors(item) }}
</div>
</div>
{% endfor %}
</div>
</div>
</div>
<div class="col-sm-12 col-md-4">
<div class="card">
<div class="card-header">
{{ 'Carriers'|trans({}, 'Modules.Dpdshipping.AdminOnboarding') }}
</div>
<div class="card-body">
<div class="alert alert-info mb-4" role="alert">
{{ 'Select available shipping method. '|trans({}, 'Modules.Dpdshipping.AdminOnboarding') }}
</div>
{% set apiConnection = [
form.carrierDpdPolandSwipBox,
form.carrierDpdPolandPickup,
form.carrierDpdPolandPickupCod,
form.carrierDpdPoland,
form.carrierDpdPolandCod] %}
{% for item in apiConnection %}
<div class="col-10 offset-2">
{{ form_widget(item) }}
{{ form_errors(item) }}
</div>
{% endfor %}
</div>
</div>
</div>
<div class="col-sm-12 col-md-4">
<div class="card">
<div class="card-header">
{{ 'Sender address'|trans({}, 'Modules.Dpdshipping.AdminOnboarding') }}
</div>
<div class="card-body">
<div class="alert alert-info mb-4" role="alert">
{{ 'Configure default Sender address'|trans({}, 'Modules.Dpdshipping.AdminOnboarding') }}
</div>
{% set apiConnection = [
form.alias,
form.company,
form.name,
form.street,
form.postcode,
form.city,
form.country,
form.phone,
form.mail
] %}
{% for item in apiConnection %}
<div class="form-group row text-widget">
{{ form_label(item) }}
<div class="col-sm input-container">
{{ form_widget(item) }}
{{ form_errors(item) }}
</div>
</div>
{% endfor %}
</div>
</div>
</div>
<div class="col">
<button class="btn btn-secondary float-right" id="save-button">
{{ 'Save'|trans({}, 'Modules.Dpdshipping.AdminOnboarding') }}
</button>
</div>
{{ form_end(form) }}
</div>
{% endblock %}

View File

@@ -0,0 +1,68 @@
{% extends '@PrestaShop/Admin/layout.html.twig' %}
{% form_theme form '@PrestaShop/Admin/TwigTemplateForm/prestashop_ui_kit.html.twig' %}
{% block content %}
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar.html.twig' %}
<div class="row">
<div class="col-sm-12 col-md-3">
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar-configuration.html.twig' %}
</div>
<div class="col-sm-12 col-md-9">
{{ form_start(form) }}
<div class="card">
<h3 class="card-header bg-white">
{{ 'Default parameters'|trans({}, 'Modules.Dpdshipping.AdminParameter') }}
</h3>
<div class="card-body">
{% if shopContext > 1 %}
<div class="alert alert-warning" role="alert">
{{ 'You are editing settings for multiple shops contexts. These settings will be applied to other contexts and may override current values.'|trans({}, 'Modules.Dpdshipping.Admin') }}
</div>
{% endif %}
<div class="form-wrapper">
{% set inputs = [
[form.ref1, form.ref1StaticValue],
[form.ref2, form.ref2StaticValue],
[form.customerData, form.customerDataStaticValue],
[form.content, form.contentStaticValue],
] %}
{% for item in inputs %}
<div class="form-group row text-widget">
{{ form_label(item[0]) }}
<div class="col input-container">
<div class="row">
<div class="col-6">
{{ form_widget(item[0]) }}
</div>
<div class="col-6">
{{ form_widget(item[1]) }}
</div>
{{ form_errors(item[0]) }}
</div>
</div>
</div>
{% endfor %}
{{ form_widget(form) }}
</div>
</div>
<div class="card-footer bg-white">
<div class="d-flex justify-content-end">
<button class="btn btn-secondary float-right" id="save-button">
{{ 'Save'|trans({}, 'Modules.Dpdshipping.AdminParameter') }}
</button>
</div>
</div>
</div>
</div>
{{ form_end(form) }}
</div>
{% endblock %}
{% block javascripts %}
<script src="{{ asset('../modules/dpdshipping/views/js/configuration/parameters.js') }}"></script>
{% endblock %}

View File

@@ -0,0 +1,40 @@
{% extends '@PrestaShop/Admin/layout.html.twig' %}
{% form_theme form '@PrestaShop/Admin/TwigTemplateForm/prestashop_ui_kit.html.twig' %}
{% block content %}
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar.html.twig' %}
<div class="row">
<div class="col-sm-12 col-md-3">
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar-configuration.html.twig' %}
</div>
<div class="col-sm-12 col-md-9">
{{ form_start(form) }}
<div class="card">
<h3 class="card-header bg-white">
{{ 'Pickup courier settings'|trans({}, 'Modules.Dpdshipping.AdminPickupCourier') }} {{ pickupCourierId }}
</h3>
<div class="card-body">
<div class="form-wrapper">
{{ form_widget(form) }}
</div>
</div>
<div class="card-footer bg-white">
<div class="d-flex justify-content-end">
<button class="btn btn-secondary float-right" id="save-button">
{{ 'Save'|trans({}, 'Modules.Dpdshipping.AdminPickupCourier') }}
</button>
</div>
</div>
</div>
</div>
{{ form_end(form) }}
</div>
{% endblock %}

View File

@@ -0,0 +1,36 @@
{% extends '@PrestaShop/Admin/layout.html.twig' %}
{% block content %}
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar.html.twig' %}
<div class="row">
<div class="col-sm-12 col-md-3">
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar-configuration.html.twig' %}
</div>
<div class="col-sm-12 col-md-9">
<div class="row">
<div class="col-12 mb-2">
<a class="btn btn-primary float-right"
href="{{ path('dpdshipping_pickup_courier_settings_form') }}">{{ 'Add'|trans({}, 'Modules.Dpdshipping.AdminAddress') }}</a>
</div>
<div class="col-12">
{% block quotes_list_panel %}
<div class="row">
<div class="col">
{% include '@PrestaShop/Admin/Common/Grid/grid_panel.html.twig' with {'grid': quoteGrid} %}
</div>
</div>
{% endblock %}
</div>
</div>
</div>
</div>
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script src="{{ asset('../modules/dpdshipping/views/js/configuration/pickup-courier-settings-grid.js') }}"></script>
{% endblock %}

View File

@@ -0,0 +1,153 @@
{% extends '@PrestaShop/Admin/layout.html.twig' %}
{% form_theme form '@PrestaShop/Admin/TwigTemplateForm/prestashop_ui_kit.html.twig' %}
{% block content %}
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar.html.twig' %}
<div class="row">
<div class="col-sm-12 col-md-3">
{% include '@Modules/dpdshipping/views/templates/admin/_partials/navbar-configuration.html.twig' %}
</div>
<div class="col-sm-12 col-md-9">
{{ form_start(form) }}
<div class="card">
<h3 class="card-header bg-white">
{{ 'Special prices'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}
</h3>
<div class="card-body">
{% if shopContext > 1 %}
<div class="alert alert-warning" role="alert">
{{ 'You are editing settings for multiple shops contexts. These settings will be applied to other contexts and may override current values.'|trans({}, 'Modules.Dpdshipping.Admin') }}
</div>
{% endif %}
<div>
<p>
{{ 'Select an available shipping method for the Create Prestashop carrier. You can manage carriers on the standard prestashop page.'|trans({}, 'Modules.Dpdshipping.AdminCarrier') }}
</p>
</div>
<div class="row">
<div class="col-3">
<div class="pl-2">
{{ form_label(form.specialPrice) }}
{{ form_widget(form.specialPrice) }}
{{ form_errors(form.specialPrice) }}
</div>
</div>
</div>
<div id="pagination-info" class="text-right" style="margin-top: 1rem;">
<span id="pagination-info-rows-from"></span> - <span id="pagination-info-rows-to"></span>
{{ 'from'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}
<span id="pagination-info-pages"></span>
</div>
<table id="specialPriceTable">
<thead>
<tr>
<th class="col-1">{{ 'Country'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}</th>
<th class="col-1">{{ 'Cart price from (PLN)'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}</th>
<th class="col-1">{{ 'Cart price up to (PLN)'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}</th>
<th class="col-1">{{ 'Package weight from (kg)'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}</th>
<th class="col-1">{{ 'Package weight up to (kg)'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}</th>
<th class="col-1">{{ 'Price per package (PLN)'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}</th>
<th class="col-4">{{ 'Delivery method'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}</th>
<th class="col-1">{{ 'Price for COD service (PLN)'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}</th>
<th class="col-1">{{ 'Action'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}</th>
</tr>
</thead>
<tbody>
{% for item in form.specialPriceList %}
<tr>
<td>{{ form_widget(item.isoCountry) }}</td>
<td>{{ form_widget(item.priceFrom) }}</td>
<td>{{ form_widget(item.priceTo) }}</td>
<td>{{ form_widget(item.weightFrom) }}</td>
<td>{{ form_widget(item.weightTo) }}</td>
<td>{{ form_widget(item.parcelPrice) }}</td>
<td>{{ form_widget(item.carrierType) }}</td>
<td>{{ form_widget(item.codPrice) }}</td>
<td>
<i class="material-icons btn btn-sm text-secondary delete-icon-gray dpdshipping-remove-row float-right">delete</i>
<i class="material-icons btn btn-sm text-secondary delete-icon-gray dpdshipping-duplicate-row float-right">content_copy</i>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="col pb-2 pt-2 mb-4">
<button type="button" class="btn btn-sm btn-secondary float-right" id="addFidRow">
{{ 'Add row'|trans({}, 'Modules.Dpdshipping.Button') }}
</button>
</div>
</div>
<div id="dpdSpecialPricePagination" class="text-center mb-2"></div>
<div class="card-footer bg-white">
<div class="d-flex justify-content-end">
<button class="btn btn-secondary float-right" id="save-button">
{{ 'Save'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}
</button>
</div>
</div>
</div>
{{ form_end(form) }}
<div class="card">
<h3 class="card-header bg-white">
{{ 'Special price configuration'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}
</h3>
<div class="card-body">
<div class="row">
<div class="col-md-6 border-right">
<h4>{{ 'Export Data'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}</h4>
<p class="text-muted">
{{ 'Click the button below to export your special price configuration data as a CSV file.'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}
</p>
<button class="btn btn-secondary export-btn w-20" id="dpdSpecialPriceExportButton">
<i class="fas fa-file-export"></i> {{ 'Export to CSV'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}
</button>
</div>
<div class="col-md-6">
<h4>{{ 'Import Data'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}</h4>
<p class="text-muted">
{{ 'Choose a CSV file to upload and update your special price configuration data.'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}
</p>
<div class="d-flex align-items-center">
<label for="dpdSpecialPriceImportFile" class="btn btn-secondary m-0">
<i class="fas fa-file-upload"></i> {{ 'Choose File'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}
</label>
<input
type="file"
id="dpdSpecialPriceImportFile"
class="import-file d-none"
accept=".csv"
/>
<span id="selectedFileName" class="ml-2 text-muted">{{ 'No file chosen'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}</span>
</div>
<button class="btn btn-secondary import-btn w-20 mt-3" id="dpdSpecialPriceImportFileButton">
<i class="fas fa-upload"></i> {{ 'Import CSV'|trans({}, 'Modules.Dpdshipping.AdminSpecialPrice') }}
</button>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script src="{{ asset('../modules/dpdshipping/views/js/configuration/special-price.js') }}"></script>
<script src="{{ asset('../modules/dpdshipping/views/js/configuration/special-price-data.js') }}"></script>
{% endblock %}
{% block stylesheets %}
{{ parent() }}
{% set currentTimestampOrderDetailsCss = date("now")|date("U") %}
<link rel="stylesheet" href="{{ asset('../modules/dpdshipping/views/admin/special-price.css?' ~ currentTimestampOrderDetailsCss) }}"/>
{% endblock %}