Une petite page rédigée en vitesse concernant la structuration de la db sur la facturation.

clientBilling*
Table qui contient les choses qui vont bientôt devoir être facturées.
clientInvoiceLines
Table qui contient les lignes de facturations.
C'est dans le champ description qu'on voit ce qui est facturé (dépassement, plaque de base, base mysql ...)
Une ligne de facturation est considérée commet payée si elle possède une ligne correspondante dans clientPaymentBankOperations.
clientInvoiceLinesVats
Table qui contient la TVA des lignes de clientInvoiceLines.
La jointure entre ces tables est : clientInvoiceLinesVats.idClientInvoice.line = clientInvoiceLines.id (bizarre, je vois pas pourquoi c'est pas lié par id).
clientInvoices
Les factures.
Une facture est considérée commet payée si paymentDate n'est pas NULL.
clientPayments
Ancienne base contenant des paiements de clients. N'est plus mise à jour depuis le 12/08/2008, qui doit être la date à laquelle Antony a modifié le système de facturation en ajoutant plus de granulosité : depuis ce jour, les paiements sont associés à une LIGNE de facturation, et pas à une facture entière.
bankOperations
Table des paiements (généralement CB, mais aussi chèques, liquides, etc ...)
La colonne remainder est égale à la colonne amount, moins ce qui a été payé (comme lignes de facturation) via ce paiement. Si par exemple le gars a fait un chèque de 25E, qui a servi à payé une plaque de 15E, on va avoir 10E en remainder.
clientBankOperations
Table des opérations de paiement, avec leur statut : accepted, not sent to bank, ... bankOperations et clientBankOperations sont liées par le même id : bankOperations.id = clientBankOperations.id
clientPaymentBankOperations
Table qui relie les lignes de facturations aux paiements. C'est cette table qui permet de savoir si une ligne de facturation a été payée ou non.