Boa Júnior! Eu uso o campo accountcode do CDR para os tipos de ligação (fixo local, móvel local, etc) e depois faço o cálculo de acordo com cada valor. Em 05/01/2016 11:59, "Junior Freitas" <[email protected]> escreveu:
> Obrigado a todos pela ajuda com a solução do cálculo da tarifação. > > Danilo seu exemplo está perfeito, não precisei adicionar uma vírgula :) > > Agora vou adicionar outras variáveis para calcular de acordo com o tipo de > ligação Fixo, Movel, DDD. quando estiver pronto vou enviar o código para a > lista pois pode ser útil para alguem assim como foi pra mim. > > Obrigado novamente. > > Em 4 de janeiro de 2016 17:16, Danilo Almeida <[email protected]> > escreveu: > >> Fiz um exemplo em PHP aqui (mais simples), acho que funciona rsrs. >> >> $duracaoMinima = Variavel; >> $blocoCadencia = Variavel; >> $valorMin = Variavel; >> >> $valor_cadencia = ($valorMin / (60/$blocoCadencia)); >> >> if ( $billsec <= $duracaoMinima ) { >> >> $qtdcadencia = (int)ceil($duracaoMinima / $blocoCadencia); >> }else{ >> $qtdcadencia = (int)ceil($billsec / $blocoCadencia); >> } >> $custo_lig = $qtdcadencia * $valor_cadencia; >> >> Dessa forma calcula o valor pelo bloco da cadencia, no seu caso 6. Ele >> acha a quantidade de blocos e multiplica pelo valor do mesmo. >> creio que fica mais fácil de entender, ou talvez não...kkkkk >> >> *att* >> *Danilo Almeida* >> *skype: danilo.almeida33* >> >> Em 30 de dezembro de 2015 00:14, Hudson Cardoso < >> [email protected]> escreveu: >> >>> Tenho algo assim... >>> Se por acaso servir pra voce, calcula Tempo mínimo, pulsos, >>> arredondamentos, vigência, imposto retroativo,degrau e tipo de data... >>> >>> Está em pascal... >>> >>> try >>> pulsos := 0 ; >>> vcob := timetotempo(abilhetes.duracao); >>> except >>> pulsos := 0 ; >>> vcob := 0 ; >>> end; >>> t_x := vcob - v_Temporizador - tempo_at_simulado ; >>> if t_x < 0 then t_x := 0 ; >>> if t_x<>0 then >>> begin >>> if t_x <= t_min then t_x := t_min ; >>> if t_x > t_min then >>> begin >>> t_x := t_x - t_min ; >>> if t_x = 0 then t_x := 1 ; >>> if t_arr = 0 then t_arr := 1 ; >>> t_res := (trunc(t_x/t_arr)*t_arr); >>> pulsos := trunc(t_x/t_arr) ; >>> if t_x > t_res then pulsos := pulsos + 1 ; >>> if t_x > (T_res) then t_x:=t_res+t_arr ; >>> t_x := t_x + t_min ; >>> end; >>> if t_x = 0 then t_x := 1 ; >>> abilhetes.valor := (t_x/60)*valor_prefixo*v_taxa_extra*v_imposto; >>> if t_min = 0 then t_min := 1 ; >>> >>> if pos('0-0-',degrau_b_public)<> 0 then >>> begin >>> if abilhetes.duracao > strtotime('00:02:00') then >>> abilhetes.valor := (pulsos + 1 ) * valor_prefixo * >>> v_taxa_extra * v_imposto; >>> if abilhetes.duracao <= strtotime('00:02:00') then if >>> pos('0-0-',degrau_b_public)<> 0 >>> then >>> abilhetes.valor := valor_prefixo * v_taxa_extra * >>> v_imposto ; >>> >>> if pos('0-0-S',degrau_b_public)<> 0 then >>> if h_lig > 13 then abilhetes.valor := 2 * ( valor_prefixo * >>> v_taxa_extra * v_imposto ); >>> if pos('0-0-D',degrau_b_public)<> 0 then abilhetes.valor := 2 * >>> ( valor_prefixo * v_taxa_extra * v_imposto ); >>> if h_lig < 7 then abilhetes.valor := 2 * ( valor_prefixo * >>> v_taxa_extra * v_imposto ); >>> end; >>> >>> if pos('0-1-',degrau_b_public)<> 0 then >>> begin >>> if h_lig < 7 then abilhetes.valor := 2 * ( valor_prefixo * >>> v_taxa_extra * v_imposto ); >>> if pos('0-1-S',degrau_b_public)<> 0 then >>> if h_lig > 13 then abilhetes.valor := 2 * ( valor_prefixo * >>> v_taxa_extra * v_imposto ); >>> if pos('0-1-D',degrau_b_public)<> 0 then abilhetes.valor := 2 * >>> ( valor_prefixo * v_taxa_extra * v_imposto ); >>> end; >>> >>> if dayofweek(abilhetes.data_lig)= 7 >>> then >>> if ( (degrau_b_public = '0-0-S') or ( degrau_b_public = >>> 'LCR-0-S') or ( degrau_b_public = 'EXC-0-S' ) ) >>> then >>> if abilhetes.hora_lig > StrToTime('14:00:00') >>> then >>> abilhetes.valor := (t_min/60) * valor_prefixo * v_taxa_extra >>> * v_imposto ; >>> if dayofweek(abilhetes.data_lig)= 1 >>> then >>> begin >>> if degrau_b_public = '0-0-D' then abilhetes.valor:= >>> valor_prefixo * v_taxa_extra * v_imposto ; >>> if degrau_b_public = 'LCR-0-D' then abilhetes.valor:= >>> valor_prefixo * v_taxa_extra * v_imposto ; >>> if degrau_b_public = 'EXC-0-D' then abilhetes.valor:= >>> valor_prefixo * v_taxa_extra * v_imposto ; >>> end; >>> if abilhetes.duracao<= 0 then abilhetes.valor:= 0 ; >>> abilhetes.valor:= abilhetes.valor + >>> Sql.fieldbyname('aoconectar').AsCurrency ; >>> if valorunico<>0 then abilhetes.valor:= valorunico ; >>> end >>> end; >>> end; >>> >>> >>> >>> Hudson >>> (048) 8413-7000 >>> Para quem nao cre, nenhuma prova converte,Para aquele que cre, nenhuma >>> prova precisa. >>> >>> >>> >>> ------------------------------ >>> Date: Mon, 28 Dec 2015 16:48:46 -0200 >>> From: [email protected] >>> To: [email protected] >>> Subject: [AsteriskBrasil] Cálculo de tarifação CDR em PHP >>> >>> >>> Sres, boa tarde. >>> >>> 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. >>> >>> Meu provedor me cobra no formato 30/6 com custo de 0,13 centavos o minuto >>> >>> A regra seria: >>> Tempo mínimo de tarifação: 30 segundos; >>> Unidade de tarifação: 06 segundos >>> Custo Minuto: 0.13 >>> >>> Exemplo: >>> >>> Ligação de 25 segundos: serão tarifados 30 segundos >>> Ligação de 31 segundos: serão tarifados 30 + 06 = 36 segundos >>> Ligação de 37 segundos: serão tarifados 30 + 06 + 06 = 42 segundos >>> >>> Alguém teria esses cálculos ou algo parecido que eu pudesse seguir como >>> modelo e chegar a esse resultado. >>> >>> 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. >>> >>> Não sei programar em php, e sim curioso, logo peço desculpa pelo código. >>> >>> tarifador.php >>> >>> $query = "SELECT calldate, src, dst, duration, billsec, disposition, >>> uniqueid FROM $tablename WHERE calldate >= '".$dtinicial."' AND billsec > 0 >>> ORDER BY calldate DESC LIMIT 20 "; >>> $result = mysql_query($query); >>> >>> // Return the results, loop through them and echo >>> >>> while($row = mysql_fetch_array($result)) >>> >>> { >>> >>> $segundos = $row['billsec']; >>> $val_minuto = 0.13; >>> $val_minuto30 = $val_minuto /2; >>> $val_minuto2 = $val_minuto / 10; >>> $val_minuto3 = $val_minuto2 * $segundos + $val_minuto; >>> >>> if ($segundos <= 30){ >>> $x = "{$val_minuto30}"; >>> >>> }else{ >>> $x = "{$val_minuto3}"; >>> } >>> >>> >>> >>> Obrigado a todos pela ajuda e Feliz Ano Novo!!! >>> >>> >>> _______________________________________________ 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 >>> [email protected] >>> >>> _______________________________________________ >>> 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 >>> [email protected] >>> >> >> >> _______________________________________________ >> 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 >> [email protected] >> > > > _______________________________________________ > 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 > [email protected] >
_______________________________________________ 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 [email protected]

