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!");
            }
        }
        protected void txtItem_TextChanged(object sender, EventArgs e)
        {
            hfIdItem.Value = "";
            ItensEstoqueBL itEstBL = new ItensEstoqueBL();
            ItensEstoque itEstoque = new ItensEstoque();
            List<ItensEstoque> ltItEst = itEstBL.PesquisarBL("CODIGO", txtItem.Text, 1);
            bool controlaEstoque = false;
            Int32 totalEstoque = 0;
            Int32 qtdMinima = 0;

            foreach (ItensEstoque ltItEstoque in ltItEst)
            {
                hfIdItem.Value = ltItEstoque.Id.ToString();
                txtItem.Text = ltItEstoque.Obra.Codigo.ToString();
                lblDesItem.Text = ltItEstoque.Obra.Titulo;
                controlaEstoque = ltItEstoque.ControlaEstoque;
                qtdMinima = ltItEstoque.QtdMinima;
                txtValorUni.Text = ltItEstoque.VlrVenda.ToString();
                lblValor.Text = (ltItEstoque.VlrVenda * utils.ComparaIntComZero(txtQuantidade.Text)).ToString();

                if (controlaEstoque)
                {
                    MovimentosEstoqueBL movEstBL = new MovimentosEstoqueBL();
                    totalEstoque = movEstBL.PesquisarTotalMovimentosBL(ltItEstoque.Id, "");
                    if (totalEstoque <= 0)
                    {
                        ExibirMensagem("Estoque negativo, não será possível realizar a venda.");
                        txtItem.Text = "";
                        LimparCampos();
                    }
                    else
                    {
                        if (totalEstoque <= qtdMinima)
                            ExibirMensagem("Restam apenas " + totalEstoque + " itens no estoque.");
                    }
                }

            }

            if (utils.ComparaIntComZero(hfIdItem.Value) <= 0)
            {
                ExibirMensagem("Item não cadastrado !");
                txtItem.Text = "";
                LimparCampos();
                txtItem.Focus();
            }
            else
                txtValorUni.Focus();
        }
        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            MovimentosEstoqueBL mvEstBL = new MovimentosEstoqueBL();
            MovimentosEstoque movEstoque = new MovimentosEstoque();

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

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

            movEstoque.ItemEstoqueId = utils.ComparaIntComZero(hfIdItem.Value);
            movEstoque.Quantidade = utils.ComparaIntComZero(txtQtde.Text);
            movEstoque.Data = Convert.ToDateTime(txtData.Text);
            movEstoque.Tipo = rblTipoMov.SelectedValue;

            if (movEstoque.ItemEstoqueId > 0 && movEstoque.UsuarioId > 0)
            {

                if (mvEstBL.InserirBL(movEstoque))
                    ExibirMensagem("Estoque atualizado com sucesso!");
                else
                    ExibirMensagem("Não foi possível gravar o movimento. Revise as informações !");

            }

            txtQtde.Text = "";
            LimparCampos();
        }
        private void CarregarDados(int id_ItEst)
        {
            MovimentosEstoqueBL movEsBL = new MovimentosEstoqueBL();
            Int32 total = movEsBL.PesquisarTotalMovimentosBL(id_ItEst, "");

            lblQtdAtual.Text = total.ToString();
        }
        private void Pesquisar(int item_id, DateTime? data)
        {
            DataTable tabela = new DataTable();
            DataColumn coluna1 = new DataColumn("CODITEM", Type.GetType("System.Int32"));
            DataColumn coluna2 = new DataColumn("DESCITEM", Type.GetType("System.String"));
            DataColumn coluna3 = new DataColumn("DATA", Type.GetType("System.String"));
            DataColumn coluna4 = new DataColumn("VLRCUSTO", Type.GetType("System.Decimal"));
            DataColumn coluna5 = new DataColumn("USUNOME", Type.GetType("System.String"));
            DataColumn coluna6 = new DataColumn("QTDE", Type.GetType("System.Int32"));
            DataColumn coluna7 = new DataColumn("NOTAENT", Type.GetType("System.Int32"));
            DataColumn coluna8 = new DataColumn("VENDANUM", Type.GetType("System.Int32"));
            DataColumn coluna9 = new DataColumn("NOTAENTSERIE", Type.GetType("System.Int16"));
            DataColumn coluna10 = new DataColumn("TIPO", Type.GetType("System.String"));
            DataColumn coluna11 = new DataColumn("VLRVENDA", Type.GetType("System.Decimal"));

            tabela.Columns.Add(coluna1);
            tabela.Columns.Add(coluna2);
            tabela.Columns.Add(coluna3);
            tabela.Columns.Add(coluna4);
            tabela.Columns.Add(coluna5);
            tabela.Columns.Add(coluna6);
            tabela.Columns.Add(coluna7);
            tabela.Columns.Add(coluna8);
            tabela.Columns.Add(coluna9);
            tabela.Columns.Add(coluna10);
            tabela.Columns.Add(coluna11);

            MovimentosEstoqueBL movEst = new MovimentosEstoqueBL();
            List<MovimentosEstoque> movEstoque = movEst.PesquisarBL(item_id, data);

            foreach (MovimentosEstoque ltMovEst in movEstoque)
            {
                DataRow linha = tabela.NewRow();

                linha["DATA"] = ltMovEst.Data.ToString("dd/MM/yyyy");
                linha["VLRCUSTO"] = ltMovEst.Valor;
                linha["USUNOME"] = ltMovEst.Usuarios.Login;
                linha["QTDE"] = ltMovEst.Quantidade;
                linha["NOTAENT"] = utils.ComparaIntComZero(ltMovEst.Numnota.ToString());
                linha["NOTAENTSERIE"] = utils.ComparaShortComZero(ltMovEst.Serie.ToString());

                linha["VENDANUM"] = ltMovEst.NumeroVenda != null ? utils.ComparaIntComNull(ltMovEst.NumeroVenda.ToString()): 0 ;

                linha["TIPO"] = ltMovEst.Tipo;
                linha["VLRVENDA"] = ltMovEst.Valor;

                if (ltMovEst.Obras != null)
                {
                    linha["CODITEM"] = ltMovEst.Obras.Codigo.ToString();
                    linha["DESCITEM"] = ltMovEst.Obras.Titulo;
                }

                tabela.Rows.Add(linha);

            }

            dtgMovItem.DataSource = tabela;
            dtgMovItem.DataBind();
            dtbPesquisa = tabela;
            txtQtdTotal.Text = movEst.PesquisarTotalMovimentosBL(item_id, txtData.Text).ToString();
        }
        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            NotasEntradaBL ntEBL = new NotasEntradaBL();
            NotasEntrada notaEntrada = new NotasEntrada();
            NotasEntradaItensBL ntEiBL = new NotasEntradaItensBL();
            NotasEntradaItens notaEntradaItens = new NotasEntradaItens();
            MovimentosEstoqueBL movEstBL = new MovimentosEstoqueBL();
            MovimentosEstoque movEstoque = new MovimentosEstoque();

            notaEntrada.Id = utils.ComparaIntComZero(hfId.Value);
            notaEntrada.Numero = utils.ComparaIntComZero(txtNumero.Text);
            notaEntrada.Serie = utils.ComparaShortComZero(txtSerie.Text);
            notaEntrada.Data = Convert.ToDateTime(txtData.Text);
            int usu_id = 0;

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

            if (dtItens.Rows.Count > 0)
            {

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

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

                if (notaEntrada.Id == 0)
                {

                    if (dtItens.Rows.Count > 0)
                    {
                        int id = ntEBL.InserirBL(notaEntrada);

                        if (id > 0)
                        {
                            foreach (DataRow linha in dtItens.Rows)
                            {
                                notaEntradaItens.NotaEntradaId = id;
                                notaEntradaItens.ItemEstoqueId = utils.ComparaIntComZero(linha["ITEMESTOQUEID"].ToString());
                                notaEntradaItens.Quantidade = utils.ComparaIntComZero(linha["QUANTIDADE"].ToString());
                                notaEntradaItens.Valor = utils.ComparaDecimalComZero(linha["VALOR"].ToString());
                                notaEntradaItens.UsuarioId = usu_id;
                                notaEntradaItens.ValorVenda = utils.ComparaDecimalComZero(linha["VALORVENDA"].ToString());

                                ntEiBL.InserirBL(notaEntradaItens);
                            }
                        }

                        LimparCampos();
                        ExibirMensagem("Nota de Entrada gravada com sucesso !");
                    }

                }
                else
                {

                    ExcluirItens();
                    if (dtItens.Rows.Count > 0)
                    {
                        ntEBL.EditarBL(notaEntrada);

                        foreach (DataRow linha in dtItens.Rows)
                        {
                            notaEntradaItens.NotaEntradaId = notaEntrada.Id;
                            notaEntradaItens.Id = utils.ComparaIntComZero(linha["ID"].ToString());
                            notaEntradaItens.ItemEstoqueId = utils.ComparaIntComZero(linha["ITEMESTOQUEID"].ToString());
                            notaEntradaItens.Quantidade = utils.ComparaIntComZero(linha["QUANTIDADE"].ToString());
                            notaEntradaItens.Valor = utils.ComparaDecimalComZero(linha["VALOR"].ToString());
                            notaEntradaItens.UsuarioId = usu_id;
                            notaEntradaItens.ValorVenda = utils.ComparaDecimalComZero(linha["VALORVENDA"].ToString());

                            if (notaEntradaItens.Id > 0)
                                ntEiBL.EditarBL(notaEntradaItens);
                            else
                                ntEiBL.InserirBL(notaEntradaItens);

                        }
                    }

                    ExibirMensagem("Nota de Entrada atualizada com sucesso !");

                }
            }
            else
                ExibirMensagem("Não é possível salvar uma nota sem o(s) item(es) !");
        }
        protected void btnRelatorio_Click(object sender, EventArgs e)
        {
            MovimentosEstoqueBL movimentosEstoqueBL = new MovimentosEstoqueBL();
            MovimentosEstoque movimentosEstoque = new MovimentosEstoque();

            if (txtQuantidade.Text != string.Empty)
                movimentosEstoque.Quantidade = Convert.ToInt32(txtQuantidade.Text);

            if (utils.ComparaIntComZero(ddlTipoMov.SelectedValue) == 2 )
                movimentosEstoque.Tipo = "S";
            else if (utils.ComparaIntComZero(ddlTipoMov.SelectedValue) == 1 )
                movimentosEstoque.Tipo = "E";

            Session["ldsRel"] = movimentosEstoqueBL.PesquisarDataSetBL(movimentosEstoque, txtItem.Text, txtUsuario.Text, txtDataIni.Text, txtDataFim.Text).Tables[0];
            if (((DataTable)Session["ldsRel"]).Rows.Count != 0)
            {
                string periodo = "Todos";
                if ((txtDataIni.Text != string.Empty) && (txtDataFim.Text != string.Empty))
                {
                    periodo = txtDataIni.Text + " a " + txtDataFim.Text;
                }
                ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "WinOpen('/Relatorios/RelMovimentacaoEstoque.aspx?periodo=" + periodo + "','',590,805);", true);
            }
            else
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "alert('Sua pesquisa não retornou dados.');", true);
            }
        }