0, "prt_id" => "1", "dst_nome" => "", "dst_host" => "", "dst_porta" => "0", "dst_user_anonimo" => "2", "dst_user" => "", "dst_senha" => "", "dst_diretorio_remoto" => "", "user_reg" => "$login", "acaoUser" => FORM_INSERT); try { /* * Alimenta os campos do array $field com valores de uma requisição get ou post. */ foreach ($_REQUEST as $key => $value) { if (array_key_exists($key, $fields)) { $fields[$key] = trim($value); } } /* * Botao gravar foi pressionado. */ if (isset($_POST['btGravar'])) { /* * Validacao da submissao do formulario. */ if (!$fields["dst_nome"]) { GeraExcept("O \"Nome\" é um campo obrigatório!"); } if (($fields["acaoUser"] == FORM_INSERT)) { if (RegistroInc($dbcon, sprintf("select count(*) from pbx_backup_destino where upper(dst_nome) = upper(%s)", QuotedStr($fields["dst_nome"])))) { GeraExcept(sprintf("O Nome: \"%s\" já esta cadastrado!", $fields["dst_nome"])); } /* * Prepara o insert para o banco de dados. */ $query = "insert into pbx_backup_destino ( prt_id,dst_nome,dst_host,dst_porta,dst_user_anonimo, dst_user,dst_senha, dst_diretorio_remoto, user_reg, data_reg ) values ( {prt_id},{dst_nome},{dst_host},{dst_porta},{dst_user_anonimo},{dst_user},{dst_senha},{dst_diretorio_remoto},{user_reg}, now() )"; foreach ($fields as $key => $value) { $query = str_replace("{" . $key . "}", QuotedStr($value), $query); } /* * Inicia uma transacao com o banco de dados. */ if (!pg_query($dbcon, 'begin')) { GeraExcept("Não foi possível iniciar a operação!"); } $trasaction = 1; /* * Executa a query de insert. */ $result = pg_query($dbcon, $query); if (!$result) { GeraExcept("Não foi possível iserir o registro na base de dados!"); } /* * Finaliza uma transacao com o banco de dados. */ if (!pg_query($dbcon, 'commit')) { GeraExcept("Não foi possível finalizar a operação!"); } /* * Mensagem de operacao realizada. */ $msg = "Registro inserido com sucesso!"; /* * Recupera a ultima sequencia para a sessao atual. */ $fields["dst_id"] = GetSequenciaDb($dbcon, 'pbx_backup_destino_dst_id_seq'); /* * Altera a acao do registro. */ $fields["acaoUser"] = FORM_UPDATE; } else { /* * Inicia uma transacao com o banco de dados. */ if (!pg_query($dbcon, 'begin')) { GeraExcept("Não foi possível iniciar a operação!"); } $trasaction = 1; /* * Prepara o update para o banco de dados. */ $query = "update pbx_backup_destino set dst_host = {dst_host}, dst_porta = {dst_porta}, dst_user_anonimo = {dst_user_anonimo}, dst_user = {dst_user}, dst_senha = {dst_senha}, dst_diretorio_remoto = {dst_diretorio_remoto} where dst_id = {dst_id} "; foreach ($fields as $key => $value) { $query = str_replace("{" . $key . "}", QuotedStr($value), $query); } /* * Atualiza o registro. */ $result = pg_query($dbcon, $query); if (!$result) { GeraExcept("Não foi atualizar o destino na base de dados!"); } /* * Finaliza uma transacao com o banco de dados. */ if (!pg_query($dbcon, 'commit')) { GeraExcept("Não foi possível finalizar a operação!"); } $msg = "Destino atualizado com sucesso!"; } /* * Recarrega o formulario de consulta. */ $jsStartup[] = "window.opener.ResetForm(); window.close();"; } else if ($fields["acaoUser"] == FORM_UPDATE) { /* * Carrrega informacoes do registro a partir do bando de dados. */ $dstId = $fields["dst_id"]; $query = "select a.dst_id, a.dst_nome, a.dst_host, a.dst_porta,a.dst_user, a.dst_senha, a.dst_diretorio_remoto, a.dst_user_anonimo, a.prt_id, b.prt_descricao from pbx_backup_destino a, pbx_backup_protocolo b where b.prt_id = a.prt_id and a.dst_id = $dstId order by 2"; $result = pg_query($dbcon, $query); if (!$result || !pg_num_rows($result)) { GeraExcept("Não foi possível localizar o registro na base de dados!"); } /* * Alimenta o array $fields com os valores recuperados do banco. */ $row = pg_fetch_array($result); foreach ($row as $key => $value) { $fields[$key] = $value; } $msg = "cadastro do destino editado com sucesso!"; } } catch (Exception $ex) { $erro++; /* * Rollback no banco qdo uma transacao em curso. */ if ($trasaction) { pg_query($dbcon, 'rollback'); } /* * Mensagem para o usuario. */ $msg = $ex->getMessage(); /* * Registra o erro para analise posterior no diretorio de log. */ GravaLogApl(array($msg, sprintf("Cmd: %s", $query), sprintf("Sys: %s", GetLasterror())), 'backup', GetLogin()); } /* * Atualiza o formulario com os dados retornados do banco ou da submissao do formulario. */ foreach ($fields as $key => $value) { $smarty->assign($key, $value); } $smarty->assign("formUpdate", FORM_UPDATE); $smarty->assign("acaoUser", $fields["acaoUser"]); $smarty->assign("msg", $msg); $smarty->assign("erro", $erro); GetTemplate($smarty, $nomeTpl); ?>