Merge branch 'features/feature-facture-number' into staging

This commit is contained in:
Tiavina 2024-12-31 15:46:37 +03:00
commit 7d34a435ff
2 changed files with 29 additions and 12 deletions

View File

@ -982,9 +982,9 @@ class Bdd {
}
$placeholders = implode(',', array_fill(0, count($devisListId), '?'));
$this->logger->debug('Placeholders : ' . $placeholders);
$sql = "SELECT id as id
FROM ".$this->tableprefix."devis
WHERE id IN ($placeholders) AND mentions != ?";
$sql = "SELECT devis.id as id,devis.date as devis_date
FROM ".$this->tableprefix."devis as devis
WHERE devis.id IN ($placeholders) AND mentions != ?";
$this->logger->debug('SQL : ' . $sql);
$result = $this->execSQLNoJsonReturn($sql,array_merge($devisListId, [$mentionToNotInclude]));
@ -998,7 +998,7 @@ class Bdd {
$devisIdListFiltered = $this->getDevisIdListFilteredByMentionAndDevisListId($mentionToNotInclude,$devisIdArray);
$factureIdsGenerated = [];
foreach($devisIdListFiltered as $devis){
$factureId = $this->insertFactureByDevisId($idNextCloud,devisId: $devis['id']);
$factureId = $this->insertFactureByDevisId($idNextCloud,$devis['id'],$devis['devis_date']);
$factureIdsGenerated[] = $factureId;
}
return $factureIdsGenerated;
@ -1007,21 +1007,32 @@ class Bdd {
/**
* Insert invoice with a devis
*/
public function insertFactureByDevisId($idNextcloud,$devisId){
public function insertFactureByDevisId($idNextcloud,$devisId,$devisDate = null){
$devisDatetime = new Datetime();
if($devisDate != null){
$devisDatetime = new Datetime($devisDate);
}
$factureDate = $devisDatetime->format('Y-m-d');
$lastDay = DateHelpers::GetLastDayOfTheMonthOfADate($devisDatetime);
$lastDay = $lastDay->format('Y-m-d');
$factureNumber = $this->getFactureNumberByDate($devisDatetime);
$fullFactureNumber = DateHelpers::GetFullFactureOrDevisNumberByDate($devisDatetime,$factureNumber,"FAC");
$last = 0;
$last = $this->lastNumFacture($idNextcloud);
$sql = "INSERT INTO `".$this->tableprefix."facture` (`date`,`id_nextcloud`,`num`,`date_paiement`,`type_paiement`,`id_devis`,`user_id`, `version`) VALUES (?,?,?,NOW(),?,?,?,?);";
$date_temp = new DateTime();
$date = $date_temp->format('Y-m-d');
$datesplit = explode('-', $date);
$sql = "INSERT INTO `".$this->tableprefix."facture` (`date`,`id_nextcloud`,`num`,`date_paiement`,`type_paiement`,`id_devis`,`user_id`, `version`,`facture_number`) VALUES (?,?,?,?,?,?,?,?,?);";
$this->execSQLNoData($sql, array(
$date ,
$factureDate ,
$idNextcloud,
"ETS".$datesplit[0]."/".$datesplit[1]."/".$last+1,
$fullFactureNumber,
$lastDay,
"Comptant",
$devisId,
$last+1,
"Ajouter un lieu"));
"Ajouter un lieu",
$factureNumber)
);
$factureId = $this->getFactureIdByDevisId($devisId);
//update devis status

View File

@ -40,4 +40,10 @@ class DateHelpers
return $devisNumber;
}
public static function GetLastDayOfTheMonthOfADate($datetime){
$datetime->modify('last day of this month');
$lastDay = $datetime;
return $lastDay;
}
}