Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,296 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : CPPRRP005
|
||||
OBJETIVO : Cuentas por Pagar a mas de x dias
|
||||
PROGRAMADOR : Tadeo A. Ferreras
|
||||
FECHA REALIZACION : Junio 17, 1993
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "cpprgb000.4gl"
|
||||
|
||||
DEFINE fecha_corte DATE
|
||||
DEFINE dias_venc INTEGER,
|
||||
cod_sup SMALLINT
|
||||
DEFINE doccli RECORD
|
||||
cod_sp SMALLINT,
|
||||
cod_sp_sec SMALLINT,
|
||||
aplica_a CHAR(10),
|
||||
pendiente DECIMAL(12,2),
|
||||
suplidor CHAR(6)
|
||||
END RECORD
|
||||
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
SELECT * INTO p_companias.* FROM companias
|
||||
CALL cpprrp005()
|
||||
END MAIN
|
||||
|
||||
FUNCTION cpprrp005()
|
||||
|
||||
# WHENEVER ERROR CONTINUE
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM cpfmrp005 FROM "cpfmrp005"
|
||||
DISPLAY FORM cpfmrp005
|
||||
CALL pantalla()
|
||||
DISPLAY "cpprrp005" AT 4,3
|
||||
DISPLAY "Cuentas Por Pagar a Mas De X Dias" AT 6,23
|
||||
|
||||
LET tipo_papel = 1
|
||||
CALL msgrp000(tipo_papel)
|
||||
|
||||
INPUT BY NAME fecha_corte,dias_venc,cod_sup
|
||||
|
||||
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
|
||||
|
||||
AFTER FIELD cod_sup
|
||||
IF cod_sup is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_sup
|
||||
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
|
||||
|
||||
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
|
||||
|
||||
DECLARE fts_pendientes CURSOR FOR
|
||||
SELECT a.cod_sp,a.cod_sp_sec,a.aplica_a,SUM(a.valor) FROM cptb00001 a
|
||||
WHERE (a.cod_sp = cod_sup) AND (a.fecha_orig <= fecha_corte) and
|
||||
(a.status_t is null) AND (a.tipo_doc NOT IN ("CP"))
|
||||
GROUP BY 1,2,3 HAVING SUM(a.valor) <> 0 ORDER BY 1,2,3
|
||||
|
||||
OPEN fts_pendientes
|
||||
START REPORT reporte88 TO "C:\\archivo"
|
||||
|
||||
DISPLAY " " AT 19,14
|
||||
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14
|
||||
|
||||
WHILE STATUS != NOTFOUND
|
||||
FETCH fts_pendientes INTO doccli.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
EXIT WHILE
|
||||
END IF
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET doccli.suplidor = doccli.cod_sp using "&&",
|
||||
doccli.cod_sp_sec using "&&&&"
|
||||
|
||||
DISPLAY "Datos---> ",doccli.suplidor," ",doccli.aplica_a," ",
|
||||
doccli.pendiente USING "###,###,##&.&&" AT 20,10
|
||||
OUTPUT TO REPORT reporte88(doccli.*)
|
||||
END WHILE
|
||||
FINISH REPORT reporte88
|
||||
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
||||
|
||||
REPORT reporte88(x)
|
||||
DEFINE x RECORD
|
||||
cod_sp SMALLINT,
|
||||
cod_sp_sec SMALLINT,
|
||||
aplica_a CHAR(10),
|
||||
pendiente DECIMAL(12,2),
|
||||
suplidor CHAR(6)
|
||||
END RECORD
|
||||
|
||||
DEFINE doble_on CHAR(2)
|
||||
DEFINE doble_off CHAR(2)
|
||||
DEFINE negrillas_on CHAR(6)
|
||||
DEFINE negrillas_off CHAR(6)
|
||||
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_factura DATE,
|
||||
nom_sup CHAR(30)
|
||||
DEFINE de1a30, de31a45, de46a60, masde60, total_saldo DECIMAL(12,2)
|
||||
DEFINE mont, t30, t45, t60, tm60, tsaldo DECIMAL(12,2)
|
||||
DEFINE dias INTEGER
|
||||
|
||||
OUTPUT
|
||||
TOP MARGIN 0
|
||||
LEFT MARGIN 0
|
||||
BOTTOM MARGIN 2
|
||||
|
||||
ORDER BY x.suplidor
|
||||
|
||||
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 70
|
||||
LET comp_on = ASCII 15
|
||||
LET comp_off = ASCII 18
|
||||
LET doce = ASCII 27, ASCII 77
|
||||
LET normal = ASCII 27, ASCII 80
|
||||
LET hora = time
|
||||
|
||||
LET lj = (91 - LENGTH(p_companias.nombre CLIPPED))/2
|
||||
PRINT COLUMN 1, comp_off,doce, negrillas_on
|
||||
PRINT COLUMN 1, "cpprrp005",
|
||||
COLUMN lj, p_companias.nombre CLIPPED,
|
||||
COLUMN 84, "Pag. ",pageno using "###"
|
||||
PRINT COLUMN 30, "Sistema de Cuentas por Pagar",
|
||||
COLUMN 82, today using "dd/mm/yyyy"
|
||||
PRINT COLUMN 27, "Cuentas Por Pagar a mas de ",
|
||||
dias_venc using "<<<<", " dias"
|
||||
PRINT COLUMN 39, "Al ", fecha_corte using "dd/mm/yy",
|
||||
COLUMN 87, hora
|
||||
|
||||
SKIP 1 LINES
|
||||
|
||||
PRINT COLUMN 1, "--------------------------------------------------",
|
||||
"------------------------------------------"
|
||||
|
||||
PRINT COLUMN 2, "S u p l i d o r",
|
||||
COLUMN 45, "De ", dias_venc + 1 using "<<<<", " a ",
|
||||
dias_venc + 15 using "<<<<",
|
||||
COLUMN 67, "Mas de ", dias_venc + 15 using "<<<<",
|
||||
COLUMN 87, "Total"
|
||||
|
||||
PRINT COLUMN 1, "--------------------------------------------------",
|
||||
"------------------------------------------"
|
||||
PRINT COLUMN 1, negrillas_off
|
||||
|
||||
BEFORE GROUP OF x.suplidor
|
||||
LET imprime = "S"
|
||||
SELECT a.nom_sp INTO nom_sup FROM cotb00001 a
|
||||
WHERE a.cod_sp = x.cod_sp AND a.cod_sp_sec = x.cod_sp_sec
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET imprime = "N"
|
||||
LET STATUS = 0
|
||||
END IF
|
||||
|
||||
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 imprime = "S" THEN
|
||||
SELECT MIN(a.fecha_orig) INTO fecha_factura FROM cptb00001 a
|
||||
WHERE a.num_doc = x.aplica_a AND a.cod_sp = x.cod_sp AND
|
||||
a.cod_sp_sec = x.cod_sp_sec
|
||||
|
||||
IF fecha_factura IS NULL THEN
|
||||
LET fecha_factura = 0
|
||||
END IF
|
||||
|
||||
LET dias = fecha_corte - fecha_factura
|
||||
|
||||
IF dias <= dias_venc + 15 THEN
|
||||
LET de31a45 = de31a45 + x.pendiente
|
||||
LET total_saldo = total_saldo + x.pendiente
|
||||
ELSE
|
||||
LET masde60 = masde60 + x.pendiente
|
||||
END IF
|
||||
END IF
|
||||
|
||||
AFTER GROUP OF x.suplidor
|
||||
IF imprime = "S" THEN
|
||||
SELECT SUM(a.valor*-1) INTO mont FROM cptb00001 a
|
||||
WHERE a.cod_sp = x.cod_sp AND a.cod_sp_sec = x.cod_sp_sec AND
|
||||
a.fecha_orig <= fecha_corte AND a.tipo_doc = "CP" AND
|
||||
a.aplica_a IS NULL
|
||||
|
||||
IF mont IS NULL THEN
|
||||
LET mont = 0
|
||||
END IF
|
||||
|
||||
LET masde60 = masde60 - mont
|
||||
IF de31a45 = 0 AND
|
||||
masde60 = 0 AND
|
||||
total_saldo = 0 THEN
|
||||
LET imprime = "N"
|
||||
END IF
|
||||
|
||||
LET total_saldo = 0
|
||||
LET total_saldo = de31a45 + masde60
|
||||
|
||||
PRINT COLUMN 1, x.cod_sp using "&&", "-",
|
||||
x.cod_sp_sec using "&&&&", " ",
|
||||
nom_sup clipped,
|
||||
COLUMN 40, de31a45 using "(((,(((,(((.##)",
|
||||
COLUMN 61, masde60 using "(((,(((,(((.##)",
|
||||
COLUMN 77, 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
|
||||
|
||||
LET t45 = t45 + de31a45
|
||||
LET tm60 = tm60 + masde60
|
||||
LET tsaldo = tsaldo + total_saldo
|
||||
|
||||
LET de31a45 = 0
|
||||
LET masde60 = 0
|
||||
LET total_saldo = 0
|
||||
END IF
|
||||
|
||||
ON LAST ROW
|
||||
SKIP 1 LINE
|
||||
PRINT COLUMN 23, "Totales -->",
|
||||
COLUMN 40, t45 using "(((,(((,(((.##)",
|
||||
COLUMN 61, tm60 using "(((,(((,(((.##)",
|
||||
COLUMN 77, tsaldo using "(((,(((,(((.##)"
|
||||
|
||||
LET t45 = 0
|
||||
LET tm60 = 0
|
||||
LET tsaldo = 0
|
||||
PRINT normall
|
||||
|
||||
END REPORT
|
||||
|
||||
Reference in New Issue
Block a user