public void CarregarPesquisaItem(string conteudo)
        {
            DataTable dt = new DataTable();
            DataColumn coluna1 = new DataColumn("ID", Type.GetType("System.Int32"));
            DataColumn coluna2 = new DataColumn("CODIGO", Type.GetType("System.String"));
            DataColumn coluna3 = new DataColumn("TITULO", Type.GetType("System.String"));

            dt.Columns.Add(coluna1);
            dt.Columns.Add(coluna2);
            dt.Columns.Add(coluna3);

            ItensEstoqueBL itEstBL = new ItensEstoqueBL();
            ItensEstoque itEstoque = new ItensEstoque();
            List<ItensEstoque> ltItEst = itEstBL.PesquisarBuscaBL(conteudo);

            foreach (ItensEstoque litE in ltItEst)
            {
                DataRow linha = dt.NewRow();

                if (litE.Obra != null)
                {
                    linha["ID"] = litE.Id;
                    linha["CODIGO"] = litE.Obra.Codigo;
                    linha["TITULO"] = litE.Obra.Titulo;

                    dt.Rows.Add(linha);
                }
            }

            grdPesquisaItem.DataSource = dt;
            grdPesquisaItem.DataBind();
        }
        public void CarregarPesquisaItem(string conteudo)
        {
            DataTable dt = new DataTable();
            DataColumn coluna1 = new DataColumn("ID", Type.GetType("System.Int32"));
            DataColumn coluna2 = new DataColumn("CODIGO", Type.GetType("System.String"));
            DataColumn coluna3 = new DataColumn("DESCRICAO", Type.GetType("System.String"));

            dt.Columns.Add(coluna1);
            dt.Columns.Add(coluna2);
            dt.Columns.Add(coluna3);

            ItensEstoqueBL itBL = new ItensEstoqueBL();
            ItensEstoque it = new ItensEstoque();
            List<ItensEstoque> lItensEstoque = itBL.PesquisarBuscaBL(conteudo);

            foreach (ItensEstoque pes in lItensEstoque)
            {
                DataRow linha = dt.NewRow();

                linha["ID"] = pes.Id;
                linha["CODIGO"] = pes.Obra.Codigo;
                linha["DESCRICAO"] = pes.Obra.Titulo;

                dt.Rows.Add(linha);
            }

            grdPesquisaItem.DataSource = dt;
            grdPesquisaItem.DataBind();
        }
        protected void btnRelatorio_Click(object sender, EventArgs e)
        {
            ItensEstoqueBL itensEstoqueBL = new ItensEstoqueBL();
            ItensEstoque itensEstoque = new ItensEstoque();

            byte? controlaestoque = null;

            if (utils.ComparaIntComZero(ddlControlaEst.SelectedValue) > 0)
                controlaestoque = Convert.ToByte(ddlControlaEst.SelectedValue);

            byte? blStatus = null;
            string status = "Todos";
            if (ddlStatus.SelectedValue != string.Empty)
            {
                blStatus = Convert.ToByte(ddlStatus.SelectedValue);
                status = ddlStatus.SelectedItem.Text;
            }

            Session["ldsRel"] = itensEstoqueBL.PesquisarItensEstoqueDataSetBL(txtItem.Text, controlaestoque, blStatus).Tables[0];
            if (((DataTable)Session["ldsRel"]).Rows.Count != 0)
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "WinOpen('/Relatorios/RelItensEstoque.aspx?status=" + status + "','',590,805);", true);
            }
            else
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "alert('Sua pesquisa não retornou dados.');", true);
            }
        }
        public bool ExcluirDA(ItensEstoque itEst)
        {
            SqlParameter[] paramsToSP = new SqlParameter[1];

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

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

                return true;
            }
            catch (Exception e)
            {
                return false;
            }
        }
        public bool InserirDA(ItensEstoque itEst)
        {
            SqlParameter[] paramsToSP = new SqlParameter[7];

            paramsToSP[0] = new SqlParameter("@status", itEst.Status);
            paramsToSP[1] = new SqlParameter("@controlaestoque", itEst.ControlaEstoque);
            paramsToSP[2] = new SqlParameter("@qtdminima", itEst.QtdMinima);
            paramsToSP[3] = new SqlParameter("@obraid", itEst.ObraId);
            paramsToSP[4] = new SqlParameter("@vlrcusto", itEst.VlrCusto);
            paramsToSP[5] = new SqlParameter("@vlrvenda", itEst.VlrVenda);
            paramsToSP[6] = new SqlParameter("@data", itEst.Data);

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

                return true;
            }
            catch (Exception e)
            {
                return false;
            }
        }
        private List<ItensEstoque> CarregarObjItemEstoque(SqlDataReader dr)
        {
            List<ItensEstoque> itensEstoque = new List<ItensEstoque>();

            while (dr.Read())
            {
                ItensEstoque itEst = new ItensEstoque();
                itEst.Id = int.Parse(dr["ID"].ToString());
                itEst.Status = bool.Parse(dr["STATUS"].ToString());
                itEst.ControlaEstoque = bool.Parse(dr["CONTROLAESTOQUE"].ToString());
                itEst.QtdMinima = utils.ComparaIntComZero(dr["QTDMINIMA"].ToString());
                itEst.ObraId = utils.ComparaIntComZero(dr["OBRAID"].ToString());
                itEst.VlrCusto = utils.ComparaDecimalComZero(dr["VLRCUSTO"].ToString());
                itEst.VlrVenda = utils.ComparaDecimalComZero(dr["VLRVENDA"].ToString());
                itEst.Data = Convert.ToDateTime(dr["DATA"].ToString());

                ObrasDA obDA = new ObrasDA();
                DataSet dsOb = obDA.PesquisarDA(itEst.ObraId);
                Obras obras = new Obras();

                if (dsOb.Tables[0].Rows.Count != 0)
                {
                    obras.Id = (Int32)dsOb.Tables[0].Rows[0]["id"];
                    obras.Codigo = (Int32)dsOb.Tables[0].Rows[0]["codigo"];
                    obras.Titulo = (string)dsOb.Tables[0].Rows[0]["titulo"];

                    itEst.Obra = obras;
                }

                MovimentosEstoqueDA movEsDA = new MovimentosEstoqueDA();
                itEst.QtdEstoque = movEsDA.PesquisarTotalMovimentosDA(itEst.Id, "");

                itensEstoque.Add(itEst);
            }

            return itensEstoque;
        }
        private void PesquisarConteudo(string valor)
        {
            DataTable dt = new DataTable();
            DataColumn coluna1 = new DataColumn("ID", Type.GetType("System.Int32"));
            DataColumn coluna2 = new DataColumn("CODIGO", Type.GetType("System.String"));
            DataColumn coluna3 = new DataColumn("TITULO", Type.GetType("System.String"));
            DataColumn coluna4 = new DataColumn("VALOR", Type.GetType("System.Decimal"));
            DataColumn coluna5 = new DataColumn("QUANTIDADE", Type.GetType("System.String"));

            dt.Columns.Add(coluna1);
            dt.Columns.Add(coluna2);
            dt.Columns.Add(coluna3);
            dt.Columns.Add(coluna4);
            dt.Columns.Add(coluna5);

            ItensEstoqueBL itEstBL = new ItensEstoqueBL();
            ItensEstoque itEstoque = new ItensEstoque();
            List<ItensEstoque> ltItEst = itEstBL.PesquisarBuscaBL(valor);

            foreach (ItensEstoque litE in ltItEst)
            {
                DataRow linha = dt.NewRow();

                if (litE.Obra != null)
                {
                    linha["ID"] = litE.Id;
                    linha["CODIGO"] = litE.Obra.Codigo;
                    linha["TITULO"] = litE.Obra.Titulo;
                    linha["VALOR"] = litE.VlrVenda.ToString();
                    linha["QUANTIDADE"] = litE.QtdEstoque.ToString();

                    dt.Rows.Add(linha);
                }
            }

            grdPesquisa.DataSource = dt;
            grdPesquisa.DataBind();
        }
        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 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);

            foreach (ItensEstoque ltItEstoque in ltItEst)
            {
                hfIdItem.Value = ltItEstoque.Id.ToString();
                txtItem.Text = ltItEstoque.Obra.Codigo.ToString();
                lblDesItem.Text = ltItEstoque.Obra.Titulo;
            }

            if (utils.ComparaIntComZero(hfIdItem.Value) > 0)
                CarregarDados(utils.ComparaIntComZero(hfIdItem.Value));
            else
            {
                ExibirMensagem("Item não cadastrado !");
                txtItem.Text = "";
                LimparCampos();
            }
        }
        private void PesquisarItem(string conteudo)
        {
            LimparCampos();
            ItensEstoqueBL itEstBL = new ItensEstoqueBL();
            ItensEstoque itEstoque = new ItensEstoque();
            List<ItensEstoque> ltItEst = itEstBL.PesquisarBL("CODIGO", conteudo, 1);

            foreach (ItensEstoque ltItEstoque in ltItEst)
            {
                hfIdItem.Value = ltItEstoque.Id.ToString();
                txtItem.Text = ltItEstoque.Obra.Codigo.ToString();
                lblDesItem.Text = ltItEstoque.Obra.Titulo;
            }

            if (utils.ComparaIntComZero(hfIdItem.Value) <= 0 && conteudo != string.Empty)
            {
                ExibirMensagem("Item não cadastrado !");
                LimparCampos();
            }
        }
        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            ItensEstoqueBL itEsBL = new ItensEstoqueBL();
            ItensEstoque itEstoque = new ItensEstoque();
            itEstoque.Id = utils.ComparaIntComZero(hfId.Value);
            itEstoque.ObraId = utils.ComparaIntComZero(hfIdItem.Value);
            itEstoque.Data = Convert.ToDateTime(txtData.Text);
            itEstoque.QtdMinima = utils.ComparaIntComZero(txtQtdMin.Text);
            itEstoque.VlrCusto = utils.ComparaDecimalComZero(txtVlrMedio.Text);
            itEstoque.VlrVenda = utils.ComparaDecimalComZero(txtVlrVenda.Text);
            itEstoque.ControlaEstoque = chkControlaEstoque.Checked;
            itEstoque.Status = ddlStatus.SelectedValue == "A" ? true : false;

            if (itEstoque.Id > 0)
            {
                if (itEsBL.EditarBL(itEstoque))
                    ExibirMensagem("Atualização realizada com sucesso !");
                else
                    ExibirMensagem("Não foi possível atualizar as informações. Revise as informações !");

            }
            else
            {

                if (itEsBL.InserirBL(itEstoque))
                    ExibirMensagem("Atualização realizada com sucesso !");
                else
                    ExibirMensagem("Não foi possível atualizar as informações. Revise as informações !");

            }
        }