/** * Reescreve o método init() * @access public * @param void * @return void */ public function init() { $auth = Zend_Auth::getInstance(); // instancia da autenticação $PermissoesGrupo = array(); //Da permissao de acesso a todos os grupos do usuario logado afim de atender o UC75 if (isset($auth->getIdentity()->usu_codigo)) { //Recupera todos os grupos do Usuario $Usuario = new Usuario(); // objeto usuário $grupos = $Usuario->buscarUnidades($auth->getIdentity()->usu_codigo, 21); foreach ($grupos as $grupo) { $PermissoesGrupo[] = $grupo->gru_codigo; } } isset($auth->getIdentity()->usu_codigo) ? parent::perfil(1, $PermissoesGrupo) : parent::perfil(4, $PermissoesGrupo); parent::init(); //recupera ID do pre projeto (proposta) if (!empty($_REQUEST['idPreProjeto'])) { $this->idPreProjeto = $_REQUEST['idPreProjeto']; //VERIFICA SE A PROPOSTA ESTA COM O MINC $Movimentacao = new Movimentacao(); $rsStatusAtual = $Movimentacao->buscarStatusAtualProposta($_REQUEST['idPreProjeto']); $this->view->movimentacaoAtual = isset($rsStatusAtual->Movimentacao) ? $rsStatusAtual->Movimentacao : ''; } $this->idUsuario = isset($auth->getIdentity()->usu_codigo) ? $auth->getIdentity()->usu_codigo : $auth->getIdentity()->IdUsuario; }
/** * Reescreve o método init() * @access public * @param void * @return void */ public function init() { // autenticaç?o e permiss?es zend (AMBIENTE MINC) $PermissoesGrupo = array(); $PermissoesGrupo[] = 127; // Coordenador - Geral de Análise (Ministro) $PermissoesGrupo[] = 97; // Gestor do SALIC $auth = Zend_Auth::getInstance(); // instancia da autenticação isset($auth->getIdentity()->usu_codigo) ? parent::perfil(1, $PermissoesGrupo) : parent::perfil(4, $PermissoesGrupo); parent::init(); // chama o init() do pai GenericControllerNew $auth = Zend_Auth::getInstance(); // instancia da autenticaç?o // $this->idUsuario = isset($auth->getIdentity()->usu_codigo) ? $auth->getIdentity()->usu_codigo : $auth->getIdentity()->IdUsuario; if (isset($auth->getIdentity()->usu_codigo)) { $this->idUsuario = $auth->getIdentity()->usu_codigo; } else { $this->idUsuario = $auth->getIdentity()->IdUsuario; $this->verificarPermissaoAcesso(true, false, false); } //recupera ID do pre projeto (proposta) if (!empty($_REQUEST['idPreProjeto'])) { $this->idPreProjeto = $_REQUEST['idPreProjeto']; //VERIFICA SE A PROPOSTA ESTA COM O MINC $Movimentacao = new Movimentacao(); $rsStatusAtual = $Movimentacao->buscarStatusAtualProposta($_REQUEST['idPreProjeto']); $this->view->movimentacaoAtual = isset($rsStatusAtual->Movimentacao) ? $rsStatusAtual->Movimentacao : ''; } }
/** * Reescreve o método init() * @access public * @param void * @return void */ public function init() { $this->view->title = "Salic - Sistema de Apoio às Leis de Incentivo à Cultura"; // título da página $auth = Zend_Auth::getInstance(); // pega a autenticação $PermissoesGrupo = array(); if (!$auth->hasIdentity()) { return $this->_helper->redirector->goToRoute(array('controller' => 'index', 'action' => 'logout'), null, true); } //Da permissao de acesso a todos os grupos do usuario logado afim de atender o UC75 if (isset($auth->getIdentity()->usu_codigo)) { //Recupera todos os grupos do Usuario $Usuario = new Usuario(); // objeto usuário $grupos = $Usuario->buscarUnidades($auth->getIdentity()->usu_codigo, 21); foreach ($grupos as $grupo) { $PermissoesGrupo[] = $grupo->gru_codigo; } } isset($auth->getIdentity()->usu_codigo) ? parent::perfil(1, $PermissoesGrupo) : parent::perfil(4, $PermissoesGrupo); parent::init(); // chama o init() do pai GenericControllerNew //recupera ID do pre projeto (proposta) if (!empty($_REQUEST['idPreProjeto'])) { $this->idPreProjeto = $_REQUEST['idPreProjeto']; //VERIFICA SE A PROPOSTA ESTA COM O MINC $Movimentacao = new Movimentacao(); $rsStatusAtual = $Movimentacao->buscarStatusAtualProposta($_REQUEST['idPreProjeto']); $this->view->movimentacaoAtual = isset($rsStatusAtual->Movimentacao) ? $rsStatusAtual->Movimentacao : ''; } else { if ($_REQUEST['idPreProjeto'] != '0') { parent::message("Necessário informar o número da proposta.", "/manterpropostaincentivofiscal/index", "ERROR"); } } $this->idUsuario = isset($auth->getIdentity()->usu_codigo) ? $auth->getIdentity()->usu_codigo : $auth->getIdentity()->IdUsuario; /* =============================================================================== */ /* ==== VERIFICA PERMISSAO DE ACESSO DO PROPONENTE A PROPOSTA OU AO PROJETO ====== */ /* =============================================================================== */ $this->verificarPermissaoAcesso(true, false, false); }
/** * Reescreve o método init() * @access public * @param void * @return void */ public function init() { $auth = Zend_Auth::getInstance(); // instancia da autenticaç?o $PermissoesGrupo = array(); //Da permissao de acesso a todos os grupos do usuario logado afim de atender o UC75 if (isset($auth->getIdentity()->usu_codigo)) { //Recupera todos os grupos do Usuario $Usuario = new Usuario(); // objeto usuário $grupos = $Usuario->buscarUnidades($auth->getIdentity()->usu_codigo, 21); foreach ($grupos as $grupo) { $PermissoesGrupo[] = $grupo->gru_codigo; } } isset($auth->getIdentity()->usu_codigo) ? parent::perfil(1, $PermissoesGrupo) : parent::perfil(4, $PermissoesGrupo); // pega o idAgente do usuário logado $auxUsuario = isset($auth->getIdentity()->usu_codigo) ? $auth->getIdentity()->usu_codigo : $auth->getIdentity()->IdUsuario; $this->getIdUsuario = UsuarioDAO::getIdUsuario($auxUsuario); if ($this->getIdUsuario) { $this->getIdUsuario = $this->getIdUsuario["idAgente"]; } else { $this->getIdUsuario = 0; } $this->view->comboestados = Estado::buscar(); $this->view->paises = DeslocamentoDAO::buscarPais(); parent::init(); //recupera ID do pre projeto (proposta) if (!empty($_REQUEST['idPreProjeto'])) { $this->idPreProjeto = $_REQUEST['idPreProjeto']; //VERIFICA SE A PROPOSTA ESTA COM O MINC $Movimentacao = new Movimentacao(); $rsStatusAtual = $Movimentacao->buscarStatusAtualProposta($_REQUEST['idPreProjeto']); $this->view->movimentacaoAtual = $rsStatusAtual->Movimentacao; } else { if ($_REQUEST['idPreProjeto'] != '0') { parent::message("Necessário informar o número da proposta.", "/manterpropostaincentivofiscal/index", "ERROR"); } } }
/** * Reescreve o método init() * @access public * @param void * @return void */ public function init() { $auth = Zend_Auth::getInstance(); // instancia da autenticação $PermissoesGrupo = array(); //Da permissao de acesso a todos os grupos do usuario logado afim de atender o UC75 if (isset($auth->getIdentity()->usu_codigo)) { //Recupera todos os grupos do Usuario $Usuario = new Usuario(); // objeto usuário $grupos = $Usuario->buscarUnidades($auth->getIdentity()->usu_codigo, 21); foreach ($grupos as $grupo) { $PermissoesGrupo[] = $grupo->gru_codigo; } } isset($auth->getIdentity()->usu_codigo) ? parent::perfil(1, $PermissoesGrupo) : parent::perfil(4, $PermissoesGrupo); // inicializando variaveis com valor padrao $this->intTamPag = 10; //carregando variaveis vindas de GET $get = Zend_Registry::get('get'); if (!empty($_REQUEST['idPreProjeto'])) { $this->_idPreProjeto = $get->idPreProjeto; //VERIFICA SE A PROPOSTA ESTA COM O MINC $Movimentacao = new Movimentacao(); $rsStatusAtual = $Movimentacao->buscarStatusAtualProposta($_REQUEST['idPreProjeto']); $this->view->movimentacaoAtual = isset($rsStatusAtual->Movimentacao) ? $rsStatusAtual->Movimentacao : ''; } else { if ($_REQUEST['idPreProjeto'] != '0') { parent::message("Necessário informar o número da proposta.", "/manterpropostaincentivofiscal/index", "ERROR"); } } parent::init(); /* =============================================================================== */ /* ==== VERIFICA PERMISSAO DE ACESSO DO PROPONENTE A PROPOSTA OU AO PROJETO ====== */ /* =============================================================================== */ $this->verificarPermissaoAcesso(true, false, false); }
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; }
/** * Reescreve o método init() * @access public * @param void * @return void */ public function init() { ini_set('memory_limit', '128M'); $auth = Zend_Auth::getInstance(); // pega a autenticação $GrupoAtivo = new Zend_Session_Namespace('GrupoAtivo'); // verifica as permissoes $PermissoesGrupo = array(); $PermissoesGrupo[] = 97; // Gestor do SALIC $PermissoesGrupo[] = 93; // Coordenador de Parecerista if (isset($auth->getIdentity()->usu_codigo)) { parent::perfil(1, $PermissoesGrupo); } else { parent::perfil(4, $PermissoesGrupo); } /*********************************************************************************************************/ $cpf = isset($auth->getIdentity()->usu_codigo) ? $auth->getIdentity()->usu_identificacao : $auth->getIdentity()->Cpf; // Busca na SGCAcesso $sgcAcesso = new Sgcacesso(); $buscaAcesso = $sgcAcesso->buscar(array('Cpf = ?' => $cpf)); // Busca na Usuarios $usuarioDAO = new Usuario(); $buscaUsuario = $usuarioDAO->buscar(array('usu_identificacao = ?' => $cpf)); // Busca na Agentes $agentesDAO = new Agentes(); $buscaAgente = $agentesDAO->BuscaAgente($cpf); if (count($buscaAcesso) > 0) { $this->idResponsavel = $buscaAcesso[0]->IdUsuario; } if (count($buscaAgente) > 0) { $this->idAgente = $buscaAgente[0]->idAgente; } if (count($buscaUsuario) > 0) { $this->idUsuario = $buscaUsuario[0]->usu_codigo; } if ($this->idAgente != 0) { $this->usuarioProponente = "S"; } /*********************************************************************************************************/ $this->cpfLogado = $cpf; parent::init(); //VALIDA ITENS DO MENU (Documento pendentes) if (isset($_GET['idPreProjeto']) && !empty($_GET['idPreProjeto'])) { $get = Zend_Registry::get("get"); $this->view->documentosPendentes = AnalisarPropostaDAO::buscarDocumentoPendente($get->idPreProjeto); if (!empty($this->view->documentosPendentes)) { $verificarmenu = 1; $this->view->verificarmenu = $verificarmenu; } else { $verificarmenu = 0; $this->view->verificarmenu = $verificarmenu; } //(Enviar Proposta ao MinC , Excluir Proposta) $mov = new Movimentacao(); $movBuscar = $mov->buscar(array('idProjeto = ?' => $get->idPreProjeto), array('idMovimentacao desc'), 1, 0)->current(); if (isset($movBuscar->Movimentacao) && $movBuscar->Movimentacao != 95) { $enviado = 'true'; $this->view->enviado = $enviado; } else { $enviado = 'false'; $this->view->enviado = $enviado; } //VERIFICA SE A PROPOSTA ESTA COM O MINC $Movimentacao = new Movimentacao(); $rsStatusAtual = $Movimentacao->buscarStatusAtualProposta($get->idPreProjeto); if (count($rsStatusAtual) > 0) { $this->view->movimentacaoAtual = isset($rsStatusAtual->Movimentacao) ? $rsStatusAtual->Movimentacao : ''; } else { $this->view->movimentacaoAtual = null; } //VERIFICA SE A PROPOSTA FOI ENVIADA AO MINC ALGUMA VEZ $arrbusca = array(); $arrbusca['idProjeto = ?'] = $get->idPreProjeto; $arrbusca['Movimentacao = ?'] = '96'; $rsHistMov = $Movimentacao->buscar($arrbusca); $this->view->blnJaEnviadaAoMinc = $rsHistMov->count(); } //***************** //FIM DA VALIDAÇ?O //***************** }
/** * Reescreve o metodo init() * @access public * @param void * @return void */ public function init() { $auth = Zend_Auth::getInstance(); // instancia da autenticação $PermissoesGrupo = array(); //Da permissao de acesso a todos os grupos do usuario logado afim de atender o UC75 if (isset($auth->getIdentity()->usu_codigo)) { //Recupera todos os grupos do Usuario $Usuario = new Usuario(); // objeto usuário $grupos = $Usuario->buscarUnidades($auth->getIdentity()->usu_codigo, 21); foreach ($grupos as $grupo) { $PermissoesGrupo[] = $grupo->gru_codigo; } } isset($auth->getIdentity()->usu_codigo) ? parent::perfil(1, $PermissoesGrupo) : parent::perfil(4, $PermissoesGrupo); $this->usuarioLogado = isset($auth->getIdentity()->usu_codigo) ? $auth->getIdentity()->usu_codigo : $auth->getIdentity()->IdUsuario; parent::init(); //recupera ID do pre projeto (proposta) if (!empty($_REQUEST['idPreProjeto'])) { $this->idPreProjeto = $_REQUEST['idPreProjeto']; //VERIFICA SE A PROPOSTA ESTA COM O MINC $Movimentacao = new Movimentacao(); $rsStatusAtual = $Movimentacao->buscarStatusAtualProposta($_REQUEST['idPreProjeto']); $this->view->movimentacaoAtual = isset($rsStatusAtual->Movimentacao) ? $rsStatusAtual->Movimentacao : ''; } else { //xd($_REQUEST['idPreProjeto']); if ($_REQUEST['idPreProjeto'] != '0') { parent::message("Necessário informar o número da proposta.", "/manterpropostaincentivofiscal/index", "ERROR"); } } $auth = Zend_Auth::getInstance(); // instancia da autenticação $this->idUsuario = isset($auth->getIdentity()->usu_codigo) ? $auth->getIdentity()->usu_codigo : $auth->getIdentity()->IdUsuario; //******************************************* //VALIDA ITENS DO MENU (Documento pendentes) //******************************************* $get = Zend_Registry::get("get"); $this->view->documentosPendentes = AnalisarPropostaDAO::buscarDocumentoPendente($get->idPreProjeto); if (!empty($this->view->documentosPendentes)) { $verificarmenu = 1; $this->view->verificarmenu = $verificarmenu; } else { $verificarmenu = 0; $this->view->verificarmenu = $verificarmenu; } //(Enviar Proposta ao MinC , Excluir Proposta) $mov = new Movimentacao(); $movBuscar = $mov->buscar(array('idProjeto = ?' => $get->idPreProjeto), array('idMovimentacao desc'), 1, 0)->current(); if (isset($movBuscar->Movimentacao) && $movBuscar->Movimentacao != 95) { $enviado = 'true'; $this->view->enviado = $enviado; } else { $enviado = 'false'; $this->view->enviado = $enviado; } //***************** //FIM DA VALIDAÇ?O //***************** /* =============================================================================== */ /* ==== VERIFICA PERMISSAO DE ACESSO DO PROPONENTE A PROPOSTA OU AO PROJETO ====== */ /* =============================================================================== */ $this->verificarPermissaoAcesso(true, false, false); }
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; }