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

Action facture client par mail

0000002694     -      13/06/2017

Pour installer cette action :

Le fichier reprend les paramètres de l'action suivante : envoyer une facture client par mail si l'adresse mail du client est définie. Dans le cas contraire, la facture est imprimée.


Dans la séquence concernée, sur l'onglet "Evénements", il faut :

  • sélectionner "E-mail" dans la zone "Impression" 
  • sélectionner l'action "Email Facture Client" dans la zone "Action mail".
  • cocher "Invisible" afin que le mail soit envoyé sans que la fenêtre correspondant à l'action n'apparaisse (conseillé).


Pour que la facture s'imprime si le client n'a pas d'adresse mail définie, ll faut également compléter le customizer de la séquence avec le code ci-dessous :

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

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;
            switch (billingEngine.Type)
            {
                case 1:
                    e.Recipients.Clear();
                    if (billingEngine.CLI["c_email"].ToString().Trim() != "")
                        e.Recipients.Rows.Add(new object[2] { billingEngine.CLI["c_email"], billingEngine.CLI["c_email"] });
                    else
                        e.Recipients.Rows.Add(new object[2] { "no-mail@mail.eu", "no-mail@mail.eu" });

                    break;
            }
        }
    }
}

 

Pour une impression entièrement automatique, il faut alors sauver l'imprimante par défaut dans le rapport. De ce fait, Mercator ne demandera pas l'imprimante à utiliser.

Le customizer fourni dans l'action tient compte de la présence du module de gestion des contacts. Si celui-ci n'est pas présent, il y a lieu de le modifier.



A télécharger : 0000002694.zip (20 Kb - 18/12/2023)