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

Lors de validation d'une écriture comptable (vente ou achat), recalculer la date d'échéance

0000002145     -      26/08/2017

Cette programmation montre comment, lors de la validation d'une écriture comptable de vente ou d'achat, forcer le recalcul de la date d'échéance, en prenant en compte la date de l'écriture et le delai de paiement indiqué dans la fiche du client/fournisseur.

Le code est construit sur base d'un customizer de séquence de la comptabilité. Il implémente ces 2 interfaces :

et exploite l'évènement BeforeSave du BookingEngine.

Zoom
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.BeforeSave += BookingEngine_BeforeSave;
        }

        public void BookingEngineClosed(MercatorUi.Engine.Cpta.BookingEngine BookingEngine)
        {
            BookingEngine.BeforeSave -= BookingEngine_BeforeSave;
        }

        void BookingEngine_BeforeSave(object sender, MercatorUi.Engine.Cpta.BookingEngine.BeforeSaveEventArgs e)
        {
            MercatorUi.Engine.Cpta.BookingEngine bookingEngine = (MercatorUi.Engine.Cpta.BookingEngine)sender;
           if ((bookingEngine.Type == 1) && (bookingEngine.CliRecord != null))
                bookingEngine.PiedsCRecord.ECHEANCE = Api.AddDate(bookingEngine.PiedsCRecord.DATE, bookingEngine.CliRecord.C_PAIEM);
            else if ((bookingEngine.Type == 2) && (bookingEngine.FouRecord != null))
                bookingEngine.PiedsCRecord.ECHEANCE = Api.AddDate(bookingEngine.PiedsCRecord.DATE, bookingEngine.FouRecord.F_PAIEM);
        }
    }
}