[firebase-br] Estorno ***de loucos***
Mário Reis
secretariadogeral em acra.pt
Qui Ago 21 07:43:03 -03 2008
Bom dia,
Estou há horas a tentar implementar o "Estorno de uma operação financeira"
coisa que é termo conceptuais é muito simples. Temos uma ou várias linhas
com indicação de "pagas" por erro que afinal não estão e é preciso corrigir.
O fisco exige e até por razões de transparencia da propria
empresa/associação etc que se não se apaguem linhas mas, antes, que repitam
as mesmas linhas cada uma com os Valores *-1 uma, e que a mesma se repita
c/sinal positivo mas agora sem por exemplo Data de pagamento, N.º de Recibo
e N.ºOperação(controla todos os registos de uma transacção) e estou a fazer
assim
FOR SELECT CB1.COBRANCA_ID, CB1.VALOR_PG, CB1.VALOR_IVA, CB1.VALOR_DISC,
CB1.DT_PG_EFECTIVO, CB1.NORECIBO, CB1.NOOPERACAO
FROM COBRANCAS CB1
WHERE CB1.DT_PG_EFECTIVO=:IN_DT_PG_EFT AND CB1.CLIENTE_ID=:IN_CLI_ID
INTO :WCOBRANCA_ID, :WVLR_PG, :WVLR_IVA, :WVLR_DISC, :WDT_PG_EFECTIVO,
:WNORECIBO,:NOOPERACAO
DO
BEGIN
/* 1. NEGATIVAR VALORES */
WVLR_PG=WVLR_PG*-1;
WVLR_IVA=WVLR_IVA*-1;
WVLR_DISC=WVLR_DISC*-1;
/* 2. NOTA: NO MESMO FICHEIRO */
/* 2.1 ---------------------------------------> INSERE UMA LINHA NEGATIVA
*/
INSERT INTO COBRANCAS
(COBRANCA_ID, VALOR_PG, VALOR_IVA, VALOR_DISC, DT_PG_EFECTIVO,
NORECIBO,NOOPERACAO)
VALUES(:WCOBRANCA_ID, :WVLR_PG, :WVLR_IVA, :WVLR_DISC, :WDT_PG_EFECTIVO,
ORECIBO,:WNOOPERACAO);
/* 2.2 POSITIVAR VALORES DA MESMA LINHA E RE-INSERI-LOS*/
/* C/CONTROLOS DO PAGAMENTO A NULL INDICANDO O S/NÃO PAGAMENTO */
WDT_PG_EFECTIVO=NULL;
WNORECIBO=NULL
WNOOPERACAO=NULL
WVLR_PG=WVLR_PG*-1;
WVLR_IVA=WVLR_IVA*-1;
WVLR_DISC=WVLR_DISC*-1;
/* NOTA: AINDA NO MESMO FICHEIRO */
/* 2.3------------------------------------------>INSERE UMA LINHA POSITIVA
MAS, NÃO PAGA */
INSERT INTO COBRANCAS
(COBRANCA_ID, VALOR_PG, VALOR_IVA, VALOR_DISC, DT_PG_EFECTIVO,
NORECIBO,NOOPERACAO)
VALUES(:WCOBRANCA_ID, :WVLR_PG, :WVLR_IVA, :WVLR_DISC, :WDT_PG_EFECTIVO,
ORECIBO,:WNOOPERACAO);
END
suspend,
Só consigo uma 1.ª vez o negativar o 1.º insert O que há de errado neste
codigo?
Alguém já passou por isto que possa ajudar.
Obrigado
Mais detalhes sobre a lista de discussão lista