public Boolean AnularDB(ro_Horario_Info info) { try { using (EntitiesRoles context = new EntitiesRoles()) { var contact = context.ro_horario.First(minfo => minfo.IdEmpresa == info.IdEmpresa && minfo.IdHorario == info.IdHorario); contact.MotiAnula = info.MotiAnula; contact.IdUsuarioUltAnu = info.IdUsuarioUltAnu; contact.Fecha_UltAnu = info.Fecha_UltAnu; contact.Estado = "I"; context.SaveChanges(); } return(true); } catch (Exception ex) { string arreglo = ToString(); tb_sis_Log_Error_Vzen_Data oDataLog = new tb_sis_Log_Error_Vzen_Data(); tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now); mensaje = ex.InnerException + " " + ex.Message; oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje); throw new Exception(ex.InnerException.ToString()); } }
public Boolean ModificarDB(ro_Horario_Info Info, string msj) { try { using (EntitiesRoles context = new EntitiesRoles()) { var contact = context.ro_horario.First(var => var.IdEmpresa == Info.IdEmpresa && var.IdHorario == Info.IdHorario); contact.HoraIni = Info.HoraIni; contact.HoraFin = Info.HoraFin; contact.ToleranciaEnt = Info.ToleranciaEnt; contact.SalLunch = Info.SalLunch; contact.RegLunch = Info.RegLunch; contact.IdUsuario = Info.IdUsuario; contact.Fecha_UltMod = DateTime.Now; contact.ToleranciaEnt = Info.ToleranciaEnt; contact.ToleranciaReg_lunh = Info.ToleranciaReg_lunh; contact.Descripcion = Info.Descripcion; contact.IdUsuarioUltMod = Info.IdUsuarioUltMod; context.SaveChanges(); } return(true); } catch (Exception ex) { string arreglo = ToString(); tb_sis_Log_Error_Vzen_Data oDataLog = new tb_sis_Log_Error_Vzen_Data(); tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now); mensaje = ex.InnerException + " " + ex.Message; oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje); throw new Exception(ex.InnerException.ToString()); } }
public List <ro_Horario_Info> Get_List_Horario(int IdEmpresa) { List <ro_Horario_Info> lista = new List <ro_Horario_Info>(); try { using (EntitiesRoles Context = new EntitiesRoles()) { var Consulta = from q in Context.ro_horario where q.IdEmpresa == IdEmpresa select q; if (Consulta.Count() == 0) { return(new List <ro_Horario_Info>()); } foreach (var item in Consulta) { ro_Horario_Info info = new ro_Horario_Info(); info.IdEmpresa = item.IdEmpresa; info.IdHorario = item.IdHorario; info.HoraIni = item.HoraIni; info.HoraFin = item.HoraFin; info.ToleranciaEnt = Convert.ToInt32(item.ToleranciaEnt); info.ToleranciaSal = Convert.ToInt32(item.ToleranciaSal); info.InicioEntrada = item.InicioEntrada; info.FinalEntrada = item.FinalEntrada; info.InicioSal = item.InicioSal; info.FinalSalida = item.FinalSalida; info.SalLunch = item.SalLunch; info.RegLunch = item.RegLunch; info.Min_Almuerzo = Convert.ToInt32(item.MinLunch); info.Descripcion = item.Descripcion; info.MotiAnula = item.MotiAnula; info.Estado = item.Estado; info.Tolerancia_Hora = item.Tolerancia_Hora; info.Tolerancia_Minuto = item.Tolerancia_Minuto; lista.Add(info); } } return(lista); } catch (Exception ex) { string arreglo = ToString(); tb_sis_Log_Error_Vzen_Data oDataLog = new tb_sis_Log_Error_Vzen_Data(); tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now); mensaje = ex.InnerException + " " + ex.Message; oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje); throw new Exception(ex.InnerException.ToString()); } }
private void gridViewCons_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) { try { Info = new ro_Horario_Info(); Info = this.gridViewCons.GetFocusedRow() as ro_Horario_Info; } catch (Exception ex) { MessageBox.Show(ex.ToString()); Log_Error_bus.Log_Error(ex.ToString()); } }
public Boolean AnularDB(ro_Horario_Info info) { try { return(data.AnularDB(info)); } catch (Exception ex) { Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message); throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "AnularDB", ex.Message), ex) { EntityType = typeof(ro_Horario_Bus) }; } }
public Boolean GuardarDB(ro_Horario_Info Item, ref decimal Id, ref string mensaje) { try { return(data.GuardarDB(Item, ref Id, ref mensaje)); } catch (Exception ex) { Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message); throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "GuardarDB", ex.Message), ex) { EntityType = typeof(ro_Horario_Bus) }; } }
public Boolean GuardarDB(ro_Horario_Info Item, ref decimal Id, ref string mensaje) { try { using (EntitiesRoles Context = new EntitiesRoles()) { ro_horario infoHorario = new ro_horario(); infoHorario.IdEmpresa = Item.IdEmpresa; infoHorario.IdHorario = Id = GetIdHorario(Item.IdEmpresa); infoHorario.HoraIni = Item.HoraIni; infoHorario.HoraFin = Item.HoraFin; infoHorario.ToleranciaEnt = Item.ToleranciaEnt; infoHorario.ToleranciaSal = Item.ToleranciaSal; infoHorario.InicioEntrada = Item.InicioEntrada; infoHorario.FinalEntrada = Item.FinalEntrada; infoHorario.InicioSal = Item.InicioSal; infoHorario.FinalSalida = Item.FinalSalida; infoHorario.SalLunch = Item.SalLunch; infoHorario.RegLunch = Item.RegLunch; infoHorario.IdUsuario = Item.IdUsuario; infoHorario.Fecha_Transac = DateTime.Now; infoHorario.MinLunch = Item.Min_Almuerzo; //infoHorario.TotalHoras = Item.TotalHoras; infoHorario.Tolerancia_Hora = Item.Tolerancia_Hora; infoHorario.Tolerancia_Minuto = Item.Tolerancia_Minuto; infoHorario.Estado = Item.Estado; infoHorario.Descripcion = Item.Descripcion; Context.ro_horario.Add(infoHorario); Context.SaveChanges(); } return(true); } catch (Exception ex) { string arreglo = ToString(); tb_sis_Log_Error_Vzen_Data oDataLog = new tb_sis_Log_Error_Vzen_Data(); tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now); mensaje = ex.InnerException + " " + ex.Message; oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje); throw new Exception(ex.InnerException.ToString()); } }
public Boolean pu_CalcularHorasExtras(int idEmpresa, decimal idEmpleado, int idNominaTipo, int idNominaTipoLiqui, int idPeriodo, DateTime fechaInicial, DateTime fechaFinal, Boolean acreditaRol) { try { //if (idEmpleado == 59) //{ //} //JORNADA NOCTURNA TimeSpan inicioHora25 = TimeSpan.FromHours(19); //19:00 PM TimeSpan finalHora25 = TimeSpan.FromHours(6); //06:00 AM //HORAS EXTRAS 50 TimeSpan inicioHora50 = TimeSpan.FromHours(6); //06:00 AM TimeSpan finalHora50 = TimeSpan.FromHours(24); //24:00 PM //HORAS EXTRAS 100 TimeSpan inicioHora100 = TimeSpan.FromHours(0); //00:00 PM TimeSpan finalHora100 = TimeSpan.FromHours(6); //06:00 AM int contadorIN = 0; int contadorOUT = 0; Boolean banderaHorario = false; List <ro_Nomina_X_Horas_Extras_Info> listado = new List <ro_Nomina_X_Horas_Extras_Info>(); List <ro_marcaciones_x_empleado_Info> oListRo_marcaciones_x_empleado_Info = new List <ro_marcaciones_x_empleado_Info>(); //OBTENER LA PLANIFICACION DE HORARIOS DEL EMPLEADO List <ro_horario_planificacion_Info> oListRo_horario_planificacion_Info = new List <ro_horario_planificacion_Info>(); oListRo_horario_planificacion_Info = oRo_horario_planificacion_Bus.Get_List_horario_planificacion(idEmpresa, idEmpleado, fechaInicial, fechaFinal); //OBTENER LISTADO DE HORARIOS EN GENERAL List <ro_Horario_Info> oListRo_Horario_Info = new List <ro_Horario_Info>(); oListRo_Horario_Info = oRo_Horario_Bus.Get_List_Horario(idEmpresa); //RECORRE LA PLANIFICACION DE HORARIOS DEL EMPLEADO - DIA X DIA foreach (ro_horario_planificacion_Info horarioEmpleado in oListRo_horario_planificacion_Info) { ro_Nomina_X_Horas_Extras_Info info = new ro_Nomina_X_Horas_Extras_Info(); double horaExtra25 = 0; double horaExtra50 = 0; double horaExtra100 = 0; double horaAtraso = 0; double horaTemprano = 0; double horaTrabajada = 0; TimeSpan horaEntrada1 = new TimeSpan(); TimeSpan horaSalida1 = new TimeSpan(); TimeSpan horaEntrada2 = new TimeSpan(); TimeSpan horaSalida2 = new TimeSpan(); TimeSpan unDia = TimeSpan.FromHours(24); //24:00 PM //OBTIENE LOS DATOS DEL HORARIO DEL EMPLEADO ro_Horario_Info horarioActual = oListRo_Horario_Info.Where(v => v.IdHorario == horarioEmpleado.IdHorario).FirstOrDefault(); //COMBINO FECHA + HORA string subcadena = horarioEmpleado.IdCalendario.ToString(); int YYYY = Convert.ToInt32(subcadena.Substring(0, 4)); int mm = Convert.ToInt32(subcadena.Substring(4, 2)); int dd = Convert.ToInt32(subcadena.Substring(6, 2)); DateTime f1 = new DateTime(YYYY, mm, dd); DateTime f2 = new DateTime(YYYY, mm, dd); DateTime fechaMarcacionInicial = new DateTime(YYYY, mm, dd); DateTime fechaMarcacionFinal = new DateTime(YYYY, mm, dd); //AGREGA LOS TIEMPOS f1 = f1.Add((TimeSpan)horarioActual.InicioEntrada); f2 = f2.Add((TimeSpan)horarioActual.FinalSalida); //VERIFICAR HORARIO DEL MISMO DIA VS. HORARIO DEL DIA SIGUIENTE if (horarioActual.HoraIni <= horarioActual.HoraFin) //CORRESPONDE AL MISMO DIA { banderaHorario = false; } else //CORRESPONDE A PARTE DEL MISMO DIA, Y PARTE DEL DIA SIGUIENTE { f2 = f2.AddDays(1); banderaHorario = true; } //AQUI DEBE VERIFICAR SI TIENE VARIOS TURNOS EN EL MISMO DIA - MODALIDAD DE TURNOS DOBLES if (oRo_horario_planificacion_Bus.GetVerificarDobleTurno(horarioEmpleado.IdEmpresa, horarioEmpleado.IdEmpleado, horarioEmpleado.IdCalendario, ref mensaje)) { fechaMarcacionInicial = fechaMarcacionInicial.Add((TimeSpan)horarioActual.InicioEntrada); fechaMarcacionFinal = fechaMarcacionFinal.Add((TimeSpan)horarioActual.InicioEntrada).AddHours(11); } else { fechaMarcacionInicial = fechaMarcacionInicial.Add((TimeSpan)horarioActual.InicioEntrada); fechaMarcacionFinal = fechaMarcacionFinal.Add((TimeSpan)horarioActual.InicioEntrada).AddHours(12); } //OBTENER LAS MARCACIONES DEL EMPLEADO EN LA FECHA CORRESPONDIENTE oListRo_marcaciones_x_empleado_Info = oRo_marcaciones_x_empleado_Bus.Get_List_marcaciones_x_empleado(idEmpresa, idEmpleado, fechaMarcacionInicial, fechaMarcacionFinal); ro_marcaciones_x_empleado_Info info_entrada = new ro_marcaciones_x_empleado_Info(); ro_marcaciones_x_empleado_Info info_salida = new ro_marcaciones_x_empleado_Info(); // si marco mas de una vez try { info_entrada = oListRo_marcaciones_x_empleado_Info.Where(v => v.IdTipoMarcaciones == "IN").FirstOrDefault(); } catch (Exception) { } try { info_salida = oListRo_marcaciones_x_empleado_Info.Where(v => v.IdTipoMarcaciones == "OUT").FirstOrDefault(); } catch (Exception) { } oListRo_marcaciones_x_empleado_Info = new List <ro_marcaciones_x_empleado_Info>(); if (info_entrada != null) { oListRo_marcaciones_x_empleado_Info.Add(info_entrada); } if (info_salida != null) { oListRo_marcaciones_x_empleado_Info.Add(info_salida); } contadorIN = 0; contadorOUT = 0; //RECORRER EL LISTADO DE MARCACIONES OBTENIDO foreach (var item in oListRo_marcaciones_x_empleado_Info) { // cambio por tolerancia de horas y minutos Carlos cedeño // este cambio es exclusivo para edehsa aqui revisar con el sensei como se puede hacer // este cambio es exclusivo para edehsa aqui revisar con el sensei como se puede hacer if (item.IdTipoMarcaciones == "IN") { if (item.es_Hora > horarioActual.InicioEntrada) { item.es_Hora = (TimeSpan)horarioActual.InicioEntrada; } } // horarioActual if (item.IdTipoMarcaciones == "OUT") { if (horarioActual.Tolerancia_Hora != null && horarioActual.Tolerancia_Minuto != null) { int hora = Convert.ToInt32(item.es_Hora.ToString().Substring(0, 2)); int minuto = Convert.ToInt32(item.es_Hora.ToString().Substring(3, 2)); if (minuto < horarioActual.Tolerancia_Minuto) { minuto = 0; } if (minuto < horarioActual.Tolerancia_Hora && minuto > horarioActual.Tolerancia_Minuto) { minuto = 30; } if (minuto > horarioActual.Tolerancia_Hora) { hora = hora + 1; minuto = 0; } item.es_Hora = new TimeSpan(hora, minuto, 0); } } if (item.IdTipoMarcaciones == "IN") { contadorIN++; } else { if (item.IdTipoMarcaciones == "OUT") { contadorOUT++; } } //ENTRADAS if (contadorIN == 1 && contadorOUT == 0) { horaEntrada1 = (TimeSpan)item.es_Hora; horaEntrada2 = (TimeSpan)item.es_Hora; } else { if (contadorIN == 2) { horaEntrada2 = (TimeSpan)item.es_Hora; contadorIN++; } } //SALIDAS if (contadorOUT == 1 && contadorIN <= 2) { horaSalida1 = (TimeSpan)item.es_Hora; horaSalida2 = (TimeSpan)item.es_Hora; } else { if (contadorOUT == 2) { horaSalida2 = (TimeSpan)item.es_Hora; contadorOUT++; } } } //PROCESAR HORAS EXTRAS info.IdEmpresa = idEmpresa; info.IdEmpleado = idEmpleado; info.IdCalendario = horarioEmpleado.IdCalendario; info.IdNominaTipo = idNominaTipo; info.IdNominaTipoLiqui = idNominaTipoLiqui; info.IdPeriodo = idPeriodo; info.IdHorario = horarioActual.IdHorario; ///AQUI REVISAR PARA LOS TURNOS DOBLES info.IdTurno = horarioEmpleado.IdRegistro; info.FechaRegistro = Convert.ToDateTime(f1.ToShortDateString()); info.time_entrada1 = horaEntrada1; info.time_entrada2 = horaEntrada2; info.time_salida1 = horaSalida1; info.time_salida2 = horaSalida2; //CALCULA HORAS DE ATRASO if (horaEntrada1 > (TimeSpan)horarioActual.FinalEntrada) { horaAtraso = (horaEntrada1 - (TimeSpan)horarioActual.HoraIni).TotalHours; //TOTAL DE HORAS DE ATRASO horaSalida2 = horaSalida2.Subtract(horaEntrada1 - (TimeSpan)horarioActual.HoraIni); // AQUI SE RESTA EL ATRASO A LA HORA DE SALIDA } int dia_semana = ((int)f1.DayOfWeek == 0) ? 7 : (int)f1.DayOfWeek; if (dia_semana >= 1 && dia_semana <= 5) //VERIFICA QUE LOS DIAS DE TRABAJO SON DE LUNES A VIERNES { //VERIFICA QUE TURNO TIENE EL EMPLEADO (DIURNO - NOCTURNO) if (banderaHorario == false)//TURNO DIURNO { //CALCULA SALIDAS TEMPRANO if (horaSalida2 < (TimeSpan)horarioActual.HoraFin && horaSalida2 > (TimeSpan)horarioActual.InicioEntrada) { horaTemprano = ((TimeSpan)horarioActual.HoraFin - horaSalida2).TotalHours; } //CALCULA LAS HORAS TRABAJADAS if (horaSalida2 >= horaEntrada1) { if (horaSalida1 > horaEntrada1 && horaSalida1 < horaEntrada2) { horaTrabajada = (horaSalida1 - horaEntrada1).TotalHours + (horaSalida2 - horaEntrada2).TotalHours; } else { horaTrabajada = (horaSalida2 - horaEntrada1).TotalHours; } } else { if (horaSalida1 > horaEntrada1 && horaSalida1 < horaEntrada2) { horaTrabajada = (horaSalida1 - horaEntrada1).TotalHours + (unDia - horaEntrada2).TotalHours + horaSalida2.TotalHours; } else { horaTrabajada = (unDia - horaEntrada1).TotalHours + horaSalida2.TotalHours; } } if (horaTrabajada > 0) { //VERIFICA QUE LA SALIDA CORRESPONDA A HORAS EXTRAS DEL MISMO DIA if (horaSalida2 > (TimeSpan)horarioActual.FinalSalida && horaSalida2 > horaEntrada1) { //VERIFICA SI TIENE HORAS EXTRAS 100 if (horaSalida2 > inicioHora100 && horaSalida2 <= finalHora100) { horaExtra100 = (horaSalida2 - finalHora100).TotalHours; //TOTAL DE HORAS EXTRAS 100 } else { //VERIFICA SI TIENE HORAS EXTRAS 50% if (horaSalida2 > inicioHora50 && horaSalida2 < finalHora50) { horaExtra50 = (horaSalida2 - (TimeSpan)horarioActual.FinalSalida).TotalHours; //TOTAL DE HORAS EXTRAS 50% } } } else { if (horaSalida2 < (TimeSpan)horarioActual.InicioEntrada) { horaExtra50 = (finalHora50 - (TimeSpan)horarioActual.FinalSalida).TotalHours; //TOTAL DE HORAS EXTRAS 50% horaExtra100 = (horaSalida2 - inicioHora100).TotalHours; //TOTAL DE HORAS EXTRAS 100 } } } } else { //***********************************TURNO NOCTURNO***************************************** //CALCULA SALIDAS TEMPRANO if (horaSalida2 < (TimeSpan)horarioActual.HoraFin && (unDia + horaSalida2) > (TimeSpan)horarioActual.InicioEntrada) { horaTemprano = ((TimeSpan)horarioActual.HoraFin - horaSalida2).TotalHours; if (horaEntrada1.TotalHours == 0 && horaEntrada2.TotalHours == 0) { horaTemprano = 0; } } //VERIFICA SI ES JORNADA NOCTURNA if (horaEntrada1 >= inicioHora25 && horaEntrada1 <= (unDia + finalHora25) && banderaHorario) { //horaExtra25 = (horaSalida2 - finalHora25).Hours; //TOTAL DE HORAS DE JORNADA NOCTURNA horaExtra25 = ((unDia + horaSalida2) - horaEntrada1).TotalHours; //TOTAL DE HORAS DE JORNADA NOCTURNA if (horaExtra25 > 8) { horaExtra25 = 8; } } //CALCULO DE HORAS EXTRAS if (horaSalida2 > horaEntrada1 && horaSalida2 < finalHora50) { horaTrabajada = (horaSalida2.TotalHours - horaEntrada1.TotalHours); } else { if (horaSalida2 > inicioHora100) { horaTrabajada = (unDia + horaSalida2).TotalHours - horaEntrada1.TotalHours; if (horaSalida2 > (TimeSpan)horarioActual.HoraFin && horaSalida2 <= finalHora100) { horaExtra100 = (horaSalida2 - (TimeSpan)horarioActual.HoraFin).TotalHours; } else { if (horaSalida2 > (TimeSpan)horarioActual.HoraFin && horaSalida2 > inicioHora50 && horaSalida2 <= finalHora50) { horaExtra100 = (inicioHora50 - (TimeSpan)horarioActual.HoraFin).TotalHours; horaExtra50 = (horaSalida2 - inicioHora50).TotalHours; } } } } } //CIERRE TURNO NOCTURNO } else { if (dia_semana == 6 | dia_semana == 7) //REPRESENTA SABADO Y DOMINGO { if (horaEntrada1 != horaSalida2) { //CALCULO DE HORAS EXTRAS if (dia_semana == 6)//SOLO SABADO { if (horaSalida2 > (TimeSpan)horarioActual.HoraIni && horaSalida2 < finalHora50) { horaExtra100 = (horaSalida2 - (TimeSpan)horarioActual.HoraIni).TotalHours; //CALCULA LA SALIDA TEMPRANA if (horaSalida2.TotalHours < (unDia + (TimeSpan)horarioActual.FinalSalida).TotalHours) { horaTemprano = ((unDia + (TimeSpan)horarioActual.FinalSalida) - horaSalida2).TotalHours; } //CALCULA HORAS TRABAJADAS horaTrabajada = (horaSalida2 - horaEntrada1).TotalHours; } else { if (horaSalida2.Hours > 0) { horaExtra100 = ((unDia + horaSalida2) - (TimeSpan)horarioActual.HoraIni).TotalHours; } Info_dias = List_dias.Where(v => v.Id_dia == 6).FirstOrDefault(); if (Convert.ToInt32(horaExtra100) > Info_dias.sdia_completo_a_partir_de && horaExtra100 <= 8) { horaExtra100 = 8; } //CALCULA LA SALIDA TEMPRANA if (horaSalida2 < (TimeSpan)horarioActual.HoraFin) { horaTemprano = ((TimeSpan)horarioActual.HoraFin - horaSalida2).TotalHours; } //CALCULA HORAS TRABAJADAS horaTrabajada = ((unDia + horaSalida2) - horaEntrada1).TotalHours; } } else { if (dia_semana == 7) //SOLO DOMINGO { if (horaSalida2 > (TimeSpan)horarioActual.HoraIni && horaSalida2 < finalHora50) //SALIDA ANTES DE LAS 24h00 { horaExtra100 = (horaSalida2 - (TimeSpan)horarioActual.HoraIni).TotalHours; Info_dias = List_dias.Where(v => v.Id_dia == 7).FirstOrDefault(); if (Convert.ToInt32(horaExtra100) > Info_dias.sdia_completo_a_partir_de && horaExtra100 <= 8) { horaExtra100 = 8; } //CALCULA LA SALIDA TEMPRANA if (horaSalida2 < (TimeSpan)horarioActual.FinalSalida) { horaTemprano = ((TimeSpan)horarioActual.FinalSalida - (horaSalida2)).TotalHours; } //CALCULA HORAS TRABAJADAS horaTrabajada = (horaSalida2 - horaEntrada1).TotalHours; } else { //SALIDA DESPUES DE LAS 24h00 } } } } } }//CIERRE DIA DE LA SEMANA //VERIFICA SI EL EMPLEADO ESTA AUTORIZADO PARA COBRAR HORAS EXTRAS if (acreditaRol) { info.hora_extra25 = horaExtra25; info.hora_extra50 = horaExtra50; info.hora_extra100 = horaExtra100; } else { info.hora_extra25 = 0; info.hora_extra50 = 0; info.hora_extra100 = 0; } info.hora_atraso = horaAtraso; info.hora_atraso = 0; info.hora_temprano = horaTemprano; info.hora_trabajada = horaTrabajada; GuardarBD(info, ref mensaje); } return(true); } catch (Exception ex) { Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message); throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "pu_CalcularHorasExtras", ex.Message), ex) { EntityType = typeof(ro_Nomina_X_Horas_Extras_Bus) }; } }