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 ConsolidadoSaldosPorCuenta : System.Web.UI.Page
{
    String _Periodo;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["Usuario"] == null)
        {
            Response.Redirect(Utilitaria.Cls_Enums.CerrarSesion.Salir);
        }

        if (!IsPostBack)
        {
            ViewState["Click"] = "1";
            Cls_Propiedades.TempConsolidadoSaldosPorCuenta.Clear();
            ViewState["MonedaID"] = Session["MonedaID"];// Request.QueryString["MID"];
            ViewState["Mes"] = "99";

            /////////////////////////// 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["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";
        }
        _Periodo = Request.QueryString["ANIO"];

        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";
        }
    }

    private void listar()
    {
        if (ViewState["Click"] == "1")
        {
            BLMayorizados oBLMayorizados = new BLMayorizados();
            Cls_Propiedades.TempConsolidadoSaldosPorCuenta = oBLMayorizados.fnSelConsolidadoSaldosPorCuenta(Convert.ToInt32(Session["txtPeriodo"]), Convert.ToInt32(ViewState["MonedaID"]), Convert.ToInt32(ViewState["HotelID"]), Convert.ToInt32(Session["EmpresaID"].ToString().Trim()));

            oBLMayorizados = null;
        }
        ViewState["Click"] = "";
        tk_Grid.DataSource = Cls_Propiedades.TempConsolidadoSaldosPorCuenta;
    }
    protected void tk_Grid_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
    {
        listar();
    }

    String CurrUrl;
    String headertext;
    protected void tk_Grid_ItemDataBound(object sender, GridItemEventArgs e)
    {
        if (e.Item is GridGroupHeaderItem)
        {
            GridGroupHeaderItem item = (GridGroupHeaderItem)e.Item;
            headertext = item.DataCell.Text.Substring(item.DataCell.Text.IndexOf(':') + 1);

        }
        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?Periodo=" + _Periodo + "&Mes=" + ViewState["Mes"].ToString().Trim() + "&FED=&FEH=&CTAID2=&CTAID=" + dataItem["CodigoPlanCuenta"].Text.Trim() + "&HTL=" + ViewState["HotelID"] + "&ARA=" + ViewState["AreaID"] + "&UNG=" + ViewState["UnidadNegocioID"] + "&ACUM=0&SUD=0" + "&MON="+ Session["MonedaID"].ToString();
            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) == 0) dataItem["Apertura"].Text = "";
           if (Convert.ToDecimal(dataItem["Cierre"].Text) == 0) dataItem["Cierre"].Text = "";
           if (Convert.ToDecimal(dataItem["Enero"].Text) == 0) dataItem["Enero"].Text = "";
           if (Convert.ToDecimal(dataItem["Febrero"].Text) == 0) dataItem["Febrero"].Text = "";
           if (Convert.ToDecimal(dataItem["Marzo"].Text) == 0) dataItem["Marzo"].Text = "";
           if (Convert.ToDecimal(dataItem["Abril"].Text) == 0) dataItem["Abril"].Text = "";
           if (Convert.ToDecimal(dataItem["Mayo"].Text) == 0) dataItem["Mayo"].Text = "";
           if (Convert.ToDecimal(dataItem["Junio"].Text) == 0) dataItem["Junio"].Text = "";
           if (Convert.ToDecimal(dataItem["Julio"].Text) == 0) dataItem["Julio"].Text = "";
           if (Convert.ToDecimal(dataItem["Agosto"].Text) == 0) dataItem["Agosto"].Text = "";
           if (Convert.ToDecimal(dataItem["Septiembre"].Text) == 0) dataItem["Septiembre"].Text = "";
           if (Convert.ToDecimal(dataItem["Octubre"].Text) == 0) dataItem["Octubre"].Text = "";
           if (Convert.ToDecimal(dataItem["Noviembre"].Text) == 0) dataItem["Noviembre"].Text = "";
           if (Convert.ToDecimal(dataItem["Diciembre"].Text) == 0) dataItem["Diciembre"].Text = "";

        }
        if (e.Item is GridGroupFooterItem)
        {
            GridGroupFooterItem groupfooterItem = (GridGroupFooterItem)e.Item;

            //groupfooterItem["NombrePlanCuenta"].Text = "Subtotal Para la Cuenta ";
            //groupfooterItem["NombrePlanCuenta"].CssClass = "Grid_RightAlign";

            if (Convert.ToDecimal(groupfooterItem["Apertura"].Text) == 0) groupfooterItem["Apertura"].Text = "";
            if (Convert.ToDecimal(groupfooterItem["Cierre"].Text) == 0) groupfooterItem["Cierre"].Text = "";
            if (Convert.ToDecimal(groupfooterItem["Enero"].Text) == 0) groupfooterItem["Enero"].Text = "";
            if (Convert.ToDecimal(groupfooterItem["Febrero"].Text) == 0) groupfooterItem["Febrero"].Text = "";
            if (Convert.ToDecimal(groupfooterItem["Marzo"].Text) == 0) groupfooterItem["Marzo"].Text = "";
            if (Convert.ToDecimal(groupfooterItem["Abril"].Text) == 0) groupfooterItem["Abril"].Text = "";
            if (Convert.ToDecimal(groupfooterItem["Mayo"].Text) == 0) groupfooterItem["Mayo"].Text = "";
            if (Convert.ToDecimal(groupfooterItem["Junio"].Text) == 0) groupfooterItem["Junio"].Text = "";
            if (Convert.ToDecimal(groupfooterItem["Julio"].Text) == 0) groupfooterItem["Julio"].Text = "";
            if (Convert.ToDecimal(groupfooterItem["Agosto"].Text) == 0) groupfooterItem["Agosto"].Text = "";
            if (Convert.ToDecimal(groupfooterItem["Septiembre"].Text) == 0) groupfooterItem["Septiembre"].Text = "";
            if (Convert.ToDecimal(groupfooterItem["Octubre"].Text) == 0) groupfooterItem["Octubre"].Text = "";
            if (Convert.ToDecimal(groupfooterItem["Noviembre"].Text) == 0) groupfooterItem["Noviembre"].Text = "";
            if (Convert.ToDecimal(groupfooterItem["Diciembre"].Text) == 0) groupfooterItem["Diciembre"].Text = "";

            groupfooterItem["Apertura"].CssClass = "arial10bold";
            groupfooterItem["Enero"].CssClass = "arial10bold";
            groupfooterItem["Febrero"].CssClass = "arial10bold";
            groupfooterItem["Marzo"].CssClass = "arial10bold";
            groupfooterItem["Abril"].CssClass = "arial10bold";
            groupfooterItem["Mayo"].CssClass = "arial10bold";

            groupfooterItem["Junio"].CssClass = "arial10bold";
            groupfooterItem["Julio"].CssClass = "arial10bold";
            groupfooterItem["Agosto"].CssClass = "arial10bold";
            groupfooterItem["Septiembre"].CssClass = "arial10bold";
            groupfooterItem["Octubre"].CssClass = "arial10bold";
            groupfooterItem["Noviembre"].CssClass = "arial10bold";
            groupfooterItem["Diciembre"].CssClass = "arial10bold";
            groupfooterItem["Cierre"].CssClass = "arial10bold";

            string strtxt = groupfooterItem["Cuenta"].Text.Substring(groupfooterItem["Cuenta"].Text.IndexOf(':') + 1);
            if (headertext != null)
                groupfooterItem["NombrePlanCuenta"].Text = "SubTotal Clase " + headertext + ":" + strtxt;
            groupfooterItem["NombrePlanCuenta"].Style["color"] = "#00156E";
            groupfooterItem["NombrePlanCuenta"].Style["font-weight"] = "bold";
            groupfooterItem["NombrePlanCuenta"].Style["font-style"] = "italic";
            groupfooterItem["NombrePlanCuenta"].Style["text-align"] = "right";
        }

    }
    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);
    }

}
