277 lines
8.8 KiB
Plaintext
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
|
|
} |