Files
DECOMARMOL/PROYECTO/cgdir/cgprmt015.4gl
T
2026-09-22 20:38:51 -04:00

277 lines
8.8 KiB
Plaintext

{
----------------------------------------------------------------------------
PROGRAMA : CGPRMT015
OBJETIVO : ANULAR LOS CHEQUES EMITIDOS
PROGRAMADOR : JUAN F. SOTO
FECHA : OCTUBRE 18, 1993
----------------------------------------------------------------------------
}
GLOBALS
"cgprgb000.4gl"
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_compania.* FROM companias a
CALL cgprmt015()
END MAIN
FUNCTION cgprmt015()
DEFINE num_trx CHAR(9),
tipo_doc CHAR(2)
OPEN WINDOW anular AT 8,4 WITH FORM "cgfmwd005" ATTRIBUTE (BORDER,FORM LINE
FIRST + 1,PROMPT LINE LAST)
LABEL vuelve:
INPUT BY NAME recibo.cuenta_p,tipo_Doc,recibo.numero ATTRIBUTE (BOLD)
AFTER FIELD cuenta_p
IF recibo.cuenta_p is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD numero
END IF
AFTER FIELD numero
IF recibo.numero is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD numero
END IF
IF tipo_doc ='TR' THEN
LET referencia = tipo_doc,recibo.numero using "&&&&&&"
ELSE
LET referencia = tipo_doc CLIPPED,'.',recibo.numero using "&&&&&&"
END IF
SELECT unique b.cod_sp,b.cod_sp_sec,b.portador,b.monto,Convert(varchar(10),b.fecha,103),b.status_t
INTO recibo.cod_sp,recibo.cod_sp_sec,recibo.nom_sup,recibo.monto,recibo.fecha,estado_c
FROM cgtb00005 b WHERE b.cheque_no = recibo.numero AND
b.tipo_Doc = tipo_doc and
b.cuenta_no = recibo.cuenta_p
IF status = notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD numero
END IF
IF estado_c = "E" OR estado_c = "N" THEN
LET numero_msg = 36
CALL msg(numero_msg)
NEXT FIELD numero
END IF
DISPLAY BY NAME recibo.cod_sp,recibo.cod_sp_sec,recibo.nom_sup,recibo.monto,recibo.fecha
LET p_fechas = recibo.fecha
CALL prd(p_fechas,usuarios) RETURNING bandera
IF bandera = 1 THEN
LET bandera = 0
NEXT FIELD numero
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
END IF
EXIT INPUT
END INPUT
IF int_flag THEN
LET int_flag = false
GOTO salir
END IF
PROMPT "Quiere Proceder Anulacion de Este Cheque (S/N)? " FOR CHAR opc1
LET opc1 = upshift(opc1)
IF opc1 = "S" THEN
IF tipo_doc ='CK' THEN
CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of,
doble_on,doble_off,comp_on,comp_off,
doce,normal,archivo,copia
START REPORT cheque TO archivo
DECLARE buscate CURSOR FOR
SELECT a.cuenta_no,a.departamento,a.cod_aux,a.cod_sec,a.num_doc,
b.descripcion,a.debito,a.credito,'1',a.detalle_1,a.detalle_2
FROM cgtb00004 a,cgtb00001 b
WHERE a.ref = referencia and
a.cuenta_no = b.cuenta_no and
a.detalles = recibo.cuenta_p
ORDER BY 9
LET idx = 1
FOREACH buscate INTO arr_cuenta1[idx].*,detalle_1,detalle_2
LET recibo.nom_sup = "A N U L A D O"
OUTPUT TO REPORT cheque(recibo.*,arr_cuenta1[idx].*)
LET idx = idx + 1
END FOREACH
FINISH REPORT cheque
RUN imprime
END IF
UPDATE cgtb00005 set status_t = "N",
us_mod = SUSER_SNAME(),
fech_mod = GETDATE()
WHERE cgtb00005.cheque_no = recibo.numero and
cgtb00005.cuenta_no = recibo.cuenta_p
UPDATE cgtb00004 set status_t = "N",
us_mod = SUSER_SNAME(),
fech_mod = GETDATE()
WHERE cgtb00004.ref = referencia and
cgtb00004.detalles = recibo.cuenta_p
DISPLAY "REFERENCIA ",referencia
LET numero1 = recibo.numero USING "<<<<<<<"
UPDATE cptb00001 set status_t = "N",
us_mod = SUSER_SNAME(),
fech_mod = GETDATE()
WHERE cptb00001.num_doc = numero1 and
cptb00001.cta_ctble = recibo.cuenta_p and fecha_orig > "01/01/2008" and
cptb00001.tipo_Doc = tipo_doc
LABEL salir:
END IF
LET recibo.cuenta_p = null
LET recibo.numero = null
CLOSE WINDOW anular
END FUNCTION
{REPORT cheque(x,z)
DEFINE z RECORD
cuenta_no LIKE cgtb00004.cuenta_no,
departamento LIKE cgtb00004.departamento,
cod_aux LIKE cgtb00004.cod_aux,
cod_sec LIKE cgtb00004.cod_sec,
num_doc LIKE cgtb00004.num_doc,
nom_cuenta CHAR(30),
debito LIKE cgtb00004.debito,
credito LIKE cgtb00004.credito
END RECORD
DEFINE x RECORD
tipo_doc LIKE cptb00001.tipo_doc,
cuenta_p LIKE cgtb00004.cuenta_no,
numero INTEGER,
cod_sp LIKE cptb00001.cod_sp,
cod_sp_sec LIKE cptb00001.cod_sp_sec,
nom_sup CHAR(60),
fecha LIKE cgtb00004.fecha,
tasa LIKE cgtb00005.tasa,
monto DECIMAL(12,2),
codigo LIKE tetb00003.codigo
END RECORD,
ano CHAR(4)
DEFINE nombre_mes CHAR(10)
DEFINE orden,fact CHAR(30)
DEFINE doble_on,negrillas_on,negrillas_off,italica,italica_of,doce_on,doble_of,
doce_of CHAR(2)
DEFINE in_mes INTEGER
DEFINE comprime_on,comprime_of CHAR(1)
DEFINE
lineas CHAR(5)
DEFINE valor_mask CHAR(13)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 2
PAGE LENGTH 51
BOTTOM MARGIN 0
ORDER BY x.numero
FORMAT
BEFORE GROUP OF x.numero
LET doble_on = ASCII 14
LET doble_of = ASCII 20
LET doce_on = ASCII 27, ASCII 77
LET doce_of = ASCII 27, ASCII 80
LET italica = ASCII 27, ASCII 52
LET italica_of = ASCII 27, ASCII 53
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET comprime_on = ASCII 15
LET comprime_of = ASCII 18
LET in_mes = month(recibo.fecha)
CALL busca_mes()
LET nombre_mes = meses[in_mes]
SKIP 2 LINE
PRINT COLUMN 1, doce_on,comprime_on,
COLUMN 129, datos_ck.codigo_1,doce_of,comprime_of
PRINT COLUMN 1, doce_on,comprime_on,
COLUMN 125, "-------",doce_of,comprime_of,
COLUMN 135, doble_on,x.numero using "&&&&&&",doce_on,
comprime_on
PRINT COLUMN 125, datos_ck.codigo_2,doce_of,comprime_of
LET ano = year(recibo.fecha)
PRINT COLUMN 43, negrillas_on,day(recibo.fecha) using "&&",
COLUMN 55, nombre_mes clipped,
COLUMN 74, ano
SKIP 2 LINE
PRINT COLUMN 18, recibo.nom_sup clipped,
COLUMN 64, recibo.monto using "***,***,***.##"
# CALL convierte(recibo.monto)
# SKIP 1 LINE
# PRINT COLUMN 5, "*",valor_letras clipped,negrillas_off
LET valor_mask = recibo.monto using "<<,<<<,<<<.##" clipped
SKIP 2 LINE
# PRINT COLUMN 3, negrillas_on,comprime_on,
# " Mmotech",doble_on,comprime_of,"RD$",
# valor_mask clipped,
# " Ctvos",negrillas_off
PRINT negrillas_on,doce_on
#PRINT COLUMN 8 , datos_ck.nombre_bco,doce_of,negrillas_off,comprime_on
#PRINT COLUMN 11, datos_ck.direccion
#PRINT COLUMN 11, "Cuenta No. ",datos_ck.cuenta_bank
PRINT comprime_of
SKIP 4 LINES
SKIP 6 LINES
PRINT COLUMN 6, detalle_1," ",valor_1 using "(((,(((,((#.##)"
PRINT COLUMN 6, detalle_2," ",valor_2 using "(((,(((,((#.##)"
PRINT COLUMN 6, detalle_3," ",valor_3 using "(((,(((,((#.##)"
PRINT COLUMN 6, detalle_4," ",valor_4 using "(((,(((,((#.##)"
PRINT COLUMN 6, detalle_5," ",valor_5,
COLUMN 77, recibo.monto using "#,###,###.##"
SKIP 3 LINES
PRINT comprime_on
ON EVERY ROW
PRINT COLUMN 6, z.cuenta_no,
COLUMN 18, z.departamento using "####",
COLUMN 27, z.cod_aux using "##","-",z.cod_sec using "####",
COLUMN 37, z.num_doc ,
COLUMN 50, z.nom_cuenta,
COLUMN 119, z.debito using "##,###,###.##",
COLUMN 142, z.credito using "##,###,###.##"
PAGE TRAILER
PRINT COLUMN 10, x.codigo using "&&&&"," ",p_descrip
PRINT COLUMN 1,comprime_of,doble_on,
COLUMN 1, x.numero USING "&&&&&&"
SKIP 7 LINES
END REPORT
}