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

Envoyer une vente de la gestion commerciale à l'adresse mail du client de livraison

0000002589     -      27/08/2017

Ce paramétrage montre comment, lors de l'envoi d'une vente de la gestion commerciale, par le menu "Fichier / Envoyer", utiliser l'adresse mail du client de livraison (ID_CLI_LIV) plutôt que celle du client de facturation. Ce code utilise principale l'événement SendingMail du BillingEngine. Cet évènement est levé après que Mercator ait déterminé la ou les adresses mails du destinataire. L'eventArgs de cet événement contient une propriété Recipients, qui est une DataTable. Elle contient la ou les adresses mails déjà déterminées par Mercator.

Le code implémente les interfaces MercatorUi.ICustomizers.IBillingEngineCreated et MercatorUi.ICustomizers.IBillingEngineClosed. Il consiste en un customizer Billing a référencer dans une séquence de vente.

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


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

        public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
        {
            billingEngine.SendingMail += BillingEngine_SendingMail;
        }

        public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
        {
            billingEngine.SendingMail -= BillingEngine_SendingMail;
        }

        void BillingEngine_SendingMail(object sender, MercatorUi.Engine.Gescom.BillingEngine.SendingMailEventArgs e)
        {
            MercatorUi.Engine.Gescom.BillingEngine billingEngine = (MercatorUi.Engine.Gescom.BillingEngine)sender;
            if (billingEngine.CLI_LIV != null)
            {
                // e.Recipients est la DataTable qui sera visible dans la boîte de dialogue de sélection (si plus d'une adresse)
                e.Recipients.Rows.Clear(); // retirer les adresses mail déjà trouvées par Mercator
                e.Recipients.Rows.Add(new object[2] { billingEngine.CliLivRecord.C_EMAIL, billingEngine.CliLivRecord.C_EMAIL });
            }
        }
    }
}