$value) $valuesForm[$key] = $value; $valuesForm["pl_data_inicio"] = FormataDataDbDataDisplay($dados["pl_data_inicio"]); $valuesForm["pl_data_fim"] = FormataDataDbDataDisplay($dados["pl_data_fim"]); $_SESSION['SS_pp_id'] = $dados['pp_id']; } else { $valuesForm["pl_ativa"] = 1; } } else { $valuesUpd["pp_id"] = $_SESSION['SS_pp_id']; $pp_id = $_SESSION['SS_pp_id']; //$_FORMS["p_id"]; $pl_descricao = $_FORMS["pl_descricao"]; $pl_data_inicio = $_FORMS["pl_data_inicio"]; $pl_data_fim = $_FORMS["pl_data_fim"]; $pl_ativa = isset($_FORMS["pl_ativa"]) ? 1 : 0; foreach ($fieldsTable as $key) $valuesForm[$key] = $_FORMS[$key]; if (empty($pl_descricao)) { $msgErro = "Informe uma descrição!"; } else if ((soNumero($pl_data_inicio) != "") && (!is_date($pl_data_inicio))) { $msgErro = "Data inicial inválida!"; } else if ((soNumero($pl_data_fim) != "") && (!is_date($pl_data_fim))) { $msgErro = "Data final inválida!"; } if (empty($msgErro)) { $valuesForm["pl_data_inicio"] = FormatDtMssql($pl_data_inicio); $valuesForm["pl_data_fim"] = FormatDtMssql($pl_data_fim); $valuesForm["user_reg"] = GetLogin(); if ($plId) { foreach ($fieldsTable as $key) $valuesUpd[$key] = $_FORMS[$key]; $valuesUpd["pl_data_inicio"] = FormatDtMssql($pl_data_inicio); $valuesUpd["pl_data_fim"] = FormatDtMssql($pl_data_fim); $valuesUpd["pl_ativa"] = $pl_ativa; $valuesUpd["pp_id"] = $_SESSION['SS_pp_id']; $valuesForm['pp_id'] = $_SESSION['SS_pp_id']; $where = " pl_id = '$plId'"; $query = "begin"; $result = pg_query($dbcon, $query); if ($result) $result = UpdateDb($dbcon, 'pbx_pesquisa_liberacao', $valuesUpd, $where); if ($result) { $result = GravaUra($dbcon, $msgErro); } if ($result) { $query = "commit"; $result = pg_query($dbcon, $query); $jsStartup[] = "alert('Liberação alterada com sucesso!'); "; } else { $msgErro = "Não foi possível alterar a liberação!"; $plId = 0; $query = "rollback"; $result = pg_query($dbcon, $query); } } else { $msgErro = ""; $query = "begin"; if (!isset($valuesForm['pl_ativa'])) $valuesForm['pl_ativa'] = 0; $result = pg_query($dbcon, $query); if ($result) { $result = InsertDb($dbcon, 'pbx_pesquisa_liberacao', $valuesForm, "pbx_pesquisa_liberacao_pl_id_seq"); $plId = $result; } if ($result) { $result = GravaUra($dbcon, $msgErro); } if ($result) { $query = "commit"; $result = pg_query($dbcon, $query); echo ""; $jsStartup[] = "alert('Liberação inserida com sucesso!'); "; } else { $msgErro = $plId ? "Não foi possível alterar a liberação!" : "Não foi possível inserir a nova liberação!"; $plId = 0; $query = "rollback"; $result = pg_query($dbcon, $query); } } $valuesForm["pl_data_inicio"] = FormataDataDbDataDisplay($valuesForm["pl_data_inicio"]); $valuesForm["pl_data_fim"] = FormataDataDbDataDisplay($valuesForm["pl_data_fim"]); } // // if(!empty($_FILES['logoRelatorio']['name'])) } if ($msgErro) $jsStartup[] = "alert('$msgErro'); "; $jsJQuery[] = "\$('#pl_data_inicio').keypress(function(){formataDataHora(this);}) "; $jsJQuery[] = "\$('#pl_data_fim').keypress(function(){formataDataHora(this);}) "; $valuesForm['acaoUser'] = "Gravar"; $valuesForm['pl_id'] = $plId; foreach ($valuesForm as $key => $value) $smarty->assign($key, $value); $smarty->assign("msg", $msgErro); $smarty->assign("pesquisa", GetPesquisaDisp($dbcon, $valuesForm['pp_id'])); GetTemplate($smarty, 'pesquisa/pesquisaCadLibera.htm'); function GetPesquisaDisp($db, $ppId) { $query = "select pp_id, pp_nome, pp_data from pbx_pesquisa where pp_status = 1 order by pp_nome"; $result = pg_query($db, $query); $sel = $ppId ? 'selected="selected"' : ""; $ret = ""; while ($dados = pg_fetch_array($result)) { $pp_id = $dados["pp_id"]; $pp_nome = $dados["pp_nome"]; $pp_data = FormataDataDbDataDisplay($dados["pp_data"]); $sel = $ppId == $pp_id ? 'selected="selected"' : ""; $ret .= ""; } return $ret; } function GravaUra($db, &$msgErro) { $path = VerificaCharFinal(GetCaminhoProducao()) . "extensions_pesquisa.conf"; $file = fopen($path, 'w+'); $query = GetQueryPesquisa('cabecalio'); $result = pg_query($db, $query); $ura = array(); //while($dados = pg_fetch_array($result)){$ura[$dados['pl_id']] = $dados;} while ($dados = pg_fetch_array($result)) { $plId = $dados['pl_id']; $ppId = $dados['pp_id']; $nomeUra = sprintf('psq-%s-%s', $plId, 'ini'); $timeOutDigit = 1; $timeOutResponse = 10; /* * Pega a ura que será redirecionado apos a saudação */ $uraQuest = GetQuestoesUra($db, $ppId); $quest = $uraQuest[0]; $nomeUra1 = sprintf("psq-%s-%s", $plId, $quest["pq_id"]); $audioSauda = sprintf("customizados/pesquisa_audio_sauda_%s", $ppId); fwrite($file, sprintf('[%s]%s', $nomeUra, "\n")); //fwrite($file, sprintf('include => padrao%s', "\n")); fwrite($file, sprintf('exten => s,1,NoCDR()%s', "\n")); fwrite($file, sprintf('exten => s,1,Macro(verifica-eventos-dacs)%s', "\n")); fwrite($file, sprintf('exten => s,n,Answer()%s', "\n")); fwrite($file, sprintf('exten => s,n,Playback(%s)%s', $audioSauda, "\n")); fwrite($file, sprintf('exten => s,n,AGI(pbx_pesquisa_ura.php,%s,${IDORIGEM},%s)%s', 'ini', $plId, "\n")); fwrite($file, sprintf('exten => s,n,Goto(%s,s,1)%s', $nomeUra1, "\n")); fwrite($file, sprintf('exten => s,n,Hangup()%s', "\n")); fwrite($file, sprintf('%s', "\n")); /* * Inicia a gravação das uras associadas as questoes */ $numQuest = count($uraQuest); for ($i = 0; $i < $numQuest; $i++) { $questoes = $uraQuest[$i]; $pqId = $questoes["pq_id"]; $nomeUraQuest = sprintf("psq-%s-%s", $plId, $pqId); $audioQuest = sprintf("customizados/pesquisa_questao_%s_%s", $ppId, $pqId); fwrite($file, sprintf('[%s]%s', $nomeUraQuest, "\n")); //fwrite($file, sprintf('include => padrao%s', "\n")); fwrite($file, sprintf('exten => s,1,Set(LOOPCOUNT=0)%s', "\n")); //fwrite($file, sprintf('exten => s,n,AGI(pbx_pesquisa_ura.php,ura)%s', "\n")); fwrite($file, sprintf('exten => s,n,GotoIf($["${CDR(disposition)}" = "ANSWERED"]?inicio)%s', "\n")); // fwrite($file, sprintf('exten => s,n,Answer()%s', "\n")); fwrite($file, sprintf('exten => s,n,Wait(1)%s', "\n")); fwrite($file, sprintf('exten => s,n(inicio),Set(TIMEOUT(digit)=%s)%s', $timeOutDigit, "\n")); fwrite($file, sprintf('exten => s,n,Set(TIMEOUT(response)=%s)%s', $timeOutResponse, "\n")); fwrite($file, sprintf('exten => s,n,Background(%s)%s', $audioQuest, "\n")); fwrite($file, sprintf('exten => s,n,WaitExten()%s', "\n")); $nomeUraGoto = isset($uraQuest[$i + 1]) ? sprintf("psq-%s-%s", $plId, $uraQuest[$i + 1]["pq_id"]) : sprintf('psq-%s-%s', $plId, 'fim'); $uraOpc = GetOpcUra($db, $pqId); $numOpc = count($uraOpc); for ($j = 0; $j < $numOpc; $j++) { $opc = $uraOpc[$j]; $id = 0; $opcTecla = $opc["po_tecla"]; $poId = $opc["po_id"]; fwrite($file, sprintf('exten => %s,%s,AGI(pbx_pesquisa_ura.php,${IDORIGEM},%s,%s,%s,%s)%s', $opcTecla, ++$id, $plId, $ppId, $pqId, $poId, "\n")); fwrite($file, sprintf('exten => %s,%s,Goto(%s,s,1)%s', $opcTecla, ++$id, $nomeUraGoto, "\n")); fwrite($file, sprintf('exten => %s,%s,Hangup()%s', $opcTecla, ++$id, "\n")); } fwrite($file, sprintf('exten => t,1,Goto(loop,1)%s', "\n")); fwrite($file, sprintf('exten => loop,1,Set(LOOPCOUNT=$[${LOOPCOUNT} + 1])%s', "\n")); fwrite($file, sprintf('exten => loop,n,GotoIf($[${LOOPCOUNT} > 2]?desliga,1)%s', "\n")); fwrite($file, sprintf('exten => loop,n,Goto(${CONTEXT},s,inicio)%s', "\n")); fwrite($file, sprintf('exten => desliga,1,Playback(vm-goodbye)%s', "\n")); fwrite($file, sprintf('exten => desliga,n,Hangup%s', "\n")); fwrite($file, sprintf('exten => i,1,Playback(invalid)%s', "\n")); fwrite($file, sprintf('exten => i,n,Goto(loop,1)%s', "\n")); fwrite($file, sprintf('%s', "\n")); } /* * Finaliza ura audio de encerramento */ $audioEncerra = sprintf("customizados/pesquisa_audio_encerra_%s", $ppId); fwrite($file, sprintf('[%s]%s', $nomeUraGoto, "\n")); //fwrite($file, sprintf('include => padrao%s', "\n")); //fwrite($file, sprintf('exten => s,1,Answer()%s', "\n")); fwrite($file, sprintf('exten => s,1,AGI(pbx_pesquisa_ura.php,%s,${IDORIGEM},%s)%s', 'fim', $plId, "\n")); fwrite($file, sprintf('exten => s,2,Playback(%s)%s', $audioEncerra, "\n")); fwrite($file, sprintf('exten => s,n,Hangup()%s', "\n")); fwrite($file, sprintf('%s', "\n")); } fclose($file); GetUrl(AST_RELOAD_URA); return true; /* [ura-126] include => padrao exten => s,1,Set(LOOPCOUNT=0) exten => s,n,AGI(pbx_complemento.php,ura) exten => s,n,GotoIf($["${CDR(disposition)}" = "ANSWERED"]?inicio) exten => s,n,Answer() exten => s,n,Wait(1) exten => s,n(inicio),Set(TIMEOUT(digit)=1) exten => s,n,Set(TIMEOUT(response)=10) exten => s,n,WaitExten() exten => 1,1,AGI(pbx_complemento.php,ura) exten => 1,n,Goto(ext-ramais,1001,1) exten => 1,n,Hangup() exten => t,1,Goto(loop,1) exten => loop,1,Set(LOOPCOUNT=$[${LOOPCOUNT} + 1]) exten => loop,n,GotoIf($[${LOOPCOUNT} > 2]?desliga,1) exten => loop,n,Goto(${CONTEXT},s,inicio) exten => desliga,1,Playback(vm-goodbye) exten => desliga,n,Hangup exten => i,1,Playback(invalid) exten => i,n,Goto(loop,1) */ } function GetQuestoesUra($db, $ppId) { $query = sprintf(GetQueryPesquisa("questoes"), $ppId); $result = pg_query($db, $query); $quest = array(); while ($dados = pg_fetch_array($result)) { $quest[] = $dados; } return $quest; } function GetOpcUra($db, $pqId) { $query = sprintf(GetQueryPesquisa("opcoes"), $pqId); $result = pg_query($db, $query); $opc = array(); while ($dados = pg_fetch_array($result)) { $opc[] = $dados; } return $opc; } function GetQueryPesquisa($tipo) { if ($tipo == 'cabecalio') return "select distinct a.pl_id, a.pp_id, a.pl_descricao, a.pl_data_inicio, a.pl_data_fim from pbx_pesquisa_liberacao a, pbx_pesquisa b where b.pp_id = a.pp_id and a.pl_ativa = 1 order by pl_id"; else if ($tipo == 'questoes') return "select pq_id, pq_display, pq_questao from pbx_pesquisa_questoes where pp_id = '%s' and pq_status = 1 order by pp_id, pq_id"; else if ($tipo == 'opcoes') return "select po_id, po_tecla, po_opcao from pbx_pesquisa_opcoes where pq_id = '%s' and po_status = 1 order by po_tecla "; } ?>