Exemple #1
0
        //todo: Para validar el detalle
        private bool ValidarDetalle()
        {
            MyErrorProvider.Clear();
            bool paso = true;

            if (Convert.ToInt32(CantidadNumericUpDown.Value) == 0)
            {
                MyErrorProvider.SetError(CantidadNumericUpDown, "La cantidad de productos a vender no puede ser 0");
                CantidadNumericUpDown.Focus();
                paso = false;
            }

            if (string.IsNullOrWhiteSpace(ProductoTextBox.Text))
            {
                MyErrorProvider.SetError(ProductoTextBox, "Debe de seleccionar un producto para poder añadirlo a la lista de compra");
                ProductoTextBox.Focus();
                return(false);
            }

            if (CantidadNumericUpDown.Value > BusquedaProductos.listaProductoEnviar[0].Existencia)
            {
                MyErrorProvider.SetError(CantidadNumericUpDown, "La cantidad de productos a vender debe ser menor o igual a la que hay en existencia");
                CantidadNumericUpDown.Focus();
                paso = false;
            }
            return(paso);
        }
        private bool Validar() //Funcion que valida todo el registro
        {
            bool paso = true;

            MyErrorProvider.Clear();

            if (ProductoTextBox.Text == string.Empty)//Valida que haya un producto seleccionado
            {
                MyErrorProvider.SetError(ProductoTextBox, "Debe seleccionar un producto!");
                ProductoTextBox.Focus();
                paso = false;
            }

            if (EntradaIdNumericUpDown.Value > 0)//Valida que si se modifica una entrada el producto sea el mismo!
            {
                if (!ValidarProducto())
                {
                    MyErrorProvider.SetError(ProductoTextBox, "El producto de la entrada no puede variar!");
                    VerProductosButton.Focus();
                    paso = false;
                }
            }


            if (CantidadNumericUpDown.Value == 0)//Valida que la cantidad de entrada sea mayor a 0
            {
                MyErrorProvider.SetError(CantidadNumericUpDown, "La cantidad de la entrada debe ser mayor a 0!");
                CantidadNumericUpDown.Focus();
                paso = false;
            }

            return(paso);
        }
        private void GrabarButton_Click(object sender, EventArgs e)
        {
            if (ProveedorComboBox.SelectedIndex == -1)
            {
                errorProvider1.SetError(ProveedorComboBox, "Dbe seleccionar un Proveedor");
                ProveedorComboBox.Focus();
                return;
            }
            errorProvider1.Clear();

            if (BodegaComboBox.SelectedIndex == -1)
            {
                errorProvider1.SetError(BodegaComboBox, "Dbe seleccionar una Bodega");
                BodegaComboBox.Focus();
                return;
            }
            errorProvider1.Clear();

            if (misDetalles.Count == 0)
            {
                errorProvider1.SetError(ProductoTextBox, "Ingresar Productos en la compra");
                ProductoTextBox.Focus();
                return;
            }
            errorProvider1.Clear();

            DialogResult rta = MessageBox.Show("¿Está seguro de grabar la compra?", "Confirmació n", MessageBoxButtons.YesNo,
                                               MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);

            if (DialogResult.No == rta)
            {
                return;
            }

            int IDProveedor = (int)ProveedorComboBox.SelectedValue;
            int IDBodega    = (int)BodegaComboBox.SelectedValue;

            //Grabamos Encabezado de  la Compra
            int      IDCompra = CADCompra.InsertCompra(ComprasDateTimePicker.Value, IDProveedor, IDBodega);
            DateTime Fecha    = ComprasDateTimePicker.Value;

            //Grabamos detalle de la compra
            foreach (DetalleCompra miDetalle in misDetalles)
            {
                //Actualixamos la tabla bodegaProducto
                CADBodegaProducto miBodegaProducto = CADBodegaProducto.GetBodegaProductoByIDBodegaAndIDProducto
                                                         (IDBodega, miDetalle.IDProducto);

                if (miBodegaProducto == null)
                {
                    CADBodegaProducto.UpdateBodegaProducto(IDBodega, miDetalle.IDProducto, 1, 1, 1, 1);
                }
                CADCompra.AumentarStock(miDetalle.Cantidad, IDBodega, miDetalle.IDProducto);

                //Actualizamos el Kardex

                CADKardex miKardex = CADKardex.UltimoKardex(IDBodega, miDetalle.IDProducto);

                int     IDKardex;
                float   nuevoSaldo;
                decimal nuevoCostoPromedio;

                if (miKardex == null)
                {
                    nuevoSaldo         = miDetalle.Cantidad;
                    nuevoCostoPromedio = miDetalle.ValorNeto / (decimal)miDetalle.Cantidad;
                }
                else
                {
                    nuevoSaldo         = miKardex.Saldo + miDetalle.Cantidad;
                    nuevoCostoPromedio =
                        (miKardex.CostoPromedio * (decimal)miKardex.Saldo +
                         miDetalle.ValorNeto) /
                        (decimal)nuevoSaldo;
                }

                IDKardex = CADKardex.InsertKardex(IDBodega, miDetalle.IDProducto, Fecha,
                                                  string.Format("CO-{0}", IDCompra), miDetalle.Cantidad, 0, nuevoSaldo,
                                                  miDetalle.ValorNeto / (decimal)miDetalle.Cantidad, nuevoCostoPromedio);

                //Actulaizamos CompraDetalle
                CADCompraDetalle.InsertCompraDetalle(IDCompra, miDetalle.IDProducto, miDetalle.Descripcion, miDetalle.Costo,
                                                     miDetalle.Cantidad, IDKardex, miDetalle.PorcentajeIVA, miDetalle.PorcentajeDescuento);
            }

            MessageBox.Show(string.Format("Lacompra: {0}, fue grabada de forma exitosa", IDCompra, MessageBoxButtons.OK, MessageBoxIcon.Exclamation));

            ProveedorComboBox.SelectedIndex = -1;
            BodegaComboBox.SelectedIndex    = -1;
            misDetalles.Clear();
            RefrescarGrid();
            ProveedorComboBox.Focus();
        }
        private void AñadirButton_Click(object sender, EventArgs e)
        {
            if (ultimoProducto == null)
            {
                errorProvider1.SetError(ProductoTextBox, "Debe ingresar un Producto");
                ProductoTextBox.Focus();
                return;
            }
            errorProvider1.Clear();

            if (CantidadTextBox.Text == string.Empty)
            {
                errorProvider1.SetError(CantidadTextBox, "Debe Ingresar una Cantidad");
                return;
            }
            errorProvider1.Clear();

            float cantidad;

            if (!float.TryParse(CantidadTextBox.Text, out cantidad))
            {
                errorProvider1.SetError(CantidadTextBox, "Debe ingresar un valor Numérico");
                return;
            }
            errorProvider1.Clear();

            if (cantidad <= 0)
            {
                errorProvider1.SetError(CantidadTextBox, "Debe ingresar un valor Numérico mayor a 0");
                return;
            }
            errorProvider1.Clear();

            if (CostoTextBox.Text == string.Empty)
            {
                errorProvider1.SetError(CostoTextBox, "Debe Ingresar un Costo");
                return;
            }
            errorProvider1.Clear();

            decimal costo;

            if (!decimal.TryParse(CostoTextBox.Text, out costo))
            {
                errorProvider1.SetError(CostoTextBox, "Debe ingresar un valor Numérico");
                return;
            }
            errorProvider1.Clear();

            if (costo <= 0)
            {
                errorProvider1.SetError(CostoTextBox, "Debe ingresar un valor Numérico mayor a 0");
                return;
            }
            errorProvider1.Clear();

            float descuento = 0;

            if (DescuentoTextBox.Text != "")
            {
                if (!float.TryParse(DescuentoTextBox.Text, out descuento))
                {
                    errorProvider1.SetError(DescuentoTextBox, "Debe ingresar un valor Numérico");
                    return;
                }
                errorProvider1.Clear();

                if (descuento < 0 && descuento <= 100)
                {
                    errorProvider1.SetError(DescuentoTextBox, "Debe ingresar un valor Numérico mayor a 0 y menor e igual a 100");
                    return;
                }

                errorProvider1.Clear();
                descuento /= 100;
            }


            CADIVA miIVA = CADIVA.GetIVA(ultimoProducto.IDIVA);

            DetalleCompra miDetalle = new DetalleCompra();

            miDetalle.IDProducto          = ultimoProducto.IDProducto;
            miDetalle.Cantidad            = cantidad;
            miDetalle.Costo               = costo;
            miDetalle.PorcentajeDescuento = descuento;
            miDetalle.Descripcion         = ultimoProducto.Descripcion;
            miDetalle.PorcentajeIVA       = miIVA.Tarifa;


            misDetalles.Add(miDetalle);
            RefrescarGrid();
            ultimoProducto        = null;
            ProductoTextBox.Text  = String.Empty;
            CantidadTextBox.Text  = String.Empty;
            CostoTextBox.Text     = String.Empty;
            DescuentoTextBox.Text = String.Empty;
            ProductoLabel.Text    = "Producto...";
        }