/** * 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ão foi possível realizar a operação! <br>", "/localderealizacao/index?idPreProjeto=" . $this->idPreProjeto . $edital, "ERROR"); } }
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'); } }