%s %s %s %s %s %s %s '; $query = "SELECT id, tipo_ramal, nome, dispositivo, contexto, habilita_prepago, saldo_prepago FROM pbx_ramais WHERE 1=1 AND org_id = $org_id "; if (IsPostBack()) { $ramaisSel = false; if (isset($_POST['btLancamento'])) { $ramais = isset($_POST['nome']) ? $_POST['nome'] : false; $ramaisSel = false; if ($ramais !== false) { $ramaisSel = array(); foreach ($ramais as $value) { $ramalPost = explode(";", $value); $ramaisSel[] = $ramalPost[0]; } } if ($ramais === false) { $jsStartup[] = "alert('Para realizar esta operação é necessário selecionar pelo menos um ramal!');"; $ramaisSel = false; } else if (!$_POST['operacao_ramal']) { $jsStartup[] = "alert('Selecione um tipo de operação!');"; } else { $paramPre = array( 'SIP' => 'pbx_sip_ramais;nome', 'IAX' => 'pbx_iax_pbx;nome', 'DGV' => 'pbx_dgv;numero', 'PBX' => 'pbx_ramais_pbx;numero', 'DAHDI' => 'pbx_dahdi;numero', 'KHOMP' => 'pbx_khomp;numero' ); $habRamal = $_POST['operacao_ramal'] == 1; $valor = isset($_POST['credito_ramal']) ? $_POST['credito_ramal'] : 0.0; $valor = FormataValorBd($valor); $usuario = GetLogin(); if ((!$habRamal) && ((!$valor) || ($valor <= 0))) { $jsStartup[] = "alert('Para realizar esta operação é necessário informar um valor!');"; } else { $msg = ''; $queryRamal = 'begin'; $result = pg_query($dbcon, $queryRamal); foreach ($ramais as $value) { $ramalPost = explode(";", $value); $numRamal = $ramalPost[0]; $hab = $ramalPost[1]; $tp = $ramalPost[2]; $params = explode(";", $paramPre[$tp]); $tabela = $params[0]; $campo = $params[1]; if ($habRamal) { $queryRamal = sprintf("UPDATE %s SET habilita_prepago = '%s' WHERE %s = '%s' \n", $tabela, ($hab ? '0' : '1'), $campo, $numRamal); if ($result) { $result = pg_query($dbcon, $queryRamal); } if (!$result) { break; } } else { if (!$hab) { $msg = 'Não é permitido realizar lançamentos para "Ramais Desabilitados"!'; $result = false; break; } $queryRamal = "INSERT INTO pbx_prepago_movimento (prm_ramal_conta, prm_conta_senha, trr_id, prm_valor_minuto, prm_tempo, prm_destino, prm_valor, prm_data, prm_data_lanc, prm_tipo_lancamento, prm_historico, usuario, org_id) VALUES('$numRamal', '0', '0', '0', '0', '0', '$valor', now()::date, now(), 'C', 'Inclusao de Credito', '$usuario', $org_id)"; if ($result) { $result = pg_query($dbcon, $queryRamal); } if (!$result) { break; } } } if ($result) { $queryRamal = 'commit'; pg_query($dbcon, $queryRamal); $jsStartup[] = "alert('Operação realizada com sucesso!');"; } else { $queryRamal = 'rollback'; pg_query($dbcon, $queryRamal); $msg = $msg ? $msg : 'Não foi possível realizar a operação!'; $jsStartup[] = "alert('$msg');"; } } } } $tipo_ramal = $_POST['tipo_ramal']; $numero_ramal = strtoupper($_POST['numero_ramal']); } else { $tipo_ramal = 0; $numero_ramal = ''; } if ($tipo_ramal) { $query .= "AND tipo_ramal = '$tipo_ramal'"; } if ($numero_ramal) { if ((strpos($numero_ramal, ",") !== false) || (strpos($numero_ramal, ";") !== false)) { $numero_ramal = str_replace(";", ",", $numero_ramal); $numero_ramal = str_replace("-", ",", $numero_ramal); $numSel = ''; $numeros = explode(",", $numero_ramal); foreach ($numeros as $numero) { $numSel .= !$numSel ? "'$numero'" : ",'$numero'"; } $query .= "AND nome IN($numSel)"; } else if (strpos($numero_ramal, "-") !== false) { $numSel = ''; $numeros = explode("-", $numero_ramal); $query .= sprintf("AND nome >= '%s' AND nome <= '%s'", $numeros[0], $numeros[1]); } else { $query .= "AND nome LIKE '%$numero_ramal%'"; } } $query .= " ORDER BY 3,2"; $result = pg_query($dbcon, $query); $linhas = ''; $linhaTemp = ''; $imp = 0; while ($dados = pg_fetch_array($result)) { $nomeRamal = $dados['nome']; $sel = ''; if (($ramaisSel !== false) && is_array($ramaisSel)) { $sel = (array_search($nomeRamal, $ramaisSel) !== false) ? 'checked="checked"' : ""; } $sel = sprintf('', $dados['id'], $dados['nome'], $dados['habilita_prepago'], $dados['tipo_ramal'], $sel); $ramal = $dados['nome']; $contexto = $dados['contexto']; $disp = $dados['dispositivo']; $saldo = FormataValor($dados['saldo_prepago']); $saldoPre = $dados['saldo_prepago']; $tpr = $dados['tipo_ramal']; $habRamal = $dados['habilita_prepago']; $habilita = $dados['habilita_prepago'] ? 'Habilitado!' : 'Desabilitado!'; $lanc = 'Lançamentos!'; $linkLanc = "$lanc"; $linhaTemp = sprintf($linha, $sel, $ramal, $contexto, $disp, $saldo, $habilita, $linkLanc); $linhas .= $linhaTemp; $imp++; } if (!IsPostBack()) { $linhas .= 'Informe os parametros e clique em consultar!'; } else if ($imp) { $linhas .= sprintf('%s %s', $imp, ($imp > 1 ? 'Ramais encontrados!' : 'Ramal encotrado!')); } else { $linhas .= 'Nenhum registro encontrado!'; } $tiposRamal = GetTiposRamal($tipo_ramal); $smarty->assign('tipoRamal', $tiposRamal); $smarty->assign('numero_ramal', $numero_ramal); $smarty->assign('linhas', $linhas); $smarty->assign('msgErro', $msgErro); GetTemplate($smarty, $nomeTpl); function GetTiposRamal($tipo_ramal) { $tipos = array('SIP', 'IAX', 'DGV', 'PBX', 'DAHDI', 'KHOMP'); $opc = ''; if (!$tipo_ramal) { $sel = 'selected="selected"'; } else { $sel = ''; } $opc = "\n"; $sel = ''; foreach ($tipos as $tipo) { $sel = ($tipo_ramal === $tipo) ? 'selected="selected"' : ""; $opc .= "\n"; } return $opc; }