Envoi des documents par e-mail

Romain Bonjean -

  1. Ajout du fichier  Envoi_factures.dll dans le dossier principal de Mercator
  2. Ajout/Modification du customizer "Main" pour ajouter une nouvelle option "Envoi des documents par E-mail" dans le Menu Mercator  :
    using System.Text;
    using System.Data;
    using MercatorApi;
    using MercatorExtensions;
    using MercatorUi;
    using System.ComponentModel;

    using Envoi_factures;
    // <ReferenceInclude>"Envoi_factures.dll"</ReferenceInclude>

    namespace Main
    {
    public class Customizer : MercatorUi.ICustomizers.IExec
    {

    public void Main(MercatorUi.ICustomizers.ExecAction Action)
    {
    if (Action == MercatorUi.ICustomizers.ExecAction.MenuCreated)
    {
    MercatorUi._BaseClasses.MenuElement menuEnvoiDocument = new MercatorUi._BaseClasses.MenuElement("Envoi des documents par E-mail");
    Globals.StarterMainForm.Mainmenu.Items.Add(menuEnvoiDocument);

    MercatorUi._BaseClasses.MenuElement menuEnvoi = new MercatorUi._BaseClasses.MenuElement("Envoi des documents", "", null, EnvoiDocuments_Click);
    menuEnvoiDocument.SubItems.Add(menuEnvoi);

    MercatorUi._BaseClasses.MenuElement menuConfiguration = new MercatorUi._BaseClasses.MenuElement("Configuration", "", null, EnvoiDocumentsConfiguration_Click);
    menuEnvoiDocument.SubItems.Add(menuConfiguration);
    }
    }
    void EnvoiDocuments_Click(object sender, EventArgs e)
    {
    Envoi_factures.Envoi.EnvoiFactures();
    }
    void EnvoiDocumentsConfiguration_Click(object sender, EventArgs e)
    {
    using(Envoi_factures.FormConfiguration form = new Envoi_factures.FormConfiguration())
    {
    form.ShowDialog();
    }
    }
    }
    }
  3. Ajout/Modification du customizer "HistCli" pour ajouter une colonne indiquant si le mail a été envoyé ou non :
    using System.Windows.Forms;

    namespace HistCli
    {
    public class Customizer : MercatorUi.ICustomizers. IStringUpdater, MercatorUi.ICustomizers. IFormGridCustomizer
    {
    public string StringUpdate(string StringToModify)
    {
    // Attention, le champ "mailEnvoye" doit être remplacé par le champ renseigné dans la configuration de l'envoi des mails
    return StringToModify.Replace("date,", "date, case when mailEnvoye=1 then 'Oui' else 'Non' end mailEnvoye,");
    }

    public void FormGridCustomize(Form WindowsForm)
    {
    MercatorUi.Forms.Hist. HistForm HistForm = (MercatorUi.Forms.Hist. HistForm ) WindowsForm;

    HistForm.dataGridView.Columns.Add("mailEnvoye", "Mail Envoyé");
    HistForm.dataGridView.Columns["mailEnvoye"].Width = 60;
    HistForm.dataGridView.Columns["mailEnvoye"].DataPropertyName = "mailEnvoye";
    HistForm.dataGridView.Columns["mailEnvoye"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
    }
    }
    }
  4. Redémarrer Mercator
  5. Configurer l'envoi de mail : Cliquer sur l'option "Envoi des documents par E-mail" => "Configuration". 

 

Sender Email: l'email qui envoit

Sender Name: le nom affiché de l'envoyeur

Email en CC: email qui sera en copie

Champ de pieds_v: booléen (à ajouter) qui va dire si la facture a été envoyée ou non

Champ email de la table CLI: champ de CLI contenant l'email du client

Journaux séparés par une virgule: journaux gescom à traiter avec envoi d'email (factures, notes de crédit, etc...)

Message: Le corps de l'email

Le sujet de l'email sera toujours Journal + Piece + Reference

Les emails passent par notre serveur d'envoi SMTP

La DLL ne va traiter que les documents datés avant le 01/12/2018

Attention, pour que cela fonctionne, il faut le module PDF (car le système reprend le PDF généré en duplicata)

Le système va envoyer les documents non-encore envoyés sur la période concernée.

Il va indiquer combien de factures vont être envoyées et demander confirmation, avant la confirmation d'envoi.

L'email a bien été reçu avec la pièce jointe.

 

 

 

 

 

 

 

   

Vous avez d’autres questions ? Envoyer une demande

0 Commentaires

Veuillez vous connecter pour laisser un commentaire.