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

namespace Gescom
{
    public class Customizer : MercatorUi.ICustomizers.IStringUpdater, MercatorUi.ICustomizers.IDialogLoadCustomizer
    {

        // modifier la requête SQL pour obtenir une colonne supplémentaire
        public string StringUpdate(string StringToModify)
        {
            string id = Api.StrExtract(StringToModify, "<ID>", "</ID>");
            if ((id == "SEL_DOC_DELIVERIES_INVOICING") && StringToModify.Contains("id_cli"))
            {
                string tmp = Api.StrExtract(StringToModify, "tempdb..##pieds_auto_", "')"); // obtenir la partie variable du nom de la table ##pieds_auto
                StringToModify = StringToModify.Replace(string.Format("##pieds_auto_{0}.id,", tmp), string.Format("##pieds_auto_{0}.id,##pieds_auto_{0}.id_cli_liv,", tmp));
            }
            return StringToModify;
        }

        // ajouter une colonne dans l'écran de sélection des BL
        public void DialogLoadCustomize(System.Windows.Forms.Form WindowsForm)
        {
            if (WindowsForm is MercatorUi.Forms.Gescom.GescomDialogs.GescomAutomaticProceduresSelectDocs)
            {
                MercatorUi.Forms.Gescom.GescomDialogs.GescomAutomaticProceduresSelectDocs gescomAutomaticProceduresSelectDocs = (MercatorUi.Forms.Gescom.GescomDialogs.GescomAutomaticProceduresSelectDocs)WindowsForm;
                DataTable dt = (DataTable)gescomAutomaticProceduresSelectDocs.Grid.DataSource;
                if (dt.Columns.Contains("id_cli_liv")) // est-on bien dans le cas "facturation des livraisons clients" ?
                {
                    gescomAutomaticProceduresSelectDocs.Grid.Columns.Add("id_cli_liv", "Id Client Livr.");
                    gescomAutomaticProceduresSelectDocs.Grid.Columns["id_cli_liv"].Width = 75;
                    gescomAutomaticProceduresSelectDocs.Grid.Columns["id_cli_liv"].DataPropertyName = "id_cli_liv";
                }
            }
        }

    }
}