Example #1
0
        public RespuestaSimple CancelarOferta(decimal viajeId)
        {
            // Obtiene el usuario de la sesión
            var usuarioId = Startup.Usuario.UsuarioId;

            // Obtiene la volqueta asociada a este usuario
            var volquetaId = new Services.Volquetas(db).ObtenerPorUsuario(usuarioId);

            // Si no encontró volqueta, retorno error
            if (volquetaId == 0)
            {
                return(new RespuestaSimple(500, "El usuario no está asociado a ninguna volqueta."));
            }

            // Primero verifica que la oferta no haya sido aceptada
            var q = from p in db.Viajes_Volq
                    where p.ViajeId == viajeId
                    where p.VolquetaId == volquetaId
                    select p.ViaVolqEst;

            if (q.FirstOrDefault() == "ACE")
            {
                return(new RespuestaSimple(500, "No se puede cancelar la oferta porque ya fue aceptada."));
            }

            // Elimina la oferta
            db.Viajes_Volq
            .Where(p => p.ViajeId == viajeId)
            .Where(p => p.VolquetaId == volquetaId)
            .Delete();

            return(new RespuestaSimple());
        }
Example #2
0
        public RespuestaSimple GuardarOferta(decimal viajeId, decimal valorOferta)
        {
            // Obtengo el usuario actual
            var usuarioId = Startup.Usuario.UsuarioId;

            // Obtengo la volqueta actual de este usuario
            var volquetaId = new Services.Volquetas(db).ObtenerPorUsuario(usuarioId);

            // Si no está asignado a ninguna volqueta
            if (volquetaId == 0)
            {
                return(new RespuestaSimple(500, "El usuario actual no está asignado a ninguna volqueta"));
            }

            // Crea una nueva oferta
            var oferta = new Models.Viajes_Volq
            {
                ViajeId = viajeId,
                // Obtiene la última numeración
                ViajeVolquetaId = Numeracion(viajeId),
                VolquetaId      = volquetaId,
                ConductorId     = usuarioId,
                ViaVolqOferta   = valorOferta,
                ViaVolqEst      = "OFE",
                ViaVolqEstViaje = "SOL"
            };

            db.Insert(oferta);
            return(new RespuestaSimple());
        }
Example #3
0
        public RespuestaSimple GuardarOfertaMateriales(Models.Viajes_Volq oferta)
        {
            // Obtengo el usuario actual
            var usuarioId = Startup.Usuario.UsuarioId;

            // Obtengo la volqueta actual de este usuario
            var volquetaId = new Services.Volquetas(db).ObtenerPorUsuario(usuarioId);

            // Si no está asignado a ninguna volqueta
            if (volquetaId == 0)
            {
                return(new RespuestaSimple(500, "El usuario actual no está asignado a ninguna volqueta"));
            }

            // Obtiene la última numeración
            oferta.ViajeVolquetaId = Numeracion(oferta.ViajeId);

            // Configura la oferta con los datos faltantes
            oferta.VolquetaId      = volquetaId;
            oferta.ConductorId     = usuarioId;
            oferta.ViaVolqEst      = "OFE";
            oferta.ViaVolqEstViaje = "SOL";

            decimal totalMateriales = 0;

            // Obtiene el total de los materiales
            foreach (var material in oferta.Materiales)
            {
                totalMateriales += material.ViaVolqMatCantidad * material.ViaVolqMatPrecio;
            }

            // Graba el total de la oferta
            oferta.ViaVolqTotalMateriales = totalMateriales;

            // Inserta la nueva oferta
            db.Insert(oferta);

            // Inserta los materiales
            foreach (var material in oferta.Materiales)
            {
                material.ViajeId         = oferta.ViajeId;
                material.ViajeVolquetaId = oferta.ViajeVolquetaId;
                db.Insert(material);

                // Guarda el precio más reciente de cada material en el usuario
                var historial = new Models.Usuarios_Mat
                {
                    UsuarioId    = usuarioId,
                    MaterialId   = material.MaterialId,
                    UsuMatPrecio = material.ViaVolqMatPrecio
                };

                db.InsertOrReplace(historial);
            }

            return(new RespuestaSimple());
        }