public bool InserirBL(Exemplares instancia)
        {
            /*criar as regras de negocio*/
            ExemplaresDA varDA = new ExemplaresDA();

            return varDA.InserirDA(instancia);
        }
        public void CarregarPesquisaExemplar(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);

            ExemplaresBL exBL = new ExemplaresBL();
            Exemplares ex = new Exemplares();
            List<Exemplares> listao = exBL.PesquisarDisponiveis(conteudo);

            foreach (Exemplares laco in listao)
            {
                DataRow linha = dt.NewRow();

                linha["ID"] = laco.Id;
                linha["CODIGO"] = laco.Tombo;
                linha["DESCRICAO"] = laco.Obras.Titulo;

                dt.Rows.Add(linha);
            }

            grdPesquisaEx.DataSource = dt;
            grdPesquisaEx.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);

            ExemplaresBL exeBL = new ExemplaresBL();
            Exemplares exemplares = new Exemplares();

            DataSet dsExe = exeBL.PesquisarExemplaresDevolucao(conteudo);
            foreach (DataRow ltExe in dsExe.Tables[0].Rows)
            {
                DataRow linha = dt.NewRow();
                linha["ID"] = ltExe["Id"];
                linha["CODIGO"] = ltExe["tombo"];
                linha["DESCRICAO"] = ltExe["titulo"];

                dt.Rows.Add(linha);
            }

            grdPesquisaItem.DataSource = dt;
            grdPesquisaItem.DataBind();
        }
        public void CarregarPesquisaExemplar(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"));
            DataColumn coluna4 = new DataColumn("TOMBO", Type.GetType("System.String"));

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

            ExemplaresBL exeBL = new ExemplaresBL();
            Exemplares exe = new Exemplares();
            List<Exemplares> lExemplares = exeBL.PesquisarBuscaBL(conteudo);

            foreach (Exemplares pes in lExemplares)
            {
                DataRow linha = dt.NewRow();

                linha["ID"] = pes.Id;
                linha["CODIGO"] = pes.Obras.Codigo;
                linha["DESCRICAO"] = pes.Obras.Titulo;
                linha["TOMBO"] = pes.Tombo;

                dt.Rows.Add(linha);
            }

            grdPesquisaExemplar.DataSource = dt;
            grdPesquisaExemplar.DataBind();
        }
        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            ExemplaresBL exeBL = new ExemplaresBL();
            Exemplares exemplares = new Exemplares();
            exemplares.Id = utils.ComparaIntComZero(hfId.Value);
            exemplares.Obraid = utils.ComparaIntComZero(hfIdObra.Value);
            exemplares.Tombo = utils.ComparaIntComZero(txtTombo.Text);
            exemplares.Status = ddlStatus.SelectedValue;
            exemplares.OrigemId = utils.ComparaIntComNull(ddlOrigem.SelectedValue);
            exemplares.Obs = txtObs.Text;

            if (exemplares.Id > 0)
            {

                if (exeBL.EditarBL(exemplares))
                    ExibirMensagem("Exemplar atualizado com sucesso !");
                else
                    ExibirMensagem("Não foi possível atualizar o exemplar. Revise as informações.");

            }
            else
            {

                if (exeBL.InserirBL(exemplares))
                {
                    ExibirMensagem("Exemplar gravado com sucesso !");
                    LimparCampos();
                    txtObra.Focus();
                }
                else
                    ExibirMensagem("Não foi possível gravar o exemplar. Revise as informações.");

            }
        }
        protected void dtgExemplar_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            ExemplaresBL exemBL = new ExemplaresBL();
            Exemplares exemplares = new Exemplares();
            exemplares.Id = utils.ComparaIntComZero(dtgExemplar.DataKeys[e.RowIndex][0].ToString());

            if (exemBL.ExcluirBL(exemplares))
                ExibirMensagem("Registro excluído com sucesso !");
            else
                ExibirMensagem("Não foi possível excluir o registro, existem registros dependentes");
            Pesquisar(null);
        }
        public bool ExcluirDA(Exemplares instancia)
        {
            SqlParameter[] paramsToSP = new SqlParameter[1];

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

            try
            {
                SqlHelper.ExecuteNonQuery(ConfigurationManager.ConnectionStrings["conexao"].ToString(),
                                            CommandType.StoredProcedure, "stp_delete_exemplares", paramsToSP);
                return true;
            }
            catch (Exception e)
            {
                return false;
            }
        }
        public bool InserirDA(Exemplares instancia)
        {
            SqlParameter[] paramsToSP = new SqlParameter[5];

            paramsToSP[0] = new SqlParameter("@obraid", instancia.Obraid);
            paramsToSP[1] = new SqlParameter("@status", instancia.Status);
            paramsToSP[2] = new SqlParameter("@tombo", instancia.Tombo);
            paramsToSP[3] = new SqlParameter("@origemId", instancia.OrigemId);
            paramsToSP[4] = new SqlParameter("@obs", instancia.Obs.ToUpper());

            try
            {
                SqlHelper.ExecuteNonQuery(ConfigurationManager.ConnectionStrings["conexao"].ToString(),
                                           CommandType.StoredProcedure, "stp_insert_exemplares", paramsToSP);
                return true;
            }
            catch (Exception e)
            {
                return false;
            }
        }
        protected void txtExemplar_TextChanged(object sender, EventArgs e)
        {
            hfIdExemplar.Value = string.Empty;
            ExemplaresBL exBL = new ExemplaresBL();
            Exemplares ex = new Exemplares();
            List<Exemplares> listao = exBL.PesquisarBL("ID", txtExemplar.Text);
            foreach (Exemplares laco in listao)
            {
                hfIdExemplar.Value = laco.Id.ToString();
                txtExemplar.Text = laco.Id.ToString();
                lblDesExemplar.Text = laco.Obras.Titulo;
            }

            if (utils.ComparaIntComZero(hfIdExemplar.Value) < 1)
            {
                ExibirMensagem("Exemplar não cadastrado!");
                txtExemplar.Text = string.Empty;
                lblDesExemplar.Text = string.Empty;
                txtExemplar.Focus();
            }
        }
        private List<Exemplares> CarregarObjExemplares(SqlDataReader dr)
        {
            List<Exemplares> tipoObra = new List<Exemplares>();

            while (dr.Read())
            {
                Exemplares tipo = new Exemplares();
                tipo.Id = int.Parse(dr["ID"].ToString());
                tipo.Obraid = int.Parse(dr["OBRAID"].ToString());
                tipo.Tombo = int.Parse(dr["TOMBO"].ToString());
                tipo.Status = dr["STATUS"].ToString();
                tipo.OrigemId = utils.ComparaIntComNull(dr["ORIGEMID"].ToString());
                tipo.Obs = dr["OBS"].ToString();

                Obras obras = new Obras();

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

                tipo.Obras = obras;

                tipoObra.Add(tipo);
            }

            return tipoObra;
        }
        private List<EmprestimoMov> CarregarObjEmpMov(SqlDataReader dr)
        {
            List<EmprestimoMov> emprestimoMov = new List<EmprestimoMov>();

            while (dr.Read())
            {
                EmprestimoMov empMov = new EmprestimoMov();
                empMov.Id = int.Parse(dr["ID"].ToString());
                empMov.EmprestimoId = int.Parse(dr["EMPRESTIMOID"].ToString());
                empMov.DataEmprestimo = Convert.ToDateTime(dr["DATAEMPRESTIMO"].ToString());
                empMov.DataDevolucao = utils.ComparaDataComNull(dr["DATADEVOLUCAO"].ToString());
                empMov.DataPrevistaEmprestimo = Convert.ToDateTime(dr["DATAPREVISTAEMPRESTIMO"].ToString());
                empMov.Situacao = dr["SITUACAO"].ToString();
                empMov.QtdeDias = Int16.Parse(dr["QTDDIAS"].ToString());

                Exemplares exemplar = new Exemplares();
                exemplar.Id = int.Parse(dr["IDEXE"].ToString());
                exemplar.Tombo = int.Parse(dr["TOMBO"].ToString());

                empMov.Exemplares = exemplar;

                Obras obras = new Obras();
                obras.Id = int.Parse(dr["IDOBRA"].ToString());
                obras.Codigo = int.Parse(dr["CODIGO"].ToString());
                obras.Titulo = dr["TITULO"].ToString();

                empMov.Obras = obras;

                emprestimoMov.Add(empMov);
            }

            return emprestimoMov;
        }
        public void CarregarPesquisaItemEmp(string tombo)
        {
            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);

            ExemplaresBL exeBL = new ExemplaresBL();
            Exemplares exemplares = new Exemplares();
            List<Exemplares> ltExe = exeBL.PesquisarDisponiveis(tombo);

            foreach (Exemplares exemp in ltExe)
            {
                DataRow linha = dt.NewRow();

                linha["ID"] = exemp.Id;
                linha["CODIGO"] = exemp.Tombo;
                linha["DESCRICAO"] = exemp.Obras.Titulo;

                dt.Rows.Add(linha);

            }

            grdPesquisaEmp.DataSource = dt;
            grdPesquisaEmp.DataBind();
        }
        private void PesquisarExemplarDev(string cod_exemplar)
        {
            ExemplaresBL exeBL = new ExemplaresBL();
            Exemplares exemplares = new Exemplares();
            DataSet dsExe = exeBL.PesquisarExemplaresDevolucao(cod_exemplar);

            if (dsExe.Tables[0].Rows.Count != 0)
            {
                lblExemplarDev.Text = (string)dsExe.Tables[0].Rows[0]["TITULO"].ToString();
                lblClienteDev.Text = (string)dsExe.Tables[0].Rows[0]["NOME"].ToString();
                hfIdPessoaDev.Value = (string)dsExe.Tables[0].Rows[0]["PES_ID"].ToString();
                lblSitDev.Text = "";

                IncluirExemplarDevolucao(dsExe);
            }
            else
            {
                dsExe = exeBL.PesquisarExemplaresEmprestimo(cod_exemplar);
                if (dsExe.Tables[0].Rows.Count != 0)
                {
                    if ((string)dsExe.Tables[0].Rows[0]["DATAPREVISTAEMPRESTIMO"].ToString() == ""
                    || (string)dsExe.Tables[0].Rows[0]["DATAPREVISTAEMPRESTIMO"].ToString() == null)
                    {
                        lblSitDev.Text = "Disponível";

                    }

                    lblExemplarDev.Text = (string)dsExe.Tables[0].Rows[0]["TITULO"].ToString();
                    txtExemplarDev.Focus();
                }
                else
                    ExibirMensagem("Exemplar não cadastrado !");
            }
        }
        private void PesquisarExemplar(string cod_exemplar)
        {
            if (!ExemplarJaIncluido(dtItensEmp, cod_exemplar, "dtItensEmp"))
            {

                hfIdItem.Value = "";
                ExemplaresBL exeBL = new ExemplaresBL();
                Exemplares exemplares = new Exemplares();
                DataSet dsExe = exeBL.PesquisarExemplaresEmprestimo(cod_exemplar);

                if (dsExe.Tables[0].Rows.Count != 0)
                {
                    hfIdItem.Value = (string)dsExe.Tables[0].Rows[0]["id"].ToString();
                    lblDesExemplar.Text = (string)dsExe.Tables[0].Rows[0]["titulo"].ToString();

                    if ((string)dsExe.Tables[0].Rows[0]["DATAPREVISTAEMPRESTIMO"].ToString() == ""
                        || (string)dsExe.Tables[0].Rows[0]["DATAPREVISTAEMPRESTIMO"].ToString() == null)
                    {
                        lblSituacaoItem.Text = "Disponível";
                        lblPrevDevolucao.Text = "";
                        IncluirExemplarEmprestimo(dsExe);
                        txtExemplar.Text = "";
                        lblDesExemplar.Text = "";
                        lblSituacaoItem.Text = "";
                        lblPrevDevolucao.Text = "";
                    }
                    else
                    {
                        lblSituacaoItem.Text = "Emprestado";
                        lblPrevDevolucao.Text = ((DateTime)(dsExe.Tables[0].Rows[0]["DATAPREVISTAEMPRESTIMO"])).ToString("dd/MM/yyyy");
                    }
                }

                if (utils.ComparaIntComZero(hfIdItem.Value) <= 0)
                {
                    ExibirMensagem("Item não cadastrado !");
                    LimparCamposEmprestimo();
                    txtExemplar.Focus();
                }
            }
            else
            {
                lblDesExemplar.Text = "";
                txtExemplar.Text = "";
                ExibirMensagem("Exemplar já incluído !");
            }
        }