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 00000000..ef6aa073 Binary files /dev/null and b/templates/backOffice/custom/assets/img/flag-green.png differ 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 00000000..f68c2d3e Binary files /dev/null and b/templates/backOffice/custom/assets/img/flag-orange.png differ diff --git a/templates/backOffice/custom/assets/img/flag-red.png b/templates/backOffice/custom/assets/img/flag-red.png new file mode 100644 index 00000000..e26a1d82 Binary files /dev/null and b/templates/backOffice/custom/assets/img/flag-red.png differ diff --git a/templates/frontOffice/custom/order-delivery.html b/templates/frontOffice/custom/order-delivery.html index ec89ed3f..48e5abd5 100644 --- a/templates/frontOffice/custom/order-delivery.html +++ b/templates/frontOffice/custom/order-delivery.html @@ -120,11 +120,11 @@
- {/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"}