public bool modificarDB(ro_SancionesPorMarcaciones_Info info) { try { ro_SancionesPorMarcaciones_x_novedad_Data odata_novedad_x_sanciones = new ro_SancionesPorMarcaciones_x_novedad_Data(); ro_empleado_novedad_Data odata_novedad = new ro_empleado_novedad_Data(); var lista_novedades_a_eliminar = odata_novedad_x_sanciones.get_list(info.IdEmpresa, info.IdAjuste).ToList(); using (Entities_rrhh Context = new Entities_rrhh()) { #region modificando cabecera ro_SancionesPorMarcaciones entity = Context.ro_SancionesPorMarcaciones.Where(v => v.IdEmpresa == info.IdEmpresa && v.IdAjuste == info.IdAjuste).FirstOrDefault(); if (entity == null) { return(false); } entity.FechaInicio = info.FechaInicio; entity.FechaFin = info.FechaFin; entity.Observacion = info.Observacion; entity.FechaNovedades = info.FechaNovedades; entity.IdUsuarioUltMod = info.IdUsuarioUltMod; entity.Fecha_UltMod = DateTime.Now; #endregion #region eliminado detalle #region eliminando novedad por sancion var ro_sanciones_det = Context.ro_SancionesPorMarcaciones_det.Where(v => v.IdEmpresa == info.IdEmpresa && v.IdAjuste == info.IdAjuste); Context.ro_SancionesPorMarcaciones_det.RemoveRange(ro_sanciones_det); #endregion #endregion #region eliminando novedad por sancion var ro_novedad_x_sanciones = Context.ro_SancionesPorMarcaciones_x_novedad.Where(v => v.IdEmpresa == info.IdEmpresa && v.IdAjuste == info.IdAjuste); Context.ro_SancionesPorMarcaciones_x_novedad.RemoveRange(ro_novedad_x_sanciones); #endregion #region eliminado_novedades foreach (var item in lista_novedades_a_eliminar) { var info_novedad_det = Context.ro_empleado_novedad_det.Where(q => q.IdEmpresa == item.IdEmpresa && q.IdNovedad == item.IdNovedad).FirstOrDefault(); Context.ro_empleado_novedad_det.Remove(info_novedad_det); var info_novedad = Context.ro_empleado_Novedad.Where(q => q.IdEmpresa == item.IdEmpresa && q.IdNovedad == item.IdNovedad && q.IdEmpleado == item.IdEmpleado).FirstOrDefault(); Context.ro_empleado_Novedad.Remove(info_novedad); } #endregion #region grabando novedades decimal IdNovedad = odata_novedad.get_id(info.IdEmpresa); int secuancia = 1; foreach (var item in info.detalle) { ro_SancionesPorMarcaciones_det entity_det = new ro_SancionesPorMarcaciones_det { IdEmpresa = info.IdEmpresa, IdSucursal = item.IdSucursal, IdAjuste = info.IdAjuste, IdCalendario = item.IdCalendario, IdEmpleado = item.IdEmpleado, EsHoraIngreso = item.HoraIni, HoraIngreso = item.time_entrada1, EsHoraSalida = item.HoraFin, HoraSalio = item.time_salida1, Minutos = item.Minutos, FechaRegistro = item.es_fechaRegistro, Secuencia = secuancia }; Context.ro_SancionesPorMarcaciones_det.Add(entity_det); secuancia++; } // agrupnado para obter valor para novedad secuancia = 1; var lista_novedades = (from q in info.detalle group q by new { q.IdEmpresa, q.IdSucursal, q.IdEmpleado, q.Minutos, q.Sueldo } into Grupo select new ro_SancionesPorMarcaciones_x_novedad_Info { IdEmpresa = Grupo.Key.IdEmpresa, IdSucursal = Grupo.Key.IdSucursal, IdEmpleado = Grupo.Key.IdEmpleado, Valor = Grupo.Sum(s => s.Minutos), Sueldo = Grupo.Key.Sueldo }).ToList(); // grabando novedades foreach (var item in lista_novedades) { ro_empleado_Novedad novedad = new ro_empleado_Novedad { IdEmpresa = info.IdEmpresa, IdSucursal = item.IdSucursal, IdNovedad = IdNovedad, IdEmpleado = item.IdEmpleado, IdNomina_Tipo = info.IdNomina_Tipo, IdNomina_TipoLiqui = info.IdNomina_TipoLiqui, Observacion = "Novedad generada por proceso del sistema fecha descuento " + info.FechaNovedades.ToString().Substring(0, 10), Fecha = info.FechaNovedades, Estado = "A", Fecha_Transac = DateTime.Now, IdUsuario = info.IdUsuario }; Context.ro_empleado_Novedad.Add(novedad); ro_empleado_novedad_det novedad_det = new ro_empleado_novedad_det { IdEmpresa = info.IdEmpresa, IdNovedad = IdNovedad, IdRubro = "200", Valor = item.Valor * (((Convert.ToDouble(item.Sueldo)) / 240) / 60), FechaPago = info.FechaNovedades, EstadoCobro = "PEN", Observacion = "Novedad generda por proceso del sistema", Secuencia = 1, }; novedad_det.Valor = Math.Round(novedad_det.Valor, 2); Context.ro_empleado_novedad_det.Add(novedad_det); ro_SancionesPorMarcaciones_x_novedad novedad_x_sanc = new ro_SancionesPorMarcaciones_x_novedad { IdEmpresa = info.IdEmpresa, IdAjuste = info.IdAjuste, Secuencia = secuancia, IdNovedad = novedad.IdNovedad, IdEmpresa_nov = info.IdEmpresa, IdEmpleado = item.IdEmpleado, IdNomina_Tipo = info.IdNomina_Tipo, IdNomina_TipoLiqui = info.IdNomina_TipoLiqui }; Context.ro_SancionesPorMarcaciones_x_novedad.Add(novedad_x_sanc); IdNovedad++; secuancia++; } #endregion Context.SaveChanges(); } return(true); } catch (Exception ex) { throw; } }
public bool guardarDB(ro_SancionesPorMarcaciones_Info info) { try { ro_empleado_novedad_Data odata_novedad = new ro_empleado_novedad_Data(); decimal IdNovedad = odata_novedad.get_id(info.IdEmpresa); int secuancia = 1; using (Entities_rrhh Context = new Entities_rrhh()) { ro_SancionesPorMarcaciones entity = new ro_SancionesPorMarcaciones { IdEmpresa = info.IdEmpresa, IdAjuste = info.IdAjuste = get_id(info.IdEmpresa), IdNomina_Tipo = info.IdNomina_Tipo, IdNomina_TipoLiqui = info.IdNomina_TipoLiqui, FechaInicio = info.FechaInicio, FechaFin = info.FechaFin, Observacion = info.Observacion, Fecha_Transac = DateTime.Now, IdUsuario = info.IdUsuario, Estado = true, FechaNovedades = info.FechaNovedades }; Context.ro_SancionesPorMarcaciones.Add(entity); foreach (var item in info.detalle) { ro_SancionesPorMarcaciones_det entity_det = new ro_SancionesPorMarcaciones_det { IdEmpresa = info.IdEmpresa, IdSucursal = item.IdSucursal, IdAjuste = info.IdAjuste, IdCalendario = item.IdCalendario, IdEmpleado = item.IdEmpleado, EsHoraIngreso = item.HoraIni, HoraIngreso = item.time_entrada1, EsHoraSalida = item.HoraFin, HoraSalio = item.time_salida1, Minutos = item.Minutos, FechaRegistro = item.es_fechaRegistro, Secuencia = secuancia }; Context.ro_SancionesPorMarcaciones_det.Add(entity_det); secuancia++; } // agrupnado para obter valor para novedad secuancia = 1; var lista_novedades = (from q in info.detalle group q by new { q.IdEmpresa, q.IdSucursal, q.IdEmpleado, q.Minutos, q.Sueldo } into Grupo select new ro_SancionesPorMarcaciones_x_novedad_Info { IdEmpresa = Grupo.Key.IdEmpresa, IdSucursal = Grupo.Key.IdSucursal, IdEmpleado = Grupo.Key.IdEmpleado, Valor = Grupo.Sum(s => s.Minutos), Sueldo = Grupo.Key.Sueldo }).ToList(); // grabando novedades foreach (var item in lista_novedades) { ro_empleado_Novedad novedad = new ro_empleado_Novedad { IdEmpresa = info.IdEmpresa, IdSucursal = item.IdSucursal, IdNovedad = IdNovedad, IdEmpleado = item.IdEmpleado, IdNomina_Tipo = info.IdNomina_Tipo, IdNomina_TipoLiqui = info.IdNomina_TipoLiqui, Observacion = "Novedad generada por proceso del sistema fecha descuento " + info.FechaNovedades.ToString().Substring(0, 10), Fecha = info.FechaNovedades, Estado = "A", Fecha_Transac = DateTime.Now, IdUsuario = info.IdUsuario }; Context.ro_empleado_Novedad.Add(novedad); ro_empleado_novedad_det novedad_det = new ro_empleado_novedad_det { IdEmpresa = info.IdEmpresa, IdNovedad = IdNovedad, IdRubro = "200", Valor = item.Valor * (((Convert.ToDouble(item.Sueldo)) / 240) / 60), FechaPago = info.FechaNovedades, EstadoCobro = "PEN", Observacion = "Novedad generda por proceso del sistema", Secuencia = 1, }; novedad_det.Valor = Math.Round(novedad_det.Valor, 2); Context.ro_empleado_novedad_det.Add(novedad_det); ro_SancionesPorMarcaciones_x_novedad novedad_x_sanc = new ro_SancionesPorMarcaciones_x_novedad { IdEmpresa = info.IdEmpresa, IdAjuste = info.IdAjuste, Secuencia = secuancia, IdNovedad = novedad.IdNovedad, IdEmpresa_nov = info.IdEmpresa, IdEmpleado = item.IdEmpleado, IdNomina_Tipo = info.IdNomina_Tipo, IdNomina_TipoLiqui = info.IdNomina_TipoLiqui }; Context.ro_SancionesPorMarcaciones_x_novedad.Add(novedad_x_sanc); IdNovedad++; secuancia++; } Context.SaveChanges(); } return(true); } catch (Exception ex) { throw; } }
public bool AprobarHE(ro_nomina_x_horas_extras_Info info) { try { ro_empleado_novedad_Data odata_novedad = new ro_empleado_novedad_Data(); decimal IdNovedad = odata_novedad.get_id(info.IdEmpresa); ro_nomina_x_horas_extras_det_Data odata = new ro_nomina_x_horas_extras_det_Data(); ro_periodo_Data bus_periodo = new ro_periodo_Data(); ro_periodo_Info info_periodo = new ro_periodo_Info(); info_periodo = bus_periodo.get_info(info.IdEmpresa, info.IdPeriodo); //var lst_horas_extras_aprobar = odata.get_lst_horas_extras_aprobar(info.IdEmpresa, info.IdNomina_Tipo, info.IdNomina_TipoLiqui, info.IdPeriodo); using (Entities_rrhh content = new Entities_rrhh()) { var ro_rubro_calculados = content.ro_rubros_calculados.FirstOrDefault(s => s.IdEmpresa == info.IdEmpresa); if (ro_rubro_calculados == null) { return(false); } var ro_horas_extras = content.ro_nomina_x_horas_extras.FirstOrDefault(s => s.IdEmpresa == info.IdEmpresa && s.IdHorasExtras == info.IdHorasExtras); if (ro_horas_extras == null) { return(false); } ro_horas_extras.Estado = "P"; foreach (var item in info.lst_nomina_horas_extras) { if (item.Valor25 > 0) { IdNovedad++; ro_empleado_Novedad info_novedad_25 = new ro_empleado_Novedad() { IdNovedad = IdNovedad, IdEmpresa = info.IdEmpresa, IdSucursal = item.IdSucursal, IdEmpleado = item.IdEmpleado, IdNomina_Tipo = info.IdNomina_Tipo, IdNomina_TipoLiqui = info.IdNomina_TipoLiqui, Observacion = "Hora extra al 25 % correspondiente al periodo " + info.IdPeriodo.ToString(), Fecha_Transac = DateTime.Now, IdUsuario = info.IdUsuario, Fecha = item.FechaRegistro.Date, Estado = "A" }; content.ro_empleado_Novedad.Add(info_novedad_25); ro_empleado_novedad_det info_det_25 = new ro_empleado_novedad_det() { IdEmpresa = info.IdEmpresa, IdNovedad = IdNovedad, Secuencia = 1, Valor = Math.Round(item.Valor25, 2), FechaPago = info_periodo.pe_FechaFin, IdRubro = "7", Observacion = "Hora extra al 25 % correspondiente al periodo " + info.IdPeriodo.ToString(), EstadoCobro = "PEN" }; content.ro_empleado_novedad_det.Add(info_det_25); } ; if (item.Valor50 > 0) { IdNovedad++; ro_empleado_Novedad info_novedad_50 = new ro_empleado_Novedad() { IdNovedad = IdNovedad, IdSucursal = item.IdSucursal, IdEmpresa = info.IdEmpresa, IdEmpleado = item.IdEmpleado, IdNomina_Tipo = info.IdNomina_Tipo, IdNomina_TipoLiqui = info.IdNomina_TipoLiqui, Observacion = "Hora extra al 50 % correspondiente al periodo " + info.IdPeriodo.ToString(), Fecha_Transac = DateTime.Now, IdUsuario = info.IdUsuario, Fecha = item.FechaRegistro.Date, Estado = "A" }; content.ro_empleado_Novedad.Add(info_novedad_50); ro_empleado_novedad_det info_det_50 = new ro_empleado_novedad_det() { IdEmpresa = info.IdEmpresa, IdNovedad = IdNovedad, Secuencia = 1, Valor = Math.Round(item.Valor50, 2), FechaPago = info_periodo.pe_FechaFin, IdRubro = "8", Observacion = "Hora extra al 50 % correspondiente al periodo " + info.IdPeriodo.ToString(), EstadoCobro = "PEN" }; content.ro_empleado_novedad_det.Add(info_det_50); } ; if (item.hora_extra100 > 0) { IdNovedad++; ro_empleado_Novedad info_novedad_100 = new ro_empleado_Novedad() { IdNovedad = IdNovedad, IdSucursal = item.IdSucursal, IdEmpresa = info.IdEmpresa, IdEmpleado = item.IdEmpleado, IdNomina_Tipo = info.IdNomina_Tipo, IdNomina_TipoLiqui = info.IdNomina_TipoLiqui, Observacion = "Hora extra al 50 % correspondiente al periodo " + info.IdPeriodo.ToString(), Fecha_Transac = DateTime.Now, IdUsuario = info.IdUsuario, Fecha = item.FechaRegistro.Date, Estado = "A" }; content.ro_empleado_Novedad.Add(info_novedad_100); ro_empleado_novedad_det info_det_100 = new ro_empleado_novedad_det() { IdEmpresa = info.IdEmpresa, IdNovedad = IdNovedad, Secuencia = 1, Valor = Math.Round(item.Valor100, 2), FechaPago = info_periodo.pe_FechaFin, IdRubro = "8", Observacion = "Hora extra al 100 % correspondiente al periodo " + info.IdPeriodo.ToString(), EstadoCobro = "PEN" }; content.ro_empleado_novedad_det.Add(info_det_100); } ; } content.SaveChanges(); odata.Modificar_estado_aprobacion(info.IdHorasExtras, 1); } return(true); } catch (Exception) { throw; } }