using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BE;
using BL;
using Utilitaria;

using System.Data;
using System.Data.SqlClient;
using Telerik.Web.UI;
using System.Configuration;

using System.Data.OleDb;
using System.IO;

public partial class ConsolidadoUnidNegocio4 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["Usuario"] == null)
        {
            Response.Redirect(Utilitaria.Cls_Enums.CerrarSesion.Salir);
        }

        if (!IsPostBack)
        {
            /////////////////////////// Inicio Parametros Cabecera 
            ViewState["FecDesde"] = Session["Desde"];
            ViewState["FecHasta"] = Session["Hasta"];
            this.lblMoneda.Text = Utilitaria.Cls_Utilitaria.f_MostraNombreMoneda(Convert.ToInt32(Session["MonedaID"].ToString()), 3);
            if (ViewState["FecDesde"] == "" || ViewState["FecDesde"] == null || ViewState["FecHasta"] == "" || ViewState["FecHasta"] == null)
            {
                this.lblDesde.Text = "--/--/----";
                this.lblHasta.Text = "--/--/----";
            }
            else
            {
                this.lblDesde.Text = String.Format("{0:dd/MM/yyyy}", Convert.ToDateTime(ViewState["FecDesde"]));
                this.lblHasta.Text = String.Format("{0:dd/MM/yyyy}", Convert.ToDateTime(ViewState["FecHasta"]));
            }
            /////////////////////////// Fin Parametros Cabecera 

            ViewState["Moneda"] = Convert.ToInt32(Session["MonedaID"].ToString()); //Request.QueryString["MID"];

            ViewState["HotelID"] = Request.QueryString["HTL"].ToString();
            if (ViewState["HotelID"] == "") ViewState["HotelID"] = "0";
            if (ViewState["HotelID"].ToString() != "0")
            {
                BLHoteles oBLHoteles = new BLHoteles();
                List<BEHoteles> loHoteles;
                loHoteles = oBLHoteles.fnSelHotelesDin("Where HotelID=" + ViewState["HotelID"].ToString().Trim(), "");
                lblSucursal.Text = loHoteles[0].NombreHotel;
            }
            else
            {
                lblSucursal.Text = "Todas";
            }
            tk_Grid.Width = Convert.ToInt32(Session["hidWidth"]) - 50;
            ViewState["UnidadNegocioID"] = Request.QueryString["UNG"].ToString();
            if (ViewState["UnidadNegocioID"] == "") ViewState["UnidadNegocioID"] = "0";
            if (ViewState["UnidadNegocioID"].ToString() != "0")
            {
                BLUnidadesDeNegocio oBLUnidadesDeNegocio = new BLUnidadesDeNegocio();
                BEUnidadesDeNegocio oBEUnidadesDeNegocio = new BEUnidadesDeNegocio();
                oBEUnidadesDeNegocio.EstablecimientoID = Convert.ToInt32(Session["EmpresaID"].ToString());
                List<BEUnidadesDeNegocio> loUnidadesDeNegocio;
                loUnidadesDeNegocio = oBLUnidadesDeNegocio.fnSelUnidadesDeNegocioDin(oBEUnidadesDeNegocio,"and UnidadNegocioID=" + ViewState["UnidadNegocioID"].ToString().Trim(), "");
                lblUnidadNegocio.Text = loUnidadesDeNegocio[0].NombreUnidadNegocio;
            }
            else
            {
                lblUnidadNegocio.Text = "Todas";
            }

            ViewState["AreaID"] = Request.QueryString["ARA"].ToString();
            if (ViewState["AreaID"] == "") ViewState["AreaID"] = "0";
            if (ViewState["AreaID"].ToString() != "0")
            {
                BLAreas oBLAreas = new BLAreas();
                List<BEAreas> loAreas;
                loAreas = oBLAreas.fnSelAreasDin("AreaID=" + ViewState["AreaID"].ToString().Trim(), "");
                lblArea.Text = loAreas[0].NombreArea;
            }
            else
            {
                lblArea.Text = "Todas";
            }

        }
    }

    protected void tk_Grid_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
    {
        listar();
    }

    private void listar()
    {
        BLMayorizados oBLMayorizados = new BLMayorizados();
        List<BEMayorizados> loMayorizados;

        loMayorizados = oBLMayorizados.fnSelConsolidadoGastoPorUnidadNegocio3(Convert.ToInt32(Session["txtPeriodo"]), Convert.ToInt32(ViewState["Moneda"]), Convert.ToInt32(ViewState["HotelID"].ToString()), Convert.ToInt32(Session["EmpresaID"].ToString().Trim()));
        tk_Grid.DataSource = loMayorizados;


        oBLMayorizados = null;
        loMayorizados = null;
    }

    String GroupHeaderText;
    String SubGroupHeaderText;
    String CurrUrl;
    protected void tk_Grid_ItemDataBound(object sender, GridItemEventArgs e)
    {
        if (e.Item is GridGroupHeaderItem)
        {
            GridGroupHeaderItem item = (GridGroupHeaderItem)e.Item;
            Label groupCaption = new Label();
            System.Data.DataRowView groupDataRow = (System.Data.DataRowView)e.Item.DataItem;
            groupCaption.Text = item.DataCell.Text.Substring(7, item.DataCell.Text.Length - 7);
            groupCaption.CssClass = "gridtextbold";
            item.DataCell.Controls.Clear();
            item.DataCell.Controls.Add(groupCaption);



            GroupHeaderText = item.DataCell.Text.Substring(item.DataCell.Text.IndexOf(':') + 1);
        }
        else if (e.Item is GridDataItem)
        {
            GridDataItem dataItem = (GridDataItem)e.Item;

            HyperLink linkItem = new HyperLink();
            //CurrUrl = "frmAnalisisPorCuenta.aspx?Mes=99&CTAID=" + dataItem["PlanCuentaID"].Text.Trim() + "&HTL=" + ViewState["HotelID"] + "&ARA=" + ViewState["AreaID"] + "&UNG=" + ViewState["UnidadNegocioID"];
            CurrUrl = "frmAnalisisPorCuenta.aspx?Mes=99&FED=&FEH=&CTAID2=&CTAID=" + dataItem["CodigoPlanCuenta"].Text.Trim() + "&HTL=" + ViewState["HotelID"] + "&ARA=" + ViewState["AreaID"] + "&UNG=" + ViewState["UnidadNegocioID"] + "&ACUM=0&SUD=0";
            linkItem.NavigateUrl = "#";
            linkItem.Text = dataItem["CodigoPlanCuenta"].Text;
            linkItem.CssClass = "gridtext";
            linkItem.Attributes.Add("OnClick", "return AbreVentana('" + CurrUrl + "','AnalisisPorCuenta');");
            dataItem["CodigoPlanCuenta"].Controls.Add(linkItem);

            if (Convert.ToDecimal(dataItem["Apertura"].Text.Trim()) == 0)
                dataItem["Apertura"].Text = "";
            if (Convert.ToDecimal(dataItem["Enero"].Text.Trim()) == 0)
                dataItem["Enero"].Text = "";
            if (Convert.ToDecimal(dataItem["Febrero"].Text.Trim()) == 0)
                dataItem["Febrero"].Text = "";
            if (Convert.ToDecimal(dataItem["Marzo"].Text.Trim()) == 0)
                dataItem["Marzo"].Text = "";
            if (Convert.ToDecimal(dataItem["Abril"].Text.Trim()) == 0)
                dataItem["Abril"].Text = "";
            if (Convert.ToDecimal(dataItem["Mayo"].Text.Trim()) == 0)
                dataItem["Mayo"].Text = "";
            if (Convert.ToDecimal(dataItem["Junio"].Text.Trim()) == 0)
                dataItem["Junio"].Text = "";
            if (Convert.ToDecimal(dataItem["Julio"].Text.Trim()) == 0)
                dataItem["Julio"].Text = "";
            if (Convert.ToDecimal(dataItem["Agosto"].Text.Trim()) == 0)
                dataItem["Agosto"].Text = "";
            if (Convert.ToDecimal(dataItem["Septiembre"].Text.Trim()) == 0)
                dataItem["Septiembre"].Text = "";
            if (Convert.ToDecimal(dataItem["Octubre"].Text.Trim()) == 0)
                dataItem["Octubre"].Text = "";
            if (Convert.ToDecimal(dataItem["Noviembre"].Text.Trim()) == 0)
                dataItem["Noviembre"].Text = "";
            if (Convert.ToDecimal(dataItem["Diciembre"].Text.Trim()) == 0)
                dataItem["Diciembre"].Text = "";
            if (Convert.ToDecimal(dataItem["Cierre"].Text.Trim()) == 0)
                dataItem["Cierre"].Text = "";
        }
        else if (e.Item is GridGroupFooterItem)
        {

            GridGroupFooterItem gridfooteritem = e.Item as GridGroupFooterItem;

            string strtxt = gridfooteritem["BEUnidadesDeNegocio.NombreUnidadNegocio"].Text.Substring(gridfooteritem["BEUnidadesDeNegocio.NombreUnidadNegocio"].Text.IndexOf(':') + 1);


            gridfooteritem["BEEstadoCuenta.NombreestadoCuenta"].Text = "Total " + GroupHeaderText + ":" + strtxt;
            gridfooteritem["BEEstadoCuenta.NombreestadoCuenta"].Style["color"] = "#000000";

            gridfooteritem["BEEstadoCuenta.NombreestadoCuenta"].Style["font-style"] = "italic";
            gridfooteritem["BEEstadoCuenta.NombreestadoCuenta"].Style["text-align"] = "right";

            //HyperLink hg0 = new HyperLink();
            //currUrl = "frmAnexoBalance.aspx?Mes=0&GPID=0&FBID=" + _FormatoBalanceID + "&TCTAID=" + _TipoCuentaID + "&HTL=" + ViewState["HotelID"].ToString().Trim() + "&UNG=" + ViewState["UnidadNegocioID"].ToString().Trim() + "&ARA=" + ViewState["AreaID"].ToString().Trim() + "&MON=" + ViewState["MonedaID"].ToString().Trim() + "&ACUM=" + ViewState["BalanceAcumulado"].ToString().Trim() + "&TFGPID=" + ViewState["TipoFormatoGGPPID"].ToString().Trim();
            //hg0.NavigateUrl = "#";
            //if (double.Parse(gridfooteritem["Apertura"].Text) == 0) gridfooteritem["Apertura"].Text = "";
            //hg0.Text = gridfooteritem["Apertura"].Text.Trim();
            //hg0.Attributes.Add("OnClick", "return AbreVentana('" + currUrl + "','FormatoBalance2');");
            ////gridfooteritem["Apertura"].Style["background-color"] = "#F0EEE9";
            //gridfooteritem["Apertura"].CssClass = "gridtextbold";
            //gridfooteritem["Apertura"].Controls.Add(hg0);


            if (Convert.ToDecimal(gridfooteritem["Apertura"].Text.Trim()) == 0)
                gridfooteritem["Apertura"].Text = "";
            if (Convert.ToDecimal(gridfooteritem["Enero"].Text.Trim()) == 0)
                gridfooteritem["Enero"].Text = "";
            if (Convert.ToDecimal(gridfooteritem["Febrero"].Text.Trim()) == 0)
                gridfooteritem["Febrero"].Text = "";
            if (Convert.ToDecimal(gridfooteritem["Marzo"].Text.Trim()) == 0)
                gridfooteritem["Marzo"].Text = "";
            if (Convert.ToDecimal(gridfooteritem["Abril"].Text.Trim()) == 0)
                gridfooteritem["Abril"].Text = "";
            if (Convert.ToDecimal(gridfooteritem["Mayo"].Text.Trim()) == 0)
                gridfooteritem["Mayo"].Text = "";
            if (Convert.ToDecimal(gridfooteritem["Junio"].Text.Trim()) == 0)
                gridfooteritem["Junio"].Text = "";
            if (Convert.ToDecimal(gridfooteritem["Julio"].Text.Trim()) == 0)
                gridfooteritem["Julio"].Text = "";
            if (Convert.ToDecimal(gridfooteritem["Agosto"].Text.Trim()) == 0)
                gridfooteritem["Agosto"].Text = "";
            if (Convert.ToDecimal(gridfooteritem["Septiembre"].Text.Trim()) == 0)
                gridfooteritem["Septiembre"].Text = "";
            if (Convert.ToDecimal(gridfooteritem["Octubre"].Text.Trim()) == 0)
                gridfooteritem["Octubre"].Text = "";
            if (Convert.ToDecimal(gridfooteritem["Noviembre"].Text.Trim()) == 0)
                gridfooteritem["Noviembre"].Text = "";
            if (Convert.ToDecimal(gridfooteritem["Diciembre"].Text.Trim()) == 0)
                gridfooteritem["Diciembre"].Text = "";
            if (Convert.ToDecimal(gridfooteritem["Cierre"].Text.Trim()) == 0)
                gridfooteritem["Cierre"].Text = "";
        }
        else if (e.Item is GridFooterItem)
        {
            GridFooterItem dataItem = (GridFooterItem)e.Item;
            if (Convert.ToDecimal(dataItem["Apertura"].Text.Trim()) == 0)
                dataItem["Apertura"].Text = "";
            if (Convert.ToDecimal(dataItem["Enero"].Text.Trim()) == 0)
                dataItem["Enero"].Text = "";
            if (Convert.ToDecimal(dataItem["Febrero"].Text.Trim()) == 0)
                dataItem["Febrero"].Text = "";
            if (Convert.ToDecimal(dataItem["Marzo"].Text.Trim()) == 0)
                dataItem["Marzo"].Text = "";
            if (Convert.ToDecimal(dataItem["Abril"].Text.Trim()) == 0)
                dataItem["Abril"].Text = "";
            if (Convert.ToDecimal(dataItem["Mayo"].Text.Trim()) == 0)
                dataItem["Mayo"].Text = "";
            if (Convert.ToDecimal(dataItem["Junio"].Text.Trim()) == 0)
                dataItem["Junio"].Text = "";
            if (Convert.ToDecimal(dataItem["Julio"].Text.Trim()) == 0)
                dataItem["Julio"].Text = "";
            if (Convert.ToDecimal(dataItem["Agosto"].Text.Trim()) == 0)
                dataItem["Agosto"].Text = "";
            if (Convert.ToDecimal(dataItem["Septiembre"].Text.Trim()) == 0)
                dataItem["Septiembre"].Text = "";
            if (Convert.ToDecimal(dataItem["Octubre"].Text.Trim()) == 0)
                dataItem["Octubre"].Text = "";
            if (Convert.ToDecimal(dataItem["Noviembre"].Text.Trim()) == 0)
                dataItem["Noviembre"].Text = "";
            if (Convert.ToDecimal(dataItem["Diciembre"].Text.Trim()) == 0)
                dataItem["Diciembre"].Text = "";
            if (Convert.ToDecimal(dataItem["Cierre"].Text.Trim()) == 0)
                dataItem["Cierre"].Text = "";
        }
    }
    protected void tk_Grid_PreRender(object sender, EventArgs e)
    {

    }
    protected void tk_Grid_ItemCommand(object source, GridCommandEventArgs e)
    {
        tk_Grid.ExportSettings.ExportOnlyData = true;
        tk_Grid.ExportSettings.IgnorePaging = true;
        tk_Grid.ExportSettings.OpenInNewWindow = false;

        switch (e.CommandName)
        {
            case "ExportExcel":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
                {
                    tk_Grid.MasterTableView.ExportToExcel();
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
            case "ExportPDF":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
                {
                    tk_Grid.MasterTableView.ExportToPdf();
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
            case "ExportWord":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
                {
                    tk_Grid.MasterTableView.ExportToWord();
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
            case "ExportCSV":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
                {
                    tk_Grid.MasterTableView.ExportToCSV();
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
            case "Print":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Imprime == 1)
                {
                    Response.Write(Cls_Utilitaria.f_Imprime());
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
        }
        listar();
    }
    protected void showMessage(string strMessage)
    {
        ClientScript.RegisterStartupScript(this.GetType(), "Application", string.Format("alert('{0}');", HttpUtility.HtmlDecode(strMessage)), true);
    }
}
