when updating agenda , sending a new message

This commit is contained in:
Tiavina 2025-01-22 16:44:45 +03:00
parent f86bd18695
commit 2131f5c8cf
2 changed files with 43 additions and 0 deletions

View File

@ -2323,6 +2323,19 @@ class Bdd {
return null; 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){ public function getDevisProduits($devisId){
$sql = "SELECT $sql = "SELECT
produit_devis.id, produit_devis.id,

View File

@ -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){ public function HandleUpdatedCalendarObject(string $vCalendarString){
$calendarUuid = $this->GetCalendarUuidFromVCalendarString($vCalendarString); $calendarUuid = $this->GetCalendarUuidFromVCalendarString($vCalendarString);
$devis = $this->gestionBdd->getDevisByCalendarUuid($calendarUuid); $devis = $this->gestionBdd->getDevisByCalendarUuid($calendarUuid);
if($devis != null){ if($devis != null){
$isDevisAlreadyUpdated = $this->CheckIfDevisIsAlreadyUpdated($devis,$vCalendarString);
if($isDevisAlreadyUpdated){
return true;
}
$this->UpdateDevisDataByVCalendarString($devis,$vCalendarString); $this->UpdateDevisDataByVCalendarString($devis,$vCalendarString);
$userName = $this->GetThanatoNameFromVCalendarString($vCalendarString);
$devisTalkMessage = $this->gestionBdd->getDevisTalkRoomMessage($devis['id'],$userName);
$this->talkService->sendDevisTalkNotifications($devisTalkMessage,$userName);
} }
return true; return true;
} }