|
From:
<car...@te...> - 2003-11-25 11:26:47
|
Hello:
> Ok, it's work fine.
> But other question...
> Variable VR_VALOR_BRUTO and VR_VALOR_LIQUDO return nothing values, do
> you know why ?
No, think in that i can't test it ;), just try to move the IF .. ENDIF
block:
CREATE PROCEDURE GET_RECIBOS (
CLI_REFERENCIA VARCHAR(12))
RETURNS (
REC_CODIGO DOUBLE PRECISION,
REC_CLIENTE DOUBLE PRECISION,
REC_DATA DATE,
REC_DATA_LIMITE DATE,
REC_VALOR_ALUGUEL NUMERIC(15,2),
REC_VALOR_TAXA NUMERIC(15,2),
REC_VALOR_MULTA_DESCONTO NUMERIC(15,2),
VR_VALOR_LIQUIDO NUMERIC(15,2),
VR_VALOR_BRUTO NUMERIC(15,2),
REC_DESCRICAO_PERIODO VARCHAR(40),
REC_NUMERO_RECIBO INTEGER,
REC_NUMERO_BANCARIO VARCHAR(15))
AS
DECLARE VARIABLE VR_MULTA_DESCONTO CHAR(1);
DECLARE VARIABLE VR_CLIENTE DOUBLE PRECISION;
begin
/* Procedure Text */
SELECT CODIGO FROM get_codigo_cliente(:CLI_REFERENCIA)
INTO :VR_CLIENTE;
FOR SELECT REC_CODIGO,
REC_CLIENTE,
REC_DATA,
REC_DATA_LIMITE,
REC_VALOR_ALUGUEL,
REC_MULTA_DESCONTO,
REC_VALOR_MULTA_DESCONTO,
REC_DESCRICAO_PERIODO,
REC_NUMERO_RECIBO,
REC_NUMERO_BANCARIO
FROM RECIBO
WHERE REC_CLIENTE = :VR_CLIENTE
INTO :REC_CODIGO,
:REC_CLIENTE,
:REC_DATA,
:REC_DATA_LIMITE,
:REC_VALOR_ALUGUEL,
:VR_MULTA_DESCONTO,
:REC_VALOR_MULTA_DESCONTO,
:REC_DESCRICAO_PERIODO,
:REC_NUMERO_RECIBO,
:REC_NUMERO_BANCARIO
DO
BEGIN
SUSPEND;
END
IF (VR_MULTA_DESCONTO = 'D')
THEN BEGIN
VR_VALOR_BRUTO = :REC_VALOR_ALUGUEL
+ :REC_VALOR_TAXA;
VR_VALOR_LIQUIDO = VR_VALOR_BRUTO
- :REC_VALOR_MULTA_DESCONTO;
END
ELSE BEGIN
VR_VALOR_BRUTO = :REC_VALOR_ALUGUEL
+ :REC_VALOR_TAXA
+ :REC_VALOR_MULTA_DESCONTO;
VR_VALOR_LIQUIDO = VR_VALOR_BRUTO
- :REC_VALOR_MULTA_DESCONTO;
END
END
--
Best regards
Carlos Guzmán álvarez
Vigo-Spain
|