|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* carregar controles prepara relat<EFBFBD>rio
|
|
|
|
|
*/
|
|
|
|
|
//variaveis para manter o estado
|
|
|
|
|
$listaContrato = 0;
|
|
|
|
|
$dataIni = date('d/m/Y');
|
|
|
|
|
$dataFim = date('d/m/Y');
|
|
|
|
|
$agrup = true;
|
|
|
|
|
$refaturar = false;
|
|
|
|
|
$numRefatura = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (IsPostBack()) {
|
|
|
|
|
//print "listaAgente: " . $_SESSION["listaSites"] ." - ". $_POST["listaSites"];
|
|
|
|
|
$dataIni = $_POST["dataIni"] ? $_POST["dataIni"] : date('d/m/Y');
|
|
|
|
|
$dataFim = $_POST["dataFim"] ? $_POST["dataFim"] : date('d/m/Y');
|
|
|
|
|
$listaContrato = $_POST['listaContrato'];
|
|
|
|
|
$agrup = isset($_POST['agrup']);
|
|
|
|
|
$refaturar = isset($_POST['btRetarifa']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$isValid = 1;
|
|
|
|
|
if (IsPostBack() && !is_date($dataIni)) {
|
|
|
|
|
$isValid = 0;
|
|
|
|
|
$msg = "Data inicial inv<EFBFBD>lida!";
|
|
|
|
|
} else if (IsPostBack() && !is_date($dataFim)) {
|
|
|
|
|
$isValid = 0;
|
|
|
|
|
$msg = "Data final inv<EFBFBD>lida!";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$imp = 0;
|
|
|
|
|
|
|
|
|
|
//executa consulta somente com post
|
|
|
|
|
if (IsPostBack() && $isValid) {
|
|
|
|
|
$linhas = GetDadosRefatura($refaturar);
|
|
|
|
|
$somaDuration = 0;
|
|
|
|
|
$somaValor = 0;
|
|
|
|
|
$somaValorRefaturado = 0;
|
|
|
|
|
$linha = '';
|
|
|
|
|
foreach ($linhas as $row) {
|
|
|
|
|
$str = GetLinhaTRefat($agrup);
|
|
|
|
|
foreach ($row as $key => $value) {
|
|
|
|
|
$str = str_replace('{' . $key . '}', $value, $str);
|
|
|
|
|
}
|
|
|
|
|
$linha .= $str;
|
|
|
|
|
|
|
|
|
|
$somaValor += $row['trr_valor_orig'];
|
|
|
|
|
$somaDuration += $row['trr_duracao_orig'];
|
|
|
|
|
$somaValorRefaturado += $row['trr_valor_retarifa_orig'];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (empty($linha)) {
|
|
|
|
|
if ($isValid && pg_last_error($dbcon)) {
|
|
|
|
|
$noData = "Erro ao realizar a consulta!"; // Erro: " . pg_last_error($dbcon);
|
|
|
|
|
} else {
|
|
|
|
|
$noData = IsPostBack() ? ($isValid ? "Nenhum registro encontrado!" : $msg) : "Informa as datas inicial,final, ramal e clique em consultar!";
|
|
|
|
|
}
|
|
|
|
|
$linha = " <tr><td colspan=\"10\" align=\"left\" class=\"headData\">$noData</td>";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$corRefat = $somaValor == $somaValorRefaturado ? '#000' : ($somaValorRefaturado > $somaValor ? '#00f' : '#f00');
|
|
|
|
|
$fontRefat = $somaValor != $somaValorRefaturado ? 'bold' : 'normal';
|
|
|
|
|
$somaDuration = SecondToStrTime($somaDuration);
|
|
|
|
|
$somaValor = FormataValor(round($somaValor, 2));
|
|
|
|
|
$somaValorRefaturado = FormataValor(round($somaValorRefaturado, 2));
|
|
|
|
|
$colspan = $agrup ? 3 : 7;
|
|
|
|
|
|
|
|
|
|
$linhaTotal = " <tr>
|
|
|
|
|
<th colspan=\"1\" align=\"left\" class=\"headColun\">Chamadas: $imp</th>
|
|
|
|
|
<th align=\"center\" class=\"headColun\" colspan=\"$colspan\">Total</th>
|
|
|
|
|
<th align=\"center\" class=\"headColun\">$somaDuration</th>";
|
|
|
|
|
if ($agrup) {
|
|
|
|
|
$linhaTotal .= "<th align=\"right\" class=\"headColun\">$somaValor</th>
|
|
|
|
|
<th align=\"right\" class=\"headColun\"><span style=\"color:$corRefat; font-weight:$fontRefat;\">$somaValorRefaturado</span></th>
|
|
|
|
|
</tr>";
|
|
|
|
|
} else {
|
|
|
|
|
$linhaTotal .= "<th align=\"center\" class=\"headColun\">-</th>
|
|
|
|
|
<th align=\"right\" class=\"headColun\">$somaValor</th>
|
|
|
|
|
<th align=\"center\" class=\"headColun\">-</th>
|
|
|
|
|
<th align=\"right\" class=\"headColun\"><span style=\"color:$corRefat; font-weight:$fontRefat;\">$somaValorRefaturado</span></th>
|
|
|
|
|
</tr>";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$linha .= $linhaTotal;
|
|
|
|
|
|
|
|
|
|
if (!$isValid)
|
|
|
|
|
$jsStartup[] = "alert('$msg');";
|
|
|
|
|
$jsJQuery[] = "\$('#dataIni').keypress(function(){formataDataHora(this);}) ";
|
|
|
|
|
$jsJQuery[] = "\$('#dataFim').keypress(function(){formataDataHora(this);}) ";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$contratos = PbxContratos($listaContrato);
|
|
|
|
|
$smarty->assign("contratos", $contratos);
|
|
|
|
|
$smarty->assign('dtIni', $dataIni);
|
|
|
|
|
$smarty->assign('dtFim', $dataFim);
|
|
|
|
|
$smarty->assign('imp', $numRefatura);
|
|
|
|
|
$smarty->assign('agrup', $agrup);
|
|
|
|
|
$smarty->assign('linhas', $linha);
|
|
|
|
|
|
|
|
|
|
GetTemplate($smarty, 'cadastros/tarifacao/tarifaRefatura.htm');
|
|
|
|
|
|
|
|
|
|
function GetQuery($ordem = 0) {
|
|
|
|
|
global $dataIni, $dataFim, $listaContrato;
|
|
|
|
|
$dataI = FormatDtMssql($dataIni);
|
|
|
|
|
$dataF = FormatDtMssql($dataFim);
|
|
|
|
|
$dddDef = GetDddPadrao();
|
|
|
|
|
$sql = "select a.contr_id,h.contr_descricao, i.prc_vigencia, a.trr_id, a.oper_id_dest, a.oper_numero_dest, a.uniqueid, a.trr_link, a.trr_data, a.trr_origem, a.trr_destino, a.trr_inicio, a.trr_fim, a.trr_duracao, a.trr_preco,
|
|
|
|
|
a.trr_vc, a.trr_preco_tipo, a.trr_tipo_opera, a.trr_sentido_chamada, a.trr_tarifa_zero, a.trr_conta_senha, a.trr_conta, a.trr_vc_cad, a.trr_vc_ext,
|
|
|
|
|
a.trr_preco_total, b.oper_nome, g.ttp_descricao,
|
|
|
|
|
(a.trr_duracao / 60)::int as duracao_mininuto, (a.trr_duracao % 60) as duracao_segundo, a.trr_franquia, h.contr_tipo_franquia, a.trr_duracao as duracao,
|
|
|
|
|
a.trr_tipo_chamada, a.trr_duracao_transf, h.contr_dia_fechamento,
|
|
|
|
|
j.prc_tipo, j.prc_preco_vc1, j.prc_preco_vc2, j.prc_preco_vc3, j.prc_preco_vc4, j.prc_preco_vc5, j.prc_preco_vc6, j.prc_preco_vc1_cad, j.prc_preco_vc2_cad, j.prc_preco_vc3_cad, j.prc_preco_vc4_cad,
|
|
|
|
|
j.prc_preco_vc5_cad, j.prc_preco_vc6_cad, j.prc_preco_vc1_ext, j.prc_preco_vc2_ext, j.prc_preco_vc3_ext, j.prc_preco_vc4_ext, j.prc_preco_vc5_ext, j.prc_preco_vc6_ext
|
|
|
|
|
from pbx_tarif_registra a
|
|
|
|
|
inner join pbx_operadoras b on b.oper_id = a.oper_id_dest
|
|
|
|
|
inner join pbx_tarif_contrato h on h.contr_id = a.contr_id
|
|
|
|
|
inner join pbx_tarif_contrato_preco i on i.prc_id = a.prc_id
|
|
|
|
|
inner join pbx_tarif_contrato_preco j on j.contr_id = a.contr_id and j.prc_id = (select max(prc_id) as prc_id from pbx_tarif_contrato_preco where contr_id = a.contr_id and prc_vigencia <= a.trr_data)
|
|
|
|
|
left join pbx_tarifa_tipo_preco g on g.ttp_id = a.trr_vc
|
|
|
|
|
where length(trr_destino) >= 8
|
|
|
|
|
and a.trr_duracao > 3
|
|
|
|
|
and a.trr_data >= '$dataI'
|
|
|
|
|
and a.trr_data <= '$dataF'\n";
|
|
|
|
|
$sql .= " and a.contr_id <> 0 and trr_tarifa_zero = 0 and gettipoligacao(a.trr_destino, $dddDef) <> 'Gratuita'\n";
|
|
|
|
|
if ($listaContrato) {
|
|
|
|
|
$sql .= " and a.contr_id = '$listaContrato'\n";
|
|
|
|
|
}
|
|
|
|
|
$sql .= " order by h.contr_descricao, i.prc_vigencia, a.trr_data, a.trr_inicio\n";
|
|
|
|
|
|
|
|
|
|
//if(IsAdmin ())echo $sql . "\n";
|
|
|
|
|
return $sql;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GetLinhaTRefat($agrup) {
|
|
|
|
|
$linha = "<tr>
|
|
|
|
|
<td align=\"left\" class=\"headData\">{contr_descricao}</td>
|
|
|
|
|
<td align=\"left\" class=\"headData\">{prc_vigencia}</td>
|
|
|
|
|
<td align=\"left\" class=\"headData\">{oper_nome}</td>
|
|
|
|
|
<td align=\"left\" class=\"headData\">{ttp_descricao}</td>\n";
|
|
|
|
|
if (!$agrup)
|
|
|
|
|
$linha .= "<td align=\"right\" class=\"headData\">{trr_origem}</td>\n";
|
|
|
|
|
if (!$agrup)
|
|
|
|
|
$linha .= "<td align=\"right\" class=\"headData\">{trr_conta}</td>\n";
|
|
|
|
|
if (!$agrup)
|
|
|
|
|
$linha .= "<td align=\"right\" class=\"headData\">{trr_destino}</td>\n";
|
|
|
|
|
if (!$agrup)
|
|
|
|
|
$linha .= "<td align=\"center\" class=\"headData\">{trr_data}</td>\n";
|
|
|
|
|
$linha .= "<td align=\"center\" class=\"headData\">{trr_duracao}</td>\n";
|
|
|
|
|
if (!$agrup)
|
|
|
|
|
$linha .= "<td align=\"right\" class=\"headData\">{trr_preco}</td>\n";
|
|
|
|
|
$linha .= "<td align=\"right\" class=\"headData\"><span title=\"{TITLE_VALOR}\">{trr_valor}</span></td>\n";
|
|
|
|
|
if (!$agrup)
|
|
|
|
|
$linha .= "<td align=\"right\" class=\"headData\">{trr_preco_retarifa}</td>\n";
|
|
|
|
|
$linha .= "<td align=\"right\" class=\"headData\"><span title=\"{TITLE_VALOR_REFAT}\" style=\"color:{COR_VALOR_REFAT}; font-weight:{FONT_BOLD_REFAT};\">{trr_valor_retarifa}</span></td>\n";
|
|
|
|
|
$linha .= "</tr>\n";
|
|
|
|
|
|
|
|
|
|
return $linha;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GetRetarifa(&$row) {
|
|
|
|
|
$vc = $row['trr_vc'];
|
|
|
|
|
|
|
|
|
|
switch ($vc) {
|
|
|
|
|
case 'vc1' : $trrPreco = $row['prc_preco_vc1'];
|
|
|
|
|
$trrVcCad = $row['prc_preco_vc1_cad'];
|
|
|
|
|
$trrVcCadExt = $row['prc_preco_vc1_ext'];
|
|
|
|
|
break;
|
|
|
|
|
case 'vc2' : $trrPreco = $row['prc_preco_vc2'];
|
|
|
|
|
$trrVcCad = $row['prc_preco_vc2_cad'];
|
|
|
|
|
$trrVcCadExt = $row['prc_preco_vc2_ext'];
|
|
|
|
|
break;
|
|
|
|
|
case 'vc3' : $trrPreco = $row['prc_preco_vc3'];
|
|
|
|
|
$trrVcCad = $row['prc_preco_vc3_cad'];
|
|
|
|
|
$trrVcCadExt = $row['prc_preco_vc3_ext'];
|
|
|
|
|
break;
|
|
|
|
|
case 'vc4' : $trrPreco = $row['prc_preco_vc4'];
|
|
|
|
|
$trrVcCad = $row['prc_preco_vc4_cad'];
|
|
|
|
|
$trrVcCadExt = $row['prc_preco_vc4_ext'];
|
|
|
|
|
break;
|
|
|
|
|
case 'vc5' : $trrPreco = $row['prc_preco_vc5'];
|
|
|
|
|
$trrVcCad = $row['prc_preco_vc5_cad'];
|
|
|
|
|
$trrVcCadExt = $row['prc_preco_vc5_ext'];
|
|
|
|
|
break;
|
|
|
|
|
case 'vc6' : $trrPreco = $row['prc_preco_vc6'];
|
|
|
|
|
$trrVcCad = $row['prc_preco_vc6_cad'];
|
|
|
|
|
$trrVcCadExt = $row['prc_preco_vc6_ext'];
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$row["trr_preco_tipo_retarifa"] = $row['prc_tipo'];
|
|
|
|
|
$row["trr_preco_retarifa"] = $trrPreco;
|
|
|
|
|
$row["trr_vc_cad_retarifa"] = $trrVcCad;
|
|
|
|
|
$row["trr_vc_ext_retarifa"] = $trrVcCadExt;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GetDadosRefatura($refaturar = false, $msg = '') {
|
|
|
|
|
global $imp, $agrup, $dbcon, $jsStartup, $numRefatura;
|
|
|
|
|
$numRefatura = 0;
|
|
|
|
|
$arOrdem = GetOrdenacaoRelatorio($dbcon, REL_SAINTES_RAMAL);
|
|
|
|
|
$ordem = $arOrdem[0];
|
|
|
|
|
$ordem = empty($ordem) ? "a.src" : $ordem;
|
|
|
|
|
$linhas = array();
|
|
|
|
|
$idxAgp = 0;
|
|
|
|
|
$agv = array();
|
|
|
|
|
$agd = array();
|
|
|
|
|
$agr = array();
|
|
|
|
|
$queryIns = array();
|
|
|
|
|
$queryUpd = array();
|
|
|
|
|
$colunas = array('contr_descricao', 'prc_vigencia', 'oper_nome', 'ttp_descricao', 'trr_origem', 'trr_conta', 'trr_destino', 'trr_data', 'trr_duracao', 'trr_valor', 'trr_valor_orig', 'trr_duracao_orig', 'trr_?reco', 'trr_preco_retarifa', 'trr_valor_retarifa', 'COR_VALOR_REFAT', 'FONT_BOLD_REFAT', 'TITLE_VALOR', 'TITLE_VALOR_REFAT');
|
|
|
|
|
|
|
|
|
|
$result = pg_query($dbcon, GetQuery());
|
|
|
|
|
while ($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"]);
|
|
|
|
|
$tarifaZero = ($tarifaZero || $franquia) && (!$franquiaParcial);
|
|
|
|
|
|
|
|
|
|
$row["prc_vigencia"] = FormataDBDataHora($row["prc_vigencia"]);
|
|
|
|
|
$row["trr_origem"] = $agrup ? '' : $row["trr_origem"];
|
|
|
|
|
$row["trr_conta"] = $agrup ? '' : ($row["trr_conta_senha"] ? $row["trr_conta"] : "-");
|
|
|
|
|
$row["trr_destino"] = $agrup ? '' : ( ($tarifaZero ? '#' : ($franquia ? ($franquiaParcial ? '*' : '**') : '') ) . $row["trr_destino"] );
|
|
|
|
|
$row["trr_data"] = $agrup ? '' : FormataDBDataHora($row["trr_inicio"]);
|
|
|
|
|
|
|
|
|
|
$row["trr_destino"] = ocultarTelefone($row["trr_destino"]);
|
|
|
|
|
/*
|
|
|
|
|
* Calcula hash para agrupamento.
|
|
|
|
|
*/
|
|
|
|
|
$idxAgp = md5($row["contr_descricao"] . $row["prc_vigencia"] . $row["oper_nome"] . $row["ttp_descricao"] . $row["trr_origem"] . $row["trr_conta"] . $row["trr_data"]);
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Dura<EFBFBD><EFBFBD>o total da chamada.
|
|
|
|
|
*/
|
|
|
|
|
$row["trr_duracao"] = $franquiaParcial ? $row["trr_franquia"] : (int) $row["trr_duracao"];
|
|
|
|
|
/*
|
|
|
|
|
* Parametriza<EFBFBD><EFBFBD>o do preco, tabela pbx_tarif_contrato_preco -> preco, cadencia, quebra da cadencia.
|
|
|
|
|
* correspondente na tabela pbx_tarif_registra -> trr_preco, trr_vc_cad, trr_vc_ext
|
|
|
|
|
* Fixo Local....: prc_preco_vc1, prc_preco_vc1_cad, prc_preco_vc1_ext
|
|
|
|
|
* Fixo DDD......: prc_preco_vc2, prc_preco_vc2_cad, prc_preco_vc2_ext
|
|
|
|
|
* Fixo DDI......: prc_preco_vc5, prc_preco_vc5_cad, prc_preco_vc5_ext
|
|
|
|
|
* M<EFBFBD>vel Local...: prc_preco_vc3, prc_preco_vc3_cad, prc_preco_vc3_ext
|
|
|
|
|
* M<EFBFBD>vel DDD.....: prc_preco_vc4, prc_preco_vc4_cad, prc_preco_vc4_ext
|
|
|
|
|
* M<EFBFBD>vel DDI.....: prc_preco_vc6, prc_preco_vc6_cad, prc_preco_vc6_ext
|
|
|
|
|
* Tarifa por chamada = 1 ou Minuto = 2, tabela pbx_tarif_contrato_preco -> prc_tipo, pbx_tarif_registra -> trr_preco_tipo
|
|
|
|
|
*/
|
|
|
|
|
if (!$tarifaZero) {
|
|
|
|
|
$row["contr_descricao"] = sprintf("<a href=\"javaScript:NovaJanela('index.php?idProg=198&acao=preco&contr_id=%s&contr_descricao=%s&oper_id=%s&oper_nome=%s&contr_tipo_franquia=%s&contr_dia_fechamento=%s', 'jnCadPreco', '800', '600', 'resizable=NO,scrollbars=NO');\" style=\"color: #000\">%s</a>", $row["contr_id"], $row["contr_descricao"], $row["oper_numero_dest"], $row["oper_nome"], $row["contr_tipo_franquia"], $row["contr_dia_fechamento"], $row["contr_descricao"]
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$disp = 1;
|
|
|
|
|
$imp++;
|
|
|
|
|
$row["trr_valor"] = TarifaChamada($row["trr_preco_tipo"], $row["trr_duracao"], $row["trr_preco"], $row["trr_vc_cad"], $row["trr_vc_ext"]);
|
|
|
|
|
$row['TITLE_VALOR'] = $agrup ? '' : sprintf('Tipo: %s Pre<EFBFBD>o: %s Cad<EFBFBD>ncia: %s X %s', ($row["trr_preco_tipo"] == 1 ? 'Minuto' : 'Chamada'), $row["trr_preco"], $row["trr_vc_cad"], $row["trr_vc_ext"]);
|
|
|
|
|
/*
|
|
|
|
|
* Retarifa a chamada pelo valores atuais da vigencia do contrato obtidos pela trr_data
|
|
|
|
|
*/
|
|
|
|
|
GetRetarifa($row);
|
|
|
|
|
$row["trr_valor_retarifa"] = TarifaChamada($row["trr_preco_tipo_retarifa"], $row["trr_duracao"], $row["trr_preco_retarifa"], $row["trr_vc_cad_retarifa"], $row["trr_vc_ext_retarifa"]);
|
|
|
|
|
$row['TITLE_VALOR_REFAT'] = $agrup ? '' : sprintf('Tipo: %s Pre<EFBFBD>o: %s Cad<EFBFBD>ncia: %s X %s', ($row["trr_preco_tipo_retarifa"] == 1 ? 'Minuto' : 'Chamada'), $row["trr_preco_retarifa"], $row["trr_vc_cad_retarifa"], $row["trr_vc_ext_retarifa"]);
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Para habilitar a refatura<EFBFBD><EFBFBD>o deve haver ao menos 1 registro divergente;
|
|
|
|
|
*/
|
|
|
|
|
if (!$numRefatura && ($row["trr_valor"] != $row["trr_valor_retarifa"])) {
|
|
|
|
|
$numRefatura++;
|
|
|
|
|
}
|
|
|
|
|
$incRefat = $refaturar && (($row["trr_valor"] != $row["trr_valor_retarifa"]) || ($row["trr_preco"] != $row["trr_preco_retarifa"] ) || ($row["trr_vc_cad"] != $row["trr_vc_cad_retarifa"]) || ($row["trr_vc_ext"] != $row["trr_vc_ext_retarifa"]));
|
|
|
|
|
if ($refaturar && $incRefat) {
|
|
|
|
|
$sql = "update pbx_tarif_registra set trr_preco_tipo = %s, trr_preco = %s, trr_vc_cad = %s, trr_vc_ext = %s where trr_id = %s;\n";
|
|
|
|
|
$queryUpd[] = sprintf($sql, $row["trr_preco_tipo_retarifa"], $row["trr_preco_retarifa"], $row["trr_vc_cad_retarifa"], $row["trr_vc_ext_retarifa"], $row["trr_id"]);
|
|
|
|
|
|
|
|
|
|
$sql = "insert into pbx_tarif_retarifa values(now(),'%s','%s','%s','%s','%s','%s');\n";
|
|
|
|
|
$queryIns[] = sprintf($sql, $row["trr_id"], $row["trr_preco_tipo"], $row["trr_preco"], $row["trr_vc_cad"], $row["trr_vc_ext"], GetLogin());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Valores agrupados
|
|
|
|
|
*/
|
|
|
|
|
$agv[$idxAgp] = isset($agv[$idxAgp]) ? ($agv[$idxAgp] + $row["trr_valor"]) : $row["trr_valor"];
|
|
|
|
|
$agr[$idxAgp] = isset($agv[$idxAgp]) ? ($agr[$idxAgp] + $row["trr_valor_retarifa"]) : $row["trr_valor_retarifa"];
|
|
|
|
|
$agd[$idxAgp] = isset($agd[$idxAgp]) ? ($agd[$idxAgp] + $row["trr_duracao"]) : $row["trr_duracao"];
|
|
|
|
|
$row["trr_valor"] = FormataValor($agv[$idxAgp]);
|
|
|
|
|
$row["trr_valor_retarifa"] = FormataValor($agr[$idxAgp]);
|
|
|
|
|
$row["trr_duracao"] = SecondToStrTime($agd[$idxAgp]);
|
|
|
|
|
$row["trr_valor_orig"] = $agv[$idxAgp];
|
|
|
|
|
$row["trr_valor_retarifa_orig"] = $agr[$idxAgp];
|
|
|
|
|
$row["trr_duracao_orig"] = $agd[$idxAgp];
|
|
|
|
|
|
|
|
|
|
$row["COR_VALOR_REFAT"] = ($row["trr_valor_retarifa_orig"] == $row["trr_valor_orig"]) ? '#000' : (($row["trr_valor_retarifa_orig"] > $row["trr_valor_orig"]) ? '#00f' : '#f00');
|
|
|
|
|
$row["FONT_BOLD_REFAT"] = ($row["trr_valor_retarifa_orig"] == $row["trr_valor_orig"]) ? 'normal' : 'bold';
|
|
|
|
|
|
|
|
|
|
$linhas[$idxAgp] = $row;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!$refaturar && $msg) {
|
|
|
|
|
$jsStartup[] = "alert('$msg');";
|
|
|
|
|
}
|
|
|
|
|
return $refaturar ? GetDadosRefatura(false, Refatura($dbcon, $queryIns, $queryUpd)) : $linhas;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function Refatura($dbcon, $queryIns, $queryUpd) {
|
|
|
|
|
$intran = false;
|
|
|
|
|
try {
|
|
|
|
|
$tamQuery = 500;
|
|
|
|
|
$result = pg_query($dbcon, 'begin');
|
|
|
|
|
if (!$result) {
|
|
|
|
|
throw new Exception("N<EFBFBD>o foi poss<EFBFBD>vel iniciar a retarifa<EFBFBD><EFBFBD>o!");
|
|
|
|
|
}
|
|
|
|
|
$intran = true;
|
|
|
|
|
/*
|
|
|
|
|
* gravando o log da retarifa<EFBFBD><EFBFBD>o.
|
|
|
|
|
*/
|
|
|
|
|
$query = '';
|
|
|
|
|
$numLinhas = 0;
|
|
|
|
|
foreach ($queryIns as $sql) {
|
|
|
|
|
$query .= $sql;
|
|
|
|
|
if (++$numLinhas >= $tamQuery) {
|
|
|
|
|
if (!$result = ($result && pg_query($dbcon, $query))) {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
$numLinhas = 0;
|
|
|
|
|
$query = '';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($query && $result) {
|
|
|
|
|
$result = pg_query($dbcon, $query);
|
|
|
|
|
}
|
|
|
|
|
if (!$result) {
|
|
|
|
|
throw new Exception("N<EFBFBD>o foi poss<EFBFBD>vel registrar a retarifa<EFBFBD><EFBFBD>o!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Atualizando os registros da tarifa<EFBFBD><EFBFBD>o.
|
|
|
|
|
*/
|
|
|
|
|
$query = '';
|
|
|
|
|
$numLinhas = 0;
|
|
|
|
|
foreach ($queryUpd as $sql) {
|
|
|
|
|
$query .= $sql;
|
|
|
|
|
if (++$numLinhas >= $tamQuery) {
|
|
|
|
|
if (!$result = ($result && pg_query($dbcon, $query))) {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
$numLinhas = 0;
|
|
|
|
|
$query = '';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($query && $result) {
|
|
|
|
|
$result = pg_query($dbcon, $query);
|
|
|
|
|
}
|
|
|
|
|
if (!$result) {
|
|
|
|
|
throw new Exception("N<EFBFBD>o foi poss<EFBFBD>vel retarifar os registros!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$result = pg_query($dbcon, 'commit');
|
|
|
|
|
if (!$result) {
|
|
|
|
|
throw new Exception("N<EFBFBD>o foi poss<EFBFBD>vel concluir a retarifa<EFBFBD><EFBFBD>o!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return 'Opera<EFBFBD><EFBFBD>o realizada com sucesso!';
|
|
|
|
|
} catch (Exception $ex) {
|
|
|
|
|
if ($intran)
|
|
|
|
|
pg_query($dbcon, 'rollback');
|
|
|
|
|
return $ex->getMessage();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
?>
|