[firebase-br] RES: Função para calculo de juros e mora

André Conrado acf em andreconrado.net
Sex Set 28 13:54:45 -03 2012


porque vc não usar a função interna DATEDIFF(). Está disponível em > FB 2.1.

Abs

Em 27 de setembro de 2012 18:01, ANDERSON JUNIOR GADO DA SILVA
<andersonscinfo em gmail.com> escreveu:
> perfeito, é isso mesmo que preciso, mas to com um probleminha....eu to
> fazendo isso dentro de uma view e a operação de diminuir a data ta dando
> problema, vou postar a minha view e vou mostrar onde esta o erro, e o
> detalhe é que o erro ocorre na hora de visualizar os dados e não na hora de
> compilar a view...compilar compila numa boa....
>
> CREATE VIEW VW_CONTROLERECEBER(
>     IACONTROLE,
>     IADATAEMISSAO,
>     IANUMDOC,
>     IADEVEDOR,
>     IACLIENTE,
>     IAVALOR,
>     IADATAVECTO,
>     IACOD_HIST,
>     IAHISTORICO,
>     IADIVIDA,
>     IAVALORPARCELA,
>     IADATACOBRA,
>     IAPARCELA,
>     IANUMPEDIDO,
>     IAOPERACAO,
>     IACODOPER,
>     IALANCAMENTO,
>     IAJUROS,
>     IADESCONTO,
>     IADATAPGTO,
>     IATOTALPAGO,
>     IAPORTADOR,
>     IAMULTA,
>     IAOBS,
>     IADUPLICATA,
>     IAPERCENTUALDEMULTA,
>     IAACRESCIMO,
>     IADATA,
>     IAORIGEM,
>     IACODVEND,
>     IAQUITAR,
>     IACOD_PORT,
>     IACONTROLENOTA,
>     IACOMISSAO,
>     IASTARTCOM,
>     IAVLRCOM,
>     IATIPOREC,
>     IAFORMAPGTO,
>     IADATADUPLICATA,
>     IASTARTCARTA,
>     IAJAEMITIU,
>     IASTARTTROCA,
>     IANTROCA,
>     IATIPO,
>     IAFORNECEDOR,
>     IABANCOTRANSMISSAO,
>     IASEQUENCIA,
>     IADATALIMDESCONTO,
>     IAPROTESTO,
>     IAIMPRIMIR,
>     IADATAENTRADA,
>     IADUPLDESCONTO,
>     IADUPLDESCONTADA,
>     IADATACOBR1,
>     IADATACOBR2,
>     IAATIVA,
>     IAMOTIVOIN,
>     IAUSUARIO,
>     IACENTRODECUSTO,
>     IASUBCUSTO,
>     IAMOEDA,
>     IACOD_FILIAL,
>     IABANCODEPOSITO,
>     IANBANCO,
>     IAGRUPOCONTAS,
>     IAGRUPOCCUSTO,
>     IAFATURA,
>     IAMAQ,
>     IATRANSMITIR,
>     IAATIVO,
>     IASTATUS,
>     IBCOD_CLI,
>     IBNOME_CLI,
>     ICCOD_GRCONTAS,
>     ICDESCR_GRCONTAS,
>     IDID_CCUSTO,
>     IDDESCR_CCUSTO,
>     IECOD_GRCCUSTO,
>     IEDESCR_GRCCUSTO,
>     IFCOD_PORT,
>     IFDESCR_PORT,
>     IADIAS_ATRAZO,
>     IATOTJUROS)
> AS
> select A.CONTROLE,
>     A.DATAEMISSAO,
>     A.NUMDOC,
>     A.DEVEDOR,
>     A.CLIENTE,
>     A.VALOR,
>     A.DATAVECTO,
>     A.COD_HIST,
>     A.HISTORICO,
>     A.DIVIDA,
>     A.VALORPARCELA,
>     A.DATACOBRA,
>     A.PARCELA,
>     A.NUMPEDIDO,
>     A.OPERACAO,
>     A.CODOPER,
>     A.LANCAMENTO,
>     A.JUROS,
>     A.DESCONTO,
>     A.DATAPGTO,
>     A.TOTALPAGO,
>     A.PORTADOR,
>     A.MULTA,
>     A.OBS,
>     A.DUPLICATA,
>     A.PERCENTUALDEMULTA,
>     A.ACRESCIMO,
>     A.DATA,
>     A.ORIGEM,
>     A.CODVEND,
>     A.QUITAR,
>     A.COD_PORT,
>     A.CONTROLENOTA,
>     A.COMISSAO,
>     A.STARTCOM,
>     A.VLRCOM,
>     A.TIPOREC,
>     A.FORMAPGTO,
>     A.DATADUPLICATA,
>     A.STARTCARTA,
>     A.JAEMITIU,
>     A.STARTTROCA,
>     A.NTROCA,
>     A.TIPO,
>     A.FORNECEDOR,
>     A.BANCOTRANSMISSAO,
>     A.SEQUENCIA,
>     A.DATALIMDESCONTO,
>     A.PROTESTO,
>     A.IMPRIMIR,
>     A.DATAENTRADA,
>     A.DUPLDESCONTO,
>     A.DUPLDESCONTADA,
>     A.DATACOBR1,
>     A.DATACOBR2,
>     A.ATIVA,
>     A.MOTIVOIN,
>     A.USUARIO,
>     A.CENTRODECUSTO,
>     A.SUBCUSTO,
>     A.MOEDA,
>     A.COD_FILIAL,
>     A.BANCODEPOSITO,
>     A.NBANCO,
>     A.GRUPOCONTAS,
>     A.GRUPOCCUSTO,
>     A.FATURA,
>     A.MAQ,
>     A.TRANSMITIR,
>     A.ATIVO,
>     A.STATUS,
>     B.COD_CLI,
>     B.NOME_CLI,
>     COALESCE(C.COD_GRCONTAS, 0),
>     C.DESCR_GRCONTAS,
>     COALESCE(D.ID_CCUSTO, 0),
>     D.DESCR_CCUSTO,
>     COALESCE(E.COD_GRCCUSTO, 0),
>     E.DESCR_GRCCUSTO,
>     F.COD_PORT,
>     F.DESCR_PORT,
>     (CASE
>     WHEN A.DATAVECTO < current_date THEN
>         CAST ((current_date - A.DATAVECTO) as integer)
>  //-------------------------o erro ocorre
> aqui------------------------------\\
>     ELSE
>         0
>     END),
>     (CASE
>     WHEN A.DATAVECTO < current_date THEN
>         (A.VALOR*2.43)/100
>     ELSE
>         0
>     END)
>  from CONTROLERECEBER A
> left join CADCLICOMERCIO B on B.COD_CLI = A.CLIENTE
> left join TB_CAD_GRUPO_CONTAS C on C.COD_GRCONTAS =  A.GRUPOCONTAS
> left join TB_CAD_CCUSTO D on D.ID_CCUSTO = A.CENTRODECUSTO
> left join TB_CAD_GRUPO_CCUSTO E on E.COD_GRCCUSTO = A.GRUPOCCUSTO
> left join CADPORTADOR F on F.COD_PORT = A.PORTADOR
> ;
>
> o segundo case não da erro, só o primeiro, acho que o problema esta ali na
> hora de subtrair a data.....a versão do firebird é a 1.5
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa




Mais detalhes sobre a lista de discussão lista