From 2131f5c8cf7ab6fae1a90dbf7cf0bdae7f0128af Mon Sep 17 00:00:00 2001 From: Tiavina Date: Wed, 22 Jan 2025 16:44:45 +0300 Subject: [PATCH] when updating agenda , sending a new message --- gestion/lib/Db/Bdd.php | 13 +++++++++++ gestion/lib/Service/GestionService.php | 30 ++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/gestion/lib/Db/Bdd.php b/gestion/lib/Db/Bdd.php index 97c4285..e841e0a 100644 --- a/gestion/lib/Db/Bdd.php +++ b/gestion/lib/Db/Bdd.php @@ -2323,6 +2323,19 @@ class Bdd { return null; } + public function getProduitDevisByDevisId($devisId){ + $sql = "SELECT * + FROM ".$this->tableprefix ."produit_devis as produit_devis + WHERE produit_devis.devis_id = ?;"; + + $produitDevisList = $this->execSQLNoJsonReturn( + $sql, + [$devisId]); + + + return $produitDevisList; + } + public function getDevisProduits($devisId){ $sql = "SELECT produit_devis.id, diff --git a/gestion/lib/Service/GestionService.php b/gestion/lib/Service/GestionService.php index e75edb6..753f540 100644 --- a/gestion/lib/Service/GestionService.php +++ b/gestion/lib/Service/GestionService.php @@ -157,11 +157,41 @@ class GestionService { } } + private function CheckIfDevisIsAlreadyUpdated($devis,$vCalendarString){ + $requestedDefuntName = $this->GetCalendarSummaryFromVCalendarString($vCalendarString); + $requestedClientId = $this->GetClientIdFromVCalendarString($vCalendarString); + $requestLocationId = $this->GetLocationIdFromVCalendarString($vCalendarString); + $requestedDevisComment = $this->GetDevisCommentFromVCalendarString($vCalendarString); + $requestedArticleReferences = $this->GetArticlesNameFromVCalendarString($vCalendarString); + $requestedArticleIds = $this->gestionBdd->getArticleIdsByArticleReferences($requestedArticleReferences); + $articleDevis = $this->gestionBdd->getProduitDevisByDevisId($devis['id']); + $articleDevisIds = []; + foreach($articleDevis as $currentArticleDevis){ + $articleDevisIds[] = $currentArticleDevis['produit_id']; + } + sort($requestedArticleIds); + sort($articleDevisIds); + + return + $devis['defunt_nom'] == $requestedDefuntName && + $devis['client_id'] == $requestedClientId && + $devis['lieu_id'] == $requestLocationId && + $devis['comment'] == $requestedDevisComment && + $requestedArticleIds == $articleDevisIds; + } + public function HandleUpdatedCalendarObject(string $vCalendarString){ $calendarUuid = $this->GetCalendarUuidFromVCalendarString($vCalendarString); $devis = $this->gestionBdd->getDevisByCalendarUuid($calendarUuid); if($devis != null){ + $isDevisAlreadyUpdated = $this->CheckIfDevisIsAlreadyUpdated($devis,$vCalendarString); + if($isDevisAlreadyUpdated){ + return true; + } $this->UpdateDevisDataByVCalendarString($devis,$vCalendarString); + $userName = $this->GetThanatoNameFromVCalendarString($vCalendarString); + $devisTalkMessage = $this->gestionBdd->getDevisTalkRoomMessage($devis['id'],$userName); + $this->talkService->sendDevisTalkNotifications($devisTalkMessage,$userName); } return true; }