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; }
/** * Método para gravação de todos os dados do dirigente * @access public * @param void * @return void */ public function gravardirigentecompletoAction() { // caso o formulário seja enviado via post if ($this->getRequest()->isPost()) { // recebe os dados via post $post = Zend_Registry::get('post'); $idAgente = $post->idAgente; // id do dirigente $idAgenteGeral = $post->idAgenteGeral; // usuário associado ao dirigente $cpf = Mascara::delMaskCPF(Mascara::delMaskCNPJ($post->cpf)); // retira as máscaras $TipoNome = 18; // pessoa física $Usuario = $this->getIdUsuario; // id do usuário logado // ========== INÍCIO SALVAR NOME ========== $nome = $post->nome; try { // busca o nome do agente $busca = NomesDAO::buscarNome($idAgente); if (!$busca) { $i = NomesDAO::gravarNome($idAgente, $TipoNome, $nome, 0, $Usuario); } else { $i = NomesDAO::atualizaNome($idAgente, $TipoNome, $nome, 0, $Usuario); } } catch (Exception $e) { $this->view->message = "Erro ao salvar o nome: " . $e->getMessage(); } // ========== FIM SALVAR NOME ========== // ========== INÍCIO SALVAR ENDEREÇO ========== $TipoEndereco = $post->tipoEndereco; $TipoLogradouro = $post->tipoLogradouro; $Logradouro = $post->logradouro; $Numero = $post->numero; $Bairro = $post->bairro; $Complemento = $post->complemento; $Cidade = $post->cidade; $UF = $post->uf; $Cep = Mascara::delMaskCEP($post->cep); $Divulgar = $post->divulgarEndereco; $Status = $post->enderecoCorrespondencia; $GravarEnderecoNacional = array('idAgente' => $idAgente, 'TipoEndereco' => $TipoEndereco, 'TipoLogradouro' => $TipoLogradouro, 'Logradouro' => $Logradouro, 'Numero' => $Numero, 'Bairro' => $Bairro, 'Complemento' => $Complemento, 'Cidade' => $Cidade, 'UF' => $UF, 'Cep' => $Cep, 'Status' => $Status, 'Divulgar' => $Divulgar, 'Usuario' => $Usuario); $AtualizarEnderecoNacional = array('TipoEndereco' => $TipoEndereco, 'TipoLogradouro' => $TipoLogradouro, 'Logradouro' => $Logradouro, 'Numero' => $Numero, 'Bairro' => $Bairro, 'Complemento' => $Complemento, 'Cidade' => $Cidade, 'UF' => $UF, 'Cep' => $Cep, 'Status' => $Status, 'Divulgar' => $Divulgar, 'Usuario' => $Usuario); try { // busca o endereço do agente $busca = EnderecoNacionalDAO::buscarEnderecoNacional($idAgente); if (!$busca) { $i = EnderecoNacionalDAO::gravarEnderecoNacional($GravarEnderecoNacional); } else { $i = EnderecoNacionalDAO::atualizaEnderecoNacional($idAgente, $AtualizarEnderecoNacional); } } catch (Exception $e) { $this->view->message = "Erro ao salvar o endereço: " . $e->getMessage(); } // ========== FIM SALVAR ENDEREÇO ========== // ========== INÍCIO SALVAR VISÃO ========== $Visao = $post->visao; $GravarVisao = array('idAgente' => $idAgente, 'Visao' => $Visao, 'Usuario' => $Usuario, 'stAtivo' => 'A'); try { // busca as visões do agente $busca = VisaoDAO::buscarVisao($idAgente, $Visao); if (!$busca) { $i = VisaoDAO::cadastrarVisao($GravarVisao); } } catch (Exception $e) { $this->view->message = "Erro ao salvar a visão: " . $e->getMessage(); } // ========== FIM SALVAR VISÃO ========== // ========== INÍCIO TELEFONES ========== // array com os telefones $tipoFones = $post->tipoFones; $ufFones = $post->ufFones; $dddFones = $post->dddFones; $Fones = $post->Fones; $divulgarFones = $post->divulgarFones; try { // exclui todos os telefones $delete = Telefone::excluirTodos($idAgente); // cadastra todos os telefones for ($i = 0; $i < sizeof($Fones); $i++) { $arrayTelefones = array('idAgente' => $idAgente, 'TipoTelefone' => $tipoFones[$i], 'UF' => $ufFones[$i], 'DDD' => $dddFones[$i], 'Numero' => $Fones[$i], 'Divulgar' => $divulgarFones[$i], 'Usuario' => $Usuario); $insere = Telefone::cadastrar($arrayTelefones); } // fecha for } catch (Exception $e) { $this->view->message = "Erro ao salvar o componente: " . $e->getMessage(); } // ========== FIM TELEFONES ========== // ========== INÍCIO E-MAILS ========== // array com os e-mails $tipoEmails = $post->tipoEmails; $Emails = $post->Emails; $divulgarEmails = $post->divulgarEmails; $enviarEmails = $post->enviarEmails; try { // exclui todos os e-mails $delete = Email::excluirTodos($idAgente); // cadastra todos os e-mails for ($i = 0; $i < sizeof($Emails); $i++) { $arrayEmail = array('idAgente' => $idAgente, 'TipoInternet' => $tipoEmails[$i], 'Descricao' => $Emails[$i], 'Status' => $enviarEmails[$i], 'Divulgar' => $divulgarEmails[$i], 'Usuario' => $Usuario); $insere = Email::cadastrar($arrayEmail); } // fecha for } catch (Exception $e) { $this->view->message = "Erro ao salvar o componente: " . $e->getMessage(); } // ========== FIM E-MAILS ========== // ========== INÍCIO DIRIGENTES ========== // busca os dados do associado ao dirigente (idVinculoPrincipal) //$buscarAgente = ManterAgentesDAO::buscarAgentes(null, null, $idAgenteGeral); // busca o dirigente vinculado ao cnpj/cpf //$dadosDirigente = ManterAgentesDAO::buscarVinculados($buscarAgente[0]->CNPJCPF, null, $idAgente, $idAgenteGeral, $idAgenteGeral); $dadosDirigente = ManterAgentesDAO::buscarVinculados(null, null, $idAgente, $idAgenteGeral, $idAgenteGeral); // caso o agente não esteja vinculado, realizará a vinculação if (!$dadosDirigente) { // associa o dirigente ao cnpj/cpf $dadosVinculacao = array('idAgente' => $idAgente, 'idVinculado' => $idAgenteGeral, 'idVinculoPrincipal' => $idAgenteGeral, 'Usuario' => $Usuario); $vincular = ManterAgentesDAO::cadastrarVinculados($dadosVinculacao); } // ========== FIM DIRIGENTES ========== } // fecha if ($this->getRequest()->isPost()) parent::message("Cadastro realizado com sucesso!", "manteragentes/dirigentes?acao=cc&idAgenteGeral=" . $idAgenteGeral, "CONFIRM"); }
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 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; }