using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorExtensions;
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.Context == MercatorUi.Engine.Cpta.BookingEngine.ContextEnum.BankFin)
            {
                bookingEngine.CommandForFinalTransaction = new System.Data.SqlClient.SqlCommand(@"
                    update PIEDS_V set mycolumn='...' from LIGNES_C
                        where (lignes_c.num_ex=@num_ex) and (lignes_c.journal=@journal) and (lignes_c.piece=@piece)
                        and (lignes_c.id_gescom<>'') and (left(lignes_c.commentair,3)='+++') and (pieds_v.vcs=lignes_c.commentair)
                        and (pieds_v.journal=left(lignes_c.id_gescom,5)) and (pieds_v.piece=right(lignes_c.id_gescom,10))"
.UnIndent(5));
            }
        }
    }
}