%s %s %s %s %s %s %s '; 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 = 'Lancamento!'; $imgEstorna = 'Estornar!'; $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('%s--Saldo Anterior-%s%s', $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('%s', $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(' %s - - Saldo Atual - %s - ', date('d/m/Y'), FormataValor($saldoRamal)); $status = $statusRamal ? 'Habilitado!' : 'Desabilitado!'; $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);