Modifier le contenu de la liste des pieds de remises (dans "Outils > Remises")

0000002450     -      15/11/2021

Cette programmation montre comment changer le contenu de la liste des pieds de remises disponible depuis "Outils > Remises" lorsque la fonctionnalité de gestion des pieds de remises est activée. L'exemple montre ici comment ajouter les dates de début et de fin de la promotion à la suite du libellé de la remise.

Cette programmation requiert deux customizers.

Le premier customizer, Gescom, permet de modifier la requête SQL qui extrait les données de la table BAREMESV_PIEDS ou BAREMESA_PIEDS. Il faut, en effet, ajouter les colonnes DEBUT et FIN.

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

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

        public string StringUpdate(string stringToModify)
        {
            string id = Api.StrExtract(stringToModify, "<ID>", "</ID>");
            if (id.StartsWith("ALLOWANCES_FOOTERS_"))
                return stringToModify.Replace("select id,intitule from", "select id,intitule,debut,fin from");
            else
                return stringToModify;
        }
    }
}

Ensuite un customizer Main mettant en place l'évènement BaseFormCreating qui permet d'atteindre l'évènement AddingBaremePied de la form MercatorUi.Forms.Gescom.GescomAllowancesFootersForm.

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

namespace Main
{
    public class Customizer : MercatorUi.ICustomizers.IExec
    {

        public void Main(MercatorUi.ICustomizers.ExecAction Action)
        {
            if (Action == MercatorUi.ICustomizers.ExecAction.DossierOpen)
            {
                Globals.Main.BaseFormCreating += new MercatorUi.Main.BaseFormCreatingEventHandler(Main_BaseFormCreating);
            }
            else if (Action == MercatorUi.ICustomizers.ExecAction.DossierClose)
            {
                Globals.Main.BaseFormCreating -= new MercatorUi.Main.BaseFormCreatingEventHandler(Main_BaseFormCreating);
            }
        }

        void Main_BaseFormCreating(object sender, MercatorUi.Main.BaseFormCreatingEventArgs e)
        {
            if (e.Form is MercatorUi.Forms.Gescom.GescomAllowancesFootersForm)
            {
                MercatorUi.Forms.Gescom.GescomAllowancesFootersForm gescomAllowancesFootersForm = (MercatorUi.Forms.Gescom.GescomAllowancesFootersForm)e.Form;
                gescomAllowancesFootersForm.AddingBaremePied += gescomAllowancesFootersForm_AddingBaremePied;
                gescomAllowancesFootersForm.FormClosed += gescomAllowancesFootersForm_FormClosed;
            }
        }

        void gescomAllowancesFootersForm_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
        {
            MercatorUi.Forms.Gescom.GescomAllowancesFootersForm gescomAllowancesFootersForm = (MercatorUi.Forms.Gescom.GescomAllowancesFootersForm)sender;
            gescomAllowancesFootersForm.AddingBaremePied -= gescomAllowancesFootersForm_AddingBaremePied;
            gescomAllowancesFootersForm.FormClosed -= gescomAllowancesFootersForm_FormClosed;
        }

        // l'event AddingBaremePied est appelé lors de l'ajout de chaque ligne dans la liste
        void gescomAllowancesFootersForm_AddingBaremePied(object sender, MercatorUi.Forms.Gescom.GescomAllowancesFootersForm.AddingBaremePiedEventArgs e)
        {
            e.ListViewItem.Text += " "
                + Convert.ToDateTime(e.DataRow["debut"]).ToShortDateString()
                + "-"
                + Convert.ToDateTime(e.DataRow["fin"]).ToShortDateString();
        }

    }
}

 


Informations complémentaires : Fonctionnalités de "Outils > Remises"