Bonjour,
je n’ai pas trouvé comment disposer de la liste des projets avec en colonnes, outre le titre, le montant des factures clients, factures fournisseurs, note de frais et bénéfice (ou marge).
Pour ceux que cela intéresse, j’ai fait une requête SQL qui donne ces informations avec un filtre possible par années pour déterminer la marge par projet et par année. Il y a aussi un filtre par chef de projet. Nous exportons le tout dans Excell, et cela fonctionne bien chez nous.
La requête est probablement à améliorer.
SET @annee = 2021;
SET @cdp = 2;
SELECT Libelle, num, CdP, IFNULL(SUM(Client),0) AS 'Fact. client', IFNULL(SUM(FRS),0) AS 'Fact. FRS',IFNULL(SUM(NdF),0) AS NdF,
IFNULL(SUM(Client),0)- IFNULL(SUM(FRS),0) - IFNULL(SUM(NdF),0) AS Bénéfice
FROM ((SELECT lp.title AS Libelle, lp.`ref`AS num, lp.fk_user_creat AS CdP,
SUM(lf.total) AS Client, NULL AS FRS, NULL AS NdF
FROM gpa.llx_projet lp
JOIN gpa.llx_facture lf ON lp.rowid = lf.fk_projet
WHERE YEAR (lf.datef) = @annee
GROUP BY lp.`ref`)
UNION ALL
(SELECT lp.title, lp.`ref`, lp.fk_user_creat, NULL AS Client, SUM(lff.total_ht) AS FRS, NULL AS NdF
FROM gpa.llx_projet lp
JOIN gpa.llx_facture_fourn lff ON lp.rowid = lff.fk_projet
WHERE YEAR (lff.datef) = @annee
GROUP BY lp.`ref`)
UNION ALL
(SELECT lp.title, lp.`ref`, lp.fk_user_creat, NULL AS Client, NULL AS FRS, SUM(led.total_ht) AS NdF
FROM gpa.llx_projet lp
JOIN gpa.llx_expensereport_det led ON lp.rowid = led.fk_projet
WHERE YEAR (led.`date`)= @annee
GROUP BY lp.`ref`)
) t
WHERE CdP = @cdp
GROUP BY num
ORDER BY CdP, num ;
Mais ma question est de savoir si ce besoin pouvait être intégrer à Dolibarr, sachant que je ne connais pas php ? Quelle peut être ma contribution ?
Bonne journée.
B