using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using MercatorApi;
namespace Gescom
{
public class Customizer : MercatorUi.ICustomizers.IFormLoadCustomizer, MercatorUi.ICustomizers.IFormClosedCustomizer
{
public void FormLoadCustomize(Form WindowsForm)
{
if (WindowsForm is MercatorUi.Forms.Gescom.GescomAllowancesForm)
{
MercatorUi.Forms.Gescom.GescomAllowancesForm gescomAllowancesForm = (MercatorUi.Forms.Gescom.GescomAllowancesForm)WindowsForm;
if (gescomAllowancesForm.TypeVA == MercatorUi.Engine.Gescom.Billing.TypeVAEnum.V) // uniquement pour les remises clients
gescomAllowancesForm.AfterImportItems += new MercatorUi.Forms.Gescom.GescomAllowancesForm.AfterImportItemsEventHandler(gescomAllowancesForm_AfterImportItems);
}
}
public void FormClosedCustomize(Form WindowsForm)
{
if (WindowsForm is MercatorUi.Forms.Gescom.GescomAllowancesForm)
{
MercatorUi.Forms.Gescom.GescomAllowancesForm gescomAllowancesForm = (MercatorUi.Forms.Gescom.GescomAllowancesForm)WindowsForm;
if (gescomAllowancesForm.TypeVA == MercatorUi.Engine.Gescom.Billing.TypeVAEnum.V) // uniquement pour les remises clients
gescomAllowancesForm.AfterImportItems -= new MercatorUi.Forms.Gescom.GescomAllowancesForm.AfterImportItemsEventHandler(gescomAllowancesForm_AfterImportItems);
}
}
void gescomAllowancesForm_AfterImportItems(object sender, MercatorUi.Forms.Gescom.GescomAllowancesForm.AfterImportItemsEventArgs e)
{
MercatorUi.Forms.Gescom.GescomAllowancesForm gescomAllowancesForm = (MercatorUi.Forms.Gescom.GescomAllowancesForm)sender;
double remise = MercatorUi.Dialogs.AskDouble(string.Format("Quelle remise appliquer à ces lignes importées depuis le {0} ?", (e.Mode == MercatorUi.Forms.Gescom.GescomAllowancesForm.ImportItemsMode.FromBarcodeTerm ? "terminal" : "filtre des articles")), 0, "##0.00");
if (remise == double.MinValue) // on a cliqué sur annuler
{
if (MercatorUi.Dialogs.AnswerYesNo("Voulez-vous alors supprimer les lignes importées ?"))
{
foreach (DataRow dr in e.DataRowLignes)
gescomAllowancesForm.Dt.Rows.Remove(dr);
}
}
else
{
remise = Api.Min(remise, 100); // ne pas autoriser une remise > 100
remise = Api.Max(remise, 0); // ne pas autoriser une remise < 0
foreach (DataRow dr in e.DataRowLignes)
dr["remise"] = remise;
}
}
}
}