forked from SimplesIP/pabx-app
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
3.3 KiB
102 lines
3.3 KiB
<?php |
|
|
|
$tpLayout = 1; |
|
$msg = "Configura a Ordenação dos Relatórios"; |
|
$idRel = IsPostBack() ? $_POST['idRel'] : $_GET['idRel']; |
|
$nomeRelatorio = GetDispProgSel($idRel); |
|
|
|
/* |
|
* Adciona colunas para ordenação |
|
*/ |
|
if (isset($_POST['btAddColuna'])) { |
|
if (empty($_POST['lstColunaDisp'])) { |
|
$msg = ('Selecione uma Coluna!'); |
|
} else { |
|
|
|
//Pega a ultima sequencia |
|
$seq = GetMaxOrdena($dbcon, $idRel); |
|
$colunas = $_POST['lstColunaDisp']; |
|
foreach ($colunas as $coluna) { |
|
$arCols = explode('|', $coluna); |
|
//select ord_id, ords_seq, ords_ordem from pbx_relatorio_ordena_set order by ords_seq |
|
$query = 'insert into pbx_relatorio_ordena_set(ord_id, ord_rel_id, ords_seq, ords_ordem)values(%s, %s, %s, 0)'; |
|
$query = sprintf($query, $arCols[0], $arCols[1], ++$seq); |
|
$result = pg_query($dbcon, $query); |
|
} |
|
} |
|
} |
|
|
|
/* |
|
* Remove colunas para ordenação |
|
*/ |
|
if (isset($_POST['btRemColuna'])) { |
|
if (empty($_POST['lstColunaSel'])) { |
|
$msg = ('Selecione uma Coluna!'); |
|
} else { |
|
//Pega a ultima sequencia |
|
$seq = GetMaxOrdena($dbcon, $idRel); |
|
$colunas = $_POST['lstColunaSel']; |
|
foreach ($colunas as $coluna) { |
|
$query = "delete from pbx_relatorio_ordena_set where ord_id = '$coluna'"; |
|
$result = pg_query($dbcon, $query); |
|
} |
|
} |
|
} |
|
|
|
$smarty->assign('nomeRelatorio', $nomeRelatorio); |
|
$smarty->assign('idRel', $idRel); |
|
$smarty->assign('listaDisp', GetColunasRelatorio($dbcon, $idRel)); |
|
$smarty->assign('listaInc', GetColunasRelatorioInc($dbcon, $idRel)); |
|
$smarty->assign('msg', $msg); |
|
|
|
GetTemplate($smarty, 'relOrdena.tpl'); |
|
|
|
function GetColunasRelatorio($dbcon, $idRel) { |
|
$query = "select ord_id, ord_rel_id, ord_nome_coluna, ord_display_coluna |
|
from pbx_relatorio_ordena a |
|
where ord_rel_id = '$idRel' |
|
and not exists(select '' from pbx_relatorio_ordena_set where ord_id = a.ord_id) |
|
order by ord_display_coluna |
|
"; |
|
$result = pg_query($dbcon, $query); |
|
$opt = ''; |
|
|
|
while ($row = pg_fetch_array($result)) { |
|
$id = sprintf('%s|%s|%s', $row['ord_id'], $row['ord_rel_id'], $row['ord_nome_coluna']); |
|
$disp = $row['ord_display_coluna']; |
|
$opt .= sprintf('<option value="%s">%s</option>', $id, $disp); |
|
} |
|
|
|
return $opt; |
|
} |
|
|
|
function GetColunasRelatorioInc($dbcon, $idRel) { |
|
$query = "select a.ord_id, a.ord_rel_id, a.ord_nome_coluna, a.ord_display_coluna |
|
from pbx_relatorio_ordena a, pbx_relatorio_ordena_set b |
|
where b.ord_id = a.ord_id |
|
and a.ord_rel_id = '$idRel' |
|
order by ords_seq"; |
|
|
|
$result = pg_query($dbcon, $query); |
|
$opt = ''; |
|
|
|
while ($row = pg_fetch_array($result)) { |
|
$id = $row['ord_id']; |
|
$disp = $row['ord_display_coluna']; |
|
$opt .= sprintf('<option value="%s">%s</option>', $id, $disp); |
|
} |
|
|
|
return $opt; |
|
} |
|
|
|
function GetMaxOrdena($dbcon, $idRel) { |
|
$query = "select max(ords_seq) as ords_seq |
|
from pbx_relatorio_ordena_set a |
|
where a.ord_rel_id = '$idRel'"; |
|
|
|
$result = pg_query($dbcon, $query); |
|
$row = pg_fetch_row($result); |
|
return !$row[0] ? 0 : $row[0]; |
|
} |
|
|
|
?>
|
|
|