Correction du bogue sur stockage du mauvais areaId dans order_delivery_schedule (delivery_address_id qui doit contenir l'Id de l'area)

This commit is contained in:
2021-04-22 16:56:25 +02:00
parent 8240901761
commit d9c4fcec83
2 changed files with 25 additions and 12 deletions

View File

@@ -5,6 +5,7 @@ namespace PlanificationLivraison\EventListeners;
use ClickAndCollect\ClickAndCollect;
use DateTime;
use LivraisonParSecteurs\LivraisonParSecteurs;
use LivraisonParSecteurs\Model\LpsAreaCityQuery;
use LivraisonParSecteurs\Model\LpsAreaScheduleQuery;
use PlanificationLivraison\Model\OrderDeliverySchedule;
use PlanificationLivraison\PlanificationLivraison;
@@ -20,6 +21,7 @@ use Thelia\Core\Event\TheliaEvents;
use Thelia\Core\HttpFoundation\Request;
use Thelia\Core\HttpFoundation\Session\Session;
use Thelia\Exception\TheliaProcessException;
use Thelia\Model\AddressQuery;
use Thelia\Model\ModuleQuery;
use PlanificationLivraison\Model\SessionData;
@@ -59,7 +61,13 @@ class DeliveryListener extends BaseAction implements EventSubscriberInterface
if (null !== $scheduleId = $request->get('lps-choosen-day', null)) {
$sessionData = new SessionData();
$sessionData->setDeliveryAddressId($session->getOrder()->getChoosenDeliveryAddress());
$con = Propel::getConnection();
$choosenAddressId = $session->getOrder()->getChoosenDeliveryAddress();
$zipcode = AddressQuery::create()->filterById($choosenAddressId)->findOne($con)->getZipcode();
$areaFromZipcode = LpsAreaCityQuery::create()->filterByZipcode($zipcode)->findOne($con);
if (null !== $areaFromZipcode) {
$sessionData->setDeliveryAddressId($areaFromZipcode->getIdArea());
$sessionData->setScheduleId($scheduleId);
// On sauvegarde la date de livraison choisie avec les heures, pour affichage ultérieur.
@@ -74,6 +82,11 @@ class DeliveryListener extends BaseAction implements EventSubscriberInterface
$session->set('lpsData', $sessionData);
}
else {
// Pas de Area trouvée à partir du ZipCode
$session->set('lspData', null);
}
}
}
if ($module == PointRetrait::getModuleId()) {

View File

@@ -56,7 +56,7 @@ class ScheduledDeliveriesLoop extends BaseLoop implements PropelSearchLoopInterf
if (null != $deliveries->getDeliveryAddressId()) {
$city = OrderAddressQuery::create()->findOneById($order->getDeliveryOrderAddressId())->getCity();
$area = LpsAreaQuery::create()->findOneById(LpsAreaCityQuery::create()->findOneById($deliveries->getDeliveryAddressId())->getIdArea())->getTitle();
$area = LpsAreaQuery::create()->findOneById($deliveries->getDeliveryAddressId())->getTitle();
}
if (null != $deliveries->getDeliveryPlaceId())