Merge branch 'fixes/fix-agenda-talk-quantity' into staging

This commit is contained in:
Tiavina 2025-01-22 16:46:07 +03:00
commit 268d14816e
5 changed files with 56 additions and 13 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,
@ -3201,7 +3214,7 @@ class Bdd {
} }
$productMessage = ". ACTE A FAIRE : "; $productMessage = ". ACTE A FAIRE : ";
foreach($devisProducts as $product){ foreach($devisProducts as $product){
$productMessage.= html_entity_decode($product->produit_reference). "(".$product->quantite."), "; $productMessage.= html_entity_decode($product->produit_reference).", ";
} }
$productMessage = trim( $productMessage ); $productMessage = trim( $productMessage );
$productMessage = rtrim($productMessage,","); $productMessage = rtrim($productMessage,",");

View File

@ -155,31 +155,31 @@ class CertificateService {
private function getCareCertificateFolder($devisOfDefunt){ private function getCareCertificateFolder($devisOfDefunt){
$careCertificateFolder = 'CLIENTS/' $careCertificateFolder = 'CLIENTS/'
.strtoupper($devisOfDefunt["client_entreprise"]) .mb_strtoupper($devisOfDefunt["client_entreprise"],'UTF-8')
.'/DEFUNTS/' .'/DEFUNTS/'
.strtoupper($devisOfDefunt["defunt_nom"]).'/' .mb_strtoupper($devisOfDefunt["defunt_nom"],'UTF-8').'/'
.'ATTESTATION/'; .'ATTESTATION/';
return $careCertificateFolder; return $careCertificateFolder;
} }
private function GetCareCertificateFilename($devisOfDefunt){ private function GetCareCertificateFilename($devisOfDefunt){
$filename = 'ATTESTATION_SOIN_'.strtoupper($devisOfDefunt['defunt_nom']); $filename = 'ATTESTATION_SOIN_'.mb_strtoupper($devisOfDefunt['defunt_nom'],'UTF-8');
return $filename; return $filename;
} }
private function getPacemakerCertificateFolder($devisOfDefunt){ private function getPacemakerCertificateFolder($devisOfDefunt){
$folder = 'CLIENTS/' $folder = 'CLIENTS/'
.strtoupper($devisOfDefunt["client_entreprise"]) .mb_strtoupper($devisOfDefunt["client_entreprise"],'UTF-8')
.'/DEFUNTS/' .'/DEFUNTS/'
.strtoupper($devisOfDefunt["defunt_nom"]).'/' .mb_strtoupper($devisOfDefunt["defunt_nom"],'UTF-8').'/'
.'ATTESTATION/'; .'ATTESTATION/';
return $folder; return $folder;
} }
private function getPacemakerCertificateFilename($devisOfDefunt){ private function getPacemakerCertificateFilename($devisOfDefunt){
$filename = 'ATTESTATION_PACEMAKER_'.strtoupper($devisOfDefunt['defunt_nom']); $filename = 'ATTESTATION_PACEMAKER_'.mb_strtoupper($devisOfDefunt['defunt_nom'],'UTF-8');
return $filename; return $filename;
} }

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;
} }

View File

@ -77,10 +77,10 @@ class InvoicePdfHandler extends FPDF {
foreach($this->multipleFactureData as $factureData){ foreach($this->multipleFactureData as $factureData){
$factureType = $factureData["facture_type"]; $factureType = $factureData["facture_type"];
if($factureType == MultipleFactureTypeConstant::CLIENT_FILTER_TYPE){ if($factureType == MultipleFactureTypeConstant::CLIENT_FILTER_TYPE){
$filename = strtoupper($factureData["client_entreprise"]); $filename = mb_strtoupper($factureData["client_entreprise"],'UTF-8');
} }
else{ else{
$filename = 'GROUP_'.strtoupper($factureData["client_entreprise"]); $filename = 'GROUP_'.mb_strtoupper($factureData["client_entreprise"],'UTF-8');
} }
$filename .= $month != 0 ? '_'.DateHelpers::GetMonthPlainString($month) :''; $filename .= $month != 0 ? '_'.DateHelpers::GetMonthPlainString($month) :'';
$filename .= "_".$year; $filename .= "_".$year;
@ -93,7 +93,7 @@ class InvoicePdfHandler extends FPDF {
$factureNum = $this->factureData['num']; $factureNum = $this->factureData['num'];
$factureNum = str_replace('/','-',$factureNum); $factureNum = str_replace('/','-',$factureNum);
$defuntNom = str_replace(' ',' ',$this->factureData['defunt_nom']); $defuntNom = str_replace(' ',' ',$this->factureData['defunt_nom']);
return $this->factureData['configuration']->facture_prefixe.'_'.$factureNum.'_'.strtoupper($defuntNom); return $this->factureData['configuration']->facture_prefixe.'_'.$factureNum.'_'.mb_strtoupper($defuntNom,'UTF-8');
} }
private function DrawInvoiceCompanyAndClientInfo(){ private function DrawInvoiceCompanyAndClientInfo(){

View File

@ -101,8 +101,8 @@ class InvoicePdfService {
} }
private function getFacturesFolder(array $factureData,$racinePath){ private function getFacturesFolder(array $factureData,$racinePath){
$clientRacineFolder = $racinePath.'CLIENTS/'.strtoupper($factureData["client_entreprise"]).'/'; $clientRacineFolder = $racinePath.'CLIENTS/'.mb_strtoupper($factureData["client_entreprise"],'UTF-8').'/';
$defuntsFolder = $clientRacineFolder.'DEFUNTS/'.strtoupper($factureData['defunt_nom']).'/'.'FACTURES'.'/'; $defuntsFolder = $clientRacineFolder.'DEFUNTS/'.mb_strtoupper($factureData['defunt_nom'],'UTF-8').'/'.'FACTURES'.'/';
$devisDate = $factureData['devis_date']; $devisDate = $factureData['devis_date'];
$devisDatetime = new DateTime($devisDate); $devisDatetime = new DateTime($devisDate);
$devisDateYear = $devisDatetime->format('Y'); $devisDateYear = $devisDatetime->format('Y');
@ -135,7 +135,7 @@ class InvoicePdfService {
$pdf->MutlipleInvoicePdfFactory($invoiceData,$logo); $pdf->MutlipleInvoicePdfFactory($invoiceData,$logo);
$pdf->SetMultipleFactureContent(); $pdf->SetMultipleFactureContent();
$racinePath = html_entity_decode(string: $currentConfig->path).'/'; $racinePath = html_entity_decode(string: $currentConfig->path).'/';
$clientRacineFolder = $racinePath.'CLIENTS/'.strtoupper($invoiceData[0]["client_entreprise"]).'/'; $clientRacineFolder = $racinePath.'CLIENTS/'.mb_strtoupper($invoiceData[0]["client_entreprise"],'UTF-8').'/';
$filename = $currentConfig->facture_prefixe.'_'.$pdf->GetMultipleInvoiceFilename($month,$year); $filename = $currentConfig->facture_prefixe.'_'.$pdf->GetMultipleInvoiceFilename($month,$year);
$filenamePath = $clientRacineFolder.$filename.'.pdf'; $filenamePath = $clientRacineFolder.$filename.'.pdf';
$pdfContent = $pdf->Output('','S'); $pdfContent = $pdf->Output('','S');