public bool InserirBL(NotasEntradaItens ntE)
        {
            /*criar as regras de negocio*/
            NotasEntradaItensDA ntEiDA = new NotasEntradaItensDA();

            return ntEiDA.InserirDA(ntE);
        }
        public bool InserirDA(NotasEntradaItens ntEi)
        {
            SqlParameter[] paramsToSP = new SqlParameter[6];

            paramsToSP[0] = new SqlParameter("@notaentradaid", ntEi.NotaEntradaId);
            paramsToSP[1] = new SqlParameter("@valor", ntEi.Valor);
            paramsToSP[2] = new SqlParameter("@quantidade", ntEi.Quantidade);
            paramsToSP[3] = new SqlParameter("@itemestoqueid", ntEi.ItemEstoqueId);
            paramsToSP[4] = new SqlParameter("@usuarioId", ntEi.UsuarioId);
            paramsToSP[5] = new SqlParameter("@ValorVenda", ntEi.ValorVenda);

            try
            {
                DataSet ds = SqlHelper.ExecuteDataset(ConfigurationManager.ConnectionStrings["conexao"].ToString(), CommandType.StoredProcedure, "stp_insert_NotaEntradaItens", 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;
            }
        }
        public bool ExcluirDA(NotasEntradaItens ntEi)
        {
            SqlParameter[] paramsToSP = new SqlParameter[1];

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

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

                return true;
            }
            catch (Exception e)
            {
                return false;
            }
        }
        public bool EditarDA(NotasEntradaItens ntEi)
        {
            SqlParameter[] paramsToSP = new SqlParameter[5];

            paramsToSP[0] = new SqlParameter("@id", ntEi.Id);
            paramsToSP[1] = new SqlParameter("@notaentradaid", ntEi.NotaEntradaId);
            paramsToSP[2] = new SqlParameter("@valor", ntEi.Valor);
            paramsToSP[3] = new SqlParameter("@quantidade", ntEi.Quantidade);
            paramsToSP[4] = new SqlParameter("@itemestoqueid", ntEi.ItemEstoqueId);

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

                return true;
            }
            catch (Exception e)
            {
                return false;
            }
        }
        private List<NotasEntradaItens> CarregarObjNotaEntrada(SqlDataReader dr)
        {
            List<NotasEntradaItens> NotasEntradaItens = new List<NotasEntradaItens>();

            while (dr.Read())
            {
                NotasEntradaItens ntEi = new NotasEntradaItens();
                ntEi.Id = int.Parse(dr["ID"].ToString());
                ntEi.NotaEntradaId = int.Parse(dr["NOTAENTRADAID"].ToString());
                ntEi.Valor = utils.ComparaDecimalComZero(dr["VALOR"].ToString());
                ntEi.Quantidade = utils.ComparaIntComZero(dr["QUANTIDADE"].ToString());
                ntEi.ItemEstoqueId = utils.ComparaIntComZero(dr["ITEMESTOQUEID"].ToString());

                Obras obra = new Obras();
                obra.Codigo = utils.ComparaIntComZero(dr["CODIGO"].ToString());
                obra.Titulo = dr["TITULO"].ToString();
                ntEi.Obra = obra;

                NotasEntradaItens.Add(ntEi);
            }

            return NotasEntradaItens;
        }
        private void ExcluirItens()
        {
            NotasEntradaItensBL neItBL = new NotasEntradaItensBL();
            NotasEntradaItens neItens = new NotasEntradaItens();

            if (Session["tbexcluidos"] != null)
            {
                dtExcluidos = (DataTable)Session["tbexcluidos"];
                foreach (DataRow row in dtExcluidos.Rows)
                {
                    switch (row["TIPO"].ToString().ToUpper())
                    {
                        case "I":
                            {
                                neItens.Id = utils.ComparaIntComZero(row["IDCODIGO"].ToString());
                                neItBL.ExcluirBL(neItens);
                                break;
                            }
                    }
                }
            }
        }
        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) !");
        }