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

Liaison avec la gestion commerciale : blocage d'une facture fournisseur pour les futures propositions de paiements (module bancaire)

0000002508     -      03/10/2015

Le paramétrage décrit ici permet de marquer, dans la gestion commerciale, une facture fournisseur comme ne devant pas faire partie des propositions de paiements, qui seront générées par le module bancaire de la comptabilité Mercator. Le marquage de la facture fournisseur dans la gestion commerciale doit bien entendu se faire avant la centralisation en comptabilité.

Pour installer ce paramétrage :

  • Ajoutez dans la table PIEDS_A le champ BLOQ_PAIEM de type "bit". Ce champ devra porter la valeur 1 si on veut bloquer le paiement.
  • Ajoutez une case à cocher liée à ce champ dans l'écran de factures fournisseurs de la gestion commerciale
  • Dans la séquence d'achat de la comptabilité, placez ce customizer :
Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using MercatorApi;
using MercatorUi;

namespace Booking
{
    public class Customizer : MercatorUi.ICustomizers.IBookingEngineCreated, MercatorUi.ICustomizers.IBookingEngineClosed
    {

        public void BookingEngineCreated(MercatorUi.Engine.Cpta.BookingEngine BookingEngine)
        {
            BookingEngine.DuringSave += new MercatorUi.Engine.Cpta.BookingEngine.DuringSaveEventHandler(BookingEngine_DuringSave);
        }

        public void BookingEngineClosed(MercatorUi.Engine.Cpta.BookingEngine BookingEngine)
        {
            BookingEngine.DuringSave -= new MercatorUi.Engine.Cpta.BookingEngine.DuringSaveEventHandler(BookingEngine_DuringSave);
        }

        void BookingEngine_DuringSave(object sender, MercatorUi.Engine.Cpta.BookingEngine.DuringSaveEventArgs e)
        {
            e.SqlCommand.CommandText = "declare @id_gescom char(15), @bloq_paiem bit \r\n"
                                     + "select @id_gescom=id_gescom from #lignes_c_tmp where id_fou is not null \r\n"
                                     + "select @bloq_paiem=bloq_paiem from PIEDS_A where (journal=left(@id_gescom,5)) and (piece=right(@id_gescom,10)) \r\n" // @bloq_paiem sera null si le document de la gescom n'existe pas
                                     + "if @bloq_paiem=1 \r\n"
                                     + "    update #lignes_c_tmp set nivpaiem=7 where id_fou is not null";
            if (!Api.SqlExec(e.SqlCommand))
                e.CancelSave = true;
        }
    }
}