[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