Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,298 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : VEPRRP008
|
||||
OBJETIVO : Cuentas por Cobrar a mas de x dias
|
||||
PROGRAMADOR : Lic. Abner Montalvo Zapata
|
||||
FECHA REALIZACION : Abril 6, 1993
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "ccprgb000.4gl"
|
||||
|
||||
DEFINE fecha_corte DATE
|
||||
DEFINE dias_venc, idx_1, idx_2 SMALLINT
|
||||
DEFINE doccli RECORD
|
||||
tipo_cliente SMALLINT,
|
||||
sec_cliente SMALLINT,
|
||||
nombre CHAR(30),
|
||||
aplica_a INTEGER,
|
||||
tipo CHAR(2),
|
||||
fecha DATE,
|
||||
valor DECIMAL(12,2),
|
||||
cliente CHAR(6)
|
||||
END RECORD
|
||||
|
||||
FUNCTION ccprrp008()
|
||||
|
||||
# WHENEVER ERROR CONTINUE
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM ccfmrp008 FROM "ccfmrp008"
|
||||
DISPLAY FORM ccfmrp008
|
||||
CALL pantalla()
|
||||
DISPLAY "ccprrp008" AT 4,3
|
||||
DISPLAY "Cuentas por Cobrar Vencidas" AT 6,26
|
||||
|
||||
LET tipo_papel = 1
|
||||
CALL msgrp000(tipo_papel)
|
||||
|
||||
INPUT BY NAME fecha_corte, dias_venc
|
||||
|
||||
BEFORE FIELD fecha_corte
|
||||
LET fecha_corte = today
|
||||
|
||||
AFTER FIELD fecha_corte
|
||||
IF fecha_corte is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fecha_corte
|
||||
END IF
|
||||
|
||||
AFTER FIELD dias_venc
|
||||
IF dias_venc is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD dias_venc
|
||||
END IF
|
||||
|
||||
END INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
# Busca pendiente de las facturas cuyas fechas de vencimiento son menores
|
||||
# a la fecha de corte
|
||||
|
||||
DECLARE fts_pendientes CURSOR FOR
|
||||
SELECT UNIQUE b.tipo_cliente,b.sec_cliente,a.nombre,b.num_doc,b.tipo_doc,
|
||||
MIN(b.fecha_orig)
|
||||
FROM vetb00004 a,cctb00001 b
|
||||
WHERE a.tipo_cliente = b.tipo_cliente AND a.sec_cliente = b.sec_cliente AND
|
||||
b.status_t IS NULL AND b.fecha_orig <= fecha_corte AND
|
||||
b.num_doc = b.aplica_a AND (fecha_corte-b.fecha_orig) >= dias_venc
|
||||
GROUP BY 1,2,3,4,5
|
||||
|
||||
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
|
||||
ATTRIBUTE (REVERSE,BOLD)
|
||||
|
||||
START REPORT reporte8 TO "C:\\ccrp08"
|
||||
DISPLAY " " AT 19,14
|
||||
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
|
||||
AT 19,14 ATTRIBUTE (REVERSE)
|
||||
|
||||
FOREACH fts_pendientes INTO doccli.*
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET doccli.cliente = doccli.tipo_cliente using "&&",
|
||||
doccli.sec_cliente using "&&&&"
|
||||
|
||||
IF doccli.tipo = "AV" THEN
|
||||
SELECT SUM(a.valor+a.monto_desc)*-1 INTO doccli.valor FROM cctb00001 a
|
||||
WHERE a.tipo_cliente=doccli.tipo_cliente AND a.sec_cliente=doccli.sec_cliente
|
||||
AND a.fecha_orig <= fecha_corte AND a.status_t IS NULL
|
||||
AND a.num_doc = doccli.aplica_a AND a.tipo_doc = "AV"
|
||||
ELSE
|
||||
SELECT SUM(a.valor+a.monto_desc) INTO doccli.valor FROM cctb00001 a
|
||||
WHERE a.tipo_cliente=doccli.tipo_cliente AND a.sec_cliente=doccli.sec_cliente
|
||||
AND a.fecha_orig <= fecha_corte AND a.status_t IS NULL AND
|
||||
a.aplica_a = doccli.aplica_a AND a.tipo_doc != "PC"
|
||||
END IF
|
||||
|
||||
IF (fecha_corte - doccli.fecha) >= dias_venc AND doccli.valor <> 0 THEN
|
||||
OUTPUT TO REPORT reporte8(doccli.*)
|
||||
END IF
|
||||
END FOREACH
|
||||
|
||||
FINISH REPORT reporte8
|
||||
CLEAR SCREEN
|
||||
RUN "type C:\\ccrp08 > %USPRINT%" END FUNCTION
|
||||
|
||||
REPORT reporte8(x)
|
||||
DEFINE x RECORD
|
||||
tipo_cliente SMALLINT,
|
||||
sec_cliente SMALLINT,
|
||||
nombre CHAR(30),
|
||||
aplica_a INTEGER,
|
||||
tipo CHAR(2),
|
||||
fecha DATE,
|
||||
valor DECIMAL(12,2),
|
||||
cliente CHAR(6)
|
||||
END RECORD
|
||||
|
||||
DEFINE doble_on CHAR(2)
|
||||
DEFINE doble_off CHAR(2)
|
||||
DEFINE negrillas_on CHAR(2)
|
||||
DEFINE negrillas_off CHAR(2)
|
||||
DEFINE comp_on CHAR(2)
|
||||
DEFINE comp_off CHAR(2)
|
||||
DEFINE doce CHAR(2)
|
||||
DEFINE comprimido CHAR(3)
|
||||
DEFINE normall CHAR(3)
|
||||
DEFINE normal CHAR(2)
|
||||
DEFINE hora CHAR(5)
|
||||
DEFINE imprime CHAR(1)
|
||||
DEFINE fecha_fact DATE
|
||||
DEFINE de1a30, de31a45, de46a60, masde60, total_saldo DECIMAL(12,2)
|
||||
DEFINE valor,t30,t45,t60,tm60,tsaldo,tt45,ttm60,tt60,ttsaldo DECIMAL(12,2)
|
||||
DEFINE dias INTEGER
|
||||
|
||||
OUTPUT
|
||||
TOP MARGIN 0
|
||||
LEFT MARGIN 0
|
||||
BOTTOM MARGIN 2
|
||||
|
||||
ORDER BY x.sec_cliente,x.aplica_a
|
||||
|
||||
FORMAT
|
||||
PAGE HEADER
|
||||
LET doble_on = ASCII 14
|
||||
LET doble_off = ASCII 20
|
||||
LET negrillas_on = ASCII 27, ASCII 69
|
||||
LET negrillas_off = ASCII 27, ASCII 69
|
||||
LET comp_on = ASCII 15
|
||||
LET comp_off = ASCII 18
|
||||
LET comprimido = ASCII 15
|
||||
LET doce = ASCII 27, ASCII 77
|
||||
LET normal = ASCII 27, ASCII 80
|
||||
LET normal = ASCII 27, ASCII 80
|
||||
LET hora = time
|
||||
|
||||
LET lj = (96 - LENGTH(p_companias.nombre CLIPPED))/2
|
||||
PRINT COLUMN 1, doce,negrillas_on
|
||||
PRINT COLUMN 1, "ccprrp008",
|
||||
COLUMN lj, p_companias.nombre CLIPPED,
|
||||
COLUMN 89, "Pag. ",pageno using "###"
|
||||
PRINT COLUMN 33, "Sistema de Cuentas por Cobrar",
|
||||
COLUMN 89, today using "dd/mm/yyyy"
|
||||
PRINT COLUMN 30, "Cuentas por Cobrar a mas de ",
|
||||
dias_venc using "<<<<"," dias"
|
||||
PRINT COLUMN 43, "Al ", fecha_corte using "dd/mm/yy",
|
||||
COLUMN 92, hora
|
||||
|
||||
SKIP 1 LINES
|
||||
|
||||
PRINT COLUMN 5, "--------------------------------------------------",
|
||||
"------------------------------------------"
|
||||
|
||||
PRINT COLUMN 7, "C l i e n t e",
|
||||
COLUMN 50, "De ", dias_venc + 1 using "<<<<", " a ",
|
||||
dias_venc + 15 using "<<<<",
|
||||
COLUMN 72, "Mas de ", dias_venc + 15 using "<<<<",
|
||||
COLUMN 92, "Total"
|
||||
|
||||
PRINT COLUMN 5, "--------------------------------------------------",
|
||||
"------------------------------------------"
|
||||
PRINT COLUMN 1, negrillas_off
|
||||
|
||||
BEFORE GROUP OF x.sec_cliente
|
||||
LET de31a45 = 0
|
||||
LET masde60 = 0
|
||||
LET total_saldo = 0
|
||||
|
||||
ON EVERY ROW
|
||||
|
||||
IF de31a45 IS NULL THEN
|
||||
LET de31a45 = 0
|
||||
END IF
|
||||
|
||||
IF masde60 IS NULL THEN
|
||||
LET masde60 = 0
|
||||
END IF
|
||||
|
||||
IF total_saldo IS NULL THEN
|
||||
LET total_saldo = 0
|
||||
END IF
|
||||
|
||||
IF x.fecha IS NULL THEN
|
||||
LET fecha_fact = 0
|
||||
END IF
|
||||
|
||||
LET dias = fecha_corte - x.fecha
|
||||
|
||||
IF dias <= (dias_venc + 15) THEN
|
||||
LET de31a45 = de31a45 + x.valor
|
||||
LET total_saldo = total_saldo + x.valor
|
||||
END IF
|
||||
|
||||
IF dias > (dias_venc + 15) THEN
|
||||
LET masde60 = masde60 + x.valor
|
||||
LET total_saldo = total_saldo + x.valor
|
||||
END IF
|
||||
|
||||
AFTER GROUP OF x.sec_cliente
|
||||
PRINT COLUMN 5, x.tipo_cliente using "&&", "-",
|
||||
x.sec_cliente using "&&&&", " ",
|
||||
x.nombre clipped,
|
||||
COLUMN 45, de31a45 using "(((,(((,(((.##)",
|
||||
COLUMN 66, masde60 using "(((,(((,(((.##)",
|
||||
COLUMN 82, total_saldo using "(((,(((,(((.##)"
|
||||
|
||||
IF t45 IS NULL THEN
|
||||
LET t45 = 0
|
||||
END IF
|
||||
|
||||
IF tm60 IS NULL THEN
|
||||
LET tm60 = 0
|
||||
END IF
|
||||
|
||||
IF tsaldo IS NULL THEN
|
||||
LET tsaldo = 0
|
||||
END IF
|
||||
|
||||
IF tt45 IS NULL THEN
|
||||
LET tt45 = 0
|
||||
END IF
|
||||
|
||||
IF ttm60 IS NULL THEN
|
||||
LET ttm60 = 0
|
||||
END IF
|
||||
|
||||
IF ttsaldo IS NULL THEN
|
||||
LET ttsaldo = 0
|
||||
END IF
|
||||
|
||||
IF x.sec_cliente < 9000 THEN
|
||||
LET t45 = t45 + de31a45
|
||||
LET tm60 = tm60 + masde60
|
||||
LET tsaldo = tsaldo + total_saldo
|
||||
ELSE
|
||||
LET tt45 = tt45 + de31a45
|
||||
LET ttm60 = ttm60 + masde60
|
||||
LET ttsaldo = ttsaldo + total_saldo
|
||||
END IF
|
||||
|
||||
LET de31a45 = 0
|
||||
LET masde60 = 0
|
||||
LET total_saldo = 0
|
||||
|
||||
ON LAST ROW
|
||||
SKIP 1 LINE
|
||||
PRINT COLUMN 5, "Total Clientes Locales -->",
|
||||
COLUMN 45, t45 using "(((,(((,(((.##)",
|
||||
COLUMN 66, tm60 using "(((,(((,(((.##)",
|
||||
COLUMN 82, tsaldo using "(((,(((,(((.##)"
|
||||
|
||||
SKIP 1 LINE
|
||||
PRINT COLUMN 6, "Total Clientes Exterior -->",
|
||||
COLUMN 45, tt45 using "(((,(((,(((.##)",
|
||||
COLUMN 66, ttm60 using "(((,(((,(((.##)",
|
||||
COLUMN 82, ttsaldo using "(((,(((,(((.##)"
|
||||
LET tt45 = 0
|
||||
LET ttm60 = 0
|
||||
LET ttsaldo = 0
|
||||
PRINT normal
|
||||
|
||||
END REPORT
|
||||
|
||||
Reference in New Issue
Block a user