private void btnAgregar_Click(object sender, EventArgs e)
        {
            DialogResult D = MessageBox.Show("¿DESEA AGREGAR EL DETALLE?", "CONFIRMAR", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (D == DialogResult.Yes)
            {
                string ClaveF = Convert.ToString(cmbClaveFactura.SelectedItem); string Articulo = Convert.ToString(cmbArticulo.SelectedItem);
                int    ClaveFactura, ClaveArticulo;

                if (cmbClaveFactura.SelectedIndex == -1)
                {
                    MessageBox.Show("FACTURA NO VÁLIDA", "FACTURA", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    Limpiar();
                    return;
                }
                try
                {
                    ClaveFactura = int.Parse(ClaveF);
                }
                catch (Exception Ex)
                {
                    MessageBox.Show("CLAVE DE FACTURA NO VÁLIDA", "ERROR FORMATO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    Limpiar();
                    return;
                }
                if (mD.DetallesPorFactura(ClaveFactura) >= 3)
                {
                    MessageBox.Show("CAPTURA MÁXIMA DE ARTÍCULOS SUPERADA PARA ESTA FACTURA", "DETALLES MÁXIMOS", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                if (AdmA.CantidadArticulos() - mD.DetallesPorFactura(ClaveFactura) == 0)
                {
                    MessageBox.Show("NO SE PUEDEN CAPTURAR MAS ARTICULOS A ESTA FACTURA, AGREGUE MAS ARTICULOS AL CATALAGO", "SIN ARTÍCULOS", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                if (cmbArticulo.SelectedIndex == -1)
                {
                    MessageBox.Show("ARTÍCULO NO VÁLIDO", "ARTÍCULO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                ClaveArticulo = AdmA.BuscaClaveArt(Articulo);
                if (mD.DetalleRepetido(ClaveFactura, ClaveArticulo))
                {
                    MessageBox.Show("ARTÍCULO YA CAPTUDARO PARA ESTA FACTURA", "ARTICULO REPETIDO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                if (numUpCantidad.Value == 0)
                {
                    MessageBox.Show("CANTIDAD NO VÁLIDA", "CANTIDAD", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                int CantArt = (int)numUpCantidad.Value;
                int clave   = AdmA.BuscaClaveArt(Articulo);
                mD.AgregarDetalle(ClaveFactura, clave, CantArt);
                MessageBox.Show("DETALLE AGREGADO CORRECTAMENTE", "DETALLE FACTURA", MessageBoxButtons.OK, MessageBoxIcon.Information);
                Limpiar();
            }
        }
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            DialogResult Result = MessageBox.Show("¿DESEA GUARDAR LA INFORMACION?", "PREGUNTA", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

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

            string Desc = txtDescripcion.Text, Prec = txtPrecio.Text, Marca = txtMarca.Text;; float Precio; int Cant = Convert.ToInt32(nudCantidad.Value);

            if (Rutinas.IsEmpty(Desc))
            {
                MessageBox.Show("FAVOR DE ESCRIBIR UNA DESCRIPCION", "CAMPO VACIO", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (Rutinas.IsEmpty(Marca))
            {
                MessageBox.Show("FAVOR DE ESCRIBIR EL MODELO", "CAMPO VACIO", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (!(Rutinas.validadDecimal(Prec)))
            {
                MessageBox.Show("SOLO SE ACEPTAN NUMEROS EN FORMATO (0.00)", "FORMATO INCORRECTO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            try
            {
                Precio = Convert.ToSingle(txtPrecio.Text);
            }
            catch (FormatException E)
            {
                MessageBox.Show("EL PRECIO NO PUEDE ESTAR VACIO", "CAMPO VACIO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (Precio < 1)
            {
                MessageBox.Show("EL PRECIO NO PUEDE SER MENOR A 1", "VALOR FUERA DE RANGO", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (Cant < 1)
            {
                MessageBox.Show("LA CANTIDAD DE ARTICULOS A INGRESAR NO PUEDE SER MENOR A 1", "VALOR FUERA DE RANGO", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (AdmA.BuscaClaveArt(Desc) > -1)
            {
                MessageBox.Show("EL ARTICULO YA FUE REGISTRADO", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (!AdmA.AgregaArt(Desc, Marca, Precio, Cant))
            {
                MessageBox.Show("NO SE PUDO GUARDAR EL ARTICULO", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            MessageBox.Show("ARTICULO AGREGADO EXITOSAMENTE", "INFORMACION", MessageBoxButtons.OK, MessageBoxIcon.Information);
            Limpiar();
        }
Example #3
0
        private void btnAgregarArticulo_Click(object sender, EventArgs e)
        {
            string ClaveF = Convert.ToString(txtClaveFactura), ClaveP = Convert.ToString(cmbProveedores.SelectedItem); string Articulo = Convert.ToString(cmbArticulo.SelectedItem);
            int    ClaveArticulo;

            if (ClaveF.Length == 0)
            {
                MessageBox.Show("NO PUEDE AGREGAR ARTICULOS SI NO TIENE UNA FACTURA", "SIN FACTURA", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (cmbProveedores.SelectedIndex == -1)
            {
                MessageBox.Show("SELECCIONE UN PROVEEDOR", "PROVEEDOR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (cmbArticulo.SelectedIndex == -1)
            {
                MessageBox.Show("SELECCIONE UN ARTÍCULO", "ARTÍCULO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            int CantArt = lvArticulos.Items.Count;

            if (CantArt >= 3)
            {
                MessageBox.Show("NO SE PUEDE AGRGAR MÁS DE 3 TIPOS DIFERENTES DE ARTICULOS", "ARTICULOS", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            ClaveArticulo = AdmA.BuscaClaveArt(Articulo);
            if (ClaveArticulo == -1)
            {
                MessageBox.Show("EL ARTICULO NO SE ENCONTRO EN EL SISTEMA", "ARTICULO INEXISTENTE", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            float  ArtP = 0; int ArtC = 0; string ArtD = "", ArtM = "";
            string strConexion = Rutinas.GetConnectionString();

            SqlConnection Con = UsoBD.ConectaBD(strConexion);

            if (Con == null)
            {
                MessageBox.Show("NO SE PUDO CONECTAR A LA BASE DE DATOS");

                foreach (SqlError E in UsoBD.ESalida.Errors)
                {
                    MessageBox.Show(E.Message);
                }
                return;
            }
            SqlDataReader Lector = null;

            string strComando = "SELECT Precio,Cantidad,Descripcion, Marca FROM Articulo WHERE Clave=" + ClaveArticulo;

            Lector = UsoBD.Consulta(strComando, Con);

            if (Lector == null)
            {
                MessageBox.Show("ERROR AL HACER LA CONSULTA");
                foreach (SqlError E in UsoBD.ESalida.Errors)
                {
                    MessageBox.Show(E.Message);
                }

                Con.Close();
                return;
            }
            if (Lector.HasRows)
            {
                while (Lector.Read())
                {
                    ArtP = Convert.ToSingle(Lector.GetValue(0).ToString());
                    ArtC = Convert.ToInt32(Lector.GetValue(1).ToString());
                    ArtD = Lector.GetValue(2).ToString();
                    ArtM = Lector.GetValue(3).ToString();
                }
            }
            Con.Close();

            int   Cant        = Convert.ToInt32(numUpCantidad.Value);
            float PrecioTotal = Cant * ArtP;

            for (int i = 0; i < lvArticulos.Items.Count; i++) //BUSCA SI EL ARTICULO YA ESTA AGREGADO EN EL LIST VIEW
            {
                if (lvArticulos.Items[i].Text.Trim() == ClaveArticulo.ToString())
                {
                    int rc      = Convert.ToInt32(lvArticulos.Items[i].SubItems[4].Text); //CANTIDAD DEL ARTICULO REGISTRADO
                    int SumCant = ArtC - (rc + Cant);
                    if (SumCant < 0)
                    {
                        MessageBox.Show("LA EXISTENCIA DEL ARTICULO NO ES LA SUFICIENTE PARA LA CANTIDAD INGRESADA", "EXISTENCIA INSUFICIENTE", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    int cf = rc + Cant; //CANTIDAD FINAL
                    lvArticulos.Items[i].SubItems[4].Text = cf.ToString();
                    float rp = Convert.ToSingle(lvArticulos.Items[i].SubItems[5].Text);
                    float pf = PrecioTotal + rp; //PRECIO FINAL
                    lvArticulos.Items[i].SubItems[5].Text = pf.ToString();
                    CalculaImporte();
                    return;
                }
            }
            //SI EL ARTICULO A AGREGAR NO SE ENCUENTRA EN LA LIST VIEW
            int DifCant = ArtC - Cant;

            if (DifCant < 0)
            {
                MessageBox.Show("LA EXISTENCIA DEL ARTICULO NO ES LA SUFICIENTE PARA LA CANTIDAD INGRESADA", "EXISTENCIA INSUFICIENTE", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            //AGREGA LOS DATOS DEL ARTICULO EN UNA LISTA
            ListViewItem Registro = new ListViewItem(ClaveArticulo.ToString());

            Registro.SubItems.Add(ArtD);
            Registro.SubItems.Add(ArtM);
            Registro.SubItems.Add(ArtP.ToString());
            Registro.SubItems.Add(Cant.ToString());
            Registro.SubItems.Add(PrecioTotal.ToString());
            //AGREGA LA LISTA CON TODOS LOS DATOS DEL ARTICULO EN EL LIST VIEW
            lvArticulos.Items.Add(Registro);
            CalculaImporte();
        }