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 la gestion commerciale, bloquer l'enregistrement si un mode de paiement "non cash" est utilisé

0000002196     -      29/03/2019

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 BeforeSave 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.Windows.Forms;
using MercatorApi;
using MercatorUi;
using MercatorExtensions;

namespace Billing
{
    public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
    {

        public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
        {
            BillingEngine.BeforeSave += BillingEngine_BeforeSave;
        }

        public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
        {
            BillingEngine.BeforeSave -= BillingEngine_BeforeSave;
        }

        void BillingEngine_BeforeSave(object sender, MercatorUi.Engine.Gescom.BillingEngine.BeforeSaveEventArgs e)
        {
            MercatorUi.Engine.Gescom.BillingEngine BillingEngine = (MercatorUi.Engine.Gescom.BillingEngine)sender;
            if (BillingEngine.Type > 1)
            {
                for (int i = 1; i <= 9; i++)
                {
                    if ((Convert.ToDouble(BillingEngine.PIEDS["tot_paiem" + i.ToString()]).CompareTo(0d, BillingEngine.NDec) != 0)
                        && !MercatorController.xFunctions.xLookupLocalBool(BillingEngine.PAIEM, "type=" + BillingEngine.PIEDS["typ_paiem" + i.ToString()].ToString(), "cash"))
                    {
                        e.CancelSave = true;
                        MercatorUi.Dialogs.Stop("Impossible de sauvegarder ce document !\r\nCe document contient des modes de paiement de type différé !");
                        break;
                    }
                }
            }
        }
    }
}