In een verkoopdocument: de klant bevestigen en zijn locatie invoeren in de referentie

0000002034     -      31-12-2024

Deze programmering laat zien hoe u tussenkomt bij de selectie van de klant in een verkoopdocument. Ze omvat gewoon een dialoogvenster waarin u de selectie van de klant kunt bevestigen of annuleren. Is de klant aanvaard, dan wordt zijn locatie in de zone "Referentie" ingevoerd. Deze customizer wordt gecreëerd voor het voorbeeld en kan als vertrekpunt dienen voor meer ambitieuze programmeringen. Het hieronder geïllustreerde principe geldt ook voor de aankopen in de boekhouding, met het oog op het beheer van de leveranciersselectie.

De code moet worden ingevoerd in een Booking-customizer gecreëerd op basis van de overeenstemmende boekhoudsequentie. Deze implementeert de volgende interfaces:

Hierbij wordt hoofdzakelijk het event BeforeApplyCustomerSupplier van de BookingEngine van het actieve document gebruikt. Dit event laat toe om de voortzetting van de procedure te annuleren.

De code ziet er als volgt uit:

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.BeforeApplyCustomerSupplier += BookingEngine_BeforeApplyCustomerSupplier;
        }

        public void BookingEngineClosed(MercatorUi.Engine.Cpta.BookingEngine bookingEngine)
        {
             bookingEngine.BeforeApplyCustomerSupplier -= BookingEngine_BeforeApplyCustomerSupplie);
        }

        void BookingEngine_BeforeApplyCustomerSupplier(object sender, MercatorUi.Engine.Cpta.BookingEngine.BeforeApplyCustomerSupplierEventArgs e)
        {
            MercatorUi.Engine.Cpta.BookingEngine bookingEngine = (MercatorUi.Engine.Cpta.BookingEngine)sender;
            string ville = MercatorController.xFunctions.xLookUpString("CLI", "C_ID", e.IdCliOrFou, "C_VILLE").TrimEnd();
            if (Dialogs.AnswerYesNo(string.Format("Klant \"{0}\" woonachtig in {1} aanvaarden?", e.IdCliOrFou, ville)))
                bookingEngine.PiedsCRecord.REFERENCE = ville;
            else
                e.CancelApplyCustomerSupplier = true; // Deze flag laat Mercator weten dat men de selectie van deze klant weigert.
        }
    }
}


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)