using GMW_data;
using SteamWare;
using System;
using System.Data;
using System.Web.UI;


namespace GMW.WebUserControls
{
    public partial class mod_dettaglioBlocco : SteamWare.ApplicationUserControl
    {
        #region area codice variabile

        /// <summary>
        /// carico le tabelle
        /// </summary>
        private void caricaTabelle()
        {
        }
        /// <summary>
        /// elenco colonne del datagrid
        /// </summary>
        /// <returns></returns>
        protected DataColumnCollection colonneObj()
        {
            DS_magazzino.V_MagazziniOverviewDataTable tabella = new DS_magazzino.V_MagazziniOverviewDataTable();
            DataColumnCollection colonne = tabella.Columns;
            return colonne;
        }
        /// <summary>
        /// inizializzazione valori di default
        /// </summary>
        /// <param name="e"></param>
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            mod_paretoUdcBlocco1.eh_selValore += new EventHandler(mod_paretoUdcBlocco1_eh_selValore);
            mod_paretoUdcBlocco1.eh_resetSelezione += new EventHandler(mod_paretoUdcBlocco1_eh_resetSelezione);
            mod_paretoPartByFullSpec1.eh_selValore += new EventHandler(mod_paretoPartByFullSpec1_eh_selValore);
            mod_paretoPartByFullSpec1.eh_resetSelezione += new EventHandler(mod_paretoPartByFullSpec1_eh_resetSelezione);
            mod_dettCelleBlocco1.eh_selValore += new EventHandler(mod_dettCelleBlocco1_eh_selValore);
            mod_operazioniUdc1.eh_updated += new EventHandler(mod_operazioniUdc1_eh_updated);
            mod_operazioniUdc1.eh_hidden += new EventHandler(mod_operazioniUdc1_eh_hidden);
            if (!Page.IsPostBack)
            {
                lnkReturn.Text = traduci("TornaStatoMag");
                lnkReturn2.Text = traduci("TornaStatoMagLogico");
                mod_filtroMagLog.ods = odsFiltroMagLog;
                mod_filtroMagLog.filterChekText = "SetFiltroMagLog";
                mod_filtroMagLog.filterUnchekText = "UnSetFiltroMagLog";
                // imposto corretto valore x filtro Mag logico
                if (memLayer.ML.isInSessionObject("CodMagLogico_sel"))
                {
                    mod_filtroMagLog.isChecked = true;
                    mod_filtroMagLog.valore = memLayer.ML.StringSessionObj("CodMagLogico_sel");
                }
                else
                {
                    mod_filtroMagLog.valore = "";
                    mod_filtroMagLog.isChecked = false;
                }
                pnlDetail.Visible = false;
                mod_operazioniUdc1.Visible = false;
                updateControlli();
            }
            if (memLayer.ML.isInSessionObject("IdxCellaMag"))
            {
                mostraOperazioniUdc();
            }
            if (memLayer.ML.isInSessionObject("Particolare_sel"))
            {
                pnlDetail.Visible = true;
                mod_paretoPartByFullSpec1.doUpdate();
            }
        }

        /// <summary>
        /// nascondo dettagli UDC
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void mod_operazioniUdc1_eh_hidden(object sender, EventArgs e)
        {
            memLayer.ML.emptySessionVal("IdxCellaMag");
            Response.Redirect("~/DettaglioBlocco.aspx");
        }
        /// <summary>
        /// eseguito all'evento update modulo operazioni UDC
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void mod_operazioniUdc1_eh_updated(object sender, EventArgs e)
        {
            //mod_dettCelleBlocco1.doUpdate();
            //mod_operazioniUdc1.doUpdate();
            Response.Redirect("~/DettaglioBlocco.aspx");
        }

        /// <summary>
        /// selezionato un valore nel blocco di magazzino
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void mod_dettCelleBlocco1_eh_selValore(object sender, EventArgs e)
        {
            mostraOperazioniUdc();
        }

        private void mostraOperazioniUdc()
        {
            // mostro operazioni
            mod_operazioniUdc1.Visible = true;
            mod_operazioniUdc1.doUpdate();
        }

        void mod_paretoPartByFullSpec1_eh_resetSelezione(object sender, EventArgs e)
        {
            // aggiorno la visualizzazione del magazzino!
            Response.Redirect("~/DettaglioBlocco.aspx");
        }

        void mod_paretoPartByFullSpec1_eh_selValore(object sender, EventArgs e)
        {
            // aggiorno la visualizzazione del magazzino!
            Response.Redirect("~/DettaglioBlocco.aspx");
        }

        void mod_paretoUdcBlocco1_eh_resetSelezione(object sender, EventArgs e)
        {
            // aggiorno la visualizzazione del magazzino!
            Response.Redirect("~/DettaglioBlocco.aspx");
        }
        /// <summary>
        /// aggiorna in caso di selezione valore x un dato Particolare
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void mod_paretoUdcBlocco1_eh_selValore(object sender, EventArgs e)
        {
            // aggiorno la visualizzazione del magazzino!
            Response.Redirect("~/DettaglioBlocco.aspx");
        }

        private void updateControlli()
        {
            // aggiorno i controlli!
            mod_dettCelleBlocco1.doUpdate();
            mod_paretoUdcBlocco1.doUpdate();
        }


        /// <summary>
        /// cambio valore magazzino
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ddlFiltroMag_SelectedIndexChanged(object sender, EventArgs e)
        {
            // salvo in sessione il valore selezionato...
            memLayer.ML.setSessionVal("CodMag_sel", ddlFiltroMag.SelectedValue, false);
            memLayer.ML.emptySessionVal("IdxBlocco_sel");
            //odsFiltroBlock.DataBind();
            ddlFiltroBlock.DataBind();
            // chiamo procedura che aggiorna ods principale
            updateControlli();
        }
        /// <summary>
        /// cambio valore blocco mag
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ddlFiltroBlock_SelectedIndexChanged(object sender, EventArgs e)
        {
            // salvo in sessione il valore selezionato...
            memLayer.ML.setSessionVal("IdxBlocco_sel", ddlFiltroBlock.SelectedValue, false);
            // chiamo procedura che aggiorna ods principale
            updateControlli();
        }
        protected void ddlFiltroMag_DataBound(object sender, EventArgs e)
        {
            // imposto corretto valore x filtro Mag
            if (memLayer.ML.isInSessionObject("CodMag_sel"))
            {
                ddlFiltroMag.SelectedValue = memLayer.ML.StringSessionObj("CodMag_sel");
            }
            else
            {
                memLayer.ML.setSessionVal("CodMag_sel", ddlFiltroMag.SelectedValue, false);
            }
        }
        protected void ddlFiltroBlock_DataBound(object sender, EventArgs e)
        {
            if (memLayer.ML.isInSessionObject("IdxBlocco_sel"))
            {
                ddlFiltroBlock.SelectedValue = memLayer.ML.StringSessionObj("IdxBlocco_sel");
            }
            else
            {
                memLayer.ML.setSessionVal("IdxBlocco_sel", ddlFiltroBlock.SelectedValue, false);
            }
        }

        /// <summary>
        /// ritorno ad elenco magazzini
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void lnkReturn_Click(object sender, EventArgs e)
        {
            svuotaVarSessione();
            Response.Redirect("~/StatoMag.aspx");
        }

        private static void svuotaVarSessione()
        {
            // svuoto dati in memoria...
            memLayer.ML.emptySessionVal("CodMag_sel");
            memLayer.ML.emptySessionVal("CodMagLogico_sel");
            memLayer.ML.emptySessionVal("IdxBlocco_sel");
            memLayer.ML.emptySessionVal("IdxCellaMag");
            memLayer.ML.emptySessionVal("Particolare_sel");
            memLayer.ML.emptySessionVal("DescStato_sel");
            memLayer.ML.emptySessionVal("Esponente_sel");
        }
        /// <summary>
        /// ritorno ad elenco magazzini logico
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void lnkReturn1_Click(object sender, EventArgs e)
        {
            svuotaVarSessione();
            Response.Redirect("~/MagLogico.aspx");
        }
        #endregion
    }
}