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

Comment empêcher d'ouvrir plus de 2 ventes ?

0000002755     -      06/02/2018

Le code doit être placé dans un customizer Billing créé à partir de la séquence correspondante. Il implémente les interfaces suivantes :

Il exploite essentiellement l'évènement Initialzed du BillingEngine du document en cours.

Le code s'établit comme suit :

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

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

        public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
        {
            BillingEngine.Initialized -= new MercatorUi.Engine.Gescom.BillingEngine.InitializedEventHandler(BillingEngine_Initialized);
        }

        private void BillingEngine_Initialized(object sender, MercatorUi.Engine.Gescom.BillingEngine.InitializedEventArgs e)
        {
            List<Form> l = _Divers.OpenFormsByType(typeof(MercatorUi.Forms.Billing.BillingForm));
            if (l.Count > 0)
            {
                int i = 0;
                foreach (Form f in l)
                {
                    if (((MercatorUi.Forms.Billing.BillingForm)f).BillingEngine.TypeVA == MercatorUi.Engine.Gescom.Billing.TypeVAEnum.V)
                        i++;
                }
                if (i > 2)
                    e.Cancel = true;
            }
        }
    }
}