primer commit subida
This commit is contained in:
@@ -0,0 +1,367 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : CPPRRP002
|
||||
OBJETIVO : Saldos por Antiguedad
|
||||
PROGRAMADOR : Tadeo A. Ferreras
|
||||
FECHA REALIZACION : Junio 16, 1993
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "cpprgb000.4gl"
|
||||
|
||||
DEFINE fecha_corte DATE
|
||||
DEFINE cod_sp1 SMALLINT
|
||||
DEFINE idx_1, idx_2 SMALLINT
|
||||
DEFINE doccli9 RECORD
|
||||
cod_sp SMALLINT,
|
||||
cod_sp_sec SMALLINT,
|
||||
nombre CHAR(30),
|
||||
tipo_doc CHAR(2),
|
||||
fecha_doc DATE,
|
||||
num_doc CHAR(10),
|
||||
suplidor CHAR(6)
|
||||
END RECORD
|
||||
|
||||
DEFINE tot_gen2 RECORD
|
||||
total1 DECIMAL(10,2),
|
||||
total2 DECIMAL(10,2),
|
||||
total3 DECIMAL(10,2),
|
||||
total4 DECIMAL(10,2),
|
||||
total5 DECIMAL(10,2),
|
||||
total6 DECIMAL(10,2)
|
||||
END RECORD
|
||||
|
||||
FUNCTION cpprrp002()
|
||||
DEFINE valor1,valor2,valor3 DECIMAL(12,2)
|
||||
|
||||
# WHENEVER ERROR CONTINUE
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
OPEN FORM cpfmrp002 FROM "cpfmrp002"
|
||||
DISPLAY FORM cpfmrp002
|
||||
CALL pantalla()
|
||||
DISPLAY "cpprrp002" AT 4,3
|
||||
DISPLAY "Saldos por Antiguedad" AT 6,29
|
||||
|
||||
LET tipo_papel = 1
|
||||
CALL msgrp000(tipo_papel)
|
||||
|
||||
|
||||
INPUT BY NAME fecha_corte,cod_sp1
|
||||
|
||||
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 cod_sp1
|
||||
IF cod_sp1 is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_sp1
|
||||
END IF
|
||||
|
||||
END INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
# Busca valor de las facturas cuyas fechas de vencimiento son menores
|
||||
# a la fecha de corte
|
||||
|
||||
DECLARE ft_valor CURSOR FOR
|
||||
SELECT a.cod_sp,a.cod_sp_sec,b.nom_sp,a.tipo_doc,a.fecha_orig,a.num_doc
|
||||
FROM cptb00001 a,cotb00001 b
|
||||
WHERE a.cod_sp = b.cod_sp and a.cod_sp_sec = b.cod_sp_sec and
|
||||
a.fecha_orig <= fecha_corte and a.cod_sp = cod_sp1 and
|
||||
a.status_t is null AND (a.aplica_a = a.num_doc OR a.tipo_doc = "CP")
|
||||
# GROUP BY 1,2,3,4,6
|
||||
|
||||
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
|
||||
ATTRIBUTE (REVERSE,BOLD)
|
||||
|
||||
START REPORT reporte31 TO "C:\\ARCHIVO"
|
||||
|
||||
DISPLAY " " AT 19,14
|
||||
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
|
||||
AT 19,14 ATTRIBUTE (REVERSE)
|
||||
|
||||
FOREACH ft_valor INTO doccli9.*
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
EXIT FOREACH
|
||||
END IF
|
||||
|
||||
LET doccli9.suplidor = doccli9.cod_sp using "&&",
|
||||
doccli9.cod_sp_sec using "&&&&"
|
||||
OUTPUT TO REPORT reporte31(doccli9.*)
|
||||
END FOREACH
|
||||
FINISH REPORT reporte31
|
||||
DISPLAY BY NAME tot_gen2.*
|
||||
|
||||
LET tot_gen2.total1 = 0
|
||||
LET tot_gen2.total2 = 0
|
||||
LET tot_gen2.total3 = 0
|
||||
LET tot_gen2.total4 = 0
|
||||
LET tot_gen2.total6 = 0
|
||||
LET tot_gen2.total5 = 0
|
||||
|
||||
PROMPT "Desea Imprimir Reporte [S/N]......?" FOR CHAR opt
|
||||
LET opt = UPSHIFT(opt)
|
||||
IF opt = "S" THEN
|
||||
RUN "TYPE C:\\ARCHIVO > %USPRINT%"
|
||||
END IF
|
||||
CLEAR SCREEN
|
||||
END FUNCTION
|
||||
|
||||
REPORT reporte31(x)
|
||||
DEFINE x RECORD
|
||||
cod_sp SMALLINT,
|
||||
cod_sp_sec SMALLINT,
|
||||
nombre CHAR(30),
|
||||
tipo_doc CHAR(2),
|
||||
fecha_doc DATE,
|
||||
num_doc CHAR(10),
|
||||
suplidor CHAR(6)
|
||||
END RECORD
|
||||
|
||||
DEFINE valor1,valor2,valor3,valor4 DECIMAL(12,2)
|
||||
DEFINE doble_on CHAR(2)
|
||||
DEFINE doble_off CHAR(2)
|
||||
DEFINE negrillas_on CHAR(6)
|
||||
DEFINE negrillas_off CHAR(6)
|
||||
DEFINE comp_on CHAR(6)
|
||||
DEFINE comp_off CHAR(6)
|
||||
DEFINE doce CHAR(2)
|
||||
DEFINE normall CHAR(3)
|
||||
DEFINE normal CHAR(2)
|
||||
DEFINE hora CHAR(5)
|
||||
DEFINE fecha_factura DATE
|
||||
DEFINE de1a30, de31a45, de46a60, masde60, total_saldo,
|
||||
mas120 DECIMAL(12,2)
|
||||
DEFINE tm120,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 = (123 - LENGTH(p_companias.nombre CLIPPED))/2
|
||||
PRINT COLUMN 1, comp_on
|
||||
PRINT COLUMN 1, "cpprrp002",
|
||||
COLUMN lj, p_companias.nombre CLIPPED,
|
||||
COLUMN 116, "Pag. ",pageno using "###"
|
||||
PRINT COLUMN 47, "Sistema de Cuentas por Pagar",
|
||||
COLUMN 114, today using "dd/mm/yyyy"
|
||||
|
||||
PRINT COLUMN 45, "Saldos por Antiguedad al ",
|
||||
fecha_corte using "dd/mm/yy",
|
||||
COLUMN 119, hora
|
||||
|
||||
PRINT COLUMN 53, "Valores en RD$"
|
||||
|
||||
SKIP 1 LINES
|
||||
|
||||
PRINT COLUMN 1, "--------------------------------------------------",
|
||||
"--------------------------------------------------",
|
||||
"--------------------------------------"
|
||||
|
||||
PRINT COLUMN 2, "S u p l i d o r",
|
||||
COLUMN 46, "De 1 a 30",
|
||||
COLUMN 66, "De 31 a 60",
|
||||
COLUMN 82, "De 61 a 90",
|
||||
COLUMN 99, "91 a 120",
|
||||
COLUMN 113, "Mas de 120",
|
||||
COLUMN 133, "Total"
|
||||
|
||||
PRINT COLUMN 1, "--------------------------------------------------",
|
||||
"--------------------------------------------------",
|
||||
"--------------------------------------"
|
||||
|
||||
BEFORE GROUP OF x.suplidor
|
||||
|
||||
LET de1a30 = 0
|
||||
LET de31a45 = 0
|
||||
LET de46a60 = 0
|
||||
LET masde60 = 0
|
||||
LET mas120 = 0
|
||||
ON EVERY ROW
|
||||
|
||||
LET valor3 = 0
|
||||
IF x.tipo_doc = "CP" THEN
|
||||
SELECT SUM(a.valor) INTO valor1 FROM cptb00001 a
|
||||
WHERE a.cod_sp = x.cod_sp AND a.cod_sp_sec = x.cod_sp_sec AND
|
||||
a.tipo_doc = "CP" AND a.aplica_a IS NULL AND a.num_doc=x.num_doc
|
||||
AND a.status_t IS NULL AND a.fecha_orig <= fecha_corte
|
||||
|
||||
SELECT SUM(a.valor) INTO valor2 FROM cptb00001 a
|
||||
WHERE a.cod_sp = x.cod_sp AND a.cod_sp_sec = x.cod_sp_sec AND
|
||||
a.tipo_doc="CP" AND a.aplica_a IS NOT NULL AND a.num_doc=x.num_doc
|
||||
AND a.status_t IS NULL AND a.fecha_orig <= fecha_corte
|
||||
|
||||
IF valor1 IS NULL THEN
|
||||
LET valor1 = 0
|
||||
END IF
|
||||
|
||||
IF valor2 IS NULL THEN
|
||||
LET valor2 = 0
|
||||
END IF
|
||||
|
||||
LET valor3 = valor1 - valor2
|
||||
ELSE
|
||||
|
||||
SELECT SUM(a.valor) INTO valor3 FROM cptb00001 a
|
||||
WHERE a.cod_sp = x.cod_sp AND a.cod_sp_sec = x.cod_sp_sec AND
|
||||
a.aplica_a = x.num_doc AND a.status_t IS NULL AND
|
||||
a.fecha_orig <= fecha_corte
|
||||
END IF
|
||||
|
||||
IF valor3 IS NULL THEN
|
||||
LET valor3 = 0
|
||||
END IF
|
||||
|
||||
IF x.fecha_doc IS NULL THEN
|
||||
LET x.fecha_doc = 0
|
||||
END IF
|
||||
|
||||
LET dias = fecha_corte - x.fecha_doc
|
||||
IF dias < 31 THEN
|
||||
LET de1a30 = de1a30 + valor3
|
||||
END IF
|
||||
|
||||
IF dias >= 31 AND dias <= 60 THEN
|
||||
LET de31a45 = de31a45 + valor3
|
||||
END IF
|
||||
|
||||
IF dias >= 61 AND dias <= 90 THEN
|
||||
LET de46a60 = de46a60 + valor3
|
||||
END IF
|
||||
|
||||
IF dias > 90 AND dias <= 120 THEN
|
||||
LET masde60 = masde60 + valor3
|
||||
END IF
|
||||
|
||||
IF dias > 120 THEN
|
||||
LET mas120 = mas120 + valor3
|
||||
END IF
|
||||
|
||||
AFTER GROUP OF x.suplidor
|
||||
IF tm120 IS NULL THEN
|
||||
LET tm120 = 0
|
||||
END IF
|
||||
IF t30 IS NULL THEN
|
||||
LET t30 = 0
|
||||
END IF
|
||||
|
||||
IF t45 IS NULL THEN
|
||||
LET t45 = 0
|
||||
END IF
|
||||
|
||||
IF t60 IS NULL THEN
|
||||
LET t60 = 0
|
||||
END IF
|
||||
|
||||
IF tm60 IS NULL THEN
|
||||
LET tm60 = 0
|
||||
END IF
|
||||
|
||||
IF tsaldo IS NULL THEN
|
||||
LET tsaldo = 0
|
||||
END IF
|
||||
|
||||
LET total_saldo = 0
|
||||
LET total_saldo = de1a30 + de31a45 + de46a60 + masde60 +
|
||||
mas120
|
||||
|
||||
IF total_saldo <> 0 THEN
|
||||
LET t30 = t30 + de1a30
|
||||
LET tm120 = tm120 + mas120
|
||||
LET t45 = t45 + de31a45
|
||||
LET t60 = t60 + de46a60
|
||||
LET tm60 = tm60 + masde60
|
||||
|
||||
PRINT COLUMN 1, x.cod_sp using "&&", "-",
|
||||
x.cod_sp_sec using "&&&&", " ",
|
||||
x.nombre clipped,
|
||||
COLUMN 40, de1a30 using "(((,(((,(((.##)",
|
||||
COLUMN 61, de31a45 using "(((,(((,(((.##)",
|
||||
COLUMN 77, de46a60 using "(((,(((,(((.##)",
|
||||
COLUMN 93, masde60 using "(((,(((,(((.##)",
|
||||
COLUMN 109, mas120 using "(((,(((,(((.##)",
|
||||
COLUMN 125, total_saldo using "(((,(((,(((.##)"
|
||||
END IF
|
||||
|
||||
LET de1a30 = 0
|
||||
LET de31a45 = 0
|
||||
LET de46a60 = 0
|
||||
LET masde60 = 0
|
||||
LET mas120 = 0
|
||||
LET total_saldo = 0
|
||||
|
||||
ON LAST ROW
|
||||
SKIP 1 LINE
|
||||
|
||||
LET tsaldo = t30 + t45 + t60 + tm60 + tm120
|
||||
|
||||
PRINT COLUMN 23, "Totales -->",
|
||||
COLUMN 41, t30 using "(((,(((,(((.##)",
|
||||
COLUMN 61, t45 using "(((,(((,(((.##)",
|
||||
COLUMN 77, t60 using "(((,(((,(((.##)",
|
||||
COLUMN 93, tm60 using "(((,(((,(((.##)",
|
||||
COLUMN 109, tm120 using "(((,(((,(((.##)",
|
||||
COLUMN 125, tsaldo using "(((,(((,(((.##)"
|
||||
|
||||
PRINT COLUMN 23, "Porciento -->",
|
||||
COLUMN 41, (t30/tsaldo)*100 using "(((,(((,(((.##)",
|
||||
COLUMN 61, (t45/tsaldo)*100 using "(((,(((,(((.##)",
|
||||
COLUMN 77, (t60/tsaldo)*100 using "(((,(((,(((.##)",
|
||||
COLUMN 93, (tm60/tsaldo)*100 using "(((,(((,(((.##)",
|
||||
COLUMN 109, (tm120/tsaldo)*100 using "(((,(((,(((.##)"
|
||||
|
||||
LET tot_gen2.total1 = t30
|
||||
LET tot_gen2.total2 = t45
|
||||
LET tot_gen2.total3 = t60
|
||||
LET tot_gen2.total4 = tm60
|
||||
LET tot_gen2.total6 = tm120
|
||||
LET tot_gen2.total5 = tsaldo
|
||||
|
||||
LET t30 = 0
|
||||
LET t45 = 0
|
||||
LET t60 = 0
|
||||
LET tm60 = 0
|
||||
LET tm120 = 0
|
||||
LET tsaldo = 0
|
||||
|
||||
PRINT normal
|
||||
|
||||
END REPORT
|
||||
Reference in New Issue
Block a user