Trigger: automatische facturering zonder dialoogvenster

0000002257     -      10-09-2025

De hier beschreven module laat ons toe om automatisch te factureren zonder tussenkomst van een dialoogvenster. Dit geeft ons de kans om de stored procedure te gebruiken zonder tussenkomst van de gebruiker. Indien nodig, kan deze procedure geïnitialiseerd worden door een externe applicatie die Mercator instantieert.

Hetzelfde principe kan worden toegepast op automatische facturering aan leveranciers, om leveranciers te filteren.

Een soortgelijke werkwijze kan toegepast worden op alle automatische groeperingen:

  • facturering van leveranciersleveringen
  • levering bestellingen
  • bestelling van voorbereide bestellingen
  • generatie abonnementen
  • onderhoud abonnementen
  • generatie tegenmerken

Dit proces kan met voordeel worden geïmplementeerd door taken in de consolemodus uit te voeren.

De code gaat als volgt:

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("Sequentie leveringen niet gevonden!");
                return;
            }
            if (ds.Tables[1].Rows.Count == 0)
            {
                MercatorUi.Dialogs.Stop("Sequentie facturen niet gevonden!");
                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 bevat alle selecties die normaal gesproken in het dialoogvenster worden gemaakt     

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

            MercatorUi.Dialogs.Stop(string.Format("Automatisch gegenereerde facturen: {0}", n_fact));
        }

    }
}

Merk het volgende op in de code: De variable ret bevat de meest gekozen opties uit het dialoogvenster van automatische facturatie in de interface van Mercator.

De laatste parameter van de methode DeliveriesInvoicing laten ons toe om stille-modus te activeren van de procedure. (Silent=true)

Zie ook: Uitvoering van taken in console modus



Functionele cookies: Cookies die nodig zijn voor het gebruik van de website en voorkeurscookies. Ze bevatten geen persoonsgegevens. (Meer informatie)

Analytische cookies: Verzamelen van statistieken met betrekking tot het gedrag van internetgebruikers. (Meer informatie)

Marketingcookies: Om bezoekers op verschillende websites te volgen voor advertentiedoeleinden. (Meer informatie)