140 lines
4.4 KiB
Plaintext
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
|