84 lines
3.1 KiB
Plaintext
84 lines
3.1 KiB
Plaintext
|
|
GLOBALS
|
|
DEFINE usuario,clave STRING
|
|
END GLOBALS
|
|
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL ARG_VAL(1) RETURNING usuario
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
|
|
CONNECT TO "marmotech" USER usuario USING clave
|
|
|
|
CALL genera_doc()
|
|
END MAIN
|
|
|
|
FUNCTION genera_doc()
|
|
DEFINE balance,valor1,valor2 DEC(12,2),
|
|
xtipo,xcodigo,numero_doc,vendedor,factura,idx INT
|
|
DECLARE busca CURSOR FOR
|
|
SELECT DISTINCT a.tipo_cliente,a.sec_cliente,d.sec_vend FROM vetb00004 a,cctb00001 b,vetb00061 c,
|
|
vetb00028 d
|
|
WHERE a.tipo_cliente = b.tipo_cliente AND a.sec_cliente = b.sec_cliente AND
|
|
a.tipo_cliente = d.tipo_cliente AND a.sec_cliente = d.sec_cliente AND
|
|
a.status_t IS NULL
|
|
AND a.tipo_cliente = c.tipo_cliente AND c.ventas IN (2,3) AND a.tipo_cliente > 14
|
|
BEGIN WORK
|
|
|
|
SELECT ult_recibo INTO numero_doc FROM cctb00003 WHERE tipo_Doc = 'OD'
|
|
|
|
LET numero_doc= numero_Doc + 1
|
|
UPDATE cctb00003 SET ult_recibo = numero_doc WHERE tipo_Doc = 'OD'
|
|
LET idx = 1
|
|
FOREACH busca INTO xtipo,xcodigo,vendedor
|
|
IF INT_FLAG THEN
|
|
EXIT FOREACH
|
|
END IF
|
|
LET valor1 = 0
|
|
SELECT ISNULL(SUM(a.valor+a.monto_desc),0) INTO valor1 FROM cctb00001 a
|
|
WHERE a.fecha_orig <= '07/31/2018' and
|
|
a.tipo_cliente = xtipo and
|
|
a.sec_cliente = xcodigo and
|
|
a.status_t is null and a.tipo_doc NOT IN ("AV","PC","AP")
|
|
|
|
|
|
|
|
LET valor2 = 0.00
|
|
SELECT ISNULL(SUM(a.valor+a.monto_desc),0) INTO valor2 FROM cctb00001 a
|
|
WHERE a.fecha_orig <= '07/31/2018' and
|
|
a.tipo_cliente = xtipo and
|
|
a.sec_cliente = xcodigo and
|
|
a.status_t is null and tipo_doc = "AV" and a.num_doc = a.aplica_a
|
|
|
|
LET balance = valor1-valor2
|
|
|
|
IF balance < 0 THEN
|
|
|
|
IF balance >=-60 THEN
|
|
SELECT MAX(a.num_doc) INTO factura FROM cctb00001 a
|
|
WHERE a.tipo_cliente = xtipo AND a.sec_cliente = xcodigo AND
|
|
a.tipo_Doc IN ('FT','FE')
|
|
IF factura IS NULL THEN
|
|
CONTINUE FOREACH
|
|
END IF
|
|
LET balance = balance * -1
|
|
|
|
{ CONSOLIDADO
|
|
INSERT INTO cctb00001 (cod_cia,num_doc,tipo_doc,fecha_orig,tipo_cliente,sec_cliente,cod_emp_Sec,
|
|
aplica_a,tipo_Doc_aplica,valor,monto_desc,us_crea,fech_crea)
|
|
VALUES (1,numero_Doc,'OC','07/31/2018',xtipo,xcodigo,vendedor,factura,'FT',balance,0,'JSOTO',GETDATE())
|
|
}
|
|
INSERT INTO cctb00001 (cod_cia,num_doc,tipo_doc,fecha_orig,tipo_cliente,sec_cliente,cod_emp_Sec,
|
|
aplica_a,valor,monto_desc,us_crea,fech_crea)
|
|
VALUES (1,numero_Doc,'OD','07/31/2018',xtipo,xcodigo,vendedor,factura,balance,0,'JSOTO',GETDATE())
|
|
|
|
DISPLAY "INSERT ",xtipo,xcodigo,factura," ",BALANCE
|
|
LET idx = idx + 1
|
|
END IF
|
|
|
|
END IF
|
|
|
|
END FOREACH
|
|
COMMIT WORK
|
|
DISPLAY "TOTAL REGISTROS ",idx
|
|
END FUNCTION |