Bij de automatische facturatie van leveringen, de klanten filteren op basis van de geselecteerde factuur sequentie

0000002657     -      27-12-2019

De hier getoonde programmatie laat zien hoe klanten gefilterd worden tijdens de automatische facturering van leveringen op basis van de geselecteerde factuur sequentie. Het is gebaseerd op een Gescom customizer die de MercatorUi.ICustomizers.IStringUpdaterWithContextInfo implementeerd.

Het doel is om op de selectievraag van de te factureren leveringen een filter toe te voegen op de klant. De IStringUpdaterWithContextInfo interface verschilt van deIStringUpdater, interface, in die zin dat het de mogelijkheid biedt om een bijkomend object te verkrijgen. In het geval van automatische groeperingen zal dit altijd het object zijn dat alle selecties die gemaakt zijn door de gebruiker bevat. Bij het groeperen van levering facturen zal dit object van het type MercatorUi.Forms.Gescom.GescomDialogs.GescomAskDeliveriesInvoicing.GescomAskDeliveriesInvoicingRet zijn.

De code van de customizer hiervoor is als volgt :

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Windows.Forms;

namespace Gescom
{
    public class Customizer : MercatorUi.ICustomizers.IStringUpdaterWithContextInfo
    {

        public string StringUpdate(string StringToModify, object ContextInfo)
        {
            string id = Api.StrExtract(StringToModify, "<ID>", "</ID>");
            if (id == "SEL_DOC_DELIVERIES_INVOICING")
            {
                MercatorUi.Forms.Gescom.GescomDialogs.GescomAskDeliveriesInvoicing.GescomAskDeliveriesInvoicingRet askRet = (MercatorUi.Forms.Gescom.GescomDialogs.GescomAskDeliveriesInvoicing.GescomAskDeliveriesInvoicingRet)ContextInfo;
                string compl = askRet.SequencDest["journal"].ToString() == "1VEN" ? " and (cli.c_company='ABC bv')" : " and (cli.c_company='XYZ sa')";
                StringToModify = StringToModify.Replace("(n_lignes2>0)", "(n_lignes2>0)" + compl);
            }
            return StringToModify;
        }
    }
}