562 lines
19 KiB
Plaintext
562 lines
19 KiB
Plaintext
{
|
|
######################################################################
|
|
Programa : CPPRRP011
|
|
Proceso : Validacion Cuentas Afectadas en Facturacion
|
|
Sistema : Cuenta Por Pagar
|
|
Autor : Tadeo A. Ferreras F.
|
|
Fecha : Mayo 31, 1994
|
|
#######################################################################
|
|
}
|
|
GLOBALS
|
|
"cpprgb000.4gl"
|
|
DEFINE tiempo,p_ano CHAR(4),ultimo SMALLINT,
|
|
numero_ent CHAR(2)
|
|
DEFINE mvto RECORD
|
|
fecha_in DATE,
|
|
fecha_fi DATE,
|
|
cod_sp SMALLINT
|
|
END RECORD,
|
|
codigo_sp STRING,
|
|
decide CHAR(1),
|
|
entrada CHAR(14),
|
|
detalle1 CHAR(30)
|
|
|
|
DEFINE prt_mvto11 RECORD
|
|
factura CHAR(11),
|
|
cod_sp SMALLINT,
|
|
cod_sp_sec SMALLINT,
|
|
fecha DATE,
|
|
cuenta_no CHAR(11),
|
|
departamento SMALLINT,
|
|
cod_aux SMALLINT,
|
|
cod_sec SMALLINT,
|
|
refer CHAR(10),
|
|
debito DECIMAL(12,2),
|
|
credito DECIMAL(12,2),
|
|
id INTEGER,
|
|
nom_sp CHAR(45),
|
|
valor_fac DECIMAL(12,2)
|
|
END RECORD
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
CALL ARG_VAL(3) RETURNING impresor
|
|
|
|
CONNECT to "decomarmol" user usuarios USING clave
|
|
SELECT a.* INTO p_companias.* FROM companias a
|
|
|
|
CALL cpprrp011()
|
|
END MAIN
|
|
|
|
FUNCTION cpprrp011()
|
|
CLEAR SCREEN
|
|
OPTIONS
|
|
FORM LINE 8
|
|
#WHENEVER ERROR CONTINUE
|
|
OPEN FORM cpfmrp011 FROM "cpfmrp010"
|
|
#CALL PANTALLA()
|
|
DISPLAY "cpprrp011" AT 4,3 ATTRIBUTE(blue)
|
|
DISPLAY "Validacion Cuentas Afectadas Por Facturacion " AT 6,17
|
|
DISPLAY FORM cpfmrp011
|
|
LET int_flag = FALSE
|
|
LET tipo_papel = 1
|
|
CALL msgrp000(tipo_papel)
|
|
|
|
INPUT BY NAME mvto.*,decide,entrada,detalle1
|
|
AFTER FIELD decide
|
|
IF decide = "N" THEN
|
|
EXIT INPUT
|
|
END IF
|
|
AFTER FIELD entrada
|
|
SELECT UNIQUE a.ref FROM cgtb00004 a
|
|
WHERE a.ref = entrada
|
|
|
|
IF STATUS != NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD entrada
|
|
END IF
|
|
AFTER FIELD fecha_in
|
|
IF mvto.fecha_in IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha_in
|
|
END IF
|
|
|
|
AFTER FIELD fecha_fi
|
|
IF mvto.fecha_fi IS NULL THEN
|
|
LET mvto.fecha_fi = today
|
|
END IF
|
|
DISPLAY BY NAME mvto.fecha_fi
|
|
|
|
IF mvto.fecha_fi < mvto.fecha_in THEN
|
|
LET numero_msg = 51
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha_in
|
|
END IF
|
|
LET numero_ent = 18
|
|
LET p_ano = YEAR(mvto.fecha_in)
|
|
# CUANDO LOS PERIDOS SON DIFERENTES A LOS MESES CALENDARIO DEBEMOS
|
|
# UTILIZAR ESTE QUERY
|
|
#SELECT MAX(a.mes) INTO u_mes FROM prdtable a
|
|
#WHERE a.ano = p_ano and a.fecha_inicio <= p_entrada.fecha AND
|
|
# a.fecha_corte >= fecha1
|
|
|
|
|
|
LET tiempo = MONTH(mvto.fecha_in) using "&&",p_ano[3,4]
|
|
|
|
SELECT MAX(a.ref[7,9]) INTO ultimo FROM cgtb00004 a
|
|
WHERE a.ref[4,5] = numero_ent and a.ref[11,14] = tiempo
|
|
|
|
IF ultimo is null THEN
|
|
LET ultimo = 0
|
|
END IF
|
|
LET ultimo = ultimo + 1
|
|
LET entrada = "ED.18-",ultimo USING "&&&","/",tiempo
|
|
|
|
DISPLAY BY NAME entrada
|
|
|
|
AFTER FIELD cod_sp
|
|
IF mvto.cod_sp IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_sp
|
|
END IF
|
|
AFTER INPUT
|
|
IF decide = "S" THEN
|
|
LET bandera = 0
|
|
CALL prd(mvto.fecha_fi,usuarios) RETURNING bandera
|
|
IF bandera = 1 THEN
|
|
CALL msg(3)
|
|
NEXT FIELD fecha
|
|
END IF
|
|
|
|
END IF
|
|
END INPUT
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
LET r_filename='cpprrp011.4rp'
|
|
|
|
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
|
|
|
|
LET preview=1
|
|
CALL seleccionarsalida() RETURNING r_output
|
|
CALL fgl_report_selectDevice(r_output) -- changing default
|
|
CALL fgl_report_selectPreview(preview) -- changing default
|
|
LET handler = fgl_report_commitCurrentSettings() -- commit changes
|
|
|
|
|
|
END IF
|
|
START REPORT cuenta_ft TO XML HANDLER handler
|
|
|
|
DECLARE movto CURSOR FOR
|
|
SELECT a.factura,a.cod_sp,a.cod_sp_sec,a.fecha,a.cuenta_no,
|
|
a.departamento,a.cod_aux,a.cod_sec,a.num_doc,a.debito,a.credito
|
|
|
|
FROM cptb00003 a
|
|
WHERE (a.cod_sp = mvto.cod_sp AND
|
|
a.cod_sp_sec = a.cod_sp_sec and
|
|
a.factura = a.factura AND a.cuenta_no = a.cuenta_no AND
|
|
a.fecha BETWEEN mvto.fecha_in AND mvto.fecha_fi ) AND
|
|
a.status_t IS NULL
|
|
|
|
ORDER BY a.cod_sp,a.cod_sp_sec,a.factura,a.cuenta_no
|
|
DISPLAY "<< Buscando Informacion .... Espere Por Favor. >>" AT 19,14
|
|
ATTRIBUTE(REVERSE,BOLD)
|
|
|
|
|
|
DISPLAY "<< " AT 19,14
|
|
DISPLAY "<< Impresion En Proceso .... Espere Por Favor. >>" AT 19,14
|
|
ATTRIBUTE(REVERSE,BOLD)
|
|
|
|
FOREACH movto INTO prt_mvto11.*
|
|
|
|
# Busca El Valor De La Factura
|
|
SELECT UNIQUE a.valor INTO prt_mvto11.valor_fac
|
|
FROM cptb00001 a
|
|
WHERE a.cod_sp = prt_mvto11.cod_sp AND
|
|
a.cod_sp_sec = prt_mvto11.cod_sp_sec AND
|
|
a.num_doc = prt_mvto11.factura AND
|
|
a.tipo_doc = "FT"
|
|
|
|
SELECT UNIQUE a.nom_sp INTO prt_mvto11.nom_sp
|
|
FROM cotb00001 a
|
|
WHERE a.cod_sp = prt_mvto11.cod_sp AND
|
|
a.cod_sp_sec = prt_mvto11.cod_sp_sec
|
|
|
|
LET codigo_sp=prt_mvto11.cod_sp USING "&&","-",prt_mvto11.cod_sp_sec USING "&&&&"
|
|
|
|
OUTPUT TO REPORT cuenta_ft(prt_mvto11.*,mvto.fecha_in,mvto.fecha_fi,codigo_sp)
|
|
END FOREACH
|
|
FINISH REPORT cuenta_ft
|
|
|
|
END FUNCTION
|
|
|
|
{ REPORT cuenta_ft(x,fecha1,fecha2)
|
|
DEFINE x RECORD
|
|
factura CHAR(10),
|
|
cod_sp SMALLINT,
|
|
cod_sp_sec SMALLINT,
|
|
fecha DATE,
|
|
cuenta_no CHAR(11),
|
|
departamento SMALLINT,
|
|
cod_aux SMALLINT,
|
|
cod_sec SMALLINT,
|
|
refer CHAR(10),
|
|
debito DECIMAL(12,2),
|
|
credito DECIMAL(12,2),
|
|
id INTEGER,
|
|
nom_sp CHAR(45),
|
|
valor_fac DECIMAL(12,2)
|
|
END RECORD
|
|
|
|
DEFINE reg_final RECORD
|
|
cuenta_no CHAR(8),
|
|
departamento SMALLINT,
|
|
cod_aux SMALLINT,
|
|
cod_sec SMALLINT,
|
|
num_doc CHAR(10),
|
|
debito DECIMAL(12,2),
|
|
credito DECIMAL(12,2)
|
|
END RECORD,
|
|
codigo_a CHAR(7)
|
|
|
|
DEFINE fecha1,fecha2 DATE
|
|
DEFINE nom_sup CHAR(45)
|
|
DEFINE sale CHAR(1)
|
|
DEFINE valor2,valor1,total_debito,total_credito,t_debito,t_credito,
|
|
total_supl1,total_supl2,total1 DECIMAL(12,2)
|
|
DEFINE comp_on CHAR(3),
|
|
comp_off CHAR(3),
|
|
doce CHAR(3),
|
|
doble_on CHAR(3),
|
|
doble_off CHAR(3),
|
|
negrillas_on CHAR(6),
|
|
negrillas_off CHAR(6),
|
|
hora CHAR(5)
|
|
|
|
OUTPUT
|
|
PAGE LENGTH 150
|
|
|
|
#ORDER BY x.cod_sp_sec,x.factura,x.cuenta_no,x.id
|
|
FORMAT
|
|
PAGE HEADER
|
|
{ LET negrillas_on = ASCII 27, ASCII 69
|
|
LET negrillas_off = ASCII 27, ASCII 70
|
|
LET doble_on = ASCII 27, ASCII 14
|
|
LET doble_off = ASCII 27, ASCII 20
|
|
LET doce = ASCII 27, ASCII 77
|
|
LET comp_on = ASCII 15
|
|
LET comp_off = ASCII 18 aqui
|
|
LET hora = time
|
|
|
|
LET lj = (83 - LENGTH(p_companias.nombre CLIPPED))/2
|
|
PRINT COLUMN 1,comp_off,doce
|
|
PRINT COLUMN 1, "cpprrp011",
|
|
COLUMN lj, p_companias.nombre CLIPPED,
|
|
COLUMN 76,"Pag. ", pageno using "###"
|
|
PRINT COLUMN 1, negrillas_on,
|
|
COLUMN 32, "SISTEMA CUENTA POR PAGAR",
|
|
COLUMN 76, today using "dd/mm/yy"
|
|
PRINT COLUMN 20,
|
|
"Validacion Cuentas Afectadas Por Facturacion",
|
|
COLUMN 79, hora
|
|
PRINT COLUMN 30,"DEL ", fecha1 USING "dd/mm/yy"," AL ",
|
|
fecha2 USING "dd/mm/yy"
|
|
PRINT comp_on
|
|
PRINT COLUMN 1,
|
|
"----------------------------------------",
|
|
"----------------------------------------",
|
|
"----------------------------------------",
|
|
"----------------"
|
|
|
|
PRINT COLUMN 1, "Suplidor",
|
|
COLUMN 40, "Factura",
|
|
COLUMN 52, "Fecha",
|
|
COLUMN 62, "Valor Fact.",
|
|
COLUMN 75, "Cuenta",
|
|
COLUMN 85, "Dpto. ",
|
|
COLUMN 91, "Cta. Aux.",
|
|
COLUMN 99, "Refer.",
|
|
COLUMN 115, "Debe",
|
|
COLUMN 131, "Haber"
|
|
|
|
PRINT COLUMN 1,
|
|
"----------------------------------------",
|
|
"----------------------------------------",
|
|
"----------------------------------------",
|
|
"----------------"
|
|
PRINT negrillas_off
|
|
|
|
BEFORE GROUP OF x.cod_sp_sec
|
|
LET total_supl1 = 0
|
|
LET total_supl2 = 0
|
|
|
|
PRINT COLUMN 1, x.cod_sp USING "&&","-",
|
|
x.cod_sp_sec USING "&&&&"," ",
|
|
x.nom_sp CLIPPED;
|
|
|
|
BEFORE GROUP OF x.factura
|
|
LET total_debito = 0
|
|
LET total_credito = 0
|
|
|
|
PRINT COLUMN 40, x.factura CLIPPED,
|
|
COLUMN 52, x.fecha USING "dd/mm/yy",
|
|
COLUMN 62, x.valor_fac USING "#,###,###.##";
|
|
|
|
ON EVERY ROW
|
|
|
|
IF x.debito IS NULL THEN
|
|
LET x.debito = 0
|
|
END IF
|
|
IF x.credito IS NULL THEN
|
|
LET x.credito = 0
|
|
END IF
|
|
LET total_debito = total_debito + x.debito
|
|
LET total_credito = total_credito + x.credito
|
|
LET total_supl1 = total_supl1 + x.debito
|
|
LET total_supl2 = total_supl2 + x.credito
|
|
|
|
IF x.cod_aux IS NOT NULL THEN
|
|
LET codigo_a = x.cod_aux USING "##","-",x.cod_sec USING "####"
|
|
ELSE
|
|
LET codigo_a = null
|
|
END IF
|
|
|
|
PRINT COLUMN 75, x.cuenta_no CLIPPED,
|
|
COLUMN 85, x.departamento USING "####",
|
|
COLUMN 91, codigo_a CLIPPED,
|
|
COLUMN 99, x.refer CLIPPED,
|
|
COLUMN 111, x.debito USING "###,###,###.##",
|
|
COLUMN 126, x.credito USING "###,###,###.##"
|
|
|
|
AFTER GROUP OF x.factura
|
|
|
|
PRINT COLUMN 111, "--------------",
|
|
COLUMN 126, "--------------"
|
|
|
|
PRINT COLUMN 111, GROUP SUM(x.debito) USING "###,###,###.##",
|
|
COLUMN 126, GROUP SUM(x.credito) USING "###,###,###.##"
|
|
SKIP 1 LINE
|
|
|
|
IF total1 IS NULL THEN
|
|
LET total1 = 0
|
|
END IF
|
|
|
|
LET total1 = total1 + x.valor_fac
|
|
|
|
AFTER GROUP OF x.cod_sp_sec
|
|
|
|
PRINT COLUMN 111, "--------------",
|
|
COLUMN 126, "--------------"
|
|
|
|
PRINT COLUMN 111, GROUP SUM(x.debito) USING "###,###,###.##",
|
|
COLUMN 126, GROUP SUM(x.credito) USING "###,###,###.##"
|
|
|
|
PRINT COLUMN 111, "==============",
|
|
COLUMN 126, "=============="
|
|
SKIP 2 LINE
|
|
|
|
ON LAST ROW
|
|
|
|
PRINT COLUMN 1,
|
|
"-------------------------------------",
|
|
"-------------------------------------",
|
|
"-------------------------------------",
|
|
"-----------------------"
|
|
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 50, "Total Por Cuentas"
|
|
SKIP 1 LINE
|
|
|
|
DECLARE busca1 CURSOR FOR
|
|
SELECT a.cuenta_no,a.departamento,a.cod_aux,a.cod_sec,a.num_doc,
|
|
SUM(a.debito) debito,SUM(a.credito)
|
|
FROM cptb00003 a
|
|
WHERE a.status_t IS NULL AND a.fecha BETWEEN fecha1 AND fecha2 AND
|
|
a.cod_sp = mvto.cod_sp
|
|
GROUP BY a.cuenta_no,a.departamento,a.cod_aux,a.cod_sec,a.num_doc
|
|
ORDER BY a.num_Doc DESC,debito DESC,a.departamento
|
|
|
|
LET t_debito = 0
|
|
LET t_credito = 0
|
|
FOREACH busca1 INTO reg_final.*
|
|
LET t_debito = t_debito + reg_final.debito
|
|
LET t_credito = t_credito + reg_final.credito
|
|
IF decide = "S" THEN
|
|
INSERT INTO cgtb00004 VALUES(MVTO.fecha_fi,1,entrada,reg_final.cuenta_no,reg_final.departamento,
|
|
reg_final.num_doc,reg_final.cod_aux,reg_final.cod_sec,null,
|
|
detalle1,null,reg_final.debito,reg_final.credito,null,suser_sname(),GETDATE(),null,null)
|
|
display "INSERTE"
|
|
END IF
|
|
PRINT COLUMN 75, reg_final.cuenta_no CLIPPED,
|
|
COLUMN 85, reg_final.departamento USING "####",
|
|
COLUMN 91, reg_final.cod_aux USING "&&"," ",
|
|
reg_final.cod_sec USING "&&&&",
|
|
COLUMN 99, reg_final.num_doc CLIPPED,
|
|
COLUMN 111, reg_final.debito USING "###,###,###.##",
|
|
COLUMN 126, reg_final.credito USING "###,###,###.##"
|
|
END FOREACH
|
|
|
|
PRINT COLUMN 111, "--------------",
|
|
COLUMN 126, "--------------"
|
|
|
|
PRINT COLUMN 45, "Total General --->",
|
|
COLUMN 65, total1 USING "###,###,###.##",
|
|
COLUMN 111, t_debito USING "###,###,###.##",
|
|
COLUMN 126, t_credito USING "###,###,###.##"
|
|
|
|
LET total1 = 0
|
|
LET t_debito = 0
|
|
LET t_credito = 0
|
|
PRINT comp_off
|
|
END REPORT }
|
|
|
|
|
|
REPORT cuenta_ft(x,fecha1,fecha2,codigo_sp)
|
|
DEFINE x RECORD
|
|
factura CHAR(11),
|
|
cod_sp SMALLINT,
|
|
cod_sp_sec SMALLINT,
|
|
fecha DATE,
|
|
cuenta_no CHAR(11),
|
|
departamento SMALLINT,
|
|
cod_aux SMALLINT,
|
|
cod_sec SMALLINT,
|
|
refer CHAR(10),
|
|
debito DECIMAL(12,2),
|
|
credito DECIMAL(12,2),
|
|
id INTEGER,
|
|
nom_sp CHAR(45),
|
|
valor_fac DECIMAL(12,2)
|
|
END RECORD,
|
|
codigo_sp string
|
|
|
|
DEFINE reg_final RECORD
|
|
cuenta_no CHAR(8),
|
|
departamento int,
|
|
cod_aux int,
|
|
cod_sec int,
|
|
num_doc CHAR(10),
|
|
debito DECIMAL(12,2),
|
|
credito DECIMAL(12,2)
|
|
END RECORD,
|
|
codigo_a CHAR(7)
|
|
|
|
DEFINE fecha1,fecha2 DATE
|
|
DEFINE nom_sup CHAR(45)
|
|
DEFINE sale CHAR(1)
|
|
DEFINE valor2,valor1,total_debito,total_credito,t_debito,t_credito,
|
|
total_supl1,total_supl2,total1 DECIMAL(12,2)
|
|
DEFINE comp_on CHAR(3),
|
|
comp_off CHAR(3),
|
|
doce CHAR(3),
|
|
doble_on CHAR(3),
|
|
doble_off CHAR(3),
|
|
negrillas_on CHAR(6),
|
|
negrillas_off CHAR(6),
|
|
hora CHAR(5),
|
|
total_sp_d,total_sp_c,total_d,total_c DECIMAL(12,2)
|
|
|
|
|
|
#ORDER BY x.cod_sp_sec,x.factura,x.cuenta_no,x.id
|
|
|
|
FORMAT
|
|
FIRST PAGE HEADER
|
|
LET hora = TIME
|
|
|
|
|
|
BEFORE GROUP OF codigo_sp
|
|
LET total_supl1 = 0
|
|
LET total_supl2 = 0
|
|
LET total_sp_c=0
|
|
LET total_sp_d=0
|
|
|
|
|
|
BEFORE GROUP OF x.factura
|
|
LET total_d = 0
|
|
LET total_c = 0
|
|
|
|
|
|
|
|
|
|
ON EVERY ROW
|
|
|
|
PRINTX x.*,p_companias.*,fecha1,fecha2,codigo_sp
|
|
DISPLAY "debito 2 ",total_sp_c
|
|
IF x.debito IS NULL THEN
|
|
LET x.debito = 0
|
|
END IF
|
|
IF x.credito IS NULL THEN
|
|
LET x.credito = 0
|
|
END IF
|
|
LET total_debito = total_debito + x.debito
|
|
LET total_credito = total_credito + x.credito
|
|
LET total_supl1 = total_supl1 + x.debito
|
|
LET total_supl2 = total_supl2 + x.credito
|
|
|
|
IF x.cod_aux IS NOT NULL THEN
|
|
LET codigo_a = x.cod_aux USING "##","-",x.cod_sec USING "####"
|
|
ELSE
|
|
LET codigo_a = null
|
|
END IF
|
|
|
|
|
|
|
|
|
|
|
|
IF total1 IS NULL THEN
|
|
LET total1 = 0
|
|
END IF
|
|
|
|
LET total1 = total1 + x.valor_fac
|
|
|
|
AFTER GROUP OF x.factura
|
|
|
|
LET total_d=GROUP SUM(x.debito)
|
|
LET total_c=GROUP SUM(x.credito)
|
|
PRINTX total_c,total_d
|
|
AFTER GROUP OF codigo_sp
|
|
|
|
LET total_sp_d=GROUP SUM(x.debito)
|
|
LET total_sp_c=GROUP SUM(x.credito)
|
|
PRINTX total_sp_c,total_sp_d
|
|
ON LAST ROW
|
|
|
|
|
|
DECLARE busca1 CURSOR FOR
|
|
SELECT a.cuenta_no,a.departamento,a.num_doc,
|
|
SUM(a.debito) debito,SUM(a.credito)
|
|
FROM cptb00003 a
|
|
WHERE a.status_t IS NULL AND a.fecha BETWEEN fecha1 AND fecha2 AND
|
|
a.cod_sp = 21
|
|
GROUP BY a.cuenta_no,a.departamento,a.num_doc
|
|
ORDER BY a.num_Doc DESC,a.departamento
|
|
|
|
LET t_debito = 0
|
|
LET t_credito = 0
|
|
FOREACH busca1 INTO reg_final.cuenta_no,reg_final.departamento,reg_final.num_doc,reg_final.debito,reg_final.credito
|
|
# display reg_final.*
|
|
LET t_debito = t_debito + reg_final.debito
|
|
LET t_credito = t_credito + reg_final.credito
|
|
IF decide = "S" THEN
|
|
INSERT INTO cgtb00004 VALUES(MVTO.fecha_fi,1,entrada,reg_final.cuenta_no,reg_final.departamento,
|
|
reg_final.num_doc,reg_final.cod_aux,reg_final.cod_sec,null,
|
|
detalle1,null,reg_final.debito,reg_final.credito,null,suser_sname(),GETDATE(),null,null)
|
|
|
|
END IF
|
|
PRINTX reg_final.*
|
|
END FOREACH
|
|
|
|
PRINTX total1,t_debito,t_credito
|
|
DISPLAY t_debito
|
|
|
|
|
|
END REPORT |