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;
using System.Web.UI.WebControls;

public partial class ConsolidadoGastosPorArea : 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";
            }

            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;
        Int32 _AreaID = Convert.ToInt32(ViewState["AreaID"].ToString());
        loMayorizados = oBLMayorizados.fnSelConsolidadoGastoPorArea(Convert.ToInt32(Session["txtPeriodo"]), Convert.ToInt32(ViewState["Moneda"]), Convert.ToInt32(ViewState["HotelID"].ToString()), Convert.ToInt32(Session["EmpresaID"].ToString().Trim()), _AreaID);
        tk_Grid.DataSource = loMayorizados;


        oBLMayorizados = null;
        loMayorizados = null;
    }

    protected void tk_Grid_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
    {
        if (e.Item is GridDataItem)
        {
            GridDataItem item = (GridDataItem)e.Item;
            if (Convert.ToDecimal(item["Apertura"].Text) == 0) item["Apertura"].Text = "";
            if (Convert.ToDecimal(item["Enero"].Text) == 0) item["Enero"].Text = "";
            if (Convert.ToDecimal(item["Febrero"].Text) == 0) item["Febrero"].Text = "";
            if (Convert.ToDecimal(item["Marzo"].Text) == 0) item["Marzo"].Text = "";
            if (Convert.ToDecimal(item["Abril"].Text) == 0) item["Abril"].Text = "";
            if (Convert.ToDecimal(item["Mayo"].Text) == 0) item["Mayo"].Text = "";
            if (Convert.ToDecimal(item["Junio"].Text) == 0) item["Junio"].Text = "";
            if (Convert.ToDecimal(item["Julio"].Text) == 0) item["Julio"].Text = "";
            if (Convert.ToDecimal(item["Agosto"].Text) == 0) item["Agosto"].Text = "";
            if (Convert.ToDecimal(item["Septiembre"].Text) == 0) item["Septiembre"].Text = "";
            if (Convert.ToDecimal(item["Octubre"].Text) == 0) item["Octubre"].Text = "";
            if (Convert.ToDecimal(item["Noviembre"].Text) == 0) item["Noviembre"].Text = "";
            if (Convert.ToDecimal(item["Diciembre"].Text) == 0) item["Diciembre"].Text = "";
            if (Convert.ToDecimal(item["Cierre"].Text) == 0) item["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);
    }
}
