Files
2026-09-22 20:38:51 -04:00

31 lines
1.4 KiB
Plaintext

FUNCTION busca_avance(ptipo_cliente,psec_cliente,pcotizacion_no,valor_f,pfecha,psec_vend,psucid,pfactura,pusuario)
DEFINE ptipo_cliente,psec_cliente,pcotizacion_no,pnum_doc,psec_vend,psucid,pfactura INT,pfecha DATE,
valor_f,pvalor,monto_avance DEC(12,2),
pusuario VARCHAR(50)
DECLARE busca_av CURSOR FOR
SELECT a.num_doc, a.valor+monto_desc INTO pnum_doc,pvalor FROM cctb00001 a
WHERE a.tipo_cliente = ptipo_cliente AND a.sec_cliente = psec_cliente AND
a.documento_ref = pcotizacion_no AND a.tipo_Doc = 'AV'
FOREACH busca_av
IF pvalor !=0 THEN
LET monto_avance = 0
SELECT SUM(a.valor+a.monto_desc) INTO monto_avance FROM cctb00001 a
WHERE a.num_doc = pnum_doc AND a.tipo_Doc IN ('AV','AP') AND a.status_t IS NULL
# Cuando el avance tiene valor pendiente por aplicar
IF monto_avance > 0 THEN
IF valor_f >= monto_avance THEN
LET pvalor = monto_avance
ELSE
LET pvalor = valor_f
END IF
INSERT INTO cctb00001 (tipo_doc,num_doc,fecha_orig,tipo_cliente,sec_cliente,aplica_a,num_cheque,cod_emp,cod_emp_sec,
valor,monto_desc,us_crea,fech_crea,banco) VALUES
('AP',pnum_doc,pfecha,ptipo_cliente,psec_cliente,pfactura,pnum_doc,psucid,psec_vend,pvalor*-1,'0',
pusuario,getdate(),pcotizacion_no)
END IF
END IF
END FOREACH
END FUNCTION