<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><font style="font-size:12pt;" color="#000000" size="3" face="Arial,sans-serif">Tenho algo assim...<br>Se por acaso servir pra voce, calcula Tempo mínimo, pulsos, arredondamentos, vigência, imposto retroativo,degrau e tipo de data...<br><br>Está em pascal...<br><br>try<br>&nbsp;&nbsp;&nbsp; pulsos := 0 ;<br>&nbsp;&nbsp;&nbsp; vcob := timetotempo(abilhetes.duracao);<br>except<br>&nbsp;&nbsp;&nbsp; pulsos := 0 ;<br>&nbsp;&nbsp;&nbsp; vcob := 0 ;<br>end;<br>&nbsp;&nbsp;&nbsp; t_x := vcob - v_Temporizador - tempo_at_simulado ;<br>&nbsp;&nbsp;&nbsp; if t_x &lt; 0 then t_x := 0 ;<br>&nbsp;&nbsp;&nbsp; if t_x&lt;&gt;0 then<br>&nbsp;&nbsp;&nbsp;&nbsp; begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if t_x &lt;= t_min then t_x := t_min ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if t_x &gt; t_min then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t_x := t_x - t_min ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if t_x = 0 then t_x := 1 ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if t_arr = 0 then t_arr := 1 ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t_res := (trunc(t_x/t_arr)*t_arr);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pulsos := trunc(t_x/t_arr) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if t_x &gt; t_res then pulsos := pulsos + 1 ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if t_x &gt; (T_res) then t_x:=t_res+t_arr ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t_x := t_x + t_min ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if t_x = 0 then t_x := 1 ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; abilhetes.valor := (t_x/60)*valor_prefixo*v_taxa_extra*v_imposto;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if t_min = 0 then t_min := 1 ;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if pos('0-0-',degrau_b_public)&lt;&gt; 0 then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if abilhetes.duracao &gt; strtotime('00:02:00') then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; abilhetes.valor := (pulsos + 1 ) * valor_prefixo * v_taxa_extra * v_imposto;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if abilhetes.duracao &lt;= strtotime('00:02:00') then if pos('0-0-',degrau_b_public)&lt;&gt; 0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; abilhetes.valor :=&nbsp; valor_prefixo * v_taxa_extra * v_imposto ;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if pos('0-0-S',degrau_b_public)&lt;&gt; 0 then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if h_lig &gt; 13 then abilhetes.valor := 2 * ( valor_prefixo * v_taxa_extra * v_imposto );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if pos('0-0-D',degrau_b_public)&lt;&gt; 0 then abilhetes.valor := 2 * ( valor_prefixo * v_taxa_extra * v_imposto );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if h_lig &lt; 7 then abilhetes.valor :=&nbsp; 2 * ( valor_prefixo * v_taxa_extra * v_imposto );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if pos('0-1-',degrau_b_public)&lt;&gt; 0 then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if h_lig &lt; 7 then abilhetes.valor :=&nbsp; 2 * ( valor_prefixo * v_taxa_extra * v_imposto );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if pos('0-1-S',degrau_b_public)&lt;&gt; 0 then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if h_lig &gt; 13 then abilhetes.valor := 2 * ( valor_prefixo * v_taxa_extra * v_imposto );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if pos('0-1-D',degrau_b_public)&lt;&gt; 0 then abilhetes.valor := 2 * ( valor_prefixo * v_taxa_extra * v_imposto );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if dayofweek(abilhetes.data_lig)= 7<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( (degrau_b_public = '0-0-S') or ( degrau_b_public = 'LCR-0-S') or ( degrau_b_public = 'EXC-0-S' ) )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if abilhetes.hora_lig &gt; StrToTime('14:00:00')<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; abilhetes.valor := (t_min/60) * valor_prefixo * v_taxa_extra * v_imposto ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if dayofweek(abilhetes.data_lig)= 1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if degrau_b_public = '0-0-D'&nbsp;&nbsp; then abilhetes.valor:= valor_prefixo * v_taxa_extra * v_imposto ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if degrau_b_public = 'LCR-0-D' then abilhetes.valor:= valor_prefixo * v_taxa_extra * v_imposto ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if degrau_b_public = 'EXC-0-D' then abilhetes.valor:= valor_prefixo * v_taxa_extra * v_imposto ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if abilhetes.duracao&lt;= 0 then abilhetes.valor:= 0 ;<br>&nbsp;&nbsp;&nbsp;&nbsp; abilhetes.valor:= abilhetes.valor + Sql.fieldbyname('aoconectar').AsCurrency ;<br>&nbsp;&nbsp;&nbsp;&nbsp; if valorunico&lt;&gt;0 then abilhetes.valor:= valorunico ;<br>&nbsp;&nbsp;&nbsp;&nbsp; end<br>&nbsp; end;<br>end;<br><br id="FontBreak"></font><br><br><pre style="line-height:17px;white-space:normal;color:rgb(42, 42, 42);background-color:rgb(255, 255, 255)">Hudson&nbsp;<br>(048) 8413-7000<br>Para quem nao cre, nenhuma prova converte,Para aquele que cre, nenhuma prova precisa.&nbsp;</pre><br><br><div><hr id="stopSpelling">Date: Mon, 28 Dec 2015 16:48:46 -0200<br>From: jrfreitas83@gmail.com<br>To: asteriskbrasil@listas.asteriskbrasil.org<br>Subject: [AsteriskBrasil] Cálculo de tarifação CDR em PHP<br><br><div dir="ltr"><div><div><div><div><div>Sres, boa tarde.<br><br></div>Poderiam me ajudar, estou precisando tarifar o campo billsec do asteriskcdrdb para comparar com a enviada pela operadora, mas não estou conseguindo chegar a fórmula de tarifação.<br><br></div>Meu provedor me cobra no formato 30/6 com custo de 0,13 centavos o minuto<br><br></div><div>A regra seria:<br>Tempo mínimo de tarifação: 30 segundos;<br>Unidade de tarifação: 06 segundos<br></div><div>Custo Minuto: 0.13&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; <br></div><div><br>Exemplo:<br>&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br>Ligação de 25 segundos: serão tarifados 30 segundos<br>Ligação de 31 segundos: serão tarifados 30 + 06 = 36 segundos<br>Ligação de 37 segundos: serão tarifados 30 + 06 + 06 = 42 segundos<br></div><div><br></div>Alguém teria esses cálculos ou algo parecido que eu pudesse seguir como modelo e chegar a esse resultado.<br><br></div>No google quase não tem essa informação, e os que eu achei tentei fazer mas sem sucesso, segue abaixo o exemplo da fórmula que estou usando e como está o relatório em anexo.<br><br></div><div>Não sei programar em php, e sim curioso, logo peço desculpa pelo código.<br></div><div><br>tarifador.php<br><br>$query = "SELECT calldate, src, dst, duration, billsec, disposition, uniqueid FROM $tablename WHERE calldate &gt;= '".$dtinicial."' AND billsec &gt; 0 ORDER BY calldate DESC LIMIT 20 ";<br>$result = mysql_query($query);<br><br>// Return the results, loop through them and echo<br><br>while($row&nbsp; = mysql_fetch_array($result))<br><br>{<br><br>$segundos = $row['billsec'];<br>$val_minuto = 0.13;<br>$val_minuto30 = $val_minuto /2;<br>$val_minuto2 = $val_minuto / 10;<br>$val_minuto3 = $val_minuto2 * $segundos + $val_minuto;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($segundos &lt;= 30){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $x = "{$val_minuto30}";<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $x = "{$val_minuto3}";<br>}<br><br><br><br></div><div>Obrigado a todos pela ajuda e Feliz Ano Novo!!!<br></div><div><br></div></div>
<br>_______________________________________________
KHOMP: completa linha de placas externas FXO, FXS, GSM e E1
Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7
Intercomunicador e acesso remoto via rede IP e telefones IP
Conhe�a todo o portf�lio em www.Khomp.com
_______________________________________________
Para remover seu email desta lista, basta enviar um email em branco para asteriskbrasil-unsubscribe@listas.asteriskbrasil.org</div>                                               </div></body>
</html>