示例#1
0
 // PRE: p != null.
 // POS: actualiza en la BD el objeto p.
 public static void Modificar(MD.Presupuesto p)
 {
     if (BD.Presupuestos != null)
     {
         BD.UPDATEPresupuesto(presupuestoAPresupuestoDato(p));
     }
 }
示例#2
0
 // PRE: p != null.
 // POS: devuelve un objeto de tipo MD.Presupuesto si p es encontrado en la BD, null en caso contrario.
 public static MD.Presupuesto Buscar(MD.Presupuesto p)
 {
     if (BD.Presupuestos != null)
     {
         PresupuestoDato pd  = presupuestoAPresupuestoDato(p);
         PresupuestoDato res = BD.SELECTPresupuesto(pd);
         if (res != null)
         {
             Dictionary <MD.Vehiculo, double> valoraciones = new Dictionary <MD.Vehiculo, double>();
             foreach (KeyValuePair <VehiculoDato, double> kvp in res.Valoraciones)
             {
                 valoraciones.Add(PersistenciaVehiculo.VehiculoDatoAVehiculo(kvp.Key), kvp.Value);
             }
             return(new MD.Presupuesto(res.FechaRealizacion, Persistencia.PersistenciaCliente.CambioACliente(res.Cliente), valoraciones));
         }
         else
         {
             return(null);
         }
     }
     else
     {
         return(null);
     }
 }
示例#3
0
 // PRE: p != null.
 // POS: elimina de la BD el objeto p si éste existe en ella.
 public static void Eliminar(MD.Presupuesto p)
 {
     if (BD.Presupuestos != null)
     {
         BD.DELETEPresupuesto(presupuestoAPresupuestoDato(p));
     }
 }
示例#4
0
 // PRE: p != null.
 // POS: inserta en la BD un objeto de tipo MD.Presupuesto.
 public static void Añadir(MD.Presupuesto p)
 {
     if (BD.Presupuestos != null)
     {
         BD.INSERTPresupuesto(presupuestoAPresupuestoDato(p));
     }
 }
示例#5
0
        // PRE: p != null.
        // POS: devuelve un objeto de tipo MD.Presupuesto, creado a partir de un objeto de tipo PresupuestoDato.
        private static MD.Presupuesto presupuestoDatoAPresupuesto(PresupuestoDato pDato)
        {
            Dictionary <MD.Vehiculo, double> valoraciones = new Dictionary <MD.Vehiculo, double>();

            foreach (KeyValuePair <VehiculoDato, double> kvp in pDato.Valoraciones)
            {
                valoraciones.Add(PersistenciaVehiculo.VehiculoDatoAVehiculo(kvp.Key), kvp.Value);
            }

            MD.Estado estado = MD.Estado.Pendiente;

            switch (pDato.Estado)
            {
            case EstadoDato.Aceptado:
                estado = MD.Estado.Aceptado;
                break;

            case EstadoDato.Desestimado:
                estado = MD.Estado.Desestimado;
                break;
            }

            MD.Presupuesto presupuesto = new MD.Presupuesto(pDato.FechaRealizacion, Persistencia.PersistenciaCliente.CambioACliente(pDato.Cliente), valoraciones);
            presupuesto.Vehiculo = Persistencia.PersistenciaVehiculo.VehiculoDatoAVehiculo(pDato.Vehiculo);
            presupuesto.Estado   = estado;
            return(presupuesto);
        }
        // PRE:
        // POS: realiza la compra del vehículo seleccionado de la sección de valoraciones en caso de que el presupuesto
        // POS: cumpla los requisitos (estar en Estado "Pendiente") y desactiva el botón de compra.
        private void btnComprar_Click(object sender, EventArgs e)
        {
            DialogResult res = new DialogResult();

            res = MessageBox.Show("¿Quieres confirmar la compra?", "Confirmación", MessageBoxButtons.YesNo, MessageBoxIcon.Information);

            switch (res)
            {
            case DialogResult.Yes:
                MD.Presupuesto presupuesto = (MD.Presupuesto)bindingNavigator.BindingSource.Current;
                MD.Vehiculo    vehiculo    = null;
                foreach (KeyValuePair <MD.Vehiculo, double> kvp in presupuesto.Valoracion)
                {
                    if ((kvp.Key.Marca + " " + kvp.Key.Modelo + " " + kvp.Key.Año + ", " + kvp.Value + "€").Equals((string)lboxValoraciones.SelectedItem))
                    {
                        vehiculo = kvp.Key;
                    }
                }
                if (LNPresupuesto.Presupuesto.ComprarVehiculo(presupuesto, vehiculo))
                {
                    MessageBox.Show("La compra se ha realizado con éxito", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    actualizar();
                }
                else
                {
                    MessageBox.Show("La compra no se puede llevar a cabo, el presupuesto seleccionado no es válido", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }

                break;

            case DialogResult.No:
                MessageBox.Show("La compra se ha cancelado", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                break;
            }
        }
示例#7
0
 // PRE:
 // POS: marca el estado de un presupuesto como Desestimado.
 public static void DesestimarPresupuesto(MD.Presupuesto presupuesto)
 {
     if (presupuesto != null)
     {
         presupuesto.Estado = MD.Estado.Desestimado;
         Persistencia.PersistenciaPresupuesto.Modificar(presupuesto);
     }
 }
示例#8
0
 // PRE:
 // POS: devuelve verdad si presupuesto está en Estado "Pendiente" y se le asigna el vehículo pasado como
 // POS: parámetro como vehículo comprado, además de actualizar el Estado a "Aceptado", falso en caso contrario.
 public static bool ComprarVehiculo(MD.Presupuesto presupuesto, MD.Vehiculo vehiculo)
 {
     if (presupuesto != null && vehiculo != null)
     {
         if (presupuesto.Estado == MD.Estado.Pendiente)
         {
             presupuesto.Vehiculo = vehiculo;
             presupuesto.Estado   = MD.Estado.Aceptado;
             Persistencia.PersistenciaPresupuesto.Modificar(presupuesto);
             return(true);
         }
     }
     return(false);
 }
        // PRE:
        // POS: cambia el estado del presupuesto actual a Desestimado (si este está en el estado Pendiente) en el caso
        // POS: de que se haya detectado un error y se quiera revocar su validez.
        private void btnRevocar_Click(object sender, EventArgs e)
        {
            DialogResult res = MessageBox.Show("¿Quieres confirmar la operación?", "Confirmación", MessageBoxButtons.YesNo, MessageBoxIcon.Information);

            if (res == DialogResult.Yes)
            {
                MD.Presupuesto presupuesto = (MD.Presupuesto)bindingNavigator.BindingSource.Current;
                if (presupuesto.Estado == MD.Estado.Pendiente)
                {
                    LNPresupuesto.Presupuesto.DesestimarPresupuesto(presupuesto);
                    MessageBox.Show("El presupuesto ha sido desestimado");
                    actualizar();
                }
            }
        }
        // PRE:
        // POS: introduce en la lista de valoraciones, las valoraciones asignadas al presupuesto mostrado.
        // POS: si el estado del presupuesto es Aceptado, el botón de compra está deshabilitado.
        private void actualizar()
        {
            MD.Presupuesto presupuesto = (MD.Presupuesto)bindingNavigator.BindingSource.Current;
            if (presupuesto != null)
            {
                lboxValoraciones.Items.Clear();

                foreach (KeyValuePair <MD.Vehiculo, double> kvp in presupuesto.Valoracion)
                {
                    lboxValoraciones.Items.Add(kvp.Key.Marca + " " + kvp.Key.Modelo + " " + kvp.Key.Año + ", " + kvp.Value + "€");
                }

                lboxValoraciones.SelectedIndex = 0;

                txtCliente.Text    = presupuesto.Cliente.Nombre + ", " + presupuesto.Cliente.DNI;
                btnComprar.Visible = (presupuesto.Estado == MD.Estado.Aceptado || presupuesto.Estado == MD.Estado.Desestimado ? false : true);
                txtVehiculo.Text   = (presupuesto.Estado == MD.Estado.Aceptado ? (txtVehiculo.Text = presupuesto.Vehiculo.Marca + " " + presupuesto.Vehiculo.Modelo + " " + presupuesto.Vehiculo.Año) : "");
                btnRevocar.Visible = (presupuesto.Estado == MD.Estado.Aceptado || presupuesto.Estado == MD.Estado.Desestimado ? false : true);
                txtEstado.Text     = presupuesto.Estado.ToString();
            }
        }
示例#11
0
        // PRE: p != null.
        // POS: devuelve un objeto de tipo PresupuestoDato, creado a partir de un objeto de tipo MD.Presupuesto.
        private static PresupuestoDato presupuestoAPresupuestoDato(MD.Presupuesto p)
        {
            Dictionary <VehiculoDato, double> valoraciones = new Dictionary <VehiculoDato, double>();

            foreach (KeyValuePair <MD.Vehiculo, double> kvp in p.Valoracion)
            {
                valoraciones.Add(PersistenciaVehiculo.VehiculoAVehiculoDato(kvp.Key), kvp.Value);
            }

            EstadoDato estado = EstadoDato.Pendiente;

            switch (p.Estado)
            {
            case MD.Estado.Aceptado:
                estado = EstadoDato.Aceptado;
                break;

            case MD.Estado.Desestimado:
                estado = EstadoDato.Desestimado;
                break;
            }

            return(new PresupuestoDato(p.FechaRealizacion, Persistencia.PersistenciaCliente.CambioAClienteDato(p.Cliente), Persistencia.PersistenciaVehiculo.VehiculoAVehiculoDato(p.Vehiculo), estado, valoraciones));
        }
示例#12
0
 // PRE: presupuesto != null.
 // POS: devuelve el objeto de tipo Vehiculo asociado al presupuesto pasado como parámetro.
 public static MD.Vehiculo GetVehiculo(MD.Presupuesto presupuesto)
 {
     return(presupuesto.Vehiculo);
 }
示例#13
0
 // PRE: presupuesto != null.
 // POS: devuelve el objeto de tipo Cliente asociado al presupuesto pasado como parámetro.
 public static MD.Cliente GetCliente(MD.Presupuesto presupuesto)
 {
     return(presupuesto.Cliente);
 }
示例#14
0
 // PRE: presupuesto != null.
 // POS: devuelve la fecha de la creación del presupuesto pasado como parámetro.
 public static DateTime GetFecha(MD.Presupuesto presupuesto)
 {
     return(presupuesto.FechaRealizacion);
 }
示例#15
0
 // PRE: presupuesto != null.
 // POS: estado = "estado" y vehiculo = "vehiculo", obtenidos del objeto de tipo Presupuesto pasado como parámetro.
 public static void GetVehiculoComprado(MD.Presupuesto presupuesto, out MD.Estado estado, out MD.Vehiculo vehiculo)
 {
     estado   = presupuesto.Estado;
     vehiculo = presupuesto.Vehiculo;
 }
示例#16
0
 // PRE: presupuseto != null.
 // POS: devuevlve verdadero si el presupuesto ha sido aceptado, falso en caso contrario.
 public static bool EsAceptado(MD.Presupuesto presupuesto)
 {
     return(presupuesto.Estado.Equals(MD.Estado.Aceptado));
 }
示例#17
0
 // PRE: presupuesto != null.
 // POS: devuelve el Estado en el que se encuentra un objeto de tipo Presupuesto.
 public static MD.Estado GetEstado(MD.Presupuesto presupuesto)
 {
     return(presupuesto.Estado);
 }