Lors de la facturation automatique des livraisons, filtrer les clients en fonction de la séquence de factures sélectionnée

0000002657     -      16/09/2025

La programmation illustrée ici montre comment, lors de la facturation automatique des livraisons, filtrer les clients en fonction de la séquence de facture sélectionnée. Elle est basée sur un customizer Gescom qui implémente l'interface MercatorUi.ICustomizers.IStringUpdaterWithContextInfo.

L'objectif est de modifier la requête de sélection des livraisons à facturer, en ajoutant un filtre sur le client. L'interface IStringUpdaterWithContextInfo diffère de l'interface IStringUpdater, en ce sens qu'elle va permettre d'obtenir un objet supplémentaire. Dans le cas des regroupements automatiques, ce sera toujours l'objet qui contient toutes les sélections faites par l'utilisateur. Lors du regroupement des livraisons en factures, cet objet sera de type MercatorUi.Forms.Gescom.GescomDialogs.GescomAskDeliveriesInvoicing.GescomAskDeliveriesInvoicingRet.

Le code de ce customizer s'établit comme suit :

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 srl')" : " and (cli.c_company='XYZ sa')";
                StringToModify = StringToModify.Replace("(n_lignes2>0)", "(n_lignes2>0)" + compl);
            }
            return StringToModify;
        }
    }
}


Cookies fonctionnels : Cookies nécessaires à l'utilisation du site et cookies de préférence. Ils ne contiennent aucune donnée à caractère personnel. (En savoir plus)

Cookies statistiques : Captation de statistiques liées aux comportements des internautes. (En savoir plus)

Cookies marketing : Pour effectuer le suivi des visiteurs au travers des sites web, à des fins publicitaires. (En savoir plus)