Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Dans un document de vente, compléter automatiquement ID_FOU_COM avec le fournisseur par défaut

0000002256     -      08/10/2021

Le module illustré ici permet de compléter automatiquement le champ optionnel ID_FOU_COM de LIGNES_V avec le fournisseur par défaut défini au niveau de l'article. Cette fonctionnalité peut être couplée avec la fixation du fournisseur dans la commande client pour la contremarque.

Le code exploite de façon très simple l'évènement AfterInsertItem du BillingEngine. Il s'établit comme suit :

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

namespace Billing
{
    public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
    {
        public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
        {
            BillingEngine.AfterInsertItem += new MercatorUi.Engine.Gescom.BillingEngine.AfterInsertItemEventHandler(BillingEngine_AfterInsertItem);
        }

        public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
        {
            BillingEngine.AfterInsertItem -= new MercatorUi.Engine.Gescom.BillingEngine.AfterInsertItemEventHandler(BillingEngine_AfterInsertItem);
        }

        void BillingEngine_AfterInsertItem(object sender, MercatorUi.Engine.Gescom.BillingEngine.AfterInsertItemEventArgs e)
        {
            DataSet ds = Api.Zselect(MercatorUi.Globals.RepData, "select fou.f_id,fou.f_nom from ARTFOU inner join FOU on (artfou.id_fou=fou.f_id) where (id_art=@s_id) and (principal=1)", new MercatorSqlParam("@s_id", e.StockRecord.S_ID, SqlDbType.Char));
            if ((ds != null) && (ds.Tables[0].Rows.Count > 0))
            {
                e.LignesVRecord.ID_FOU_COM = ds.Tables[0].Rows[0]["f_id"].ToString().TrimEnd();
                e.DataRowLignes["NOM_FOU_COM"] = ds.Tables[0].Rows[0]["f_nom"].ToString().TrimEnd();
            }
        }
    }
}