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()); }
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()); }
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()); }