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 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 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; }