On rajoute un contrôle pour empêcher la suppression d'un secteur ou d'un Pdr s'il existe des commandes sur ce lieu.

This commit is contained in:
2021-04-13 18:08:25 +02:00
parent 32b7b08931
commit e55b25020a
2 changed files with 38 additions and 20 deletions

View File

@@ -5,6 +5,7 @@ namespace LivraisonParSecteurs\Controller\backOffice;
use LivraisonParSecteurs\LivraisonParSecteurs;
use LivraisonParSecteurs\Model\LpsArea;
use LivraisonParSecteurs\Model\LpsAreaQuery;
use PlanificationLivraison\Model\OrderDeliveryScheduleQuery;
use Propel\Runtime\ActiveQuery\Criteria;
use Propel\Runtime\Map\TableMap;
use Propel\Runtime\Propel;
@@ -114,15 +115,22 @@ class GeneralController extends BaseAdminController
return $response;
$areaCity_id = $this->getRequest()->get('attr-area-id');
$query = LpsAreaQuery::create()->findById($areaCity_id);
if ($query === null)
$error_msg = "Area not found by Id";
else
{
$con = Propel::getConnection();
$con->beginTransaction();
$query->delete($con);
$con->commit();
// Comme il est impossible de supprimer un secteur de livraison si au moins une commande a déjà été livrée dans ce secteur, alors on vérifie au préalable les commandes.
$ordersAlreadyPlaced = OrderDeliveryScheduleQuery::create()->findByDeliveryAddressId($areaCity_id)->count();
if ($ordersAlreadyPlaced > 0) {
$error_msg = "Existing orders delivered at the area : impossible to delete the area";
}
else {
$query = LpsAreaQuery::create()->findById($areaCity_id);
if ($query === null)
$error_msg = "Area not found by Id";
else {
$con = Propel::getConnection();
$con->beginTransaction();
$query->delete($con);
$con->commit();
}
}
if ($this->getRequest()->request->get("success_url") == null) {