|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
$tpLayout = 1;
|
|
|
|
|
$nomeTpl = 'cadastros/tarifacao/cadPrePagoRamal.htm';
|
|
|
|
|
$msgErro = '';
|
|
|
|
|
$ramal = $_REQUEST['ramal'];
|
|
|
|
|
$saldo = $_REQUEST['saldo'];
|
|
|
|
|
$tipoRamal = $_REQUEST['tipoRamal'];
|
|
|
|
|
$statusRamal = $_REQUEST['statusRamal'];
|
|
|
|
|
$estorno = isset($_REQUEST['acao']) ? 1 : 0;
|
|
|
|
|
$saldoAnterior = 0;
|
|
|
|
|
$dataIni = '';
|
|
|
|
|
$dataFim = '';
|
|
|
|
|
$dataIniP = '';
|
|
|
|
|
$dataFimP = '';
|
|
|
|
|
|
|
|
|
|
$linha = ' <tr>
|
|
|
|
|
<td align="center">%s</td>
|
|
|
|
|
<td align="left">%s</td>
|
|
|
|
|
<td align="center">%s</td>
|
|
|
|
|
<td align="left">%s</td>
|
|
|
|
|
<td align="center">%s</td>
|
|
|
|
|
<td align="right">%s</td>
|
|
|
|
|
<td align="center">%s</td>
|
|
|
|
|
</tr>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (IsPostBack() || $estorno) {
|
|
|
|
|
$dataIniP = $_REQUEST['dataIni'];
|
|
|
|
|
$dataFimP = $_REQUEST['dataFim'];
|
|
|
|
|
$dataIni = isset($_REQUEST['dataIni']) && is_date($_REQUEST['dataIni']) ? FormatDtMssql($_REQUEST['dataIni']) : '';
|
|
|
|
|
$dataFim = isset($_REQUEST['dataFim']) && is_date($_REQUEST['dataFim']) ? FormatDtMssql($_REQUEST['dataFim']) : '';
|
|
|
|
|
|
|
|
|
|
if (isset($_POST['btLancamento'])) {
|
|
|
|
|
if (!$_POST['operacao_ramal']) {
|
|
|
|
|
$jsStartup[] = "alert('Selecione um tipo de opera<EFBFBD><EFBFBD>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<EFBFBD><EFBFBD>o <EFBFBD> necess<EFBFBD>rio informar um valor!');";
|
|
|
|
|
} else {
|
|
|
|
|
$msg = '';
|
|
|
|
|
$queryRamal = 'begin';
|
|
|
|
|
$result = pg_query($dbcon, $queryRamal);
|
|
|
|
|
|
|
|
|
|
$numRamal = $ramal;
|
|
|
|
|
$hab = ($statusRamal ? '0' : '1');
|
|
|
|
|
$tp = $tipoRamal;
|
|
|
|
|
|
|
|
|
|
$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, $campo, $numRamal);
|
|
|
|
|
|
|
|
|
|
if ($result)
|
|
|
|
|
$result = pg_query($dbcon, $queryRamal);
|
|
|
|
|
if ($result)
|
|
|
|
|
$statusRamal = $hab;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (!$statusRamal) {
|
|
|
|
|
$msg = 'N<EFBFBD>o <EFBFBD> permitido realizar lan<EFBFBD>amentos para "Ramais Desabilitados"!';
|
|
|
|
|
$result = false;
|
|
|
|
|
} else {
|
|
|
|
|
$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)
|
|
|
|
|
values('$numRamal', '0', '0', '0', '0', '0', '$valor', now()::date, now(), 'C', 'Inclusao de Credito', '$usuario')";
|
|
|
|
|
|
|
|
|
|
if ($result)
|
|
|
|
|
$result = pg_query($dbcon, $queryRamal);
|
|
|
|
|
|
|
|
|
|
//$queryRamal = sprintf("update %s set saldo_prepago = (saldo_prepago + %s) where %s = '%s'", $tabela, $valor, $campo, $numRamal);
|
|
|
|
|
//if($result) $result = pg_query($dbcon, $queryRamal);
|
|
|
|
|
if ($result)
|
|
|
|
|
$saldo += $valor;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($result) {
|
|
|
|
|
$queryRamal = 'commit';
|
|
|
|
|
@pg_query($dbcon, $queryRamal);
|
|
|
|
|
$jsStartup[] = "alert('Opera<EFBFBD><EFBFBD>o realizada com sucesso!');";
|
|
|
|
|
} else {
|
|
|
|
|
$queryRamal = 'rollback';
|
|
|
|
|
@pg_query($dbcon, $queryRamal);
|
|
|
|
|
$msg = $msg ? $msg : 'N<EFBFBD>o foi poss<EFBFBD>vel realizar a opera<EFBFBD><EFBFBD>o!';
|
|
|
|
|
$jsStartup[] = "alert('$msg');";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($estorno) {
|
|
|
|
|
$numRamal = $_SESSION["SSramalEstorno"];
|
|
|
|
|
$valor = -($_SESSION["SSValorEstorno"]);
|
|
|
|
|
$idEst = $_SESSION["SSidEstorno"];
|
|
|
|
|
$usuario = GetLogin();
|
|
|
|
|
|
|
|
|
|
$queryRamal = 'begin';
|
|
|
|
|
$result = pg_query($dbcon, $queryRamal);
|
|
|
|
|
|
|
|
|
|
$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)
|
|
|
|
|
values('$numRamal', '0', '0', '0', '0', '0', '$valor', now()::date, now(), 'E', 'Estorno lancamento: $idEst', '$usuario')";
|
|
|
|
|
if ($result)
|
|
|
|
|
$result = pg_query($dbcon, $queryRamal);
|
|
|
|
|
if ($result)
|
|
|
|
|
$saldo += $valor;
|
|
|
|
|
|
|
|
|
|
//echo $queryRamal;
|
|
|
|
|
if ($result) {
|
|
|
|
|
$queryRamal = 'commit';
|
|
|
|
|
@pg_query($dbcon, $queryRamal);
|
|
|
|
|
$jsStartup[] = "alert('Opera<EFBFBD><EFBFBD>o realizada com sucesso!');";
|
|
|
|
|
} else {
|
|
|
|
|
$queryRamal = 'rollback';
|
|
|
|
|
@pg_query($dbcon, $queryRamal);
|
|
|
|
|
$jsStartup[] = "alert('N<EFBFBD>o foi poss<EFBFBD>vel realizar a opera<EFBFBD><EFBFBD>o!');";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$data = new CalcDataHora();
|
|
|
|
|
$dataFimP = trim($data->getData());
|
|
|
|
|
$data->somaDia(-30);
|
|
|
|
|
$dataIniP = trim($data->getData());
|
|
|
|
|
$data = null;
|
|
|
|
|
//echo "\n\nData Final: $dataFimP \n\n Data Format: " . FormatDtMssql($dataFimP) . "\n\n";
|
|
|
|
|
$dataIni = FormatDtMssql($dataIniP);
|
|
|
|
|
$dataFim = FormatDtMssql($dataFimP);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($dataIni && $dataFim) {
|
|
|
|
|
$query = "select sum(prm_valor) as saldo_anterior
|
|
|
|
|
from pbx_prepago_movimento
|
|
|
|
|
where prm_conta_senha = 0
|
|
|
|
|
and prm_ramal_conta = '$ramal' and prm_data < '$dataIni' \n";
|
|
|
|
|
$result = pg_query($dbcon, $query);
|
|
|
|
|
//echo $query;
|
|
|
|
|
if (pg_num_rows($result)) {
|
|
|
|
|
$dados = pg_fetch_array($result);
|
|
|
|
|
$saldoAnterior = $dados['saldo_anterior'];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Ultimo lan<EFBFBD>amento de credito
|
|
|
|
|
*/
|
|
|
|
|
$idUltCredito = -1;
|
|
|
|
|
$query = "select max(prm_id) from pbx_prepago_movimento where prm_conta_senha = 0 and prm_tipo_lancamento = 'C' and prm_ramal_conta = '$ramal'";
|
|
|
|
|
$result = pg_query($dbcon, $query);
|
|
|
|
|
|
|
|
|
|
if (pg_num_rows($result)) {
|
|
|
|
|
$row = pg_fetch_row($result);
|
|
|
|
|
$idUltCredito = $row[0];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$imgLancNormal = '<img src="imgSite/bulletCirc.gif" alt="Lancamento!" title="Lancamento!" width="5" height="5" border="0">';
|
|
|
|
|
$imgEstorna = '<img src="imgSite/transbordando.png" alt="Estornar!" title="Estornar!" width="12" height="12" border="0">';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$query = "select prm_id, 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
|
|
|
|
|
from pbx_prepago_movimento
|
|
|
|
|
where prm_conta_senha = 0
|
|
|
|
|
and prm_ramal_conta = '$ramal' \n";
|
|
|
|
|
if ($dataIni && $dataFim)
|
|
|
|
|
$query .= "and prm_data >= '$dataIni' and prm_data <= '$dataFim' ";
|
|
|
|
|
$query .= " order by prm_data_lanc desc \n";
|
|
|
|
|
//echo $query;
|
|
|
|
|
$result = pg_query($dbcon, $query);
|
|
|
|
|
|
|
|
|
|
$linhas = sprintf('<tr><td align="center">%s</td><td align="center">-</td><td align="center">-</td><td align="left">Saldo Anterior</td><td align="center">-</td><td align="right">%s</td><td align="center">%s</td></tr>', $dataIniP, FormataValor($saldoAnterior), $imgLancNormal);
|
|
|
|
|
$linhaTemp = '';
|
|
|
|
|
$imp = 0;
|
|
|
|
|
$saldoRamal = 0;
|
|
|
|
|
while ($dados = pg_fetch_array($result)) {
|
|
|
|
|
$data = FormataDBDataHora($dados['prm_data_lanc']);
|
|
|
|
|
$destino = !$dados['prm_destino'] ? '-' : $dados['prm_destino'];
|
|
|
|
|
$duracao = SecondToStrTime($dados['prm_tempo']);
|
|
|
|
|
$valor = FormataValor($dados['prm_valor']);
|
|
|
|
|
$valorRamal = $dados['prm_valor'];
|
|
|
|
|
$saldoRamal += $dados['prm_valor'];
|
|
|
|
|
$lanc = $dados['prm_tipo_lancamento'];
|
|
|
|
|
$hist = $dados['prm_historico'];
|
|
|
|
|
$id = $dados['prm_id'];
|
|
|
|
|
$estornar = ($idUltCredito == $id) && ($saldo >= $valorRamal) ? 1 : 0;
|
|
|
|
|
$imgEstorna = $estornar ? $imgEstorna : $imgLancNormal;
|
|
|
|
|
if ($estornar) {
|
|
|
|
|
$_SESSION["SSidEstorno"] = $id;
|
|
|
|
|
$_SESSION["SSramalEstorno"] = $ramal;
|
|
|
|
|
$_SESSION["SSValorEstorno"] = $valorRamal;
|
|
|
|
|
}
|
|
|
|
|
$lkEstorna = $estornar ? sprintf('<a href="index.php?idProg=214&acao=estorno&dataIni=%s&$dataFimP=%s&ramal=%s&saldo=%s&tipoRamal=%s&statusRamal=%s">%s</a>', $dataIniP, $dataFimP, $ramal, $saldo, $tipoRamal, $statusRamal, $imgEstorna) : $imgEstorna;
|
|
|
|
|
$linhaTemp = sprintf($linha, $data, $destino, $duracao, $hist, $lanc, $valor, $lkEstorna);
|
|
|
|
|
$linhas .= $linhaTemp;
|
|
|
|
|
$imp++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$saldoRamal += $saldoAnterior;
|
|
|
|
|
$linhas .= sprintf(' <tr>
|
|
|
|
|
<th align="center">%s</th>
|
|
|
|
|
<th align="center">-</th>
|
|
|
|
|
<th align="center">-</th>
|
|
|
|
|
<th align="left">Saldo Atual</th>
|
|
|
|
|
<th align="center">-</th>
|
|
|
|
|
<th align="right">%s</th>
|
|
|
|
|
<th align="center">-</th>
|
|
|
|
|
</tr>', date('d/m/Y'), FormataValor($saldoRamal));
|
|
|
|
|
|
|
|
|
|
$status = $statusRamal ? '<img src="imgSite/button_ok16.png" alt="Habilitado!" width="16" height="16" border="0">' : '<img src="imgSite/fecha16.png" alt="Desabilitado!" width="16" height="16" border="0">';
|
|
|
|
|
$smarty->assign('ramal', $ramal);
|
|
|
|
|
$smarty->assign('tipoRamal', $tipoRamal);
|
|
|
|
|
$smarty->assign('saldo', FormataValor($saldo));
|
|
|
|
|
$smarty->assign('statusRamal', $statusRamal);
|
|
|
|
|
$smarty->assign('status', $status);
|
|
|
|
|
$smarty->assign('dataIni', $dataIniP);
|
|
|
|
|
$smarty->assign('dataFim', $dataFimP);
|
|
|
|
|
$smarty->assign('linhas', $linhas);
|
|
|
|
|
$smarty->assign('msgErro', $msgErro);
|
|
|
|
|
GetTemplate($smarty, $nomeTpl);
|
|
|
|
|
?>
|