Beheer van BEBAT, RECUPEL of andere bijdragen/taksen met BTW

0000002698     -      28-01-2026

De module "Taksen en accijnzen" van Mercator kan niet worden gebruikt daar het beheer van deze bijdragen zonder BTW wordt verrekend. Het schema dat volgt illustreert de instelling voor BEBAT. Dit schema kan worden gebruikt voor andere taxen of bijdragen waarop er een BTW bedrag mag verrekend worden.

Het hieronder vermelde voorbeeld laat toe om in de artikelfiche de waarde van de bijdrage in te vullen. (Tabblad "Prijzen"). In het verkoop ingavescherm wordt er een kolom bijgevoegd. Deze kolom wordt ingevuld met de waarde van de bijdrage. Deze kolom kan men wijzigen.

De veldnaam S_BEBAT is een variabele die u kan aanpassen als het gaat om RECUPBEL kan bijvoorbeeld S_RECUP in de plaats worden gebruikt. Pas dan wel de naam van de variabele aan in de formule die wordt weggeschreven in de sekwenties.

Procedure om de oplossing in te stellen :

  • maak via het hulpprogramma een veld bij :S_BEBAT float in STOCK
    alter table STOCK add S_BEBAT float not null default 0
  • maak via het hulpprogramma een veld bij : S_BEBAT float in LIGNES_V
    alter table LIGNES_V add S_BEBAT float not null default 0
  • Wijzig de artikelfiche om het veld S_BEBAT te laten verschijnen (Bijvoorbeeld in het tabbald "Prijzen")

 

Hiervoor zijn er drie mogelijkheden 

Oplossing 1 : de bijdrage opnemen in de verkoopprijs

  • In de artikelfiche, moet de verkoopprijs van het artikel "Bebat tax inclusief" vermelden .
  • Wijzig de lay-out van de verkoopdocumenten. Voeg een subregel toe onder de artikellijn en vermeld hier (indien nodig) het bedrag van de Bebat-belasting.

 

Oplossing  2 : via formule "Totaal" (verouderde oplossing)

  • Wijzig het de ingaveschermen om de kolom S_BEBAT te laten verschijnen.
  • Op het niveau van de sequenties, stel een formule in "Totaal" zoals hieronder weergegeven.
  • Wijzig de lay-out van de verkoopdocumenten. Voeg een subregel toe onder de artikellijn en vermeld hier (indien nodig) het bedrag van de Bebat-belasting.
Math.Round(q*pu*(100-remise)/100+q*s_bebat*(Convert.ToInt32(billingEngine.PIEDS["regime"]) == 6 ? (1+taux_tva/100) : 1) / billingEngine.Conversion, billingEngine.NDec)

⚠️ Deze aanpak vereist de implementatie van specifieke code voor de export van Peppol. Zie deze pagina.

 

Oplossing 3 : via kortingen in waarde (aanbevolen oplossing)

  • De kolom REMISE_NET_DV9 float toevoegen aan de tabel LIGNES_V. (De 9de nettokorting wordt gebruikt omdat deze kolom niet zichtbaar zal zijn. Zo blijven de voorgaande kolommen beschikbaar voor andere toepassingen.)
  • Wijzig het de ingaveschermen om de kolom S_BEBAT te laten verschijnen. (Niet kolom REMISE_NET_DV9)
  • Op het niveau van de sequenties, de customizer in waarvan de code hieronder is weergegeven.
  • Wijzig de lay-out van de verkoopdocumenten. Voeg een subregel toe onder de artikellijn en vermeld hier (indien nodig) het bedrag van de Bebat-belasting.
alter table LIGNES_V add REMISE_NET_DV9 float not null default 0
SP_SET_COLUMN_DESCRIPTION 'LIGNES_V', 'REMISE_NET_DV9', 'Bebat' -- wordt gebruikt als AllowanceChargeReason tijdens Peppol-export
Zoom
namespace Billing
{
    public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
    {
        public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
        {
            billingEngine.BeforeUpdateAmounts += BillingEngine_BeforeUpdateAmounts;
        }

        public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
        {
            billingEngine.BeforeUpdateAmounts -= BillingEngine_BeforeUpdateAmounts;
        }

        private void BillingEngine_BeforeUpdateAmounts(object sender, MercatorUi.Engine.Gescom.BillingEngine.UpdateAmountsEventArgs e)
        {
            MercatorUi.Engine.Gescom.BillingEngine billingEngine = (MercatorUi.Engine.Gescom.BillingEngine)sender;
            foreach (DataRow dr in e.DtLignes.Select("id_article<>''"))
            {
                if (billingEngine.PiedsVRecord.REGIME != RegimesEnum.VatIncluded)
                    Api.SmartReplace(dr, "remise_net_dv9", -dr.Value<double>("s_bebat"));
                else
                    Api.SmartReplace(dr, "remise_net_dv9", Math.Round(-dr.Value<double>("s_bebat") * (1 + dr.Value<double>("taux_tva") / 100), 5), 5);
            }
        }
    }
}

💡 Merk de aanwezigheid op van het teken - bij de toekenning van remise_net_dv9, aangezien de bijdrage een charge is die wordt opgeslagen in een kolom voor korting. De nettokortingen zijn unitair (per artikel). Men mag ze dus niet met de hoeveelheid vermenigvuldigen.

 


👉 Bij de verbinding naar de boekhouding wordt de bijdrage opgenomen in de algemene verkoopcijfers.
Een aangepaste statistiek vanuit Mercator zal u toelaten een D.V. te maken in de boekhouding om de algemene rekening van de bijdragen aan te zuiveren.



Functionele cookies: Cookies die nodig zijn voor het gebruik van de website en voorkeurscookies. Ze bevatten geen persoonsgegevens. (Meer informatie)

Analytische cookies: Verzamelen van statistieken met betrekking tot het gedrag van internetgebruikers. (Meer informatie)

Marketingcookies: Om bezoekers op verschillende websites te volgen voor advertentiedoeleinden. (Meer informatie)