{ ------------------------------------------------------------------------------- PROGRAMA : EDPRRP064 OBJETIVO : Listar las Entrada de Diario Provision Seguro Maritimo PROGRAMADOR : Juan F. Soto FECHA REALIZACION : Mayo 20, 1994. ------------------------------------------------------------------------------- } DATABASE rayovac GLOBALS ###### Variables para busqueda de rango de fecha DEFINE afecta CHAR(1) DEFINE detalle CHAR(30) DEFINE mes SMALLINT DEFINE ano CHAR(4) DEFINE tasa DECIMAL(5,2) DEFINE p_fecha,fecha1, fecha2 DATE DEFINE nominas CHAR(1) DEFINE entra CHAR(14) DEFINE entra1 CHAR(5) DEFINE tipo_papel SMALLINT DEFINE valor,mano_obra,sueldo_ind,monto_banco,interes DECIMAL(12,2) DEFINE orden INTEGER ###### Variables para almacenar los datos selecionados DEFINE criterio,selec5, selec6 CHAR(1500) ###### Variables que la almacenan la informacion enviada al reporte DEFINE diario1 RECORD cuenta_no SMALLINT, mercado CHAR(1), cod_aux SMALLINT, cod_sec SMALLINT, num_doc INTEGER, debito DECIMAL(10,2) END RECORD END GLOBALS MAIN DEFER INTERRUPT CALL edprrp064() END MAIN FUNCTION edprrp064() # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 ##### Abriendo y desplegando el formulario de captura de datos OPEN FORM edfmrp064 FROM "edfmrp064" DISPLAY FORM edfmrp064 CALL pantalla() DISPLAY "edprrp064" AT 4,3 DISPLAY "Entrada de Diario Provision Seguro Maritimo" AT 6,18 LET tipo_papel = 1 CALL msgrp000(tipo_papel) ###### Aceptando los valores para el rango de fecha INPUT BY NAME entra,fecha1,fecha2,afecta,detalle 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 "(149) FECHA NO PUEDE SER MAYOR QUE LA ANTERIOR" # NEXT FIELD fecha1 END IF ###### Selecionando en rango de fecha de la tabla de periodo para el fecha2 SELECT UNIQUE ref FROM cgtb00004 where ref = entra IF STATUS != NOTFOUND THEN ERROR "(12) REGISTRO EXISTE" # NEXT FIELD fecha2 END IF AFTER INPUT EXIT INPUT 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 CONSTRUCT BY NAME criterio ON b.cod_n,a.liquidada # Busca la informacion requerida LET selec6 = "SELECT '1161',a.liquidada,", "a.cod_sp,a.cod_sp_sec,a.num_oc,sum(b.fob+b.costo_flete) ", "FROM cgtb00017 a,cgtb00018 b ", "WHERE a.status_t IS NULL and ", "a.num_oc = b.num_oc and ", "a.tipo = b.tipo and ", "a.rep_entrada = b.rep_entrada and ", "a.fecha BETWEEN ? AND ? and ", criterio clipped, " GROUP BY 1,2,3,4,5 ", "ORDER BY 1 " DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14 ATTRIBUTE (REVERSE,BOLD) PREPARE comando FROM selec6 DECLARE buscar CURSOR FOR comando OPEN buscar USING fecha1,fecha2 ##### Envia la Informacion al printer de contabilidad START REPORT entrada64 TO PIPE "lp -dcentral" DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) ##### Loop para enviar informacion al reporte WHILE STATUS != NOTFOUND FETCH buscar INTO diario1.* IF status = NOTFOUND THEN EXIT WHILE END IF IF int_flag THEN ERROR "(2) OPERACION CANCELADA" LET int_flag = FALSE RETURN END IF IF diario1.mercado = "L" THEN LET diario1.debito = diario1.debito ELSE LET diario1.debito = diario1.debito * .10 END IF OUTPUT TO REPORT entrada64(diario1.*,fecha1,fecha2,detalle,entra) END WHILE FINISH REPORT entrada64 CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION #### Funcion para dar salida ordenada a la informacion requerida de #### una entrada de diario de nominas local REPORT entrada64(x,fecha1,fecha2,detalle1,entrada) DEFINE x RECORD cuenta_no SMALLINT, mercado CHAR(1), cod_aux SMALLINT, cod_sec SMALLINT, num_doc INTEGER, debito DECIMAL(10,2) END RECORD ### Acumula los valores de las diferentes cuentas para entrada diario de nomina DEFINE debito,credito DECIMAL(12,2) DEFINE detalle1 CHAR(30) DEFINE mano_obra,sueldo_ind,monto_banco DECIMAL(12,2) DEFINE total1,total2,total3,total4,total5,total6 DECIMAL(12,2) DEFINE total7,total8 DECIMAL(12,2) ## Acumula los totales DEBITO Y CREDITO DEFINE tasa1 DECIMAL(5,2) ## Almacena la tasa de la tasa de cambio DEFINE fecha1,fecha2 DATE #### Almacena las fecha del rango de busqueda DEFINE nomina CHAR(1) DEFINE doble_on CHAR(2) DEFINE doble_off CHAR(2) DEFINE negrillas_on CHAR(6) DEFINE negrillas_off CHAR(6) DEFINE comp_on CHAR(2) DEFINE comp_off CHAR(2) DEFINE doce CHAR(2) DEFINE normal CHAR(2) DEFINE normall CHAR(3) DEFINE comprimido CHAR(3) DEFINE hora CHAR(5) DEFINE dpto INTEGER DEFINE nomina1 CHAR(24) DEFINE entrada CHAR(14) OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 2 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 fecha2 PRINT COLUMN 1, comp_off,"edprrp064", COLUMN 23, "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 35, "Sistema de Contabilidad", COLUMN 75, today using "dd/mm/yy" PRINT COLUMN 24, "Entrada de Diario Provision Seguro Maritimo", COLUMN 78, hora PRINT COLUMN 34, "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 1,"Observaciones: _____________________________________" PRINT COLUMN 1," _____________________________________" PRINT doce PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", negrillas_on PRINT COLUMN 2, "Cuenta ", COLUMN 11, "Dpto", COLUMN 17, "Catalogo", COLUMN 26, "Refe", COLUMN 41, "Concepto", COLUMN 75, "Debe", COLUMN 93, "Haber",negrillas_off PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", negrillas_off SKIP 1 LINE ON EVERY ROW IF debito is null THEN LET debito = 0 END IF LET debito = debito + x.debito PRINT COLUMN 2, x.cuenta_no, COLUMN 17, x.cod_aux using "&&","-",x.cod_sec using "&&&&", COLUMN 26, x.num_doc using "######", COLUMN 35, "MAT. TRANSITO - MAT. PRIMA", COLUMN 66, x.debito using "###,###,##&.&&" IF afecta = "S" THEN INSERT INTO cgtb00004 VALUES(fecha2,1,entrada,x.cuenta_no,null,x.num_doc, x.cod_aux, x.cod_sec,null,detalle1,null,x.debito, 0,null,user,current,null,null) END IF ON LAST ROW ###### Acumulando totales por columna PRINT COLUMN 4, "2136", COLUMN 18, "RESERVA DE SEGURO MARITIMO", COLUMN 84, debito using "###,###,##&.&&" IF afecta = "S" THEN INSERT INTO cgtb00004 VALUES(fecha2,1,entrada,"2136",null,null,null,null, null, detalle1,null,0,debito,null,user,current,null,null) END IF ###### Imprime total DEBITO y total CREDITO SKIP 1 LINE PRINT COLUMN 1,negrillas_on PRINT COLUMN 66,"--------------", COLUMN 84,"--------------" PRINT COLUMN 35,"Totales-->", COLUMN 66,debito USING "###,###,##&.&&", COLUMN 84,debito USING "###,###,##&.&&",negrillas_off SKIP 2 LINE PRINT COLUMN 1, detalle1 PRINT COLUMN 1,comp_off,negrillas_off SKIP 4 LINE 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