예제 #1
0
        //cancelar venda
        public Boolean CancelarVenda(int codigo)
        {
            Boolean retorno = true;
            //atualizar a tabela de venda
            SqlCommand cmd = new SqlCommand();

            cmd.Connection = conexao.ObjetoConexao;
            conexao.Conectar();
            conexao.IniciarTransacao();
            try
            {
                cmd.Transaction = conexao.ObejtoTransacao;
                cmd.CommandText = "update venda set ven_status = 'cancelada' where ven_cod = @codigo;";

                cmd.Parameters.AddWithValue("@codigo", codigo);
                cmd.ExecuteNonQuery();

                //susbtituir para metodo DAOItensVenda

                //incrementar o estoque com os itens da venda cancelada.
                //localizar os itens da venda
                DataTable      tabela = new DataTable();
                SqlDataAdapter da     = new SqlDataAdapter("Select itv_cod,pro_cod,itv_qtde" +
                                                           " from itensvenda where ven_cod = " + codigo.ToString(), conexao.StringConexao);
                da.Fill(tabela);

                //alterar a quantidade do estoque
                ModeloProduto produto;
                // DAOConexao cxp = new DAOConexao(DAOBanco.StringDeConexao);
                //DAOProduto daoProduto1 = new DAOProduto(cxp);
                DAOProduto daoProduto = new DAOProduto(conexao);
                for (int i = 0; i < tabela.Rows.Count; i++)
                {
                    produto         = daoProduto.CarregaModeloProduto(Convert.ToInt32(tabela.Rows[i]["pro_cod"]), true); //utiliza o CarregaModeloProduto por transação
                    produto.ProQtde = produto.ProQtde + Convert.ToDouble(tabela.Rows[i]["itv_qtde"]);
                    daoProduto.Alterar(produto, true);                                                                   //utiliza o Alterar por transação
                }
                conexao.TerminarTransacao();
                conexao.Desconectar();
            }
            catch
            {
                conexao.CancelarTransacao();
                conexao.Desconectar();
                retorno = false;
            }
            return(retorno);
        }