[firebase-br] RES: Função para calculo de juros e mora
ANDERSON JUNIOR GADO DA SILVA
andersonscinfo em gmail.com
Qui Set 27 18:01:28 -03 2012
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
Mais detalhes sobre a lista de discussão lista