using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using MercatorApi;
using MercatorUi;
using System.Linq;
using MercatorExtensions;
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;
// We controleren of minstens één lijn de rekening 499000 en een bedrag verschillend van nul omvat.
if (bookingEngine.LignesCRecords.Where(l => (l.COMPTE == "499000") && (l.TOT_DV.CompareTo(0d, bookingEngine.PiedsCRecord.N_DEC) != 0)).Count() == 0)
{
Dialogs.Stop("Cette écriture ne contient aucune imputation sur le compte 499000 !");
e.CancelSave = true; // Deze flag laat Mercator weten dat men de opslag van het document weigert.
}
}
}
}