Découvrez comment intégrer des fichiers Excel dans SEI ou une base de données SQL, en utilisant la technologie ODBC...
Simulation de la TVA avant la Génération de Facture dans Sage X3
Simulation de la TVA avant la Génération de Facture dans Sage X3
Dans les systèmes Sage X3, la TVA est calculée et activée au moment de la génération de la facture, ce qui peut poser problème dans certaines situations où des prévisions financières sont nécessaires avant l'émission de cette facture. Un de mes clients a rencontré cette problématique, ayant besoin de connaître la valeur exacte de la TVA pour intégrer ces données dans des calculs financiers avant de finaliser la génération de la facture. La complexité du calcul de la TVA et l’intégration des commissions à la facture demandait une solution adaptée.
Dans cet article, je présente une solution qui permet de simuler la TVA en respectant le standard de Sage X3, avant même la création de la facture. L'approche utilisée repose sur l’émulation du comportement d’une facture standard, tout en copiant les informations de TVA déterminées à un moment précis et en annulant ensuite la génération de la facture en positionnant des variables spécifiques.
L’avantage de cette technique est qu’elle garantit le respect total des standards de Sage X3, tout en prenant en compte les spécificités verticales ou propres aux modules installés sur le système du client. En effet, l’importation simule une saisie standard, ce qui permet de s'assurer que le calcul est fait selon les règles standardisées.
Scénario classique
Prenons un exemple typique : un client souhaite réaliser des prévisions financières avant la création d’une facture. Cependant, dans Sage X3, la TVA n’est calculée qu’au moment de la génération de la facture finale. Le code suivant présente une solution qui permet de contourner cette limitation, tout en respectant l’intégrité du système.
Exemple de code pour la simulation de TVA dans Sage X3
$ACTION
Case ACTION
When "IMP_OUVRE" : Gosub IMP_OUVRE
When "IMP_VERIF_CRE" : Gosub IMP_VERIF_CRE
When "IMP_FERME" : Gosub IMP_FERME
When "IMP_SETBOUT" : Gosub IMP_SETBOUT
Endcase
Return
$IMP_SETBOUT
[L]YBILIMP=val(timestamp$)
[L]YINVNB+=1
Return
$IMP_FERME
[L]YBILIMP=val(timestamp$)-[L]YBILIMP
Call ECR_TRACE(mess(406,107,1)-num$(([L]YBILIMP/1000)/[L]YINVNB)-mess(25,154,1)-"/"-mess(87,121,1),0) From GESECRAN
Return
$IMP_OUVRE
If !clalev([F:ZTXSV]) : Local File ZTRANSACTMP [F:ZTXSV] : Endif
Local Integer YI
Local Integer YINVNB
Local Decimal YBILIMP
Return
$IMP_VERIF_CRE
# À ce stade, la classe [F:SID] est remplie et les commissions sont créées
# Nous sommes également sûrs que tous les standards ont été activés préalablement
# Cette action est la dernière opportunité pour bloquer la création en mettant OK=0
Trbegin [F:ZTXSV]
For YI=0 To nolign-1
Read [F:ZTXSV]ZTRX0=[M:SIH4]ZTRXCHR(YI)
If !fstat
[F:ZTXSV]VAT(0)=[M:SIH4]VAT1(YI)
[F:ZTXSV]VAT(1)=[M:SIH4]VAT2(YI)
[F:ZTXSV]VAT(2)=[M:SIH4]VAT3(YI)
[F:ZTXSV]AMTTAXLIN(0)=[M:SIH4]AMTTAXLIN1(YI)
[F:ZTXSV]AMTTAXLIN(1)=[M:SIH4]AMTTAXLIN2(YI)
[F:ZTXSV]AMTTAXLIN(2)=[M:SIH4]AMTTAXLIN3(YI)
[F:ZTXSV]YSIHVAT=3
Rewrite [F:ZTXSV]
Endif
Next YI
If !fstat
Commit
Else
Rollback
Endif
OK=0
Return
Explication de la solution
Le code ci-dessus montre comment réaliser une simulation de TVA en utilisant un traitement spécifique connecté à un modèle d’import. Ce modèle permet de déterminer les informations de TVA avant la création définitive de la facture, et d'annuler cette création une fois la simulation réalisée. Chaque commission est également calculée et associée à la facture simulée.
Conclusion
Cette méthode de simulation de TVA avant la génération de facture permet aux utilisateurs d'obtenir des informations précises sur les montants à facturer, en incluant les commissions et les taxes applicables, avant la création officielle de la facture. En plus de respecter les standards de Sage X3, cette approche s’intègre parfaitement aux environnements personnalisés et répond aux besoins spécifiques des clients en termes de prévisions financières.
Leave a comment