using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Drawing;
using System.Windows.Forms;
namespace SigGen
{
public class Customizer : MercatorUi.ICustomizers.ISigCreated
{
public void SigCreated(MercatorUi.Sig.Sig Sig)
{
Sig.BeforeSearch += new MercatorUi.Sig.SigClasses.BeforeSearchEventHandler(Sig_BeforeSearch);
}
void Sig_BeforeSearch(object sender, MercatorUi.Sig.SigClasses.BeforeSearchEventArgs e)
{
Form form = MercatorUi.Globals.Main.WonTopForm();
if ((form == null) || !(form is MercatorUi.Forms.Booking.BookingForm)) // u bevindt zich niet in een boekingsscherm
return;
MercatorUi.Forms.Booking.BookingForm bookingForm = (MercatorUi.Forms.Booking.BookingForm)form;
if (bookingForm.BookingEngine == null) // u bevindt zich in een boeking maar wel in configuratiemodus
return;
if (bookingForm.BookingEngine.Type != 2) // u bevindt zich niet in een aankoopboeking
return;
if (e.Key != "0") // de gebruiker heeft geen 0 ingegeven: hij wil dus een gewone zoekopdracht
return;
if (bookingForm.BookingEngine.PIEDS_C["supplier"].ToString().TrimEnd() == "") // de leverancier werd niet geselecteerd
return;
StringBuilder sb = new StringBuilder();
bool premier_fait = false;
// er wordt rekening gehouden met het veld f_comptea van de huidige leverancier
if (bookingForm.BookingEngine.FOU["f_comptea"].ToString() != "")
{
sb.AppendFormat("(g_id='{0}')", bookingForm.BookingEngine.FOU["f_comptea"]);
premier_fait = true;
}
// er wordt rekening gehouden met de velden f_id_gen0 tot f_id_gen9 van de huidige leverancier
for (int i_gen = 0; i_gen <= 9; i_gen++)
{
if (bookingForm.BookingEngine.FOU.Table.Columns.Contains("f_id_gen" + i_gen.ToString()) && (bookingForm.BookingEngine.FOU["f_id_gen" + i_gen.ToString()].ToString() != ""))
{
if (premier_fait)
sb.Append(" or ");
sb.AppendFormat("(g_id='{0}')", bookingForm.BookingEngine.FOU["f_id_gen" + i_gen.ToString()]);
premier_fait = true;
}
}
e.DesiredWhereClause = sb.ToString();
}
}
}