finish stat devis hytha, wip FEC

This commit is contained in:
Tiavina 2025-03-17 15:14:20 +03:00
parent 9fb72d320e
commit 7970c1b892

View File

@ -2064,41 +2064,39 @@ class Bdd {
public function retrieveTotalInvoicesForTheYear(){ public function retrieveTotalInvoicesForTheYear(){
$sql = "SELECT $sql = "SELECT
EXTRACT(YEAR FROM facture.date_paiement) AS y, EXTRACT(YEAR FROM devis.date) AS y,
EXTRACT(MONTH FROM facture.date_paiement) AS m, EXTRACT(MONTH FROM devis.date) AS m,
SUM( SUM(
COALESCE(client_group_discount.ht_amount,produit.prix_unitaire) COALESCE(client_group_discount.ht_amount,produit.prix_unitaire)
* produit_devis.quantite * produit_devis.quantite
) AS total ) AS total
FROM ".$this->tableprefix."facture AS facture from oc_gestion_devis as devis
JOIN ".$this->tableprefix."devis AS devis JOIN oc_gestion_produit_devis AS produit_devis
ON MONTH(facture.date_paiement) = MONTH(devis.date) AND
YEAR(facture.date_paiement) = YEAR(devis.date)
JOIN ".$this->tableprefix."produit_devis AS produit_devis
ON devis.id = produit_devis.devis_id ON devis.id = produit_devis.devis_id
JOIN ".$this->tableprefix."produit AS produit JOIN oc_gestion_produit AS produit
ON produit_devis.produit_id = produit.id ON produit_devis.produit_id = produit.id
JOIN ".$this->tableprefix."client AS client JOIN oc_gestion_client AS client
ON devis.id_client = client.id ON devis.id_client = client.id
LEFT JOIN ".$this->tableprefix."client_group AS client_group JOIN oc_gestion_client_group AS client_group
ON client.fk_client_group_id = client_group.id ON client.fk_client_group_id = client_group.id
LEFT JOIN ".$this->tableprefix."client_group_discount AS client_group_discount JOIN oc_gestion_client_group_discount AS client_group_discount
ON client_group.id = client_group_discount.fk_client_group_id ON client_group.id = client_group_discount.fk_client_group_id
AND produit.id = client_group_discount.fk_produit_id AND produit.id = client_group_discount.fk_produit_id
WHERE WHERE
(devis.mentions = ? OR devis.mentions = ?) (devis.mentions = ? OR devis.mentions = ?)
GROUP BY GROUP BY
EXTRACT(YEAR FROM facture.date_paiement), EXTRACT(YEAR FROM devis.`date`),
EXTRACT(MONTH FROM facture.date_paiement) EXTRACT(MONTH FROM devis.`date`)
ORDER BY ORDER BY
EXTRACT(YEAR FROM facture.date_paiement) DESC, EXTRACT(YEAR FROM devis.`date`) DESC,
EXTRACT(MONTH FROM facture.date_paiement);"; EXTRACT(MONTH FROM devis.`date`);";
return $this->execSQL($sql, [ return $this->execSQL($sql, [
DevisMentionConstant::FACTURED, DevisMentionConstant::FACTURED,
DevisMentionConstant::FACTURED_FORMATTED DevisMentionConstant::FACTURED_FORMATTED
]); ]);
}
}
/** /**
* Annual turnover per month without VAT * Annual turnover per month without VAT
*/ */
@ -2135,25 +2133,22 @@ class Bdd {
public function getStatArticleAnnuel($idNextcloud, $annee) { public function getStatArticleAnnuel($idNextcloud, $annee) {
$sql = "SELECT p.id, p.reference, $sql = "SELECT p.id, p.reference,
COALESCE(SUM(CASE WHEN MONTH(f.date_paiement) = 1 THEN pd.quantite ELSE 0 END), 0) AS janvier, COALESCE(SUM(CASE WHEN MONTH(d.date) = 1 THEN pd.quantite ELSE 0 END), 0) AS janvier,
COALESCE(SUM(CASE WHEN MONTH(f.date_paiement) = 2 THEN pd.quantite ELSE 0 END), 0) AS fevrier, COALESCE(SUM(CASE WHEN MONTH(d.date) = 2 THEN pd.quantite ELSE 0 END), 0) AS fevrier,
COALESCE(SUM(CASE WHEN MONTH(f.date_paiement) = 3 THEN pd.quantite ELSE 0 END), 0) AS mars, COALESCE(SUM(CASE WHEN MONTH(d.date) = 3 THEN pd.quantite ELSE 0 END), 0) AS mars,
COALESCE(SUM(CASE WHEN MONTH(f.date_paiement) = 4 THEN pd.quantite ELSE 0 END), 0) AS avril, COALESCE(SUM(CASE WHEN MONTH(d.date) = 4 THEN pd.quantite ELSE 0 END), 0) AS avril,
COALESCE(SUM(CASE WHEN MONTH(f.date_paiement) = 5 THEN pd.quantite ELSE 0 END), 0) AS mai, COALESCE(SUM(CASE WHEN MONTH(d.date) = 5 THEN pd.quantite ELSE 0 END), 0) AS mai,
COALESCE(SUM(CASE WHEN MONTH(f.date_paiement) = 6 THEN pd.quantite ELSE 0 END), 0) AS juin, COALESCE(SUM(CASE WHEN MONTH(d.date) = 6 THEN pd.quantite ELSE 0 END), 0) AS juin,
COALESCE(SUM(CASE WHEN MONTH(f.date_paiement) = 7 THEN pd.quantite ELSE 0 END), 0) AS juillet, COALESCE(SUM(CASE WHEN MONTH(d.date) = 7 THEN pd.quantite ELSE 0 END), 0) AS juillet,
COALESCE(SUM(CASE WHEN MONTH(f.date_paiement) = 8 THEN pd.quantite ELSE 0 END), 0) AS aout, COALESCE(SUM(CASE WHEN MONTH(d.date) = 8 THEN pd.quantite ELSE 0 END), 0) AS aout,
COALESCE(SUM(CASE WHEN MONTH(f.date_paiement) = 9 THEN pd.quantite ELSE 0 END), 0) AS septembre, COALESCE(SUM(CASE WHEN MONTH(d.date) = 9 THEN pd.quantite ELSE 0 END), 0) AS septembre,
COALESCE(SUM(CASE WHEN MONTH(f.date_paiement) = 10 THEN pd.quantite ELSE 0 END), 0) AS octobre, COALESCE(SUM(CASE WHEN MONTH(d.date) = 10 THEN pd.quantite ELSE 0 END), 0) AS octobre,
COALESCE(SUM(CASE WHEN MONTH(f.date_paiement) = 11 THEN pd.quantite ELSE 0 END), 0) AS novembre, COALESCE(SUM(CASE WHEN MONTH(d.date) = 11 THEN pd.quantite ELSE 0 END), 0) AS novembre,
COALESCE(SUM(CASE WHEN MONTH(f.date_paiement) = 12 THEN pd.quantite ELSE 0 END), 0) AS decembre COALESCE(SUM(CASE WHEN MONTH(d.date) = 12 THEN pd.quantite ELSE 0 END), 0) AS decembre
FROM ".$this->tableprefix."produit p FROM ".$this->tableprefix."produit p
LEFT JOIN ".$this->tableprefix."produit_devis pd ON p.id = pd.produit_id LEFT JOIN ".$this->tableprefix."produit_devis pd ON p.id = pd.produit_id
LEFT JOIN ".$this->tableprefix."devis d ON pd.devis_id = d.id LEFT JOIN ".$this->tableprefix."devis d ON pd.devis_id = d.id
LEFT JOIN ".$this->tableprefix."facture f WHERE YEAR(d.date) = ".$annee." AND pd.devis_id IS NOT NULL AND
ON MONTH(f.date_paiement) = MONTH(d.date) AND
YEAR(f.date_paiement) = YEAR(f.date)
WHERE YEAR(f.date_paiement) = ".$annee." AND pd.devis_id IS NOT NULL AND
(d.mentions = ? or d.mentions = ?) (d.mentions = ? or d.mentions = ?)
GROUP BY p.id, p.reference;"; GROUP BY p.id, p.reference;";
return $this->execSQL($sql, [ return $this->execSQL($sql, [
@ -2179,9 +2174,6 @@ class Bdd {
COALESCE(SUM(CASE WHEN MONTH(d.date) = 11 THEN 1 ELSE 0 END), 0) AS novembre, COALESCE(SUM(CASE WHEN MONTH(d.date) = 11 THEN 1 ELSE 0 END), 0) AS novembre,
COALESCE(SUM(CASE WHEN MONTH(d.date) = 12 THEN 1 ELSE 0 END), 0) AS decembre COALESCE(SUM(CASE WHEN MONTH(d.date) = 12 THEN 1 ELSE 0 END), 0) AS decembre
FROM ".$this->tableprefix."devis d FROM ".$this->tableprefix."devis d
LEFT JOIN ".$this->tableprefix."facture f
ON MONTH(f.date_paiement) = MONTH(d.date) AND
YEAR(f.date_paiement) = YEAR(f.date)
LEFT JOIN ".$this->tableprefix."thanato thanato ON d.id_thanato = thanato.id LEFT JOIN ".$this->tableprefix."thanato thanato ON d.id_thanato = thanato.id
WHERE YEAR(d.date) = ".$annee." AND d.id_thanato IS NOT NULL AND WHERE YEAR(d.date) = ".$annee." AND d.id_thanato IS NOT NULL AND
(d.mentions = ? or d.mentions = ?) (d.mentions = ? or d.mentions = ?)