Stuur een verkoop uit het commercieel beheer naar het mailadres van het leveradres

0000002589     -      27-08-2017

Deze instellingen tonen hoe, bij het verzenden van een mail uit het commercieel beheer, via het menu "Bestanden / Verzenden", gebruik het mail adres van het leveradres (ID_CLI_LIV) meestal is dit het facturatieadres. Deze code gebruikt het event SendingMail van BillingEngine. Dit evenement wordt opgeroepen na dat Mercator het mailadres van de ontvanger(s) bepaalt heeft. De eventArgs van dit event bevatten de property Recipients, wat een DataTable is. Ze bevat de mailadres(sen) die Mercator bepaald heeft.

De code implementeert de interfaces MercatorUi.ICustomizers.IBillingEngineCreated et MercatorUi.ICustomizers.IBillingEngineClosed. Het is een Billing Customizer die verwijst naar een verkoopssequentie.

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 is de DataTable die zichtbaar zal zijn in het dialoogvenster uit de selectie(indien er meer dan 1 adres is)
                e.Recipients.Rows.Clear(); // verwijderd de reeds gevonden mailadressen door Mercator
                e.Recipients.Rows.Add(new object[2] { billingEngine.CliLivRecord.C_EMAIL, billingEngine.CliLivRecord.C_EMAIL });
            }
        }
    }
}