using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;

namespace Booking
{
    public class Customizer : MercatorUi.ICustomizers.IBookingEngineCreated, MercatorUi.ICustomizers.IBookingEngineClosed
    {

        public void BookingEngineCreated(MercatorUi.Engine.Cpta.BookingEngine bookingEngine)
        {
            bookingEngine.AfterUpdateAmounts += new EventHandler(BookingEngine_AfterUpdateAmounts);
        }

        public void BookingEngineClosed(MercatorUi.Engine.Cpta.BookingEngine bookingEngine)
        {
            bookingEngine.AfterUpdateAmounts -= new EventHandler(BookingEngine_AfterUpdateAmounts);
        }

        void BookingEngine_AfterUpdateAmounts(object sender, EventArgs e)
        {
            MercatorUi.Engine.Cpta.BookingEngine bookingEngine = (MercatorUi.Engine.Cpta.BookingEngine)sender;
            int n_dec = Convert.ToInt32(bookingEngine.PIEDS_C["n_dec"]);
            double cumul = Api.ConvertToDouble(bookingEngine.PIEDS_C["tot_bas_dv"]); // beginsaldo
            foreach (DataRow dr in bookingEngine.LIGNES_C.Rows)
            {
                cumul += Api.ConvertToDouble(dr["tot_dv"]);
                Api.SmartReplace(dr, "cumul", cumul, n_dec);
            }
        }
    }
}