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

Déclencher la facturation automatique sans boîte de dialogue

0000002257     -      24/06/2016

Le module décrit ici permet de déclencher la facturation automatique sans boîte de dialogue. Cela permet d'exécuter cette procédure sans intervention de l'utilisateur. Le cas échéant, cette procédure peut être initialisée par une application externe ayant instancié Mercator Majuro.

Un procédé similaire peut être appliqué à tous les regroupements automatiques :

  • livraison des commandes
  • commande des préparation de commandes
  • génération des abonnements
  • maintenance des abonnements
  • génération des contremarques

Le code s'établit comme suit :

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

namespace TestDeliveriesInvoicing
{
    public class TestDeliveriesInvoicing
    {

        public void Exec()
        {
            DataSet ds = Api.Zselect(MercatorUi.Globals.RepData, "select * from sequenc where journal='Blivr'" + "\r\n" + "select * from sequenc where journal='Factu'");
            if (ds == null)
                return;
            if (ds.Tables[0].Rows.Count == 0)
            {
                MercatorUi.Dialogs.Stop("Séquence de livraisons non trouvée !");
                return;
            }
            if (ds.Tables[1].Rows.Count == 0)
            {
                MercatorUi.Dialogs.Stop("Séquence de factures non trouvée !");
                return;
            }
            Api.TrimEndDataSet(ds);

            MercatorUi.Forms.Gescom.GescomDialogs.GescomAskDeliveriesInvoicing.GescomAskDeliveriesInvoicingRet ret = new MercatorUi.Forms.Gescom.GescomDialogs.GescomAskDeliveriesInvoicing.GescomAskDeliveriesInvoicingRet(
                ds.Tables[0].Rows[0] // sequencOrig
                , ds.Tables[1].Rows[0] // sequencDest
                , string.Format("(pieds_v.date>={0}) and (pieds_v.date<{1})", Api.DateTimeSqlString(new DateTime(DateTime.Today.Year, DateTime.Today.Month - 1, 1)), Api.DateTimeSqlString(new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1))) // whereClause
                , true // groupLines
                , false // groupCustNoVat
                , false // invoiceAccount
                , true // withQZero
                , false // dateAllLines
                , false // noComment
                , 100 // minimum)
                );
            // ret contient toutes les sélections habituellement faites dans la boîte de dialogue     

            int n_fact = MercatorUi.Forms.Gescom.GescomProcedures.Procedures.DeliveriesInvoicing(MercatorUi.Engine.Gescom.Billing.TypeVAEnum.V, ret, true);

            MercatorUi.Dialogs.Stop(string.Format("Facture(s) générée(s) automatiquement : {0}", n_fact));
        }

    }
}

Notez que dans le code, la variable ret reprend les options habituellement sélectionnées dans la boîte de dialogue affichée lors de la facturation automatique dans l'interface de Mercator.

Le dernier paramètre de la méthode DeliveriesInvoicing permet d'activer le mode "silencieux" de la procédure. (silent = true)