Mercator comptabilité offre des fonctionnalités d'aide à la gestion de l'escompte. Pour les activer, il faut ajouter ces champs dans la base de données :
- Dans la table PIEDS_C
- ESCPTE_DV float: montant de l'escompte en devise du document
- ESCPTE_FB float : montant de l'escompte en devise de base
- ESCPTE_ECH datetime : date de validité de l'escompte
- Dans la table CLI (optionnel)
- C_ESC_DJ smallint : délai en jours pour le calcul de la date de validité de l'escompte par rapport à la date du document pour ce client
- Dans la table FOU (optionnel)
- F_ESC_DJ smallint : délai en jours pour le calcul de la date de validité de l'escompte par rapport à la date du document pour ce fournisseur
Le cas échéant, adaptez les écrans d'écritures comptables et de signalétiques pour faire apparaître ces nouveaux champs.
Il faut aussi créer un code TVA d'escompte, pour les ventes et/ou pour les achats et dans lequel :
- le régime est à blanc
- le taux est zéro
- toutes les zones de cases et comptes sont vides
Dans les options, indiquez ces codes TVA dans "Comptabilité / Code TVA escompte automatique ventes" et "Comptabilité / Code TVA escompte automatique achats". Si la valeur d'une de ces options est à blanc, alors la fonctionnalité est désactivée pour ce type d'écritures (ventes - achats).
Lors de la validation d'une nouvelle écriture, si la zone C_ESCPTE du client (pour une vente) ou F_ESCPTE du fournisseur (pour un achat) contient une valeur non nulle (en l'occurrence, le taux d'escompte habituel), alors Mercator présentera cette boîte de dialogue :
Si on répond "Annuler", le processus de sauvegarde de l'écriture en cours est interrompu.
Si on répond "Non", Mercator n'applique aucune aide à l'escompte, l'écriture n'est pas modifiée et la question ne sera plus posée.
Si on répond "Oui", alors Mercator va :
- Appliquer l'escompte pour diminuer la base HTVA sur chacune des lignes encodées pour laquelle le montant de la TVA est non nul. Le montant de la TVA sera adapté en conséquence.
- Dupliquer les lignes encodées, calculer le montant de l'escompte correspondant à la ligne d'origine et placer le code TVA d'escompte
- Si la comptabilité analytique (en mode complet) est active, alors les données analytiques seront automatiquement adaptées en fonction des modifications apportées ci-dessus.
- Sauvegarder la date d'escompte dans le champ ESCPTE_ECH de PIEDS_C.
Notons que l'aide à l'escompte ne s'active pas si l'écriture en cours contient déjà une ligne utilisant le code TVA d'escompte automatique. Mercator considère en effet dans ce cas que l'escompte a été géré manuellement par l'utilisateur.
Notons encore que cette mécanique ne s'active pas non plus si l'option "Escompte non déduit affecte base TVA" est à NON, puisque dans ce cas, l'encodage d'un escompte n'a pas d'incidence sur le calcul des bases de TVA.
Calcul des totaux de l'écriture comptable :
Si l'option "Escompte non déduit affecte base TVA" est à OUI, alors les champs ESCPTE_DV et ESCPTE_FB de PIEDS_C vont contenir, respectivement en devise de l'écriture et en devise de base, le montant de l'escompte, étant calculé comme la somme des bases HTVA pour les lignes où le code TVA est le code TVA d'escompte automatique. Peu importe que ces lignes aient été encodées manuellement ou via l'aide décrite ci-dessus. Ces champs calculés ne sont pas modifiables par l'utilisateur.
Si l'option "Escompte non déduit affecte base TVA" est à NON, alors les champs ESCPTE_DV et ESCPTE_FB de PIEDS_C sont libres et peuvent contenir une valeur saisie par l'utilisateur.
Dans les deux cas, ces montants sont pris en compte par la liaison bancaire afin que ce montant d'escompte puisse être ultérieurement déduit lors du paiement.
Paiement via la liaison bancaire :
Dans la grille du bas (détail des documents pour le fournisseur sélectionné), 3 colonnes sont apparues pour indiquer :
- le montant de l'escompte
- si l'escompte est déduit ou non
- la date de validité de l'escompte
Note concernant la compréhension des différentes dates impliquées dans la génération des paiements avec ou sans escompte
Lors de la génération de paiements, Mercator présente cette boîte de dialogue :
Quand la gestion de l'escompte est activée, l'utilisation des différentes dates est la suivante :
- les écritures sont proposées au paiement si (date échéance écriture <= "à échéance jusqu'au") ou si (date de validité d'escompte de l'écriture est entre aujourd'hui et "tenir compte des escomptes jusqu'au")
- les écritures sélectionnées ci-dessus seront de surcroît marquées "escompte déduit" si la date de validité d'escompte de l'écriture est entre aujourd'hui et "tenir compte des escomptes jusqu'au".
C'est lors de la génération effective des virements que Mercator tiendra compte du fait que l'escompte est déduit ou pas.
- Pour un escompte non déduit, la date d'exécution du virement sera la date d'échéance de l'écriture
- Pour un escompte déduit, la date d'exécution du virement sera la date de validité d'escompte de l'écriture.
Dans sa logique, Mercator s'attend à ce que date d'écriture <= date de validité d'escompte <= date d'échéance
Pour rappel, toutes les dates d'exécution de virements peuvent être diminuées d'un nombre de jours fixé dans un champ optionnel des signalétiques fournisseurs/clients/comptes généraux : f_delaipai / c_delaipai / g_delaipai (int)
Remarques :
Les écritures comptables correspondant à des escomptes non conditionnels, çàd déduits immédiatement lors de l'encodage de la facture, ne sont pas concernées par les informations de cette page.
Ce qui précède concerne les documents encodés directement dans la comptabilité.
Si l'option "Outils \ Options \ Encodage - Escompte non déduite affecte la base TVA" est à oui et que la facture d'origine a été encodée dans la gestion commerciale Mercator, la facture comptable est générée via la centralisation de Mercator. Dans ce cas, la ligne d'escompte est également générée. Le code ci-dessous permet de compléter le code TVA de cette ligne additionnelle concernant l'escompte avec le code TVA défini dans "Outils \ Options \ Comptabilité - Code TVA escompte automatique achats".
if (bookingEngine.Type == 2)
{
//Forcer le régime de TVA escompte à la ligne, pour pouvoir calculer l'escompte en achats lorsqu'il diminue la base TVA.
if (bookingEngine.Context == MercatorUi.Engine.Cpta.BookingEngine.ContextEnum.PostIntoAccounting
&& _Divers.Get_ESC_ND_TVA(bookingEngine.PIEDS_C) == "OUI"
&& Convert.ToDouble(bookingEngine.PIEDS_C["HeaderTotal"]).CompareTo(0, Globals.DEC_DEV_C) != 0
&& Globals.Params["CODTVAESCA"] != "")
{
double escpte_pc = Convert.ToDouble(bookingEngine.FOU["f_escpte"]);
if (escpte_pc.CompareTo(0, Globals.DEC_DEV_C) != 0)
{
foreach (DataRow bookingLine in bookingEngine.LIGNES_C.Select("id_tva = ''"))
bookingLine["id_tva"] = Globals.Params["CODTVAESCA"];
}
bookingEngine.UpdateAmounts();
}
}