// <CompileWithRoslyn />

namespace Billing
{
    public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
    {

        public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
        {
            billingEngine.BeforeApplyPricingInfo += BillingEngine_BeforeApplyPricingInfo;
            billingEngine.AfterApplyPricingInfo += BillingEngine_AfterApplyPricingInfo;
        }

        public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
        {
            billingEngine.BeforeApplyPricingInfo -= BillingEngine_BeforeApplyPricingInfo;
            billingEngine.AfterApplyPricingInfo -= BillingEngine_AfterApplyPricingInfo;
        }

        private (string dl_id, double remise2) tupple;

        private void BillingEngine_BeforeApplyPricingInfo(object sender, MercatorUi.Engine.Gescom.BillingEngine.BeforeApplyPricingInfoEventArgs e)
        {
            if (e.FromChangeQ)
                tupple = (e.LignesVRecord.DL_ID, e.LignesVRecord.REMISE2);
        }

        private void BillingEngine_AfterApplyPricingInfo(object sender, MercatorUi.Engine.Gescom.BillingEngine.AfterApplyPricingInfoEventArgs e)
        {
            if (e.FromChangeQ && (tupple.dl_id == e.LignesVRecord.DL_ID))
                e.LignesVRecord.REMISE2 = tupple.remise2;
        }
    }
}