Beispiel #1
0
        /// <summary>
        /// Método de respuesta al evento de click en el menú tsBajaVehiculo.
        /// Gestiona la operación de baja lógica de un vehículo (cambia su stock a false - no disponible)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsBajaVehiculo_Click(object sender, EventArgs e)
        {
            FClave fc = new FClave("Número de bastidor:");

            DialogResult drbuscar = fc.ShowDialog();

            if (drbuscar == DialogResult.OK)
            {
                VehiculoDTO1 vdto = new VehiculoDTO1(fc.Clave);
                Vehiculo     v    = GestionVehiculo.consultarVehiculo(vdto);
                if (v != null)
                {
                    FBajaVehiculo fbv = new FBajaVehiculo(v);

                    DialogResult drbaja = fbv.ShowDialog();
                    if (drbaja == DialogResult.OK)
                    {
                        GestionVehiculo.bajaVehiculo(vdto);
                    }
                }
                else
                {
                    MessageBox.Show("No se ha encontrado el vehículo con número de bastidor " + fc.Clave + ".", "Vehículo no encontrado", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
 /// <summary>
 /// Obtiene los datos de un vehículo a partir de su clave.
 /// </summary>
 /// <param name="v">Clave del vehículo.</param>
 /// <returns>Objeto Vehículo en caso de existir, NULL en caso contrario.</returns>
 public static Vehiculo consultarVehiculo(VehiculoDTO1 v)
 {
     if (BD.ColeccionVehiculos.Contains(v.Bastidor))
     {
         Vehiculo vaux = BD.ColeccionVehiculos[v.Bastidor];
         return(vaux);
     }
     else
     {
         return(null);
     }
 }
 /// <summary>
 /// Baja lógica de un vehículo. Establece stock como false (no disponible).
 /// </summary>
 /// <param name="v">Vehículo a modificar.</param>
 /// <returns>TRUE si se ha modificado, FALSE en caso contrario.</returns>
 public static bool bajaVehiculo(VehiculoDTO1 v)
 {
     if (BD.ColeccionVehiculos.Contains(v.Bastidor))
     {
         Vehiculo vaux = BD.ColeccionVehiculos[v.Bastidor];
         BD.ColeccionVehiculos.Remove(v.Bastidor);
         vaux.Stock = false;
         BD.ColeccionVehiculos.Add(vaux);
         return(true);
     }
     else
     {
         return(false);
     }
 }
Beispiel #4
0
        /*
         * public static List<Presupuesto> presupuestosComercial(ComercialDTO1 c)
         * {
         *  List<Presupuesto> lista = new List<Presupuesto>();
         *  foreach (Presupuesto p in BD.ColeccionPresupuestos)
         *  {
         *      if (p.Comerc.Dni == c.IdComercial)
         *      {
         *          lista.Add(p);
         *      }
         *  }
         *  return lista;
         * }
         */
        /// <summary>
        /// Obtiene un listado de presupuestos para un determinado vehículo, a partir de la clave de éste.
        /// </summary>
        /// <param name="v">Clave del vehículo.</param>
        /// <returns>Listado de presupuestos. Puede ser vacío.</returns>
        public static List <Presupuesto> presupuestosVehiculo(VehiculoDTO1 v)
        {
            List <Presupuesto> lista = new List <Presupuesto>();

            foreach (Presupuesto p in BD.ColeccionPresupuestos)
            {
                foreach (LineaPresupuesto lp in p.Lineas)
                {
                    if (lp.VehiculoPr.Bastidor == v.Bastidor)
                    {
                        lista.Add(p);
                    }
                }
            }
            return(lista);
        }
Beispiel #5
0
        /// <summary>
        /// Método de respuesta al evento de click en el menú tsConsultarVehiculo.
        /// Gestiona la operación de consulta de un vehículo.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsConsultarVehiculo_Click(object sender, EventArgs e)
        {
            FClave fc = new FClave("Número de bastidor:");

            DialogResult dr = fc.ShowDialog();

            if (dr == DialogResult.OK)
            {
                VehiculoDTO1 v = new VehiculoDTO1(fc.Clave);
                if (GestionVehiculo.existeVehiculo(v))
                {
                    FConsultarVehiculo fcv = new FConsultarVehiculo(GestionVehiculo.consultarVehiculo(v));
                    fcv.Show();
                }
                else
                {
                    MessageBox.Show("No se ha encontrado el vehículo con número de bastidor " + fc.Clave + ".", "Vehículo no encontrado", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
 /// <summary>
 /// Comprueba si existe un vehículo a partir de su clave.
 /// </summary>
 /// <param name="v">Clave del vehículo.</param>
 /// <returns>TRUE si existe, FALSE en caso contrario.</returns>
 public static bool existeVehiculo(VehiculoDTO1 v)
 {
     return(BD.ColeccionVehiculos.Contains(v.Bastidor));
 }
        /// <summary>
        /// Método de respuesta al evento de click en el botón "btAceptar".
        /// Intenta crear un presupuesto a partir de los datos introducidos.
        /// Si el cliente introducido no existe, preguntará si el usuario desea crearlo.
        /// Si alguno de los vehículos cuyo número de bastidor se introduce en las líneas del presupuesto no existe, preguntará si el usuario desea crearlo.
        /// Si no se introducen líneas al presupuesto, preguntará si el usuario desea introducir alguna.
        /// En caso de que se cancele cualquiera de los anteriores mensajes de error, se cancelará la operación y se cerrará el formulario.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btAceptar_Click(object sender, EventArgs e)
        {
            string       aux;
            DialogResult drx = DialogResult.OK;
            int          j;

            for (int i = 0; i < this.dgLineas.Rows.Count - 1; i++) // Comprobamos que el valor del estado de cada línea sea correcto.
            {
                aux = this.dgLineas.Rows[i].Cells[3].Value.ToString().ToUpper();
                if (aux != "A" && aux != "ACEPTADO" && aux != "P" && aux != "PENDIENTE" && aux != "D" && aux != "DESESTIMADO")
                { // Comprueba que se haya introducido correctamente el estado en el datagrid. Si no es ninguno de los valores permitidos, informará al usuario y cancelará la operación, permitiendo modificarlos.
                    j = i + 1;
                    MessageBox.Show("El valor del estado en la línea " + j + " no es válido. Por favor, utilice 'A', 'P', 'D', 'Aceptado', 'Pendiente' o 'Desestimado'.",
                                    "Estado introducido erróneo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    drx = DialogResult.Cancel; // Cancela el resto de la operación para poder modificar los datos necesarios.
                }
            }
            if (drx == DialogResult.OK) // Si los datos son correctos... (no se cancela la operación)
            {
                List <LineaPresupuesto> llp = new List <LineaPresupuesto>();
                LineaPresupuesto        lpaux = null;
                Estado elinea = Estado.Pendiente, epresu = Estado.Pendiente;
                if (this.dgLineas.Rows.Count == 0) // Si no se han introducido líneas, pregunta si se desean introducir o si se cancela la operación
                {
                    DialogResult dr0 = MessageBox.Show("No se han introducido líneas al presupuesto. ¿Desea introducirlas? Si no, se cancelará la operación.", "Sin líneas de presupuesto", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
                    if (dr0 == DialogResult.Cancel) // Si decide cancelar la operación, cierra el formulario. En caso contrario, el método no hará nada más.
                    {
                        this.Close();
                    }
                }
                else // Si se ha introducido al menos una línea...
                {
                    for (int i = 0; i < this.dgLineas.Rows.Count - 1; i++)
                    { // Recorre las líneas introducidas creando los objetos de tipo LineaPresupuesto y añadiendolos a la lista de los mismos.
                      // Cells -> 0: id linea, 1: id veh, 2: precio, 3: estado línea
                        string       sdtov = this.dgLineas.Rows[i].Cells[1].Value.ToString();
                        VehiculoDTO1 vdto  = new VehiculoDTO1(sdtov);
                        if (!GestionVehiculo.existeVehiculo(vdto))
                        { // Si no existe el vehículo introducido en cualquiera de las líneas de presupuesto, preguntará si el usuario desea crearlo.
                            DialogResult drveh = MessageBox.Show("El vehículo introducido en la línea " + i + " no existe. ¿Desea crearlo? Si no, se cancelará la operación.", "Vehículo inexistente", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
                            if (drveh == DialogResult.OK)
                            { // Si acepta, creará el vehículo
                                FAltaVehiculo fav = new FAltaVehiculo();
                                fav.ucDatos.tbBastidor.Text    = sdtov;
                                fav.ucDatos.tbBastidor.Enabled = false;
                                DialogResult drcv = fav.ShowDialog();
                                if (drcv == DialogResult.OK)
                                { // Si el formulario de creación tiene éxito, da de alta el vehículo en la BD.
                                    GestionVehiculo.altaVehiculo(fav.Vehic);

                                    // Y finalmente crea la línea correspondiente.
                                    elinea = DeterminaEstado(this.dgLineas.Rows[i].Cells[3].Value.ToString());
                                    lpaux  = new LineaPresupuesto(this.dgLineas.Rows[i].Cells[0].Value.ToString(),
                                                                  fav.Vehic,
                                                                  float.Parse(this.dgLineas.Rows[i].Cells[2].Value.ToString()),
                                                                  elinea);
                                    llp.Add(lpaux);
                                    if (elinea == Estado.Aceptado) // Si cualquiera de las líneas tiene por estado "Aceptado", entonces el estado del presupuesto será "Aceptado"
                                    {
                                        epresu = Estado.Aceptado;
                                    }
                                }
                            }
                            else // Si no se acepta, cancela la operación y cierra el formulario.
                            {
                                this.Close();
                            }
                        }
                        else // Si no, si el vehículo existe, crea la línea correspondiente.
                        {
                            elinea = DeterminaEstado(this.dgLineas.Rows[i].Cells[3].Value.ToString());
                            lpaux  = new LineaPresupuesto(this.dgLineas.Rows[i].Cells[0].Value.ToString(),
                                                          GestionVehiculo.consultarVehiculo(new VehiculoDTO1(sdtov)),
                                                          float.Parse(this.dgLineas.Rows[i].Cells[2].Value.ToString()),
                                                          elinea);
                            llp.Add(lpaux);
                            if (elinea == Estado.Aceptado) // Si cualquiera de las líneas tiene por estado "Aceptado", entonces el estado del presupuesto será "Aceptado"
                            {
                                epresu = Estado.Aceptado;
                            }
                        }
                    } // Fin de la creación del listado de LineasPresupuesto
                    Cliente cl = GestionCliente.consultarCliente(new ClienteDTO1(this.tbIDCliente.Text));
                    if (cl == null) // Si el cliente no existe en la BD...
                    {
                        DialogResult dr = MessageBox.Show("El cliente introducido no existe. ¿Desea crearlo? Si no, se cancelará la operación.", "Cliente inexistente", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
                        if (dr == DialogResult.OK)
                        { // Pregunta si desea crearlo. En caso afirmativo...
                            FAltaCliente fac = new FAltaCliente(this.tbIDCliente.Text);
                            DialogResult dr2 = fac.ShowDialog();
                            if (dr2 == DialogResult.OK) // Si el formulario de creación de cliente tiene éxito, prosigue creando el presupuesto y cierra el formulario.
                            {
                                GestionCliente.altaCliente(fac.Client);
                                this.presu = new Presupuesto(this.tbIDPresupuesto.Text,
                                                             fac.Client,
                                                             StringToDate(this.tbFecha.Text),
                                                             llp,
                                                             epresu);
                                this.Close();
                            }
                        }
                        else // En caso contrario, cancela la operación y cierra el formulario.
                        {
                            this.Close();
                        }
                    }
                    else // Si todo está en orden (cliente existente, etc.) prosigue creando el presupuesto y cierra el formulario.
                    {
                        this.presu = new Presupuesto(this.tbIDPresupuesto.Text,
                                                     cl,
                                                     StringToDate(this.tbFecha.Text),
                                                     llp,
                                                     epresu);
                        this.Close();
                    }
                }
            }
        }