using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Linq;
using System.Windows.Forms;
using MercatorApi;
using MercatorUi;
using MercatorExtensions;
using MercatorDatabase;

namespace Billing
{
    public class Customizer : MercatorUi.ICustomizers.IFormLoadCustomizer, MercatorUi.ICustomizers.IFormClosedCustomizer
    {
        public void FormLoadCustomize(Form form)
        {
            MercatorUi.Forms.Billing.BillingForm billingForm = (MercatorUi.Forms.Billing.BillingForm)form;
            billingForm.FormClosable = false;
            billingForm.FormClosing += BillingForm_FormClosing;
            MercatorUi.BoutonsPro.BleuPro bleuPro1 = (MercatorUi.BoutonsPro.BleuPro)billingForm.Controls["BleuPro1"];
            foreach (MercatorUi.BoutonsPro.ButtonXPro btn in bleuPro1.Controls.OfType<MercatorUi.BoutonsPro.ButtonXPro>())
            {
                if (btn.Name == "valider")
                {
                    foreach (MercatorUi.BoutonsPro.ButtonItemPro c1 in btn.SubItems)
                        if (c1.Name == "saveonly")
                            c1.Enabled = false;
                }
                else if ((btn.Name == "annuler") && (Globals.CurrentUserRecord.NIVEAU < 90))
                    btn.Enabled = false;
            }
        }

        public void FormClosedCustomize(Form form)
        {
            form.FormClosing -= BillingForm_FormClosing;
        }

        void BillingForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            MercatorUi.Forms.Billing.BillingForm billingForm = (MercatorUi.Forms.Billing.BillingForm)sender;
            billingForm.FormClosable = (billingForm.BillingEngine.LIGNES.Rows.Count == 0) || billingForm.Saved;
        }
    }
}