using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using MercatorExtensions;
// <CompileWithRoslyn />
namespace Main
{
public class Customizer : MercatorUi.ICustomizers.IExec
{
public void Main(MercatorUi.ICustomizers.ExecAction action)
{
if (action == MercatorUi.ICustomizers.ExecAction.DossierOpen)
{
Globals.Main.BaseFormCreating += Main_BaseFormCreating;
}
else if (action == MercatorUi.ICustomizers.ExecAction.DossierClose)
{
Globals.Main.BaseFormCreating -= Main_BaseFormCreating;
}
}
void Main_BaseFormCreating(object sender, MercatorUi.Main.BaseFormCreatingEventArgs e)
{
if (e.Form is MercatorUi.Forms.Booking.BookingMatchingForm bookingMatchingForm) // bevindt u zich in het afpuntingsscherm?
{
bookingMatchingForm.Disposed += BookingMatchingForm_Disposed;
bookingMatchingForm.Shown += BookingMatchingForm_Shown;
bookingMatchingForm.ReqSqlCreated += BookingMatchingForm_ReqSqlCreated;
}
}
void BookingMatchingForm_Disposed(object sender, EventArgs e) // dit event dient enkel om alle events te deregistreren wanneer het venster wordt gesloten
{
MercatorUi.Forms.Booking.BookingMatchingForm bookingMatchingForm = (MercatorUi.Forms.Booking.BookingMatchingForm)sender;
bookingMatchingForm.Disposed -= BookingMatchingForm_Disposed;
bookingMatchingForm.Shown -= BookingMatchingForm_Shown;
bookingMatchingForm.ReqSqlCreated -= BookingMatchingForm_ReqSqlCreated;
}
void BookingMatchingForm_Shown(object sender, EventArgs e) // hier wordt de bijkomende kolom ingevoegd (dit event wordt slechts één keer uitgevoerd)
{
MercatorUi.Forms.Booking.BookingMatchingForm bookingMatchingForm = (MercatorUi.Forms.Booking.BookingMatchingForm)sender;
bookingMatchingForm.Grid.Columns.Add("red_gen_pc", "% Gescom");
bookingMatchingForm.Grid.Columns["red_gen_pc"].Width = 60;
bookingMatchingForm.Grid.Columns["red_gen_pc"].DataPropertyName = "red_gen_pc";
bookingMatchingForm.Grid.Columns["red_gen_pc"].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
bookingMatchingForm.Grid.Columns["red_gen_pc"].DefaultCellStyle.Format = "##0.00";
}
void BookingMatchingForm_ReqSqlCreated(object sender, MercatorUi.Forms.Booking.BookingMatchingForm.ReqSqlCreatedEventArgs e)
{
MercatorUi.Forms.Booking.BookingMatchingForm bookingMatchingForm = (MercatorUi.Forms.Booking.BookingMatchingForm)sender;
if (bookingMatchingForm.Sig.Module == MercatorUi.Sig._SigEnum.CLI) // de opdracht wordt enkel gewijzigd indien er klanten worden afgepunt
{
e.ReqSql.Replace(",cast(0 as bit) as auto_sel", ",cast(0 as bit) as auto_sel,pieds_v.red_gen_pc") // het gewenste veld in de tabel pieds_v toevoegen
.Replace("inner join pieds_c", "left join pieds_v on (lignes_c.id_gescom=pieds_v.journal+str(pieds_v.piece,10)) inner join pieds_c"); // de verbinding in de tabel pieds_v toevoegen
bookingMatchingForm.Grid.Columns["red_gen_pc"].Visible = true;
}
else
{
e.ReqSql.Replace(",cast(0 as bit) as auto_sel", ",cast(0 as bit) as auto_sel,0 as red_gen_pc"); // toch het veld toevoegen aangezien het rooster dit verwacht
bookingMatchingForm.Grid.Columns["red_gen_pc"].Visible = false;
}
}
}
}