public ActionResult Nuevo() { #region Validar Session if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession)) { return(RedirectToAction("Login", new { Area = "", Controller = "Account" })); } SessionFixed.IdTransaccionSession = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString(); SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession; #endregion empleado_info_list.set_list(bus_empleado.get_list_combo(Convert.ToInt32(SessionFixed.IdEmpresa)), Convert.ToDecimal(SessionFixed.IdTransaccionSession)); #region Validar Session if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession)) { return(RedirectToAction("Login", new { Area = "", Controller = "Account" })); } SessionFixed.IdTransaccionSession = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString(); SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession; #endregion ro_marcaciones_x_empleado_Info model = new ro_marcaciones_x_empleado_Info { IdEmpresa = Convert.ToInt32(SessionFixed.IdEmpresa), Fecha_Transac = DateTime.Now, IdNomina = 1, IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSession) }; model.detalle = new List <ro_marcaciones_x_empleado_Info>(); detalle.set_list(model.detalle, model.IdTransaccionSession); cargar_combos(); return(View(model)); }
public bool si_existe(ro_marcaciones_x_empleado_Info info) { try { using (Entities_rrhh Context = new Entities_rrhh()) { var lst = from q in Context.ro_marcaciones_x_empleado where q.IdEmpresa == info.IdEmpresa && q.IdEmpleado == info.IdEmpleado && q.IdTipoMarcaciones == info.IdTipoMarcaciones && q.IdCalendadrio == info.IdCalendadrio select q; if (lst.Count() > 0) { return(true); } else { return(false); } } } catch (Exception) { throw; } }
public bool anularDB(ro_marcaciones_x_empleado_Info info) { try { using (Entities_rrhh Context = new Entities_rrhh()) { ro_marcaciones_x_empleado Entity = Context.ro_marcaciones_x_empleado.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdRegistro == info.IdRegistro); if (Entity == null) { return(false); } Entity.Estado = info.Estado = "I"; Entity.IdUsuarioUltAnu = info.IdUsuarioUltAnu; Entity.Fecha_UltAnu = info.Fecha_UltAnu = DateTime.Now; Context.SaveChanges(); } return(true); } catch (Exception) { throw; } }
public bool guardarDB(ro_marcaciones_x_empleado_Info info) { try { using (Entities_rrhh Context = new Entities_rrhh()) { ro_marcaciones_x_empleado Entity = new ro_marcaciones_x_empleado { IdEmpresa = info.IdEmpresa, IdRegistro = info.IdRegistro = get_id(info.IdEmpresa), IdEmpleado = info.IdEmpleado, IdCalendadrio = info.IdCalendadrio, IdTipoMarcaciones = info.IdTipoMarcaciones, IdNomina = info.IdNomina, es_Hora = info.es_Hora, es_fechaRegistro = info.es_fechaRegistro.Date, Observacion = info.Observacion, IdUsuario = info.IdUsuario, Estado = info.Estado = "A", Fecha_Transac = info.Fecha_Transac = DateTime.Now }; Context.ro_marcaciones_x_empleado.Add(Entity); Context.SaveChanges(); } return(true); } catch (Exception) { throw; } }
public bool modificarDB(ro_marcaciones_x_empleado_Info info) { try { using (Entities_rrhh Context = new Entities_rrhh()) { ro_marcaciones_x_empleado Entity = Context.ro_marcaciones_x_empleado.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdRegistro == info.IdRegistro); if (Entity == null) { return(false); } Entity.IdEmpleado = info.IdEmpleado; Entity.IdCalendadrio = info.IdCalendadrio; Entity.IdTipoMarcaciones = info.IdTipoMarcaciones; Entity.IdNomina = info.IdNomina; Entity.es_Hora = info.es_Hora; Entity.es_fechaRegistro = info.es_fechaRegistro.Date; Entity.Observacion = info.Observacion; Entity.Fecha_UltMod = info.Fecha_UltMod = DateTime.Now; Entity.IdUsuarioUltModi = info.IdUsuarioUltModi; Context.SaveChanges(); } return(true); } catch (Exception) { throw; } }
public ActionResult Modificar(ro_marcaciones_x_empleado_Info info) { try { if (ModelState.IsValid) { if (!bus_marcaciones.modificarDB(info)) { cargar_combo(); return(View(info)); } else { return(RedirectToAction("Index")); } } else { return(View(info)); } } catch (Exception) { throw; } }
public ActionResult Nuevo(ro_marcaciones_x_empleado_Info info) { try { if (ModelState.IsValid) { info.IdUsuario = Session["IdUsuario"].ToString(); info.IdEmpresa = GetIdEmpresa(); if (!bus_marcaciones.guardarDB(info)) { cargar_combo(); return(View(info)); } else { return(RedirectToAction("Index")); } } else { return(View(info)); } } catch (Exception) { throw; } }
public bool eliminarDB(ro_marcaciones_x_empleado_Info info) { try { return(odata.eliminarDB(info)); } catch (Exception) { throw; } }
public bool modificarDB(ro_marcaciones_x_empleado_Info info) { try { info.IdCalendadrio = Convert.ToInt32(info.es_fechaRegistro.ToString("ddMMyyyy")); return(odata.modificarDB(info)); } catch (Exception) { throw; } }
public void AddRow(ro_nomina_x_horas_extras_det_Info info_det, decimal IdTransaccionSession) { var IdEmpresa = Convert.ToInt32(SessionFixed.IdEmpresa); List <ro_nomina_x_horas_extras_det_Info> list = get_list(IdTransaccionSession); if (info_det.time_entrada1 != null && info_det.time_salida1 != null) { //var empleado = bus_empleado.get_info(IdEmpresa, info_det.IdEmpleado); var empleado = empleado_info_list.get_list(IdTransaccionSession).Where(v => v.IdEmpleado == info_det.IdEmpleado).FirstOrDefault(); info_det.pe_nombreCompleto = empleado.Empleado; List <ro_marcaciones_x_empleado_Info> lista_marcacion = new List <ro_marcaciones_x_empleado_Info>(); var info_entrada = new ro_marcaciones_x_empleado_Info { IdEmpleado = info_det.IdEmpleado, IdEmpresa = IdEmpresa, es_fechaRegistro = info_det.FechaRegistro, IdCalendadrio = Convert.ToInt32(info_det.FechaRegistro.ToString("ddMMyyyy")), IdNomina = empleado.IdTipoNomina, IdUsuario = SessionFixed.IdUsuario, es_Hora = new TimeSpan(info_det.time_entrada1_date.Hour, info_det.time_entrada1_date.Minute, 0), IdTipoMarcaciones = cl_enumeradores.eTipoMarcacionRRHH.IN1.ToString(), pe_NombreCompleato = empleado.Empleado, pe_cedula = empleado.pe_cedulaRuc, EstadoBool = true, //IdRegistro = cont++ }; lista_marcacion.Add(info_entrada); var info_salida = new ro_marcaciones_x_empleado_Info { IdEmpleado = info_det.IdEmpleado, IdEmpresa = IdEmpresa, es_fechaRegistro = info_det.FechaRegistro, IdCalendadrio = Convert.ToInt32(info_det.FechaRegistro.ToString("ddMMyyyy")), IdNomina = empleado.IdTipoNomina, IdUsuario = SessionFixed.IdUsuario, es_Hora = new TimeSpan(info_det.time_salida1_date.Hour, info_det.time_salida1_date.Minute, 0), IdTipoMarcaciones = cl_enumeradores.eTipoMarcacionRRHH.OUT1.ToString(), pe_NombreCompleato = empleado.Empleado, pe_cedula = empleado.pe_cedulaRuc, EstadoBool = true, //IdRegistro = cont++ }; lista_marcacion.Add(info_salida); if (bus_marcaciones.guardarDB(lista_marcacion, IdEmpresa)) { list.Add(info_det); } } }
private void gridViewMarcacion_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) { try { Info = new ro_marcaciones_x_empleado_Info(); Info = this.gridViewMarcacion.GetFocusedRow() as ro_marcaciones_x_empleado_Info; } catch (Exception ex) { MessageBox.Show(ex.ToString()); Log_Error_bus.Log_Error(ex.ToString()); } }
public bool getInfo() { try { ListMarc = new List <ro_marcaciones_x_empleado_Info>(); foreach (var item in ListaMarcacionesExterna) { int semana = 0; if (item.Si_empleadoExisteBaseVZEN == true && item.check == true) { // creo el registro de ingreso InfoCalendario = Bus_Calendario.Get_Info_Calendario(Convert.ToDateTime(item.es_fechaRegistro)); info = new ro_marcaciones_x_empleado_Info(); info.IdEmpresa = param.IdEmpresa; info.IdRegistro = null; info.IdEmpleado = item.IdEmpleado; info.secuencia = 1; info.es_Hora = item.HMarcacion; info.es_fechaRegistro = Convert.ToDateTime(item.es_fechaRegistro.ToString().Substring(0, 10)); info.es_anio = Convert.ToDateTime(item.es_fechaRegistro).Year; info.es_mes = Convert.ToDateTime(item.es_fechaRegistro).Month; info.es_dia = Convert.ToDateTime(item.es_fechaRegistro).Day; info.es_semana = Convert.ToInt32(InfoCalendario.Semana_x_anio); info.es_idDia = Convert.ToInt32(InfoCalendario.dia_x_mes); info.es_sdia = InfoCalendario.NombreDia; info.es_EsActualizacion = "N"; info.IdTipoMarcaciones = item.IdTipoMarcaciones; info.IdTipoMarcaciones_Biometrico = item.IdTipoMarcaciones_Biometrico; semana = Convert.ToDateTime(item.es_fechaRegistro).Month * 4; info.es_semana = semana; info.FechaUltimoCorte = DtpFechaF.Value; info.IdEquipo = Convert.ToInt32(cmbTipoEquipo.EditValue); info.Observacion = "Importada desde el Sistema"; info.IdUsuario = param.IdUsuario; info.Fecha_Transac = DateTime.Now; info.Estado = "A"; ListMarc.Add(info); } } return(true); } catch (Exception ex) { MessageBox.Show(ex.ToString()); Log_Error_bus.Log_Error(ex.ToString()); return(false); } }
public Boolean ModificarDB(ro_marcaciones_x_empleado_Info Info, string msj) { try { return(data.ModificarDB(Info, msj)); } 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("", "ModificarDB", ex.Message), ex) { EntityType = typeof(ro_marcaciones_x_empleado_Bus) }; } }
public ActionResult Nuevo() { try { ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info(); info.es_fechaRegistro = DateTime.Now.Date; info.es_Hora = new TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second); cargar_combo(); return(View(info)); } catch (Exception) { throw; } }
public void DeleteRow(int Secuencia, decimal IdTransaccionSession) { List <ro_nomina_x_horas_extras_det_Info> list = get_list(IdTransaccionSession); var info = list.Where(m => m.Secuencia == Secuencia).FirstOrDefault(); var marcacion = new ro_marcaciones_x_empleado_Info { IdCalendadrio = info.IdCalendario, IdEmpleado = info.IdEmpleado, }; if (bus_marcaciones.eliminarDB(marcacion)) { list.Remove(list.Where(m => m.Secuencia == Secuencia).FirstOrDefault()); } }
public Boolean GrabarDB(ro_marcaciones_x_empleado_Info Item, ref string IdRegistro, ref string mensaje) { try { return(data.GrabarDB(Item, ref IdRegistro, 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("", "GrabarDB", ex.Message), ex) { EntityType = typeof(ro_marcaciones_x_empleado_Bus) }; } }
public bool eliminarDB(ro_marcaciones_x_empleado_Info info) { try { using (Entities_rrhh Context = new Entities_rrhh()) { Context.Database.ExecuteSqlCommand("delete ro_marcaciones_x_empleado where IdEmpresa='" + info.IdEmpresa + "' and IdCalendadrio='" + info.IdCalendadrio + "'"); } return(true); } catch (Exception) { throw; } }
public ActionResult Nuevo(ro_marcaciones_x_empleado_Info model) { model.detalle = detalle.get_list(model.IdTransaccionSession); if (model.detalle == null || model.detalle.Count() == 0) { ViewBag.mensaje = "No existe detalle para la novedad"; cargar_combos(); return(View(model)); } model.IdEmpresa = Convert.ToInt32(SessionFixed.IdEmpresa); model.IdUsuario = SessionFixed.IdUsuario; if (!bus_marcaciones.guardarDB(model.detalle, model.IdEmpresa)) { cargar_combos(); return(View(model)); } return(RedirectToAction("Index", "MarcacionEmpleado")); }
public ActionResult Nuevo() { try { ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info { IdEmpresa = Convert.ToInt32(SessionFixed.IdEmpresa), es_fechaRegistro = DateTime.Now.Date, es_Hora = new TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second) }; cargar_combo(); return(View(info)); } catch (Exception) { throw; } }
public ActionResult Anular(ro_marcaciones_x_empleado_Info info) { try { if (!bus_marcaciones.anularDB(info)) { cargar_combo(); return(View(info)); } else { return(RedirectToAction("Index")); } } catch (Exception) { throw; } }
public ro_marcaciones_x_empleado_Info get_info(int IdEmpresa, decimal IdEmpleado, decimal IdRegistro) { try { ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info(); using (Entities_rrhh Context = new Entities_rrhh()) { ro_marcaciones_x_empleado Entity = Context.ro_marcaciones_x_empleado.FirstOrDefault(q => q.IdEmpresa == IdEmpresa && q.IdEmpleado == IdEmpleado && q.IdRegistro == IdRegistro); if (Entity == null) { return(null); } info = new ro_marcaciones_x_empleado_Info { IdEmpresa = Entity.IdEmpresa, IdEmpleado = Entity.IdEmpleado, IdCalendadrio = Entity.IdCalendadrio, IdTipoMarcaciones = Entity.IdTipoMarcaciones, IdNomina = Entity.IdNomina, IdPeriodo = Entity.IdPeriodo, es_Hora = Entity.es_Hora, es_fechaRegistro = Entity.es_fechaRegistro, es_anio = Entity.es_anio, es_mes = Entity.es_mes, es_sdia = Entity.es_sdia, es_dia = Entity.es_dia, es_EsActualizacion = Entity.es_EsActualizacion, Observacion = Entity.Observacion, IdUsuario = Entity.IdUsuario, Estado = Entity.Estado }; } return(info); } catch (Exception) { throw; } }
private Boolean getInfo() { bool resultado = false; try { DateTime dt = new DateTime(0001, 1, 1); ListMarc = new List <ro_marcaciones_x_empleado_Info>(); foreach (var item in BindListMarc) { ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info(); // validacion para el ingreso de empleados con codigo biometrico if (item.IdEmpleado != 0 && (item.IdTipoMarcaciones != "" || item.es_fechaRegistro != dt)) { info.IdEmpleado = item.IdEmpleado; info.IdEmpresa = param.IdEmpresa; DateTime fec = Convert.ToDateTime(item.es_fechaRegistro); info.es_fechaRegistro = fec; info.es_anio = fec.Year; info.es_dia = Convert.ToInt32(fec.DayOfWeek); info.es_semana = semanadelaño(fec); info.es_sdia = diacalendario(fec); info.es_idDia = fec.Day; info.es_mes = fec.Month; info.es_EsActualizacion = "N"; info.es_Hora = item.es_Hora; info.IdTipoMarcaciones = item.IdTipoMarcaciones; info.IdTipoMarcaciones_Biometrico = item.IdTipoMarcaciones_Biometrico; // Codigo IdRegistro string horas = Convert.ToString(info.es_Hora); DateTime ho = DateTime.Now; TimeSpan horaa; ho = Convert.ToDateTime(horas); horaa = ho.TimeOfDay; TimeSpan ts = horaa; int Horas = ts.Hours; string hora = Convert.ToString(Horas); int Minutos = ts.Minutes; string minuto = Convert.ToString(Minutos); int Segundos = ts.Seconds; string segundo = Convert.ToString(Segundos); int d = Convert.ToInt32(info.es_idDia); string dia = Convert.ToString(d); int m = Convert.ToInt32(info.es_mes); string mes = Convert.ToString(m); int a = Convert.ToInt32(info.es_anio); string anio = Convert.ToString(a); if (dia.Length == 1) { dia = "0" + dia; } if (mes.Length == 1) { mes = "0" + mes; } if (hora.Length == 1) { hora = "0" + hora; } if (minuto.Length == 1) { minuto = "0" + minuto; } if (segundo.Length == 1) { segundo = "0" + segundo; } info.IdRegistro = Convert.ToString(info.IdEmpleado) + anio + mes + dia + info.IdTipoMarcaciones + hora + minuto + segundo; // Codigo IdRegistro ListMarc.Add(info); } } if (BindListMarc.Count < 1) { MessageBox.Show("Por favor seleccione empleados para registrar las marcaciones"); return(false); } resultado = true; } catch (Exception ex) { MessageBox.Show(ex.ToString()); Log_Error_bus.Log_Error(ex.ToString()); } return(resultado); }
public void Get_Marcaciones() { try { lista_dias_falta = new List <ro_DiasFaltados_x_Empleado_Info>(); listado_marcaciones = new List <ro_marcaciones_x_empleado_Info>(); foreach (var item in lista_emplados) { if (item.CodCatalogo != null) { if (item.check == true) { ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info(); info.IdEmpresa = param.IdEmpresa; info.IdEmpleado = item.IdEmpleado; info.IdNomina_Tipo = Convert.ToInt32(cmbnomina.EditValue); info.IdRegistro = InfoCalendario.IdCalendario.ToString(); info.IdTipoMarcaciones = "IN1"; info.secuencia = 1; info.es_Hora = item.Info_marcaciones_x_empleado.es_Hora; info.es_fechaRegistro = Convert.ToDateTime(Convert.ToDateTime(dtp_es_fecha_registro.Value).ToShortDateString()); info.es_anio = Convert.ToDateTime(dtp_es_fecha_registro.Value).Year; info.es_mes = Convert.ToDateTime(dtp_es_fecha_registro.Value).Month; info.es_semana = InfoCalendario.Semana_x_anio; info.es_dia = (int)Convert.ToDateTime(dtp_es_fecha_registro.Value).DayOfWeek; info.es_idDia = (int)Convert.ToDateTime(dtp_es_fecha_registro.Value).DayOfWeek; info.es_sdia = InfoCalendario.NombreDia; info.es_EsActualizacion = "N"; info.IdTipoMarcaciones_Biometrico = "IN1"; if (item.Observacion == null) { info.Observacion = "Importadas por proceso del sistema"; } info.IdUsuario = param.IdUsuario; info.Estado = "A"; info.Fecha_Transac = DateTime.Now; info.IdPeriodo = (dtp_es_fecha_registro.Value.Year * 100) + dtp_es_fecha_registro.Value.Month; info.info_novedad_x_ingreso.IdEmpresa = item.IdEmpresa; info.info_novedad_x_ingreso.IdNomina_Tipo = Convert.ToInt32(cmbnomina.EditValue); info.info_novedad_x_ingreso.IdEmpleado = item.IdEmpleado; info.info_novedad_x_ingreso.IdTurno = 1; info.info_novedad_x_ingreso.es_jornada_desfasada = Convert.ToBoolean(item.Info_turno.es_jornada_desfasada); info.info_novedad_x_ingreso.IdRegistro = info.IdRegistro + "-" + "IdE" + "-" + item.IdEmpleado.ToString(); info.info_novedad_x_ingreso.es_fecha_registro = Convert.ToDateTime(Convert.ToDateTime(dtp_es_fecha_registro.Value).ToShortDateString()); info.info_novedad_x_ingreso.Id_catalogo_Cat = item.CodCatalogo; info.info_novedad_x_ingreso.es_jornada_desfasada = Convert.ToBoolean(item.Info_turno.es_jornada_desfasada); info.info_novedad_x_ingreso.IdTurno = Convert.ToInt32(item.Info_turno.IdTurno); info.info_novedad_x_ingreso.IdDisco = item.Iddisco; info.info_novedad_x_ingreso.IdRuta = item.IdRuta; info.info_novedad_x_ingreso.IdSala = item.IdSala; info.IdPeriodo = (dtp_es_fecha_registro.Value.Year * 100) + dtp_es_fecha_registro.Value.Month; if (InfoCalendario.EsFeriado == "S") { info.info_novedad_x_ingreso.es_feriado = true; } else { info.info_novedad_x_ingreso.es_feriado = false; } info.info_novedad_x_ingreso.Observacion = item.Observacion; listado_marcaciones.Add(info); if (item.CodCatalogo == "FAL") { ro_DiasFaltados_x_Empleado_Info info_faltas = new ro_DiasFaltados_x_Empleado_Info(); double sueldoActual = 0; sueldoActual = bus_emplaeado.GetSueldoActual(item.IdEmpresa, item.IdEmpleado); info_faltas.IdEmpresa = item.IdEmpresa; info_faltas.IdNominaTipo = 1; info_faltas.IdNominaTipoLiq = 2; info_faltas.IdEmpleado = Convert.ToInt32(item.IdEmpleado); info_faltas.CodCatalogo = "218"; info_faltas.FechaFaltaDesde = dtp_es_fecha_registro.Value; info_faltas.FechaFaltaHasta = dtp_es_fecha_registro.Value; info_faltas.DiasFaltados = "1 Dia"; info_faltas.DiasDescuento = 2; info_faltas.FechaDescuentaRol = dtp_es_fecha_registro.Value; info_faltas.ValorDescuentaRol = Convert.ToDecimal((sueldoActual / 30) * 2); info_faltas.Observacion = "Falta no justificada el " + dtp_es_fecha_registro.Value.ToString().Substring(0, 10); info_faltas.estado = "A"; info_faltas.IdUsuario = param.IdUsuario; info_faltas.Fecha_Transac = DateTime.Now; lista_dias_falta.Add(info_faltas); } } } } } catch (Exception ex) { MessageBox.Show(ex.ToString()); Log_Error_bus.Log_Error(ex.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) }; } }
public static void FileUploadComplete_marcaciones(object sender, DevExpress.Web.FileUploadCompleteEventArgs e) { int cont = 0; ro_empleado_info_list empleado_info_list = new ro_empleado_info_list(); ro_marcaciones_x_empleado_detLis_Info EmpleadoNovedadCargaMasiva_detLis_Info = new ro_marcaciones_x_empleado_detLis_Info(); List <ro_marcaciones_x_empleado_Info> lista_novedades = new List <ro_marcaciones_x_empleado_Info>(); decimal IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual); Stream stream = new MemoryStream(e.UploadedFile.FileBytes); if (stream.Length > 0) { IExcelDataReader reader = null; reader = ExcelReaderFactory.CreateOpenXmlReader(stream); DateTime Fecha_registro; DateTime marcacion; while (reader.Read()) { if (!reader.IsDBNull(0)) { if (cont != 0) { string cedua = reader.GetString(0); var empleado = empleado_info_list.get_list(IdTransaccionSession).Where(v => v.pe_cedulaRuc == cedua).FirstOrDefault(); if (empleado != null) { if (!reader.IsDBNull(2))// si tiene fehca de marcacion { Fecha_registro = Convert.ToDateTime(reader.GetDateTime(2)); if (!reader.IsDBNull(3))// si tiene entrada del primer turno { marcacion = Convert.ToDateTime(reader.GetValue(3)); if (marcacion.Hour != 0) { ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info { IdEmpleado = empleado.IdEmpleado, IdEmpresa = empleado.IdEmpresa, es_fechaRegistro = Fecha_registro, IdCalendadrio = Convert.ToInt32(Fecha_registro.ToString("ddMMyyyy")), IdNomina = empleado.IdTipoNomina, IdUsuario = SessionFixed.IdUsuario, es_Hora = new TimeSpan(marcacion.Hour, marcacion.Minute, 0), IdTipoMarcaciones = cl_enumeradores.eTipoMarcacionRRHH.IN1.ToString(), pe_NombreCompleato = empleado.Empleado, pe_cedula = cedua, EstadoBool = true, IdRegistro = cont++ }; lista_novedades.Add(info); } } if (!reader.IsDBNull(4))// si tiene salida del primer turno { marcacion = Convert.ToDateTime(reader.GetValue(4)); if (marcacion.Hour != 0) { ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info { IdEmpleado = empleado.IdEmpleado, IdEmpresa = empleado.IdEmpresa, es_fechaRegistro = Fecha_registro, IdCalendadrio = Convert.ToInt32(Fecha_registro.ToString("ddMMyyyy")), IdNomina = empleado.IdTipoNomina, IdUsuario = SessionFixed.IdUsuario, es_Hora = new TimeSpan(marcacion.Hour, marcacion.Minute, 0), IdTipoMarcaciones = cl_enumeradores.eTipoMarcacionRRHH.OUT1.ToString(), pe_NombreCompleato = empleado.Empleado, pe_cedula = cedua, EstadoBool = true, IdRegistro = cont++ }; lista_novedades.Add(info); } } if (!reader.IsDBNull(5))// si tiene entrada del segundo turno { marcacion = Convert.ToDateTime(reader.GetValue(5)); if (marcacion.Hour != 0) { ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info { IdEmpleado = empleado.IdEmpleado, IdEmpresa = empleado.IdEmpresa, es_fechaRegistro = Fecha_registro, IdCalendadrio = Convert.ToInt32(Fecha_registro.ToString("ddMMyyyy")), IdNomina = empleado.IdTipoNomina, IdUsuario = SessionFixed.IdUsuario, es_Hora = new TimeSpan(marcacion.Hour, marcacion.Minute, 0), IdTipoMarcaciones = cl_enumeradores.eTipoMarcacionRRHH.IN2.ToString(), pe_NombreCompleato = empleado.Empleado, pe_cedula = cedua, EstadoBool = true, IdRegistro = cont++ }; lista_novedades.Add(info); } } if (reader.IsDBNull(6))// si tiene salida del segundo turno { marcacion = Convert.ToDateTime(reader.GetValue(6)); if (marcacion.Hour != 0) { ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info { IdEmpleado = empleado.IdEmpleado, IdEmpresa = empleado.IdEmpresa, es_fechaRegistro = Fecha_registro, IdCalendadrio = Convert.ToInt32(Fecha_registro.ToString("ddMMyyyy")), IdNomina = empleado.IdTipoNomina, IdUsuario = SessionFixed.IdUsuario, es_Hora = new TimeSpan(marcacion.Hour, marcacion.Minute, 0), IdTipoMarcaciones = cl_enumeradores.eTipoMarcacionRRHH.OUT2.ToString(), pe_NombreCompleato = empleado.Empleado, pe_cedula = cedua, EstadoBool = true, IdRegistro = cont++ }; lista_novedades.Add(info); } } } } } cont++; } } EmpleadoNovedadCargaMasiva_detLis_Info.set_list(lista_novedades, Convert.ToDecimal(SessionFixed.IdTransaccionSession)); } }
public void Get_Marcaciones() { try { dtp_es_fecha_registro.Focus(); lista_dias_falta = new List <ro_DiasFaltados_x_Empleado_Info>(); listado_marcaciones = new List <ro_marcaciones_x_empleado_Info>(); foreach (var item in lista_emplados.Where(v => v.check == true)) { if (item.CodCatalogo != null) { ro_marcaciones_x_empleado_Info info = new ro_marcaciones_x_empleado_Info(); info.IdEmpresa = param.IdEmpresa; info.IdEmpleado = item.IdEmpleado; info.IdNomina_Tipo = Convert.ToInt32(cmbnomina.EditValue); info.IdNomina_Tipo = Convert.ToInt32(cmbnomina.EditValue); info.IdRegistro = InfoCalendario.IdCalendario.ToString(); info.IdTipoMarcaciones = "IN1"; info.secuencia = 1; info.es_Hora = item.Info_marcaciones_x_empleado.es_Hora; info.es_fechaRegistro = Convert.ToDateTime(Convert.ToDateTime(dtp_es_fecha_registro.Value).ToShortDateString()); info.es_anio = Convert.ToDateTime(dtp_es_fecha_registro.Value).Year; info.es_mes = Convert.ToDateTime(dtp_es_fecha_registro.Value).Month; info.es_semana = InfoCalendario.Semana_x_anio; info.es_dia = (int)Convert.ToDateTime(dtp_es_fecha_registro.Value).DayOfWeek; info.es_idDia = (int)Convert.ToDateTime(dtp_es_fecha_registro.Value).DayOfWeek; info.es_sdia = InfoCalendario.NombreDia; info.es_EsActualizacion = "N"; info.IdTipoMarcaciones_Biometrico = "IN1"; if (item.Observacion == null) { info.Observacion = "Importadas por proceso del sistema"; } info.IdUsuario = param.IdUsuario; info.Estado = "A"; info.Fecha_Transac = DateTime.Now; info.IdPeriodo = (dtp_es_fecha_registro.Value.Year * 100) + dtp_es_fecha_registro.Value.Month; info.info_novedad_x_ingreso.IdEmpresa = item.IdEmpresa; info.info_novedad_x_ingreso.IdNomina_Tipo = Convert.ToInt32(cmbnomina.EditValue); info.info_novedad_x_ingreso.IdEmpleado = item.IdEmpleado; info.info_novedad_x_ingreso.IdTurno = Convert.ToInt32(item.Info_turno.IdTurno); info.info_novedad_x_ingreso.es_jornada_desfasada = Convert.ToBoolean(item.Info_turno.es_jornada_desfasada); info.info_novedad_x_ingreso.IdRegistro = info.IdRegistro + "-" + "IdE" + "-" + item.IdEmpleado.ToString(); info.info_novedad_x_ingreso.es_fecha_registro = Convert.ToDateTime(Convert.ToDateTime(dtp_es_fecha_registro.Value).ToShortDateString()); info.info_novedad_x_ingreso.Id_catalogo_Cat = item.CodCatalogo; info.info_novedad_x_ingreso.es_jornada_desfasada = Convert.ToBoolean(item.Info_turno.es_jornada_desfasada); info.info_novedad_x_ingreso.IdTurno = Convert.ToInt32(item.Info_turno.IdTurno); info.info_novedad_x_ingreso.IdDisco = item.Iddisco; info.info_novedad_x_ingreso.IdRuta = item.IdRuta; info.info_novedad_x_ingreso.IdSala = item.IdSala; info.IdPeriodo = (dtp_es_fecha_registro.Value.Year * 100) + dtp_es_fecha_registro.Value.Month; if (InfoCalendario.EsFeriado == "S") { info.info_novedad_x_ingreso.es_feriado = true; } else { info.info_novedad_x_ingreso.es_feriado = false; } info.info_novedad_x_ingreso.Observacion = item.Observacion; listado_marcaciones.Add(info); } } } catch (Exception ex) { MessageBox.Show(ex.ToString()); Log_Error_bus.Log_Error(ex.ToString()); } }