private void ROL_023_Resumen_Rpt_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { lbl_fecha.Text = DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss"); lbl_empresa.Text = empresa; lbl_usuario.Text = usuario; int IdEmpresa = string.IsNullOrEmpty(p_IdEmpresa.Value.ToString()) ? 0 : Convert.ToInt32(p_IdEmpresa.Value); int IdSucursal = string.IsNullOrEmpty(p_IdSucursal.Value.ToString()) ? 0 : Convert.ToInt32(p_IdSucursal.Value); int IdNomina = string.IsNullOrEmpty(p_IdNomina.Value.ToString()) ? 0 : Convert.ToInt32(p_IdNomina.Value); int IdNominaTipoLiqui = string.IsNullOrEmpty(p_IdNominaTipoLiqui.Value.ToString()) ? 0 : Convert.ToInt32(p_IdNominaTipoLiqui.Value); int IdPeriodo = string.IsNullOrEmpty(p_IdPeriodo.Value.ToString()) ? 0 : Convert.ToInt32(p_IdPeriodo.Value); int IdDivision = string.IsNullOrEmpty(p_IdDivision.Value.ToString()) ? 0 : Convert.ToInt32(p_IdDivision.Value); int IdArea = string.IsNullOrEmpty(p_IdArea.Value.ToString()) ? 0 : Convert.ToInt32(p_IdArea.Value); int IdDepartamento = string.IsNullOrEmpty(p_IdEmpresa.Value.ToString()) ? 0 : Convert.ToInt32(p_IdDepartamento.Value); ROL_023_Bus bus_rpt = new ROL_023_Bus(); List <ROL_023_Info> lst_rpt = bus_rpt.GetList(IdEmpresa, IdSucursal, IdNomina, IdNominaTipoLiqui, IdPeriodo, IdDivision, IdArea, IdDepartamento); lst_rpt.ForEach(q => { q.FRESERVA_R = Math.Round(q.FRESERVA ?? 0, 2, MidpointRounding.AwayFromZero); q.IESS_R = Math.Round(q.IESS ?? 0, 2, MidpointRounding.AwayFromZero); q.TOTALI = q.SUELDO + q.OTROING + q.SOBRET + q.DECIMOC + q.DECIMOT + q.FRESERVA_R; q.TOTALE = q.PRESTAMO + q.IESS_R + q.ANTICIPO + q.OTROEGR; q.NETO = q.TOTALI - q.TOTALE; }); lst_rpt.ForEach(q => { q.FRESERVA_R = Math.Round(q.FRESERVA ?? 0, 2, MidpointRounding.AwayFromZero); q.IESS_R = Math.Round(q.IESS ?? 0, 2, MidpointRounding.AwayFromZero); q.TOTALI = q.SUELDO + q.OTROING + q.SOBRET + q.DECIMOC + q.DECIMOT + q.FRESERVA_R; q.TOTALE = q.PRESTAMO + q.IESS_R + q.ANTICIPO + q.OTROEGR; q.NETO = q.TOTALI - q.TOTALE; }); var lst = (from q in lst_rpt where q.Fila != 1 group q by new { q.IdEmpleado } into g select new ROL_023_Info { IdEmpleado = g.Key.IdEmpleado, IESS_2 = g.Sum(q => q.IESS_R), FRESERVA_2 = g.Sum(q => q.FRESERVA_R) }).ToList(); var lst_final = (from a in lst_rpt join b in lst on new { a.IdEmpleado } equals new { b.IdEmpleado } into c from b in c.DefaultIfEmpty() select new ROL_023_Info { IdEmpresa = a.IdEmpresa, IdPeriodo = a.IdPeriodo, ANTICIPO = a.ANTICIPO, DECIMOC = a.DECIMOC, DECIMOT = a.DECIMOT, DIASTRABAJADOS = a.DIASTRABAJADOS, FRESERVA = a.FRESERVA, IdArea = a.IdArea, IdDepartamento = a.IdDepartamento, IdDivision = a.IdDivision, IdEmpleado = a.IdEmpleado, IdNominaTipo = a.IdNominaTipo, IdNominaTipoLiqui = a.IdNominaTipoLiqui, IdRol = a.IdRol, IdSucursal = a.IdSucursal, IESS = a.IESS, NETO = a.NETO, NombreArea = a.NombreArea, NombreDepartamento = a.NombreDepartamento, NombreDivision = a.NombreDivision, OTROEGR = a.OTROEGR, OTROING = a.OTROING, pe_nombreCompleto = a.pe_nombreCompleto, PRESTAMO = a.PRESTAMO, SOBRET = a.SOBRET, SUELDO = a.SUELDO, Su_Descripcion = a.Su_Descripcion, TOTALE = a.TOTALE, TOTALI = a.TOTALI, Descripcion = a.Descripcion, DescripcionProcesoNomina = a.DescripcionProcesoNomina, JORNADA = a.JORNADA, UBUCACION = a.UBUCACION, FRESERVA_R = a.FRESERVA_R, IESS_R = a.IESS_R, FRESERVA_TOTAL = a.FRESERVA_TOTAL, IESS_TOTAL = a.IESS_TOTAL, Fila = a.Fila, IESS_2 = b != null ? b.IESS_2 : 0, FRESERVA_2 = b != null ? b.FRESERVA_2 : 0 }).ToList(); lst_final.Where(q => q.Fila == 1).ToList().ForEach(q => { q.FRESERVA_R += q.FRESERVA_TOTAL - (q.FRESERVA_R + (q.FRESERVA_2 ?? 0)); q.IESS_R += q.IESS_TOTAL - (q.IESS_R + (q.IESS_2 ?? 0)); q.TOTALI = q.SUELDO + q.OTROING + q.SOBRET + q.DECIMOC + q.DECIMOT + q.FRESERVA_R; q.TOTALE = q.PRESTAMO + q.IESS_R + q.ANTICIPO + q.OTROEGR; q.NETO = q.TOTALI - q.TOTALE; }); ListaAgrupada = (from q in lst_final group q by new { q.IdEmpresa, q.IdSucursal, q.Su_Descripcion, q.Descripcion, q.DescripcionProcesoNomina, q.IdPeriodo, q.IdNominaTipo, q.IdNominaTipoLiqui, q.NombreDivision, q.IdArea, q.NombreArea, q.IdDepartamento, q.NombreDepartamento, q.IdEmpleado } into Resumen select new ROL_023_Info { IdEmpresa = Resumen.Key.IdEmpresa, IdSucursal = Resumen.Key.IdSucursal, IdPeriodo = Resumen.Key.IdPeriodo, IdNominaTipo = Resumen.Key.IdNominaTipo, IdNominaTipoLiqui = Resumen.Key.IdNominaTipoLiqui, NombreDivision = Resumen.Key.NombreDivision, IdArea = Resumen.Key.IdArea, NombreArea = Resumen.Key.NombreArea, IdDepartamento = Resumen.Key.IdDepartamento, Su_Descripcion = Resumen.Key.Su_Descripcion, Descripcion = Resumen.Key.Descripcion, DescripcionProcesoNomina = Resumen.Key.DescripcionProcesoNomina, NombreDepartamento = Resumen.Key.NombreDepartamento, IdEmpleado = Resumen.Key.IdEmpleado, TOTALI = Resumen.Sum(q => q.TOTALI), DECIMOT = Resumen.Sum(q => q.DECIMOT), DECIMOC = Resumen.Sum(q => q.DECIMOC), FRESERVA = Resumen.Sum(q => q.FRESERVA_R), SUELDO = Resumen.Sum(q => q.SUELDO + q.SOBRET + q.OTROING), SOBRET = Resumen.Sum(q => q.SOBRET), OTROING = Resumen.Sum(q => q.OTROING), TotalResumen = Resumen.Sum(q => q.SUELDO + q.DECIMOT + q.DECIMOC + q.FRESERVA_R + q.SOBRET + q.OTROING) }).ToList(); ListaAgrupadaResumen = (from q in ListaAgrupada group q by new { q.IdEmpresa, q.Su_Descripcion, q.Descripcion, q.DescripcionProcesoNomina, q.IdSucursal, q.IdPeriodo, q.IdNominaTipo, q.IdNominaTipoLiqui, q.NombreDivision, q.IdArea, q.NombreArea, q.IdDepartamento, q.NombreDepartamento } into Resumen_Reporte select new ROL_023_Info { IdEmpresa = Resumen_Reporte.Key.IdEmpresa, IdSucursal = Resumen_Reporte.Key.IdSucursal, IdPeriodo = Resumen_Reporte.Key.IdPeriodo, IdNominaTipo = Resumen_Reporte.Key.IdNominaTipo, IdNominaTipoLiqui = Resumen_Reporte.Key.IdNominaTipoLiqui, Su_Descripcion = Resumen_Reporte.Key.Su_Descripcion, Descripcion = Resumen_Reporte.Key.Descripcion, DescripcionProcesoNomina = Resumen_Reporte.Key.DescripcionProcesoNomina, NombreDivision = Resumen_Reporte.Key.NombreDivision, IdArea = Resumen_Reporte.Key.IdArea, NombreArea = Resumen_Reporte.Key.NombreArea, IdDepartamento = Resumen_Reporte.Key.IdDepartamento, NombreDepartamento = Resumen_Reporte.Key.NombreDepartamento, CantidadEmpleados = Resumen_Reporte.Count() }).ToList(); foreach (var item in ListaAgrupadaResumen) { //item.CantidadEmpleados = ListaAgrupadaResumen.Where(q => q.IdDepartamento == item.IdDepartamento).FirstOrDefault().CantidadEmpleados; item.TOTALI = ListaAgrupada.Where(q => q.IdArea == item.IdArea && q.IdDepartamento == item.IdDepartamento).Sum(q => q.TOTALI); item.DECIMOT = ListaAgrupada.Where(q => q.IdArea == item.IdArea && q.IdDepartamento == item.IdDepartamento).Sum(q => q.DECIMOT); item.DECIMOC = ListaAgrupada.Where(q => q.IdArea == item.IdArea && q.IdDepartamento == item.IdDepartamento).Sum(q => q.DECIMOC); item.FRESERVA = ListaAgrupada.Where(q => q.IdArea == item.IdArea && q.IdDepartamento == item.IdDepartamento).Sum(q => q.FRESERVA); item.SUELDO = ListaAgrupada.Where(q => q.IdArea == item.IdArea && q.IdDepartamento == item.IdDepartamento).Sum(q => q.SUELDO); item.SOBRET = ListaAgrupada.Where(q => q.IdArea == item.IdArea && q.IdDepartamento == item.IdDepartamento).Sum(q => q.SOBRET); item.OTROING = ListaAgrupada.Where(q => q.IdArea == item.IdArea && q.IdDepartamento == item.IdDepartamento).Sum(q => q.OTROING); item.TotalResumen = ListaAgrupada.Where(q => q.IdArea == item.IdArea && q.IdDepartamento == item.IdDepartamento).Sum(q => q.TotalResumen); } this.DataSource = ListaAgrupadaResumen; tb_empresa_Bus bus_empresa = new tb_empresa_Bus(); var emp = bus_empresa.get_info(IdEmpresa); lbl_empresa.Text = emp.em_nombre; ImageConverter obj = new ImageConverter(); lbl_imagen.Image = (Image)obj.ConvertFrom(emp.em_logo); }
private void ROL_023_Rpt_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { lbl_fecha.Text = DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss"); lbl_empresa.Text = empresa; lbl_usuario.Text = usuario; int IdEmpresa = string.IsNullOrEmpty(p_IdEmpresa.Value.ToString())? 0 : Convert.ToInt32(p_IdEmpresa.Value); int IdSucursal = string.IsNullOrEmpty(p_IdSucursal.Value.ToString()) ? 0 : Convert.ToInt32(p_IdSucursal.Value); int IdNomina = string.IsNullOrEmpty(p_IdNomina.Value.ToString()) ? 0 : Convert.ToInt32(p_IdNomina.Value); int IdNominaTipoLiqui = string.IsNullOrEmpty(p_IdNominaTipoLiqui.Value.ToString()) ? 0 : Convert.ToInt32(p_IdNominaTipoLiqui.Value); int IdPeriodo = string.IsNullOrEmpty(p_IdPeriodo.Value.ToString()) ? 0 : Convert.ToInt32(p_IdPeriodo.Value); int IdDivision = string.IsNullOrEmpty(p_IdDivision.Value.ToString()) ? 0 : Convert.ToInt32(p_IdDivision.Value); int IdArea = string.IsNullOrEmpty(p_IdArea.Value.ToString()) ? 0 : Convert.ToInt32(p_IdArea.Value); int IdDepartamento = string.IsNullOrEmpty(p_IdEmpresa.Value.ToString()) ? 0 : Convert.ToInt32(p_IdDepartamento.Value); ROL_023_Bus bus_rpt = new ROL_023_Bus(); List <ROL_023_Info> lst_rpt = bus_rpt.GetList(IdEmpresa, IdSucursal, IdNomina, IdNominaTipoLiqui, IdPeriodo, IdDivision, IdArea, IdDepartamento); #region MOVIMIENTO DE ANTICIPO PARA QUE AFECTE LA FILA CON MAYOR INGRESO //OBTENER REGISTROS DE LA FILA 1 QUE ESTEN EN NEGATIVO var lst_1 = lst_rpt.Where(q => q.NETO < 0 && q.Fila == 1).ToList(); //CRUZAR CON REGISTROS DE FILA 2 PARA PASAR EL VALOR var lst_2_ = lst_rpt.Where(q => q.Fila == 2).ToList(); ROL_023_Info objrpt = new ROL_023_Info(); lst_1.ForEach(q => { objrpt = lst_rpt.Where(v => v.IdEmpresa == q.IdEmpresa && v.IdEmpleado == q.IdEmpleado && v.Fila == 2).FirstOrDefault(); if (objrpt != null) { objrpt.ANTICIPO = q.ANTICIPO; q.ANTICIPO = 0; } }); #endregion #region REDONDEOS POR CUADRE DE FONDO DE RESERVA E IESS lst_rpt.ForEach(q => { q.FRESERVA_R = Math.Round(q.FRESERVA ?? 0, 2, MidpointRounding.AwayFromZero); q.IESS_R = Math.Round(q.IESS ?? 0, 2, MidpointRounding.AwayFromZero); q.TOTALI = q.SUELDO + q.OTROING + q.SOBRET + q.DECIMOC + q.DECIMOT + q.FRESERVA_R; q.TOTALE = q.PRESTAMO + q.IESS_R + q.ANTICIPO + q.OTROEGR; q.NETO = q.TOTALI - q.TOTALE; }); var lst = (from q in lst_rpt where q.Fila != 1 group q by new { q.IdEmpleado } into g select new ROL_023_Info { IdEmpleado = g.Key.IdEmpleado, IESS_2 = g.Sum(q => q.IESS_R), FRESERVA_2 = g.Sum(q => q.FRESERVA_R) }).ToList(); var lst_final = (from a in lst_rpt join b in lst on new { a.IdEmpleado } equals new { b.IdEmpleado } into c from b in c.DefaultIfEmpty() select new ROL_023_Info { IdEmpresa = a.IdEmpresa, IdPeriodo = a.IdPeriodo, ANTICIPO = a.ANTICIPO, DECIMOC = a.DECIMOC, DECIMOT = a.DECIMOT, DIASTRABAJADOS = a.DIASTRABAJADOS, FRESERVA = a.FRESERVA, IdArea = a.IdArea, IdDepartamento = a.IdDepartamento, IdDivision = a.IdDivision, IdEmpleado = a.IdEmpleado, IdNominaTipo = a.IdNominaTipo, IdNominaTipoLiqui = a.IdNominaTipoLiqui, IdRol = a.IdRol, IdSucursal = a.IdSucursal, IESS = a.IESS, NETO = a.NETO, NombreArea = a.NombreArea, NombreDepartamento = a.NombreDepartamento, NombreDivision = a.NombreDivision, OTROEGR = a.OTROEGR, OTROING = a.OTROING, pe_nombreCompleto = a.pe_nombreCompleto, PRESTAMO = a.PRESTAMO, SOBRET = a.SOBRET, SUELDO = a.SUELDO, Su_Descripcion = a.Su_Descripcion, TOTALE = a.TOTALE, TOTALI = a.TOTALI, Descripcion = a.Descripcion, DescripcionProcesoNomina = a.DescripcionProcesoNomina, JORNADA = a.JORNADA, UBUCACION = a.UBUCACION, FRESERVA_R = a.FRESERVA_R, IESS_R = a.IESS_R, FRESERVA_TOTAL = a.FRESERVA_TOTAL, IESS_TOTAL = a.IESS_TOTAL, Fila = a.Fila, IESS_2 = b != null ? b.IESS_2 : 0, FRESERVA_2 = b != null ? b.FRESERVA_2 : 0 }).ToList(); lst_final.Where(q => q.Fila == 1).ToList().ForEach(q => { q.FRESERVA_R += q.FRESERVA_TOTAL - (q.FRESERVA_R + (q.FRESERVA_2 ?? 0)); q.IESS_R += q.IESS_TOTAL - (q.IESS_R + (q.IESS_2 ?? 0)); q.TOTALI = q.SUELDO + q.OTROING + q.SOBRET + q.DECIMOC + q.DECIMOT + q.FRESERVA_R; q.TOTALE = q.PRESTAMO + q.IESS_R + q.ANTICIPO + q.OTROEGR; q.NETO = q.TOTALI - q.TOTALE; }); #endregion this.DataSource = lst_final; tb_empresa_Bus bus_empresa = new tb_empresa_Bus(); var emp = bus_empresa.get_info(IdEmpresa); lbl_empresa.Text = emp.em_nombre; if (emp != null && emp.em_logo != null) { ImageConverter obj = new ImageConverter(); lbl_imagen.Image = (Image)obj.ConvertFrom(emp.em_logo); } }