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º da Portaria nº 120, de 30 de març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º da Portaria nº 120, de 30 de Març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º da Portaria nº 120, de 30 de Març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 }