facture number features

This commit is contained in:
Tiavina 2024-12-31 15:29:17 +03:00
parent b6b2cb1310
commit 87c8797510
2 changed files with 99 additions and 23 deletions

View File

@ -1646,6 +1646,22 @@ class PageController extends Controller {
$this->generer_document_comptable($datecourant);
$this->generer_document_comptable($nouveaudate);
} else {
if(strcmp($column, 'date')==0) {
if(strcmp($table, 'facture')){
$datetime = new Datetime($data);
$factureNumber = $this->myDb->getFactureNumberByDate($datetime);
$this->myDb->gestion_update($table, "facture_number", $factureNumber, $id, $this->idNextcloud);
$factureFullNumber = $this->myDb->getFactureFullNumberByDate($datetime);
$this->myDb->gestion_update($table, "num", $factureFullNumber, $id, $this->idNextcloud);
}
if(strcmp($table, 'devis')){
$datetime = new Datetime($data);
$devisNumber = $this->myDb->getDevisNumberByDate($datetime);
$this->myDb->gestion_update($table, "devis_number", $devisNumber, $id, $this->idNextcloud);
$devisFullNumber = $this->myDb->getDevisFullNumberByDate($datetime);
$this->myDb->gestion_update($table, "num", $devisFullNumber, $id, $this->idNextcloud);
}
}
$result = $this->myDb->gestion_update($table, $column, $data, $id, $this->idNextcloud);
// $this->generer_document_comptable($facturecourant->date_paiement);
}
@ -2657,7 +2673,22 @@ class PageController extends Controller {
public function addDevisNumberColumn(){
try{
$this->myDb->addNumberColumnOnFactureAndDevis();
$this->myDb->addNumberColumnOnDevis();
return true;
}
catch(\OCP\Files\NotFoundException $e) { }
}
/**
* @NoAdminRequired
* @NoCSRFRequired
*
*/
public function addFactureNumberColumn(){
try{
$this->myDb->addNumberColumnOnFacture();
return true;
}
catch(\OCP\Files\NotFoundException $e) { }

View File

@ -961,12 +961,17 @@ class Bdd {
$last = 0;
$last = $this->lastNumFacture($idNextcloud);
$pref = $this->execSQLNoJsonReturn("SELECT * FROM ".$this->tableprefix."configuration WHERE id_nextcloud LIKE ?",array($idNextcloud));
$sql = "INSERT INTO `".$this->tableprefix."facture` (`date`,`id_nextcloud`,`num`,`date_paiement`,`type_paiement`,`id_devis`,`user_id`, `version`) VALUES (?,?,?,NOW(),?,0,?,?);";
$sql = "INSERT INTO `".$this->tableprefix."facture` (`date`,`id_nextcloud`,`num`,`date_paiement`,`type_paiement`,`id_devis`,`user_id`, `version`,`facture_number`) VALUES (?,?,?,NOW(),?,0,?,?,?);";
$date_temp = new DateTime();
$date = $date_temp->format('Y-m-d');
$dateMonth = $date_temp->format('m');
$dateYear = $date_temp->format('Y');
$factureLastNumber = $this->getLastFactureNumberByMonthAndYear($dateMonth,$dateYear);
$factureNumber = $factureLastNumber + 1;
$factureFullNumber = DateHelpers::GetFullFactureOrDevisNumberByDate($date_temp,$factureNumber,'FAC');
$datesplit = explode('-', $date);
$this->execSQLNoData($sql, array($date , $idNextcloud, "ETS".$datesplit[0]."/".$datesplit[1]."/".$last+1,"Comptant",$last+1,"Ajouter un lieu"));
$this->execSQLNoData($sql, array($date , $idNextcloud, $factureFullNumber,"Comptant",$last+1,"Ajouter un lieu",$factureNumber));
return $last;
}
@ -2237,7 +2242,7 @@ class Bdd {
return $articleIds;
}
public function addNumberColumnOnFactureAndDevis(){
public function addNumberColumnOnDevis(){
$sql = "ALTER TABLE ". $this->tableprefix."devis
ADD devis_number INT DEFAULT 1;" ;
$this->execSQLNoJsonReturn(
@ -2255,26 +2260,66 @@ class Bdd {
$this->execSQLNoJsonReturn(
$sql,
[]);
// $sql = "ALTER TABLE ". $this->tableprefix."facture
// ADD facture_number INT DEFAULT 1;" ;
// $this->execSQLNoJsonReturn(
// $sql,
// []);
// $sql = "ALTER TABLE ". $this->tableprefix."facture
// ADD facture_full_number VARCHAR(255);" ;
// $this->execSQLNoJsonReturn(
// $sql,
// []);
// $sql = "UPDATE ".$this->tableprefix."facture as facture
// SET facture.facture_full_number = CONCAT('FAC', YEAR(facture.date) % 100, LPAD(MONTH(facture.date), 2, '0'), LPAD(facture.facture_number, 2, '0'));";
// $this->execSQLNoJsonReturn(
// $sql,
// []);
return true;
}
public function addNumberColumnOnFacture(){
$sql = "ALTER TABLE ". $this->tableprefix."facture
ADD facture_number INT DEFAULT 1;" ;
$this->execSQLNoJsonReturn(
$sql,
[]);
$sql = "UPDATE ".$this->tableprefix."facture as facture
SET facture.num = CONCAT('FAC', YEAR(facture.date) % 100, LPAD(MONTH(facture.date), 2, '0'), LPAD(facture.facture_number, 2, '0'));";
$this->execSQLNoJsonReturn(
$sql,
[]);
return true;
}
private function getLastFactureNumberByMonthAndYear($month,$year){
$sql = "SELECT
max(facture.facture_number) as LAST_FACTURE_NUMBER, facture.date FROM "
. $this->tableprefix."facture as facture
WHERE YEAR(facture.date) = ? AND
MONTH(facture.date) = ?;";
$res = $this->execSQLNoJsonReturn($sql,array($year,$month));
$lastNumber = 0;
if(!empty($res)){
$lastNumber = $res[0]['LAST_FACTURE_NUMBER'];
}
return $lastNumber;
}
public function getFactureNumberByDate($datetime){
$month = $datetime->format('m');
$year = $datetime->format('Y');
$lastFactureNumber = $this->getLastFactureNumberByMonthAndYear($month,$year);
$factureNumber = $lastFactureNumber + 1;
return $factureNumber;
}
public function getFactureFullNumberByDate($datetime){
$factureNumber = $this->getFactureNumberByDate($datetime);
$factureFullNumber = DateHelpers::GetFullFactureOrDevisNumberByDate($datetime,$factureNumber,'FAC');
return $factureFullNumber;
}
public function getDevisNumberByDate($datetime){
$month = $datetime->format('m');
$year = $datetime->format('Y');
$lastDevisNumber = $this->getLastDevisNumberByMonthAndYear($month,$year);
$devisNumber = $lastDevisNumber + 1;
return $devisNumber;
}
public function getDevisFullNumberByDate($datetime){
$devisNumber = $this->getDevisNumberByDate($datetime);
$devisFullNumber = DateHelpers::GetFullFactureOrDevisNumberByDate($datetime,$devisNumber,'DEV');
return $devisFullNumber;
}
}