Пример #1
0
        //-----------------------------------------------------------------------------------------------------------------------
        //------------------------------------------------PRESUPUESTO------------------------------------------------------------
        //-----------------------------------------------------------------------------------------------------------------------
        /// <summary>
        /// PRE:la clase que se pasa como parametro debe de estar incializada
        /// POST: Dado un Presupuesto, se añade a la BD (Sin comprobar si existe ya).
        /// Se añade tambien a la tabla presupuestoVehiculo las filas correspondientes
        /// dando por echo que los vehiculos asociados ya se encuentran en la bd.
        /// (Se da por echo tambien que el cliente asociado y el vehiculo comprado ya existen en la bd)
        /// </summary>
        /// <param name="p"></param>
        public static void Añadir(Presupuesto p)
        {
            String vehiculoComprado = "";

            if (p.VehiculoComprado == null)
            {
                vehiculoComprado = "";
            }
            else
            {
                vehiculoComprado = p.VehiculoComprado.NumBastidor;
            }

            /*string cliente = "";
             * if (p.ClienteAsociado != null)
             * {
             *  vehiculoComprado = p.VehiculoComprado.NumBastidor;
             * }*/


            PresupuestosDato presupuesto = new PresupuestosDato(p.Id, p.ClienteAsociado.DNI, p.FechaRealizacion, p.Estado, vehiculoComprado);

            BD.InsertPresupuesto(presupuesto);

            if (p.Vehiculos.Count != 0)
            {
                foreach (Vehiculo e in p.Vehiculos)
                {
                    //no comprobamos si los vehiculos estan porque solo se pueden hacer presupuestos de vehiculos que ya están en la bd
                    BD.InsertPresupuesto_Vehiculos(new Presupuesto_VehiculosDato(new Presupuesto_VehiculoClave(p.Id, e.NumBastidor)));
                }
            }
        }
Пример #2
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));
        }
Пример #3
0
        /// <summary>
        /// PRE:la clase que se pasa como parametro debe de estar incializada
        /// POST:Dado un Presupuesto (Puede ser que solo contenga la clave), se borrara sin comprobar si existe o no, su aparicion en la bd
        /// Se borran tambien las filas de presupuestoVehiculo
        /// </summary>
        /// <param name="p"></param>
        public static void Borrar(Presupuesto p)
        {
            foreach (Vehiculo v in p.Vehiculos) //borramos las referencias en la tabla intermedia
            {
                BD.DeletePresupuesto_Vehiculos(new Presupuesto_VehiculosDato(new Presupuesto_VehiculoClave(p.Id, v.NumBastidor)));
            }
            PresupuestosDato presupuesto = new PresupuestosDato(p.Id, p.ClienteAsociado.DNI, p.FechaRealizacion, p.Estado, ""); //Solo nos interesa la clave

            BD.DeletePresupuesto(presupuesto);
        }
Пример #4
0
        /// <summary>
        /// Devuelve la lista de todos los presupuestos del concesionario
        /// </summary>
        /// <returns></returns>
        public static List <Presupuesto> listaPresupuesto()
        {
            List <Presupuesto> lista = new List <Presupuesto>();

            int tam = BD.Presupuestos.Count;

            for (int i = 0; i < tam; i++)
            {
                List <Vehiculo>  vehiculos = new List <Vehiculo>();
                PresupuestosDato pd        = BD.Presupuestos[i];
                Cliente          c         = new Cliente(pd.Cliente);
                c = Buscar(c);
                VehiculoNuevo vnuevo = new VehiculoNuevo(pd.VehiculoComprado);
                Vehiculo      v      = null;
                if (Existe(vnuevo))
                {
                    if (ExisteVehiculoNuevo(vnuevo))
                    {
                        v = Buscar(vnuevo);
                    }
                    else
                    {
                        v = Buscar(new VehiculoSegundaMano(pd.VehiculoComprado));
                    }
                }
                int t = BD.Presupuesto_vehiculos.Count;
                for (int i2 = 0; i2 < t; i2++)
                {
                    Presupuesto_VehiculosDato pvd = BD.Presupuesto_vehiculos[i2];
                    if (pd.Id.Equals(pvd.Clave.Id))
                    {
                        VehiculoNuevo vn = new VehiculoNuevo(pvd.Clave.Vehiculo);
                        if (ExisteVehiculoNuevo(vn))
                        {
                            vehiculos.Add(Buscar(vn));
                        }
                        else
                        {
                            VehiculoSegundaMano vs = new VehiculoSegundaMano(pvd.Clave.Vehiculo);
                            vehiculos.Add(Buscar(vs));
                        }
                    }
                }
                Presupuesto p = new Presupuesto(pd.Id, c, pd.FechaRealizacion, pd.Estado, vehiculos, v);
                lista.Add(p);
            }
            return(lista);
        }
Пример #5
0
 /// <summary>
 /// PRE: La clase que se pasa como parametro debe de estar incializada
 /// POST: Dice si existe el Presupuesto en la bd, si es asi devuelve true y falso en caso contrario
 /// </summary>
 /// <param name="p"></param>
 /// <returns></returns>
 public static bool ExistsPresupuesto(PresupuestosDato p)
 {
     return(BD.Presupuestos.Contains(p.Identificador));
 }
Пример #6
0
 /// <summary>
 /// PRE: La clase que se pasa como parametro debe de estar incializada y debe existir
 /// POST: Actualiza el Presupuesto con esa clave de la bd, el Presupuesto que se pasa como parametro es el que tiene los datos actualizados
 /// </summary>
 /// <param name="p"></param>
 public static void UpdatePresupuesto(PresupuestosDato p)
 {
     BD.DeletePresupuesto(p);
     BD.InsertPresupuesto(p);
 }
Пример #7
0
 /// <summary>
 /// PRE: La clase que se pasa como parametro debe de estar incializada y debe existir
 /// POST: Devuelve el Presupuesto
 /// </summary>
 /// <param name="p"></param>
 /// <returns></returns>
 public static PresupuestosDato SelectPresupuesto(PresupuestosDato p)
 {
     return(BD.Presupuestos[p.Identificador]);
 }
Пример #8
0
 /// <summary>
 /// PRE: La clase que se pasa como parametro debe de estar incializada y debe existir
 /// POST: Elimina el presupuesto de la bd
 /// </summary>
 /// <param name="p"></param>
 public static void DeletePresupuesto(PresupuestosDato p)
 {
     BD.Presupuestos.Remove(p.Identificador);
 }
Пример #9
0
 /// <summary>
 /// PRE: La clase que se pasa como parametro debe de estar incializada
 /// POST: Añade el presupuesto a la bd
 /// </summary>
 /// <param name="p"></param>
 public static void InsertPresupuesto(PresupuestosDato p)
 {
     BD.Presupuestos.Add(p);
 }
Пример #10
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), devuelve true si existe un presupuesto cuya clave coincida con c, false en caso contrario
        /// </summary>
        /// <param name="p"></param>
        /// <returns></returns>
        public static bool Existe(Presupuesto p)
        {
            PresupuestosDato presupuesto = new PresupuestosDato(p.Id, null, p.FechaRealizacion, p.Estado, ""); //Solo nos interesa la clave

            return(BD.ExistsPresupuesto(presupuesto));
        }