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()); }
public Models.Sesiones Insertar(Models.Sesiones o) { db.InsertOrReplace(o); return(o); }