Les COMMISSIONS


Structure de la table ORDERLINEPRICEDEF

Les commissions sont stockées parmi les enregistrements orderlinepricedef (justification de prix),

ODPDATATYPE = 10


Les principaux champs pour obtenir les commissions :

  ODPNOORDER, INTEGER NOT NULL :     Identifiant commande

  ODPNOORDERLINE, INTEGER NOT NULL :     Identifiant ligne commande

  ODPNOLINE, INTEGER NOT NULL :        Chrono ligne  pour une ligne de commande

  ODPDATATYPE, INTEGER :            Type de donnée (10 pour commissions)

  ODPREPCODE, VARCHAR(3) :        Code représentant

  ODPCODETAXE, VARCHAR(4) :        Code commission

  ODPTOTALQTY, NUMERIC(15, 5) :        Base de calcul *

  ODPCALCCOEF, NUMERIC(15, 5) :        Tx de commission (% ou unité)

  ODPCALCTYPE, INTEGER :            1 si Taux, 2 si unité

  ODPTOTALHT, NUMERIC(15, 5) :        Montant commission

  ODPPAYED, INTEGER DEFAULT 0 :        1 lorsque la commission est pointée

  ODPDATEPAYED, DATE :            Date du pointage


Les autres champs :

 ODPCOMMENT, VARCHAR(255) :

  ODPUSERMODIF, INTEGER :

  ODPCALCINBASE, INTEGER :

  ODPCALCTOTALBASEON, INTEGER :

  ODPTOTALTVA, NUMERIC(15, 5) :

  ODPTVACODE, VARCHAR(3) :

  ODPTOTALTTC, NUMERIC(15, 5) :

  ODPCURTOTALHT, NUMERIC(15, 5) :

  ODPCURTOTALTTC, NUMERIC(15, 5) :

  ODPCURTOTALTVA, NUMERIC(15, 5) :

  ODPARRAYLINE, INTEGER :

  ODPREFERENCE, VARCHAR(255) :

  ODPTOTALHTCOSTUNIT, NUMERIC(15, 5) DEFAULT 0 :

  ODPCALCTOTALHT, NUMERIC(15, 5) :

  ODPMODE, VARCHAR(3) :

  ODPUSER ,VARCHAR(60) :

  ODPIDENT1, INTEGER :

  ODPID1CODE, VARCHAR(15) :

  ODPIDENT2, INTEGER :

  ODPID2CODE, VARCHAR(15) :

  ODPIDPERSONALCOST, INTEGER :

  ODPSUGARRATE, NUMERIC(15, 5) :


Le champ ODPDATATYPE prend les valeurs 1 pour les accises, 3 pour la vignette SS et la même valeur que dans PERSONNALCOST pour les autres types de données (cf doc sur les tarifs personnalisés).

 

Principales jointures jusqu’au règlement pour déterminer les commissions dues en fonction des règlements clients :


select odpnoorder, odpnoorderline, odpnoline,odprepcode,odpcodetaxe, odptotalqty, odpcalccoef, odpcalctype, odptotalht, invnosocaux,invinvoicenumber,invvalidate,invbalanced,invbalance,artspecies,cusname, MAX(paydatepayment)  

from orderlinepricedef               

inner join orderline on odlnoorder=odpnoorder and odlnoorderline=odpnoorderline  

inner join article on artnoarticle=odlnoarticle     

inner join orders on ordnoorder=odpnoorder 

inner join customer on cusnocustomer=ordnocustomer      

inner join invoice on invnoinvoice=ordinvoiced 

inner join society on socnosociety=invnosocaux 

left outer join lettrage on letnoinvoice=invnoinvoice 

left outer join payment on paynumpayment=letnumpayment and paynosocaux=letnosocaux 

where odpdatatype=10

Group by odpnoorder, odpnoorderline, odpnoline, odprepcode,odpcodetaxe, odptotalqty, odpcalccoef, odpcalctype, odptotalht, invnosocaux,invinvoicenumber,invvalidate,invbalanced,invbalance, artspecies,cusname  

order by odpnoorder, odpnoorderline, odpnoline


La jointure interne avec ‘invoice’ permet de retenir que les opérations facturées.

La jointure avec lettrage + payment oblige à un group by et de sélectionner la dernière date de règlement pour le cas des factures réglées en plusieurs fois, ou annulation de règlement. 


Visualisation commissions sur opérations commerciales/Lignes :

Clic droit, Afficher Justification du prix :


 


Lignes type ‘COMREP’ :