Hoe het beroeps- en het privégedeelte automatisch beheren ?

0000002495     -      29-09-2015

Bij de invoering van de algemene kosten in de boekhouding moeten zelfstandigen en vrije beroepen vaak het beroepsgedeelte scheiden van het privégedeelte. Dit gebeurt in de vorm van een breuk. (2/4, 6/7, ...)

Deze mogelijkheid wordt aangeboden door de bijgevoegde module.

Installatie :

  • Er moet een knop worden toegevoegd aan het codeerscherm van het aankoopdocument.
  • Onderstaande code moet in de eigenschap Code van deze knop worden geplaatst
Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorController;
using System.Windows.Forms;

namespace MercatorUi.MovableControls.ButtonsCodes
{
    public static class Script
    {
        public static void Exec(MercatorUi.MovableControls. MovableButton clickedButton)
        {
            MercatorUi.Forms.Booking. BookingForm bookingForm = (MercatorUi.Forms.Booking. BookingForm )clickedButton.FindForm();
            MercatorUi.Engine.Cpta. BookingEngine bookingEngine = (MercatorUi.Engine.Cpta. BookingEngine )bookingForm.BookingEngine;
            if (bookingEngine.LIGNES_C.Rows.Count == 0)
                return ;
            int n_dec = Convert .ToInt32(bookingEngine.PIEDS_C[ "n_dec" ]);

            // percentages vragen
            double [] proportion = Dialogs .AskDoubles( "Professioneel percentage ? \n\r    Dividend                              Verdeler" , 6, 7, bookingEngine.DisplayFormat, bookingEngine.DisplayFormat);
            if (proportion == null ) // u koos voor Annuleren
                return ;
            if ( Math .Round(proportion[1], 5) == 0) // verdeler nul
                return ;

            // het nieuwe bedrag van de lijn (totaal en btw) berekenen en de bestaande lijn wijzigen
            double totdv = Math .Round(( Convert .ToDouble(bookingEngine.LIGNES_C.Rows[0][ "tot_dv" ]) * proportion[0] / proportion[1]), n_dec);
            double tauxtva = MercatorController.xFunctions.xLookupLocalDouble(bookingEngine.TVACODES, string .Format( "id='{0}'" , Api.UnquoteSql(bookingEngine.LIGNES_C.Rows[0][ "id_tva" ].ToString())), "TAUX" );
            double tvadv = Math .Round((totdv * tauxtva / 100), n_dec);
            bookingEngine.LIGNES_C.Rows[0][ "tot_dv" ] = totdv;
            bookingEngine.LIGNES_C.Rows[0][ "tva_dv" ] = tvadv;

            // een tweede lijn toevoegen
            MercatorUi.Sig. Sig sig_gen = MercatorUi.Sig. _SigsStatic .SigByModule(MercatorUi.Sig. _SigEnum .GEN); // zal nodig zijn om aan te geven dat we een algemene rekening zullen invoeren

            int n = bookingEngine.AppendLine(); // initialiseert een nieuwe lijn en verwijst naar het aangemaakte lijnnummer
            if (!bookingEngine.InsertAccount(sig_gen, "483000" , bookingEngine.LIGNES_C.Rows[n]))
            {
                 Dialogs .Stop( "InsertAccount 1 : " + bookingEngine.LastError);
                 return ;
            }
            bookingEngine.LIGNES_C.Rows[n][ "tot_dv" ] = Math .Round( Convert .ToDouble(bookingEngine.PIEDS_C[ "tot_ttc_dv" ]) - totdv - tvadv, n_dec);
        }
    }
}

Gebruik: bij het invoeren van een bewijsstuk moet men het totale bedrag van dat document boeken. Als Mercator correct geconfigureerd is (rekening standaard gelinkt aan de leverancier en btw-code gelinkt aan deze algemene code), moeten enkel de leverancier en het totale bedrag incl. btw worden ingevoerd. De eerste boekingslijn wordt automatisch ingevuld. Deze module vervolgens oproepen met behulp van een klik op de toegevoegde knop. Er verschijnt een dialoogvenster waarin de verdeelbreuk ingevoerd kan worden. Bij het valideren van deze breuk past Mercator automatisch het bedrag van de eerste boekingslijn aan en wordt een tweede lijn gecreëerd. Deze tweede lijn vermeldt het saldo, zonder btw, van de R/C zaakvoerder (483000).


Opmerking: de module kan worden aangepast om een andere rekening in plaats van 483000 te gebruiken. De breuk kan ook worden gelinkt aan de algemene rekening.


In de Belgische wetgeving is het zo dat als de breuk gebruikt wordt op een btw-code die een niet-aftrekbaar gedeelte bevat (bv. 50 % op de kosten verbonden aan voertuigen), zich het probleem stelt dat de btw slechts voor maximaal 50 % terugvorderbaar is (en niet voor 50 % van het professionele gedeelte). Daarom zal het percentage niet-terugvorderbare btw dat moet worden vermeld bij de btw-code niet 50 % zijn, maar minder bedragen en als volgt berekend worden:

voor een professioneel gedeelte van n/m is het percentage niet-terugvorderbare btw (1-(0.5+(m-n)/m))*100

Bijvoorbeeld:

  • 6/7 : 35.71 %
  • 5/7 : 21.43 %