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(); }
public static object GetData(string periodo, int start, int take) { #region Recupero los Datos EntidadesConosud dc = new EntidadesConosud(); DateTime FechaInicial = Convert.ToDateTime("01/" + periodo); DateTime FechaFinal = Convert.ToDateTime("01/" + periodo).AddMonths(1); DateTime FechaInicioPA = FechaInicial.AddMonths(-1); DateTime FechaFinalPA = FechaFinal.AddMonths(-1); // Empleados del period actual, es decir del seleccionado var empActuales = (from emp in dc.ContEmpLegajos where ((emp.CabeceraHojasDeRuta.Periodo >= FechaInicial && emp.CabeceraHojasDeRuta.Periodo < FechaFinal) || (emp.FechaTramiteBaja >= FechaInicial && emp.FechaTramiteBaja < FechaFinal)) && emp.Legajos != null select new { idcontempleg = emp.IdContEmpLegajos, idCab = emp.CabeceraHojasDeRuta.IdCabeceraHojasDeRuta, idLeg = emp.Legajos.IdLegajos != null ? emp.Legajos.IdLegajos : 0, idConEmp = emp.ContratoEmpresas.IdContratoEmpresas, idCon = emp.ContratoEmpresas.Contrato.IdContrato, NombreCompleto = emp.Legajos.Apellido.ToUpper() + ", " + emp.Legajos.Nombre.ToUpper(), 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 }).OrderBy(w => w.idCab).ToList(); // PA: Busco los legajos del Periodo Anterior 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) ) && emp.Legajos != null select new { idCab = emp.CabeceraHojasDeRuta.IdCabeceraHojasDeRuta, idLeg = emp.Legajos.IdLegajos != null ? emp.Legajos.IdLegajos : 0, idConEmp = emp.ContratoEmpresas.IdContratoEmpresas, idCon = emp.ContratoEmpresas.Contrato.IdContrato, NombreCompleto = emp.Legajos.Apellido.ToUpper() + ", " + emp.Legajos.Nombre.ToUpper(), 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>(); int uniqueId = 0; 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 = item.NombreCompleto.ToUpper(); LegajoEliminado.NombreEmpresaContratista = Capitalize(item.NombreEmpresa.ToLower()); LegajoEliminado.Nrodoc = item.Nrodoc; LegajoEliminado.UniqueID = uniqueId; LegajoEliminado.Periodo = periodo; 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()); } else { LegajoEliminado.NombreEmpresaSubContratista = ""; } LegajosEncontrados.Add(LegajoEliminado); uniqueId++; } /// 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 = item.NombreCompleto.ToUpper(); LegajoEliminado.NombreEmpresaContratista = Capitalize(item.NombreEmpresa.ToLower()); LegajoEliminado.Nrodoc = item.Nrodoc; LegajoEliminado.FechaTramite = ""; LegajoEliminado.FechaBaja = ""; LegajoEliminado.UniqueID = uniqueId; LegajoEliminado.Periodo = periodo; 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()); } else { LegajoEliminado.NombreEmpresaSubContratista = ""; } LegajosEncontrados.Add(LegajoEliminado); uniqueId++; } } //if (LegajosEncontrados.Count > 0) //{ // HttpContext.Current.Session["LegajosEncontrados"] = Helper.SerializeObject(LegajosEncontrados.ToList()); //} //else //{ // HttpContext.Current.Session["LegajosEncontrados"] = null; //} return(LegajosEncontrados.Skip(start).Take(take).ToList()); #endregion }