示例#1
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());
        }
示例#2
0
 public Models.Sesiones Insertar(Models.Sesiones o)
 {
     db.InsertOrReplace(o);
     return(o);
 }