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

namespace Main
{
    public class Customizer : MercatorUi.ICustomizers.IExec
    {

        public void Main(MercatorUi.ICustomizers.ExecAction Action)
        {
            if (Action == MercatorUi.ICustomizers.ExecAction.DossierOpen)
            {
                Globals.Main.BaseFormCreating += new MercatorUi.Main.BaseFormCreatingEventHandler(Main_BaseFormCreating);
            }
            else if (Action == MercatorUi.ICustomizers.ExecAction.DossierClose)
            {
                Globals.Main.BaseFormCreating -= new MercatorUi.Main.BaseFormCreatingEventHandler(Main_BaseFormCreating);
            }
        }

        void Main_BaseFormCreating(object sender, MercatorUi.Main.BaseFormCreatingEventArgs e)
        {
            if (e.Form is MercatorUi.Forms.Accounting.AccountingDialogs.AccountingAskPostIntoAccouting)
            {
                MercatorUi.Forms.Accounting.AccountingDialogs.AccountingAskPostIntoAccouting accountingAskPostIntoAccouting = (MercatorUi.Forms.Accounting.AccountingDialogs.AccountingAskPostIntoAccouting)e.Form;
                accountingAskPostIntoAccouting.FullInitialized += accountingAskPostIntoAccouting_FullInitialized;
            }
        }

        private void accountingAskPostIntoAccouting_FullInitialized(object sender, EventArgs e)
        {
            MercatorUi.Forms.Accounting.AccountingDialogs.AccountingAskPostIntoAccouting accountingAskPostIntoAccouting = (MercatorUi.Forms.Accounting.AccountingDialogs.AccountingAskPostIntoAccouting)sender;
            accountingAskPostIntoAccouting.FullInitialized -= accountingAskPostIntoAccouting_FullInitialized;

            // rendre inaccessible et décocher la case à cocher d'un journal (ici VEN)
            DataRow[] foundRows = accountingAskPostIntoAccouting.DtSequenc.Select("journal='VEN'");
            if (foundRows.Length > 0)
            {
                MercatorUi._BaseClasses.DataRowNode node = (MercatorUi._BaseClasses.DataRowNode)foundRows[0]["node"];
                node.Enabled = false;
                node.Checked = false;
            }

            // décocher le noeud achats
            accountingAskPostIntoAccouting.Tree.Nodes[1].Checked = false; // 1 car il s'agit du second noeud
        }
    }
}