Files
MBS/PROYECTO/cpdir/cpprrp011.4gl
T

388 lines
14 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 mvto RECORD
fecha_in DATE,
fecha_fi DATE,
cod_sp SMALLINT
END RECORD,
decide CHAR(1),
entrada CHAR(14),
detalle1 CHAR(30)
DEFINE prt_mvto11 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
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(3) RETURNING impresor
CONNECT to "smarmotech" 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
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
CALL configureoutput("SVG") RETURNING handler
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
OUTPUT TO REPORT cuenta_ft(prt_mvto11.*,mvto.fecha_in,mvto.fecha_fi)
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}
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 (fecha, tipo, ref, cuenta_no,departamento, num_doc,
cod_aux, cod_sec, detalles, detalle_1, detalle_2, debito, credito, status_t,
us_crea, fech_crea, us_mod, fech_mod)
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