Bonjour,
au niveau du Registre des taxes, j'ai pu voir que celui-ci est disponible depuis les OM en 100C V8.
Je n'ai pas trouvé d'exemple pour générer à la création d'une écriture via IMPEncodeur le registre des taxes manuellement.
Je suis obligé de valider le processus IPMEncodeur qui va passer une écriture dans le registre automatiquement mais qui n'est pas correcte car pas de montant de base. Et ensuite retourner sur cette écriture ayant le registre afin de pouvoir ajouter mes lignes de registre est-ce le fonctionnement normal ?
Au niveau de la création :
IRegistreLigneTaxe ligTaxe = ligneTVA.RegistreTaxes.Ligne[1];
if (ligTaxe != null)
{
ligTaxe.RT_TypeLigne = TypeLigneRegistre.TypeLigneRegistreAucune;
ligTaxe.TA_TTaux = TaxeTauxType.TaxeTauxTypePourcent;
ligTaxe.RT_Montant = ligneTVA.EC_Montant;
ligTaxe.RT_Base = 100;
ligneTVA.RegistreTaxes.Ligne[1] = ligTaxe;
ligneTVA.Write();
}
Cette écriture est prise en compte, mais quand je fais appel à _encoder.Process() la ligne générée a l'air de l'être automatiquement et la base imposable est toujours vide.
Je dois donc après avoir appelé _encoder.Process();
Retrouver la ligne ayant reçue le registre des taxes car la fonction HasRegistreTax() ne me retourne jamais true malgré que l'EC_No se trouve bien dans la base de données
SELECT EC_No FROM F_ECRITUREC
INNER JOIN F_REGTAXE ON F_REGTAXE.EC_No = F_ECRITUREC.EC_No
WHERE EC_Piece = '33924'
Puis modifier et ajouter toutes mes lignes de registres sur cette écriture
short countLineTax = 0;
foreach (var registre in taxRegisterDetailsList) // Liste de mes lignes de registre
{
countLineTax++;
IRegistreLigneTaxe lineTax = ecritureImporte.RegistreTaxes.Ligne[countLineTax];
IBOTaxe3 taxe = (IBOTaxe3)sageAccess.FactoryTaxe.ReadCode(registre.TAXENUMERO);
lineTax.Taxe = taxe;
lineTax.TA_TTaux = TaxeTauxType.TaxeTauxTypePourcent;
lineTax.RT_Base = registre.DETAILREGISTRETAXEBASE;
lineTax.RT_Montant = registre.DETAILREGISTRETAXETAXE;
lineTax.TA_Taux = taxe.TA_Taux;
lineTax.CompteG = sageAccess.FactoryCompteG.ReadNumero(registre.COMPTENUMERO);
ecritureImporte.RegistreTaxes.Ligne[countLineTax] = lineTax;
ecritureImporte.Write();
}
Merci,