Example #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        long             id = long.Parse(Request.QueryString["Id"].ToString());
        EntidadesConosud dc = new EntidadesConosud();

        Entidades.CabeceraHojasDeRuta cabecera = (from C in dc.CabeceraHojasDeRuta
                                                  .Include("HojasDeRuta")
                                                  where C.IdCabeceraHojasDeRuta == id
                                                  select C).First <Entidades.CabeceraHojasDeRuta>();

        InformexPeriodo rep = new InformexPeriodo();

        rep.InitReport(cabecera, false);
        this.ReportViewer1.Report = rep;
        (ReportViewer1.FindControl("ReportToolbar").FindControl("ExportGr").Controls[0].Controls[0] as DropDownList).ClearSelection();
        (ReportViewer1.FindControl("ReportToolbar").FindControl("ExportGr").Controls[0].Controls[0] as DropDownList).Items.FindByText("Excel").Selected = true;
    }
Example #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        long             id          = long.Parse(Request.QueryString["Id"].ToString());
        bool             EsHistorico = bool.Parse(Request.QueryString["EsHistorico"].ToString());
        EntidadesConosud dc          = new EntidadesConosud();

        Entidades.CabeceraHojasDeRuta cabecera = (from C in dc.CabeceraHojasDeRuta
                                                  .Include("ContratoEmpresas.Contrato")
                                                  .Include("ContratoEmpresas")
                                                  .Include("ContratoEmpresas.Empresa")
                                                  where C.IdCabeceraHojasDeRuta == id
                                                  select C).First <Entidades.CabeceraHojasDeRuta>();



        ///// Cabecera hoja de ruta donde no tiene documentacion
        ///// presentada para ninguno de sus items (Contratista y sub contratista)
        //List<Entidades.CabeceraHojasDeRuta> CabSinDocumentacion = (from C in dc.CabeceraHojasDeRuta
        //                                       .Include("ContratoEmpresas.Contrato")
        //                                       .Include("ContratoEmpresas")
        //                                       .Include("ContratoEmpresas.Empresa")
        //                                                   where C.ContratoEmpresas.Contrato.IdContrato == cabecera.ContratoEmpresas.Contrato.IdContrato
        //                                                   && C.Periodo <= cabecera.Periodo
        //                                                   && C.FechaAprobacion == null
        //                                                   && C.HojasDeRuta.Count(h => h.DocFechaEntrega != null) == 0
        //                                                   select C).ToList<Entidades.CabeceraHojasDeRuta>();


        ///// Cabecera hoja de ruta donde TIENE documentacion
        ///// presentada para alguno de sus items pero aun no se han auditado (Contratista y sub contratista)
        ///// es decir no hay items aprobados ni comentarios de los mismos.
        //List<Entidades.CabeceraHojasDeRuta> CabSinAuditoria = (from C in dc.CabeceraHojasDeRuta
        //                                       .Include("ContratoEmpresas.Contrato")
        //                                       .Include("ContratoEmpresas")
        //                                       .Include("ContratoEmpresas.Empresa")
        //                                                           where C.ContratoEmpresas.Contrato.IdContrato == cabecera.ContratoEmpresas.Contrato.IdContrato
        //                                                           && C.Periodo <= cabecera.Periodo
        //                                                           && C.FechaAprobacion == null
        //                                                           && C.HojasDeRuta.Count(h => h.DocFechaEntrega != null) > 0
        //                                                           && C.HojasDeRuta.Count(h => h.HojaFechaAprobacion != null) == 0
        //                                                           && C.HojasDeRuta.Count(h => h.HojaComentario != "") == 0
        //                                                           select C).ToList<Entidades.CabeceraHojasDeRuta>();


        List <Entidades.HojasDeRuta> HRConPendientes = new List <Entidades.HojasDeRuta>();

        if (EsHistorico)
        {
            /// items de las cabeceras que tiene ingresado
            /// algún comentario y no estan aprobadas (Contratista y sub contratista)
            /// Para todos los periodos


            if (Session["TipoUsuario"] != null && Session["TipoUsuario"] == "Cliente")
            {
                /// Para este tipo de cliente solo se muestra el historico de las
                /// hojas de ruta que estan publicadas, ademas de las otras condiciones.

                HRConPendientes = (from I in dc.HojasDeRuta
                                   .Include("CabeceraHojasDeRuta.ContratoEmpresas.Contrato")
                                   .Include("CabeceraHojasDeRuta.ContratoEmpresas")
                                   .Include("CabeceraHojasDeRuta")
                                   .Include("CabeceraHojasDeRuta.ContratoEmpresas.Empresa")
                                   .Include("Plantilla")
                                   where I.CabeceraHojasDeRuta.ContratoEmpresas.Contrato.IdContrato == cabecera.ContratoEmpresas.Contrato.IdContrato &&
                                   I.CabeceraHojasDeRuta.Periodo <= cabecera.Periodo &&
                                   I.CabeceraHojasDeRuta.FechaAprobacion == null &&
                                   I.HojaComentario != "" &&
                                   I.CabeceraHojasDeRuta.Publicar == true
                                   orderby I.CabeceraHojasDeRuta.Periodo descending, I.Plantilla.Codigo
                                   select I).ToList <Entidades.HojasDeRuta>();
            }
            else
            {
                HRConPendientes = (from I in dc.HojasDeRuta
                                   .Include("CabeceraHojasDeRuta.ContratoEmpresas.Contrato")
                                   .Include("CabeceraHojasDeRuta.ContratoEmpresas")
                                   .Include("CabeceraHojasDeRuta")
                                   .Include("CabeceraHojasDeRuta.ContratoEmpresas.Empresa")
                                   .Include("Plantilla")
                                   where I.CabeceraHojasDeRuta.ContratoEmpresas.Contrato.IdContrato == cabecera.ContratoEmpresas.Contrato.IdContrato &&
                                   I.CabeceraHojasDeRuta.Periodo <= cabecera.Periodo &&
                                   I.CabeceraHojasDeRuta.FechaAprobacion == null &&
                                   I.HojaComentario != ""
                                   orderby I.CabeceraHojasDeRuta.Periodo descending, I.Plantilla.Codigo
                                   select I).ToList <Entidades.HojasDeRuta>();
            }
        }
        else
        {
            /// items de las cabeceras que tiene ingresado
            /// algún comentario y no estan aprobadas (Contratista y sub contratista)
            /// Solo para el periodo seleccionado
            HRConPendientes = (from I in dc.HojasDeRuta
                               .Include("CabeceraHojasDeRuta.ContratoEmpresas.Contrato")
                               .Include("CabeceraHojasDeRuta.ContratoEmpresas")
                               .Include("CabeceraHojasDeRuta")
                               .Include("CabeceraHojasDeRuta.ContratoEmpresas.Empresa")
                               .Include("Plantilla")
                               where I.CabeceraHojasDeRuta.ContratoEmpresas.Contrato.IdContrato == cabecera.ContratoEmpresas.Contrato.IdContrato &&
                               I.CabeceraHojasDeRuta.Periodo.Month == cabecera.Periodo.Month && I.CabeceraHojasDeRuta.Periodo.Year == cabecera.Periodo.Year &&
                               I.CabeceraHojasDeRuta.FechaAprobacion == null &&
                               I.HojaComentario != ""
                               orderby I.CabeceraHojasDeRuta.Periodo descending, I.Plantilla.Codigo
                               select I).ToList <Entidades.HojasDeRuta>();
        }

        List <InformexPeriodoTemp> Resultado = new List <InformexPeriodoTemp>();

        foreach (Entidades.HojasDeRuta hoja in HRConPendientes)
        {
            Entidades.InformexPeriodoTemp I = new Entidades.InformexPeriodoTemp();
            I.RazonSocial   = hoja.CabeceraHojasDeRuta.ContratoEmpresas.Empresa.RazonSocial;
            I.Periodo       = hoja.CabeceraHojasDeRuta.Periodo;
            I.PeriodoDesc   = Capitalize(string.Format("{0:Y}", hoja.CabeceraHojasDeRuta.Periodo));
            I.EsContratista = hoja.CabeceraHojasDeRuta.ContratoEmpresas.EsContratista.Value;
            I.Comentario    = hoja.HojaComentario;
            I.Tipo          = "Hojas Con Pendientes";

            I.OrdenDetalle = int.Parse(hoja.CabeceraHojasDeRuta.Periodo.Year.ToString() + string.Format("{0:00}", hoja.CabeceraHojasDeRuta.Periodo.Month));
            if (I.EsContratista)
            {
                I.OrdenEmpresas = 0;
            }
            else
            {
                I.OrdenEmpresas = 1;
            }

            Resultado.Add(I);
        }

        /// Solo vamos a mostrar las hojas que tienen pendientes (21/10/2010)
        //foreach (Entidades.CabeceraHojasDeRuta itemC in CabSinDocumentacion)
        //{
        //    Entidades.InformexPeriodoTemp I = new Entidades.InformexPeriodoTemp();
        //    I.RazonSocial = itemC.ContratoEmpresas.Empresa.RazonSocial;
        //    I.Periodo = itemC.Periodo;
        //    I.PeriodoDesc = string.Format("{0:Y}", itemC.Periodo);
        //    I.EsContratista = itemC.ContratoEmpresas.EsContratista.Value;
        //    I.Comentario = "";
        //    I.Tipo = "Hojas Sin Documentación Presentada";
        //    I.OrdenDetalle = int.Parse(itemC.Periodo.Year.ToString() + string.Format("{0:00}", itemC.Periodo.Month));
        //    if (I.EsContratista)
        //        I.OrdenEmpresas = 0;
        //    else
        //        I.OrdenEmpresas = 1;

        //    Resultado.Add(I);
        //}


        /// Solo vamos a mostrar las hojas que tienen pendientes (21/10/2010)
        //foreach (Entidades.CabeceraHojasDeRuta itemC in CabSinAuditoria)
        //{
        //    Entidades.InformexPeriodoTemp I = new Entidades.InformexPeriodoTemp();
        //    I.RazonSocial = itemC.ContratoEmpresas.Empresa.RazonSocial;
        //    I.Periodo = itemC.Periodo;
        //    I.PeriodoDesc = string.Format("{0:Y}", itemC.Periodo);
        //    I.EsContratista = itemC.ContratoEmpresas.EsContratista.Value;
        //    I.Comentario = "";
        //    I.Tipo = "Hojas en Proceso de Auditoria";
        //    I.OrdenDetalle = int.Parse(itemC.Periodo.Year.ToString() + string.Format("{0:00}", itemC.Periodo.Month));
        //    if (I.EsContratista)
        //        I.OrdenEmpresas = 0;
        //    else
        //        I.OrdenEmpresas = 1;

        //    Resultado.Add(I);
        //}


        if (Resultado.Count > 0)
        {
            InformexPeriodoHistorico rep = new InformexPeriodoHistorico();
            rep.InitReport(Resultado, cabecera, EsHistorico);
            this.ReportViewer1.Report = rep;
            (ReportViewer1.FindControl("ReportToolbar").FindControl("ExportGr").Controls[0].Controls[0] as DropDownList).ClearSelection();
            (ReportViewer1.FindControl("ReportToolbar").FindControl("ExportGr").Controls[0].Controls[0] as DropDownList).Items.FindByText("Excel").Selected = true;
        }
        else
        {
            divcontent.Visible       = false;
            lblSinResultados.Visible = true;
        }
    }
Example #3
0
    protected void btnBuscar_Click(object sender, EventArgs e)
    {
        EntidadesConosud dc = new EntidadesConosud();
        List <InformeMensualEmpresaAuditarTemp> Result = new List <InformeMensualEmpresaAuditarTemp>();

        DateTime FI = txtInicial.SelectedDate.Value;
        DateTime FF = txtFinal.SelectedDate.Value.AddDays(1);

        /// LOGICA PARA CAMPO FECHA AUDITORIA
        //1. Si no hay fecha de control entonces se muestra en blanco la fecha de auditoría.
        //2. Si hay Fecha Control quiere decir que existe una auditoría realizada por lo que se debe mostrar esta fecha.
        //  Ahora, si hay documentación recepcionada posterior a la fecha de control significa que la auditoria anterior ya no es válida, ya que existe nueva documentación para auditar, por lo que se muestra en blanco.


        Result = (from C in dc.CabeceraHojasDeRuta
                  where (C.HojasDeRuta.Where(h => h.Plantilla.CategoriasItems.Nombre == Entidades.Emuneraciones.CATEGORIASUELDOS && h.DocFechaEntrega != null).Count() > 0 ||
                         C.HojasDeRuta.Where(h => h.Plantilla.CategoriasItems.Nombre == Entidades.Emuneraciones.CATEGORIAPREVISIONAL && h.DocFechaEntrega != null).Count() > 0) &&
                  C.HojasDeRuta.Where(h => h.DocFechaEntrega != null & h.DocFechaEntrega >= FI && h.DocFechaEntrega <= FF).Count() > 0

                  select new InformeMensualEmpresaAuditarTemp
        {
            DescContratista = "",
            DescSubContratista = "",
            Periodo = C.Periodo,
            CodigoContrato = C.ContratoEmpresas.Contrato.Codigo,
            FechaUltimaPresentacionPrevisional = C.HojasDeRuta.Where(w => w.Plantilla.CategoriasItems.Nombre == Entidades.Emuneraciones.CATEGORIAPREVISIONAL && w.DocFechaEntrega != null).Select(w => w.DocFechaEntrega).Max(),
            FechaUltimaPresentacionSueldos = C.HojasDeRuta.Where(w => w.Plantilla.CategoriasItems.Nombre == Entidades.Emuneraciones.CATEGORIASUELDOS && w.DocFechaEntrega != null).Select(w => w.DocFechaEntrega).Max(),
            FechaUltimaAuditoria = C.HojasDeRuta.Any(w => w.HojaFechaControlado != null) ? (C.HojasDeRuta.Any(w => w.DocFechaEntrega > w.HojaFechaControlado) ? null : C.HojasDeRuta.Select(w => w.HojaFechaControlado).Max()) : null,
            Aprobada = "",
            Publicada = "",
            Cab = C,
            ContratoEmpresa = C.ContratoEmpresas
        }).ToList <InformeMensualEmpresaAuditarTemp>();


        foreach (InformeMensualEmpresaAuditarTemp item in Result)
        {
            item.Aprobada           = item.Cab.Aprobada;
            item.Publicada          = item.Cab.Publicada;
            item.DescContratista    = item.ContratoEmpresa.DescConstratista;
            item.DescSubContratista = item.ContratoEmpresa.DescSubConstratista.Trim() == "" ? "-" : item.ContratoEmpresa.DescSubConstratista;
        }

        //Result = Result.Distinct(new ComparerByContratoEmpresaTemp()).ToList();

        Result = Result.Distinct().ToList();



        if (Result.Count > 0)
        {
            InformeMensualEmpresasAuditar rep = new InformeMensualEmpresasAuditar();
            rep.InitReport(Result, "Desde: " + txtInicial.SelectedDate.Value.ToShortDateString() + " Hasta: " + txtFinal.SelectedDate.Value.ToShortDateString());
            this.ReportViewer1.Report = rep;
            (ReportViewer1.FindControl("ReportToolbar").FindControl("ExportGr").Controls[0].Controls[0] as DropDownList).ClearSelection();
            (ReportViewer1.FindControl("ReportToolbar").FindControl("ExportGr").Controls[0].Controls[0] as DropDownList).Items.FindByText("Excel").Selected = true;
            trReporte.Visible        = true;
            trResultadoVacio.Visible = false;
        }
        else
        {
            trReporte.Visible        = false;
            trResultadoVacio.Visible = true;
        }

        upResultado.Update();
    }
    protected void btnBuscar_Click(object sender, EventArgs eventarg)
    {
        EntidadesConosud dc = new EntidadesConosud();
        List <InformeMapaHojasRutaTemp> datos = new List <InformeMapaHojasRutaTemp>();
        long idContrato = long.Parse(cboContratos.SelectedValue);
        List <Entidades.CabeceraHojasDeRuta> cabs = null;

        if (cboPeriodos.SelectedValue == "")
        {
            cabs = (from C in dc.CabeceraHojasDeRuta
                    .Include("HojasDeRuta").Include("HojasDeRuta.Plantilla").Include("HojasDeRuta.Plantilla.CategoriasItems").Include("ContratoEmpresas").Include("ContratoEmpresas.Contrato")
                    .Include("ContratoEmpresas.Empresa").Include("Estado")
                    .Include("ContratoEmpresas.CabeceraHojasDeRuta")
                    where (C.ContratoEmpresas.Contrato.IdContrato == idContrato)
                    &&
                    ((C.Periodo.Month < DateTime.Now.Month && C.Periodo.Year == DateTime.Now.Year) || (C.Periodo.Year < DateTime.Now.Year))
                    orderby C.Periodo ascending
                    select C).ToList <Entidades.CabeceraHojasDeRuta>();
        }
        else
        {
            int año = int.Parse(cboPeriodos.Text.Substring(3, 4));
            int mes = int.Parse(cboPeriodos.Text.Substring(0, 2));

            cabs = (from C in dc.CabeceraHojasDeRuta
                    .Include("HojasDeRuta").Include("HojasDeRuta.Plantilla").Include("HojasDeRuta.Plantilla.CategoriasItems").Include("ContratoEmpresas").Include("ContratoEmpresas.Contrato")
                    .Include("ContratoEmpresas.Empresa").Include("Estado")
                    .Include("ContratoEmpresas.CabeceraHojasDeRuta")
                    where C.ContratoEmpresas.Contrato.IdContrato == idContrato &&
                    C.Periodo.Month == mes && C.Periodo.Year == año
                    orderby C.Periodo ascending
                    select C).ToList <Entidades.CabeceraHojasDeRuta>();
        }

        foreach (var item in cabs)
        {
            InformeMapaHojasRutaTemp reg = new InformeMapaHojasRutaTemp();
            reg.IdCabecera = item.IdCabeceraHojasDeRuta.ToString();
            reg.Estado     = item.Aprobada;
            reg.Empresa    = item.ContratoEmpresas.Empresa.RazonSocial;
            reg.Periodo    = string.Format("{0:MM/yyyy}", item.Periodo);

            if (reg.Estado == "Aprobada")
            {
                reg.EstadoValor = 0;
            }
            else
            {
                reg.EstadoValor = 1;
            }

            if (item.ContratoEmpresas.EsContratista.Value)
            {
                reg.OrdenEmpresas = 0;
            }
            else
            {
                reg.OrdenEmpresas = 1;
            }

            datos.Add(reg);
        }

        InformeMapaHojaDeRuta rep = new InformeMapaHojaDeRuta();

        rep.InitReport(datos.OrderBy(w => w.OrdenEmpresas).ToList());
        this.ReportViewer1.Report = rep;
        (ReportViewer1.FindControl("ReportToolbar").FindControl("ExportGr").Controls[0].Controls[0] as DropDownList).ClearSelection();
        (ReportViewer1.FindControl("ReportToolbar").FindControl("ExportGr").Controls[0].Controls[0] as DropDownList).Items.FindByText("Excel").Selected = true;
        trReporte.Visible        = true;
        trResultadoVacio.Visible = false;
    }
    protected void btnBuscar_Click(object sender, EventArgs e)
    {
        EntidadesConosud dc = new EntidadesConosud();
        List <InformeMensualEmpresaAuditarTemp> Result = new List <InformeMensualEmpresaAuditarTemp>();

        DateTime FI = txtInicial.SelectedDate.Value;
        DateTime FF = txtFinal.SelectedDate.Value.AddHours(23);

        //List<Entidades.CabeceraHojasDeRuta> cabs = (from C in dc.CabeceraHojasDeRuta
        //                                     .Include("HojasDeRuta").Include("HojasDeRuta.Plantilla").Include("HojasDeRuta.Plantilla.CategoriasItems").Include("ContratoEmpresas").Include("ContratoEmpresas.Contrato")
        //                                     .Include("ContratoEmpresas.Empresa")
        //                                     .Include("ContratoEmpresas.CabeceraHojasDeRuta")
        //                                            where
        //                                            (C.HojasDeRuta.Where(h => h.Plantilla.CategoriasItems.Nombre == Entidades.Emuneraciones.CATEGORIASUELDOS && h.DocFechaEntrega != null).Count() > 0
        //                                            || C.HojasDeRuta.Where(h => h.Plantilla.CategoriasItems.Nombre == Entidades.Emuneraciones.CATEGORIAPREVISIONAL && h.DocFechaEntrega != null).Count() > 0)

        //                                            && C.HojasDeRuta.Where(h => h.DocFechaEntrega != null & h.DocFechaEntrega >= FI && h.DocFechaEntrega <= FF).Count() > 0

        //                                            select C).ToList<Entidades.CabeceraHojasDeRuta>();



        Result = (from C in dc.CabeceraHojasDeRuta
                  where (C.HojasDeRuta.Where(h => h.Plantilla.CategoriasItems.Nombre == Entidades.Emuneraciones.CATEGORIASUELDOS && h.DocFechaEntrega != null).Count() > 0 ||
                         C.HojasDeRuta.Where(h => h.Plantilla.CategoriasItems.Nombre == Entidades.Emuneraciones.CATEGORIAPREVISIONAL && h.DocFechaEntrega != null).Count() > 0) &&
                  C.HojasDeRuta.Where(h => h.DocFechaEntrega != null & h.DocFechaEntrega >= FI && h.DocFechaEntrega <= FF).Count() > 0

                  select new InformeMensualEmpresaAuditarTemp
        {
            DescContratista = "",
            DescSubContratista = "",
            Periodo = C.Periodo,
            CodigoContrato = C.ContratoEmpresas.Contrato.Codigo,
            FechaUltimaPresentacionPrevisional = C.HojasDeRuta.Where(w => w.Plantilla.CategoriasItems.Nombre == Entidades.Emuneraciones.CATEGORIAPREVISIONAL && w.DocFechaEntrega != null).Select(w => w.DocFechaEntrega).Max(),
            FechaUltimaPresentacionSueldos = C.HojasDeRuta.Where(w => w.Plantilla.CategoriasItems.Nombre == Entidades.Emuneraciones.CATEGORIASUELDOS && w.DocFechaEntrega != null).Select(w => w.DocFechaEntrega).Max(),
            FechaUltimaAuditoria = C.HojasDeRuta.Any(w => w.HojaFechaControlado != null) ? (C.HojasDeRuta.Any(w => w.DocFechaEntrega > w.HojaFechaControlado) ? null : C.HojasDeRuta.Select(w => w.HojaFechaControlado).Max()) : null,
            Aprobada = "",
            Publicada = "",
            Cab = C,
            ContratoEmpresa = C.ContratoEmpresas
        }).ToList <InformeMensualEmpresaAuditarTemp>();


        foreach (InformeMensualEmpresaAuditarTemp item in Result)
        {
            item.Aprobada           = item.Cab.Aprobada;
            item.Publicada          = item.Cab.Publicada;
            item.DescContratista    = item.ContratoEmpresa.DescConstratista;
            item.DescSubContratista = item.ContratoEmpresa.DescSubConstratista.Trim() == "" ? "-" : item.ContratoEmpresa.DescSubConstratista;
        }

        //Result = Result.Distinct(new ComparerByContratoEmpresaTemp()).ToList();

        Result = Result.Distinct().ToList();



        if (Result.Count > 0)
        {
            InformeMensualEmpresasAuditar rep = new InformeMensualEmpresasAuditar();
            rep.InitReport(Result);
            this.ReportViewer1.Report = rep;
            (ReportViewer1.FindControl("ReportToolbar").FindControl("ExportGr").Controls[0].Controls[0] as DropDownList).ClearSelection();
            (ReportViewer1.FindControl("ReportToolbar").FindControl("ExportGr").Controls[0].Controls[0] as DropDownList).Items.FindByText("Excel").Selected = true;
            trReporte.Visible        = true;
            trResultadoVacio.Visible = false;
        }
        else
        {
            trReporte.Visible        = false;
            trResultadoVacio.Visible = true;
        }

        upResultado.Update();
    }
Example #6
0
    protected void btnBuscar_Click(object sender, EventArgs e)
    {
        EntidadesConosud dc = new EntidadesConosud();

        DateTime FechaInicial = Convert.ToDateTime("01/" + cboPeriodos.Text);
        DateTime FechaFinal   = Convert.ToDateTime("01/" + cboPeriodos.Text).AddMonths(1);

        DateTime FechaInicioPA = FechaInicial.AddMonths(-1);
        DateTime FechaFinalPA  = FechaFinal.AddMonths(-1);


        var empActuales = (from emp in dc.ContEmpLegajos
                           where ((emp.CabeceraHojasDeRuta.Periodo >= FechaInicial &&
                                   emp.CabeceraHojasDeRuta.Periodo < FechaFinal) || (emp.FechaTramiteBaja >= FechaInicial && emp.FechaTramiteBaja < FechaFinal))
                           select new
        {
            idCab = emp.CabeceraHojasDeRuta.IdCabeceraHojasDeRuta,
            idLeg = emp.Legajos.IdLegajos,
            idConEmp = emp.ContratoEmpresas.IdContratoEmpresas,
            idCon = emp.ContratoEmpresas.Contrato.IdContrato,
            NombreCompleto = emp.Legajos.Apellido + ", " + emp.Legajos.Nombre,
            Nrodoc = emp.Legajos.NroDoc,
            CodigoContrato = emp.ContratoEmpresas.Contrato.Codigo,
            NombreEmpresa = emp.ContratoEmpresas.Empresa.RazonSocial,
            Encuadre = emp.Legajos.objConvenio,
            FechaBaja = emp.CabeceraHojasDeRuta.Periodo,
            FechaTramite = emp.FechaTramiteBaja,
            EsContratista = emp.ContratoEmpresas.EsContratista,
            VencimientoContrato = emp.ContratoEmpresas.Contrato.Prorroga.HasValue ? emp.ContratoEmpresas.Contrato.Prorroga.Value : emp.ContratoEmpresas.Contrato.FechaVencimiento.Value
        }).ToList();


        var empPA = (from emp in dc.ContEmpLegajos
                     where emp.CabeceraHojasDeRuta.Periodo >= FechaInicioPA &&
                     emp.CabeceraHojasDeRuta.Periodo < FechaFinalPA &&
                     (
                         (emp.ContratoEmpresas.Contrato.FechaVencimiento > FechaFinalPA)
                         ||
                         (emp.ContratoEmpresas.Contrato.Prorroga.HasValue && emp.ContratoEmpresas.Contrato.Prorroga > FechaFinalPA)
                     )
                     select new
        {
            idCab = emp.CabeceraHojasDeRuta.IdCabeceraHojasDeRuta,
            idLeg = emp.Legajos.IdLegajos,
            idConEmp = emp.ContratoEmpresas.IdContratoEmpresas,
            idCon = emp.ContratoEmpresas.Contrato.IdContrato,
            NombreCompleto = emp.Legajos.Apellido + ", " + emp.Legajos.Nombre,
            Nrodoc = emp.Legajos.NroDoc,
            CodigoContrato = emp.ContratoEmpresas.Contrato.Codigo,
            NombreEmpresa = emp.ContratoEmpresas.Empresa.RazonSocial,
            Encuadre = emp.Legajos.objConvenio,
            FechaBaja = emp.CabeceraHojasDeRuta.Periodo,
            FechaTramite = emp.FechaTramiteBaja,
            EsContratista = emp.ContratoEmpresas.EsContratista
        }).ToList();

        List <AltasBajasLegajosTemp> LegajosEncontrados = new List <AltasBajasLegajosTemp>();

        foreach (var item in empActuales.Where(emp => (emp.FechaTramite >= FechaInicial && emp.FechaTramite < FechaFinal)))
        {
            AltasBajasLegajosTemp LegajoEliminado = new AltasBajasLegajosTemp();
            LegajoEliminado.Accion                   = "Baja";
            LegajoEliminado.CodigoContrato           = item.CodigoContrato;
            LegajoEliminado.NombreCompleto           = Capitalize(item.NombreCompleto.ToLower());
            LegajoEliminado.NombreEmpresaContratista = Capitalize(item.NombreEmpresa.ToLower());
            LegajoEliminado.Nrodoc                   = item.Nrodoc;


            if (item.Encuadre != null)
            {
                LegajoEliminado.Encuadre = item.Encuadre.Descripcion;
            }
            else
            {
                LegajoEliminado.Encuadre = "";
            }

            if (item.FechaTramite.HasValue)
            {
                LegajoEliminado.FechaTramite = item.FechaTramite.Value.ToShortDateString();
                LegajoEliminado.FechaBaja    = string.Format("{0:MMM-yy}", item.FechaBaja);
            }
            else
            {
                LegajoEliminado.FechaTramite = "";
                LegajoEliminado.FechaBaja    = "";
            }

            if (!item.EsContratista.HasValue || !item.EsContratista.Value)
            {
                LegajoEliminado.NombreEmpresaSubContratista = Capitalize(item.NombreEmpresa.ToLower());
                LegajoEliminado.NombreEmpresaContratista    = Capitalize((from c in dc.ContratoEmpresas
                                                                          where c.Contrato.IdContrato == item.idCon &&
                                                                          c.EsContratista.Value
                                                                          select new
                {
                    Contratista = c.Empresa.RazonSocial
                }).First().Contratista.ToLower());
            }

            LegajosEncontrados.Add(LegajoEliminado);
        }



        /// Solo se verifican los legajos que no han sido dado de baja ya que nunca
        /// se pueden dar de baja y de alta en el mismo periodo y contrato.
        foreach (var item in empActuales.Where(w => w.FechaTramite == null))
        {
            /// Si el legajo del periodo actual no existe en el periodo anterior
            /// se infiere que el mismo fue dado de alta en el perio actual.
            int existe = (from emp in empPA
                          where emp.idConEmp == item.idConEmp &&
                          emp.idLeg == item.idLeg
                          select emp).Count();

            if (existe == 0)
            {
                AltasBajasLegajosTemp LegajoEliminado = new AltasBajasLegajosTemp();
                LegajoEliminado.Accion                   = "Alta";
                LegajoEliminado.CodigoContrato           = item.CodigoContrato;
                LegajoEliminado.NombreCompleto           = Capitalize(item.NombreCompleto.ToLower());
                LegajoEliminado.NombreEmpresaContratista = Capitalize(item.NombreEmpresa.ToLower());
                LegajoEliminado.Nrodoc                   = item.Nrodoc;
                LegajoEliminado.FechaTramite             = "";
                LegajoEliminado.FechaBaja                = "";

                if (item.Encuadre != null)
                {
                    LegajoEliminado.Encuadre = item.Encuadre.Descripcion;
                }
                else
                {
                    LegajoEliminado.Encuadre = "";
                }


                if (!item.EsContratista.HasValue || !item.EsContratista.Value)
                {
                    LegajoEliminado.NombreEmpresaSubContratista = Capitalize(item.NombreEmpresa.ToLower());
                    LegajoEliminado.NombreEmpresaContratista    = Capitalize((from c in dc.ContratoEmpresas
                                                                              where c.Contrato.IdContrato == item.idCon &&
                                                                              c.EsContratista.Value
                                                                              select new
                    {
                        Contratista = c.Empresa.RazonSocial
                    }).First().Contratista.ToLower());
                }

                LegajosEncontrados.Add(LegajoEliminado);
            }
        }


        if (LegajosEncontrados.Count > 0)
        {
            InformeAltaBajaLegajo rep = new InformeAltaBajaLegajo();
            rep.InitReport(LegajosEncontrados, FechaInicial);
            this.ReportViewer1.Report = rep;
            (ReportViewer1.FindControl("ReportToolbar").FindControl("ExportGr").Controls[0].Controls[0] as DropDownList).ClearSelection();
            (ReportViewer1.FindControl("ReportToolbar").FindControl("ExportGr").Controls[0].Controls[0] as DropDownList).Items.FindByText("Excel").Selected = true;
            trReporte.Visible        = true;
            trResultadoVacio.Visible = false;
        }
        else
        {
            trReporte.Visible        = false;
            trResultadoVacio.Visible = true;
        }

        upResultado.Update();
    }
    protected void btnBuscar_Click(object sender, EventArgs e)
    {
        try
        {
            EntidadesConosud dc = new EntidadesConosud();

            DateTime FechaInicial = Convert.ToDateTime("01/" + cboPeriodos.Text);
            DateTime FechaFinal   = Convert.ToDateTime("01/" + cboPeriodos.Text).AddMonths(1).AddDays(-1);


            /// Obtengo las cabeceras segun el rango de fechas
            var cabeceras1 = (from C in dc.CabeceraHojasDeRuta
                              where C.Periodo >= FechaInicial &&
                              C.Periodo <= FechaFinal &&
                              C.ContEmpLegajos.Count() > 0
                              orderby C.ContratoEmpresas.Contrato.IdContrato
                              select new
            {
                Id = C.IdCabeceraHojasDeRuta,
                Cab = C,
                Constratista = C.ContratoEmpresas.Empresa.RazonSocial,
                IdContrato = C.ContratoEmpresas.Contrato.IdContrato,
                Codigo = C.ContratoEmpresas.Contrato.Codigo,
                C.ContratoEmpresas.EsContratista
            }).ToList();



            /// Extraigo los ids de todas las cabeceras
            long[] idsCab = cabeceras1.Select(w => w.Id).ToArray();

            /// Recupero todos los legajos de cada una de las cabeceras
            var AllLegajosCabeceras = (from L in dc.ContEmpLegajos.Where(Helpers.ContainsExpression <Entidades.ContEmpLegajos, long>(L => L.CabeceraHojasDeRuta.IdCabeceraHojasDeRuta, idsCab))
                                       select new
            {
                idCab = L.CabeceraHojasDeRuta.IdCabeceraHojasDeRuta,
                Convenio = L.Legajos.objConvenio.Descripcion,
                Conratista = L.ContratoEmpresas.Empresa.RazonSocial,
                CondigoContrato = L.ContratoEmpresas.Contrato.Codigo
            }).ToList();


            if (idsCab.Length > 0)
            {
                List <Entidades.InformeEncuadreGremialTemp> AllEncuadre = new List <InformeEncuadreGremialTemp>();


                foreach (var ItemCabecera in cabeceras1)
                {
                    var LegAgrupados = from L in AllLegajosCabeceras
                                       where L.idCab == ItemCabecera.Id
                                       group L by L.Convenio into g
                                       select new
                    {
                        key      = g.Key,
                        cantidad = g.Count()
                    };

                    foreach (var detalleLegAgrupado in LegAgrupados)
                    {
                        string contratista = "";

                        Entidades.InformeEncuadreGremialTemp enc = new InformeEncuadreGremialTemp();
                        enc.Cantidad = detalleLegAgrupado.cantidad;

                        if (ItemCabecera.EsContratista.Value)
                        {
                            enc.Empresa        = Capitalize(ItemCabecera.Constratista.ToLower());
                            contratista        = Capitalize(ItemCabecera.Constratista.ToLower());
                            enc.SubContratista = "";
                        }
                        else
                        {
                            var empContratista = (from c in cabeceras1
                                                  where c.IdContrato == ItemCabecera.IdContrato && c.EsContratista.Value
                                                  select new
                            {
                                Contratista = c.Constratista
                            }).FirstOrDefault();

                            if (empContratista != null)
                            {
                                enc.Empresa = Capitalize(empContratista.Contratista.ToLower());
                            }
                            else
                            {
                                enc.Empresa = Capitalize((from c in dc.ContratoEmpresas
                                                          where c.Contrato.IdContrato == ItemCabecera.IdContrato && c.EsContratista.Value
                                                          select new
                                {
                                    Contratista = c.Empresa.RazonSocial
                                }).First().Contratista.ToLower());
                            }

                            enc.SubContratista = Capitalize(ItemCabecera.Constratista.ToLower());
                        }

                        enc.Contrato = ItemCabecera.Codigo;


                        if (detalleLegAgrupado.key != null)
                        {
                            enc.Convenio = detalleLegAgrupado.key;
                        }
                        else
                        {
                            enc.Convenio = "F/Convenio";
                        }

                        AllEncuadre.Add(enc);
                    }
                }

                InformeEncuadreGremial rep = new InformeEncuadreGremial();
                rep.InitReport(AllEncuadre.OrderBy(w => w.Empresa).ToList(), cboPeriodos.Text);
                this.ReportViewer1.Report = rep;
                (ReportViewer1.FindControl("ReportToolbar").FindControl("ExportGr").Controls[0].Controls[0] as DropDownList).ClearSelection();
                (ReportViewer1.FindControl("ReportToolbar").FindControl("ExportGr").Controls[0].Controls[0] as DropDownList).Items.FindByText("Excel").Selected = true;
                trReporte.Visible        = true;
                trResultadoVacio.Visible = false;
            }
            else
            {
                trReporte.Visible        = false;
                trResultadoVacio.Visible = true;
            }

            upResultado.Update();
        }
        catch
        {
        }
    }