#!/usr/bin/php -q h,1,DeadAgi(tarifaFinaliza.php,${UNIQUEID}) function __Prepago($uniqueId) { include('util/funcoesApl.php'); global $log; $queryPrepago = "SELECT CASE WHEN(a.trr_conta_senha = 0)THEN a.trr_origem ELSE a.trr_conta END AS prm_ramal_conta, a.trr_conta_senha, a.trr_tarifa_zero, a.trr_franquia, b.contr_tipo_franquia, a.trr_preco_tipo, a.trr_vc_cad, a.trr_vc_ext, 0.0 AS prm_valor, a.trr_id, a.trr_preco, a.trr_duracao, a.trr_destino, now()::date AS prm_data, now() AS prm_data_lanc, 'D' AS prm_tipo_lancamento, 'Chamada Efetuada' AS prm_historico FROM pbx_tarif_registra a, pbx_tarif_contrato b WHERE b.contr_id = a.contr_id AND a.uniqueid = '%s'"; $queryPrepagoIns = "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) VALUES({prm_ramal_conta}, {trr_conta_senha}, {trr_id}, {trr_preco}, {trr_duracao}, {trr_destino}, {prm_valor}, {prm_data}, {prm_data_lanc}, {prm_tipo_lancamento}, {prm_historico})"; $prepagoIncluso = 0; /* * Verifica se o ramal/conta esta incluso no pre-pago */ $query = "SELECT count(*) FROM pbx_prepago a, pbx_tarif_registra b WHERE a.tipo = b.trr_conta_senha AND a.id = CASE WHEN(b.trr_conta_senha = 0)THEN b.trr_origem ELSE b.trr_conta END AND a.habilita_prepago = '1' AND b.uniqueid = '%s'"; $query = sprintf($query, $uniqueId); $result = pg_query($conexao, $query); if (!$result) { $log[] = sprintf('Ver. Pre-pago: %s', $query); } $row = pg_fetch_row($result); $prepagoIncluso = $row[0]; if ($prepagoIncluso) { $queryPrepago = sprintf($queryPrepago, $uniqueId); $result = pg_query($conexao, $queryPrepago); $row = pg_fetch_array($result); $tipoFranquia = $row["contr_tipo_franquia"]; $tarifaZero = $row["trr_tarifa_zero"] > 0; $franquia = ($row["trr_franquia"] > 0) && ($tipoFranquia > 0); $franquiaParcial = $franquia && ($row["trr_franquia"] != $row["trr_duracao"]); $tipoTarifa = $row["trr_preco_tipo"]; $precoMinuto = $row["trr_preco"]; $fator = $row["trr_vc_cad"]; $cadencia = $row["trr_vc_ext"]; $dura = $franquiaParcial ? $row["trr_franquia"] : (int) $row["trr_duracao"]; $row['prm_valor'] = $tarifaZero ? 0 : - (TarifaChamada($tipoTarifa, $dura, $precoMinuto, $fator, $cadencia)); foreach ($row as $key => $value) { $queryPrepagoIns = str_replace('{' . $key . '}', QuotedStr($value), $queryPrepagoIns); } $result = pg_query($conexao, $queryPrepagoIns); if (!$result) { $log[] = sprintf('Ins. Pre-pago: %s', $queryPrepagoIns); } } } function __InsereFranquia($disp, $franquia) { /* * Tipos de franquia: Fixo/Móvel -> 4, Móvel -> 3, Fixo -> 2, Compartilhada -> 1, Desbilidadta -> 0 */ if (!$franquia) { return false; } else if ($franquia == 4) { return true; } else if (($franquia == 3) and ($disp == 'movel')) { return true; } else if (($franquia == 2) and ($disp == 'fixo')) { return true; } return false; } ?>