using Microsoft.Reporting.WebForms;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Threading;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using BE;
using BL;


public partial class Frm_ReporteEstadoSituacionFinancieraMes_Comparativo : System.Web.UI.Page
{
    List<BEUsuarios> List_OrdenHotel = new List<BEUsuarios>();
    BLUsuarios BL_Orden_Hotel = new BLUsuarios();
    Int32 OrdenHotelHeader = 0;
    protected void Page_Init(object sender, EventArgs e)
    {
        string SUCURSAL = Request.QueryString["Sucursal"].ToString().Trim();
       
        if (SUCURSAL == "Todas")
        {
            SUCURSAL = "Hoteles " + Request.QueryString["Sucursal"].ToString().Trim();
        }
        if (Request.QueryString["FORMATOREPORTE"].ToString() == "2")
        {
            this.ReportViewer1.LocalReport.ReportPath = "Reportes/EstadoSituacionFinancieraMes_Comparativo.rdlc";

        }
        List_OrdenHotel = BL_Orden_Hotel.OrdenHotel(Convert.ToInt32(Session["txtPeriodo"].ToString()), Convert.ToInt32(Session["txtPeriodo"].ToString()), Convert.ToInt32(Request.QueryString["ACUM"]), Request.QueryString["Texto1"].ToString(),Convert.ToInt32(Request.QueryString["HotelID"]),Convert.ToInt32( Session["EmpresaID"]), ref OrdenHotelHeader);
        string Expresado;
        Expresado = (Request.QueryString["Mon"].ToString() == "1") ? "Expresado en Soles" : "Expresado en Dolares";
        List<ReportParameter> list = new List<ReportParameter>();
        ReportParameter param1 = new ReportParameter("Text1", Request.QueryString["Texto1"].ToString());
        ReportParameter param10 = new ReportParameter("Tit", Request.QueryString["Tit"].ToString());
        ReportParameter param9 = new ReportParameter("Mon", Request.QueryString["Mon"].ToString());
        ReportParameter param2 = new ReportParameter("Text2", Request.QueryString["Texto2"].ToString());
        ReportParameter param3 = new ReportParameter("Text3", Request.QueryString["Texto3"].ToString());
        ReportParameter param4 = new ReportParameter("Fecha", String.Format("{0:dd'/'MM'/'yyyy}", DateTime.Now));
        ReportParameter param5 = new ReportParameter("Hora", DateTime.Now.ToLongTimeString());
        ReportParameter param6 = new ReportParameter("Empresa", Establecimientos(Session["EmpresaID"].ToString().Trim()));
        ReportParameter param7 = new ReportParameter("Usuario", Convert.ToString(Session["Usuario"]));
        ReportParameter param8 = new ReportParameter("Expresado", Expresado);
        ReportParameter param11 = new ReportParameter("Sucursal", SUCURSAL);
        ReportParameter param12 = new ReportParameter("Hotel", Request.QueryString["Hotel"].ToString());
        string[] vali = new string[15];
                int op = 0;
                ReportParameter para = new ReportParameter();
                //ordenhotel[0] = "1"; ordenhotel[0] = "2"; ordenhotel[0] = "3"; ordenhotel[0] = "4"; ordenhotel[0] = "6"; ordenhotel[0] = "7"; ordenhotel[0] = "8"; ordenhotel[0] = "9";   //="1";
                for (int x = 0; x < List_OrdenHotel.Count; x++)
                {
                    op = 0;
                    string ind = List_OrdenHotel[x].OrdenHotel.ToString();
                    for (int y = 0; y < vali.Count(); y++)
                    {
                        if (vali[y] != null)
                        {
                            if (ind == vali[y].ToString())
                            {
                                op = 1;
                            }
                        }
                    }
                    if (op == 0)
                    {
                        
                            switch (List_OrdenHotel[x].OrdenHotel.ToString())
                            {
                                case "1":  para = new ReportParameter("Nom1", List_OrdenHotel[x].NombreHotel.ToString()); vali[x] = List_OrdenHotel[x].OrdenHotel.ToString(); break;
                                case "2":  para = new ReportParameter("Nom2", List_OrdenHotel[x].NombreHotel.ToString()); vali[x] = List_OrdenHotel[x].OrdenHotel.ToString(); break;
                                case "3":  para = new ReportParameter("Nom3", List_OrdenHotel[x].NombreHotel.ToString()); vali[x] = List_OrdenHotel[x].OrdenHotel.ToString(); break;
                                case "4":  para = new ReportParameter("Nom4", List_OrdenHotel[x].NombreHotel.ToString()); vali[x] = List_OrdenHotel[x].OrdenHotel.ToString(); break;
                                case "5":  para = new ReportParameter("Nom5", List_OrdenHotel[x].NombreHotel.ToString()); vali[x] = List_OrdenHotel[x].OrdenHotel.ToString(); break;
                                case "6":  para = new ReportParameter("Nom6", List_OrdenHotel[x].NombreHotel.ToString()); vali[x] = List_OrdenHotel[x].OrdenHotel.ToString(); break;
                                case "7":  para = new ReportParameter("Nom7", List_OrdenHotel[x].NombreHotel.ToString()); vali[x] = List_OrdenHotel[x].OrdenHotel.ToString(); break;
                                case "8":  para = new ReportParameter("Nom8", List_OrdenHotel[x].NombreHotel.ToString()); vali[x] = List_OrdenHotel[x].OrdenHotel.ToString(); break;
                               
                            }
                        list.Add(para);
                    }
                    

        }
            list.Add(param1);
            list.Add(param2);
        list.Add(param11);
        list.Add(param12);
        list.Add(param9);
        list.Add(param3);
        list.Add(param4);
        list.Add(param5);
        list.Add(param6);
        list.Add(param10);
        list.Add(param7);
        list.Add(param8);
        this.ReportViewer1.LocalReport.SetParameters(list);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        Thread.CurrentThread.CurrentCulture = new CultureInfo("es-PE");
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("es-PE");
    }

    private String Establecimientos(String EstablecimientoId)
    {
        BEEstablecimientos objet_Establecimientos = new BEEstablecimientos();
        BLEstablecimientos objlg_Establecimientos = new BLEstablecimientos();
        List<BEEstablecimientos> Col_Establecimientos;
        String strRetorno = String.Empty;

        Col_Establecimientos = objlg_Establecimientos.fnSelEstablecimientosDin("where EstablecimientoId=" + EstablecimientoId, "");

        if (Col_Establecimientos.Count > 0)
        {
            strRetorno = Col_Establecimientos[0].NombreEstablecimiento.Trim();
        }

        objet_Establecimientos = null;
        objlg_Establecimientos = null;

        return strRetorno;

    }
}