{ ---------------------------------------------------------------------------- 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