public function gerarportariaAction()
 {
     ini_set('memory_limit', '-1');
     //        $this->_helper->layout->disableLayout(); // desabilita o Zend_Layout
     $ap = new Aprovacao();
     $pr = new Projetos();
     if ($this->getRequest()->isPost()) {
         // recebe os dados via post
         $post = Zend_Registry::get('post');
         $id = $post->idAprovacao;
         $dia = (int) date("d");
         $mes = (int) date("m");
         $ano = date("Y");
         $ano2Digitos = date("y");
         $semana = date("w");
         $dias = 86400;
         $datas = array();
         $datas['pascoa'] = easter_date($ano);
         $datas['sexta_santa'] = $datas['pascoa'] - 2 * $dias;
         $datas['carnaval'] = $datas['pascoa'] - 47 * $dias;
         $datas['corpus_cristi'] = $datas['pascoa'] + 60 * $dias;
         $feriados = array('Ano Novo' => date('Y') . '-01-01', 'Carnaval' => date('Y-m-d', $datas['carnaval']), 'Sexta-Feira Santa' => date('Y-m-d', $datas['sexta_santa']), 'Pascoa' => date('Y-m-d', $datas['pascoa']), 'Tiradentes' => date('Y') . '-04-21', 'Dia do Trabalhador' => date('Y') . '-05-01', 'Corpus Cristi' => date('Y-m-d', $datas['corpus_cristi']), 'Dia da Independencia' => date('Y') . '-09-07', 'Nossa Senhora de Aparecida' => date('Y') . '-10-12', 'Dia de Finados' => date('Y') . '-11-02', 'Proclamacao da Republica' => date('Y') . '-11-15', 'Natal' => date('Y') . '-12-25');
         $DtPortariaAprovacao = date("Y-m-d H:i:s");
         if ($semana == 5) {
             // sexta
             // feriado na segunda
             if (in_array(strftime("%Y-%m-%d", strtotime("+3 days")), $feriados)) {
                 $DtPublicacaoAprovacao = strftime("%Y-%m-%d %H:%M:%S", strtotime("+4 days"));
             } else {
                 $DtPublicacaoAprovacao = strftime("%Y-%m-%d %H:%M:%S", strtotime("+3 days"));
             }
         } else {
             // feriado na sexta (supondo que hoje � quinta)
             if (in_array(strftime("%Y-%m-%d", strtotime("+1 days")), $feriados) && !in_array(strftime("%Y-%m-%d", strtotime("+4 days")), $feriados)) {
                 $DtPublicacaoAprovacao = strftime("%Y-%m-%d %H:%M:%S", strtotime("+4 days"));
             } else {
                 if (in_array(strftime("%Y-%m-%d", strtotime("+1 days")), $feriados) && in_array(strftime("%Y-%m-%d", strtotime("+4 days")), $feriados)) {
                     $DtPublicacaoAprovacao = strftime("%Y-%m-%d %H:%M:%S", strtotime("+5 days"));
                 } else {
                     $DtPublicacaoAprovacao = strftime("%Y-%m-%d %H:%M:%S", strtotime("+1 days"));
                 }
             }
         }
         try {
             // manda todos os pronac para publicacao (alteracao)
             foreach ($id as $idaprovacao) {
                 //busca o idPronac do projeto
                 $buscaridpronac = $ap->buscar(array('idAprovacao = ?' => $idaprovacao))->current();
                 //busca a data final de execução do projeto em questão
                 $resultado = $pr->buscar(array('IdPRONAC = ?' => $buscaridpronac->IdPRONAC))->current();
                 $dtFimCaptacao = $resultado->DtFimExecucao;
                 //É isso mesmo que vc vê. A data fim captação vai receber o mesmo valor da fim de execução.
                 $dtFimExecucao = $resultado->DtFimExecucao;
                 $dtInicioExecucao = $resultado->DtInicioExecucao;
                 //se a data final de execução estiver em branco (projetos antigos) o sistema considera o 31/12/ano em questão
                 if ($resultado->DtFimExecucao == '' || empty($resultado->DtFimExecucao)) {
                     $dtFimCaptacao = date("Y", strtotime($DtPublicacaoAprovacao)) . '-12-31 ' . date("H:i:s");
                 } else {
                     //se o ano da data final de execução for maior do que o ano em questão, o fim de captação vai até 31/12/ano em questão
                     if (date("Y", strtotime($dtFimCaptacao)) > date("Y", strtotime($DtPublicacaoAprovacao))) {
                         $dtFimCaptacao = date("Y", strtotime($DtPublicacaoAprovacao)) . '-12-31 ' . date("H:i:s");
                     }
                 }
                 // dados para realizar a publicacao
                 $dadosPortaria = array('PortariaAprovacao' => $post->nrPortaria . '/' . date('y'), 'DtPortariaAprovacao' => $DtPortariaAprovacao, 'DtPublicacaoAprovacao' => $DtPublicacaoAprovacao, 'DtInicioCaptacao' => $DtPublicacaoAprovacao, 'DtFimCaptacao' => $dtFimCaptacao);
                 if ($post->tipoPublicacao == 'prorrogacao') {
                     $pronac = $resultado->AnoProjeto . $resultado->Sequencial;
                     $datas = $ap->buscarDatasCaptacao($pronac, $buscaridpronac->idProrrogacao);
                     $dadosPortaria['DtInicioCaptacao'] = $datas[0]->DtInicio;
                     $dadosPortaria['DtFimCaptacao'] = $datas[0]->DtFinal;
                     if (strtotime($dtFimExecucao) < strtotime($datas[0]->DtFinal)) {
                         $dtFimExecucao = $datas[0]->DtFinal;
                     }
                 }
                 $where = 'idAprovacao = ' . $idaprovacao;
                 $portariagerar = $ap->alterar($dadosPortaria, $where);
                 if ($portariagerar) {
                     $dadosSituacao = array('dtSituacao' => date('Y-m-d'), 'DtFimExecucao' => $dtFimExecucao);
                     if ($post->tipoPublicacao == 'prorrogacao' && (empty($dtInicioExecucao) || $dtInicioExecucao == '')) {
                         $dadosSituacao['DtInicioExecucao'] = $datas[0]->DtInicio;
                     }
                     if (isset($post->tipoPublicacao)) {
                         switch ($post->tipoPublicacao) {
                             case '':
                                 $dadosSituacao['Situacao'] = 'D09';
                                 $dadosSituacao['ProvidenciaTomada'] = 'Portaria de aprovação inicial encaminhada à Imprensa Nacional para publicação no Diário Oficial da União.';
                                 break;
                             case 'complementacao':
                                 $dadosSituacao['Situacao'] = 'D16';
                                 $dadosSituacao['ProvidenciaTomada'] = 'Portaria de complementação encaminhada à Imprensa Nacional para publicação no Diário Oficial da União.';
                                 break;
                             case 'prorrogacao':
                                 $dadosSituacao['Situacao'] = 'D17';
                                 $dadosSituacao['ProvidenciaTomada'] = 'Portaria de prorrogação encaminhada à Imprensa Nacional para publicação no Diário Oficial da União.';
                                 break;
                             case 'reducao':
                                 $dadosSituacao['Situacao'] = 'D23';
                                 $dadosSituacao['ProvidenciaTomada'] = 'Portaria de redução encaminhada à Imprensa Nacional para publicação no Diário Oficial da União.';
                                 break;
                             case 'aprovacaoPrestacao':
                                 $dadosSituacao['Situacao'] = 'D42';
                                 $dadosSituacao['ProvidenciaTomada'] = 'Portaria de Prestação de Contas encaminhada à Imprensa Nacional para publicação no Diário Oficial da União.';
                                 break;
                             case 'reprovacaoPrestacao':
                                 $dadosSituacao['Situacao'] = 'D43';
                                 $dadosSituacao['ProvidenciaTomada'] = 'Portaria de Prestação de Contas encaminhada à Imprensa Nacional para publicação no Diário Oficial da União.';
                                 break;
                         }
                     } else {
                         $dadosSituacao['Situacao'] = 'D09';
                         $dadosSituacao['ProvidenciaTomada'] = 'Portaria de aprovação inicial encaminhada à Imprensa Nacional para publicação no Diário Oficial da União.';
                     }
                     $where = 'IdPRONAC = ' . $buscaridpronac->IdPRONAC;
                     $pr->alterar($dadosSituacao, $where);
                 }
                 // fecha if
             }
             // fecha foreach
             if ($post->nome == 1) {
                 //Ana Cristina da Cunha Wanzeler
                 $textoPortaria = '426 de 28 de maio de 2014 e o art. 4&ordm; da Portaria n&ordm; 120, de 30 de mar&ccedil;o de 2010';
                 $nm = 'Ivan Domingues das Neves';
             } else {
                 if ($post->nome == 2) {
                     //João Batista da Silva
                     $textoPortaria = '805 de 09 de outubro de 2013, e em cumprimento ao disposto na Lei 8.313, de 23 de dezembro de 1991, Decreto nº 5.761, de 27 de abril de 2006, Medida Provisória nº 2.228-1, de 06 de setembro de 2001, alterada pela Lei nº 10.454 de 13 de maio de 2002';
                     $nm = 'João Batista da Silva';
                 } else {
                     if ($post->nome == 3) {
                         //Kleber da Silva Rocha
                         $textoPortaria = '909 de 19 de novembro de 2013 e o art. 4&ordm; da Portaria n&ordm; 120, de 30 de Mar&ccedil;o de 2010';
                         $nm = 'Kleber da Silva Rocha';
                     } else {
                         if ($post->nome == 4) {
                             //Mário Henrique Costa Borgneth
                             $textoPortaria = '846 de 07 de novembro de 2013, e em cumprimento ao disposto na Lei 8.313, de 23 de dezembro de 1991, Decreto nº 5.761, de 27 de abril de 2006, Medida Provisória nº 2.228-1, de 06 de setembro de 2001, alterada pela Lei nº 10.454 de 13 de maio de 2002';
                             $nm = 'Mário Henrique Costa Borgneth';
                         } else {
                             $textoPortaria = '17 de 12 de janeiro de 2010 e o art. 4&ordm; da Portaria n&ordm; 120, de 30 de Mar&ccedil;o de 2010';
                             $nm = 'Ivan Domingues das Neves';
                         }
                     }
                 }
             }
             $this->view->cargo = strtoupper(strtr($post->cargo, "áéíóúâêôãõàèìòùç", "ÁÉÍÓÚÂÊÔÃÕÀÈÌÒÙÇ"));
             $this->view->nome = strtoupper(strtr($nm, "áéíóúâêôãõàèìòùç", "ÁÉÍÓÚÂÊÔÃÕÀÈÌÒÙÇ"));
             $this->view->tipoPublicacao = $post->tipoPublicacao;
             $this->view->textoPortaria = $textoPortaria;
             parent::message("Portaria nº " . $_POST['nrPortaria'] . "/" . $ano2Digitos . " foi gerada com sucesso!", "publicacaodou/consultar-portaria?portaria=" . $_POST['nrPortaria'] . "/" . $ano2Digitos . "&situacao=" . $post->tipoPublicacao, "CONFIRM");
             // pega a portaria gerada
             //                $portaria = PublicacaoDouDAO::ProjetoPortaria($_POST['nrPortaria'].'/'.date('y'), $dadosSituacao['Situacao']);
             //                $this->view->portaria = $portaria;
         } catch (Exception $e) {
             parent::message($e->getMessage(), "publicacaodou?situacao=" . $post->tipoPublicacao, "ERROR");
         }
     }
     // fecha if
 }