public ManterRequisicao(Funcionario func, string tipoT, Requisicao req)
 {
     InitializeComponent();
     usuarioLogado = func;
     tipoTela = tipoT;
     objRequisicao = req;
 }
 public void requisicaoFechadaAcao(Requisicao requisicao)
 {
     if (requisicao.funcionario[2].matricula + "" != "0")
     {
         btnDesativar.Enabled = false;
     }
     else
     {
         btnDesativar.Enabled = true;
     }
 }
        public void finalizarRequisicao(Requisicao requisicao)
        {
            SqlCommand updateFerramenta = new SqlCommand("UPDATE tb_ferramenta SET fk_situacao = 1 WHERE cod_ferramenta = @cod_ferramenta", Conexao.con());

            updateFerramenta.Parameters.AddWithValue("@cod_ferramenta", requisicao.ferramentas[0].codFerramenta);

            SqlCommand updade = new SqlCommand("UPDATE tb_requisicao SET dt_baixa_requisicao = CURRENT_TIMESTAMP,fk_func_baixa_ferr = @mat_func_baixa " +
            "WHERE nu_seq_requisicao = @cod_requisicao", Conexao.con());
            updade.Parameters.AddWithValue(@"mat_func_baixa", requisicao.funcionario[2].matricula);
            updade.Parameters.AddWithValue(@"cod_requisicao", requisicao.codRequisicao);

            Conexao.con().Open();
            updateFerramenta.ExecuteNonQuery();
            updade.ExecuteNonQuery();

            Conexao.con().Close();
            Conexao.gravarLog("Requisição finalizada", requisicao.funcionario[2].matricula + "", requisicao.funcionario[1].matricula + "", requisicao.ferramentas[0].codFerramenta, requisicao.codRequisicao + "");
        }
        public void gravarRequisicao(Requisicao requisicao)
        {
            foreach (Ferramenta ferramenta in requisicao.ferramentas)
            {
                SqlCommand updateFerramenta = new SqlCommand("UPDATE tb_ferramenta SET fk_situacao = 3 WHERE cod_ferramenta = @cod_ferramenta", Conexao.con());

                updateFerramenta.Parameters.AddWithValue("@cod_ferramenta", ferramenta.codFerramenta);

                SqlCommand insertRequisicao = new SqlCommand("INSERT INTO tb_requisicao(dt_baixa_requisicao" +
                ",dt_saida_requisicao, fk_func_saida_ferr,fk_ferramenta,fk_func_baixa_ferr,fk_func_requisitante)" +
                " VALUES (NULL,CURRENT_TIMESTAMP,@fk_func_saida_ferr,@fk_ferramenta,NULL,@fk_func_requisitante)", Conexao.con());

                insertRequisicao.Parameters.AddWithValue("@fk_func_saida_ferr", requisicao.funcionario[0].matricula);
                insertRequisicao.Parameters.AddWithValue("@fk_ferramenta", ferramenta.codFerramenta);
                insertRequisicao.Parameters.AddWithValue("@fk_func_requisitante", requisicao.funcionario[1].matricula);

                Conexao.con().Open();

                updateFerramenta.ExecuteNonQuery();
                insertRequisicao.ExecuteNonQuery();
                Conexao.con().Close();
                Conexao.gravarLog("Cadastro", requisicao.funcionario[0].matricula + "", requisicao.funcionario[1].matricula + "", ferramenta.codFerramenta, "Gravar");
            }
        }
        public void ListaRequisicao(Ferramenta ferramenta, Funcionario funcionario, Requisicao requisicao, string tipo)
        {
            if (tipo == "Abertas") // Requisições abertas
            {
                if (funcionario.matricula == 0) // Matricula vazia
                {

                    RequisiçãoDataSetTableAdapters.ListaDeRequisiçãoTableAdapter adaptador = new RequisiçãoDataSetTableAdapters.ListaDeRequisiçãoTableAdapter();
                    RequisiçãoDataSet.ListaDeRequisiçãoDataTable tabela = new RequisiçãoDataSet.ListaDeRequisiçãoDataTable();

                    adaptador.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["sga"].ConnectionString;
                    adaptador.FillByAbertas(tabela, "%" + ferramenta.codFerramenta + "%", "%" + ferramenta.codFabricante + "%", "%" + ferramenta.codGrupo + "%", "%" + funcionario.no_funcao + "%", Convert.ToDateTime(requisicao.periodo[0]), Convert.ToDateTime(requisicao.periodo[1]), "%%");

                    ReportDataSource NovaFonteDados = new ReportDataSource("GeraRelatorioRequisicao", (DataTable)tabela);
                    reportViewer1.LocalReport.DataSources.Clear();
                    reportViewer1.LocalReport.DataSources.Add(NovaFonteDados);
                    reportViewer1.LocalReport.ReportEmbeddedResource = "SGA.Telas.RelatorioRequisição.rdlc";
                    reportViewer1.LocalReport.Refresh();
                    reportViewer1.RefreshReport();
                }
                else // Matricula preenchida
                {
                    RequisiçãoDataSetTableAdapters.ListaDeRequisiçãoTableAdapter adaptador = new RequisiçãoDataSetTableAdapters.ListaDeRequisiçãoTableAdapter();
                    RequisiçãoDataSet.ListaDeRequisiçãoDataTable tabela = new RequisiçãoDataSet.ListaDeRequisiçãoDataTable();

                    adaptador.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["sga"].ConnectionString;
                    adaptador.FillByAbertas(tabela, "%" + ferramenta.codFerramenta + "%", "%" + ferramenta.codFabricante + "%", "%" + ferramenta.codGrupo + "%", "%" + funcionario.no_funcao + "%", Convert.ToDateTime(requisicao.periodo[0]), Convert.ToDateTime(requisicao.periodo[1]), "%" + funcionario.matricula + "%");

                    ReportDataSource NovaFonteDados = new ReportDataSource("GeraRelatorioRequisicao", (DataTable)tabela);
                    reportViewer1.LocalReport.DataSources.Clear();
                    reportViewer1.LocalReport.DataSources.Add(NovaFonteDados);
                    reportViewer1.LocalReport.ReportEmbeddedResource = "SGA.Telas.RelatorioRequisição.rdlc";
                    reportViewer1.LocalReport.Refresh();
                    reportViewer1.RefreshReport();
                }
            }
            else // Requisições baixadas
            {
                if (funcionario.matricula == 0) // Matricula vazia!
                {

                    RequisiçãoDataSetTableAdapters.ListaDeRequisiçãoTableAdapter adaptador = new RequisiçãoDataSetTableAdapters.ListaDeRequisiçãoTableAdapter();
                    RequisiçãoDataSet.ListaDeRequisiçãoDataTable tabela = new RequisiçãoDataSet.ListaDeRequisiçãoDataTable();

                    adaptador.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["sga"].ConnectionString;
                    adaptador.FillByBaixadas(tabela, "%" + ferramenta.codFerramenta + "%", "%" + ferramenta.codFabricante + "%", "%" + ferramenta.codGrupo + "%", "%" + funcionario.no_funcao + "%", Convert.ToDateTime(requisicao.periodo[0]), Convert.ToDateTime(requisicao.periodo[1]), "%%");

                    ReportDataSource NovaFonteDados = new ReportDataSource("GeraRelatorioRequisicao", (DataTable)tabela);
                    reportViewer1.LocalReport.DataSources.Clear();
                    reportViewer1.LocalReport.DataSources.Add(NovaFonteDados);
                    reportViewer1.LocalReport.ReportEmbeddedResource = "SGA.Telas.RelatorioRequisição.rdlc";
                    reportViewer1.LocalReport.Refresh();
                    reportViewer1.RefreshReport();
                }
                else // Matricula preenchida
                {
                    RequisiçãoDataSetTableAdapters.ListaDeRequisiçãoTableAdapter adaptador = new RequisiçãoDataSetTableAdapters.ListaDeRequisiçãoTableAdapter();
                    RequisiçãoDataSet.ListaDeRequisiçãoDataTable tabela = new RequisiçãoDataSet.ListaDeRequisiçãoDataTable();

                    adaptador.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["sga"].ConnectionString;
                    adaptador.FillByBaixadas(tabela, "%" + ferramenta.codFerramenta + "%", "%" + ferramenta.codFabricante + "%", "%" + ferramenta.codGrupo + "%", "%" + funcionario.no_funcao + "%", Convert.ToDateTime(requisicao.periodo[0]), Convert.ToDateTime(requisicao.periodo[1]), "%" + funcionario.matricula + "%");

                    ReportDataSource NovaFonteDados = new ReportDataSource("GeraRelatorioRequisicao", (DataTable)tabela);
                    reportViewer1.LocalReport.DataSources.Clear();
                    reportViewer1.LocalReport.DataSources.Add(NovaFonteDados);
                    reportViewer1.LocalReport.ReportEmbeddedResource = "SGA.Telas.RelatorioRequisição.rdlc";
                    reportViewer1.LocalReport.Refresh();
                    reportViewer1.RefreshReport();
                }
            }
        }
 public List<Requisicao> pesquisarRequisicao(Requisicao objRequisicao)
 {
     return requisicaoAs.pesquisarRequisicao(objRequisicao);
 }
 public void gravarRequisicao(Requisicao requisicao)
 {
     requisicaoAs.gravarRequisicao(requisicao);
 }
 public void finalizarRequisicao(Requisicao requisicao)
 {
     requisicaoAs.finalizarRequisicao(requisicao);
 }
        private void btnDesativar_Click(object sender, EventArgs e)
        {
            if (objRequisicao != null)
            {
                while (1 == 1)
                {
                    Mensagem mensagem = new Mensagem("Deseja finalizar a requisição?", "senha", SGA.Properties.Resources.key);
                    mensagem.tbxSenha.Text = "";
                    mensagem.ShowDialog();
                    try
                    {

                        if (mensagem.DialogResult == DialogResult.OK)
                        {
                            FuncionarioDelegate funcionarioDel = new FuncionarioDelegate();

                            Funcionario funcionario = usuarioLogado;

                            funcionario.senha = Criptografia.Encrypt(mensagem.texto);

                            funcionarioDel.Logar(funcionario);

                            RequisicaoDelegate requisicaoDel = new RequisicaoDelegate();
                            objRequisicao.funcionario[2].matricula = usuarioLogado.matricula;
                            requisicaoDel.finalizarRequisicao(objRequisicao);

                            new Mensagem("Requisição finalizada com sucesso!", "informacao", SGA.Properties.Resources.ok).ShowDialog();
                            usuarioLogado.alteracao = true;
                            break;
                        }
                        else
                        {
                            break;
                        }
                    }
                    catch (Exception erro)
                    {
                        if (erro.Message == "Matrícula e/ou Senha inválidos! \n Entre novamente com os dados!")
                        {
                            new Mensagem("Senha incorreta!", "informacao", SGA.Properties.Resources.erro).ShowDialog();
                        }
                        else
                        {
                            new Mensagem(erro.Message, "informacao", SGA.Properties.Resources.erro).ShowDialog();
                            break;
                        }

                    }

                }
                objRequisicao = null;
            }
            else
            {
                new Mensagem("Selecione uma requisição\nprimeiro!", "informacao", SGA.Properties.Resources.erro).ShowDialog();
            }
            preencherListViewRequisicao();
        }
 public void gravarRequisicao(Requisicao requisicao)
 {
     requisicaoFacade.gravarRequisicao(requisicao);
 }
 private void btnNFerramenta_Click(object sender, EventArgs e)
 {
     while (1 == 1)
     {
         PesquisarFerramenta pFerramenta = new PesquisarFerramenta(usuarioLogado, "adicionar");
         pFerramenta.ShowDialog();
         if (pFerramenta.DialogResult == DialogResult.Cancel)
         {
             break;
         }
         else
         {
             PesquisarFuncionario pFuncionario = new PesquisarFuncionario(usuarioLogado, "adicionar");
             pFuncionario.ShowDialog();
             if (pFuncionario.DialogResult == DialogResult.Cancel)
             {
                 break;
             }
             else
             {
                 ManterRequisicao cRequisicao = new ManterRequisicao(usuarioLogado, "nova", new Requisicao());
                 cRequisicao.arrayFerramentas = pFerramenta.arrayFerramentasRequsicao;
                 cRequisicao.funcionarioRequisitante = pFuncionario.objFuncionario;
                 cRequisicao.ShowDialog();
                 usuarioLogado = cRequisicao.usuarioLogado;
                 if (cRequisicao.DialogResult == DialogResult.Cancel)
                 {
                     break;
                 }
             }
         }
     }
     button1_Click(new object(), new EventArgs());
     btnRedPeriodo_Click(new object() ,new EventArgs() );
     objRequisicao = null;
     preencherListViewRequisicao();
 }
 private void btnDetalhes_Click(object sender, EventArgs e)
 {
     if (objRequisicao == null)
     {
         new Mensagem("Selecione uma requisição\nprimeiro!", "informacao", SGA.Properties.Resources.erro).ShowDialog();
     }
     else
     {
         ManterRequisicao cRequisicao = new ManterRequisicao(usuarioLogado, "Detalhes", objRequisicao);
         cRequisicao.ShowDialog();
         objRequisicao = null;
     }
 }
        private void btnSalvar_Click(object sender, EventArgs e)
        {
            if (arrayFerramentas.Count <= 0)
            {
                new Mensagem("Adicione ao menos uma\n ferramenta para salvar \na requisição!", "informacao", SGA.Properties.Resources.erro).ShowDialog();
            }
            else
            {

                Mensagem mensagem = new Mensagem("Entre com a senha do atendente.", "senha", SGA.Properties.Resources.key);
                while (1 == 1)
                {
                    mensagem.tbxSenha.Text = "";
                    mensagem.ShowDialog();
                    try
                    {

                        if (mensagem.DialogResult == DialogResult.OK)
                        {
                            FuncionarioDelegate funcionarioDel = new FuncionarioDelegate();

                            Funcionario funcionario = usuarioLogado;

                            funcionario.senha = Criptografia.Encrypt(mensagem.texto);

                            funcionarioDel.Logar(funcionario);

                            break;

                        }
                        else
                        {
                            mensagem.DialogResult = DialogResult.Cancel;
                            break;
                        }
                    }
                    catch (Exception erro)
                    {
                        if (erro.Message == "Matrícula e/ou Senha inválidos! \n Entre novamente com os dados!")
                        {
                            new Mensagem("Senha incorreta!", "informacao", SGA.Properties.Resources.erro).ShowDialog();
                        }
                        else
                        {
                            new Mensagem(erro.Message, "informacao", SGA.Properties.Resources.erro).ShowDialog();
                            break;
                        }

                    }
                }
                if (mensagem.DialogResult == DialogResult.OK)
                {
                    while (1 == 1)
                    {
                        mensagem = new Mensagem("Entre com a senha \nfuncionário requisitante.", "senha", SGA.Properties.Resources.key);
                        mensagem.tbxSenha.Text = "";
                        mensagem.ShowDialog();
                        try
                        {

                            if (mensagem.DialogResult == DialogResult.OK)
                            {
                                FuncionarioDelegate funcionarioDel = new FuncionarioDelegate();

                                Funcionario funcionario = funcionarioRequisitante;

                                funcionario.senha = Criptografia.Encrypt(mensagem.texto);
                                Funcionario funVer = funcionarioDel.Logar(funcionario);
                                if (funVer.senha != "invalida")
                                {

                                    Requisicao requisicao = new Requisicao();
                                    requisicao.ferramentas = this.arrayFerramentas;
                                    requisicao.funcionario.Add(usuarioLogado);
                                    requisicao.funcionario.Add(funcionarioRequisitante);

                                    RequisicaoDelegate requisicaoDel = new RequisicaoDelegate();
                                    requisicaoDel.gravarRequisicao(requisicao);

                                    new Mensagem("Requisição cadastrada com sucesso!", "informacao", SGA.Properties.Resources.ok).ShowDialog();
                                    usuarioLogado.alteracao = true;
                                    this.DialogResult = DialogResult.OK;
                                    break;
                                }
                                else
                                {
                                    new Mensagem("Senha incorreta!", "informacao", SGA.Properties.Resources.erro).ShowDialog();
                                }

                            }
                            else
                            {
                                break;
                            }
                        }
                        catch (Exception erro)
                        {
                            if (erro.Message == "Matrícula e/ou Senha inválidos! \n Entre novamente com os dados!")
                            {
                                new Mensagem("Senha incorreta!", "informacao", SGA.Properties.Resources.erro).ShowDialog();
                            }
                            else
                            {
                                new Mensagem(erro.Message, "informacao", SGA.Properties.Resources.erro).ShowDialog();
                                break;
                            }

                        }

                    }
                    if (mensagem.DialogResult == DialogResult.OK)
                    {
                        this.Close();
                    }
                }

            }
        }
        public List<Requisicao> pesquisarRequisicao(Requisicao objRequisicao)
        {
            string condicoes = "";

            if(objRequisicao.codRequisicao != 0)
            {
                condicoes += " AND nu_seq_requisicao LIKE('%" + objRequisicao.codRequisicao + "%')";
            }

            if (objRequisicao.ferramentas[0].codFerramenta != "" )
            {
                condicoes += " AND fk_ferramenta LIKE('%" + objRequisicao.ferramentas[0].codFerramenta + "%')";
            }

            if (objRequisicao.funcionario[0].matricula != 0)
            {
                condicoes += " AND fk_func_saida_ferr LIKE('%" + objRequisicao.funcionario[0].matricula + "%')";
            }

            if (objRequisicao.funcionario[1].matricula != 0)
            {
                condicoes += " AND fk_func_baixa_ferr LIKE('%" + objRequisicao.funcionario[1].matricula + "%')";
            }

            if (objRequisicao.funcionario[2].matricula != 0)
            {
                condicoes += " AND fk_func_requisitante LIKE('%" + objRequisicao.funcionario[2].matricula + "%')";
            }

            if (objRequisicao.situacao + "" != "")
            {
                if (objRequisicao.situacao == "Abertas")
                {
                    condicoes += " AND dt_baixa_requisicao IS NULL";
                }
                else
                {
                    condicoes += " AND dt_baixa_requisicao IS NOT NULL";
                }
            }

            if (objRequisicao.tipoPeriodo + "" != "")
            {
                if (objRequisicao.tipoPeriodo == "Baixa")
                {
                    condicoes += " AND dt_baixa_requisicao between '" + objRequisicao.periodo[0] + "' AND '" + objRequisicao.periodo[1] + "'";
                }
                else
                {
                    condicoes += " AND dt_saida_requisicao between '" + objRequisicao.periodo[0] + "' AND '" + objRequisicao.periodo[1] + "'";
                }
            }

            List<Requisicao> listaRequisicao = new List<Requisicao>();
            Requisicao requisicao;
            Ferramenta ferramenta = new Ferramenta();
            Funcionario funcionario;

            SqlCommand selectRequisicao = new SqlCommand("SELECT nu_seq_requisicao, fk_ferramenta,gr.no_grupo, fa.no_fabricante, de.no_ferramenta, f.imagem , dt_saida_requisicao, dt_baixa_requisicao , fk_func_requisitante" +
              ",(SELECT no_funcionario FROM tb_funcionario WHERE mat_funcionario = fk_func_requisitante) as no_func_requisitante" +
              ",(SELECT no_funcao FROM tb_funcao INNER JOIN tb_funcionario ON(fk_funcao = nu_seq_funcao) WHERE mat_funcionario = fk_func_requisitante) as no_funcao_req " +
              ",fk_func_saida_ferr " +
              ",(SELECT no_funcionario FROM tb_funcionario WHERE mat_funcionario = fk_func_saida_ferr) as no_func_saida" +
              ",(SELECT no_funcao FROM tb_funcao INNER JOIN tb_funcionario ON(fk_funcao = nu_seq_funcao) WHERE mat_funcionario = fk_func_saida_ferr) as no_funcao_saida " +
              ",fk_func_baixa_ferr " +
              ",(SELECT no_funcionario FROM tb_funcionario WHERE mat_funcionario = fk_func_baixa_ferr) as no_func_baixa" +
              ",(SELECT no_funcao FROM tb_funcao INNER JOIN tb_funcionario ON(fk_funcao = nu_seq_funcao) WHERE mat_funcionario = fk_func_baixa_ferr) as no_funcao_baixa " +
              "      FROM [sga].[dbo].[tb_requisicao] r " +
              "     INNER JOIN tb_ferramenta f  ON(fk_ferramenta = f.cod_ferramenta)  " +
              "     INNER JOIN tb_fabricante fa ON(fk_fabricante = fa.nu_seq_fabricante)" +
              "      INNER jOIN tb_descricao_ferramenta de ON(fk_descricao_ferramenta = de.nu_seq_descricao) " +
              "     INNER JOIN tb_grupo_ferramenta gr ON(fk_grupo = nu_seq_grupo)" +
              " WHERE 1 = 1" + condicoes, Conexao.con());

            Conexao.con().Open();

            SqlDataReader linha = selectRequisicao.ExecuteReader();
            while (linha.Read())
            {
                requisicao = new Requisicao();
                ferramenta = new Ferramenta();

                requisicao.codRequisicao = Convert.ToInt32(linha["nu_seq_requisicao"]);
                if (linha["dt_baixa_requisicao"].ToString() != "")
                    requisicao.dtBaixa = Convert.ToDateTime(linha["dt_baixa_requisicao"]);
                requisicao.dtRequisicao = Convert.ToDateTime(linha["dt_saida_requisicao"]);

                ferramenta.codFerramenta = linha["fk_ferramenta"].ToString();
                ferramenta.nomeFerramenta = linha["no_ferramenta"].ToString();
                if (linha["imagem"].ToString() != "")
                    ferramenta.imagem = ConvertByteArrayToImage((Byte[])linha["imagem"]);
                requisicao.ferramentas.Add(ferramenta);
                ferramenta.codFabricante = linha["no_fabricante"].ToString();
                ferramenta.codGrupo = linha["no_grupo"].ToString();

                funcionario = new Funcionario();
                funcionario.matricula = Convert.ToInt32(linha["fk_func_saida_ferr"]);
                funcionario.nome = linha["no_func_saida"].ToString();
                funcionario.no_funcao = linha["no_funcao_saida"].ToString();
                requisicao.funcionario.Add(funcionario);

                funcionario = new Funcionario();
                funcionario.matricula = Convert.ToInt32(linha["fk_func_requisitante"]);
                funcionario.nome = linha["no_func_requisitante"].ToString();
                funcionario.no_funcao = linha["no_funcao_req"].ToString();
                requisicao.funcionario.Add(funcionario);

                funcionario = new Funcionario();
                if (linha["fk_func_baixa_ferr"].ToString() != "" )
                funcionario.matricula = Convert.ToInt32(linha["fk_func_baixa_ferr"]);
                funcionario.nome = linha["no_func_baixa"].ToString();
                funcionario.no_funcao = linha["no_funcao_baixa"].ToString();
                requisicao.funcionario.Add(funcionario);

                listaRequisicao.Add(requisicao);
            }

            Conexao.con().Close();

            return listaRequisicao;
        }
        public void ListaFerramentas(Ferramenta ferramenta, Funcionario funcionario, Requisicao requisicao, string tipo)
        {
            if (tipo == "lista")
            {
                FerramentaDataSetTableAdapters.ListaDeFerramentasTableAdapter adaptador = new FerramentaDataSetTableAdapters.ListaDeFerramentasTableAdapter();
                FerramentaDataSet.ListaDeFerramentasDataTable tabela = new FerramentaDataSet.ListaDeFerramentasDataTable();

                adaptador.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["sga"].ConnectionString;
                adaptador.FillByDtiaDtfaFabGruSit(tabela, "%" + ferramenta.codSituacao + "%", Convert.ToDateTime(ferramenta.periodo[0]), Convert.ToDateTime(ferramenta.periodo[1]), "%" + ferramenta.codFabricante + "%", "%" + ferramenta.codGrupo + "%");

                ReportDataSource NovaFonteDados = new ReportDataSource("GeraRelatorioFerramenta", (DataTable)tabela);
                reportViewer1.LocalReport.DataSources.Clear();
                reportViewer1.LocalReport.DataSources.Add(NovaFonteDados);
                reportViewer1.LocalReport.ReportEmbeddedResource = "SGA.Telas.ListaDeFerramentas.rdlc";
                reportViewer1.LocalReport.Refresh();
                reportViewer1.RefreshReport();
            }
            else if (tipo == "log")
            {
                LogOperacaoFerramentaTableAdapters.ListaOperacaoFerramentaTableAdapter adaptador = new LogOperacaoFerramentaTableAdapters.ListaOperacaoFerramentaTableAdapter();
                LogOperacaoFerramenta.ListaOperacaoFerramentaDataTable tabela = new LogOperacaoFerramenta.ListaOperacaoFerramentaDataTable();

                adaptador.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["sga"].ConnectionString;
                adaptador.FillBySitCodFabCatDtInDtOut(tabela, "%" + ferramenta.codSituacao + "%", "%" + ferramenta.codFerramenta + "%", "%" + ferramenta.codFabricante + "%", "%" + ferramenta.codGrupo + "%", Convert.ToDateTime(ferramenta.periodo[0]), Convert.ToDateTime(ferramenta.periodo[1]));

                ReportDataSource NovaFonteDados = new ReportDataSource("LogFerramentaDataSet", (DataTable)tabela);
                reportViewer1.LocalReport.DataSources.Clear();
                reportViewer1.LocalReport.DataSources.Add(NovaFonteDados);
                reportViewer1.LocalReport.ReportEmbeddedResource = "SGA.Telas.LogFerramenta.rdlc";
                reportViewer1.LocalReport.Refresh();
                reportViewer1.RefreshReport();

            }
            else
            {
                if (funcionario.matricula == 0)
                {
                    FerramentaMRequisitadaDataSetTableAdapters.FerramentasMRequisitadasTableAdapter adaptador = new FerramentaMRequisitadaDataSetTableAdapters.FerramentasMRequisitadasTableAdapter();
                    FerramentaMRequisitadaDataSet.FerramentasMRequisitadasDataTable tabela = new FerramentaMRequisitadaDataSet.FerramentasMRequisitadasDataTable();

                    adaptador.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["sga"].ConnectionString;
                    adaptador.FillByCatFabMatFunDtInDtOut(tabela, "%" + ferramenta.codGrupo + "%", "%" + ferramenta.codFabricante + "%", "%%", "%" + funcionario.no_funcao + "%", Convert.ToDateTime(requisicao.periodo[0]), Convert.ToDateTime(requisicao.periodo[1]));

                    ReportDataSource NovaFonteDados = new ReportDataSource("RequisitadasDataSet", (DataTable)tabela);
                    reportViewer1.LocalReport.DataSources.Clear();
                    reportViewer1.LocalReport.DataSources.Add(NovaFonteDados);
                    reportViewer1.LocalReport.ReportEmbeddedResource = "SGA.Telas.FerramentaMRequisitada.rdlc";
                    reportViewer1.LocalReport.Refresh();
                    reportViewer1.RefreshReport();
                }
                else
                {
                    FerramentaMRequisitadaDataSetTableAdapters.FerramentasMRequisitadasTableAdapter adaptador = new FerramentaMRequisitadaDataSetTableAdapters.FerramentasMRequisitadasTableAdapter();
                    FerramentaMRequisitadaDataSet.FerramentasMRequisitadasDataTable tabela = new FerramentaMRequisitadaDataSet.FerramentasMRequisitadasDataTable();

                    adaptador.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["sga"].ConnectionString;
                    adaptador.FillByCatFabMatFunDtInDtOut(tabela, "%" + ferramenta.codGrupo + "%", "%" + ferramenta.codFabricante + "%", "%" + funcionario.matricula.ToString() + "%", "%%", Convert.ToDateTime(requisicao.periodo[0]), Convert.ToDateTime(requisicao.periodo[1]));

                    ReportDataSource NovaFonteDados = new ReportDataSource("RequisitadasDataSet", (DataTable)tabela);
                    reportViewer1.LocalReport.DataSources.Clear();
                    reportViewer1.LocalReport.DataSources.Add(NovaFonteDados);
                    reportViewer1.LocalReport.ReportEmbeddedResource = "SGA.Telas.FerramentaMRequisitada.rdlc";
                    reportViewer1.LocalReport.Refresh();
                    reportViewer1.RefreshReport();
                }

            }
        }
 private void listVFerramenta_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (listVFerramenta.SelectedItems.Count != 0)
     {
         if (listVFerramenta.SelectedItems[0].Selected)
         {
             foreach(Requisicao requisicao in listaRequisicoes)
             {
                 if (requisicao.codRequisicao + "" == listVFerramenta.SelectedItems[0].Text)
                 {
                     objRequisicao = requisicao;
                     requisicaoFechadaAcao(requisicao);
                     pbxFerramenta.Image = objRequisicao.ferramentas[0].imagem;
                     break;
                 }
             }
         }
     }
 }
        private void btnGerarRelatorio_Click(object sender, EventArgs e)
        {
            Funcionario funcionario = new Funcionario();
            Ferramenta ferramenta = new Ferramenta();
            Requisicao requisicao = new Requisicao();

            if (rbtnFuncionario.Checked)
            {

                if (rbtnLista.Checked) //lista funcionario
                {
                    funcionario.no_funcao = cbxFuncao.SelectedItem.ToString();
                    funcionario.no_permissao = cbxPermissao.SelectedItem.ToString();
                    funcionario.periodo[0] = dtpickekAdmissaoInicio.Value.ToString();
                    funcionario.periodo[1] = dtpickekAdmissaoFinal.Value.ToString();

                    TelaRelatorio objRelatorio = new TelaRelatorio();
                    objRelatorio.ListaFuncionario(funcionario, "lista");
                    objRelatorio.ShowDialog();
                }
                else //log funcionario
                {
                    if (String.IsNullOrWhiteSpace(tbxMatricula.Text)) // Caso Matricula vazia
                    {
                        funcionario.matricula = funcionario.matricula = 0;
                        funcionario.no_funcao = cbxFuncao.SelectedItem.ToString();
                        funcionario.no_permissao = cbxPermissao.SelectedItem.ToString();
                        funcionario.periodo[0] = dtpickekAdmissaoInicio.Value.ToString();
                        funcionario.periodo[1] = dtpickekAdmissaoFinal.Value.ToString();

                        TelaRelatorio objRelatorio = new TelaRelatorio();
                        objRelatorio.ListaFuncionario(funcionario, "log");
                        objRelatorio.ShowDialog();
                    }
                    else // Caso matricula preenchida!
                    {
                        funcionario.matricula = Convert.ToInt16(tbxMatricula.Text);
                        funcionario.no_funcao = cbxFuncao.SelectedItem.ToString();
                        funcionario.no_permissao = cbxPermissao.SelectedItem.ToString();
                        funcionario.periodo[0] = dtpickekAdmissaoInicio.Value.ToString();
                        funcionario.periodo[1] = dtpickekAdmissaoFinal.Value.ToString();

                        TelaRelatorio objRelatorio = new TelaRelatorio();
                        objRelatorio.ListaFuncionario(funcionario,"log");
                        objRelatorio.ShowDialog();
                    }

                }
            }
            else if (rbtnFerramenta.Checked)
            {

                if (rbtnLista.Checked)//lista Ferramenta
                {
                    ferramenta.codGrupo = cbxGrupo.SelectedItem.ToString();
                    ferramenta.codSituacao = cbxSituacao.SelectedItem.ToString();
                    ferramenta.codFabricante = cbxFabricante.SelectedItem.ToString();
                    ferramenta.periodo[0] = dtpickerInicioFerramenta.Value.ToString();
                    ferramenta.periodo[1] = dtpickerFinalFerramenta.Value.ToString();

                    TelaRelatorio objRelatorio = new TelaRelatorio();
                    objRelatorio.ListaFerramentas(ferramenta, funcionario, requisicao, "lista");
                    objRelatorio.ShowDialog();

                }
                else if (rbtnEventosSistema.Checked)//log Ferramenta
                {
                    ferramenta.codGrupo = cbxGrupo.SelectedItem.ToString();
                    ferramenta.codSituacao = cbxSituacao.SelectedItem.ToString();
                    ferramenta.codFabricante = cbxFabricante.SelectedItem.ToString();
                    ferramenta.periodo[0] = dtpickerInicioFerramenta.Value.ToString();
                    ferramenta.periodo[1] = dtpickerFinalFerramenta.Value.ToString();
                    ferramenta.codFerramenta = tbxCodigo.Text;

                    TelaRelatorio objRelatorio = new TelaRelatorio();
                    objRelatorio.ListaFerramentas(ferramenta, funcionario, requisicao, "log");
                    objRelatorio.ShowDialog();

                }
                else // Mais Requisitada
                {
                    if (String.IsNullOrWhiteSpace(tbxMatricula.Text))
                    {
                        funcionario.matricula = 0;
                        ferramenta.codGrupo = cbxGrupo.SelectedItem.ToString();
                        ferramenta.codFabricante = cbxFabricante.SelectedItem.ToString();
                        funcionario.no_funcao = cbxFuncao.SelectedItem.ToString();
                        requisicao.periodo[0] = dtpickerInicio.Value.ToString();
                        requisicao.periodo[1] = dtpickerFinal.Value.ToString();

                        TelaRelatorio objRelatorio = new TelaRelatorio();
                        objRelatorio.ListaFerramentas(ferramenta, funcionario, requisicao, "Mais requisitada");
                        objRelatorio.ShowDialog();
                    }
                    else
                    {
                        ferramenta.codGrupo = cbxGrupo.SelectedItem.ToString();
                        ferramenta.codFabricante = cbxFabricante.SelectedItem.ToString();
                        funcionario.matricula = Convert.ToInt16(tbxMatricula.Text);
                        funcionario.no_funcao = cbxFuncao.SelectedItem.ToString();
                        requisicao.periodo[0] = dtpickerInicio.Value.ToString();
                        requisicao.periodo[1] = dtpickerFinal.Value.ToString();

                        TelaRelatorio objRelatorio = new TelaRelatorio();
                        objRelatorio.ListaFerramentas(ferramenta, funcionario, requisicao, "Mais requisitada");
                        objRelatorio.ShowDialog();
                    }

                }
            }
            else // Requisição
            {
                requisicao.situacao = cbxSituacaoRequisicao.SelectedItem.ToString();
                if (requisicao.situacao == "Abertas")
                {
                    if (String.IsNullOrWhiteSpace(tbxMatricula.Text))
                    {
                        funcionario.matricula = 0;
                        ferramenta.codGrupo = cbxGrupo.SelectedItem.ToString();
                        ferramenta.codFerramenta = tbxCodigo.Text;
                        ferramenta.codFabricante = cbxFabricante.SelectedItem.ToString();
                        funcionario.no_funcao = cbxFuncao.SelectedItem.ToString();
                        requisicao.periodo[0] = dtpickerInicio.Value.ToString();
                        requisicao.periodo[1] = dtpickerFinal.Value.ToString();

                        TelaRelatorio objRelatorio = new TelaRelatorio();
                        objRelatorio.ListaRequisicao(ferramenta, funcionario, requisicao, requisicao.situacao);
                        objRelatorio.ShowDialog();
                    }
                    else
                    {
                        ferramenta.codGrupo = cbxGrupo.SelectedItem.ToString();
                        ferramenta.codFerramenta = tbxCodigo.Text;
                        ferramenta.codFabricante = cbxFabricante.SelectedItem.ToString();
                        funcionario.matricula = Convert.ToInt16(tbxMatricula.Text);
                        funcionario.no_funcao = cbxFuncao.SelectedItem.ToString();
                        requisicao.periodo[0] = dtpickerInicio.Value.ToString();
                        requisicao.periodo[1] = dtpickerFinal.Value.ToString();

                        TelaRelatorio objRelatorio = new TelaRelatorio();
                        objRelatorio.ListaRequisicao(ferramenta, funcionario, requisicao, requisicao.situacao);
                        objRelatorio.ShowDialog();
                    }
                }
                else
                {
                    if (String.IsNullOrWhiteSpace(tbxMatricula.Text))
                    {
                        funcionario.matricula = 0;
                        ferramenta.codGrupo = cbxGrupo.SelectedItem.ToString();
                        ferramenta.codFerramenta = tbxCodigo.Text;
                        ferramenta.codFabricante = cbxFabricante.SelectedItem.ToString();
                        funcionario.no_funcao = cbxFuncao.SelectedItem.ToString();
                        requisicao.periodo[0] = dtpickerInicio.Value.ToString();
                        requisicao.periodo[1] = dtpickerFinal.Value.ToString();

                        TelaRelatorio objRelatorio = new TelaRelatorio();
                        objRelatorio.ListaRequisicao(ferramenta, funcionario, requisicao, requisicao.situacao);
                        objRelatorio.ShowDialog();
                    }
                    else
                    {
                        ferramenta.codGrupo = cbxGrupo.SelectedItem.ToString();
                        ferramenta.codFerramenta = tbxCodigo.Text;
                        ferramenta.codFabricante = cbxFabricante.SelectedItem.ToString();
                        funcionario.matricula = Convert.ToInt16(tbxMatricula.Text);
                        funcionario.no_funcao = cbxFuncao.SelectedItem.ToString();
                        requisicao.periodo[0] = dtpickerInicio.Value.ToString();
                        requisicao.periodo[1] = dtpickerFinal.Value.ToString();

                        TelaRelatorio objRelatorio = new TelaRelatorio();
                        objRelatorio.ListaRequisicao(ferramenta, funcionario, requisicao, requisicao.situacao);
                        objRelatorio.ShowDialog();
                    }
                }

            }
        }
 public void finalizarRequisicao(Requisicao requisicao)
 {
     requisicaoFacade.finalizarRequisicao(requisicao);
 }