public List <EntHorarioDia> GenerarHorario(DateTime pe_datPrimerDiaMes, List <EntHorario> pe_LstHorarios, List <EntFestivo> pe_LstFestivos, int pe_intRango) { List <EntHorarioDia> vl_LstSalida = new List <EntHorarioDia>(); //Siempre vamos a generar 31 dias por que despues trasaladar los datos al Excel no resulta mas sencillo DateTime vl_datFecha = pe_datPrimerDiaMes; Random vl_Randon = new Random(); for (int i = 0; i <= 30; i++) { EntHorarioDia vl_EntHorarioDia = new EntHorarioDia(); vl_EntHorarioDia.Fecha = vl_datFecha; vl_EntHorarioDia.Dia = vl_datFecha.DayOfWeek; vl_EntHorarioDia.DiaMes = vl_datFecha.Day; if (!pe_LstFestivos.Exists(a => a.Fecha == vl_datFecha) && vl_datFecha.Month == pe_datPrimerDiaMes.Month) { #region Generar Detalle Horario //Recuperamos el horario teorico EntHorario vl_EntHorarioTeorico = pe_LstHorarios.First(a => a.Dia == vl_datFecha.DayOfWeek); if (vl_EntHorarioTeorico.HoraEntradaManana != null) { vl_EntHorarioDia.HoraEntradaManana = vl_EntHorarioTeorico.HoraEntradaManana.Value.Add(TimeSpan.FromMinutes(vl_Randon.Next(0, pe_intRango))); } if (vl_EntHorarioTeorico.HoraSalidaManana != null) { vl_EntHorarioDia.HoraSalidaManana = vl_EntHorarioTeorico.HoraSalidaManana.Value.Add(TimeSpan.FromMinutes(vl_Randon.Next(0, pe_intRango))); } if (vl_EntHorarioTeorico.HoraEntradaTarde != null) { vl_EntHorarioDia.HoraEntradaTarde = vl_EntHorarioTeorico.HoraEntradaTarde.Value.Add(TimeSpan.FromMinutes(vl_Randon.Next(0, pe_intRango))); } if (vl_EntHorarioTeorico.HoraSalidaTarde != null) { vl_EntHorarioDia.HoraSalidaTarde = vl_EntHorarioTeorico.HoraSalidaTarde.Value.Add(TimeSpan.FromMinutes(vl_Randon.Next(0, pe_intRango))); } #endregion } vl_LstSalida.Add(vl_EntHorarioDia); vl_datFecha = vl_datFecha.AddDays(1); } return(vl_LstSalida); }
public ActionResult Guardar(EntHorario entidad) { try { var r = entidad.id_horario > 0 ? control.Actualizar(entidad) : control.Insertar(entidad); if (!r) { return(Json("Error al realizar la operacion", JsonRequestBehavior.AllowGet)); } return(Json("Realizado", JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(View("Error", new HandleErrorInfo(ex, "Horarios", "Create"))); } }
public bool Update(EntHorario entidad) { bool respuesta = false; try { AbrirConexion(); var sql = "execute procedure dml_horarios (?,?,?,?,?);"; using (var cmd = new IfxCommand(sql, Conexion)) { cmd.Connection = Conexion; cmd.Parameters.Add(new IfxParameter()).Value = "UPDATE"; cmd.Parameters.Add(new IfxParameter()).Value = entidad.id_horario; cmd.Parameters.Add(new IfxParameter()).Value = entidad.desc_horario; cmd.Parameters.Add(new IfxParameter()).Value = entidad.hora_entrada; cmd.Parameters.Add(new IfxParameter()).Value = entidad.hora_salida; cmd.ExecuteNonQuery(); } respuesta = true; } catch (InvalidCastException ex) { ApplicationException excepcion = new ApplicationException("Se genero un error con el siguiente mensaje: " + ex.Message, ex); excepcion.Source = "Update Horarios"; throw excepcion; } catch (Exception ex) { ApplicationException excepcion = new ApplicationException("Se genero un error de aplicación con el siguiente mensaje: " + ex.Message, ex); excepcion.Source = "Update Horarios"; throw excepcion; } finally { CerrarConexion(); } return(respuesta); }
public EntHorario Obtener(int id) { EntHorario entidad = null; try { AbrirConexion(); StringBuilder CadenaSql = new StringBuilder(); IfxCommand cmd = new IfxCommand(string.Empty, Conexion); var sql = "SELECT id_horario, desc_horario, TO_CHAR(hora_entrada, '%H:%M') as hora_entrada,TO_CHAR(hora_salida, '%H:%M') as hora_salida, "; sql += "(hora_salida-hora_entrada) as total_horas FROM informix.horarios WHERE id_horario=?"; cmd.CommandText = sql; cmd.Parameters.Add(new IfxParameter()).Value = id; using (var dr = cmd.ExecuteReader()) { if (dr.Read()) { entidad = new EntHorario(); entidad.id_horario = int.Parse(dr["id_horario"].ToString()); entidad.desc_horario = dr["desc_horario"].ToString(); entidad.hora_entrada = dr["hora_entrada"].ToString(); entidad.hora_salida = dr["hora_salida"].ToString(); entidad.total_horas = dr["total_horas"].ToString().Substring(0, 2); } } } catch (Exception exc) { throw exc; } finally { CerrarConexion(); } return(entidad); }
public List <EntHorario> ObtenerTodos() { List <EntHorario> Lista = new List <EntHorario>(); EntHorario entidad = null; try { AbrirConexion(); StringBuilder CadenaSql = new StringBuilder(); var sql = "SELECT id_horario, desc_horario, TO_CHAR(hora_entrada, '%H:%M') as hora_entrada,TO_CHAR(hora_salida, '%H:%M') as hora_salida,"; sql += "(hora_salida-hora_entrada) as total_horas FROM informix.horarios"; IfxCommand cmd = new IfxCommand(sql, Conexion); using (var dr = cmd.ExecuteReader()) { while (dr.Read()) { entidad = new EntHorario(); entidad.id_horario = int.Parse(dr["id_Horario"].ToString()); entidad.desc_horario = dr["desc_Horario"].ToString(); entidad.hora_entrada = dr["hora_entrada"].ToString(); entidad.hora_salida = dr["hora_salida"].ToString(); entidad.total_horas = dr["total_horas"].ToString().Substring(0, 2); Lista.Add(entidad); } } } catch (Exception exc) { throw exc; } finally { CerrarConexion(); } return(Lista); }
public bool Actualizar(EntHorario Entidad) { return(PerHorario.Update(Entidad)); }
public bool Insertar(EntHorario Entidad) { return(PerHorario.Insert(Entidad)); }