Esempio n. 1
0
        public void notificar(string acao, params object[] parametros)
        {
            TituloDAL         tituloDAL     = new TituloDAL();
            UsuarioDAL        usuarioDAL    = new UsuarioDAL();
            ReservaDAL        reservaDAL    = new ReservaDAL();
            EditoraDAL        editoraDAL    = new EditoraDAL();
            BibliotecaDAL     bibliotecaDAL = new BibliotecaDAL();
            EmprestimoDAL     emprestimoDAL = new EmprestimoDAL();
            ItemEmprestimoDAL itemDAL       = new ItemEmprestimoDAL();
            ExemplarDAL       exemplarDAL   = new ExemplarDAL();
            bool sucesso;

            switch (acao)
            {
            case "IE":     // Inserir Empréstimo
                bool       gravou     = false;
                Usuario    usuarioEmp = usuarioDAL.ObterPorCPF(parametros[0].ToString());
                Emprestimo emp        = new Emprestimo(Convert.ToDateTime(parametros[1]), usuarioEmp);
                if (emprestimoDAL.GravarEmprestimo(emp))
                {
                    List <Titulo> livros = (List <Titulo>)parametros[3];
                    foreach (var item in livros)
                    {
                        gravou = false;
                        // 1 - Emprestado
                        // 2 - Reservado
                        // 0 - Disponível

                        Exemplar exemplar = null;
                        exemplar = exemplarDAL.ObterExemplar(item.CodTitulo);
                        if (exemplar != null)
                        {
                            emp = emprestimoDAL.ObterUltimoEmprestimo();
                            ItemEmprestimo itemEmp = new ItemEmprestimo(emp.CodEmp,
                                                                        emp.Usuario, exemplar,
                                                                        Convert.ToDateTime(parametros[1]),
                                                                        Convert.ToDateTime(parametros[2]),
                                                                        1);
                            exemplarDAL = new ExemplarDAL();
                            if (exemplarDAL.Emprestar(exemplar.CodSeqExemplar) == 1)
                            {
                                if (itemDAL.GravarItemEmprestimo(itemEmp))
                                {
                                    if (tituloDAL.atualizarQuantidade(item.CodTitulo) == 1)
                                    {
                                        MessageBox.Show($"Seu Empréstimo do livro = '{item.TituloLivro}' foi Gravado!", "Sucesso!", MessageBoxButtons.OK, MessageBoxIcon.None);
                                        gravou = true;
                                    }
                                }
                            }
                        }
                    }
                }
                if (!gravou)
                {
                    MessageBox.Show("Erro durante a gravação...", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                break;

            case "IR":     // incluir Reserva

                /// Procurar se o livro tem quantidade disponível e ir no banco pegando o códigoSequencial do exemplar
                /// cujo codSituação = 0
                /// retorna o exemplar, marcar codSituação como 2 e cabow

                gravou = false;
                Titulo titulo;
                (titulo, sucesso) = tituloDAL.ObterTitulo_Qtde(Convert.ToInt32(parametros[1]));
                if (sucesso)
                {
                    Exemplar exemplar = exemplarDAL.ObterExemplar(titulo.CodTitulo);
                    if (exemplar != null)
                    {
                        if (exemplarDAL.Reservar(exemplar.CodLivro) > 0)
                        {
                            Usuario usuario = usuarioDAL.ObterPorCPF(parametros[0].ToString());
                            if (reservaDAL.GravarReserva(new Reserva(Convert.ToDateTime(parametros[2]),
                                                                     usuario.Id,
                                                                     Convert.ToInt32(parametros[1]))))
                            {
                                if (tituloDAL.atualizarQuantidade(titulo.CodTitulo) == 1)
                                {
                                    MessageBox.Show("Sua Reserva foi Gravada!", "Sucesso!", MessageBoxButtons.OK, MessageBoxIcon.None);
                                    gravou = true;
                                }
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Livro já reservado", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                else
                {
                    MessageBox.Show("Esse Livro não tem exemplares disponíveis", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                if (!gravou)
                {
                    MessageBox.Show("Erro durante a gravação...", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                break;

            case "PU":     // Pesquisar Usuário
                DataTable dtUsuarioBusca = new DataTable();
                dtUsuarioBusca.Columns.Add("CPF");
                dtUsuarioBusca.Columns.Add("Código do Usuário");
                dtUsuarioBusca.Columns.Add("Nome do Usuário");
                foreach (Usuario usu in usuarioDAL.ObterPorNome(parametros[1].ToString()))
                {
                    DataRow linhaUsu = dtUsuarioBusca.NewRow();
                    linhaUsu[0] = usu.Cpf;
                    linhaUsu[1] = usu.Id;
                    linhaUsu[2] = usu.Nome;
                    dtUsuarioBusca.Rows.Add(linhaUsu);
                }
                telaClientes = new fmClientes((int)parametros[0]);
                telaClientes.dgvTabClientes.DataSource       = dtUsuarioBusca;
                telaClientes.dgvTabClientes.Columns[0].Width = 100;
                telaClientes.dgvTabClientes.Columns[1].Width = 80;
                telaClientes.dgvTabClientes.Columns[2].Width = 400;
                telaClientes.adicionarObservadores(this);
                telaClientes.mascara.Text = parametros[1].ToString();
                telaClientes.ShowDialog();
                break;

            case "PUC":     // pesquisar usuario consulta
                telaReserva.tbPesqUsuario.Text = parametros[0].ToString();
                telaReserva.lbCpf.Visible      = true;
                telaReserva.lbCodUsu.Visible   = true;
                telaReserva.lbCodUsu.Text      = parametros[1].ToString();
                break;

            case "PUCE":     // pesquisar usuario consulta para tela Emprestimo
                telaEmprestimo.tbUsuario.Text   = parametros[0].ToString();
                telaEmprestimo.lbCpf.Visible    = true;
                telaEmprestimo.lbCodUsu.Visible = true;
                telaEmprestimo.lbCodUsu.Text    = parametros[1].ToString();
                break;

            case "PL":     // pesquisar livro
                DataTable dtLivros = new DataTable();
                dtLivros.Columns.Add("Código Livro");
                dtLivros.Columns.Add("Titulo do Livro");
                dtLivros.Columns.Add("Quantidade");
                dtLivros.Columns.Add("ID da Editora");
                foreach (Titulo tit in tituloDAL.ObterPorNome(parametros[0].ToString()))
                {
                    DataRow linhaPL = dtLivros.NewRow();
                    linhaPL[0] = tit.CodTitulo;
                    linhaPL[1] = tit.TituloLivro;
                    linhaPL[2] = tit.Quantidade;
                    linhaPL[3] = tit.CodEditora;
                    dtLivros.Rows.Add(linhaPL);
                }
                telaReserva.dgvTabLivro.DataSource       = dtLivros;
                telaReserva.dgvTabLivro.Columns[0].Width = 100;
                telaReserva.dgvTabLivro.Columns[1].Width = 350;
                telaReserva.dgvTabLivro.Columns[2].Width = 80;
                telaReserva.dgvTabLivro.Columns[3].Width = 185;
                break;

            case "PLE":     // pesquisar livro
                DataTable dtLivrosEmp = new DataTable();
                dtLivrosEmp.Columns.Add("Código Livro");
                dtLivrosEmp.Columns.Add("Titulo do Livro");
                dtLivrosEmp.Columns.Add("Quantidade");
                dtLivrosEmp.Columns.Add("ID da Editora");
                foreach (Titulo tit in tituloDAL.ObterPorNome(parametros[0].ToString()))
                {
                    DataRow linhaPL = dtLivrosEmp.NewRow();
                    linhaPL[0] = tit.CodTitulo;
                    linhaPL[1] = tit.TituloLivro;
                    linhaPL[2] = tit.Quantidade;
                    linhaPL[3] = tit.CodEditora;
                    dtLivrosEmp.Rows.Add(linhaPL);
                }
                telaEmprestimo.dgvLivrosPesq.DataSource = dtLivrosEmp;
                break;

            default:
                break;
            }
        }