/// <summary> /// Devuelve el objeto de tipo Cliente que coincide con los datos pasados por parĂ¡metros /// </summary> /// <param name="nombre"></param> /// <param name="apellido"></param> /// <param name="dni"></param> /// <returns></returns> private Cliente BuscarCliente(string nombre, string apellido, string dni) { Cliente auxCliente = Kwik_E_Mart.BuscarClientePorDni(dni); if (auxCliente != null) { if (!Validaciones.CompararStrings(auxCliente.Nombre, nombre) || !Validaciones.CompararStrings(auxCliente.Apellido, apellido)) { MessageBox.Show("Ya existe un cliente con ese DNI!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } } return(auxCliente); }
/// <summary> /// Eventlistener para cuando cambia la columna cantidad del datagrid de productos vendidos /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dtgProductosVendidos_CellValueChanged(object sender, DataGridViewCellEventArgs e) { string strCantidad = String.Empty; //obtengo el id del producto string idProducto = this.dtgProductosVendidos.Rows[e.RowIndex].Cells[1].Value.ToString(); //obtengo la cantidad del producto if (this.dtgProductosVendidos.Rows[e.RowIndex].Cells[0].Value != null) { strCantidad = this.dtgProductosVendidos.Rows[e.RowIndex].Cells[0].Value.ToString(); } Producto producto = Kwik_E_Mart.BuscarProductoPorId(idProducto); if (int.TryParse(strCantidad, out int cantidad) && cantidad > 0) { if (cantidad <= producto.Stock) { CalcularTotal(); } else { MessageBox.Show( $"Solo hay {producto.Stock} unidades de {producto.Descripcion}", "Error en columna cantidad", MessageBoxButtons.OK, MessageBoxIcon.Error ); this.dtgProductosVendidos.Rows[e.RowIndex].Cells[0].Value = producto.Stock; } } else { MessageBox.Show( "La cantidad debe ser un numero entero mayor a 0", "Error en columna cantidad", MessageBoxButtons.OK, MessageBoxIcon.Error ); } }
private void btnFinalizarCompra_Click(object sender, EventArgs e) { if (ComprobarDatosCliente() && CalcularTotal()) { if (this.dtgProductosVendidos.Rows.Count <= 0) { MessageBox.Show("Agregue al menos un Producto arrastrando y soltando desde la tabla de Productos y agregue una cantidad", "Agregue un producto", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { Empleado empleado = (Empleado)this.cmbEmpleado.SelectedItem; Cliente cliente = BuscarCliente(this.txbNombre.Text, this.txbApellido.Text, this.txbDni.Text); if (cliente == null) { int dni = Validaciones.StringDni(this.txbDni.Text); cliente = new Cliente(this.txbNombre.Text, this.txbApellido.Text, dni); Kwik_E_Mart.listadoClientes.Add(cliente); } this.nuevaCompra = new Compra(cliente, empleado); foreach (DataGridViewRow fila in this.dtgProductosVendidos.Rows) { int.TryParse(fila.Cells[0].Value.ToString(), out int cantidad); string idProducto = fila.Cells[1].Value.ToString(); double.TryParse(fila.Cells[3].Value.ToString(), out double precio); Producto producto = Kwik_E_Mart.BuscarProductoPorId(idProducto); nuevaCompra.Detalles.Add(new CompraDetalle(producto, cantidad, precio)); if (double.TryParse(this.lblTotalNumero.Text, out double total)) { nuevaCompra.Total = total; } } this.DialogResult = DialogResult.OK; } } }