using MercatorApi;
using MercatorUi;
using System.Drawing;
using System.Windows.Forms;

namespace SigStock
{
    public class Customizer : MercatorUi.ICustomizers.ISigCreated
    {

        public void SigCreated(MercatorUi.Sig.Sig Sig)
        {
            Sig.BeforeSearch += Sig_BeforeSearch;
        }

        void Sig_BeforeSearch(object sender, MercatorUi.Sig.SigClasses.BeforeSearchEventArgs e)
        {
            if ((e.FormContext == null) || !(e.FormContext is MercatorUi.Forms.Billing.BillingForm) || (((MercatorUi.Forms.Billing.BillingForm)e.FormContext).BillingEngine.TypeVA != MercatorUi.Engine.Gescom.Billing.TypeVAEnum.V)) // on n'est pas dans un document de vente
                return;
            if (e.OriginalKey.Length != 13) // deze sleutel is zeker geen EAN13
                return;
            if (!e.OriginalKey.StartsWith("1234567")) // de zoeksleutel begint niet met 1234567
                return;
            double cents;
            if (!double.TryParse(e.OriginalKey.Substring(7, 5), out cents)) // de verwachte prijs vanaf teken nr 8 is niet in numeriek formaat
                return;
            e.DesiredWhereClause = "(s_id='MY_S_ID')";
            e.ForcedPricingInfosV = new MercatorUi.Engine.Gescom.BillingEngine.PricingInfosV();
            e.ForcedPricingInfosV.Prix = cents / 100;
        }
    }
}