[Gescom gamme 100] Calcul des marges sur bons de commande ?
Posté: Lun 5 Sep 2016 10:22
Bonjour
Je rencontre un soucis sur une requête SQL dans un développement perso, sur le calcul des marges qui est bon lorsque je le réalise sur les factures, mais pas lorsque je le réalise sur les bons de commande (qui deviendront factures...)
L'idée est de présenter un tableau de bord en ligne "hors Sage" accessible à tout moment par un simple clic (j'utilise Visual Studio .Net et les dashboards DevExpress pour ceux qui connaissent )
Je calcule la marge entre soustrayant prix de vente après remise et prix de revient, à partir des données issues de la requête SQL suivante :
La requête est la même pour les factures (sauf la valeur de DO_Type à 6 ou 7) et fonctionne parfaitement bien dans le calcul des marges. Mais avec les bons de commande, ça calcule que dalle
Je soupçonne donc que le calcul de la valeur de DL_PrixRU intervienne en aval du bon de commande, mais ça me semble à tout le moins étrange !
Un avis ?
Je rencontre un soucis sur une requête SQL dans un développement perso, sur le calcul des marges qui est bon lorsque je le réalise sur les factures, mais pas lorsque je le réalise sur les bons de commande (qui deviendront factures...)
L'idée est de présenter un tableau de bord en ligne "hors Sage" accessible à tout moment par un simple clic (j'utilise Visual Studio .Net et les dashboards DevExpress pour ceux qui connaissent )
Je calcule la marge entre soustrayant prix de vente après remise et prix de revient, à partir des données issues de la requête SQL suivante :
- Code: Tout sélectionner
SELECT
F_DOCENTETE.DO_Date,
F_DOCENTETE.DO_Piece,
F_DOCENTETE.DO_Provenance,
F_COLLABORATEUR.CO_Nom,
F_COLLABORATEUR.CO_Prenom,
F_DOCENTETE.DO_Ref,
F_COMPTET.CT_Num,
F_COMPTET.CT_Intitule,
F_COMPTET.CT_Statistique01,
F_DOCENTETE.DO_TotalHT AS TotalHT,
SUM (F_DOCLIGNE.DL_Qte * F_DOCLIGNE.DL_PrixUnitaire) AS TotalHTAvantRemise,
SUM (F_DOCLIGNE.DL_Qte * F_DOCLIGNE.DL_PrixRU) AS TotalRevient,
SUM (F_DOCLIGNE.DL_Qte * F_DOCLIGNE.DL_PrixUnitaire) - F_DOCENTETE.DO_TotalHT AS Remise
FROM
F_DOCENTETE
INNER JOIN
F_DOCLIGNE ON F_DOCENTETE.DO_Piece = F_DOCLIGNE.DO_Piece
INNER JOIN
F_COLLABORATEUR ON F_DOCENTETE.CO_No = F_COLLABORATEUR.CO_No
INNER JOIN
F_COMPTET ON F_DOCENTETE.CT_NumPayeur = F_COMPTET.CT_Num
GROUP BY
F_DOCENTETE.DO_Domaine, F_DOCENTETE.DO_Date,
F_COLLABORATEUR.CO_Nom, F_COLLABORATEUR.CO_Prenom,
F_DOCENTETE.DO_Ref, F_COMPTET.CT_Num, F_COMPTET.CT_Intitule,
F_COMPTET.CT_Statistique01, F_DOCENTETE.DO_TotalHT,
F_DOCENTETE.DO_Type, F_DOCENTETE.DO_Provenance,
F_DOCENTETE.DO_Piece
HAVING
(F_DOCENTETE.DO_Domaine = 0) AND
(F_DOCENTETE.DO_Type = 1)
La requête est la même pour les factures (sauf la valeur de DO_Type à 6 ou 7) et fonctionne parfaitement bien dans le calcul des marges. Mais avec les bons de commande, ça calcule que dalle
Je soupçonne donc que le calcul de la valeur de DL_PrixRU intervienne en aval du bon de commande, mais ça me semble à tout le moins étrange !
Un avis ?