Example #1
0
        /// <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);
        }
Example #2
0
        /// <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
                    );
            }
        }
Example #3
0
        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;
                }
            }
        }