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.BeforeInsertAccount += BookingEngine_BeforeInsertAccount;
        }

        public void BookingEngineClosed(MercatorUi.Engine.Cpta.BookingEngine BookingEngine)
        {
            BookingEngine.BeforeInsertAccount -= BookingEngine_BeforeInsertAccount;
        }

        void BookingEngine_BeforeInsertAccount(object sender, MercatorUi.Engine.Cpta.BookingEngine.BeforeInsertAccountEventArgs e)
        {
            if (e.Sig.Module == MercatorUi.Sig._SigEnum.GEN) // We testen of we een algemene rekening inschrijven: dat zal altijd het geval zijn bij een verkoop of een aankoop.
            {
                if (Dialogs.AnswerYesNo(string.Format("De algemene rekening \"{0}\" echt kiezen?", e.GenRecord.G_NOM)))
                    e.LignesCRecord.COMMENTAIR = e.GenRecord.G_NOM;
                else
                    e.CancelInsertAccount = true; // Deze flag laat Mercator weten dat men de selectie van deze alg. rekening weigert.
            }
        }
    }
}