From 4780bf1ff64e1bf1235686414d7e7739b06103b1 Mon Sep 17 00:00:00 2001 From: TheCoreDev Date: Thu, 25 Feb 2021 14:56:55 +0100 Subject: [PATCH] LivraisonParSecteur : Rajout de la gestion du minimum de commande --- .../LivraisonParSecteurs/Config/insert.sql | 10 +-- .../LivraisonParSecteurs/Config/schema.xml | 1 + .../LivraisonParSecteurs/Config/sqldb.map | 2 - .../LivraisonParSecteurs/Config/thelia.sql | 71 --------------- .../LivraisonParSecteurs/Form/GeneralForm.php | 9 ++ .../LivraisonParSecteurs/Hook/AdminHook.php | 16 ++++ .../LivraisonParSecteurs/I18n/fr_FR.php | 8 +- .../LivraisonParSecteurs.php | 18 +++- .../LivraisonParSecteurs/Loop/AreaLoop.php | 1 + .../Loop/AreaScheduleLoop.php | 7 +- .../backOffice/default/delivery-address.html | 2 +- .../backOffice/default/deliveryarea-list.html | 4 +- .../default/form/area-schedule-create.html | 4 +- .../default/includes/area-general.html | 19 +++- .../default/includes/area-schedule.html | 9 +- .../default/scheduled-deliveries.html | 84 ++++++++++++++++++ .../email/default/delivery-address.html | 2 +- .../frontOffice/default/delivery-address.html | 2 +- .../default/order-delivery-extra.html | 2 +- .../PlanificationLivraison/Config/config.xml | 4 + .../EventListeners/DeliveryListener.php | 4 +- .../Loop/ScheduledDeliveriesLoop.php | 72 +++++++++++++++ .../custom/assets/img/flag-green.png | Bin 0 -> 12176 bytes .../custom/assets/img/flag-orange.png | Bin 0 -> 12337 bytes .../backOffice/custom/assets/img/flag-red.png | Bin 0 -> 12606 bytes .../frontOffice/custom/order-delivery.html | 5 +- 26 files changed, 256 insertions(+), 100 deletions(-) delete mode 100644 local/modules/LivraisonParSecteurs/Config/sqldb.map delete mode 100644 local/modules/LivraisonParSecteurs/Config/thelia.sql create mode 100644 local/modules/LivraisonParSecteurs/templates/backOffice/default/scheduled-deliveries.html create mode 100644 local/modules/PlanificationLivraison/Loop/ScheduledDeliveriesLoop.php create mode 100644 templates/backOffice/custom/assets/img/flag-green.png create mode 100644 templates/backOffice/custom/assets/img/flag-orange.png create mode 100644 templates/backOffice/custom/assets/img/flag-red.png diff --git a/local/modules/LivraisonParSecteurs/Config/insert.sql b/local/modules/LivraisonParSecteurs/Config/insert.sql index 13a635a6..b3070af5 100644 --- a/local/modules/LivraisonParSecteurs/Config/insert.sql +++ b/local/modules/LivraisonParSecteurs/Config/insert.sql @@ -1,8 +1,8 @@ -INSERT INTO `lps_area`(`id`,`title`) VALUES - (1, 'Capso'), - (2, 'Pays de Lumbres'), - (3, 'Haut des Flandres'), - (4, 'Flandres intérieur'); +INSERT INTO `lps_area`(`id`,`title`,`minimum_amount`) VALUES + (1, 'Capso', 15.0), + (2, 'Pays de Lumbres', 15.0), + (3, 'Haut des Flandres', 15.0), + (4, 'Flandres intérieur', 15.0); diff --git a/local/modules/LivraisonParSecteurs/Config/schema.xml b/local/modules/LivraisonParSecteurs/Config/schema.xml index afcbbbfd..2a98c589 100644 --- a/local/modules/LivraisonParSecteurs/Config/schema.xml +++ b/local/modules/LivraisonParSecteurs/Config/schema.xml @@ -8,6 +8,7 @@ + diff --git a/local/modules/LivraisonParSecteurs/Config/sqldb.map b/local/modules/LivraisonParSecteurs/Config/sqldb.map deleted file mode 100644 index 63a93baa..00000000 --- a/local/modules/LivraisonParSecteurs/Config/sqldb.map +++ /dev/null @@ -1,2 +0,0 @@ -# Sqlfile -> Database map -thelia.sql=thelia diff --git a/local/modules/LivraisonParSecteurs/Config/thelia.sql b/local/modules/LivraisonParSecteurs/Config/thelia.sql deleted file mode 100644 index ccc1b2a4..00000000 --- a/local/modules/LivraisonParSecteurs/Config/thelia.sql +++ /dev/null @@ -1,71 +0,0 @@ - -# This is a fix for InnoDB in MySQL >= 4.1.x -# It "suspends judgement" for fkey relationships until are tables are set. -SET FOREIGN_KEY_CHECKS = 0; - --- --------------------------------------------------------------------- --- lps_area --- --------------------------------------------------------------------- - -DROP TABLE IF EXISTS `lps_area`; - -CREATE TABLE `lps_area` -( - `id` INTEGER NOT NULL, - `title` VARCHAR(50) NOT NULL, - `active` TINYINT DEFAULT 1 NOT NULL, - `price` FLOAT DEFAULT 0 NOT NULL, - `created_at` DATETIME, - `updated_at` DATETIME, - PRIMARY KEY (`id`) -) ENGINE=InnoDB; - --- --------------------------------------------------------------------- --- lps_area_city --- --------------------------------------------------------------------- - -DROP TABLE IF EXISTS `lps_area_city`; - -CREATE TABLE `lps_area_city` -( - `id` INTEGER NOT NULL AUTO_INCREMENT, - `id_area` INTEGER NOT NULL, - `zipcode` VARCHAR(10) NOT NULL, - `title` VARCHAR(50) NOT NULL, - `latitude` DOUBLE, - `longitude` DOUBLE, - `created_at` DATETIME, - `updated_at` DATETIME, - PRIMARY KEY (`id`), - INDEX `fi_area_area_city` (`id_area`), - CONSTRAINT `fk_area_area_city` - FOREIGN KEY (`id_area`) - REFERENCES `lps_area` (`id`) - ON DELETE CASCADE -) ENGINE=InnoDB; - --- --------------------------------------------------------------------- --- lps_area_schedule --- --------------------------------------------------------------------- - -DROP TABLE IF EXISTS `lps_area_schedule`; - -CREATE TABLE `lps_area_schedule` -( - `id` INTEGER NOT NULL AUTO_INCREMENT, - `id_area` INTEGER NOT NULL, - `day` INTEGER NOT NULL, - `begin_time` TIME NOT NULL, - `end_time` TIME NOT NULL, - `created_at` DATETIME, - `updated_at` DATETIME, - PRIMARY KEY (`id`), - INDEX `fi_area_area_schedule` (`id_area`), - CONSTRAINT `fk_area_area_schedule` - FOREIGN KEY (`id_area`) - REFERENCES `lps_area` (`id`) - ON DELETE CASCADE -) ENGINE=InnoDB; - -# This restores the fkey checks, after having unset them earlier -SET FOREIGN_KEY_CHECKS = 1; diff --git a/local/modules/LivraisonParSecteurs/Form/GeneralForm.php b/local/modules/LivraisonParSecteurs/Form/GeneralForm.php index eef6a5ba..f20e5120 100644 --- a/local/modules/LivraisonParSecteurs/Form/GeneralForm.php +++ b/local/modules/LivraisonParSecteurs/Form/GeneralForm.php @@ -35,6 +35,15 @@ class GeneralForm extends BaseForm "label" => $this->translator->trans('Delivery price', [], LivraisonParSecteurs::DOMAIN_NAME), "label_attr" => ['for' => 'price'] ]) + ->add( + "minimum_amount", + "number", + [ + "required" => true, + "constraints" => [new GreaterThanOrEqual(["value" => 0])], + "label" => $this->translator->trans('Minimum amount', [], LivraisonParSecteurs::DOMAIN_NAME), + "label_attr" => ['for' => 'minimum_amount'] + ]) ->add( "active", "number", diff --git a/local/modules/LivraisonParSecteurs/Hook/AdminHook.php b/local/modules/LivraisonParSecteurs/Hook/AdminHook.php index b7306849..fec57cb3 100644 --- a/local/modules/LivraisonParSecteurs/Hook/AdminHook.php +++ b/local/modules/LivraisonParSecteurs/Hook/AdminHook.php @@ -3,6 +3,7 @@ namespace LivraisonParSecteurs\Hook; use LivraisonParSecteurs\LivraisonParSecteurs; +use Thelia\Core\Event\Hook\HookRenderBlockEvent; use Thelia\Core\Event\Hook\HookRenderEvent; use Thelia\Core\Hook\BaseHook; use Thelia\Core\Security\AccessManager; @@ -34,6 +35,7 @@ class AdminHook extends BaseHook } } + /* Pour intégrer la date prévue de livraison dans différents formulaires (email, backOffice, ...) */ public function displayDeliveryDate(HookRenderEvent $event) { @@ -60,4 +62,18 @@ class AdminHook extends BaseHook } } + /* Pour afficher la liste des livraisons à effectuer dans la page d'accueil backOffice */ + public function displayScheduledDeliveries(HookRenderBlockEvent $event) + { + $content = trim($this->render("scheduled-deliveries.html")); + if (!empty($content)) { + $event->add([ + "id" => "block-scheduled-deliveries", + "title" => $this->trans("Scheduled deliveries", [], LivraisonParSecteurs::DOMAIN_NAME), + "content" => $content, + "class" => "col-md-8" + ]); + } + } + } diff --git a/local/modules/LivraisonParSecteurs/I18n/fr_FR.php b/local/modules/LivraisonParSecteurs/I18n/fr_FR.php index a31a0e48..aa3a0efa 100644 --- a/local/modules/LivraisonParSecteurs/I18n/fr_FR.php +++ b/local/modules/LivraisonParSecteurs/I18n/fr_FR.php @@ -4,8 +4,9 @@ return array( 'Actions' => 'Actions', 'Add a new city' => 'Rajouter une commune', 'Add a new delivery day' => 'Ajouter un jour de livraison', + 'Area' => 'Secteur', 'Area name' => 'Nom du secteur', - 'Choose this day' => 'Choisissez ce jour', + 'Choose this day' => 'Je choisis ce créneau', 'Cities' => 'Communes desservies', 'City' => 'Commune', 'Create a delivery day' => 'Créer un nouveau jour de livraison', @@ -23,16 +24,21 @@ return array( 'Format to respect' => 'Merci de respecter le format 50.255612 ou -3.121146 (le séparateur est un point et le nombre peut être négatif)', 'General' => 'Général', 'Home delivery cost' => 'Frais de livraison à domicile', + 'Message info minimum de commande' => 'La livraison à domicile est soumise à un montant minimum de commande sur votre secteur : il est possible que vous n\'ayez pas atteint ce minimum.', + 'Minimum amount' => 'Montant minimum de commande', 'Modify a delivery day' => 'Modifier un jour de livraison', 'Module name' => 'Livraison à domicile', 'My areas' => 'Mes secteurs de livraison', 'Next delivery day' => 'Prochain jour de livraison', + 'Order number' => 'Commande n°', 'Please select a delivery day' => 'Veuillez choisir un jour de livraison', 'Remove this city' => 'Retirer cette commune', 'Save' => 'Sauvegarder', 'Schedule' => 'Horaires de livraison', 'Scheduled date' => 'Livraison prévue le', + 'Scheduled deliveries' => 'Livraisons à domicile planifiées', 'There is no city delivered in this area' => 'Aucune commune desservie dans ce secteur', + 'There is no order to deliver' => 'Aucune commande à livrer à domicile', 'There is no schedule for this area' => 'Aucune livraison actuellement sur ce secteur', 'Title of config view' => 'Module LivraisonParSecteurs - Confiwguration', 'Zipcode' => 'Code postal', diff --git a/local/modules/LivraisonParSecteurs/LivraisonParSecteurs.php b/local/modules/LivraisonParSecteurs/LivraisonParSecteurs.php index 2a4ca59f..47ad6110 100644 --- a/local/modules/LivraisonParSecteurs/LivraisonParSecteurs.php +++ b/local/modules/LivraisonParSecteurs/LivraisonParSecteurs.php @@ -7,6 +7,7 @@ use LivraisonParSecteurs\Model\LpsAreaCityQuery; use LivraisonParSecteurs\Model\LpsAreaQuery; use Propel\Runtime\Connection\ConnectionInterface; use Propel\Runtime\Propel; +use Symfony\Component\Form\FormError; use Thelia\Core\Translation\Translator; use Thelia\Install\Database; use Thelia\Model\AddressQuery; @@ -28,6 +29,10 @@ class LivraisonParSecteurs extends AbstractDeliveryModule const LPS_DELIVERY_DATE = 'lps_delivery_date'; const LPS_DELIVERY_BEGIN_TIME = 'lps_begin_time'; const LPS_DELIVERY_END_TIME = 'lps_end_time'; + const FORMAT_DATES = 'd/m/Y'; + const FORMAT_HEURES = 'H:i'; + const FORMAT_DATE_COMPLETE = 'Y-m-d H:i:s'; + /** * @param ConnectionInterface|null $con @@ -59,8 +64,17 @@ class LivraisonParSecteurs extends AbstractDeliveryModule if (!empty($currentAddressId)) { $zipcode = AddressQuery::create()->filterById($currentAddressId)->findOne($con)->getZipcode(); - if (null !== LpsAreaCityQuery::create()->filterByZipcode($zipcode)->findOne($con)) - $isValid = true; + // Condition 1 : le client doit être situé dans un secteur couvert par la livraison à domicile. + if (null !== $areaId = LpsAreaCityQuery::create()->filterByZipcode($zipcode)->findOne($con)) + { + + // Condition 2 : il doit avoir atteint le minimum de commande. + $montantPanier = $this->getRequest()->getSession()->getSessionCart($this->getDispatcher())->getTaxedAmount($country); + $montantMinimum = LpsAreaQuery::create()->findOneById($areaId)->getMinimumAmount(); + + if ($montantPanier >= $montantMinimum) + $isValid = true; + } } return $isValid; diff --git a/local/modules/LivraisonParSecteurs/Loop/AreaLoop.php b/local/modules/LivraisonParSecteurs/Loop/AreaLoop.php index 6d441f82..2d2c7f9c 100644 --- a/local/modules/LivraisonParSecteurs/Loop/AreaLoop.php +++ b/local/modules/LivraisonParSecteurs/Loop/AreaLoop.php @@ -48,6 +48,7 @@ class AreaLoop extends BaseLoop implements PropelSearchLoopInterface ->set("TITLE", $lps_area->getTitle()) ->set("ACTIVE", $lps_area->getActive()) ->set("PRICE", $lps_area->getPrice()) + ->set("MINIMUM_AMOUNT", $lps_area->getMinimumAmount()) ->set("DELIVERY_DAYS", $deliveryDays) ->set("COVERED_CITIES_NUMBER", $citiesCount) ; diff --git a/local/modules/LivraisonParSecteurs/Loop/AreaScheduleLoop.php b/local/modules/LivraisonParSecteurs/Loop/AreaScheduleLoop.php index 62a16711..3bcbfcd1 100644 --- a/local/modules/LivraisonParSecteurs/Loop/AreaScheduleLoop.php +++ b/local/modules/LivraisonParSecteurs/Loop/AreaScheduleLoop.php @@ -34,11 +34,12 @@ class AreaScheduleLoop extends BaseLoop implements PropelSearchLoopInterface $loopResultRow = new LoopResultRow($lps_area_schedule); $loopResultRow ->set("ID", $lps_area_schedule->getId()) + ->set("AREA_ID", $lps_area_schedule->getIdArea()) ->set("DAY", $lps_area_schedule->getDay()) ->set("DAY_LABEL", LivraisonParSecteurs::getDayLabel($lps_area_schedule->getDay())) ->set("BEGIN", $lps_area_schedule->getBeginTime()) ->set("END", $lps_area_schedule->getEndTime()) - ->set("CALCULATED_DAY", LivraisonParSecteurs::calculateRelativeDate($lps_area_schedule->getDay())->format("d/m")) + ->set("CALCULATED_DAY", LivraisonParSecteurs::calculateRelativeDate($lps_area_schedule->getDay())->format(LivraisonParSecteurs::FORMAT_DATES)) ; $loopResult->addRow($loopResultRow); } @@ -51,6 +52,7 @@ class AreaScheduleLoop extends BaseLoop implements PropelSearchLoopInterface protected function getArgDefinitions() { return new ArgumentCollection( + Argument::createIntListTypeArgument('id'), Argument::createIntListTypeArgument('area_id') ); } @@ -61,6 +63,9 @@ class AreaScheduleLoop extends BaseLoop implements PropelSearchLoopInterface public function buildModelCriteria() { $area = LpsAreaScheduleQuery::create(); + if (null != $id = $this->getId()) { + $area->filterById($id); + } if (null != $id = $this->getAreaId()) { $area->filterByIdArea($id); } diff --git a/local/modules/LivraisonParSecteurs/templates/backOffice/default/delivery-address.html b/local/modules/LivraisonParSecteurs/templates/backOffice/default/delivery-address.html index a4768c65..ac2b3a2e 100644 --- a/local/modules/LivraisonParSecteurs/templates/backOffice/default/delivery-address.html +++ b/local/modules/LivraisonParSecteurs/templates/backOffice/default/delivery-address.html @@ -2,7 +2,7 @@ {intl l="Scheduled date" d="livraisonparsecteurs"} - {$day} entre {format_date date=$begin_time format="H:i"} et {format_date date=$end_time format="H:i"} + {$day} entre {format_date date=$begin_time format="H\hi"} et {format_date date=$end_time format="H\hi"}   diff --git a/local/modules/LivraisonParSecteurs/templates/backOffice/default/deliveryarea-list.html b/local/modules/LivraisonParSecteurs/templates/backOffice/default/deliveryarea-list.html index 99601424..dbc6423f 100644 --- a/local/modules/LivraisonParSecteurs/templates/backOffice/default/deliveryarea-list.html +++ b/local/modules/LivraisonParSecteurs/templates/backOffice/default/deliveryarea-list.html @@ -31,6 +31,7 @@ {intl l="Area name" d='livraisonparsecteurs'} {intl l="Active" d='livraisonparsecteurs'} {intl l="Delivery price" d='livraisonparsecteurs'} + {intl l="Minimum amount" d='livraisonparsecteurs'} {intl l="Delivery days" d='livraisonparsecteurs'} {intl l="Delivered cities count" d='livraisonparsecteurs'}   @@ -38,7 +39,7 @@ - {loop name="areas" type="lps_area" backend_context="yes"} + {loop name="areas" type="lps_area"} {$TITLE} @@ -49,6 +50,7 @@ {$PRICE} € + {$MINIMUM_AMOUNT} € {$DELIVERY_DAYS}{if $DELIVERY_DAYS eq ''}{intl l="There is no schedule for this area" d="livraisonparsecteurs"}{/if} {$COVERED_CITIES_NUMBER} diff --git a/local/modules/LivraisonParSecteurs/templates/backOffice/default/form/area-schedule-create.html b/local/modules/LivraisonParSecteurs/templates/backOffice/default/form/area-schedule-create.html index 8030641e..32f52721 100644 --- a/local/modules/LivraisonParSecteurs/templates/backOffice/default/form/area-schedule-create.html +++ b/local/modules/LivraisonParSecteurs/templates/backOffice/default/form/area-schedule-create.html @@ -52,7 +52,7 @@ {form_error form=$form field="begin_time"}{$message}{/form_error}
- + @@ -68,7 +68,7 @@ {form_error form=$form field="end_time"}{$message}{/form_error}
- + diff --git a/local/modules/LivraisonParSecteurs/templates/backOffice/default/includes/area-general.html b/local/modules/LivraisonParSecteurs/templates/backOffice/default/includes/area-general.html index 51d2aaa8..5469b428 100644 --- a/local/modules/LivraisonParSecteurs/templates/backOffice/default/includes/area-general.html +++ b/local/modules/LivraisonParSecteurs/templates/backOffice/default/includes/area-general.html @@ -23,7 +23,6 @@ {/form_field}
-
 
{form_field form=$form field="active"}
@@ -54,7 +53,23 @@ {form_error form=$form field="price"}{$message}{/form_error} {/form_field}
-
 
+ +
+ {form_field form=$form field="minimum_amount"} +
+ + +  € +
+ {form_error form=$form field="minimum_amount"}{$message}{/form_error} + {/form_field} +
+ +
 
+
{/loop} diff --git a/local/modules/LivraisonParSecteurs/templates/backOffice/default/includes/area-schedule.html b/local/modules/LivraisonParSecteurs/templates/backOffice/default/includes/area-schedule.html index 40a56314..574ae894 100644 --- a/local/modules/LivraisonParSecteurs/templates/backOffice/default/includes/area-schedule.html +++ b/local/modules/LivraisonParSecteurs/templates/backOffice/default/includes/area-schedule.html @@ -51,8 +51,8 @@ {loop name="area-schedule" type="lps_area_schedule" area_id=$area_id} {$DAY_LABEL} - {format_date date=$BEGIN format="H:i"} - {format_date date=$END format="H:i"} + {format_date date=$BEGIN format="H\hi"} + {format_date date=$END format="H\hi"} {* Actions *}
@@ -60,8 +60,9 @@ + data-day="{$DAY}" + data-begin="{format_date date=$BEGIN format='H:i'}" + data-end="{format_date date=$END format='H:i'}"> {/loop} diff --git a/local/modules/LivraisonParSecteurs/templates/backOffice/default/scheduled-deliveries.html b/local/modules/LivraisonParSecteurs/templates/backOffice/default/scheduled-deliveries.html new file mode 100644 index 00000000..4ce0182c --- /dev/null +++ b/local/modules/LivraisonParSecteurs/templates/backOffice/default/scheduled-deliveries.html @@ -0,0 +1,84 @@ + + + +{loop type="auth" name="can_view" role="ADMIN" module="HookAdminHome" access="VIEW"} +
+ + + + + + + + + {loop name="deliveries-loop" type="scheduled_deliveries" order="date"} + {if $DELTA <= 7} + {assign var=path value="{image file='/assets/img/flag-green.png'}"} + {assign var=alt value='Drapeau vert'} + {/if} + {if $DELTA <= 4} + {assign var=path value="{image file='/assets/img/flag-orange.png'}"} + {assign var=alt value='Drapeau orange'} + {/if} + {if $DELTA <= 1} + {assign var=path value="{image file='/assets/img/flag-red.png'}"} + {assign var=alt value='Drapeau rouge'} + {/if} + {assign var=title value="{$DELTA} jour(s) de délai"} + + {loop name="order-loop" type="order" id={$ORDER_ID} customer="*"} + {loop type="customer" name="customer-loop" current="false" id=$CUSTOMER} + {assign var=client value="$FIRSTNAME $LASTNAME"} + {/loop} + {loop type="order_address" name="address-loop" id=$DELIVERY_ADDRESS} + {assign var=commune value=$CITY} + {/loop} + {/loop} + + + + + + + + {if $LOOP_COUNT == $LOOP_TOTAL}{assign var=nbCommandes value=$LOOP_TOTAL}{/if} + + {/loop} + {elseloop rel="deliveries-loop"} + + + + {/elseloop} + +
{intl l="Order number" d="livraisonparsecteurs"}{intl l="Scheduled date" d="livraisonparsecteurs"}{intl l="City" d="livraisonparsecteurs"}{intl l="Area" d="livraisonparsecteurs"}
{$ORDER_ID} + {format_date date=$START_DATE format="d/m"} entre {format_date date=$START_DATE format="H:i"} et {format_date date=$END_DATE format="H:i"}, soit dans {$DELTA} jour(s) + {$alt} + {$commune}{loop name="area-schedule-loop" type="lps_area_schedule" id={$SCHEDULE_ID}} + {loop name="area-loop" type="lps_area" id={$AREA_ID}} + {$TITLE} + {/loop} + {/loop} +
+
+ {intl l="There is no order to deliver" d="livraisonparsecteurs"} +
+
+ Total :  {$nbCommandes}  commande(s) + +
+{/loop} \ No newline at end of file diff --git a/local/modules/LivraisonParSecteurs/templates/email/default/delivery-address.html b/local/modules/LivraisonParSecteurs/templates/email/default/delivery-address.html index 10fdff76..98a40899 100644 --- a/local/modules/LivraisonParSecteurs/templates/email/default/delivery-address.html +++ b/local/modules/LivraisonParSecteurs/templates/email/default/delivery-address.html @@ -1,6 +1,6 @@
{intl l="Scheduled date" d="livraisonparsecteurs"}
- {$day} entre {format_date date=$begin_time format="H:i"} et {format_date date=$end_time format="H:i"} + {$day} entre {format_date date=$begin_time format="H\hi"} et {format_date date=$end_time format="H\hi"}
diff --git a/local/modules/LivraisonParSecteurs/templates/frontOffice/default/delivery-address.html b/local/modules/LivraisonParSecteurs/templates/frontOffice/default/delivery-address.html index 2f0e5a9d..8cf8d835 100644 --- a/local/modules/LivraisonParSecteurs/templates/frontOffice/default/delivery-address.html +++ b/local/modules/LivraisonParSecteurs/templates/frontOffice/default/delivery-address.html @@ -22,7 +22,7 @@
{intl l="Scheduled date" d="livraisonparsecteurs"}
- {$day} entre {format_date date=$begin_time format="H:i"} et {format_date date=$end_time format="H:i"} + {$day} entre {format_date date=$begin_time format="H\hi"} et {format_date date=$end_time format="H\hi"}
diff --git a/local/modules/LivraisonParSecteurs/templates/frontOffice/default/order-delivery-extra.html b/local/modules/LivraisonParSecteurs/templates/frontOffice/default/order-delivery-extra.html index 65def0f0..b363ca18 100644 --- a/local/modules/LivraisonParSecteurs/templates/frontOffice/default/order-delivery-extra.html +++ b/local/modules/LivraisonParSecteurs/templates/frontOffice/default/order-delivery-extra.html @@ -37,7 +37,7 @@ {loop type="lps_area_schedule" name="area-schedule" area_id={$area_id}} {$DAY_LABEL} {$CALCULATED_DAY} - {format_date date=$BEGIN format="H:i"} à {format_date date=$END format="H:i"} + {format_date date=$BEGIN format="H\hi"} à {format_date date=$END format="H\hi"} {/loop} diff --git a/local/modules/PlanificationLivraison/Config/config.xml b/local/modules/PlanificationLivraison/Config/config.xml index 1c5d60d0..719dca70 100644 --- a/local/modules/PlanificationLivraison/Config/config.xml +++ b/local/modules/PlanificationLivraison/Config/config.xml @@ -11,4 +11,8 @@ + + + + diff --git a/local/modules/PlanificationLivraison/EventListeners/DeliveryListener.php b/local/modules/PlanificationLivraison/EventListeners/DeliveryListener.php index 7c7caa2b..1ba775e9 100644 --- a/local/modules/PlanificationLivraison/EventListeners/DeliveryListener.php +++ b/local/modules/PlanificationLivraison/EventListeners/DeliveryListener.php @@ -59,7 +59,7 @@ class DeliveryListener extends BaseAction implements EventSubscriberInterface // On sauvegarde la date de livraison choisie avec les heures, pour affichage ultérieur. $completeDay = LivraisonParSecteurs::getDayLabel($schedule->getDay()); - $completeDay .= " " . $chosenDate->format("d/m"); + $completeDay .= " " . $chosenDate->format(LivraisonParSecteurs::FORMAT_DATES); $session->set(LivraisonParSecteurs::LPS_DELIVERY_DATE, $completeDay); $session->set(LivraisonParSecteurs::LPS_DELIVERY_BEGIN_TIME, $schedule->getBeginTime()); $session->set(LivraisonParSecteurs::LPS_DELIVERY_END_TIME, $schedule->getEndTime()); @@ -94,7 +94,7 @@ class DeliveryListener extends BaseAction implements EventSubscriberInterface $schedule = LpsAreaScheduleQuery::create()->findOneById($scheduleId); $chosenDate = LivraisonParSecteurs::calculateRelativeDate($schedule->getDay()); - $format = 'Y-m-d H:i:s'; + $format = LivraisonParSecteurs::FORMAT_DATE_COMPLETE; $startDate = DateTime::createFromFormat($format, $chosenDate->format('Y-m-d ') . $schedule->getBeginTime()->format('H:i:s')); $query->setDueDeliveryTimeStart($startDate); $endDate = DateTime::createFromFormat($format, $chosenDate->format('Y-m-d ') . $schedule->getEndTime()->format('H:i:s')); diff --git a/local/modules/PlanificationLivraison/Loop/ScheduledDeliveriesLoop.php b/local/modules/PlanificationLivraison/Loop/ScheduledDeliveriesLoop.php new file mode 100644 index 00000000..e6e87030 --- /dev/null +++ b/local/modules/PlanificationLivraison/Loop/ScheduledDeliveriesLoop.php @@ -0,0 +1,72 @@ +getResultDataCollection() as $deliveries) { + + $loopResultRow = new LoopResultRow($deliveries); + + $delta = date_diff($deliveries->getDueDeliveryTimeStart(), new DateTime("now")); + + $loopResultRow + ->set("ORDER_ID", $deliveries->getOrderId()) + ->set("START_DATE", $deliveries->getDueDeliveryTimeStart()) + ->set("END_DATE", $deliveries->getDueDeliveryTimeEnd()) + ->set("DELTA", $delta->days) + ->set("SCHEDULE_ID", $deliveries->getScheduleId()) + ; + $loopResult->addRow($loopResultRow); + } + return $loopResult; + } + + /** + * @inheritdoc + */ + protected function getArgDefinitions() + { + return new ArgumentCollection( + Argument::createEnumListTypeArgument('order', [ + 'date', + 'date-reverse' + ], 'date') + ); + } + + /** + * @inheritdoc + */ + public function buildModelCriteria() + { + $deliveries = OrderDeliveryScheduleQuery::create(); + $deliveries->filterByDueDeliveryTimeStart(array('min' => time()))->find(); + + return $deliveries->orderByDueDeliveryTimeStart(); + } + +} diff --git a/templates/backOffice/custom/assets/img/flag-green.png b/templates/backOffice/custom/assets/img/flag-green.png new file mode 100644 index 0000000000000000000000000000000000000000..ef6aa0737c4da8c97199df3e5240df997a150701 GIT binary patch literal 12176 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 iaQcULrik}nza literal 0 HcmV?d00001 diff --git a/templates/backOffice/custom/assets/img/flag-orange.png b/templates/backOffice/custom/assets/img/flag-orange.png new file mode 100644 index 0000000000000000000000000000000000000000..f68c2d3ee7ad81e348b96dfb075d93966a438840 GIT binary patch literal 12337 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
- {/form_field} - {form_field field='delivery-module'} +
{intl l="Message info minimum de commande" d="livraisonparsecteurs" }
+ {form_field field='delivery-module'}
{intl l="Choose your delivery method"} @@ -134,7 +134,6 @@
- {/form_field} {hook name="order-delivery.form-bottom"}