コード例 #1
0
 /**
  * Metodo responsavel por gravar os locais de realizacao em banco (INSERT e UPDATE)
  * @param void
  * @return objeto
  */
 public function salvarAction()
 {
     $post = Zend_Registry::get("post");
     $idAbrangencia = $post->cod;
     //xd($idAbrangencia);
     //instancia classe modelo
     $tblAbrangencia = new Abrangencia();
     if (isset($_REQUEST['edital'])) {
         $edital = "&edital=s";
     } else {
         $edital = "";
     }
     $qtdeLocais = $post->qtdeLocais;
     $locais = array();
     $locaisinvalidos = array();
     for ($i = 1; $i <= $qtdeLocais; $i++) {
         $pais = $post->__get("pais_" . $i);
         $uf = $post->__get("uf_" . $i);
         $municipio = $post->__get("cidade_" . $i);
         $local_c = $pais . $uf . $municipio;
         if (!in_array($local_c, $locaisinvalidos) || empty($local_c)) {
             $locais[$i]["idPais"] = $post->__get("pais_" . $i);
             if ($locais[$i]["idPais"] == 31) {
                 $locais[$i]["idUF"] = $post->__get("uf_" . $i);
                 $locais[$i]["idMunicipioIBGE"] = $post->__get("cidade_" . $i);
             } else {
                 $locais[$i]["idUF"] = "0";
                 $locais[$i]["idMunicipioIBGE"] = "0";
             }
         } else {
             parent::message("Registro já cadastrado, transação cancelada!", "/localderealizacao/index?idPreProjeto=" . $this->idPreProjeto . $edital, "ALERT");
             //xd("registro ja cadastrado");
             //return;
         }
         $locaisinvalidos[$i] = $local_c;
     }
     //$db = Zend_Registry :: get('db');
     //$db->setFetchMode(Zend_DB :: FETCH_OBJ);
     try {
         $global = 0;
         //$db->beginTransaction();
         //incluindo novos registros
         if (empty($idAbrangencia)) {
             //APAGA TODOS OS REGISTROS PARA CADASTRALOS NOVAMENTE
             $tblAbrangencia->excluirPeloProjeto($this->idPreProjeto);
         } else {
             foreach ($locais as $d) {
                 $p = $d['idPais'];
                 if ($p == 31) {
                     $u = $d['idUF'];
                     $m = $d['idMunicipioIBGE'];
                 } else {
                     $u = 0;
                     $m = 0;
                 }
             }
             $resultado = $tblAbrangencia->verificarIgual($p, $u, $m, $this->idPreProjeto);
             if (count($resultado) > 0) {
                 parent::message("Registro já cadastrado, transação cancelada!", "/localderealizacao/index?idPreProjeto=" . $this->idPreProjeto . $edital, "ALERT");
                 return;
             }
         }
         //INSERE LOCAIS DE REALIZACAO (tabela SAC.dbo.Abrangencia)
         for ($i = 1; $i <= count($locais); $i++) {
             $dados = array("idProjeto" => $this->idPreProjeto, "stAbrangencia" => 1, "Usuario" => $this->usuarioLogado, "idPais" => $locais[$i]["idPais"], "idUF" => $locais[$i]["idPais"] == 31 ? $locais[$i]["idUF"] : 0, "idMunicipioIBGE" => $locais[$i]["idPais"] == 31 ? $locais[$i]["idMunicipioIBGE"] : 0);
             $dados['stAbrangencia'] = 1;
             $dados['idAbrangencia'] = $idAbrangencia;
             //x($dados);
             if (!empty($dados["idProjeto"]) && !empty($dados["idPais"])) {
                 $retorno = $tblAbrangencia->salvar($dados);
             }
         }
         //$db->commit();
         if ($idAbrangencia) {
             parent::message("Alteração realizada com sucesso!", "/localderealizacao/index?idPreProjeto=" . $this->idPreProjeto . $edital, "CONFIRM");
         } else {
             parent::message("Cadastro realizado com sucesso!", "/localderealizacao/index?idPreProjeto=" . $this->idPreProjeto . $edital, "CONFIRM");
         }
     } catch (Zend_Exception $ex) {
         //$db->rollback();
         parent::message("N&atilde;o foi poss&iacute;vel realizar a opera&ccedil;&atilde;o! <br>", "/localderealizacao/index?idPreProjeto=" . $this->idPreProjeto . $edital, "ERROR");
     }
 }
コード例 #2
0
 public function cadastrarLocalRealizacaoAction()
 {
     $linkFinal = '';
     if (filter_input(INPUT_POST, 'relatorofinal')) {
         $linkFinal = '-final';
     }
     //** Verifica se o usuário logado tem permissão de acesso **//
     $this->verificarPermissaoAcesso(false, true, false);
     $idpronac = $this->_request->getParam("idpronac");
     if (strlen($idpronac) > 7) {
         $idpronac = Seguranca::dencrypt($idpronac);
     }
     $redirectUrl = "comprovarexecucaofisica/local-de-realizacao{$linkFinal}/idpronac/" . Seguranca::encrypt($idpronac);
     try {
         $Projetos = new Projetos();
         $dadosProj = $Projetos->buscar(array('IdPRONAC = ?' => $idpronac))->current();
         $idProjeto = $dadosProj->idProjeto;
         if (empty($idProjeto)) {
             parent::message('Não existe idProjeto.', $redirectUrl, 'ERROR');
         }
         $AbrangenciaDAO = new AbrangenciaDAO();
         foreach ($_POST['siAbrangencia'] as $valores) {
             list($abragenciaSituacao, $abrangenciaId) = explode(':', $valores);
             $dt = null;
             if (filter_input(INPUT_POST, 'dtRealizacao' . $abrangenciaId)) {
                 $dt = Data::dataAmericana(filter_input(INPUT_POST, 'dtRealizacao' . $abrangenciaId));
                 $validacao = Data::validarData(filter_input(INPUT_POST, 'dtRealizacao' . $abrangenciaId));
                 if (!$validacao) {
                     parent::message('Data inválida.', $redirectUrl, 'ERROR');
                 }
             }
             $abragenciaRow = $AbrangenciaDAO->find($abrangenciaId)->current();
             if ($abragenciaRow) {
                 if (2 != $abragenciaRow->siAbrangencia && 2 == $abragenciaSituacao) {
                     $abragenciaRow->dtRealizacao = $dt;
                 } elseif (2 != $abragenciaSituacao) {
                     $abragenciaRow->dtRealizacao = null;
                 }
                 if (1 == $abragenciaSituacao) {
                     $justificativa = filter_input(INPUT_POST, 'justificativa' . $abrangenciaId);
                     if (!empty($justificativa)) {
                         $abragenciaRow->dsJustificativa = $justificativa;
                     }
                 }
                 $abragenciaRow->siAbrangencia = $abragenciaSituacao;
                 $abragenciaRow->Usuario = $this->IdUsuario;
                 $abragenciaRow->save();
             }
         }
         if (filter_input(INPUT_POST, 'novoPais')) {
             if (31 == \filter_input(\INPUT_POST, 'novoPais')) {
                 //31=Brasil
                 $idPais = filter_input(INPUT_POST, 'novoPais');
                 $idUF = filter_input(INPUT_POST, 'novoUf');
                 $idMunicipio = filter_input(INPUT_POST, 'novoMunicipio');
                 $dsJustificativa = filter_input(INPUT_POST, 'justificativaNovo');
                 //se for Brasil, o usuario deve informar a cidade e o municipio
                 if (empty($idPais) || empty($idUF) || empty($idMunicipio)) {
                     parent::message("Não foi possível cadastrar o novo local de realização do Projeto!", "comprovarexecucaofisica/local-de-realizacao{$linkFinal}/idpronac/" . Seguranca::encrypt($idpronac), "ERROR");
                 }
             } else {
                 $idPais = filter_input(INPUT_POST, 'novoPais');
                 $idUF = 0;
                 $idMunicipio = 0;
                 $dsJustificativa = filter_input(INPUT_POST, 'justificativaNovo');
             }
             $Abrangencia = new Abrangencia();
             $abrangencias = $Abrangencia->verificarIgual($idPais, $idUF, $idMunicipio, $idProjeto);
             if (0 == count($abrangencias)) {
                 $dtNovo = null;
                 if (filter_input(INPUT_POST, 'novoDtRealizacao')) {
                     $dtNovo = Data::dataAmericana(filter_input(INPUT_POST, 'novoDtRealizacao'));
                     $validacaoNova = Data::validarData(filter_input(INPUT_POST, 'novoDtRealizacao'));
                     if (!$validacaoNova) {
                         parent::message('Data inválida.', $redirectUrl, 'ERROR');
                     }
                 }
                 $dados = array('idProjeto' => $idProjeto, 'idPais' => $idPais, 'idUF' => $idUF, 'idMunicipioIBGE' => $idMunicipio, 'Usuario' => $this->IdUsuario, 'stAbrangencia' => 1, 'siAbrangencia' => filter_input(INPUT_POST, 'novoRealizado'), 'dsJustificativa' => $dsJustificativa, 'dtRealizacao' => $dtNovo);
                 $AbrangenciaDAO->cadastrar($dados);
             } else {
                 parent::message('Não é possível salvar o mesmo local mais de uma vez. ' . '(País, Uf, Município)', $redirectUrl, 'ERROR');
             }
         }
         parent::message('Dados salvos com sucesso!', $redirectUrl, 'CONFIRM');
     } catch (Exception $e) {
         parent::message('Erro ao salvar os dados.', $redirectUrl, 'ERROR');
     }
 }