コード例 #1
0
        /// <summary>
        /// Obtener los equipos de un cliente.
        /// </summary>
        /// <param name="c">AsignacionEquipo para el cual se obtiene la lista de equipo</param>
        public void obtenerEquiposAsignacionEquipo(ref AsignacionEquipo c)
        {
            SqlCommand    comando    = _manejador.obtenerProcedimiento("SelectAsignacionEquipoEquipos");
            SqlDataReader datareader = null;

            _manejador.agregarParametro(comando, "@asignacion", c.ID, SqlDbType.Int);

            try
            {
                datareader = _manejador.ejecutarConsultaDatos(comando);

                while (datareader.Read())
                {
                    int    id     = (int)datareader["pk_ID"];
                    string numero = (string)datareader["Equipo"];

                    Equipo telefono = new Equipo(id, numero);

                    c.agregarEquipo(telefono);
                }

                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorDatosConexion");
            }
        }
コード例 #2
0
        public static RespuestaTransaccion ActualizarAsignacionEquipo(AsignacionEquipo objeto)
        {
            using (var transaction = db.Database.BeginTransaction())
            {
                try
                {
                    // assume Entity base class have an Id property for all items
                    var entity = db.AsignacionEquipo.Find(objeto.IDAsignacionEquipo);
                    if (entity == null)
                    {
                        return(new RespuestaTransaccion {
                            Estado = false, Respuesta = Mensajes.MensajeTransaccionFallida
                        });
                    }

                    db.Entry(entity).CurrentValues.SetValues(objeto);
                    db.SaveChanges();

                    transaction.Commit();

                    return(new RespuestaTransaccion {
                        Estado = true, Respuesta = Mensajes.MensajeTransaccionExitosa
                    });
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    return(new RespuestaTransaccion {
                        Estado = false, Respuesta = Mensajes.MensajeTransaccionFallida + " ;" + ex.Message.ToString()
                    });
                }
            }
        }
コード例 #3
0
        /// <summary>
        /// Verificar si existe un cliente.
        /// </summary>
        /// <param name="c">Objeto cliente con los datos del cliente a verificar</param>
        /// <returns>Valor que indica si el cliente existe</returns>
        public bool verificarAsignacionEquipo(ref AsignacionEquipo c)
        {
            bool existe = false;

            SqlCommand    comando    = _manejador.obtenerProcedimiento("SelectExisteAsignacionEquipo");
            SqlDataReader datareader = null;

            try
            {
                datareader = _manejador.ejecutarConsultaDatos(comando);

                if (datareader.Read())
                {
                    short id = (short)datareader["pk_ID"];

                    existe = id != c.ID;

                    c.ID = id;
                }

                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorVerificarAsignacionEquipoDuplicado");
            }

            return(existe);
        }
コード例 #4
0
        public async Task <IActionResult> AprobarAsignacionEquipo([FromRoute] int id, [FromBody] AsignacionEquipo asignacionEquipo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != asignacionEquipo.Id)
            {
                return(BadRequest());
            }

            using (var sn = factory.OpenSession())
            {
                using (var tx = sn.BeginTransaction())
                {
                    try
                    {
                        AsignacionEquipo asignacionEquipoBD = sn.Get <AsignacionEquipo>(id);
                        asignacionEquipoBD.FechaAprobacion   = DateTime.Now;
                        asignacionEquipoBD.UsuarioAprobacion = asignacionEquipo.UsuarioAprobacion;

                        await tx.CommitAsync();
                    }
                    catch (Exception ex)
                    {
                        await tx.RollbackAsync();

                        return(StatusCode(500, ex.Message));
                    }
                }
            }

            return(Ok(true));
        }
コード例 #5
0
        public async Task <IActionResult> Post([FromBody] AsignacionEquipo asignacionEquipo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            using (var sn = factory.OpenSession())
            {
                using (var tx = sn.BeginTransaction())
                {
                    try
                    {
                        asignacionEquipo.FechaCreacion = DateTime.Now;

                        sn.Save(asignacionEquipo);

                        foreach (var item in asignacionEquipo.Items)
                        {
                            InventarioEquipo inventario = await sn.Query <InventarioEquipo>()
                                                          .Where(x => x.IdAlmacen == asignacionEquipo.Almacen.Id &&
                                                                 x.IdEquipo == item.Equipo.Id)
                                                          .FirstOrDefaultAsync();

                            if (inventario != null && inventario.Stock >= item.Cantidad)
                            {
                                inventario.Stock -= item.Cantidad;
                            }
                            else
                            {
                                throw new Exception("Sin stock para el equipo: " + item.Equipo.Nombre);
                            }

                            item.IdAsignacionEquipo = asignacionEquipo.Id;

                            sn.Save(item);
                        }

                        await tx.CommitAsync();
                    }
                    catch (Exception ex)
                    {
                        await tx.RollbackAsync();

                        return(StatusCode(500, ex.Message));
                    }
                }
            }

            return(Ok(true));
        }
コード例 #6
0
        public static AsignacionEquipo ConsultarAsignacionEquipo(int id)
        {
            AsignacionEquipo objeto = new AsignacionEquipo();

            try
            {
                objeto = db.ConsultarAsignacionesEquipo(id).FirstOrDefault();
                return(objeto);
            }
            catch (Exception)
            {
                return(objeto);
            }
        }
コード例 #7
0
        /// <summary>
        /// Marcar como inactivo a un cliente del sistema.
        /// </summary>
        /// <param name="c">Objeto AsignacionEquipo con los datos del cliente a marcar</param>
        public void eliminarAsignacionEquipo(AsignacionEquipo c)
        {
            SqlCommand comando = _manejador.obtenerProcedimiento("DeleteAsignacionEquipo");

            _manejador.agregarParametro(comando, "@cliente", c.ID, SqlDbType.SmallInt);

            try
            {
                _manejador.ejecutarConsultaActualizacion(comando);
                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorAsignacionEquipoEliminacion");
            }
        }
コード例 #8
0
        public async Task <IActionResult> DeleteAsignacionEquipo([FromRoute] int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            using (var sn = factory.OpenSession())
            {
                using (var tx = sn.BeginTransaction())
                {
                    try
                    {
                        AsignacionEquipo asignacionEquipo = sn.Get <AsignacionEquipo>(id);

                        List <AsignacionEquipoItem> items = await sn.Query <AsignacionEquipoItem>()
                                                            .Where(x => x.IdAsignacionEquipo == id)
                                                            .ToListAsync();

                        foreach (var item in items)
                        {
                            InventarioEquipo inventario = await sn.Query <InventarioEquipo>()
                                                          .Where(x => x.IdAlmacen == asignacionEquipo.Almacen.Id &&
                                                                 x.IdEquipo == item.Equipo.Id)
                                                          .FirstOrDefaultAsync();

                            inventario.Stock += item.Cantidad;
                        }

                        sn.Delete(string.Format("FROM AsignacionEquipoItem WHERE IdAsignacionEquipo = {0}", id));

                        sn.Delete(asignacionEquipo);

                        await tx.CommitAsync();
                    }
                    catch (Exception ex)
                    {
                        await tx.RollbackAsync();

                        return(StatusCode(500, ex.Message));
                    }
                }
            }

            return(Ok(true));
        }
コード例 #9
0
        public async Task <IActionResult> GetAsignacionEquipo([FromRoute] int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            AsignacionEquipo asignacionEquipo = null;

            using (var sn = factory.OpenSession())
            {
                asignacionEquipo = await sn.GetAsync <AsignacionEquipo>(id);

                asignacionEquipo.Items = await sn.Query <AsignacionEquipoItem>().Where(x => x.IdAsignacionEquipo == id).ToListAsync();
            }

            if (asignacionEquipo == null)
            {
                return(NotFound());
            }

            return(Ok(asignacionEquipo));
        }
コード例 #10
0
        public static RespuestaTransaccion CrearAsignacionEquipo(AsignacionEquipo objeto)
        {
            using (var transaction = db.Database.BeginTransaction())
            {
                try
                {
                    db.AsignacionEquipo.Add(objeto);
                    db.SaveChanges();

                    transaction.Commit();

                    return(new RespuestaTransaccion {
                        Estado = true, Respuesta = Mensajes.MensajeTransaccionExitosa
                    });
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    return(new RespuestaTransaccion {
                        Estado = false, Respuesta = Mensajes.MensajeTransaccionFallida + " ;" + ex.Message.ToString()
                    });
                }
            }
        }
コード例 #11
0
        public async Task <IActionResult> PutAsignacionEquipo([FromRoute] int id, [FromBody] AsignacionEquipo asignacionEquipo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != asignacionEquipo.Id)
            {
                return(BadRequest());
            }

            using (var sn = factory.OpenSession())
            {
                using (var tx = sn.BeginTransaction())
                {
                    try
                    {
                        List <AsignacionEquipoItem> items = await sn.Query <AsignacionEquipoItem>()
                                                            .Where(x => x.IdAsignacionEquipo == id)
                                                            .ToListAsync();

                        foreach (var item in items)
                        {
                            InventarioEquipo inventario = await sn.Query <InventarioEquipo>()
                                                          .Where(x => x.IdAlmacen == asignacionEquipo.Almacen.Id &&
                                                                 x.IdEquipo == item.Equipo.Id)
                                                          .FirstOrDefaultAsync();

                            inventario.Stock += item.Cantidad;
                        }

                        sn.Delete(string.Format("FROM AsignacionEquipoItem WHERE IdAsignacionEquipo = {0}", id));

                        foreach (var item in asignacionEquipo.Items)
                        {
                            InventarioEquipo inventario = await sn.Query <InventarioEquipo>()
                                                          .Where(x => x.IdAlmacen == asignacionEquipo.Almacen.Id &&
                                                                 x.IdEquipo == item.Equipo.Id)
                                                          .FirstOrDefaultAsync();

                            if (inventario != null && inventario.Stock >= item.Cantidad)
                            {
                                inventario.Stock -= item.Cantidad;
                            }
                            else
                            {
                                throw new Exception("Sin stock para el equipo: " + item.Equipo.Nombre);
                            }

                            item.IdAsignacionEquipo = id;

                            sn.Save(item);
                        }

                        AsignacionEquipo asignacionEquipoBD = sn.Get <AsignacionEquipo>(id);
                        asignacionEquipoBD.Comentario = asignacionEquipo.Comentario;

                        await tx.CommitAsync();
                    }
                    catch (Exception ex)
                    {
                        await tx.RollbackAsync();

                        return(StatusCode(500, ex.Message));
                    }
                }
            }

            return(Ok(true));
        }
コード例 #12
0
        /// <summary>
        /// Listar las Tripulaciones registradas en el sistema.
        /// </summary>
        /// <returns>Lista de las Tripulaciones registradas en el sistema</returns>
        public Tripulacion listarTripulacionRuta(int b, DateTime f)
        {
            Tripulacion tripulaciones = new Tripulacion();

            SqlCommand    comando    = _manejador.obtenerProcedimiento("SelectTripulacionesRuta");
            SqlDataReader datareader = null;

            _manejador.agregarParametro(comando, "@ruta", b, SqlDbType.Int);
            _manejador.agregarParametro(comando, "@fecha", f, SqlDbType.Date);

            try
            {
                datareader = _manejador.ejecutarConsultaDatos(comando);

                while (datareader.Read())
                {
                    short  id_tripulacion = (short)datareader["ID_Tripulacion"];
                    int    ruta           = (int)datareader["Ruta"];
                    string descripcion    = (string)datareader["Descripcion"];
                    string observaciones  = (string)datareader["Observaciones"];



                    int    id_chofer               = (int)datareader["ID_Chofer"];
                    string nombre_chofer           = (string)datareader["Nombre_Chofer"];
                    string primer_apellido_chofer  = (string)datareader["PrimerApellido_Chofer"];
                    string segundo_apellido_chofer = (string)datareader["SegundoApellido_Chofer"];
                    string identificacion_chofer   = (string)datareader["Identificacion_Chofer"];

                    int    id_custodio               = (int)datareader["ID_Custodio"];
                    string nombre_custodio           = (string)datareader["Nombre_Custodio"];
                    string primer_apellido_custodio  = (string)datareader["PrimerApellido_Custodio"];
                    string segundo_apellido_custodio = (string)datareader["SegundoApellido_Custodio"];
                    string identificacion_custodio   = (string)datareader["Identificacion_Custodio"];

                    int    id_portavalor               = (int)datareader["ID_Portavalor"];
                    string nombre_portavalor           = (string)datareader["Nombre_Portavalor"];
                    string primer_apellido_portavalor  = (string)datareader["PrimerApellido_Portavalor"];
                    string segundo_apellido_portavalor = (string)datareader["SegundoApellido_Portavalor"];
                    string identificacion_portavalor   = (string)datareader["Identificacion_Portavalor"];


                    int    id_usuario               = (int)datareader["ID_Usuario"];
                    string nombre_usuario           = (string)datareader["Nombre_Usuario"];
                    string primer_apellido_usuario  = (string)datareader["PrimerApellido_Usuario"];
                    string segundo_apellido_usuario = (string)datareader["SegundoApellido_Usuario"];
                    string identificacion_usuario   = (string)datareader["Identificacion_Usuario"];


                    Colaborador chofer     = new Colaborador(id_chofer, nombre_chofer, primer_apellido_chofer, segundo_apellido_chofer, identificacion_chofer);
                    Colaborador custodio   = new Colaborador(id_custodio, nombre_custodio, primer_apellido_custodio, segundo_apellido_custodio, identificacion_custodio);
                    Colaborador portavalor = new Colaborador(id_portavalor, nombre_portavalor, primer_apellido_portavalor, segundo_apellido_portavalor, identificacion_portavalor);
                    Colaborador usuario    = new Colaborador(id_usuario, nombre_usuario, primer_apellido_usuario, segundo_apellido_usuario, identificacion_usuario);


                    short       id_atm                  = (short)datareader["ID_Vehiculo"];
                    string      modelo                  = (string)datareader["Modelo"];
                    string      placa                   = (string)datareader["Placa"];
                    int         numeroasoc              = (Int32)datareader["NumeroAsociado"];
                    int         ordensalida             = (Int32)datareader["OrdenSalida"];
                    int         id_dispositivo          = (Int32)datareader["ID_Dispositivo"];
                    string      serial                  = (string)datareader["Serial"];
                    string      descripcion_dispositivo = (string)datareader["Descripcion_Dispositivo"];
                    Vehiculo    vehiculo                = new Vehiculo(placa: placa, modelo: modelo, numeroasociado: numeroasoc, id: id_atm);
                    Dispositivo dispositivo             = new Dispositivo(nombre: serial, id: id_dispositivo, descripcion: descripcion_dispositivo);

                    AsignacionEquipo asignacion = null;

                    if (datareader["ID_Asignacion"] != DBNull.Value)
                    {
                        int idasignacion = (int)datareader["ID_Asignacion"];

                        asignacion = new AsignacionEquipo(id: idasignacion);
                    }


                    Tripulacion tripulacion = new Tripulacion(nombre: descripcion, ruta: ruta, chofer: chofer, custodio: custodio, portavalor: portavalor, id: id_tripulacion, usuario: usuario, observaciones: observaciones, v: vehiculo, ordenSalida: ordensalida, disp: dispositivo);
                    tripulacion.Asignaciones = asignacion;

                    tripulaciones = tripulacion;
                }

                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorDatosConexion");
            }

            return(tripulaciones);
        }