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