Changer le taux de TVA dans des documents existants

0000002389     -      26/10/2023

La programmation décrite ici montre comment changer le taux de TVA dans des documents de la gestion commerciale existants, par exemple des abonnements ou des devis. Ce module requiert l'option ENGG. Il est directement exécutable depuis l'éditeur de code. Il montre comment remplacer un taux de 16% par 17%.

La clause where de la requête SQL doit être modifiée pour prendre en compte uniquement les documents que l'on souhaite modifier.

Ces documents doivent être modifiables. (Par ex. impossible de modifier une facture centralisée)

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Linq;
using MercatorApi;
using MercatorExtensions;

namespace MyNameSpace
{
    public class Class1 : MercatorUi.Interfaces.IExec
    {

        public void Main()
        {
            DataSet ds = Api.Zselect(MercatorUi.Globals.RepData, "select id,journal,piece,type from pieds_v where (journal='AboV')");
            if (ds == null)
                return;
            MercatorUi.Progress.ProgressCreate(ds.Tables[0].Rows.Count);
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                using (MercatorUi.Engine.Gescom.BillingEngine billingEngine = MercatorUi.Engine.Gescom.BillingEngine.InitExisting(MercatorUi.Engine.Gescom.Billing.TypeVAEnum.V, Convert.ToInt32(dr["type"]), dr["id"].ToString().TrimEnd(), dr["journal"].ToString().TrimEnd(), Convert.ToInt64(dr["piece"])))
                {
                    if (billingEngine.DataSet == null)
                    {
                        MercatorUi.Dialogs.Stop(billingEngine.LastError);
                        billingEngine.Dispose();
                        return;
                    }
                    MercatorUi.Progress.ProgressIncrement(1);
                    var lignesTva16 = billingEngine.LignesVRecords.Where(l => l.TAUX_TVA.CompareTo(16, 2) == 0);
                    if (lignesTva16.Count() > 0)
                    {
                        foreach (MercatorDatabase.LIGNES_V l in lignesTva16)
                            l.TAUX_TVA = 17;
                        billingEngine.UpdateAmounts();
                        billingEngine.Save();
                    }
                }
            }
            MercatorUi.Progress.ProgressDestroy();
            MercatorUi.Dialogs.Stop("OK");
        }
    }
}


Cookies fonctionnels : Cookies nécessaires à l'utilisation du site et cookies de préférence. Ils ne contiennent aucune donnée à caractère personnel. (En savoir plus)

Cookies statistiques : Captation de statistiques liées aux comportements des internautes. (En savoir plus)

Cookies marketing : Pour effectuer le suivi des visiteurs au travers des sites web, à des fins publicitaires. (En savoir plus)