{ ------------------------------------------------------------------------------- PROGRAMA : EDPRRP012 OBJETIVO : Listar las Entrada de Diario ctas. por Pagar Intercompany PROGRAMADOR : Tadeo A. Ferreras FECHA REALIZACION : Julio 28, 1994 ------------------------------------------------------------------------------- } DATABASE rayovac GLOBALS ###### Variables para busqueda de rango de fecha DEFINE mes SMALLINT , ano CHAR(4) , p_fecha,fecha1, fecha2 DATE , afecta,ventas CHAR(1), entra CHAR(14), entra1 CHAR(5), detalle CHAR(30) ###### Variables que la almacenan la informacion enviada al reporte ###### Variables que la almacenan la informacion enviada al reporte DEFINE diario2 RECORD cuenta_no CHAR(8), departamento INTEGER, cod_aux SMALLINT, cod_sec SMALLINT, factura CHAR(10), debito DECIMAL(12,2), credito DECIMAL(12,2) END RECORD, descripcion CHAR(35), tipo_papel SMALLINT END GLOBALS MAIN DEFER INTERRUPT CALL edprrp012() END MAIN FUNCTION edprrp012() OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 ##### Abriendo y desplegando el formulario de captura de datos OPEN FORM edfmrp012 FROM "edfmrp012" DISPLAY FORM edfmrp012 CALL pantalla() DISPLAY "edprrp012" AT 4,3 DISPLAY "Entrada de Diario CXP Intercompany" AT 6,23 LET tipo_papel = 1 CALL msgrp000(tipo_papel) ###### Aceptando los valores para el rango de fecha INPUT BY NAME entra,fecha1,fecha2,detalle,afecta AFTER FIELD entra SELECT UNIQUE ref FROM cgtb00004 WHERE ref = entra IF STATUS != NOTFOUND THEN ERROR "(12) REGISTRO EXISTE" NEXT FIELD entra END IF LET entra1 = entra BEFORE FIELD fecha1 SELECT max(fecha) INTO p_fecha FROM cgtb00004 WHERE ref[1,5] = entra1 LET fecha1 = p_fecha + 1 DISPLAY BY NAME fecha1 AFTER FIELD fecha1 IF fecha1 IS NULL THEN ERROR "(16) CAMPO EN BLANCO" NEXT FIELD fecha1 END IF IF fecha1 <= p_fecha THEN ERROR "(179) EXISTE ENTRADA DE DIARIO CON ESA FECHA" NEXT FIELD fecha1 END IF AFTER FIELD fecha2 IF fecha2 IS NULL THEN ERROR "(16) CAMPO EN BLANCO" NEXT FIELD fecha2 END IF IF fecha1 > fecha2 THEN ERROR "(86) FECHA INICIAL NO PUEDE SER MAYOR QUE LA ANTERIOR" NEXT FIELD fecha1 END IF END INPUT ##### Creando la facilidad para cancelar proceso con DELETE O SUPR IF int_flag THEN ERROR "(2) OPERACION CANCELADA" LET int_flag = false RETURN END IF # Busca la informacion requerida DECLARE buscar1 CURSOR FOR SELECT b.cuenta_no,b.departamento,b.cod_aux,b.cod_sec,b.num_doc, SUM(b.debito),SUM(b.credito),c.descripcion FROM cptb00003 b,cgtb00001 c WHERE b.cuenta_no = c.cuenta_no AND b.status_t IS NULL AND b.fecha BETWEEN fecha1 AND fecha2 and b.cod_sp = 21 GROUP BY 1,2,3,4,5,8 DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 17,14 ATTRIBUTE (REVERSE,BOLD) ##### Envia la Informacion al printer de contabilidad START REPORT report12 TO PIPE "lp -dcentral" DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 17,14 ATTRIBUTE (REVERSE) ##### Loop para enviar informacion al reporte FOREACH buscar1 INTO diario2.*,descripcion IF int_flag THEN ERROR "(2) OPERACION CANCELADA" LET int_flag = FALSE EXIT FOREACH END IF OUTPUT TO REPORT report12(diario2.*,descripcion,fecha1,fecha2, ano,mes,entra,detalle) END FOREACH FINISH REPORT report12 CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION #### Funcion para dar salida ordenada a la informacion requerida de #### una entrada de diario de ventas exportacion REPORT report12(x,descripcion,fecha1,fecha2,ano1,mes1,entrada,detalle1) DEFINE x RECORD cuenta_no CHAR(8), departamento INTEGER, cod_aux SMALLINT, cod_sec SMALLINT, factura CHAR(10), debito DECIMAL(12,2), credito DECIMAL(12,2) END RECORD #### Acumula los valores de las diferentes cuentas para entrada diario de venta DEFINE total1,total2,total3,total4,total5,total6 DECIMAL(12,2), cuenta CHAR(8), descr CHAR(30), total7,total8 DECIMAL(12,2),##Acumula los totales DEBITO Y CREDITO fecha1,fecha2 DATE,#### Almacena las fecha del rango de busqueda ano1 CHAR(4), mes2 CHAR(16), mes1 SMALLINT, doble_on CHAR(4), doble_off CHAR(4), negrillas_on CHAR(6), negrillas_off CHAR(6), comp_on CHAR(2), comp_off CHAR(2) , doce CHAR(2), normal CHAR(2) , normall CHAR(3) , comprimido CHAR(3), hora CHAR(5), dpto CHAR(4), venta1 CHAR(24), entrada CHAR(14), aux CHAR(7), tasa1 DECIMAL(5,2), detalle1 CHAR(30), descripcion CHAR(35) OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 2 ORDER BY x.cod_sec DESC,x.factura,x.cuenta_no FORMAT PAGE HEADER LET doble_on = ASCII 001 LET doble_off = ASCII 002 LET negrillas_on = ASCII 027, ASCII 098 LET negrillas_off = ASCII 027, ASCII 099 LET comp_on = ASCII 31 LET comp_off = ASCII 029 LET comprimido = ASCII 031 LET doce = ASCII 030 LET normal = ASCII 27, ASCII 80 LET normall = ASCII 029 LET hora = time ##### Selecionado la descripcion del mes SELECT a.descrip INTO mes2 FROM mestable a WHERE a.mes = mes1 PRINT COLUMN 1, comp_off PRINT COLUMN 1, "edprrp012", COLUMN 26, "R A Y . O . V A C D O M I N I C A N A, S. A.", COLUMN 75, "Pag. ",pageno using "###" PRINT COLUMN 27, "Sistema de Cuentas por Cobrar", COLUMN 75, today using "dd/mm/yy" PRINT COLUMN 20, "Entrada de Diario Ctas X Pagar Intercompany", COLUMN 78, hora PRINT COLUMN 30, "Del ",fecha1 USING "dd/mm/yy", " Al ",fecha2 USING "dd/mm/yy" # , negrillas_off SKIP 1 LINE PRINT COLUMN 01,"Entrada de Diario No. ",doble_on,entrada, doble_off PRINT COLUMN 01, "Observaciones: _____________________________________" PRINT COLUMN 01, " _____________________________________" PRINT COLUMN 1, "--------------------------------------------------", "----------------------------------", negrillas_on,comp_on PRINT COLUMN 2, "Cuenta", COLUMN 13, "Dpto", COLUMN 22, "Cta. Aux.", COLUMN 34, "Ref.", COLUMN 101, "Debe", COLUMN 126, "Haber",negrillas_off,comp_off PRINT COLUMN 1, "--------------------------------------------------", "----------------------------------",comp_on ON EVERY ROW IF total1 IS NULL THEN LET total1 = 0 END IF IF total2 IS NULL THEN LET total2 = 0 END IF IF x.debito > 0 AND x.debito IS NOT NULL THEN LET total1 = total1 + x.debito END IF IF x.credito > 0 AND x.credito IS NOT NULL THEN LET total2 = total2 + x.credito END IF PRINT COLUMN 2, x.cuenta_no, COLUMN 13, x.departamento USING "&&&&", COLUMN 22, x.cod_aux USING "&&","-",x.cod_sec USING "&&&&", COLUMN 34, x.factura CLIPPED, COLUMN 46, descripcion CLIPPED, COLUMN 85, x.debito using "###,###,###.##", COLUMN 120, x.credito using "###,###,###.##" IF afecta = "S" THEN INSERT INTO cgtb00004 VALUES(fecha2,1,entrada,x.cuenta_no,x.departamento, x.factura,x.cod_aux,x.cod_sec,null,detalle1,null, x.debito,x.credito,null,user,current,null,null) END IF ON LAST ROW ###### Imprime total DEBITO y total CREDITO PRINT COLUMN 1,negrillas_on PRINT COLUMN 85,"______________", COLUMN 120,"______________" PRINT COLUMN 35,"Totales-->", COLUMN 85,total1 USING "###,###,###.##", COLUMN 120,total2 USING "###,###,###.##" SKIP 2 LINE PRINT COLUMN 1, detalle1 SKIP 1 LINE PRINT COLUMN 1,comp_off,negrillas_off END REPORT { Esta funcion se utiliza para desplegar mensajes de los reportes de los sistemas de Ray-O-Vac Dominicana. Realizada por Lic. Abner Montalvo y Johnny Soto Agosto 21, 1992 } FUNCTION msgrp000(tipo_papel) DEFINE tipo_papel SMALLINT, longitud CHAR(11), linea_papel CHAR(50) CASE WHEN tipo_papel = 1 LET longitud = " 9 1/2 x 11" WHEN tipo_papel = 2 LET longitud = "14 7/8 x 11" END CASE LET linea_papel = "Coloque papel ",longitud," en la impresora." DISPLAY linea_papel AT 15,14 DISPLAY "Asegurese de que la impresora este encendida." AT 16,14 DISPLAY " Ejecuta impresion Cancela impresion" AT 18,14 RUN "type C:\\archivo > %USPRINT%" END FUNCTION FUNCTION pantalla() DEFINE fecha CHAR(8), hora char(5) LET fecha = today USING "dd/mm/yy" LET hora = time DISPLAY "R A Y . O . V A C D O M I N I C A N A, S. A." AT 4,17 ATTRIBUTE (REVERSE,YELLOW) DISPLAY fecha AT 4,70 ATTRIBUTE (YELLOW) DISPLAY "Sistema de Contabilidad General" AT 5,24 DISPLAY hora AT 6,73 ATTRIBUTE(YELLOW) CALL fgl_drawbox(5,79,3,1) CALL fgl_drawbox(1,79,22,1) RUN "type C:\\archivo > %USPRINT%" END FUNCTION