/// <summary> /// PRE:la clase que se pasa como parametro debe de estar incializada /// POST: Dado un Presupuesto (Del que solo se utilizara la clave), obtendremos un Presupuesto con todos sus campos, /// no se contempla el caso en el que el Presupuesto no esta en la BD /// </summary> /// <param name="p"></param> /// <returns></returns> public static Presupuesto Buscar(Presupuesto p) { PresupuestosDato presupuesto = new PresupuestosDato(p.Id, null, p.FechaRealizacion, p.Estado, ""); //Solo nos interesa la clave PresupuestosDato dev = BD.SelectPresupuesto(presupuesto); //Cliente asociado: Cliente c = Persistencia.Buscar(new Cliente(dev.Cliente)); //Vehiculo comprado: Vehiculo vehiculoComprado; if (dev.VehiculoComprado == "") { vehiculoComprado = null; } else { if (Persistencia.Existe(new VehiculoNuevo(dev.VehiculoComprado))) { //Se trata de un vehiculo nuevo: vehiculoComprado = Persistencia.Buscar(new VehiculoNuevo(dev.VehiculoComprado)); } else { //Se trata de un vehiculo de segunda mano: vehiculoComprado = Persistencia.Buscar(new VehiculoSegundaMano(dev.VehiculoComprado)); } } //Lista de vehiculos: List <Vehiculo> l = new List <Vehiculo>(); Presupuesto_VehiculosTabla t = BD.Presupuesto_vehiculos; int tam = t.Count(); for (int i = 0; i < tam; i++) { Presupuesto_VehiculosDato pv = t[i]; //vamos cogiendo elemento a elemento y miramos si coincide el id para si eso agregarlo a la lista if (pv.Clave.Id.Equals(p.Id)) { Vehiculo vehiculoActual; if (Persistencia.Existe(new VehiculoNuevo(pv.Clave.Vehiculo))) { //Se trata de un vehiculo nuevo: vehiculoActual = Persistencia.Buscar(new VehiculoNuevo(pv.Clave.Vehiculo)); } else { //Se trata de un vehiculo de segunda mano: vehiculoActual = Persistencia.Buscar(new VehiculoSegundaMano(pv.Clave.Vehiculo)); } l.Add(vehiculoActual); } } return(new Presupuesto(dev.Id, c, dev.FechaRealizacion, dev.Estado, l, vehiculoComprado)); }
/// <summary> /// PRE:la clase que se pasa como parametro debe de estar incializada /// POST:Dado un VehiculoNuevo (Puede ser que solo contenga la clave), se borrara sin comprobar si existe o no, su aparicion en la bd /// </summary> /// <param name="v"></param> public static void Borrar(VehiculoNuevo v) { //Como el objeto que recibimos puede tener solo la clave, primero obtenemos los extras de ese vehiculo: VehiculoNuevo vehiculo = Persistencia.Buscar(v); foreach (Extra e in vehiculo.Extras) //borramos las referencias en la tabla intermedia (VehiculoExtras) { BD.DeleteVNuevo_Extra(new VNuevoExtrasDatos(new VNuevoExtrasClave(v.NumBastidor, e.Nombre))); } VNuevoDatos v1 = new VNuevoDatos(v.NumBastidor, v.Marca, v.Modelo, v.Potencia, v.PvRecomendado); BD.DeleteVNuevos(v1); }