/** * Grava registro. Se seja passado um ID ele altera um registro existente * @param array $dados - array com dados referentes as colunas da tabela no formato "nome_coluna_1"=>"valor_1","nome_coluna_2"=>"valor_2" * @return ID do registro inserido/alterado ou FALSE em caso de erro */ public function salvar($dados) { //INSTANCIANDO UM OBJETO DE ACESSO AOS DADOS DA TABELA $tblAbrangencia = new Abrangencia(); //DECIDINDO SE INCLUI OU ALTERA UM REGISTRO $dados['stAbrangencia'] = 1; if (isset($dados['idAbrangencia']) && !empty($dados['idAbrangencia'])) { //UPDATE $rsAbrangencia = $tblAbrangencia->find($dados['idAbrangencia'])->current(); } else { //INSERT $dados['idAbrangencia'] = null; return $tblAbrangencia->insert($dados); //$rsAbrangencia = $tblAbrangencia->createRow(); } //ATRIBUINDO VALORES AOS CAMPOS QUE FORAM PASSADOS if (!empty($dados['idProjeto'])) { $rsAbrangencia->idProjeto = $dados['idProjeto']; } if (!empty($dados['idPais'])) { $rsAbrangencia->idPais = $dados['idPais']; } $rsAbrangencia->idUF = $dados['idUF']; //if(!empty($dados['idUF'])) { $rsAbrangencia->idUF = $dados['idUF']; } $rsAbrangencia->idMunicipioIBGE = $dados['idMunicipioIBGE']; //if(!empty($dados['idMunicipioIBGE'])) { $rsAbrangencia->idMunicipioIBGE = $dados['idMunicipioIBGE']; } if (!empty($dados['Usuario'])) { $rsAbrangencia->Usuario = $dados['Usuario']; } $rsAbrangencia->stAbrangencia = 1; //SALVANDO O OBJETO $id = $rsAbrangencia->save(); if ($id) { return $id; } else { return false; } }
public function finalizageralAction() { //idAcaoAvaliacaoItemPedidoAlteracao da Tabela BDCORPORATIVO.scSAC.tbAcaoAvaliacaoItemPedidoAlteracao $idAcao = $_GET['id']; // $new = new tbProposta(); // $ss = $new->finalizarReadequacaoDeProposta('119720'); // xd($ss); //retorna o id do agente logado $idAgenteRemetente = $this->getIdUsuario; $idPerfilRemetente = $this->codGrupo; $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; //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; //ATUALIZA O CAMPO stVerificacao NA TABELA tbPedidoAlteracaoXTipoAlteracao $sqlfin4 = ReadequacaoProjetos::retornaSQLfinalizaGeral4($idPedidoAlt, $tpAlt); $dados = $db->fetchAll($sqlfin4); //CRIAR NOVO REGISTRO DE ENCAMINHAMENTO NA TABELA tbAcaoAvaliacaoItemPedidoAlteracao if (!isset($_GET['checklist'])) { $sqlfin5 = ReadequacaoProjetos::retornaSQLfinalizaGeral5($id, $idOrgao, $idAgenteRemetente, $idPerfilRemetente); $dados = $db->fetchAll($sqlfin5); } //BUSCA O IDPRONAC DA TABELA tbPedidoAlteracaoProjeto $sqlfin6 = ReadequacaoProjetos::retornaSQLfinalizaGeral6($idPedidoAlt); $dados = $db->fetchAll($sqlfin6); $idPronac = $dados[0]->IdPRONAC; //Verifica se possui item de custo NA TABELA tbPedidoAlteracaoXTipoAlteracao if ($tpAlt == 7) { $sqlfin7 = ReadequacaoProjetos::retornaSQLfinalizaGeral7($idPedidoAlt); $itens = $db->fetchAll($sqlfin7); if (count($itens) == 2) { $tpAlt = 10; } } $auth = Zend_Auth::getInstance(); // pega a autenticação $agente = GerenciarPautaReuniaoDAO::consultaAgenteUsuario($auth->getIdentity()->usu_codigo); $idagente = $agente['idAgente']; if ($stAvaliacaoItem == 'AP') { if ($tpAlt == 1 && isset($_GET['checklist'])) { //NOME DO PROPONENTE $NomeProponenteSolicitado = PedidoAlteracaoDAO::buscarAlteracaoNomeProponente($idPronac); $proponente = new Interessado(); $dados = array('Nome' => mb_convert_case(strtolower($NomeProponenteSolicitado['proponente']), MB_CASE_TITLE, "ISO-8859-1")); $proponente->alterar($dados, array('CgcCpf = ?' => $NomeProponenteSolicitado['CgcCpf'])); } else { if ($tpAlt == 2 && isset($_GET['checklist'])) { //TROCA DE PROPONENTE $trocaProponenteAtual = VerificarAlteracaoProjetoDAO::BuscarDadosGenericos($idPronac); $NomeAtual = $trocaProponenteAtual['proponente']; $CpfCnpjAtual = $trocaProponenteAtual['CgcCpf']; $idNome = $trocaProponenteAtual['idNome']; $trocaProponenteSolicitada = PedidoAlteracaoDAO::buscarAlteracaoRazaoSocial($idPronac); $NomeSolicitado = $trocaProponenteSolicitada['nmRazaoSocial']; $CpfCnpjSolicitado = $trocaProponenteSolicitada['CgcCpf']; // altera o cpf do proponente $_Projetos = new Projetos(); $_alterarProponente = $_Projetos->alterar(array('CgcCpf' => $CpfCnpjSolicitado), array('IdPRONAC = ?' => $idPronac)); // altera o nome do proponente $_Nomes = new Nomes(); $_alterarNome = $_Nomes->alterar(array('Descricao' => $NomeSolicitado), array('idNome = ?' => $idNome)); $proponente = new Interessado(); $dados = array('Nome' => mb_convert_case(strtolower($NomeSolicitado), MB_CASE_TITLE, "ISO-8859-1")); $proponente->alterar($dados, array('CgcCpf = ?' => $CpfCnpjSolicitado)); /** * ============================================================== * INICIO DA ATUALIZACAO DO VINCULO DO PROPONENTE * ============================================================== */ $Projetos = new Projetos(); $Agentes = new Agentes(); $Visao = new Visao(); $tbVinculo = new TbVinculo(); $tbVinculoProposta = new tbVinculoProposta(); /* ========== BUSCA OS DADOS DO PROPONENTE ANTIGO ========== */ $buscarCpfProponenteAntigo = $Projetos->buscar(array('IdPRONAC = ?' => $idPronac)); $cpfProponenteAntigo = count($buscarCpfProponenteAntigo) > 0 ? $buscarCpfProponenteAntigo[0]->CgcCpf : 0; $buscarIdProponenteAntigo = $Agentes->buscar(array('CNPJCPF = ?' => $cpfProponenteAntigo)); $idProponenteAntigo = count($buscarIdProponenteAntigo) > 0 ? $buscarIdProponenteAntigo[0]->idAgente : 0; $idPreProjetoVinculo = count($buscarCpfProponenteAntigo) > 0 ? $buscarCpfProponenteAntigo[0]->idProjeto : 0; /* ========== BUSCA OS DADOS DO NOVO PROPONENTE ========== */ $buscarNovoProponente = $Agentes->buscar(array('CNPJCPF = ?' => $CpfCnpjSolicitado)); $idNovoProponente = count($buscarNovoProponente) > 0 ? $buscarNovoProponente[0]->idAgente : 0; $buscarVisao = $Visao->buscar(array('Visao = ?' => 144, 'idAgente = ?' => $idNovoProponente)); /* ========== BUSCA OS DADOS DA PROPOSTA VINCULADA ========== */ $idVinculo = $tbVinculoProposta->buscar(array('idPreProjeto = ?' => $idPreProjetoVinculo)); /* ========== ATUALIZA O VINCULO DO PROPONENTE ========== */ if (count($buscarVisao) > 0 && count($idVinculo) > 0) { $whereVinculo = array('idVinculo = ?' => $idVinculo[0]->idVinculo); $dadosVinculo = array('idAgenteProponente' => $idNovoProponente, 'dtVinculo' => new Zend_Db_Expr('GETDATE()')); $tbVinculo->alterar($dadosVinculo, $whereVinculo); } else { parent::message("O usuário informado não é Proponente ou o Projeto não está vinculado a uma Proposta!", "verificarreadequacaodeprojeto/verificarreadequacaodeprojetocoordacompanhamento", "ERROR"); } /** * ============================================================== * FIM DA ATUALIZACAO DO VINCULO DO PROPONENTE * ============================================================== */ } else { if ($tpAlt == 3) { //FICHA TÉCNICA $fichatecAtual = FichaTecnicaDAO::buscarFichaTecnicaFinal($idPronac, $idPedidoAlt); $Atual = $fichatecAtual[0]->FichaTecnica; $idPreProjeto = $fichatecAtual[0]->idPreProjeto; $fichatecSolicitada = PedidoAlteracaoDAO::buscarAlteracaoFichaTecnicaFinal($idPronac, $idPedidoAlt); $Solicitada = $fichatecSolicitada[0]['dsFichaTecnica']; $avaliacao = ReadequacaoProjetos::finalizacaoCoordAcomp("SAC.dbo.PreProjeto", "FichaTecnica", $Solicitada, "idPreProjeto", $idPreProjeto); $result = $db->fetchAll($avaliacao); } else { if ($tpAlt == 4) { //LOCAL DE REALIZAÇÃO $local = ProjetoDAO::buscarPronac($idPronac); $idProjeto = $local['idProjeto']; $dadosTbAbran = tbAbrangenciaDAO::buscarDadosTbAbrangencia(null, $id); foreach ($dadosTbAbran as $x) { if (trim($x->tpAcao) == 'I') { $dados = array('idProjeto' => $idProjeto, 'idPais' => $x->idPais, 'idUF' => $x->idUF, 'idMunicipioIBGE' => $x->idMunicipioIBGE, 'Usuario' => $idagente, 'stAbrangencia' => '1'); //if (count(AbrangenciaDAO::verificarLocalRealizacao($idProjeto, $x->idMunicipioIBGE)) <= 0) : $local = AbrangenciaDAO::cadastrar($dados); //endif; //print_r($local); } else { if (trim($x->tpAcao) == 'E') { // altera o status dos locais excluídos $Abrangencia = new Abrangencia(); $Abrangencia->update(array('stAbrangencia' => 0), array('idAbrangencia = ?' => $x->idAbrangenciaAntiga)); //$_local = AbrangenciaDAO::buscarAbrangenciasAtuais($idProjeto, $x->idPais, $x->idUF, $x->idMunicipioIBGE); //$__local = AbrangenciaDAO::excluir($_local[0]->idAbrangencia); } } } } else { if ($tpAlt == 5 && isset($_GET['checklist'])) { //NOME DO PROJETO $Projetos = new Projetos(); $DadosAlteracaoNomeProjeto = PedidoAlteracaoDAO::buscarAlteracaoNomeProjeto($idPronac); $dados = array('NomeProjeto' => $DadosAlteracaoNomeProjeto['nmProjeto']); $Projetos->alterar($dados, array('IdPRONAC = ?' => $idPronac)); } else { if ($tpAlt == 6) { //PROPOSTA PEDAGÓGICA $sqlproposta = ReadequacaoProjetos::retornaSQLproposta("sqlpropostafinalizar", $idPronac); $dadosSolicitado = $db->fetchAll($sqlproposta); $Projeto = new Projetos(); $DadosProj = $Projeto->buscar(array('IdPRONAC = ?' => $idPronac)); if (count($DadosProj) > 0 && !empty($DadosProj[0]->idProjeto)) { $PreProjeto = new PreProjeto(); $dados = array('EstrategiadeExecucao' => $dadosSolicitado[0]['dsEstrategiaExecucao'], 'EspecificacaoTecnica' => $dadosSolicitado[0]['dsEspecificacaoSolicitacao']); PreProjeto::alterarDados($dados, array('idPreProjeto = ?' => $DadosProj[0]->idProjeto)); } } else { if ($tpAlt == 7) { $tbPlanoDistribuicao = new tbPlanoDistribuicao(); $produtosAnalisadosDeferidos = $tbPlanoDistribuicao->produtosAvaliadosReadequacao($idPedidoAlt, $id); foreach ($produtosAnalisadosDeferidos as $valores) { $Projeto = new Projetos(); $DadosProj = $Projeto->buscar(array('IdPRONAC = ?' => $idPronac)); $dadosProduto = array('idPlanoDistribuicao' => $valores->idPlanoDistribuicao, 'idProjeto' => $DadosProj[0]->idProjeto, 'idProduto' => $valores->idProduto, 'Area' => $valores->cdArea, 'Segmento' => $valores->cdSegmento, 'idPosicaoDaLogo' => $valores->idPosicaoLogo, 'QtdeProduzida' => $valores->qtProduzida, 'QtdePatrocinador' => $valores->qtPatrocinador, 'QtdeProponente' => NULL, 'QtdeOutros' => $valores->qtOutros, 'QtdeVendaNormal' => $valores->qtVendaNormal, 'QtdeVendaPromocional' => $valores->qtVendaPromocional, 'PrecoUnitarioNormal' => $valores->vlUnitarioNormal, 'PrecoUnitarioPromocional' => $valores->vlUnitarioPromocional, 'stPrincipal' => $valores->stPrincipal, 'stPlanoDistribuicaoProduto' => 1); //ALTERA OU INSERE O PLANO DE DISTRIBUICAO $PlanoDistribuicao = new PlanoDistribuicao(); $x = $PlanoDistribuicao->salvar($dadosProduto); } } else { if ($tpAlt == 8 && isset($_GET['checklist'])) { //PRORROGACAO DE PRAZOS - CAPTACAO $datas = PedidoAlteracaoDAO::buscarAlteracaoPrazoCaptacao($idPronac); $Projeto = new Projetos(); $DadosProj = $Projeto->buscar(array('IdPRONAC = ?' => $idPronac)); $Aprovacao = new Aprovacao(); $registro = $Aprovacao->buscar(array('AnoProjeto = ?' => $DadosProj[0]->AnoProjeto, 'Sequencial = ?' => $DadosProj[0]->Sequencial)); $dados = array('IdPRONAC' => $idPronac, 'AnoProjeto' => $DadosProj[0]->AnoProjeto, 'Sequencial' => $DadosProj[0]->Sequencial, 'TipoAprovacao' => 3, 'DtAprovacao' => new Zend_Db_Expr('GETDATE()'), 'DtInicioCaptacao' => $datas['dtInicioNovoPrazo'], 'DtFimCaptacao' => $datas['dtFimNovoPrazo'], 'Logon' => $idagente); $Aprovacao->inserir($dados); } else { if ($tpAlt == 9 && isset($_GET['checklist'])) { //PRORROGACAO DE PRAZOS - EXECUCAO $datas = PedidoAlteracaoDAO::buscarAlteracaoPrazoExecucao($idPronac); $projetos = new Projetos(); $dados = array('DtInicioExecucao' => $datas['dtInicioNovoPrazo'], 'DtFimExecucao' => $datas['dtFimNovoPrazo']); $projetos->alterar($dados, array('IdPRONAC = ?' => $idPronac)); } else { if ($tpAlt == 10) { $tbPlanoDistribuicao = new tbPlanoDistribuicao(); $produtosAnalisadosDeferidos = $tbPlanoDistribuicao->produtosAvaliadosReadequacao($idPedidoAlt, $id); foreach ($produtosAnalisadosDeferidos as $valores) { $Projeto = new Projetos(); $DadosProj = $Projeto->buscar(array('IdPRONAC = ?' => $idPronac)); $dadosProduto = array('idPlanoDistribuicao' => $valores->idPlanoDistribuicao, 'idProjeto' => $DadosProj[0]->idProjeto, 'idProduto' => $valores->idProduto, 'Area' => $valores->cdArea, 'Segmento' => $valores->cdSegmento, 'idPosicaoDaLogo' => $valores->idPosicaoLogo, 'QtdeProduzida' => $valores->qtProduzida, 'QtdePatrocinador' => $valores->qtPatrocinador, 'QtdeProponente' => NULL, 'QtdeOutros' => $valores->qtOutros, 'QtdeVendaNormal' => $valores->qtVendaNormal, 'QtdeVendaPromocional' => $valores->qtVendaPromocional, 'PrecoUnitarioNormal' => $valores->vlUnitarioNormal, 'PrecoUnitarioPromocional' => $valores->vlUnitarioPromocional, 'stPrincipal' => $valores->stPrincipal, 'stPlanoDistribuicaoProduto' => 1); //ALTERA OU INSERE O PLANO DE DISTRIBUICAO $PlanoDistribuicao = new PlanoDistribuicao(); $x = $PlanoDistribuicao->salvar($dadosProduto); } // PRODUTO + ITEN DE CUSTO $planilhaProposta = new PlanilhaProposta(); $planilhaProjeto = new PlanilhaProjeto(); $DeParaPlanilhaAprovacao = new DeParaPlanilhaAprovacao(); $Projetos = new Projetos(); $planilha = new PlanilhaAprovacao(); $PlanilhasSolicitadas = $planilha->buscar(array('IdPRONAC = ?' => $idPronac, 'tpPlanilha = ?' => 'PA')); $buscarProjeto = $Projetos->buscar(array('IdPRONAC = ?' => $idPronac)); foreach ($PlanilhasSolicitadas as $dadosP) { if (!empty($dadosP->idPedidoAlteracao)) { // busca a ação a ser executada conforme solicitação de readequação //$_idPlanilhaProjeto = empty($dadosP->idPlanilhaProjeto) ? ('idPlanilhaProjeto ? ' => new Zend_Db_Expr('IS NULL')) : ('idPlanilhaProjeto = ? ' => $dadosP->idPlanilhaProjeto); //$_idPlanilhaProposta = empty($dadosP->idPlanilhaProposta) ? ('idPlanilhaProposta ? ' => new Zend_Db_Expr('IS NULL')) : ('idPlanilhaProposta = ? ' => $dadosP->idPlanilhaProposta); //$_idPlanilhaAprovacaoPai = empty($dadosP->idPlanilhaAprovacaoPai) ? ('idPlanilhaAprovacaoPai ? ' => new Zend_Db_Expr('IS NULL')) : ('idPlanilhaAprovacaoPai = ? ' => $dadosP->idPlanilhaAprovacaoPai); $_dados = array('IdPRONAC = ?' => $idPronac, 'tpPlanilha = ?' => 'SR', 'IdPRONAC = ?' => $idPronac, 'idPedidoAlteracao = ? ' => $dadosP->idPedidoAlteracao); $buscarTpAcaoSR = $planilha->buscar($_dados); if (count($buscarTpAcaoSR) > 0 && !empty($buscarProjeto[0]->idProjeto)) { // EXCLUSÃO if ($buscarTpAcaoSR[0]->tpAcao == 'E') { // planilha antiga $idProjeto = $buscarProjeto[0]->idProjeto; $dadosAprovados = $planilhaProposta->buscar(array('idProjeto = ?' => $idProjeto, 'idProduto = ?' => $dadosP->idProduto, 'idEtapa = ?' => $dadosP->idEtapa, 'idPlanilhaItem = ?' => $dadosP->idPlanilhaItem)); foreach ($dadosAprovados as $dadosExculsao) { $buscarDeParaPlanilhaAprovacao = $DeParaPlanilhaAprovacao->buscarPlanilhaProposta($dadosExculsao->idPlanilhaProposta); foreach ($buscarDeParaPlanilhaAprovacao as $b) { $DeParaPlanilhaAprovacao->delete(array('idPlanilhaAprovacao = ?' => $b->idPlanilhaAprovacao)); } $planilha->delete(array('idPlanilhaProposta = ?' => $dadosExculsao->idPlanilhaProposta)); $planilhaProjeto->delete(array('idPlanilhaProposta = ?' => $dadosExculsao->idPlanilhaProposta)); $planilhaProposta->delete(array('idPlanilhaProposta = ?' => $dadosExculsao->idPlanilhaProposta)); } // ALTERAÇÃO } elseif ($buscarTpAcaoSR[0]->tpAcao == 'A') { // planilha antiga $idProjeto = $buscarProjeto[0]->idProjeto; $dadosAprovados = $planilhaProposta->buscar(array('idProjeto = ?' => $idProjeto, 'idProduto = ?' => $dadosP->idProduto, 'idEtapa = ?' => $dadosP->idEtapa, 'idPlanilhaItem = ?' => $dadosP->idPlanilhaItem)); foreach ($dadosAprovados as $dadosAlteracao) { $where = array('idPlanilhaProposta = ?' => $dadosAlteracao->idPlanilhaProposta); $dados = array('idProduto' => $dadosP->idProduto, 'idEtapa' => $dadosP->idEtapa, 'idPlanilhaItem' => $dadosP->idPlanilhaItem, 'Descricao' => $dadosP->dsItem, 'Unidade' => $dadosP->idUnidade, 'Quantidade' => $dadosP->qtItem, 'Ocorrencia' => $dadosP->nrOcorrencia, 'ValorUnitario' => $dadosP->vlUnitario, 'QtdeDias' => $dadosP->qtDias, 'TipoDespesa' => $dadosP->tpDespesa, 'TipoPessoa' => $dadosP->tpPessoa, 'Contrapartida' => $dadosP->nrContraPartida, 'FonteRecurso' => $dadosP->nrFonteRecurso, 'UfDespesa' => $dadosP->idUFDespesa, 'MunicipioDespesa' => $dadosP->idMunicipioDespesa, 'idUsuario' => $dadosP->idAgente, 'dsJustificativa' => $dadosP->dsJustificativa); $planilhaProposta->alterar($dados, $where); } $planilha->update(array('tpPlanilha' => 'CO', 'stAtivo' => 'N'), array('idPlanilhaAprovacao = ? ' => $dadosP->idPlanilhaAprovacao)); $planilha->update(array('tpPlanilha' => 'CO', 'stAtivo' => 'N'), array('idPlanilhaAprovacao = ? ' => $buscarTpAcaoSR[0]->idPlanilhaAprovacao)); // INCLUSÃO } elseif ($buscarTpAcaoSR[0]->tpAcao == 'I') { // planilha antiga $ReplicaDados = array('idProjeto' => $buscarProjeto[0]->idProjeto, 'idProduto' => $dadosP->idProduto, 'idEtapa' => $dadosP->idEtapa, 'idPlanilhaItem' => $dadosP->idPlanilhaItem, 'Descricao' => $dadosP->dsItem, 'Unidade' => $dadosP->idUnidade, 'Quantidade' => $dadosP->qtItem, 'Ocorrencia' => $dadosP->nrOcorrencia, 'ValorUnitario' => $dadosP->vlUnitario, 'QtdeDias' => $dadosP->qtDias, 'TipoDespesa' => $dadosP->tpDespesa, 'TipoPessoa' => $dadosP->tpPessoa, 'Contrapartida' => $dadosP->nrContraPartida, 'FonteRecurso' => $dadosP->nrFonteRecurso, 'UfDespesa' => $dadosP->idUFDespesa, 'MunicipioDespesa' => $dadosP->idMunicipioDespesa, 'idUsuario' => $dadosP->idAgente, 'dsJustificativa' => $dadosP->dsJustificativa); $planilhaProposta->inserir($ReplicaDados); $planilha->update(array('tpPlanilha' => 'CO', 'stAtivo' => 'N'), array('idPlanilhaAprovacao = ? ' => $dadosP->idPlanilhaAprovacao)); $planilha->update(array('tpPlanilha' => 'CO', 'stAtivo' => 'N'), array('idPlanilhaAprovacao = ? ' => $buscarTpAcaoSR[0]->idPlanilhaAprovacao)); } } } // fecha if } } } } } } } } } } } } $db->commit(); //CASO SEJA O ÚLTIMO ITEM DO PEDIDO DE ALTERAÇÃO, FINALIZA O STATUS DA MESMA $tbPedidoAlteracaoXTipoAlteracao = new tbPedidoAlteracaoXTipoAlteracao(); $verificarPedidosAtivos = $tbPedidoAlteracaoXTipoAlteracao->buscar(array('idPedidoAlteracao = ?' => $idPedidoAlt, 'stVerificacao <> ?' => 4)); $arrBusca = array(); $arrBusca['p.siVerificacao IN (?)'] = array('1'); $arrBusca['p.IdPRONAC = ?'] = $idPronac; $arrBusca['x.tpAlteracaoProjeto IN (?)'] = array('1', '2', '5', '7', '8', '9', '10'); $arrBusca['a.stAvaliacaoItemPedidoAlteracao IN (?)'] = array('AP'); $arrBusca['c.stVerificacao NOT IN (?)'] = array('4'); $buscaChecklist = $tbPedidoAlteracaoXTipoAlteracao->buscarPedidoChecklist($arrBusca); if (count($verificarPedidosAtivos) == 0 && count($buscaChecklist) == 0) { $tbPedidoAlteracaoProjeto = new tbPedidoAlteracaoProjeto(); $tbPedidoAlteracaoProjeto->alterar(array('siVerificacao' => 2), array('idPedidoAlteracao = ?' => $idPedidoAlt)); } if (isset($_GET['checklist'])) { parent::message("Portaria publicada com sucesso!", "publicacaodou/index", "CONFIRM"); } else { parent::message("Projeto finalizado com sucesso!", "verificarreadequacaodeprojeto/verificarreadequacaodeprojetocoordacompanhamento", "CONFIRM"); } } catch (Zend_Exception $e) { $db->rollBack(); parent::message("Erro na devolução da solicitação", "verificarreadequacaodeprojeto/verificarreadequacaodeprojetocoordacompanhamento", "ERROR"); } }
public function validarEnvioPropostaAoMinc($idPreProjeto) { //BUSCA DADOS DO PROJETO $arrBusca = array(); $arrBusca['idPreProjeto = ?'] = $idPreProjeto; $tblPreProjeto = new PreProjeto(); $rsPreProjeto = $tblPreProjeto->buscar($arrBusca)->current(); //xd($rsPreProjeto); /* ======== VERIFICA TODAS AS INFORMACOES NECESSARIAS AO ENVIO DA PROPOSTA ======= */ $arrResultado = array(); $arrResultado['erro'] = false; /* * ******* MOVIMENTACAO ******** */ //VERIFICA SE A PROPOSTA ESTA COM O MINC $Movimentacao = new Movimentacao(); $rsMovimentacao = $Movimentacao->buscarStatusAtualProposta($idPreProjeto); if ($rsMovimentacao->Movimentacao != 95) { $arrResultado['erro'] = true; $arrResultado['movimentacao']['erro'] = false; $arrResultado['movimentacao']['msg'] = "A Proposta Cultural encontra-se no Ministério da Cultura"; } else { /* $arrResultado['erro'] = true; $arrResultado['movimentacao']['erro'] = false; $arrResultado['movimentacao']['msg'] = "A Proposta Cultural encontra-se no Ministério da Cultura"; */ } /* * ******* DADOS DO PROPONENTE ******** */ $tblProponente = new Proponente(); //$rsProponente = $tblProponente->buscar(array("a.idAgente = ?"=>$rsPreProjeto->idAgente))->current(); $tblAgente = new Agentes(); $rsProponente = $tblAgente->buscarAgenteNome(array("a.idAgente = ?" => $rsPreProjeto->idAgente))->current(); $regularidade = Regularidade::buscarSalic($rsProponente->CNPJCPF); $dadosEndereco = EnderecoNacionalDAO::buscarEnderecoNacional($rsPreProjeto->idAgente); $dadosEmail = Email::buscar($rsPreProjeto->idAgente); $dadosDirigente = ManterAgentesDAO::buscarVinculados(null, null, null, null, $rsPreProjeto->idAgente); //$dadosDirigente = ManterAgentes::buscaDirigentes($rsProponente->CNPJCPF); $tblLocaisRealizacao = new Abrangencia(); $dadosLocais = $tblLocaisRealizacao->buscar(array("a.idProjeto" => $idPreProjeto, "a.stAbrangencia" => 1)); $tblPlanoDivulgacao = new PlanoDeDivulgacao(); $dadosPlanoDivulgacao = $tblPlanoDivulgacao->buscar(array("idProjeto =?" => $idPreProjeto))->toArray(); $tblPlanoDistribuicao = new PlanoDistribuicao(); $dadosPlanoDistribuicao = $tblPlanoDistribuicao->buscar(array("a.idProjeto = ?" => $idPreProjeto, "a.stPlanoDistribuicaoProduto = ?" => 1), array("idProduto ASC"))->toArray(); if (count($rsProponente) > 0) { //VERIFICA SE O PROPONENTE EST� VINCULADO $vinculoProponente = new tbVinculoPropostaResponsavelProjeto(); $whereProp['VP.idPreProjeto = ?'] = $this->idPreProjeto; $whereProp['VP.siVinculoProposta = ?'] = 2; $rsVinculo = $vinculoProponente->buscarResponsaveisProponentes($whereProp); if ($rsVinculo->count() > 0) { if (isset($rsVinculo[0]->siVinculo) && $rsVinculo[0]->siVinculo == 0) { $msgProponente = "Aguardando o vínculo do Proponente"; } elseif (isset($rsVinculo[0]->siVinculo) && $rsVinculo[0]->siVinculo == 1) { $msgProponente = "O Proponente rejeitou o vínculo"; } elseif (isset($rsVinculo[0]->siVinculo) && $rsVinculo[0]->siVinculo == 2) { $msgProponente = "Proponente Vinculado"; } else { $msgProponente = "Proponente desvinculado"; } if ($rsVinculo[0]->siVinculo == 2) { $arrResultado['vinculoproponente']['erro'] = false; $arrResultado['vinculoproponente']['msg'] = $msgProponente; } else { $arrResultado['erro'] = true; $arrResultado['vinculoproponente']['erro'] = true; $arrResultado['vinculoproponente']['msg'] = $msgProponente; } } else { $arrResultado['erro'] = true; $arrResultado['vinculoproponente']['erro'] = true; $arrResultado['vinculoproponente']['msg'] = "Proponente desvinculado"; } //REGULARIDADE DO PROPONENTE if (count($regularidade) > 0) { if ($regularidade[0]->Habilitado == "S") { $arrResultado['regularidadeproponente']['erro'] = false; $arrResultado['regularidadeproponente']['msg'] = "Proponente em situação REGULAR no Ministério da Cultura"; } else { $arrResultado['erro'] = true; $arrResultado['regularidadeproponente']['erro'] = true; $arrResultado['regularidadeproponente']['msg'] = "Proponente em situação IRREGULAR no Ministério da Cultura"; } } else { $arrResultado['regularidadeproponente']['erro'] = false; $arrResultado['regularidadeproponente']['msg'] = "Proponente em situação REGULAR no Ministério da Cultura"; } //DADOS GERAIS DA PROPOSTA if (!empty($rsPreProjeto)) { if (trim($rsPreProjeto->Objetivos) == "" || trim($rsPreProjeto->Justificativa) == "" || trim($rsPreProjeto->Acessibilidade) == "" || trim($rsPreProjeto->DemocratizacaoDeAcesso) == "" || trim($rsPreProjeto->EtapaDeTrabalho) == "" || trim($rsPreProjeto->FichaTecnica) == "" || trim($rsPreProjeto->Sinopse) == "" || trim($rsPreProjeto->ImpactoAmbiental) == "" || trim($rsPreProjeto->EspecificacaoTecnica) == "") { $arrResultado['erro'] = true; $arrResultado['dadosgeraisproposta']['erro'] = true; $arrResultado['dadosgeraisproposta']['msg'] = "Dados gerais da proposta pendente. Os campos Objetivos, Justificativa, Acessibilidade, Democratização de Acesso, Etapas de Trabalho, Ficha Técnica, Sinopse da obra, Impacto Ambiental e Especificação técnicas do produto, são de preenchimento obrigatório."; } else { $arrResultado['dadosgeraisproposta']['erro'] = false; $arrResultado['dadosgeraisproposta']['msg'] = "Dados gerais da proposta"; } } else { $arrResultado['erro'] = true; $arrResultado['dadosgeraisproposta']['erro'] = true; $arrResultado['dadosgeraisproposta']['msg'] = "Dados gerais da proposta pendente. Os campos Objetivos, Justificativa, Acessibilidade, Democratização de Acesso, Etapas de Trabalho, Ficha Técnica, Sinopse da obra, Impacto Ambiental e Especificação técnicas do produto, são de preenchimento obrigatório."; } //E-MAIL $blnEmail = false; if (count($dadosEmail) > 0) { foreach ($dadosEmail as $email) { if ($email->Status == 1) { $blnEmail = true; } } if ($blnEmail === false) { $arrResultado['erro'] = true; $arrResultado['email']['erro'] = true; $arrResultado['email']['msg'] = "E-mail do proponente inexistente"; } else { $arrResultado['email']['erro'] = false; $arrResultado['email']['msg'] = "E-mail do proponente"; } } else { $arrResultado['erro'] = true; $arrResultado['email']['erro'] = true; $arrResultado['email']['msg'] = "E-mail do proponente inexistente"; } //ENDERECO $blnEndCorrespondencia = false; if (count($dadosEndereco) > 0) { foreach ($dadosEndereco as $endereco) { if ($endereco->Status == 1) { $blnEndCorrespondencia = true; } } if ($blnEndCorrespondencia === false) { $arrResultado['erro'] = true; $arrResultado['endereco']['erro'] = true; $arrResultado['endereco']['msg'] = "Dados cadastrais do proponente inexistente ou não há endereço para correspondência selecionado"; } else { $arrResultado['endereco']['erro'] = false; $arrResultado['endereco']['msg'] = "Dados cadastrais do proponente"; } } else { $arrResultado['erro'] = true; $arrResultado['endereco']['erro'] = true; $arrResultado['endereco']['msg'] = "Dados cadastrais do proponente inexistente ou não há endereço para correspondência selecionado"; } //NATUREZA if ($rsProponente->TipoPessoa == 1) { $tblNatureza = new Natureza(); $dadosNatureza = $tblNatureza->buscar(array("idAgente = ?" => $rsPreProjeto->idAgente)); if (count($dadosNatureza) > 0) { $arrResultado['dirigente']['erro'] = false; $arrResultado['dirigente']['msg'] = "Natureza do proponente"; } else { $arrResultado['erro'] = true; $arrResultado['dirigente']['erro'] = true; $arrResultado['dirigente']['msg'] = "Natureza do proponente"; } } //DIRIGENTE if ($rsProponente->TipoPessoa == 1) { if (count($dadosDirigente) > 0) { $arrResultado['dirigente']['erro'] = false; $arrResultado['dirigente']['msg'] = "Cadastro de Dirigente"; } else { $arrResultado['erro'] = true; $arrResultado['dirigente']['erro'] = true; $arrResultado['dirigente']['msg'] = "Cadastro de Dirigente"; } } //LOCAIS DE RALIZACAO if (count($dadosLocais) > 0) { $arrResultado['locaisrealizacao']['erro'] = false; $arrResultado['locaisrealizacao']['msg'] = "Local de realização da proposta"; } else { $arrResultado['erro'] = true; $arrResultado['locaisrealizacao']['erro'] = true; $arrResultado['locaisrealizacao']['msg'] = "O Local de realização da proposta não foi preenchido"; } //PLANO DE DIVULGACAO if (count($dadosPlanoDivulgacao) > 0) { $arrResultado['planodivulgacao']['erro'] = false; $arrResultado['planodivulgacao']['msg'] = "Plano Básico de Divulgação"; $planinhaProposta = new PlanilhaProposta(); $get = Zend_Registry::get('get'); $idProjeto = $get->idPreProjeto; $buscaPlanilhaPropostaDivulgacao = $planinhaProposta->somarPlanilhaPropostaDivulgacao($idProjeto, 109); $buscaPlanilhaProposta = $planinhaProposta->somarPlanilhaProposta($idProjeto, 109); $porcentProposta = $buscaPlanilhaProposta->soma * 0.2; $valorPropostaDivulgacao = $buscaPlanilhaPropostaDivulgacao->soma; if ($valorPropostaDivulgacao > $porcentProposta) { $valorRetirar = $valorPropostaDivulgacao - $porcentProposta; $arrResultado['erro'] = true; $arrResultado['planodivulgacao']['erro'] = true; //$arrResultado['planodivulgacao']['msg'] = "Custo de Divulga��o/Comercializa��o superior a 20% do valor total do projeto"; $arrResultado['planodivulgacao']['msg'] = "Custo de Divulgação/Comercialização superior a 20% do valor total da proposta. Favor readequar os custos em <b>R\$ " . number_format($valorRetirar, '2', ',', '.') . "</b> para enviar a sua proposta ao Minist�rio da Cultura."; } } else { $arrResultado['erro'] = true; $arrResultado['planodivulgacao']['erro'] = true; $arrResultado['planodivulgacao']['msg'] = "O Plano Básico de Divulgação não foi preenchido"; } //PLANO DE DISTRIBUICAO if (count($dadosPlanoDistribuicao) > 0) { $arrResultado['planodistribuicao']['erro'] = false; $arrResultado['planodistribuicao']['msg'] = "Plano Distribuição de Produto"; //PLANILHA POR PRODUTO //inicializando variaveis $arrProdutoPlanilhaOrcamentaria = array(); $arrProdutoPlanilhaCustoAdmin = array(); $arrBuscaPlanilhaOrcamentaria = array(); //para planilhas orcamentarias onde idProduto <> 0 $arrBuscaPlanilhaCustoAdmin = array(); //para planilhas orcamentarias onde idProduto = 0 $qtdeProdutoPrincial = 0; $valorProjeto = 0; //instancia classe modelo PlanilhaProposta $tblPlanilhaProposta = new PlanilhaProposta(); foreach ($dadosPlanoDistribuicao as $produto) { //=========== PLANILHA ORCAMENTARIA =============== $idProduto = $produto['idProduto']; $arrBuscaPlanilhaOrcamentaria['idProjeto = ?'] = $idPreProjeto; $arrBuscaPlanilhaOrcamentaria['idProduto = ?'] = $idProduto; //$arrBuscaPlanilhaOrcamentaria['idEtapa <> ?']=4; $planilhaOrcamentaria = $tblPlanilhaProposta->buscar($arrBuscaPlanilhaOrcamentaria); //$planilha = PlanilhaPropostaDAO::buscarPlanilhaPorProjetoProduto($idPreProjeto, $idProduto); if (count($planilhaOrcamentaria) > 0) { $arrProdutoPlanilhaOrcamentaria['CONTEM'][] = $idProduto; //realiza calculo para encontrar valor do projeto for ($i = 0; $i < sizeof($planilhaOrcamentaria); $i++) { $valorProjeto += $planilhaOrcamentaria[$i]->Quantidade * $planilhaOrcamentaria[$i]->Ocorrencia * $planilhaOrcamentaria[$i]->ValorUnitario; } } else { $arrProdutoPlanilhaOrcamentaria['NAO_CONTEM'][] = $idProduto; } //=========== PRODUTO PRINCIPAL ========== if ($produto['stPrincipal'] == 1) { $qtdeProdutoPrincial++; } } //fecha FOREACH de Plano Distribuicao if (!empty($arrProdutoPlanilhaOrcamentaria['NAO_CONTEM'])) { $arrResultado['erro'] = true; $arrResultado['planilhaproduto']['erro'] = true; $arrResultado['planilhaproduto']['msg'] = "Existe produto cadastrado sem a respectiva planilha orçamentária lançada"; } //=========== PLANILHA CUSTO ADMINISTRATIVO ========== $arrBuscaPlanilhaCustoAdmin['idProjeto = ?'] = $idPreProjeto; $arrBuscaPlanilhaCustoAdmin['idProduto = ?'] = 0; //planilha de custo admin. não tem produto $arrBuscaPlanilhaCustoAdmin['idEtapa = ?'] = 4; //etapa 4 = Custo/Adminitrativo $planilhaCustoAdmin = $tblPlanilhaProposta->buscar($arrBuscaPlanilhaCustoAdmin); $valorCustoAdmin = 0; if (count($planilhaCustoAdmin) > 0) { $arrResultado['planilhacustoadmin']['erro'] = false; $arrResultado['planilhacustoadmin']['msg'] = "Planilha de custos administrativos lançada"; //realiza calculo para encontrar custo administrativo do projeto for ($i = 0; $i < sizeof($planilhaCustoAdmin); $i++) { $valorCustoAdmin += $planilhaCustoAdmin[$i]->Quantidade * $planilhaCustoAdmin[$i]->Ocorrencia * $planilhaCustoAdmin[$i]->ValorUnitario; } } else { $arrResultado['erro'] = true; $arrResultado['planilhacustoadmin']['erro'] = true; $arrResultado['planilhacustoadmin']['msg'] = "A planilha de custos administrativos da proposta não está lançada"; } //calcula percentual do custo administrativo $quinzecentoprojeto = $valorProjeto * 0.15; /* if ($valorProjeto > 0) { $percentual = $valorCustoAdmin / $valorProjeto * 100; } else { $percentual = 100; } */ //if ($percentual > 15) { if ($valorCustoAdmin > $quinzecentoprojeto) { $valorRetirarCustoAdm = $valorCustoAdmin - $quinzecentoprojeto; $arrResultado['erro'] = true; $arrResultado['percentualcustoadmin']['erro'] = true; $arrResultado['percentualcustoadmin']['msg'] = "Custo administrativo superior a 15% do valor total da proposta. Favor readequar os custos em <b>R\$ " . number_format($valorRetirarCustoAdm, '2', ',', '.') . "</b> para enviar a sua proposta ao Minist�rio da Cultura."; } if ($qtdeProdutoPrincial <= 0) { $arrResultado['erro'] = true; $arrResultado['produtoprincipal']['erro'] = true; $arrResultado['produtoprincipal']['msg'] = "Não há produto principal selecionado na proposta"; } elseif ($qtdeProdutoPrincial > 1) { $arrResultado['erro'] = true; $arrResultado['produtoprincipal']['erro'] = true; $arrResultado['produtoprincipal']['msg'] = "Só poderá haver um produto principal em cada proposta, a sua está com mais de um produto"; } else { $arrResultado['produtoprincipal']['erro'] = false; $arrResultado['produtoprincipal']['msg'] = "Produto principal"; } } else { $arrResultado['erro'] = true; $arrResultado['planodistribuicao']['erro'] = true; $arrResultado['planodistribuicao']['msg'] = "O Plano Distribuição de Produto não foi preenchido"; } } else { $arrResultado['erro'] = true; $arrResultado['proponente']['erro'] = true; $arrResultado['proponente']['msg'] = "Dados cadastrais do proponente inexistente ou não há endereço para correspondência selecionado"; } //=========== PLANO ANUAL========== if ($rsPreProjeto->stPlanoAnual != 0) { $ano_envio = date("Y"); $ano_execucao = explode('/', data::formatarDataMssql($rsPreProjeto->DtInicioDeExecucao)); $ano_execucao = $ano_execucao[2]; $data_validacao = (int) date("Y") . '0930'; if ($data_validacao <= date('Ymd') && $ano_envio >= $ano_execucao) { $arrResultado['erro'] = true; $arrResultado['planoanual']['erro'] = true; $arrResultado['planoanual']['msg'] = "De acordo com a súmula 10, projetos de plano anual só poderão ser enviados até 30 de setembro do ano vigente, e o período de execução deverá ser do ano seguinte a data de envio."; } else { $arrResultado['planoanual']['erro'] = false; $arrResultado['planoanual']['msg'] = "Plano Anual"; } } return $arrResultado; }
public function validarEnvioPropostaAoMinc($idPreProjeto) { //BUSCA DADOS DO PROJETO $arrBusca = array(); $arrBusca['idPreProjeto = ?'] = $idPreProjeto; $tblPreProjeto = new PreProjeto(); $rsPreProjeto = $tblPreProjeto->buscar($arrBusca)->current(); /* ======== VERIFICA TODAS AS INFORMACOES NECESSARIAS AO ENVIO DA PROPOSTA ======= */ $arrResultado = array(); $arrResultado['erro'] = false; //valida mes de envio da proposta /* if(date("m") == "01" || date("m") == "12"){ $arrResultado['prazoenvioproposta']['erro'] = true; $arrResultado['prazoenvioproposta']['msg'] = "Conforme Art 5º da Instrução Normativa nº 1, de 5 de outubro de 2010, nenhuma proposta poderá ser enviada ao MinC nos meses de DEZEMBRO e JANEIRO! - <font color='red'>PENDENTE</font>"; return $arrResultado; } */ /* * ******* MOVIMENTACAO ******** */ $tblMovimentacao = new Movimentacao(); $rsMovimentacao = $tblMovimentacao->buscar(array("idProjeto = ?" => $idPreProjeto), array("idMovimentacao DESC"))->current(); if (count($rsMovimentacao) > 0) { if ($rsMovimentacao->Movimentacao != 95) { $arrResultado['erro'] = true; $arrResultado['movimentacao']['erro'] = false; $arrResultado['movimentacao']['msg'] = "A Proposta Cultural encontra-se no Ministério da Cultura"; } } /* * ******* DADOS DO PROPONENTE ******** */ $tblProponente = new Proponente(); //$rsProponente = $tblProponente->buscar(array("a.idAgente = ?"=>$rsPreProjeto->idAgente))->current(); $tblAgente = new Agentes(); $rsProponente = $tblAgente->buscarAgenteNome(array("a.idAgente = ?" => $rsPreProjeto->idAgente))->current(); $regularidade = Regularidade::buscarSalic($rsProponente->CNPJCPF); $dadosEndereco = EnderecoNacionalDAO::buscarEnderecoNacional($rsPreProjeto->idAgente); $dadosEmail = Email::buscar($rsPreProjeto->idAgente); $dadosDirigente = ManterAgentesDAO::buscarVinculados(null, null, null, null, $rsPreProjeto->idAgente); //$dadosDirigente = ManterAgentes::buscaDirigentes($rsProponente->CNPJCPF); $tblLocaisRealizacao = new Abrangencia(); $dadosLocais = $tblLocaisRealizacao->buscar(array("a.idProjeto" => $idPreProjeto, "a.stAbrangencia" => 1)); if (count($rsProponente) > 0) { //VERIFICA SE O PROPONENTE ESTÁ VINCULADO $vinculoProponente = new tbVinculoPropostaResponsavelProjeto(); $whereProp['VP.idPreProjeto = ?'] = $idPreProjeto; $whereProp['VP.siVinculoProposta = ?'] = 2; $rsVinculo = $vinculoProponente->buscarResponsaveisProponentes($whereProp); if ($rsVinculo[0]->siVinculo == 2) { $arrResultado['erro'] = false; $arrResultado['vinculoproponente']['erro'] = false; $arrResultado['vinculoproponente']['msg'] = "Vinculo do Proponente REGULAR"; } else { $arrResultado['erro'] = true; $arrResultado['vinculoproponente']['erro'] = true; $arrResultado['vinculoproponente']['msg'] = "Vinculo do Proponente IRREGULAR"; } //REGULARIDADE DO PROPONENTE if (count($regularidade) > 0) { if ($regularidade[0]->Habilitado == "S") { $arrResultado['regularidadeproponente']['erro'] = false; $arrResultado['regularidadeproponente']['msg'] = "Proponente em situação REGULAR no Ministério da Cultura - <font color='green'>OK</font>"; } else { $arrResultado['erro'] = true; $arrResultado['regularidadeproponente']['erro'] = true; $arrResultado['regularidadeproponente']['msg'] = "Proponente em situação IRREGULAR no Ministério da Cultura - <font color='red'>PENDENTE</font>"; } } else { $arrResultado['regularidadeproponente']['erro'] = false; $arrResultado['regularidadeproponente']['msg'] = "Proponente em situação REGULAR no Ministério da Cultura - <font color='green'>OK</font>"; } //E-MAIL $blnEmail = false; if (count($dadosEmail) > 0) { foreach ($dadosEmail as $email) { if ($email->Status == 1) { $blnEmail = true; } } if ($blnEmail === false) { $arrResultado['erro'] = true; $arrResultado['email']['erro'] = true; $arrResultado['email']['msg'] = "E-mail do proponente inexistente - <font color='red'>PENDENTE</font>"; } else { $arrResultado['email']['erro'] = false; $arrResultado['email']['msg'] = "E-mail do proponente - <font color='green'>OK</font>"; } } else { $arrResultado['erro'] = true; $arrResultado['email']['erro'] = true; $arrResultado['email']['msg'] = "E-mail do proponente inexistente - <font color='red'>PENDENTE</font>"; } //ENDERECO $blnEndCorrespondencia = false; if (count($dadosEndereco) > 0) { foreach ($dadosEndereco as $endereco) { if ($endereco->Status == 1) { $blnEndCorrespondencia = true; } } if ($blnEndCorrespondencia === false) { $arrResultado['erro'] = true; $arrResultado['endereco']['erro'] = true; $arrResultado['endereco']['msg'] = "Dados cadastrais do proponente inexistente ou não há endereço para correspondência selecionado"; } else { $arrResultado['endereco']['erro'] = false; $arrResultado['endereco']['msg'] = "Dados cadastrais do proponente - <font color='green'>OK</font>"; } } else { $arrResultado['erro'] = true; $arrResultado['endereco']['erro'] = true; $arrResultado['endereco']['msg'] = "Dados cadastrais do proponente inexistente ou não há endereço para correspondência selecionado"; } //NATUREZA if ($rsProponente->TipoPessoa == 1) { $tblNatureza = new Natureza(); $dadosNatureza = $tblNatureza->buscar(array("idAgente = ?" => $rsPreProjeto->idAgente)); if (count($dadosNatureza) > 0) { $arrResultado['dirigente']['erro'] = false; $arrResultado['dirigente']['msg'] = "Natureza do proponente - <font color='green'>OK</font>"; } else { $arrResultado['erro'] = true; $arrResultado['dirigente']['erro'] = true; $arrResultado['dirigente']['msg'] = "Natureza do proponente - <font color='red'>PENDENTE</font>"; } } //DIRIGENTE if ($rsProponente->TipoPessoa == 1) { if (count($dadosDirigente) > 0) { $arrResultado['dirigente']['erro'] = false; $arrResultado['dirigente']['msg'] = "Cadastro de Dirigente - <font color='green'>OK</font>"; } else { $arrResultado['erro'] = true; $arrResultado['dirigente']['erro'] = true; $arrResultado['dirigente']['msg'] = "Cadastro de Dirigente - <font color='red'>PENDENTE</font>"; } } //LOCAIS DE RALIZACAO if (count($dadosLocais) > 0) { $arrResultado['locaisrealizacao']['erro'] = false; $arrResultado['locaisrealizacao']['msg'] = "Local de realização da proposta - <font color='green'>OK</font>"; } else { $arrResultado['erro'] = true; $arrResultado['locaisrealizacao']['erro'] = true; $arrResultado['locaisrealizacao']['msg'] = "O Local de realização da proposta não foi preenchido - <font color='red'>PENDENTE</font>"; } } else { $arrResultado['erro'] = true; $arrResultado['proponente']['erro'] = true; $arrResultado['proponente']['msg'] = "Dados cadastrais do proponente inexistente ou não há endereço para correspondência selecionado"; } return $arrResultado; }
public function painelcontroletecnicofiscalizacaoAction() { $auth = Zend_Auth::getInstance(); // instancia da autenticação $idUsuario = $auth->getIdentity()->usu_codigo; $usuarios = new Usuario(); $agente = $usuarios->getIdUsuario($idUsuario); $idAgente = $agente->idAgente; $aprovacaoDao = new Aprovacao(); $selectAp = $aprovacaoDao->totalAprovadoProjeto(true); $abrangenciaDao = new Abrangencia(); $selectAb = $abrangenciaDao->abrangenciaProjeto(true); $projetosDao = new Projetos(); $resp = $projetosDao->buscaProjetosFiscalizacao($selectAb, $selectAp, false, false, array('tbFiscalizacao.idUsuarioInterno = ?' => $idUsuario)); $this->view->projetosFiscalizacao = array(array('nome' => 'FISCALIZAÇÃO EM ANDAMENTO', 'qtd' => 0, 'projetos' => array()), array('nome' => 'FISCALIZAÇÃO EM ATRASO', 'qtd' => 0, 'projetos' => array())); $idFiscalizacaoAnt = null; foreach ($resp as $key => $val) { if ($idFiscalizacaoAnt != $val->idFiscalizacao) { if ($val->stAvaliacao == 0) { $idFiscalizacaoAnt = $val->idFiscalizacao; if ($val->stFiscalizacaoProjeto == 0 && date('Ymd', strtotime($val->dtFimFiscalizacaoProjeto)) >= date('Ymd')) { $num = 0; } elseif ($val->stFiscalizacaoProjeto == 2) { $num = 2; } elseif (date('Ymd', strtotime($val->dtFimFiscalizacaoProjeto)) < date('Ymd') || $val->stFiscalizacaoProjeto == 1) { $num = 1; } $this->view->projetosFiscalizacao[$num]['qtd']++; $this->view->projetosFiscalizacao[$num]['projetos'][$val->IdPRONAC][' '] = $this->view->projetosFiscalizacao[$num]['qtd']; $this->view->projetosFiscalizacao[$num]['projetos'][$val->IdPRONAC]['PRONAC'] = "<a target='_blank' href='" . $this->url(array('controller' => 'consultardadosprojeto', 'action' => 'index')) . "?idPronac=" . $val->IdPRONAC . "' >" . $val->AnoProjeto . $val->Sequencial . "</a>"; $this->view->projetosFiscalizacao[$num]['projetos'][$val->IdPRONAC]['Nome do Projeto'] = $val->NomeProjeto; $this->view->projetosFiscalizacao[$num]['projetos'][$val->IdPRONAC]['Região'] = $val->Regiao; $this->view->projetosFiscalizacao[$num]['projetos'][$val->IdPRONAC]['UF'] = $val->uf; $this->view->projetosFiscalizacao[$num]['projetos'][$val->IdPRONAC]['Cidade'] = $val->cidade; $this->view->projetosFiscalizacao[$num]['projetos'][$val->IdPRONAC]['Área'] = $val->dsArea; $this->view->projetosFiscalizacao[$num]['projetos'][$val->IdPRONAC]['Segmento'] = $val->dsSegmento; $this->view->projetosFiscalizacao[$num]['projetos'][$val->IdPRONAC]['Valor'] = number_format($val->TotalAprovado, 2, ',', '.'); $this->view->projetosFiscalizacao[$num]['projetos'][$val->IdPRONAC]['Mecanismo'] = $val->dsMecanismo; if ($val->stPlanoAnual == 0) { $this->view->projetosFiscalizacao[$num]['projetos'][$val->IdPRONAC]['Plano Anual'] = 'Não'; } else { $this->view->projetosFiscalizacao[$num]['projetos'][$val->IdPRONAC]['Plano Anual'] = 'Sim'; } $this->view->projetosFiscalizacao[$num]['projetos'][$val->IdPRONAC]['Data Inicio'] = date('d/m/Y', strtotime($val->dtInicioFiscalizacaoProjeto)); $this->view->projetosFiscalizacao[$num]['projetos'][$val->IdPRONAC]['Data Fim'] = date('d/m/Y', strtotime($val->dtFimFiscalizacaoProjeto)); $fiscalizarHref = $this->url(array('controller' => 'fiscalizarprojetocultural', 'action' => 'parecerdotecnico')) . '?idProjeto=' . $val->idProjeto . '&idFiscalizacao=' . $val->idFiscalizacao; if ($val->stFiscalizacaoProjeto == 1 and date('Ymd', strtotime($val->dtFimFiscalizacaoProjeto)) >= date('Ymd')) { if ($val->stAvaliacao == 1) { $this->view->projetosFiscalizacao[$num]['projetos'][$val->IdPRONAC]['Fiscalizar'] = ''; } else { $this->view->projetosFiscalizacao[$num]['projetos'][$val->IdPRONAC]['Fiscalizar'] = ' <center><a href="' . $fiscalizarHref . '"> <img src="../public/img/btn_busca.gif" alt="Fiscalizar"/> </a></center>'; } } elseif ($val->stFiscalizacaoProjeto != 2 and date('Ymd', strtotime($val->dtFimFiscalizacaoProjeto)) < date('Ymd')) { if ($val->stAvaliacao == 1) { $this->view->projetosFiscalizacao[$num]['projetos'][$val->IdPRONAC]['Fiscalizar'] = ''; } else { $this->view->projetosFiscalizacao[$num]['projetos'][$val->IdPRONAC]['Fiscalizar'] = ' <center><a href="' . $fiscalizarHref . '"> <img src="../public/img/btn_busca.gif" alt="Fiscalizar"/> </a></center>'; } } } } } }
public function salvarLocalRealizacaoAction() { $post = Zend_Registry::get("post"); $idAbrangencia = $post->cod; $tblAbrangencia = new Abrangencia(); //RECUPERA LOCALIZACOES CADASTRADAS $arrBusca = array(); $arrBusca['idProjeto'] = $this->idPreProjeto; $arrBusca['stAbrangencia'] = 1; $arrBusca['p.idPais'] = $post->pais; if ($post->pais == 31) { $arrBusca['u.idUF'] = $post->estados; $arrBusca['m.idMunicipioIBGE'] = $post->cidades; } if (!empty($idAbrangencia)) { $arrBusca['idAbrangencia'] = $idAbrangencia; } $rsAbrangencia = $tblAbrangencia->buscar($arrBusca); if (count($rsAbrangencia) > 0 && empty($idAbrangencia)) { parent::message("Local de Realização já cadastrado!", "/localderealizacao/index?idPreProjeto=" . $this->idPreProjeto . $edital, "ALERT"); } if (isset($_REQUEST['edital'])) { $edital = "&edital=s"; } else { $edital = ""; } $pais = $post->pais; $estados = $post->estados; $cidades = $post->cidades; //INSERE LOCAIS DE REALIZACAO (tabela SAC.dbo.Abrangencia) $dados = array("idProjeto" => $this->idPreProjeto, "stAbrangencia" => 1, "Usuario" => $this->usuarioLogado, "idPais" => $pais, "idUF" => $pais == 31 ? $estados : 0, "idMunicipioIBGE" => $pais == 31 ? $cidades : 0); if (!empty($dados["idProjeto"]) && !empty($dados["idPais"])) { $retorno = $tblAbrangencia->insert($dados); } parent::message("Cadastro realizado com sucesso!", "/localderealizacao/index?idPreProjeto=" . $this->idPreProjeto . $edital, "CONFIRM"); }
public function excluirAbrangenciaAjaxAction() { $this->_helper->layout->disableLayout(); // desabilita o Zend_Layout $post = Zend_Registry::get('post'); $idAbrangencia = (int) $post->abrg; $tblAbrangencia = new Abrangencia(); if ($tblAbrangencia->excluir($idAbrangencia)) { echo json_encode(array('resposta' => true)); } else { echo json_encode(array('resposta' => false)); } die; }
public function validarEnvioPropostaAoMinc($idPreProjeto) { //BUSCA DADOS DO PROJETO $arrBusca = array(); $arrBusca['idPreProjeto = ?'] = $idPreProjeto; $tblPreProjeto = new PreProjeto(); $rsPreProjeto = $tblPreProjeto->buscar($arrBusca)->current(); /* ======== VERIFICA TODAS AS INFORMACOES NECESSARIAS AO ENVIO DA PROPOSTA ======= */ $arrResultado = array(); $arrResultado['erro'] = false; //valida mes de envio da proposta /* if(date("m") == "01" || date("m") == "12"){ $arrResultado['prazoenvioproposta']['erro'] = true; $arrResultado['prazoenvioproposta']['msg'] = "Conforme Art 5? da Instruç?o Normativa n? 1, de 5 de outubro de 2010, nenhuma proposta poderá ser enviada ao MinC nos meses de DEZEMBRO e JANEIRO!"; return $arrResultado; } */ /* * ******* MOVIMENTACAO ******** */ //VERIFICA SE A PROPOSTA ESTA COM O MINC $Movimentacao = new Movimentacao(); $rsMovimentacao = $Movimentacao->buscarStatusAtualProposta($idPreProjeto); if ($rsMovimentacao->Movimentacao != 95) { $arrResultado['erro'] = true; $arrResultado['movimentacao']['erro'] = false; $arrResultado['movimentacao']['msg'] = "A Proposta Cultural encontra-se no Ministério da Cultura"; } else { /* $arrResultado['erro'] = true; $arrResultado['movimentacao']['erro'] = false; $arrResultado['movimentacao']['msg'] = "A Proposta Cultural encontra-se no Ministério da Cultura"; */ } /* * ******* DADOS DO PROPONENTE ******** */ $tblProponente = new Proponente(); //$rsProponente = $tblProponente->buscar(array("a.idAgente = ?"=>$rsPreProjeto->idAgente))->current(); $tblAgente = new Agentes(); $rsProponente = $tblAgente->buscarAgenteNome(array("a.idAgente = ?" => $rsPreProjeto->idAgente))->current(); $regularidade = Regularidade::buscarSalic($rsProponente->CNPJCPF); $dadosEndereco = EnderecoNacionalDAO::buscarEnderecoNacional($rsPreProjeto->idAgente); $dadosEmail = Email::buscar($rsPreProjeto->idAgente); $dadosDirigente = ManterAgentesDAO::buscarVinculados(null, null, null, null, $rsPreProjeto->idAgente); //$dadosDirigente = ManterAgentes::buscaDirigentes($rsProponente->CNPJCPF); $tblLocaisRealizacao = new Abrangencia(); $dadosLocais = $tblLocaisRealizacao->buscar(array("a.idProjeto" => $idPreProjeto, "a.stAbrangencia" => 1)); $tblPlanoDivulgacao = new PlanoDeDivulgacao(); $dadosPlanoDivulgacao = $tblPlanoDivulgacao->buscar(array("idProjeto =?" => $idPreProjeto))->toArray(); $tblPlanoDistribuicao = new PlanoDistribuicao(); $dadosPlanoDistribuicao = $tblPlanoDistribuicao->buscar(array("a.idProjeto =?" => $idPreProjeto), array("idProduto ASC"))->toArray(); if (count($rsProponente) > 0) { //REGULARIDADE DO PROPONENTE if (count($regularidade) > 0) { if ($regularidade[0]->Habilitado == "S") { $arrResultado['regularidadeproponente']['erro'] = false; $arrResultado['regularidadeproponente']['msg'] = "Proponente em situação REGULAR no Ministério da Cultura"; } else { $arrResultado['erro'] = true; $arrResultado['regularidadeproponente']['erro'] = true; $arrResultado['regularidadeproponente']['msg'] = "Proponente em situação IRREGULAR no Ministério da Cultura"; } } else { $arrResultado['regularidadeproponente']['erro'] = false; $arrResultado['regularidadeproponente']['msg'] = "Proponente em situação REGULAR no Ministério da Cultura"; } //E-MAIL $blnEmail = false; if (count($dadosEmail) > 0) { foreach ($dadosEmail as $email) { if ($email->Status == 1) { $blnEmail = true; } } if ($blnEmail === false) { $arrResultado['erro'] = true; $arrResultado['email']['erro'] = true; $arrResultado['email']['msg'] = "E-mail do proponente inexistente"; } else { $arrResultado['email']['erro'] = false; $arrResultado['email']['msg'] = "E-mail do proponente"; } } else { $arrResultado['erro'] = true; $arrResultado['email']['erro'] = true; $arrResultado['email']['msg'] = "E-mail do proponente inexistente"; } //ENDERECO $blnEndCorrespondencia = false; if (count($dadosEndereco) > 0) { foreach ($dadosEndereco as $endereco) { if ($endereco->Status == 1) { $blnEndCorrespondencia = true; } } if ($blnEndCorrespondencia === false) { $arrResultado['erro'] = true; $arrResultado['endereco']['erro'] = true; $arrResultado['endereco']['msg'] = "Dados cadastrais do proponente inexistente ou não há endereço para correspondência selecionado"; } else { $arrResultado['endereco']['erro'] = false; $arrResultado['endereco']['msg'] = "Dados cadastrais do proponente"; } } else { $arrResultado['erro'] = true; $arrResultado['endereco']['erro'] = true; $arrResultado['endereco']['msg'] = "Dados cadastrais do proponente inexistente ou não há endereço para correspondência selecionado"; } //NATUREZA if ($rsProponente->TipoPessoa == 1) { $tblNatureza = new Natureza(); $dadosNatureza = $tblNatureza->buscar(array("idAgente = ?" => $rsPreProjeto->idAgente)); if (count($dadosNatureza) > 0) { $arrResultado['dirigente']['erro'] = false; $arrResultado['dirigente']['msg'] = "Natureza do proponente"; } else { $arrResultado['erro'] = true; $arrResultado['dirigente']['erro'] = true; $arrResultado['dirigente']['msg'] = "Natureza do proponente"; } } //DIRIGENTE if ($rsProponente->TipoPessoa == 1) { if (count($dadosDirigente) > 0) { $arrResultado['dirigente']['erro'] = false; $arrResultado['dirigente']['msg'] = "Cadastro de Dirigente"; } else { $arrResultado['erro'] = true; $arrResultado['dirigente']['erro'] = true; $arrResultado['dirigente']['msg'] = "Cadastro de Dirigente"; } } //LOCAIS DE RALIZACAO if (count($dadosLocais) > 0) { $arrResultado['locaisrealizacao']['erro'] = false; $arrResultado['locaisrealizacao']['msg'] = "Local de realização da proposta"; } else { $arrResultado['erro'] = true; $arrResultado['locaisrealizacao']['erro'] = true; $arrResultado['locaisrealizacao']['msg'] = "O Local de realização da proposta não foi preenchido"; } //PLANO DE DIVULGACAO if (count($dadosPlanoDivulgacao) > 0) { $arrResultado['planodivulgacao']['erro'] = false; $arrResultado['planodivulgacao']['msg'] = "Plano Básico de Divulgação"; } else { $arrResultado['erro'] = true; $arrResultado['planodivulgacao']['erro'] = true; $arrResultado['planodivulgacao']['msg'] = "O Plano Básico de Divulgação não foi preenchido"; } //PLANO DE DISTRIBUICAO if (count($dadosPlanoDistribuicao) > 0) { $arrResultado['planodistribuicao']['erro'] = false; $arrResultado['planodistribuicao']['msg'] = "Plano Distribuição de Produto"; //PLANILHA POR PRODUTO //inicializando variaveis $arrProdutoPlanilhaOrcamentaria = array(); $arrProdutoPlanilhaCustoAdmin = array(); $arrBuscaPlanilhaOrcamentaria = array(); //para planilhas orcamentarias onde idProduto <> 0 $arrBuscaPlanilhaCustoAdmin = array(); //para planilhas orcamentarias onde idProduto = 0 $qtdeProdutoPrincial = 0; $valorProjeto = 0; //instancia classe modelo PlanilhaProposta $tblPlanilhaProposta = new PlanilhaProposta(); foreach ($dadosPlanoDistribuicao as $produto) { //=========== PLANILHA ORCAMENTARIA =============== $idProduto = $produto['idProduto']; $arrBuscaPlanilhaOrcamentaria['idProjeto = ?'] = $idPreProjeto; $arrBuscaPlanilhaOrcamentaria['idProduto = ?'] = $idProduto; //$arrBuscaPlanilhaOrcamentaria['idEtapa <> ?']=4; $planilhaOrcamentaria = $tblPlanilhaProposta->buscar($arrBuscaPlanilhaOrcamentaria); //$planilha = PlanilhaPropostaDAO::buscarPlanilhaPorProjetoProduto($idPreProjeto, $idProduto); if (count($planilhaOrcamentaria) > 0) { $arrProdutoPlanilhaOrcamentaria['CONTEM'][] = $idProduto; //realiza calculo para encontrar valor do projeto for ($i = 0; $i < sizeof($planilhaOrcamentaria); $i++) { $valorProjeto += $planilhaOrcamentaria[$i]->Quantidade * $planilhaOrcamentaria[$i]->Ocorrencia * $planilhaOrcamentaria[$i]->ValorUnitario; } } else { $arrProdutoPlanilhaOrcamentaria['NAO_CONTEM'][] = $idProduto; } //=========== PRODUTO PRINCIPAL ========== if ($produto['stPrincipal'] == 1) { $qtdeProdutoPrincial++; } } //fecha FOREACH de Plano Distribuicao if (!empty($arrProdutoPlanilhaOrcamentaria['NAO_CONTEM'])) { $arrResultado['erro'] = true; $arrResultado['planilhaproduto']['erro'] = true; $arrResultado['planilhaproduto']['msg'] = "Existe produto cadastrado sem a respectiva planilha orçamentária lançada"; } //=========== PLANILHA CUSTO ADMINISTRATIVO ========== $arrBuscaPlanilhaCustoAdmin['idProjeto = ?'] = $idPreProjeto; $arrBuscaPlanilhaCustoAdmin['idProduto = ?'] = 0; //planilha de custo admin. não tem produto $arrBuscaPlanilhaCustoAdmin['idEtapa = ?'] = 4; //etapa 4 = Custo/Adminitrativo $planilhaCustoAdmin = $tblPlanilhaProposta->buscar($arrBuscaPlanilhaCustoAdmin); $valorCustoAdmin = 0; if (count($planilhaCustoAdmin) > 0) { $arrResultado['planilhacustoadmin']['erro'] = false; $arrResultado['planilhacustoadmin']['msg'] = "Planilha de custos administrativos lançada"; //realiza calculo para encontrar custo administrativo do projeto for ($i = 0; $i < sizeof($planilhaCustoAdmin); $i++) { $valorCustoAdmin += $planilhaCustoAdmin[$i]->Quantidade * $planilhaCustoAdmin[$i]->Ocorrencia * $planilhaCustoAdmin[$i]->ValorUnitario; } } else { $arrResultado['erro'] = true; $arrResultado['planilhacustoadmin']['erro'] = true; $arrResultado['planilhacustoadmin']['msg'] = "A planilha de custos administrativos do projeto não está lançada"; } //calcula percentual do custo administrativo if ($valorProjeto > 0) { $percentual = $valorCustoAdmin / $valorProjeto * 100; } else { $percentual = 100; } if ($percentual > 15) { $arrResultado['erro'] = true; $arrResultado['percentualcustoadmin']['erro'] = true; $arrResultado['percentualcustoadmin']['msg'] = "Custo administrativo superior a 15% do valor total do projeto"; } else { $arrResultado['percentualcustoadmin']['erro'] = false; $arrResultado['percentualcustoadmin']['msg'] = "Custo administrativo inferior a 15% do valor total do projeto"; } if ($qtdeProdutoPrincial <= 0) { $arrResultado['erro'] = true; $arrResultado['produtoprincipal']['erro'] = true; $arrResultado['produtoprincipal']['msg'] = "Não há produto principal selecionado na proposta"; } elseif ($qtdeProdutoPrincial > 1) { $arrResultado['erro'] = true; $arrResultado['produtoprincipal']['erro'] = true; $arrResultado['produtoprincipal']['msg'] = "Só poderá haver um produto principal em cada proposta, a sua está com mais de um produto"; } else { $arrResultado['produtoprincipal']['erro'] = false; $arrResultado['produtoprincipal']['msg'] = "Produto principal"; } } else { $arrResultado['erro'] = true; $arrResultado['planodistribuicao']['erro'] = true; $arrResultado['planodistribuicao']['msg'] = "O Plano Distribuição de Produto não foi preenchido"; } } else { $arrResultado['erro'] = true; $arrResultado['proponente']['erro'] = true; $arrResultado['proponente']['msg'] = "Dados cadastrais do proponente inexistente ou não há endereço para correspondência selecionado"; } return $arrResultado; }
public function encaminharReadequacaoChecklistAction() { if ($this->idPerfil != 93 && $this->idPerfil != 94 && $this->idPerfil != 121 && $this->idPerfil != 122 && $this->idPerfil != 123) { parent::message("Você não tem permissão para acessar essa área do sistema!", "principal", "ALERT"); } $auth = Zend_Auth::getInstance(); $idCoordenador = $auth->getIdentity()->usu_codigo; $get = Zend_Registry::get('get'); $idReadequacao = (int) $get->id; $reuniao = new Reuniao(); $raberta = $reuniao->buscarReuniaoAberta(); $idNrReuniao = $raberta['stPlenaria'] == 'A' ? $raberta['idNrReuniao'] + 1 : $raberta['idNrReuniao']; $tbReadequacaoXParecer = new tbReadequacaoXParecer(); $dadosParecer = $tbReadequacaoXParecer->buscar(array('idReadequacao=?' => $idReadequacao)); foreach ($dadosParecer as $key => $dp) { $pareceres = array(); $pareceres[$key] = $dp->idParecer; } $Parecer = new Parecer(); $parecerTecnico = $Parecer->buscar(array('IdParecer=(?)' => $pareceres), array('IdParecer'))->current(); $tbReadequacao = new tbReadequacao(); if ($parecerTecnico->ParecerFavoravel == 2) { //Se for parecer favorável, atualiza os dados solicitados na readequação $read = $tbReadequacao->buscarReadequacao(array('idReadequacao =?' => $idReadequacao))->current(); // READEQUAÇÃO DE PLANILHA ORÇAMENTÁRIA if ($read->idTipoReadequacao == 2) { $Projetos = new Projetos(); $dadosPrj = $Projetos->find(array('IdPRONAC=?' => $read->idPronac))->current(); $tbPlanilhaAprovacao = new tbPlanilhaAprovacao(); //BUSCAR VALOR TOTAL DA PLANILHA ATIVA $where = array(); $where['a.IdPRONAC = ?'] = $read->idPronac; $where['a.stAtivo = ?'] = 'S'; $PlanilhaAtiva = $tbPlanilhaAprovacao->valorTotalPlanilha($where)->current(); //BUSCAR VALOR TOTAL DA PLANILHA DE READEQUADA $where = array(); $where['a.IdPRONAC = ?'] = $read->idPronac; $where['a.tpPlanilha = ?'] = 'SR'; $where['a.stAtivo = ?'] = 'N'; $PlanilhaReadequada = $tbPlanilhaAprovacao->valorTotalPlanilha($where)->current(); if ($PlanilhaAtiva->Total < $PlanilhaReadequada->Total) { $TipoAprovacao = 2; $dadosPrj->Situacao = 'D28'; } else { $TipoAprovacao = 4; $dadosPrj->Situacao = 'D29'; } $dadosPrj->save(); $AprovadoReal = number_format($PlanilhaReadequada->Total - $PlanilhaAtiva->Total, 2, '.', ''); $tbAprovacao = new Aprovacao(); $dadosAprovacao = array('IdPRONAC' => $read->idPronac, 'AnoProjeto' => $dadosPrj->AnoProjeto, 'Sequencial' => $dadosPrj->Sequencial, 'TipoAprovacao' => $TipoAprovacao, 'DtAprovacao' => new Zend_Db_Expr('GETDATE()'), 'ResumoAprovacao' => 'Parecer favorável para readequação', 'AprovadoReal' => $AprovadoReal, 'Logon' => $this->idUsuario, 'idReadequacao' => $idReadequacao); $idAprovacao = $tbAprovacao->inserir($dadosAprovacao); // READEQUAÇÃO DE ALTERAÇÃO DE RAZÃO SOCIAL } else { if ($read->idTipoReadequacao == 3) { //Se for readequação de alteração de razão social, atualiza os dados na AGENTES.dbo.Nomes. $Projetos = new Projetos(); $dadosPrj = $Projetos->find(array('IdPRONAC=?' => $read->idPronac))->current(); $tbAprovacao = new Aprovacao(); $dadosAprovacao = array('IdPRONAC' => $read->idPronac, 'AnoProjeto' => $dadosPrj->AnoProjeto, 'Sequencial' => $dadosPrj->Sequencial, 'TipoAprovacao' => 8, 'DtAprovacao' => new Zend_Db_Expr('GETDATE()'), 'ResumoAprovacao' => 'Parecer favorável para readequação', 'Logon' => $this->idUsuario, 'idReadequacao' => $idReadequacao); $idAprovacao = $tbAprovacao->inserir($dadosAprovacao); // READEQUAÇÃO DE AGÊNCIA BANCÁRIA } else { if ($read->idTipoReadequacao == 4) { //Se for readequação de agência bancária, atualiza os dados na SAC.dbo.PreProjeto. $Projetos = new Projetos(); $dadosPrj = $Projetos->buscar(array('IdPRONAC=?' => $read->idPronac))->current(); $agenciaBancaria = str_replace('-', '', $read->dsSolicitacao); $tblContaBancaria = new ContaBancaria(); $arrayDadosBancarios = array('Agencia' => $agenciaBancaria, 'ContaBloqueada' => '000000000000', 'DtLoteRemessaCB' => NULL, 'LoteRemessaCB' => '00000', 'OcorrenciaCB' => '000', 'ContaLivre' => '000000000000', 'DtLoteRemessaCL' => NULL, 'LoteRemessaCL' => '00000', 'OcorrenciaCL' => '000', 'Logon' => $this->idUsuario, 'idPronac' => $read->idPronac); $whereDadosBancarios['AnoProjeto = ?'] = $dadosPrj->AnoProjeto; $whereDadosBancarios['Sequencial = ?'] = $dadosPrj->Sequencial; $tblContaBancaria->alterar($arrayDadosBancarios, $whereDadosBancarios); // READEQUAÇÃO DE SINOPSE DA OBRA } else { if ($read->idTipoReadequacao == 5) { //Se for readequação de sinopse da obra, atualiza os dados na SAC.dbo.PreProjeto. $Projetos = new Projetos(); $dadosPrj = $Projetos->buscar(array('IdPRONAC=?' => $read->idPronac))->current(); $PrePropojeto = new PreProjeto(); $dadosPreProjeto = $PrePropojeto->find(array('idPreProjeto=?' => $dadosPrj->idProjeto))->current(); $dadosPreProjeto->Sinopse = $read->dsSolicitacao; $dadosPreProjeto->save(); // READEQUAÇÃO DE IMPACTO AMBIENTAL } else { if ($read->idTipoReadequacao == 6) { //Se for readequação de impacto ambiental, atualiza os dados na SAC.dbo.PreProjeto. $Projetos = new Projetos(); $dadosPrj = $Projetos->buscar(array('IdPRONAC=?' => $read->idPronac))->current(); $PrePropojeto = new PreProjeto(); $dadosPreProjeto = $PrePropojeto->find(array('idPreProjeto=?' => $dadosPrj->idProjeto))->current(); $dadosPreProjeto->ImpactoAmbiental = $read->dsSolicitacao; $dadosPreProjeto->save(); // READEQUAÇÃO DE ESPECIFICAÇÃO TÉCNICA } else { if ($read->idTipoReadequacao == 7) { //Se for readequação de especificação técnica, atualiza os dados na SAC.dbo.PreProjeto. $Projetos = new Projetos(); $dadosPrj = $Projetos->buscar(array('IdPRONAC=?' => $read->idPronac))->current(); $PrePropojeto = new PreProjeto(); $dadosPreProjeto = $PrePropojeto->find(array('idPreProjeto=?' => $dadosPrj->idProjeto))->current(); $dadosPreProjeto->EspecificacaoTecnica = $read->dsSolicitacao; $dadosPreProjeto->save(); // READEQUAÇÃO DE ESTRATÉGIA DE EXECUÇÃO } else { if ($read->idTipoReadequacao == 8) { //Se for readequação de estratégia de execução, atualiza os dados na SAC.dbo.PreProjeto. $Projetos = new Projetos(); $dadosPrj = $Projetos->buscar(array('IdPRONAC=?' => $read->idPronac))->current(); $PrePropojeto = new PreProjeto(); $dadosPreProjeto = $PrePropojeto->find(array('idPreProjeto=?' => $dadosPrj->idProjeto))->current(); $dadosPreProjeto->EstrategiadeExecucao = $read->dsSolicitacao; $dadosPreProjeto->save(); // READEQUAÇÃO DE LOCAL DE REALIZAÇÃO } else { if ($read->idTipoReadequacao == 9) { //Se for readequação de local de realização, atualiza os dados na SAC.dbo.Abrangencia. $Abrangencia = new Abrangencia(); $tbAbrangencia = new tbAbrangencia(); $abrangencias = $tbAbrangencia->buscar(array('idReadequacao=?' => $idReadequacao)); foreach ($abrangencias as $abg) { $Projetos = new Projetos(); $dadosPrj = $Projetos->buscar(array('IdPRONAC=?' => $read->idPronac))->current(); //Se não houve avalição do conselheiro, pega a avaliação técnica como referencia. $avaliacao = $abg->tpAnaliseComissao; if ($abg->tpAnaliseComissao == 'N') { $avaliacao = $abg->tpAnaliseTecnica; } //Se a avaliação foi deferida, realiza as mudanças necessárias na tabela original. if ($avaliacao == 'D') { if ($abg->tpSolicitacao == 'E') { //Se a abrangencia foi excluída, atualiza os status da abrangencia na SAC.dbo.Abrangencia $Abrangencia->delete(array('idProjeto = ?' => $dadosPrj->idProjeto, 'idPais = ?' => $abg->idPais, 'idUF = ?' => $abg->idUF, 'idMunicipioIBGE = ?' => $abg->idMunicipioIBGE)); } else { if ($abg->tpSolicitacao == 'I') { //Se a abangência foi incluída, cria um novo registro na tabela SAC.dbo.Abrangencia $novoLocalRead = array(); $novoLocalRead['idProjeto'] = $dadosPrj->idProjeto; $novoLocalRead['idPais'] = $abg->idPais; $novoLocalRead['idUF'] = $abg->idUF; $novoLocalRead['idMunicipioIBGE'] = $abg->idMunicipioIBGE; $novoLocalRead['Usuario'] = $this->idUsuario; $novoLocalRead['stAbrangencia'] = 1; $Abrangencia->salvar($novoLocalRead); } } } } $dadosAbr = array(); $dadosAbr['stAtivo'] = 'N'; $whereAbr = "idPronac = {$read->idPronac} AND idReadequacao = {$idReadequacao}"; $tbAbrangencia->update($dadosAbr, $whereAbr); // READEQUAÇÃO DE ALTERAÇÃO DE PROPONENTE } else { if ($read->idTipoReadequacao == 10) { //Se for readequação de alteração de proponente, atualiza os dados na SAC.dbo.Projetos. $Projetos = new Projetos(); $dadosPrj = $Projetos->find(array('IdPRONAC=?' => $read->idPronac))->current(); $tbAprovacao = new Aprovacao(); $dadosAprovacao = array('IdPRONAC' => $read->idPronac, 'AnoProjeto' => $dadosPrj->AnoProjeto, 'Sequencial' => $dadosPrj->Sequencial, 'TipoAprovacao' => 8, 'DtAprovacao' => new Zend_Db_Expr('GETDATE()'), 'ResumoAprovacao' => 'Parecer favorável para readequação', 'Logon' => $this->idUsuario, 'idReadequacao' => $idReadequacao); $idAprovacao = $tbAprovacao->inserir($dadosAprovacao); // READEQUAÇÃO DE PLANO DE DISTRIBUIÇÃO } else { if ($read->idTipoReadequacao == 11) { //Se for readequação de plano de distribuição, atualiza os dados na SAC.dbo.PlanoDistribuicaoProduto. $PlanoDistribuicaoProduto = new PlanoDistribuicaoProduto(); $tbPlanoDistribuicao = new tbPlanoDistribuicao(); $planosDistribuicao = $tbPlanoDistribuicao->buscar(array('idReadequacao=?' => $idReadequacao)); foreach ($planosDistribuicao as $plano) { $Projetos = new Projetos(); $dadosPrj = $Projetos->buscar(array('IdPRONAC=?' => $read->idPronac))->current(); //Se não houve avalição do conselheiro, pega a avaliação técnica como referencia. $avaliacao = $plano->tpAnaliseComissao; if ($plano->tpAnaliseComissao == 'N') { $avaliacao = $plano->tpAnaliseTecnica; } //Se a avaliação foi deferida, realiza as mudanças necessárias na tabela original. if ($avaliacao == 'D') { if ($plano->tpSolicitacao == 'E') { //Se o plano de distribuição foi excluído, atualiza os status do plano na SAC.dbo.PlanoDistribuicaoProduto $PlanoDistribuicaoProduto->delete(array('idProjeto = ?' => $dadosPrj->idProjeto, 'idProduto = ?' => $plano->idProduto, 'Area = ?' => $plano->cdArea, 'Segmento = ?' => $plano->cdSegmento)); } else { if ($plano->tpSolicitacao == 'I') { //Se o plano de distribuição foi incluído, cria um novo registro na tabela SAC.dbo.PlanoDistribuicaoProduto $novoPlanoDistRead = array(); $novoPlanoDistRead['idProjeto'] = $dadosPrj->idProjeto; $novoPlanoDistRead['idProduto'] = $plano->idProduto; $novoPlanoDistRead['Area'] = $plano->cdArea; $novoPlanoDistRead['Segmento'] = $plano->cdSegmento; $novoPlanoDistRead['idPosicaoDaLogo'] = $plano->idPosicaoLogo; $novoPlanoDistRead['QtdeProduzida'] = $plano->qtProduzida; $novoPlanoDistRead['QtdePatrocinador'] = $plano->qtPatrocinador; $novoPlanoDistRead['QtdeProponente'] = $plano->qtProponente; $novoPlanoDistRead['QtdeOutros'] = $plano->qtOutros; $novoPlanoDistRead['QtdeVendaNormal'] = $plano->qtVendaNormal; $novoPlanoDistRead['QtdeVendaPromocional'] = $plano->qtVendaPromocional; $novoPlanoDistRead['PrecoUnitarioNormal'] = $plano->vlUnitarioNormal; $novoPlanoDistRead['PrecoUnitarioPromocional'] = $plano->vlUnitarioPromocional; $novoPlanoDistRead['stPrincipal'] = 0; $novoPlanoDistRead['Usuario'] = $this->idUsuario; $novoPlanoDistRead['dsJustificativaPosicaoLogo'] = null; $novoPlanoDistRead['stPlanoDistribuicaoProduto'] = 1; $PlanoDistribuicaoProduto->inserir($novoPlanoDistRead); } } } } $dadosPDD = array(); $dadosPDD['stAtivo'] = 'N'; $wherePDD = "idPronac = {$read->idPronac} AND idReadequacao = {$idReadequacao}"; $tbPlanoDistribuicao->update($dadosPDD, $wherePDD); // READEQUAÇÃO DE NOME DO PROJETO } else { if ($read->idTipoReadequacao == 12) { //Se for readequação de nome do projeto, insere o registo na tela de Checklist de Publicação. $Projetos = new Projetos(); $dadosPrj = $Projetos->find(array('IdPRONAC=?' => $read->idPronac))->current(); $tbAprovacao = new Aprovacao(); $dadosAprovacao = array('IdPRONAC' => $read->idPronac, 'AnoProjeto' => $dadosPrj->AnoProjeto, 'Sequencial' => $dadosPrj->Sequencial, 'TipoAprovacao' => 8, 'DtAprovacao' => new Zend_Db_Expr('GETDATE()'), 'ResumoAprovacao' => 'Parecer favorável para readequação', 'Logon' => $this->idUsuario, 'idReadequacao' => $idReadequacao); $idAprovacao = $tbAprovacao->inserir($dadosAprovacao); // READEQUAÇÃO DE PERÍODO DE EXECUÇÃO } else { if ($read->idTipoReadequacao == 13) { //Se for readequação de período de execução, atualiza os dados na SAC.dbo.Projetos. $dtFimExecucao = Data::dataAmericana($read->dsSolicitacao); $Projetos = new Projetos(); $dadosPrj = $Projetos->find(array('IdPRONAC=?' => $read->idPronac))->current(); $dadosPrj->DtFimExecucao = $dtFimExecucao; $dadosPrj->save(); // READEQUAÇÃO DE PLANO DE DIVULGAÇÃO } else { if ($read->idTipoReadequacao == 14) { //Se for readequação de plano de divulgacao, atualiza os dados na SAC.dbo.PlanoDeDivulgacao. $PlanoDeDivulgacao = new PlanoDeDivulgacao(); $tbPlanoDivulgacao = new tbPlanoDivulgacao(); $planosDivulgacao = $tbPlanoDivulgacao->buscar(array('idReadequacao=?' => $idReadequacao)); foreach ($planosDivulgacao as $plano) { $Projetos = new Projetos(); $dadosPrj = $Projetos->buscar(array('IdPRONAC=?' => $read->idPronac))->current(); //Se não houve avalição do conselheiro, pega a avaliação técnica como referencia. $avaliacao = $plano->tpAnaliseComissao; if ($plano->tpAnaliseComissao == 'N') { $avaliacao = $plano->tpAnaliseTecnica; } //Se a avaliação foi deferida, realiza as mudanças necessárias na tabela original. if ($avaliacao == 'D') { if ($plano->tpSolicitacao == 'E') { //Se o plano de divulgação foi excluído, atualiza os status do plano na SAC.dbo.PlanoDeDivulgacao $PlanoDivulgacaoEmQuestao = $PlanoDeDivulgacao->buscar(array('idProjeto = ?' => $dadosPrj->idProjeto, 'idPeca = ?' => $plano->idPeca, 'idVeiculo = ?' => $plano->idVeiculo))->current(); $tbLogomarca = new tbLogomarca(); $dadosLogomarcaDaDivulgacao = $tbLogomarca->buscar(array('idPlanoDivulgacao = ?' => $PlanoDivulgacaoEmQuestao->idPlanoDivulgacao))->current(); $dadosLogomarcaDaDivulgacao->delete(); $PlanoDivulgacaoEmQuestao->delete(); } else { if ($plano->tpSolicitacao == 'I') { //Se o plano de divulgação foi incluído, cria um novo registro na tabela SAC.dbo.PlanoDeDivulgacao $novoPlanoDivRead = array(); $novoPlanoDivRead['idProjeto'] = $dadosPrj->idProjeto; $novoPlanoDivRead['idPeca'] = $plano->idPeca; $novoPlanoDivRead['idVeiculo'] = $plano->idVeiculo; $novoPlanoDivRead['Usuario'] = $this->idUsuario; $novoPlanoDivRead['siPlanoDeDivulgacao'] = 0; $novoPlanoDivRead['idDocumento'] = null; $novoPlanoDivRead['stPlanoDivulgacao'] = 1; $PlanoDeDivulgacao->inserir($novoPlanoDivRead); } } } } $dadosPDD = array(); $dadosPDD['stAtivo'] = 'N'; $wherePDD = "idPronac = {$read->idPronac} AND idReadequacao = {$idReadequacao}"; $tbPlanoDivulgacao->update($dadosPDD, $wherePDD); // READEQUAÇÃO DE RESUMO DO PROJETO } else { if ($read->idTipoReadequacao == 15) { //Se for readequação de resumo do projeto, atualiza os dados na SAC.dbo.PreProjeto. $Projetos = new Projetos(); $dadosPrj = $Projetos->find(array('IdPRONAC=?' => $read->idPronac))->current(); $tbAprovacao = new Aprovacao(); $dadosAprovacao = array('IdPRONAC' => $read->idPronac, 'AnoProjeto' => $dadosPrj->AnoProjeto, 'Sequencial' => $dadosPrj->Sequencial, 'TipoAprovacao' => 8, 'DtAprovacao' => new Zend_Db_Expr('GETDATE()'), 'ResumoAprovacao' => 'Parecer favorável para readequação', 'Logon' => $this->idUsuario, 'idReadequacao' => $idReadequacao); $idAprovacao = $tbAprovacao->inserir($dadosAprovacao); // READEQUAÇÃO DE OBJETIVOS } else { if ($read->idTipoReadequacao == 16) { //Se for readequação de objetivos, atualiza os dados na SAC.dbo.PreProjeto. $Projetos = new Projetos(); $dadosPrj = $Projetos->buscar(array('IdPRONAC=?' => $read->idPronac))->current(); $PrePropojeto = new PreProjeto(); $dadosPreProjeto = $PrePropojeto->find(array('idPreProjeto=?' => $dadosPrj->idProjeto))->current(); $dadosPreProjeto->Objetivos = $read->dsSolicitacao; $dadosPreProjeto->save(); // READEQUAÇÃO DE JUSTIFICATIVA } else { if ($read->idTipoReadequacao == 17) { //Se for readequação de justificativa, atualiza os dados na SAC.dbo.PreProjeto. $Projetos = new Projetos(); $dadosPrj = $Projetos->buscar(array('IdPRONAC=?' => $read->idPronac))->current(); $PrePropojeto = new PreProjeto(); $dadosPreProjeto = $PrePropojeto->find(array('idPreProjeto=?' => $dadosPrj->idProjeto))->current(); $dadosPreProjeto->Justificativa = $read->dsSolicitacao; $dadosPreProjeto->save(); // READEQUAÇÃO DE ACESSIBILIDADE } else { if ($read->idTipoReadequacao == 18) { //Se for readequação de acesibilidade, atualiza os dados na SAC.dbo.PreProjeto. $Projetos = new Projetos(); $dadosPrj = $Projetos->buscar(array('IdPRONAC=?' => $read->idPronac))->current(); $PrePropojeto = new PreProjeto(); $dadosPreProjeto = $PrePropojeto->find(array('idPreProjeto=?' => $dadosPrj->idProjeto))->current(); $dadosPreProjeto->Acessibilidade = $read->dsSolicitacao; $dadosPreProjeto->save(); // READEQUAÇÃO DE DEMOCRATIZAÇÃO DE ACESSO } else { if ($read->idTipoReadequacao == 19) { //Se for readequação de democratização de acesso, atualiza os dados na SAC.dbo.PreProjeto. $Projetos = new Projetos(); $dadosPrj = $Projetos->buscar(array('IdPRONAC=?' => $read->idPronac))->current(); $PrePropojeto = new PreProjeto(); $dadosPreProjeto = $PrePropojeto->find(array('idPreProjeto=?' => $dadosPrj->idProjeto))->current(); $dadosPreProjeto->DemocratizacaoDeAcesso = $read->dsSolicitacao; $dadosPreProjeto->save(); // READEQUAÇÃO DE ETAPAS DE TRABALHO } else { if ($read->idTipoReadequacao == 20) { //Se for readequação de etapas de trabalho, atualiza os dados na SAC.dbo.PreProjeto. $Projetos = new Projetos(); $dadosPrj = $Projetos->buscar(array('IdPRONAC=?' => $read->idPronac))->current(); $PrePropojeto = new PreProjeto(); $dadosPreProjeto = $PrePropojeto->find(array('idPreProjeto=?' => $dadosPrj->idProjeto))->current(); $dadosPreProjeto->EtapaDeTrabalho = $read->dsSolicitacao; $dadosPreProjeto->save(); // READEQUAÇÃO DE FICHA TÉCNICA } else { if ($read->idTipoReadequacao == 21) { //Se for readequação de ficha técnica, atualiza os dados na SAC.dbo.PreProjeto. $Projetos = new Projetos(); $dadosPrj = $Projetos->buscar(array('IdPRONAC=?' => $read->idPronac))->current(); $PrePropojeto = new PreProjeto(); $dadosPreProjeto = $PrePropojeto->find(array('idPreProjeto=?' => $dadosPrj->idProjeto))->current(); $dadosPreProjeto->FichaTecnica = $read->dsSolicitacao; $dadosPreProjeto->save(); } } } } } } } } } } } } } } } } } } } } } //Atualiza a tabela tbReadequacao $dados = array(); $dados['siEncaminhamento'] = 15; //Finalizam sem a necessidade de passar pela publicação no DOU. $dados['stEstado'] = 1; $tiposParaChecklist = array(2, 3, 10, 12, 15); if (in_array($read->idTipoReadequacao, $tiposParaChecklist)) { $dados['siEncaminhamento'] = 9; //Encaminhado pelo sistema para o Checklist de Publicação $dados['stEstado'] = 0; } $dados['idNrReuniao'] = $idNrReuniao; $where = "idReadequacao = {$idReadequacao}"; $return = $tbReadequacao->update($dados, $where); //Atualiza a tabela tbDistribuirReadequacao $dados = array(); $dados['stValidacaoCoordenador'] = 1; $dados['DtValidacaoCoordenador'] = new Zend_Db_Expr('GETDATE()'); $dados['idCoordenador'] = $idCoordenador; $where = "idReadequacao = {$idReadequacao}"; $tbDistribuirReadequacao = new tbDistribuirReadequacao(); $return2 = $tbDistribuirReadequacao->update($dados, $where); if (!$return && !$return2) { parent::message("Não foi possível encaminhar a readequação para o Checklist de Publicação", "readequacoes/painel?tipoFiltro=analisados", "ERROR"); } parent::message("Readequação encaminhada com sucesso!", "readequacoes/painel?tipoFiltro=analisados", "CONFIRM"); }