U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

Verander het BTW tarief in bestaande documenten

0000002389     -      27-08-2017

De hier beschreven programmering toont hoe u het BTW-tarief kan wijzigen in de bestaande documenten van het bedrijfsbeheer, zoals abonnementen of offertes. Deze module vereist de ENGG optie. Hij is direct uitvoerbaar uit de code-editor. Het laat zien hoe je een tarief van 15% vervangt met één van 17%.

De where clausule van de SQL-query wordt aangepast om alleen rekening te houden met de documenten die u wilt wijzigen.

Deze documenten moeten kunnen worden aangepast. (Bvb. Het onmogelijk maken om een gecentraliseerde factuur te wijzigen)

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 lignesTva15 = billingEngine.LignesVRecords.Where(l => l.TAUX_TVA.CompareTo(15, 2) == 0);
                    if (lignesTva15.Count() > 0)
                    {
                        foreach (MercatorDatabase.LIGNES_V l in lignesTva15)
                            l.TAUX_TVA = 17;
                        billingEngine.UpdateAmounts();
                        billingEngine.Save();
                    }
                }
            }
            MercatorUi.Progress.ProgressDestroy();
            MercatorUi.Dialogs.Stop("OK");
        }
    }
}