コード例 #1
0
        public void AgregarLinea(LineasFactura L, int numFac, SqlTransaction _pTransaccion)
        {
            SqlCommand oComando = new SqlCommand("AltaLineaFactura", _pTransaccion.Connection);

            oComando.CommandType = CommandType.StoredProcedure;

            oComando.Parameters.AddWithValue("@numFac", numFac);
            oComando.Parameters.AddWithValue("@codArt", L.Articulo.Codigo);
            oComando.Parameters.AddWithValue("@cantidad", L.Cantidad);

            SqlParameter _Retorno = new SqlParameter("@Retorno", SqlDbType.Int);

            _Retorno.Direction = ParameterDirection.ReturnValue;
            oComando.Parameters.Add(_Retorno);

            int oAfectados;

            try
            {
                oComando.Transaction = _pTransaccion;

                oComando.ExecuteNonQuery();

                oAfectados = (int)oComando.Parameters["@Retorno"].Value;
                if (oAfectados == -1)
                {
                    throw new Exception("No existe un articulo con el codigo especificado");
                }
                if (oAfectados == -2)
                {
                    throw new Exception("No existe una factura con el numero especificado");
                }
                if (oAfectados == -3)
                {
                    throw new Exception("La cantidad de lineas de factura no puede superar las 5");
                }
                if (oAfectados == -4)
                {
                    throw new Exception("Ocurrio un error al intentar agregar la linea de factura");
                }
            }
            catch (Exception ex)
            {
                throw new ApplicationException("Problemas con la base de datos:" + ex.Message);
            }
        }
コード例 #2
0
    protected void btnAgregarArticulo_Click(object sender, EventArgs e)
    {
        int                  codArt;
        int                  cantidad;
        LineasFactura        linea;
        List <LineasFactura> lineas;

        lineas = (List <LineasFactura>)Session["Lineas"];

        if (lineas == null)
        {
            lineas = new List <LineasFactura>();
        }

        List <Articulo> articulos = (List <Articulo>)Session["Articulos"];



        try
        {
            codArt   = Convert.ToInt32(txtCodigoArticulo.Text);
            cantidad = Convert.ToInt32(txtCantidad.Text);

            Articulo articuloEncontrado = FabricaLogica.getLogicaArticulos().BuscarArticulo(codArt);

            if (articuloEncontrado == null)
            {
                throw new Exception("El articulo con el codigo especificado no existe");
            }
            else
            {
                foreach (LineasFactura L in lineas)
                {
                    if (L.Articulo.Codigo == codArt)
                    {
                        return; //codigo duplicado
                    }
                }

                linea = new LineasFactura(articuloEncontrado, cantidad);

                lineas.Add(linea);

                Session["Lineas"] = lineas;


                gvProductos.DataSource = lineas;
                gvProductos.DataBind();
            }



            btnAgregar.Enabled = true;

            txtCodigoArticulo.Text = "";
            txtCantidad.Text       = "";
        }
        catch (Exception ex)
        {
            lblError.Text = ex.Message;
        }
    }