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.
235 lines
9.7 KiB
235 lines
9.7 KiB
<?php |
|
|
|
$tpLayout = 1; |
|
$nomeTpl = 'cadastros/tarifacao/cadPrePagoRamal.htm'; |
|
$msgErro = ''; |
|
$org_id = GetOrganizacao(); |
|
$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çã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); |
|
|
|
$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ão é permitido realizar lanç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, 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) { |
|
$saldo += $valor; |
|
} |
|
} |
|
} |
|
|
|
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');"; |
|
} |
|
} |
|
} |
|
} |
|
|
|
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, org_id) |
|
VALUES('$numRamal', '0','0','0','0','0','$valor', now()::date, now(),'E', 'Estorno lancamento: $idEst', '$usuario', $org_id)"; |
|
if ($result) { |
|
$result = pg_query($dbcon, $queryRamal); |
|
} |
|
if ($result) { |
|
$saldo += $valor; |
|
} |
|
|
|
if ($result) { |
|
$queryRamal = 'commit'; |
|
pg_query($dbcon, $queryRamal); |
|
$jsStartup[] = "alert('Operação realizada com sucesso!');"; |
|
} else { |
|
$queryRamal = 'rollback'; |
|
pg_query($dbcon, $queryRamal); |
|
$jsStartup[] = "alert('Não foi possível realizar a operação!');"; |
|
} |
|
} |
|
} else { |
|
$dataFimP = date("d/m/Y"); |
|
$dataIniP = date("d/m/Y", strtotime("-1 month")); |
|
$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); |
|
|
|
if (pg_num_rows($result)) { |
|
$dados = pg_fetch_array($result); |
|
$saldoAnterior = $dados['saldo_anterior']; |
|
} |
|
} |
|
|
|
/* |
|
* Ultimo lanç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' AND org_id = $org_id "; |
|
$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"; |
|
|
|
$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);
|
|
|