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;

            // Hier het ontoegankelijk maken van de checkbox van een journaal (hier 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;
            }

            // verwijder het vinkje in de aankopen tab
            accountingAskPostIntoAccouting.Tree.Nodes[1].Checked = false; // 1 omdat het zich in de 2de tab bevind
        }
    }
}