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

Simulation des livraisons automatiques clients

0000001674     -      16/06/2022

Mercator permet d'effectuer les livraisons automatiques clients en mode "simulation". Pour ce faire, il suffit de cocher la case "Simul." dans la première boîte de dialogue de la fonctionnalité "Gestion / Livraisons Clients". Le processus qui se déclenche est alors 100% identique à celui qui s'exécute lors d'une génération effective des livraisons clients. La seule différence est que les livraisons ne sont pas générées et qu'un rapport reprenant le détail de ces livraisons est produit.

Ce rapport s'appelle OrdersDeliveryAutomaticV.repx. Il s'installe automatiquement lors de la première utilisation et est ensuite modifiable. Il contient les datatables suivantes :

  • PIEDS_V
  • LIGNES_V
  • CLI

Il est possible d'utiliser l'évènement SimulationDonede la classe statique MercatorUi.Forms.Gescom.GescomProcedures.Procedures. Cet évènement passe au délégué un MercatorUi.Forms.Gescom.GescomProcedures.Procedures.SimulationDoneEventArgs, dont la propriété CancelPrint peut être mise à true afin de ne pas poursuivre le processus avec l'impression du rapport standard. De la sorte, il est possible de personnaliser complètement la finalisation de cette simulation en faisant autre chose que l'impression du rapport. (Par ex. export vers Excel)

Exemple de customizer :

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)
                MercatorUi.Forms.Gescom.GescomProcedures.Procedures.SimulationDone += new MercatorUi.Forms.Gescom.GescomProcedures.Procedures.SimulationDoneEventHandler(Procedures_SimulationDone);
            else if (Action == MercatorUi.ICustomizers.ExecAction.DossierClose)
                MercatorUi.Forms.Gescom.GescomProcedures.Procedures.SimulationDone -= new MercatorUi.Forms.Gescom.GescomProcedures.Procedures.SimulationDoneEventHandler(Procedures_SimulationDone);
        }

        private void Procedures_SimulationDone(MercatorUi.Forms.Gescom.GescomProcedures.Procedures.SimulationDoneEventArgs e)
        {
            Dialogs.Stop("Nombre de livraisons générées : " + e.ParamsForReport["OrdersDeliveryGeneratedDeliveries"].ToString());
            MercatorUi._Divers.ExportDataTableToFile(e.DsForReport.Tables["LIGNES_V"]); // exporter la table des lignes vers Excel
            e.CancelPrint = true; // ne pas poursuivre avec l'impression
        }
    }
}