multiple facture en dur cogf
This commit is contained in:
parent
3b13e37c35
commit
8550eb9874
@ -717,7 +717,13 @@ class PageController extends Controller {
|
|||||||
try {
|
try {
|
||||||
try {
|
try {
|
||||||
$data_factures = array();
|
$data_factures = array();
|
||||||
$factures = json_decode($this->myDb->getCurrentMonthFactures_byClient($this->idNextcloud, $date, $idclient));
|
if($idclient == 0){
|
||||||
|
$clientIds = $this->myDb->getClientIdsByClientEntreprise(clientEntreprise: 'cogf');
|
||||||
|
$factures = json_decode($this->myDb->getFactureByClientIdsListAndDate($clientIds,$date));
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$factures = json_decode($this->myDb->getCurrentMonthFactures_byClient($this->idNextcloud, $date, $idclient));
|
||||||
|
}
|
||||||
$factures = array_filter($factures, function($facture) {return $facture->id_client != NULL; });
|
$factures = array_filter($factures, function($facture) {return $facture->id_client != NULL; });
|
||||||
foreach ($factures as $key => $facture) {
|
foreach ($factures as $key => $facture) {
|
||||||
$facture_temp = array(
|
$facture_temp = array(
|
||||||
|
|||||||
@ -2272,6 +2272,49 @@ class Bdd {
|
|||||||
return $factureData;
|
return $factureData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function getInvoiceByClientIdsAndMonthYear($clientIds,$month,$year){
|
||||||
|
$clientIdsSqlPlaceholder = implode(',', array_fill(0, count($clientIds), '?'));
|
||||||
|
$sql = "SELECT
|
||||||
|
facture.id,
|
||||||
|
facture.date,
|
||||||
|
facture.date_paiement,
|
||||||
|
facture.num,
|
||||||
|
devis.id as devis_id,
|
||||||
|
devis.date as devis_date,
|
||||||
|
devis.num as calendar_uuid,
|
||||||
|
devis.comment as devis_comment,
|
||||||
|
devis.id_client as devis_id_client,
|
||||||
|
client.nom as client_nom,
|
||||||
|
client.entreprise as client_entreprise,
|
||||||
|
client.adresse as client_adresse,
|
||||||
|
defunt.nom as defunt_nom,
|
||||||
|
defunt.sexe as defunt_sexe,
|
||||||
|
lieu.nom as lieu_nom,
|
||||||
|
lieu.adresse as lieu_adresse,
|
||||||
|
thanato.nom as thanato_nom,
|
||||||
|
thanato.prenom as thanato_prenom
|
||||||
|
FROM ".$this->tableprefix."facture as facture
|
||||||
|
LEFT JOIN ".$this->tableprefix."devis as devis on facture.id_devis = devis.id
|
||||||
|
LEFT JOIN ".$this->tableprefix."client as client on devis.id_client = client.id
|
||||||
|
LEFT JOIN ".$this->tableprefix."defunt as defunt on devis.id_defunt = defunt.id
|
||||||
|
LEFT JOIN ".$this->tableprefix."lieu as lieu on devis.id_lieu = lieu.id
|
||||||
|
LEFT JOIN ".$this->tableprefix."thanato as thanato on devis.id_thanato = thanato.id
|
||||||
|
WHERE devis.id_client IN ($clientIdsSqlPlaceholder) ? AND
|
||||||
|
YEAR(facture.date_paiement) = ?";
|
||||||
|
|
||||||
|
$conditions = array_merge($clientIds,[$year]);
|
||||||
|
if($month != 0){
|
||||||
|
$conditions[] = $month;
|
||||||
|
$sql .= " AND MONTH(facture.date_paiement) = ?";
|
||||||
|
}
|
||||||
|
$sql .= ";";
|
||||||
|
$factures = $this->execSQLNoJsonReturn(
|
||||||
|
$sql,
|
||||||
|
$conditions);
|
||||||
|
|
||||||
|
return $factures;
|
||||||
|
}
|
||||||
|
|
||||||
private function getInvoiceByClientAndMonthYear($clientId,$month,$year){
|
private function getInvoiceByClientAndMonthYear($clientId,$month,$year){
|
||||||
$sql = "SELECT
|
$sql = "SELECT
|
||||||
facture.id,
|
facture.id,
|
||||||
@ -2315,7 +2358,13 @@ class Bdd {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function getInvoicePdfDataByClientAndMonthYear($clientId,$month,$year,$configuration){
|
public function getInvoicePdfDataByClientAndMonthYear($clientId,$month,$year,$configuration){
|
||||||
$invoices = $this->getInvoiceByClientAndMonthYear($clientId,$month,$year);
|
if($clientId == 0){
|
||||||
|
$clientIds = $this->getClientIdsByClientEntreprise(clientEntreprise: 'cogf');
|
||||||
|
$invoices = $this->getInvoiceByClientIdsAndMonthYear($clientIds,$month,$year);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$invoices = $this->getInvoiceByClientAndMonthYear($clientId,$month,$year);
|
||||||
|
}
|
||||||
$firstClient = $this->getFirstClient();
|
$firstClient = $this->getFirstClient();
|
||||||
foreach($invoices as &$invoice){
|
foreach($invoices as &$invoice){
|
||||||
$invoice["siret"] = $firstClient != null ? $firstClient['legal_one'] : '';
|
$invoice["siret"] = $firstClient != null ? $firstClient['legal_one'] : '';
|
||||||
@ -2525,4 +2574,45 @@ class Bdd {
|
|||||||
return $factureIdsGenerated;
|
return $factureIdsGenerated;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getClientIdsByClientEntreprise($clientEntreprise){
|
||||||
|
$sql = "SELECT client.id
|
||||||
|
FROM ".$this->tableprefix."client as client
|
||||||
|
WHERE LOWER(client.entreprise) = ? ;";
|
||||||
|
|
||||||
|
$clientIds = [];
|
||||||
|
$clients = $this->execSQLNoJsonReturn(
|
||||||
|
$sql,
|
||||||
|
[strtolower($clientEntreprise)]);
|
||||||
|
|
||||||
|
if(!empty($clients)){
|
||||||
|
foreach($clients as $client){
|
||||||
|
$clientIds[] = $client["id"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $clientIds;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getFactureByClientIdsListAndDate($clientIds,$date){
|
||||||
|
$clientIdsSqlPlaceholder = $clientIdsSqlPlaceholder = implode(',', array_fill(0, count($clientIds), '?'));
|
||||||
|
$sql = "SELECT YEAR(".$this->tableprefix."facture.date_paiement) AS year, MONTH(".$this->tableprefix."facture.date_paiement) AS month,"
|
||||||
|
.$this->tableprefix."facture.id, ".$this->tableprefix."facture.user_id, ".$this->tableprefix."facture.num, ".$this->tableprefix."facture.date, "
|
||||||
|
.$this->tableprefix."devis.num as dnum,".$this->tableprefix."devis.version as adresse_devis,".$this->tableprefix."devis.comment as numero_commande, "
|
||||||
|
.$this->tableprefix."client.adresse as adresse_client, ".$this->tableprefix."devis.date as date_soin, "
|
||||||
|
.$this->tableprefix."client.mail as mail_client, "
|
||||||
|
.$this->tableprefix."devis.id_client as id_client, date_paiement, type_paiement, id_devis, ".$this->tableprefix."client.nom as nom, prenom, entreprise, "
|
||||||
|
.$this->tableprefix."lieu.id as lid, ".$this->tableprefix."lieu.nom as lieu,".$this->tableprefix."lieu.adresse as adresse_soin,"
|
||||||
|
.$this->tableprefix."defunt.id as id_defunt, ".$this->tableprefix."defunt.nom as nom_defunt,"
|
||||||
|
.$this->tableprefix."facture.version, status_paiement
|
||||||
|
FROM (".$this->tableprefix."facture
|
||||||
|
LEFT JOIN ".$this->tableprefix."devis on ".$this->tableprefix."facture.id_devis = ".$this->tableprefix."devis.id)
|
||||||
|
LEFT JOIN ".$this->tableprefix."lieu on ".$this->tableprefix."devis.id_lieu = ".$this->tableprefix."lieu.id
|
||||||
|
LEFT JOIN ".$this->tableprefix."client on ".$this->tableprefix."devis.id_client = ".$this->tableprefix."client.id
|
||||||
|
LEFT JOIN ".$this->tableprefix."defunt on ".$this->tableprefix."devis.id_defunt = ".$this->tableprefix."defunt.id
|
||||||
|
WHERE YEAR(".$this->tableprefix."facture.date_paiement) = ".explode('-', $date)[2]." AND MONTH(".$this->tableprefix."facture.date_paiement) = ".explode('-', $date)[1]."
|
||||||
|
AND ".$this->tableprefix."client.id IN ($clientIdsSqlPlaceholder) ORDER BY year DESC, month DESC;";
|
||||||
|
|
||||||
|
$result = $this->execSQL($sql, $clientIds);
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user