Пример #1
0
        /// <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));
        }
Пример #2
0
        /// <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);
        }