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

Link met Commercieel Beheer: een leveranciersfactuur blokkeren voor toekomstige betalingsvoorstellen (bankmodule)

0000002508     -      03-10-2015

De hier beschreven parameterinstelling laat toe om in Commercieel Beheer een leveranciersfactuur te markeren zodat ze geen deel uitmaakt van de betalingsvoorstellen die door de bankmodule van Boekhouding in Mercator worden gegenereerd. Uiteraard moet de leveranciersfactuur in het Commercieel Beheer worden gemarkeerd voorafgaand aan de centralisering in de boekhouding.

Om deze parameterinstelling te installeren:

  • voeg in de tabel PIEDS_A het veld BLOQ_PAIEM (type "bit") toe. Dit veld moet de waarde 1 vermelden als u de betaling wilt blokkeren;
  • voeg een CheckBox, gebonden aan dit veld, in het scherm van de leveranciersfacturen uit Commercieel Beheer:
  • in de aankoopsequentie van de boekhouding, plaats deze customizer :
Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using MercatorApi;
using MercatorUi;

namespace Booking
{
    public class Customizer : MercatorUi.ICustomizers.IBookingEngineCreated, MercatorUi.ICustomizers.IBookingEngineClosed
    {

        public void BookingEngineCreated(MercatorUi.Engine.Cpta.BookingEngine BookingEngine)
        {
            BookingEngine.DuringSave += new MercatorUi.Engine.Cpta.BookingEngine.DuringSaveEventHandler(BookingEngine_DuringSave);
        }

        public void BookingEngineClosed(MercatorUi.Engine.Cpta.BookingEngine BookingEngine)
        {
            BookingEngine.DuringSave -= new MercatorUi.Engine.Cpta.BookingEngine.DuringSaveEventHandler(BookingEngine_DuringSave);
        }

        void BookingEngine_DuringSave(object sender, MercatorUi.Engine.Cpta.BookingEngine.DuringSaveEventArgs e)
        {
            e.SqlCommand.CommandText = "declare @id_gescom char(15), @bloq_paiem bit \r\n"
                                     + "select @id_gescom=id_gescom from #lignes_c_tmp where id_fou is not null \r\n"
                                     + "select @bloq_paiem=bloq_paiem from PIEDS_A where (journal=left(@id_gescom,5)) and (piece=right(@id_gescom,10)) \r\n" // @bloq_paiem zal leeg zijn indien het gescom-document niet bestaat
                                     + "if @bloq_paiem=1 \r\n"
                                     + "    update #lignes_c_tmp set nivpaiem=7 where id_fou is not null";
            if (!Api.SqlExec(e.SqlCommand))
                e.CancelSave = true;
        }
    }
}