Files
MBS/PROYECTO/cgdir/cgprmt015.4gl
T

140 lines
4.4 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 "smarmotech" USER usuarios USING clave
SELECT a.* INTO p_compania.* FROM companias a
CALL cgprmt015()
END MAIN
FUNCTION cgprmt015()
DEFINE num_trx CHAR(9)
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,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
LET referencia = "CK.",recibo.numero using "&&&&&&"
SELECT unique b.portador,b.monto,b.fecha,b.status_t
INTO recibo.nom_sup,recibo.monto,recibo.fecha,estado_c
FROM cgtb00005 b,cgtb00004 a WHERE b.cheque_no = recibo.numero and
a.ref = referencia 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.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
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
LET referencia = "CK.",recibo.numero using "&&&&&&"
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
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
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"
LABEL salir:
END IF
LET recibo.cuenta_p = null
LET recibo.numero = null
CLOSE WINDOW anular
END FUNCTION