388 lines
14 KiB
Plaintext
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
|