public function confirmarEnvioPropostaAoMincAction() { /* =============================================================================== */ /* ==== VERIFICA PERMISSAO DE ACESSO DO PROPONENTE A PROPOSTA OU AO PROJETO ====== */ /* =============================================================================== */ $this->verificarPermissaoAcesso(true, false, false); //recupera parametros $get = Zend_Registry::get('get'); $idPreProjeto = $get->idPreProjeto; $valida = $get->valida; $idTecnico = null; $rsTecnicos = array(); $idOrgaoSuperior = null; if (isset($_REQUEST['edital'])) { $edital = "&edital=s"; } else { $edital = ""; } if (!empty($idPreProjeto) && $valida == "s") { $tblPreProjeto = new PreProjeto(); $tblAvaliacao = new AnalisarPropostaDAO(); //recupera dados do projeto $rsPreProjeto = $tblPreProjeto->find($idPreProjeto)->current(); // Recuperando edital $tblEdital = new Edital(); $rsEdital = $tblEdital->buscar(array("idEdital = ?" => $rsPreProjeto->idEdital))->current(); $idOrgaoSuperior = $rsEdital->idOrgao; //verifica se a proposta ja foi recebida por um tecnico $avaliacao = $tblAvaliacao->verificarAvaliacao($idPreProjeto); //SE A PROPOSTA JA FOI AVALIADA POR UM TECNICO E O MESMO ESTIVER ATIVO, ATRIBUI A AVALIACAO A ELE if (count($avaliacao) > 0) { if ($avaliacao[0]->ConformidadeOK == 0 || $avaliacao[0]->ConformidadeOK == 1) { //verifica se o tecnico esta habilitado $arrBusca = array(); $arrBusca['sis_codigo = '] = 21; $arrBusca['gru_codigo = '] = 92; $arrBusca['usu_codigo = '] = $avaliacao[0]->idTecnico; $analista = AdmissibilidadeDAO::buscarAnalistas($arrBusca); if (count($analista) > 0) { if ($analista[0]->uog_status == 1) { $idTecnico = $avaliacao[0]->idTecnico; } else { $idTecnico = null; //recupera todos os tecnicos do orgao para fazer o balanceamento $rsTecnicos = $tblPreProjeto->recuperarTecnicosOrgao($idOrgaoSuperior); } } else { $idTecnico = null; //recupera todos os tecnicos do orgao para fazer o balanceamento $rsTecnicos = $tblPreProjeto->recuperarTecnicosOrgao($idOrgaoSuperior); } } else { $idTecnico = $avaliacao[0]->idTecnico; } } else { //recupera todos os tecnicos do orgao para fazer o balanceamento $rsTecnicos = $tblPreProjeto->recuperarTecnicosOrgao($idOrgaoSuperior); } //SE A PROPOSTA NUNCA FOI AVALIADA OU SE O TECNICO Q A AVALIOU ESTA DESABILITADO FAZ O BALANCEAMENTO if (count($rsTecnicos) > 0 && $idTecnico == null) { $arrTecnicosPropostas = array(); foreach ($rsTecnicos as $tecnico) { $rsAvaliacaoPorTecnico = $tblAvaliacao->recuperarQtdePropostaTecnicoOrgao($tecnico->uog_orgao, $tecnico->usu_codigo); $arrTecnicosPropostas[$tecnico->usu_codigo] = $rsAvaliacaoPorTecnico[0]->qtdePropostas; } asort($arrTecnicosPropostas); //PEGA O ID DO TECNICO Q TEM MENOS PROPOSTAS $ct = 1; foreach ($arrTecnicosPropostas as $chave => $valor) { if ($ct == 1) { $idTecnico = $chave; $ct++; } else { break; } } } //INICIA PERSISTENCIA DOS DADOS if ($idTecnico) { $db = Zend_Db_Table::getDefaultAdapter(); //$db->beginTransaction(); try { //======== PERSXISTE DADOS DA MOVIMENTACAO ==========/ //atualiza status da ultima movimentacao //$tblAvaliacao->updateEstadoMovimentacao($idPreProjeto); $tblMovimentacao = new Movimentacao(); //Mudando as movimentacoes anteriores para o stEstado = 1 $rsRetorno = $tblMovimentacao->update(array("stEstado" => 1), "idProjeto = {$idPreProjeto}"); //Pegando ultima movimentacao $rsMov = $tblMovimentacao->buscar(array("idProjeto = ?" => $idPreProjeto), array("idMovimentacao DESC"), 1, 0)->current(); if (count($rsMov) > 0) { $ultimaMovimentacao = $rsMov->Movimentacao; //xd($ultimaMovimentacao); //Pegando penultima movimentacao $rsMov = $tblMovimentacao->buscar(array("idProjeto = ?" => $idPreProjeto, "Movimentacao <> ?" => $ultimaMovimentacao), array("idMovimentacao DESC"), 1, 0)->current(); //xd($rsMov->toArray()); $movimentacaoDestino = 96; if (count($rsMov) > 0) { $movimentacaoDestino = $rsMov->Movimentacao; } //xd($movimentacaoDestino); } else { $movimentacaoDestino = 96; } //PERSISTE DADOS DA MOVIMENTACAO $tblMovimentacao = new Movimentacao(); $dados = array("idProjeto" => $idPreProjeto, "Movimentacao" => $movimentacaoDestino, "DtMovimentacao" => new Zend_Db_Expr('GETDATE()'), "stEstado" => "0", "Usuario" => $this->idUsuario); $tblMovimentacao->inserir($dados); //======== PERSXISTE DADOS DA AVALIACAO ==========/ //atualiza status da ultima avaliacao $tblAvaliacao->updateEstadoAvaliacao($idPreProjeto); $dados = array(); $dados['idPreProjeto'] = $idPreProjeto; $dados['idTecnico'] = $idTecnico; //$this->idUsuario; $dados['dtEnvio'] = "'" . date("Y/m/d H:i:s") . "'"; $dados['dtAvaliacao'] = "'" . date("Y/m/d H:i:s") . "'"; $dados['avaliacao'] = ""; $dados['conformidade'] = 9; $dados['estado'] = 0; //PERSISTE DADOS DA AVALIACAO PROPOSTA $tblAvaliacao->inserirAvaliacao($dados); // //REMOVER AS PENDENCIAS DE DOCUMENTO // $tblDocAnexados = new tbDocumentosPreProjeto(); // $rsDocsAnexados = $tblDocAnexados->buscar(array("idProjeto = ?"=>$idPreProjeto)); // $tblDocumentosPendentesProjeto = new DocumentosProjeto(); // $tblDocumentosPendentesProponente = new DocumentosProponente(); // //xd($rsDocsAnexados); // foreach($rsDocsAnexados as $anexo){ // $tblDocumentosPendentesProjeto->delete("idProjeto = {$idPreProjeto} AND CodigoDocumento = {$anexo->CodigoDocumento}"); // $tblDocumentosPendentesProponente->delete("idProjeto = {$idPreProjeto} AND CodigoDocumento = {$anexo->CodigoDocumento}"); // } //$db->commit(); parent::message("A Proposta foi enviado com sucesso ao Ministério da Cultura!", "/manterpropostaedital/enviar-proposta-ao-minc?idPreProjeto=" . $idPreProjeto . $edital, "CONFIRM"); die; } catch (Exception $e) { //$db->rollback(); //xd($e->getMessage()); parent::message("O Projeto não foi enviado ao Ministério da Cultura!", "/manterpropostaedital/enviar-proposta-ao-minc?idPreProjeto=" . $idPreProjeto . $edital, "ERROR"); die; } } else { //fecha IF se encontrou tecnicos para enviar a proposta parent::message("A Proposta não foi enviado ao Ministério da Cultura. Técnico não localizado", "/manterpropostaedital/enviar-proposta-ao-minc?idPreProjeto=" . $idPreProjeto . $edital, "ERROR"); die; } } else { //xd($e->getMessage()); parent::message("A Proposta não foi enviado ao Ministério da Cultura.", "/manterpropostaedital/enviar-proposta-ao-minc?idPreProjeto=" . $idPreProjeto . $edital, "ERROR"); } }
public function transformarPropostaEmProjetoAction() { //verifica se id preprojeto foi enviado $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); $get = Zend_Registry::get('get'); $this->validarAcessoAdmissibilidade(); $auth = Zend_Auth::getInstance(); // instancia da autenticação $idOrgao = $auth->getIdentity()->usu_orgao; $tblProposta = new Proposta(); $rsProposta = $tblProposta->buscar(array("idPreProjeto = ?" => $this->idPreProjeto))->current(); //O codigo deste IF serve apenas para mostrar a mensagem ao usuario if ($get->recuperarUnidade != "") { //Buscando produto principal $tblPlanoDistribuicao = new PlanoDistribuicao(); $rsPlanoDistribuicao = $tblPlanoDistribuicao->buscar(array("idProjeto = ?" => $this->idPreProjeto, "stPrincipal = ?" => 1))->current(); $tblOrgaos = new Orgaos(); if ($rsProposta->idEdital == 0 && empty($rsProposta->idEdital)) { //Se existe plano de distribuicao, entao pega-se o orgao baseado no produto principal $rsOrgaos = $tblOrgaos->buscarOrgaoPorSegmento($rsPlanoDistribuicao->Segmento)->current(); } else { //Se nao existe plano de distribuicao, entao esta e uma proposta por edital, //entao pega-se o orgao do edital $tblEdital = new Edital(); $rsEdital = $tblEdital->buscar(array("idEdital = ?" => $rsProposta->idEdital))->current(); $rsOrgaos = $tblOrgaos->buscar(array("Codigo = ?" => $rsEdital->idOrgao))->current(); } //xd($rsOrgaos); $msg = "Deseja Transformar a proposta Nr. {$this->idPreProjeto}, em Projeto? <br>A mesma será enviada para a Unidade: {$rsOrgaos->Sigla}, para Análise Técnica.<br> Confirma a operação?"; die($msg); } //Buscando produto principal $tblPlanoDistribuicao = new PlanoDistribuicao(); $rsPlanoDistribuicao = $tblPlanoDistribuicao->buscar(array("idProjeto = ?" => $this->idPreProjeto, "stPrincipal = ?" => 1))->current(); $tblOrgaos = new Orgaos(); if ($rsProposta->idEdital == 0 || empty($rsProposta->idEdital)) { //Se existe plano de distribuicao, entao pega-se o orgao baseado no produto principal $rsOrgaos = $tblOrgaos->buscarOrgaoPorSegmento($rsPlanoDistribuicao->Segmento)->current(); //$idOrgao = $rsOrgaos->Codigo; $idOrgao = $this->codOrgao; } else { //Se nao existe plano de distribuicao, entao esta e uma proposta por edital, //entao pega-se o orgao do edital $tblEdital = new Edital(); $rsEdital = $tblEdital->buscar(array("idEdital = ?" => $rsProposta->idEdital))->current(); $rsOrgaos = $tblOrgaos->buscar(array("Codigo = ?" => $rsEdital->idOrgao))->current(); //$idOrgao = $rsOrgaos->Codigo; $idOrgao = $this->codOrgao; } $tblAgente = new Agentes(); $rsAgente = $tblAgente->buscarAgenteNome(array("a.idAgente = ?" => $rsProposta->idAgente))->current(); $cnpjcpf = $rsAgente->CNPJCPF; try { $aux = new paTransformarPropostaEmProjeto(); $aux = $aux->execSP($this->idPreProjeto, $cnpjcpf, $idOrgao, $this->idUsuario); $tblProjeto = new Projetos(); $rsProjeto = $tblProjeto->buscar(array("idProjeto = ?" => $this->idPreProjeto), "IdPRONAC DESC")->current(); if (!empty($rsProjeto)) { $nrPronac = $rsProjeto->AnoProjeto . $rsProjeto->Sequencial; echo "A Proposta " . $this->idPreProjeto . " foi transformada no Projeto No. " . $nrPronac; echo '<br><br><a href="../gerenciarparecertecnico/dadosetiqueta?pronac=' . $nrPronac . '&etiqueta=nao" target="_blank">Imprimir etiqueta</a>'; } } catch (Exception $e) { echo "Erro ao tentar transformar proposta em projeto!"; } }