0) && ($formAction <= FORM_SAVE)) { $jsPage[] = "admin/js/pbxAjax.js"; $fieldsForm = array('itgm_id' => '1', 'formAction' => '1', 'itgm_nome' => '1', 'itgm_tipo' => '1', 'itgm_comando' => '1', 'itgm_retorno' => '1', 'evento' => '0', 'evento_descricao' => '1', 'opcao' => '0', 'opcao_descricao' => '1', 'acao' => '0', 'acao_descricao' => '1', 'stored_params' => '1', 'stored_params_desc' => '1'); //, 'itgp_nome' => '1', 'itgp_param_disponiveis' => '1', 'itgp_default' => '1' $fields = array('itgm_id' => '0', 'formAction' => '0', 'itgm_nome' => '', 'itgm_tipo' => '0', 'itgm_comando' => '', 'itgm_retorno' => '0', 'evento' => '0', 'opcao' => '0', 'stored_params' => ''); $nomeTpl = "cadastros/integAtiva/integAtivaMetodoCad.tpl"; if (IsPostBack()) GetDadosPost($fields, $_POST); if ($formAction == FORM_NEW) { $fields['formAction'] = FORM_INSERT; } if ($formAction == FORM_INSERT) { $valRetorno = $fields['itgm_retorno'] ? '1' : '0'; $opcao = trim($fields['opcao']); $evento = trim($fields['evento']); $msg = ''; if (!$fields['itgm_nome']) { $msg = 'Informe o nome do parametro!'; } else if (!$fields['itgm_comando']) { $msg = 'Informe o comando!'; } else if (($valRetorno) && (!$opcao)) { $msg = 'Quando o comando retorna um "Retorna ResultSet" é necessário informar uma "Opção"'; } else if ((!$valRetorno) && ($opcao)) { $msg = 'Quando o comando tem uma Opção" deve retornar um "Retorna ResultSet"'; } else if (($valRetorno) && ($evento)) { $msg = 'Quando o comando estiver associado a um "Evento" não pode retornar um "Retorna ResultSet"!'; } else { $opcao = IsNullQuoted($opcao); $evento = IsNullQuoted($evento); $storedParams = IsNullQuoted($fields['stored_params']); $result = pg_query($dbcon, 'begin'); $query = "insert into pbx_integracao_metodo(itgc_id, itgm_nome, itgm_comando, itgm_retorno, opcao, evento, stored_params)values(%s,%s,%s,%s,%s,%s,%s)"; $query = sprintf($query, QuotedStr($itgc_id), QuotedStr($fields['itgm_nome']), QuotedStr($fields['itgm_comando']), QuotedStr($valRetorno), $opcao, $evento, $storedParams); $result = $result && pg_query($dbcon, $query); if (!$itgm_id_pai) { /* * Cria eventos Abandonada e Atendida para o método criado. */ $itgm_id = GetItgmId($dbcon); $query = "insert into pbx_integracao_metodo(itgc_id, itgm_nome, itgm_comando, itgm_retorno, opcao, evento, stored_params, itgm_id_pai)values(%s,%s,%s,%s,%s,%s,%s,%s)"; $query = sprintf($query, QuotedStr($itgc_id), QuotedStr('NOEXEC'), QuotedStr('NOEXEC'), '0', 'null', 3, 'null', $itgm_id); $result = $result && pg_query($dbcon, $query); $query = "insert into pbx_integracao_metodo(itgc_id, itgm_nome, itgm_comando, itgm_retorno, opcao, evento, stored_params, itgm_id_pai)values(%s,%s,%s,%s,%s,%s,%s,%s)"; $query = sprintf($query, QuotedStr($itgc_id), QuotedStr('NOEXEC'), QuotedStr('NOEXEC'), '0', 'null', 2, 'null', $itgm_id); $result = $result && pg_query($dbcon, $query); } if ($result) { pg_query($dbcon, 'commit'); if ($itgm_id_pai) $itgm_id = GetItgmId($dbcon); $msg = 'Registro inserido com sucesso!'; $jsStartup[] = "window.opener.ResetForm();"; $jsJQuery[] = "window.close();"; } else { pg_query($dbcon, 'rollback'); $msg = 'Não foi possível realizar a operação!'; } } } if ($formAction == FORM_UPDATE) { $fields['formAction'] = FORM_SAVE; $query = "select * from pbx_integracao_metodo where itgm_id = $itgm_id"; $query = sprintf($query, QuotedStr($itgm_id)); $result = pg_query($dbcon, $query); $dados = pg_fetch_array($result); foreach ($dados as $key => $values) { if (!is_numeric($key)) $fields[$key] = $values; } } if ($formAction == FORM_SAVE) { $valRetorno = $fields['itgm_retorno'] ? '1' : '0'; $opcao = trim($fields['opcao']); $evento = trim($fields['evento']); $msg = ''; if (!$fields['itgm_nome']) { $msg = 'Informe o nome do parametro!'; } else if (!$fields['itgm_comando']) { $msg = 'Informe o comando!'; } else if (($valRetorno) && (!$opcao)) { $msg = 'Quando o comando retorna um "Retorna ResultSet" é necessário informar uma "Opção"'; } else if ((!$valRetorno) && ($opcao)) { $msg = 'Quando o comando tem uma Opção" deve retornar um "Retorna ResultSet"'; } else if (($valRetorno) && ($evento)) { $msg = 'Quando o comando estiver associado a um "Evento" não pode retornar um "Retorna ResultSet"!'; } else { $opcao = IsNullQuoted($opcao); $evento = IsNullQuoted($evento); $storedParams = IsNullQuoted($fields['stored_params']); $query = "update pbx_integracao_metodo set itgm_nome = %s, itgm_comando = %s, itgm_retorno = %s, opcao = %s, stored_params = %s where itgm_id = %s"; $query = sprintf($query, QuotedStr($fields['itgm_nome']), QuotedStr($fields['itgm_comando']), QuotedStr($valRetorno), $opcao, $storedParams, QuotedStr($itgm_id)); $result = pg_query($dbcon, $query); if ($result) { $msg = 'Registro atualizado com sucesso!'; $jsStartup[] = "window.opener.ResetForm();"; $jsJQuery[] = "window.close();"; } else { $msg = 'Não foi possível realizar a operação!'; } } } $fields['evento_descricao'] = GetItegEvento($fields['evento']); $fields['opcao_descricao'] = GetOpcaoAlt($dbcon, $fields['opcao']); $fields['stored_params_desc'] = GetParamFromCmd($fields['stored_params']); foreach ($fields as $key => $value) { if ($fieldsForm[$key]) $smarty->assign($key, $value); } $smarty->assign("itgc_id", $itgc_id); $smarty->assign("itgm_id", $itgm_id); $smarty->assign("itgm_id_pai", $itgm_id_pai); $smarty->assign("evento", $fields['evento']); GetTemplate($smarty, $nomeTpl); if ($msg) $jsStartup[] = "alert('$msg');"; $jsJQuery[] = "\n$('#evento').change( function(){\$$('opcao').selectedIndex = 0; \$$('itgm_retorno').checked = false;})"; $jsJQuery[] = "\n$('#itgp_param_disponiveis').change( function () { if ($('#itgp_param_disponiveis').val() != 5) { $('#itgp_default').attr('disabled', true); $('#itgp_default').val(''); } else { $('#itgp_default').attr('disabled', false); } } )"; } else { if ($formAction == FORM_DELETE) { $idDel = $_GET["id"]; /* * Recupera o id da configuração antes de apagar o metodo */ $query = "select itgc_id from pbx_integracao_metodo where itgm_id = '$idDel'"; $result = pg_query($dbcon, $query); $row = @pg_fetch_array($result); $itgc_id = $row[0]; $result = pg_query($dbcon, 'begin'); if ($itgm_id_pai) { $query = "update pbx_integracao_metodo set itgm_nome = 'NOEXEC', itgm_comando = 'NOEXEC', stored_params = '' where itgm_id = '$idDel' and coalesce(itgm_id_pai, 0) <> 0"; $result = $result && pg_query($dbcon, $query); } else { $query = "delete from pbx_integracao_metodo where itgm_id_pai = '$idDel'"; $result = $result && pg_query($dbcon, $query); $query = "delete from pbx_integracao_metodo where itgm_id = '$idDel'"; $result = $result && pg_query($dbcon, $query); } if ($result) { pg_query($dbcon, 'commit'); $jsJQuery[] = $result ? "alert('Registro apagado com sucesso!');" : "alert('Erro ao tentar remover registro!');"; } else { pg_query($dbcon, 'rollback'); //$erros = error_get_last(); $msg = 'A operação não pode ser realizada!'; // Erro: ' . $erros['message']; $jsJQuery[] = "alert('$msg');"; } } $colspan = 6; $linha = ' %s %s %s %s %s %s %s '; $linhaEmpty = "%s"; $insert = $itgm_id_pai ? '' : GetLinkFormInsert($nomeJanela, $imagem = "", $addParam = "&itgc_id=$itgc_id&itgm_id=0"); $query = "select itgm_id, itgc_id, itgm_nome, itgm_tipo, itgm_comando, itgm_retorno, itgm_status, evento from pbx_integracao_metodo where itgc_id=$itgc_id and coalesce(itgm_id_pai,0) = $itgm_id_pai order by itgm_id"; //if(IsAdmin()) echo $query; $result = pg_query($dbcon, $query); $linhas = ''; $update = ''; $delete = ''; $retorno = ''; $inc = 0; while ($dados = pg_fetch_array($result)) { $id = $dados['itgm_id']; $retorno = sprintf('', $dados['itgm_retorno'] ? 'button_ok16.png' : 'fecha16.png'); $update = GetLinkFormUpdate("&itgc_id=$itgc_id&itgm_id=$id&itgm_id_pai=$itgm_id_pai", $nomeJanela); $idDelete = "$id|$itgm_id_pai"; $delete = GetLinkFormDelete($idDelete, 'DeletaIntegAtivaMetodo'); $imgEvt = ''; $evtLink = sprintf("javaScript:NovaJanela('index.php?idProg=191&formAction=0&itgc_id=%s&itgm_id_pai=%s', 'IntegAtivaMetodo', '500', '340', 'resizable=NO,scrollbars=NO');", $itgc_id, $id); $evtLink = $itgm_id_pai ? '' : sprintf('%s', sprintf('%s', $evtLink, $imgEvt)); $nomeEvt = ''; if ($itgm_id_pai) { $nomeEvt = '-'; $nomeEvt .= ($dados['evento'] == 3) ? "Atendimento" : "Encerramento"; } $linhas .= sprintf($linha, $id, $dados['itgm_nome'] . $nomeEvt, $retorno, $insert, $update, $delete, $evtLink); $inc++; } if (!$inc) { $linhas = sprintf($linhaEmpty, "Nenhum parametro cadastrado! " . $insert); } $nomeTpl = "cadastros/integAtiva/integAtivaMetodo.tpl"; $smarty->assign("linhas", $linhas); $smarty->assign("itgc_id", $itgc_id); $smarty->assign("itgm_id_pai", $itgm_id_pai); $smarty->assign("itgm_colspan", $itgm_id_pai ? 3 : 4); GetTemplate($smarty, $nomeTpl); } function GetParamFromCmd($cmd) { $params = explode('@', $cmd); $ret = ""; $sel = 'selected="selected"'; $ini = ''; foreach ($params as $param) { $paramValue = explode('|', $param); if (!$ini) $ini = $param; $nome = $paramValue[2]; $ret .= sprintf('%s', $param, $nome, "\n"); $sel = ''; } $GLOBALS['jsStartup'][] = "SetParamInteg('$ini')"; return $ret; } function GetItgmId($dbcon) { $query = "select currval('pbx_integracao_metodo_itgm_id_seq')"; $result = pg_query($dbcon, $query); $row = @pg_fetch_row($result); return $row[0]; } ?>