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