/// <summary> /// Método de respuesta al evento de click en el menú tsAltaCliente. /// Gestiona la operación de alta de un nuevo cliente. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tsAltaCliente_Click(object sender, EventArgs e) { FClave fc = new FClave("DNI del cliente: "); DialogResult dr = fc.ShowDialog(); if (dr == DialogResult.OK) { ClienteDTO1 c = new ClienteDTO1(fc.Clave); if (!GestionCliente.existeCliente(c)) { FAltaCliente fac = new FAltaCliente(c.Dni); fac.ucDatos.tbDni.Text = fc.Clave; //Establece el valor del campo al introducido anteriormente fac.ucDatos.tbDni.Enabled = false; //Evita que este valor se pueda cambiar DialogResult dr2 = fac.ShowDialog(); if (dr2 == DialogResult.OK) { GestionCliente.altaCliente(fac.Client); MessageBox.Show("El cliente se ha añadido correctamente.", "Cliente añadido", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { MessageBox.Show("Ya existe un cliente con DNI " + fc.Clave + ".", "Cliente no encontrado", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
//PRE: Recibe un clienteDTO1 (tan solo conocemos su dni) //POST: devuelve un Cliente con el dni del CLienteDTO1 introducido. public static Cliente consultarCliente(ClienteDTO1 c) { if (existeCliente(c)) { return(BD.ColeccionClientes[c.Dni]); } else { return(null); } }
//PRE: Recibe un clienteDTO1 (tan solo conocemos su dni). //POST: devuelve una lista de sus presupuestos. public static List <Presupuesto> presupuestosCliente(ClienteDTO1 c) { List <Presupuesto> presupuestos = new List <Presupuesto>(); foreach (Presupuesto p in BD.ColeccionPresupuestos) { if (p.Client.Dni.Equals(c.Dni)) { presupuestos.Add(p); } } return(presupuestos); }
/// <summary> /// Obtiene todos los presupuestos asociados a un cliente a partir de la clave de éste. /// </summary> /// <param name="c">Clave del cliente.</param> /// <returns>Listado de presupuestos del cliente. Puede ser vacío.</returns> public static List <Presupuesto> presupuestosCliente(ClienteDTO1 c) { List <Presupuesto> lista = new List <Presupuesto>(); Cliente cli = null; if (GestionCliente.existeCliente(c)) { cli = GestionCliente.consultarCliente(c); foreach (Presupuesto p in BD.ColeccionPresupuestos) { if (p.Client.Equals(cli)) { lista.Add(p); } } } return(lista); }
/// <summary> /// Método de respuesta al evento de click en el menú tsImporteCliente. /// Devuelve un mensaje con el importe del cliente con el DNI introducido. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tsImporteCliente_Click(object sender, EventArgs e) { FClave fc = new FClave("ID Cliente (DNI):"); DialogResult dr = fc.ShowDialog(); if (dr == DialogResult.OK) { ClienteDTO1 cdto = new ClienteDTO1(fc.Clave); if (GestionCliente.existeCliente(cdto)) { MessageBox.Show("El importe total del cliente " + fc.Clave + " es " + GestionCliente.getPresupuestos(cdto), "Importe total", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("El cliente introducido no existe", "Cliente inexistente", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }
/// <summary> /// Método de respuesta al evento de click en el menú tsConsultarCliente. /// Gestiona la operación de consulta de un cliente. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tsConsultarCliente_Click(object sender, EventArgs e) { FClave fc = new FClave("DNI del cliente: "); DialogResult dr = fc.ShowDialog(); if (dr == DialogResult.OK) { ClienteDTO1 c = new ClienteDTO1(fc.Clave); if (GestionCliente.existeCliente(c)) { FBuscarCliente fbc = new FBuscarCliente(GestionCliente.consultarCliente(c)); fbc.ShowDialog(); } else { MessageBox.Show("No se ha encontrado el cliente con DNI " + fc.Clave + ".", "Cliente no encontrado", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
//PRE: Recibe un clienteDTO1 (tan solo conocemos su DNI). //POST: devuelve la cantidad del importe de este cliente. public static double getPresupuestos(ClienteDTO1 c) { double sum = 0; List <LineaPresupuesto> llp = null; List <Presupuesto> lp = null; if ((lp = GestionPresupuesto.presupuestosCliente(c)) != null) // controlo que el cliente tenga presupuestos. Si los tiene... { foreach (Presupuesto p in lp) { llp = p.Lineas; foreach (LineaPresupuesto pp in llp) { if (pp.EstadoLinea == Estado.Aceptado) // tomo únicamente los valores de las líneas que estén aceptadas, el resto están rechazadas o pendientes { sum = sum + pp.Precio; } } } } return(sum); }
/// <summary> /// Método de respuesta al evento de click en el menú tsBajaCliente. /// Gestiona la operación de baja de un cliente. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tsBajaCliente_Click(object sender, EventArgs e) { FClave fc = new FClave("DNI del cliente: "); DialogResult dr = fc.ShowDialog(); if (dr == DialogResult.OK) { ClienteDTO1 c = new ClienteDTO1(fc.Clave); if (GestionCliente.existeCliente(c)) { FBajaCliente fbc = new FBajaCliente(GestionCliente.consultarCliente(c)); DialogResult dr2 = fbc.ShowDialog(); if (dr2 == DialogResult.Yes) { GestionCliente.bajaCliente(fbc.Client); MessageBox.Show("El cliente se ha eliminado correctamente.", "Cliente eliminado", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { MessageBox.Show("No se ha encontrado el cliente con DNI " + fc.Clave + ".", "Cliente no encontrado", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
//PRE: Recibe un clienteDTO1 (tan solo conocemos su dni) //POST: devuelve true si dicho cliente está en la BD. public static bool existeCliente(ClienteDTO1 c) { return(BD.ColeccionClientes.Contains(c.Dni)); }