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)
{
MercatorUi.Engine.Cpta.BookingEngine bookingEngine = (MercatorUi.Engine.Cpta.BookingEngine)sender;
if ((bookingEngine.Context != MercatorUi.Engine.Cpta.BookingEngine.ContextEnum.PostIntoAccounting)
|| (Convert.ToDouble(bookingEngine.BillingPiedWhenPosting["Escpte_pc"]) == 0))
return;
e.SqlCommand.CommandText = "declare @g_id_ana1 char(10) \r\n"
+ "select @g_id_ana1=g_id_ana1 from gen where g_id=@CPTA_DP1_C \r\n"
+ "if isnull(@g_id_ana1,'')<>'' \r\n"
+ "begin \r\n"
+ " insert into #lignes_c_ana_tmp (num_ex,journal,piece,dl_id,dl_id2,num_plan,recno,id_ana,tot_dv,tot,date,type_ligne,dl_id_eq,commentair) \r\n"
+ " select num_ex,journal,piece,dl_id,right(newid(),10),1,1,@g_id_ana1,tot_dv,tot,date,0,'',commentair from #lignes_c_tmp where id_gen=@CPTA_DP1_C \r\n"
+ "end";
e.SqlCommand.Parameters.AddWithValue("@CPTA_DP1_C", MercatorUi.Globals.Params["CPTA_DP1_C"]).SqlDbType = SqlDbType.Char;
if (!Api.SqlExec(e.SqlCommand))
e.CancelSave = true;
}
}
}