public bool ExcluirBL(VendaItens venIt)
        {
            if (venIt.Id > 0)
            {
                VendaItensDA venItDA = new VendaItensDA();

                return venItDA.ExcluirDA(venIt);
            }
            return false;
        }
        public bool InserirBL(VendaItens venIt, int usuarioID)
        {
            if (IsValid(venIt))
            {
                VendaItensDA venItDA = new VendaItensDA();

                return venItDA.InserirDA(venIt, usuarioID);
            }
            return false;
        }
        public bool EditarBL(VendaItens venIt)
        {
            if (venIt.Id > 0 && IsValid(venIt))
            {
                VendaItensDA venItDA = new VendaItensDA();

                return venItDA.EditarDA(venIt);
            }
            return false;
        }
        private void geraRelatorio()
        {
            VendasBL vendaBL = new VendasBL();
            Vendas venda = new Vendas();
            int vendaid = Convert.ToInt16(Request.QueryString["vendaid"].ToString());
            lDtVenda = vendaBL.PesquisarBLDataSet(vendaid).Tables[0];
            if (lDtVenda.Rows.Count > 0)
            {

                InstituicoesBL instBL = new InstituicoesBL();
                Instituicoes inst = new Instituicoes();

                InstituicoesLogoBL instLogoBL = new InstituicoesLogoBL();
                InstituicoesLogo instLogo = new InstituicoesLogo();

                VendaItensBL vendaItensBL = new VendaItensBL();
                VendaItens vendaItens = new VendaItens();

                ReportDataSource rptDatasourceInstituicao = new ReportDataSource("DataSet_Instituicao", instBL.PesquisarDsBL().Tables[0]);
                ReportDataSource rptDatasourceInstituicaoLogo = new ReportDataSource("DataSet_InstituicaoLogo", instLogoBL.PesquisarDsBL().Tables[0]);
                ReportDataSource rptDatasourceVenda = new ReportDataSource("DataSet_Venda", lDtVenda);
                DataSet lds = vendaItensBL.PesquisarBLDataSet(vendaid, "A");
                ReportParameter[] param = new ReportParameter[1];
                ReportDataSource rptDatasourceVendaItem = new ReportDataSource("DataSet_VendaItens", lds.Tables[0]);

                decimal valorTotal = utils.ComparaDecimalComZero((lds.Tables[0].Compute("Sum(total)", "").ToString()));
                decimal descontoTotal = utils.ComparaDecimalComZero(lds.Tables[0].Compute("Sum(desconto)", "").ToString());
                NumeroPorExtenso numeroPorExtenso = new NumeroPorExtenso(valorTotal);
                string valorExtenso = numeroPorExtenso.ToString();
                param[0] = new ReportParameter("valorExtenso", valorExtenso);
                ReportViewer1.LocalReport.SetParameters(param);
                ReportViewer1.LocalReport.DataSources.Add(rptDatasourceInstituicao);
                ReportViewer1.LocalReport.DataSources.Add(rptDatasourceInstituicaoLogo);
                ReportViewer1.LocalReport.DataSources.Add(rptDatasourceVenda);
                ReportViewer1.LocalReport.DataSources.Add(rptDatasourceVendaItem);

                ReportViewer1.LocalReport.Refresh();
                //Session["ldsRel"] = null;

            }
            else
            {
                divRelatorio.Visible = false;
                divMensagem.Visible = true;
                lblMensagem.Text = "Este relatorio não possui dados.";
            }
        }
        public bool ExcluirDA(VendaItens venItEi)
        {
            SqlParameter[] paramsToSP = new SqlParameter[1];

            paramsToSP[0] = new SqlParameter("@id", venItEi.Id);

            try
            {
                SqlHelper.ExecuteNonQuery(ConfigurationManager.ConnectionStrings["conexao"].ToString(), CommandType.StoredProcedure, "stp_delete_vendaItens", paramsToSP);

                return true;
            }
            catch (Exception e)
            {
                return false;
            }
        }
        private void geraRelatorio()
        {
            DoacoesBL doacoesBL = new DoacoesBL();
            Doacoes doacoes = new Doacoes();
            int doacaoid = Convert.ToInt16(Request.QueryString["doacaoid"].ToString());
            lDtDoacao = doacoesBL.PesquisarDataset(doacaoid).Tables[0];
            if (lDtDoacao.Rows.Count > 0)
            {

                InstituicoesBL instBL = new InstituicoesBL();
                Instituicoes inst = new Instituicoes();

                InstituicoesLogoBL instLogoBL = new InstituicoesLogoBL();
                InstituicoesLogo instLogo = new InstituicoesLogo();

                VendaItensBL vendaItensBL = new VendaItensBL();
                VendaItens vendaItens = new VendaItens();

                ReportDataSource rptDatasourceInstituicao = new ReportDataSource("DataSet_Instituicao", instBL.PesquisarDsBL().Tables[0]);
                ReportDataSource rptDatasourceInstituicaoLogo = new ReportDataSource("DataSet_InstituicaoLogo", instLogoBL.PesquisarDsBL().Tables[0]);
                ReportDataSource rptDatasourceVenda = new ReportDataSource("DataSet_Doacao", lDtDoacao);
                decimal valor = Convert.ToDecimal(lDtDoacao.Rows[0]["valor"].ToString());
                NumeroPorExtenso numeroPorExtenso = new NumeroPorExtenso(valor);
                string valorExtenso = numeroPorExtenso.ToString();
                ReportParameter[] param = new ReportParameter[1];
                param[0] = new ReportParameter("valorExtenso", valorExtenso);

                rptDoacao.LocalReport.SetParameters(param);
                rptDoacao.LocalReport.DataSources.Add(rptDatasourceInstituicao);
                rptDoacao.LocalReport.DataSources.Add(rptDatasourceInstituicaoLogo);
                rptDoacao.LocalReport.DataSources.Add(rptDatasourceVenda);

                rptDoacao.LocalReport.Refresh();
                //Session["ldsRel"] = null;
            }
            else
            {
                divRelatorio.Visible = false;
                divMensagem.Visible = true;
                lblMensagem.Text = "Este relatorio não possui dados.";
            }
        }
        public bool EditarDA(VendaItens venItEi)
        {
            SqlParameter[] paramsToSP = new SqlParameter[7];

            paramsToSP[0] = new SqlParameter("@id", venItEi.Id);
            paramsToSP[1] = new SqlParameter("@vendaid", venItEi.VendaId);
            paramsToSP[2] = new SqlParameter("@valor", venItEi.Valor);
            paramsToSP[3] = new SqlParameter("@quantidade", venItEi.Quantidade);
            paramsToSP[4] = new SqlParameter("@itemestoqueid", venItEi.ItemEstoqueId);
            paramsToSP[5] = new SqlParameter("@desconto", venItEi.Desconto);
            paramsToSP[6] = new SqlParameter("@situacao", venItEi.Situacao);

            try
            {
                SqlHelper.ExecuteNonQuery(ConfigurationManager.ConnectionStrings["conexao"].ToString(), CommandType.StoredProcedure, "stp_update_VendaItens", paramsToSP);

                return true;
            }
            catch (Exception e)
            {
                return false;
            }
        }
        protected void btnFinalizar_Click(object sender, EventArgs e)
        {
            VendasBL venEBL = new VendasBL();
            Vendas vendas = new Vendas();
            VendaItensBL venItBL = new VendaItensBL();
            VendaItens vendaItens = new VendaItens();
            MovimentosEstoqueBL movEstBL = new MovimentosEstoqueBL();
            MovimentosEstoque movEstoque = new MovimentosEstoque();
            int usu_id = 0;

            vendas.Data = DateTime.Now;
            vendas.Situacao = "A";
            vendas.PessoaId = utils.ComparaIntComZero(hfIdPessoa.Value);

            if (Session["usuario"] != null)
            {
                List<Usuarios> usuarios;
                usuarios = (List<Usuarios>)Session["usuario"];

                foreach (Usuarios usu in usuarios)
                {
                    usu_id = usu.Id;
                }

                vendas.UsuarioId = usu_id;
            }

            if (Session["dtItens"] != null)
                dtItens = (DataTable)Session["dtItens"];

            if (dtItens.Rows.Count > 0)
            {
                int id = venEBL.InserirBL(vendas);

                if (id > 0)
                {
                    foreach (DataRow linha in dtItens.Rows)
                    {
                        vendaItens.VendaId = id;
                        vendaItens.ItemEstoqueId = utils.ComparaIntComZero(linha["ITEMESTOQUEID"].ToString());
                        vendaItens.Quantidade = utils.ComparaIntComZero(linha["QUANTIDADE"].ToString());
                        vendaItens.Valor = utils.ComparaDecimalComZero(linha["VALORUNI"].ToString());
                        vendaItens.Situacao = "A";
                        vendaItens.Desconto = utils.ComparaDecimalComZero(linha["DESCONTO"].ToString());

                        venItBL.InserirBL(vendaItens, usu_id);

                    }

                    if (id > 0)
                    {
                        if (chkImprimirRec.Checked)                                                                                                                                                                                                                                                                                                                                                                                                                                           //l//c
                            ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "WinOpen('/Relatorios/RelReciboVenda.aspx?vendaid=" + id + "','',600,850);", true);

                        ExibirMensagem("Venda gravada com sucesso !");
                        LimparCamposGeral();
                        txtCliente.Focus();
                    }
                    else
                        ExibirMensagem("Não foi possível gravar a venda. Revise as informações!");
                }
                else
                    ExibirMensagem("Não foi possível gravar a venda. Revise as informações!");
            }
        }
 private bool IsValid(VendaItens venIt)
 {
     bool valido;
     valido = venIt.Situacao.Trim() == "A";
     valido = valido && venIt.ItemEstoqueId > 0 && venIt.Quantidade > 0 && venIt.Valor > 0;
     return valido;
 }
        public bool InserirDA(VendaItens venItEi, int usuarioID)
        {
            SqlParameter[] paramsToSP = new SqlParameter[7];

            paramsToSP[0] = new SqlParameter("@vendaid", venItEi.VendaId);
            paramsToSP[1] = new SqlParameter("@valor", venItEi.Valor);
            paramsToSP[2] = new SqlParameter("@quantidade", venItEi.Quantidade);
            paramsToSP[3] = new SqlParameter("@itemestoqueid", venItEi.ItemEstoqueId);
            paramsToSP[4] = new SqlParameter("@desconto", venItEi.Desconto);
            paramsToSP[5] = new SqlParameter("@situacao", venItEi.Situacao);
            paramsToSP[6] = new SqlParameter("@usuarioId", usuarioID);

            try
            {
                DataSet ds = SqlHelper.ExecuteDataset(ConfigurationManager.ConnectionStrings["conexao"].ToString(),
                    CommandType.StoredProcedure, "stp_insert_VendaItens", paramsToSP);

                DataTable tabela = ds.Tables[0];

                string resultado = tabela.Rows[0][0].ToString();

                if (resultado == "true")
                    return true;
                else
                    return false;
            }
            catch (Exception e)
            {
                return false;
            }
        }
        private List<VendaItens> CarregarObjVendaItem(SqlDataReader dr)
        {
            List<VendaItens> vendaItens = new List<VendaItens>();

            while (dr.Read())
            {
                VendaItens venItEi = new VendaItens();
                venItEi.Id = int.Parse(dr["ID"].ToString());
                venItEi.VendaId = int.Parse(dr["VENDAID"].ToString());
                venItEi.Valor = utils.ComparaDecimalComZero(dr["VALOR"].ToString());
                venItEi.Quantidade = utils.ComparaIntComZero(dr["QUANTIDADE"].ToString());
                venItEi.ItemEstoqueId = utils.ComparaIntComZero(dr["ITEMESTOQUEID"].ToString());
                venItEi.Situacao = dr["SITUACAO"].ToString();
                venItEi.Desconto = utils.ComparaDecimalComZero(dr["DESCONTO"].ToString());

                Obras obra = new Obras();

                obra.Codigo = int.Parse(dr["CODIGO"].ToString());
                obra.Titulo = dr["TITULO"].ToString();

                venItEi.Obras = obra;

                vendaItens.Add(venItEi);
            }

            return vendaItens;
        }