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);
        }
Beispiel #2
0
        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")));
            }
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
 public bool Actualizar(EntHorario Entidad)
 {
     return(PerHorario.Update(Entidad));
 }
Beispiel #7
0
 public bool Insertar(EntHorario Entidad)
 {
     return(PerHorario.Insert(Entidad));
 }