/** * Metodo responsavel por enviar um Projeto para um Componente da Comissao * @param void * @return void */ public function encaminhacomponentecomissaoAction() { // recebe os dados via get $idPronac_Get = $this->_request->getParam("idpronac"); // pega o id do pronac via get $idAcao = $this->_request->getParam("idacao"); // pega o idAcaoAvaliacaoPedidoAlteracao via get $db = Zend_Registry::get('db'); $db->setFetchMode(Zend_DB::FETCH_OBJ); try { $db->beginTransaction(); // ATUALIZA OS CAMPOS stAtivo e stVerificacao NA TABELA tbAcaoAvaliacaoItemPedidoAlteracao $sqlfin = ReadequacaoProjetos::retornaSQLfinalizaGeral($idAcao); $dados = $db->fetchAll($sqlfin); // BUSCA OS REGISTROS DA TABELA tbAcaoAvaliacaoItemPedidoAlteracao $sqlfin2 = ReadequacaoProjetos::retornaSQLfinalizaGeral2($idAcao); $dados = $db->fetchAll($sqlfin2); $id = $dados[0]->idAvaliacaoItemPedidoAlteracao; $idOrgao = $dados[0]->idOrgao; // pega a justificativa final e o id do Parecerista $sqlJustProp = ReadequacaoProjetos::buscarJustificativaFinalParecerista($id); $dados = $db->fetchAll($sqlJustProp); $dsObservacao = $dados[0]->dsObservacao; $idAgenteRemetente = $dados[0]->idAgenteRemetente; // BUSCA OS REGISTROS DOS CAMPOS idPedidoAlteracao E tpAlteracaoProjeto DA TABELA tbAvaliacaoItemPedidoAlteracao $sqlfin3 = ReadequacaoProjetos::retornaSQLfinalizaGeral3($id); $dados = $db->fetchAll($sqlfin3); $idPedidoAlt = $dados[0]->idPedidoAlteracao; $tpAlt = $dados[0]->tpAlteracaoProjeto; $stAvaliacaoItem = $dados[0]->stAvaliacaoItemPedidoAlteracao; $idAgenteAvaliador = $dados[0]->idAgenteAvaliador; $stParecerFavoravel = trim($stAvaliacaoItem) == 'AP' ? 1 : 2; // 1 => favorável; 2 => desfavorável // ATUALIZA O CAMPO stVerificacao NA TABELA tbPedidoAlteracaoXTipoAlteracao $sqlfin4 = ReadequacaoProjetos::retornaSQLfinalizaGeral4($idPedidoAlt, $tpAlt); $dados = $db->fetchAll($sqlfin4); // CRIAR NOVO REGISTRO DE ENCAMINHAMENTO NA TABELA tbAcaoAvaliacaoItemPedidoAlteracao $sqlfin5 = ReadequacaoProjetos::retornaSQLfinalizaGeral5($id, $idOrgao, $this->getIdUsuario, 118); $dados = $db->fetchAll($sqlfin5); // BUSCA O IDPRONAC DA TABELA tbPedidoAlteracaoProjeto $sqlfin6 = ReadequacaoProjetos::retornaSQLfinalizaGeral6($idPedidoAlt); $dados = $db->fetchAll($sqlfin6); $idPronac = $dados[0]->IdPRONAC; // copia as tabelas $planilhaProjeto = new PlanilhaProjeto(); $planilhaAprovacao = new PlanilhaAprovacao(); $analiseConteudo = new Analisedeconteudo(); $analiseaprovacao = new AnaliseAprovacao(); $projetos = new Projetos(); $Distribuicao = new DistribuicaoProjetoComissao(); $titulacaoConselheiro = new TitulacaoConselheiro(); $Rplanilhaprojeto = $planilhaAprovacao->buscar(array('idPRONAC = ?' => $idPronac_Get, 'tpPlanilha = ?' => 'PA', 'stAtivo = ?' => 'N')); foreach ($Rplanilhaprojeto as $resu) { $data = array('tpPlanilha' => 'CO', 'dtPlanilha' => new Zend_Db_Expr('GETDATE()'), 'idPlanilhaProjeto' => $resu->idPlanilhaProjeto, 'idPlanilhaProposta' => $resu->idPlanilhaProposta, 'IdPRONAC' => $resu->IdPRONAC, 'idProduto' => $resu->idProduto, 'idEtapa' => $resu->idEtapa, 'idPlanilhaItem' => $resu->idPlanilhaItem, 'dsItem' => '', 'idUnidade' => $resu->idUnidade, 'qtItem' => $resu->qtItem, 'nrOcorrencia' => $resu->nrOcorrencia, 'vlUnitario' => $resu->vlUnitario, 'qtDias' => $resu->qtDias, 'tpDespesa' => $resu->tpDespesa, 'tpPessoa' => $resu->tpPessoa, 'nrContraPartida' => $resu->nrContraPartida, 'nrFonteRecurso' => $resu->nrFonteRecurso, 'idUFDespesa' => $resu->idUFDespesa, 'idMunicipioDespesa' => $resu->idMunicipioDespesa, 'idPlanilhaAprovacaoPai' => $resu->idPlanilhaAprovacao, 'idPedidoAlteracao' => $idPedidoAlt, 'dsJustificativa' => null, 'stAtivo' => 'N'); $inserirPlanilhaAprovacao = $planilhaAprovacao->InserirPlanilhaAprovacao($data); } // chama a função para fazer o balanceamento $areaProjeto = $projetos->BuscarAreaSegmentoProjetos($idPronac_Get); $Rtitulacao = $titulacaoConselheiro->buscarComponenteBalanceamento($areaProjeto['area']); $Distribuicao->alterar(array('stDistribuicao' => 'I'), array('idPRONAC = ?' => $idPronac_Get)); $dados = array('idPRONAC' => $idPronac_Get, 'idAgente' => $Rtitulacao[0]['idAgente'], 'dtDistribuicao' => new Zend_Db_Expr('GETDATE()'), 'stDistribuicao' => 'A', 'idResponsavel' => 0); $Distribuicao->inserir($dados); // chama a função para alterar a situação do projeto - Padrão C10 $data = array('Situacao' => 'C10'); $where = "IdPRONAC = {$idPronac_Get}"; $projetos->alterarProjetos($data, $where); // busca a planilha PA $arrWhereSomaPlanilhaPA = array(); $arrWhereSomaPlanilhaPA['idPronac = ?'] = $idPronac_Get; //$arrWhereSomaPlanilhaPA['idPlanilhaItem <> ?'] = '206'; //elaboracao e agenciamento //$arrWhereSomaPlanilhaPA['NrFonteRecurso = ?'] = '109'; $arrWhereSomaPlanilhaPA['stAtivo = ?'] = 'N'; $arrWhereSomaPlanilhaPA['tpPlanilha = ?'] = 'PA'; $somaPA = $planilhaAprovacao->somarItensPlanilhaAprovacao($arrWhereSomaPlanilhaPA); // busca a planilha CO $arrWhereSomaPlanilhaCO = array(); $arrWhereSomaPlanilhaCO['idPronac = ?'] = $idPronac_Get; //$arrWhereSomaPlanilhaCO['idPlanilhaItem <> ?'] = '206'; //elaboracao e agenciamento //$arrWhereSomaPlanilhaCO['NrFonteRecurso = ?'] = '109'; $arrWhereSomaPlanilhaCO['stAtivo = ?'] = 'S'; $arrWhereSomaPlanilhaCO['tpPlanilha = ?'] = 'CO'; $somaCO = $planilhaAprovacao->somarItensPlanilhaAprovacao($arrWhereSomaPlanilhaCO); // define o tipo de parecer (tipo 2 => complementação; tipo 4 => redução) $tipoParecer = 2; if ($somaPA < $somaCO) { $tipoParecer = 4; } // cadastra na tabela parecer $tbParecer = new Parecer(); $buscarPareceres = $tbParecer->buscar(array('IdPRONAC = ?' => $idPronac_Get), array('DtParecer DESC')); // busca os pareceres do Projeto foreach ($buscarPareceres as $p) { // desabilita os pareceres antigos $idparecer = isset($p->IdParecer) ? $p->IdParecer : $p->idParecer; $tbParecer->alterar(array('stAtivo' => 0), array('idParecer = ?' => $idparecer)); } $dadosParecer = array('IdPRONAC' => $buscarPareceres[0]->IdPRONAC, 'idEnquadramento' => $buscarPareceres[0]->idEnquadramento, 'AnoProjeto' => $buscarPareceres[0]->AnoProjeto, 'Sequencial' => $buscarPareceres[0]->Sequencial, 'TipoParecer' => $tipoParecer, 'ParecerFavoravel' => $stParecerFavoravel, 'DtParecer' => new Zend_Db_Expr('GETDATE()'), 'Parecerista' => $idAgenteRemetente, 'Conselheiro' => null, 'NumeroReuniao' => null, 'ResumoParecer' => $dsObservacao, 'SugeridoUfir' => 0, 'SugeridoReal' => $somaPA['soma'], 'SugeridoCusteioReal' => 0, 'SugeridoCapitalReal' => 0, 'Atendimento' => $buscarPareceres[0]->Atendimento, 'Logon' => $this->getIdUsuario, 'stAtivo' => 1, 'idTipoAgente' => 1); $tbParecer->inserir($dadosParecer); $db->commit(); parent::message("Projeto finalizado com sucesso!", "manterreadequacao?tipoFiltro=7:d", "CONFIRM"); } catch (Zend_Exception $e) { $db->rollBack(); parent::message("Erro na devolução da solicitação", "manterreadequacao?tipoFiltro=7:d", "ERROR"); } }
/** * Metodo que chama as funcoes de balancear projeto, copiar tabelas e alterar a situacao do projeto * @access public * @param void * @return void */ public function balancearAction() { $auth = Zend_Auth::getInstance(); // pega a autenticacao $idPronac = $this->_request->getParam("idpronac"); // pega o id do pronac via get $servico = $this->_request->getParam("servico"); // pega o id do pronac via get $tipousuario = $this->_request->getParam("idusuario"); // pega o id do pronac via get $tbDistParecer = new tbDistribuirParecer(); $w1['a.IdPRONAC = ?'] = $idPronac; $qntdProd = $tbDistParecer->QntdProdutosXValidados($w1); $w2['a.IdPRONAC = ?'] = $idPronac; $w2['a.stEstado = ?'] = 0; $w2['a.FecharAnalise in (?)'] = array(1, 2); $qntdProdValidados = $tbDistParecer->QntdProdutosXValidados($w2); if ($qntdProdValidados != $qntdProd) { //Se não houver validação para cada produto, o sistema não deixa continuar. parent::message("Produto sem validação do Coordenador da Vinculada!", "gerenciarpareceres/index", "ERROR"); } $planilhaAprovacao = new PlanilhaAprovacao(); $buscarplanilhaaprovacao = $planilhaAprovacao->buscar(array("IdPRONAC = ?" => $idPronac, "tpPlanilha = ?" => "CO"))->current(); if (count($buscarplanilhaaprovacao) == 0) { try { // copia as tabelas $planilhaProjeto = new PlanilhaProjeto(); $analiseConteudo = new Analisedeconteudo(); $analiseaprovacao = new AnaliseAprovacao(); $projetos = new Projetos(); $Distribuicao = new DistribuicaoProjetoComissao(); $titulacaoConselheiro = new TitulacaoConselheiro(); $arrParecerProduto = array(); //ANALISE DE CONTEUDO $RanaliseConteudo = $analiseConteudo->dadosAnaliseconteudo($idPronac); foreach ($RanaliseConteudo as $resu) { $data = array('tpAnalise' => 'CO', 'dtAnalise' => new Zend_Db_Expr('GETDATE()'), 'idAnaliseConteudo' => $resu->idAnaliseDeConteudo, 'IdPRONAC' => $idPronac, 'idProduto' => $resu->idProduto, 'stLei8313' => $resu->Lei8313, 'stArtigo3' => $resu->Artigo3, 'nrIncisoArtigo3' => $resu->IncisoArtigo3, 'dsAlineaArt3' => $resu->AlineaArtigo3, 'stArtigo18' => $resu->Artigo18, 'dsAlineaArtigo18' => $resu->AlineaArtigo18, 'stArtigo26' => $resu->Artigo26, 'stLei5761' => $resu->Lei5761, 'stArtigo27' => $resu->Artigo27, 'stIncisoArtigo27_I' => $resu->IncisoArtigo27_I, 'stIncisoArtigo27_II' => $resu->IncisoArtigo27_II, 'stIncisoArtigo27_III' => $resu->IncisoArtigo27_III, 'stIncisoArtigo27_IV' => $resu->IncisoArtigo27_IV, 'stAvaliacao' => $resu->ParecerFavoravel, 'dsAvaliacao' => $resu->ParecerDeConteudo); if ($resu->idProduto >= 1) { $arrParecerProduto[$resu->idProduto] = $resu->ParecerFavoravel; } else { $arrParecerProduto[0] = 1; //Admistracao do Projeto, que nao possui codigo de produto } $analiseaprovacao->inserir($data); } //ANALISE DE CUSTO $Rplanilhaprojeto = $planilhaProjeto->dadosPlanilhaProjeto($idPronac); foreach ($Rplanilhaprojeto as $resu) { $data = array('tpPlanilha' => 'CO', 'dtPlanilha' => new Zend_Db_Expr('GETDATE()'), 'idPlanilhaProjeto' => $resu->idPlanilhaProjeto, 'idPlanilhaProposta' => $resu->idPlanilhaProposta, 'IdPRONAC' => $idPronac, 'idProduto' => $resu->idProduto, 'idEtapa' => $resu->idEtapa, 'idPlanilhaItem' => $resu->idPlanilhaItem, 'dsItem' => '', 'idUnidade' => $resu->idUnidade, 'qtDias' => $resu->QtdeDias, 'tpDespesa' => $resu->TipoDespesa, 'tpPessoa' => $resu->TipoPessoa, 'nrContraPartida' => $resu->Contrapartida, 'nrFonteRecurso' => $resu->FonteRecurso, 'idUFDespesa' => $resu->UfDespesa, 'idMunicipioDespesa' => $resu->MunicipioDespesa, 'dsJustificativa' => $resu->Justificativa, 'stAtivo' => 'S'); //zera valores de produto desfavorecido if (isset($arrParecerProduto[$resu->idProduto])) { if ($arrParecerProduto[$resu->idProduto] == '1') { //produto favorecido $data['qtItem'] = $resu->Quantidade; $data['nrOcorrencia'] = $resu->Ocorrencia; $data['vlUnitario'] = $resu->ValorUnitario; } else { //produto desfavorecido $data['qtItem'] = 0; $data['nrOcorrencia'] = 0; $data['vlUnitario'] = 0; } } else { //condicao para a Admistracao do Projeto, que nao possui codigo de produto $data['qtItem'] = $resu->Quantidade; $data['nrOcorrencia'] = $resu->Ocorrencia; $data['vlUnitario'] = $resu->ValorUnitario; } $inserirPlanilhaAprovacao = $planilhaAprovacao->inserir($data); } //VERIFICA QUANTOS PRODUTOS O PROJETO POSSUI POR AREA $rsProdutos = $tbDistParecer->BuscarQtdAreasProjetos($idPronac); $totalArea = $rsProdutos->QDTArea; if ($totalArea >= '2') { $area = 7; //Area = Artes integradas } else { //BUSCA AREA DO PROJETO $areaProjeto = $projetos->BuscarAreaSegmentoProjetos($idPronac); $area = $areaProjeto['area']; //Area do projeto } $Rtitulacao = $titulacaoConselheiro->buscarcomponentebalanceamento($area)->current(); $dados = array('idPRONAC' => $idPronac, 'idAgente' => $Rtitulacao->idAgente, 'dtDistribuicao' => new Zend_Db_Expr('GETDATE()'), 'idResponsavel' => 0); $Distribuicao->inserir($dados); // chama a funcao para alterar a situacao do projeto - Padrao C10 $data = array('Situacao' => 'C10', 'dtSituacao' => new Zend_Db_Expr('GETDATE()')); //$where = "IdPRONAC = $idPronac"; $where['IdPRONAC = ?'] = $idPronac; $projetos->alterar($data, $where); //echo 'Conselheiro = ' . $Rtitulacao->idAgente . '<br/>'; parent::message("Projeto encaminhado para o Componente da Comissão. Conselheiro: " . $Rtitulacao->Nome, "gerenciarpareceres/index", "CONFIRM"); } catch (Exception $e) { parent::message("Error: " . $e->getMessage(), "gerenciarpareceres/index", "ERROR"); die($e->getMessage()); } } else { parent::message("Planilhas já copiadas.", "gerenciarpareceres/index", "ALERT"); } // colocar um else aqui!!! }