{ ------------------------------------------------------------------------------- PROGRAMA : NOPRRP005 OBJETIVO : Listar las Entrada de Diario de Nomina a una fecha determinada. El mismo se modificara al momento de hacer sistema de Contabilidad. PROGRAMADOR : Tadeo A. Ferreras FECHA REALIZACION : Agosto 27, 1993 ------------------------------------------------------------------------------- } GLOBALS "noprgb000.4gl" ###### Variables para busqueda de rango de fecha DEFINE mes SMALLINT DEFINE ano CHAR(4) DEFINE tasa DECIMAL(5,2) DEFINE fecha DATE DEFINE ventas CHAR(1) DEFINE entra CHAR(5) DEFINE numero SMALLINT ###### Variables para almacenar los datos selecionados DEFINE selec5, selec6 CHAR(1500) ###### Variables que almacenan la informacion enviada al reporte DEFINE diario1 RECORD departamento LIKE notb00008.departamento, valor LIKE notb00008.valor END RECORD FUNCTION noprrp005() # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 ##### Abriendo y desplegando el formulario de captura de datos OPEN FORM nofmrp005 FROM "nofmrp005" DISPLAY FORM nofmrp005 CALL pantalla() DISPLAY "noprrp005" AT 4,3 DISPLAY "Entrada de Diario de Nomina" AT 6,26 LET tipo_papel = 1 CALL msgrp000(tipo_papel) ###### Aceptando los valores para el rango de fecha INPUT BY NAME fecha,entra,numero AFTER FIELD fecha IF fecha IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha END IF ###### Para digitar numero de entrada de diario de ventas AFTER FIELD entra IF entra is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD entra END IF AFTER FIELD numero IF numero is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD numero END IF END INPUT ##### Creando la facilidad para cancelar proceso con DELETE O SUPR IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF # Busca la informacion requerida LET selec5 = "SELECT a.departamento,sum(a.valor) ", "FROM notb00008 a ", "WHERE a.num_nomi = ? AND a.tipo_emp = 'Q' AND a.status_t IS NULL ", "GROUP BY 1 ORDER BY 1" DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 17,14 ATTRIBUTE (REVERSE,BOLD) PREPARE comando FROM selec5 DECLARE buscar CURSOR FOR comando OPEN buscar USING numero ##### Envia la INfrmacion al printer de contabilidad START REPORT report05 TO "locales" #PIPE "lp -dcentral" DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 17,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 LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE FINISH REPORT report05 EXIT WHILE END IF OUTPUT TO REPORT report05(diario1.*,fecha,entra,numero) END WHILE FINISH REPORT report05 ##### Envia la Informacion al printer de contabilidad 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 local REPORT report05(x,fecha1,entrada,nomina) DEFINE x RECORD departamento LIKE notb00008.departamento, valor LIKE notb00008.valor END RECORD DEFINE auxiliar RECORD movim LIKE notb00008.cod_mov, cta_aux LIKE notb00002.cta_aux, valor1 LIKE notb00008.valor END RECORD #### Acumula los valores de las diferentes cuentas para entrada diario de venta DEFINE total1,total2,total3,total4,total5,total6 DECIMAL(12,2) DEFINE total7,total8 DECIMAL(12,2) ## Acumula los totales DEBITO Y CREDITO DEFINE fecha1,fecha2 DATE #### Almacena las fecha del rango de busqueda DEFINE ano1 CHAR(4) DEFINE mes2 CHAR(16) DEFINE mes1 SMALLINT DEFINE venta 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 CHAR(4) DEFINE venta1 CHAR(24) DEFINE entrada CHAR(5) DEFINE nomina SMALLINT OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 2 PAGE LENGTH 33 FORMAT PAGE HEADER LET doble_on = ASCII 14 LET doble_off = ASCII 20 LET negrillas_on = ASCII 27, ASCII 78 LET negrillas_off = ASCII 27, ASCII 79 LET comp_on = ASCII 15 LET comp_off = ASCII 18 LET comprimido = ASCII 031 LET doce = ASCII 27, ASCII 77 LET normal = ASCII 27, ASCII 80 LET normall = ASCII 030 LET hora = time ##### Selecionado la descripcion del mes PRINT COLUMN 1, "noprrp005", COLUMN 23, p_companias.nombre CLIPPED, COLUMN 82, "Pag.", COLUMN 78, pageno using "###" PRINT COLUMN 38, "Sistema de Nomina", COLUMN 82, today using "dd/mm/yy" PRINT COLUMN 33, "Entrada de Diario de Nomina", COLUMN 85, hora PRINT COLUMN 34, "Fecha ",fecha1 USING "dd/mm/yy" # , negrillas_off PRINT COLUMN 63,"Entrada de Diario No. ",entrada IF DAY(fecha1) <= 15 THEN PRINT COLUMN 63, "NOMINA 1RA QUINCENA" ELSE PRINT COLUMN 63, "NOMINA 2DA QUINCENA" END IF SKIP 1 LINE PRINT COLUMN 1, "--------------------------------------------------", "----------------------------------------", negrillas_on PRINT COLUMN 2, "Cuenta ", COLUMN 11, "Dpto", COLUMN 18, "Cta. Aux.", COLUMN 31, "Concepto", COLUMN 60, "Debe", COLUMN 85, "Haber",negrillas_off PRINT COLUMN 1, "--------------------------------------------------", "----------------------------------------" LET total1 = 0 LET total2 = 0 ON EVERY ROW IF total1 IS NULL THEN LET total1 = 0 END IF PRINT COLUMN 2,"7101", COLUMN 11,x.departamento, COLUMN 55,x.valor USING "###,###,###.##" LET total1 = total1 + x.valor ON LAST ROW ###### Acumulando totales por columna LET total2 = 0 SELECT sum(a.valor) INTO total2 FROM notb00008 a,notb00002 b WHERE a.cod_mov = b.cod_mov AND a.tipo_emp = "Q" AND b.tipo_mov = "V" AND b.clase_mov = "D" AND b.status_t IS NULL LET total3 = total1 + total2 SELECT sum(a.valor) INTO total4 FROM notb00008 a WHERE a.tipo_emp = "Q" AND num_nomi = nomina AND a.status_t IS NULL IF total4 IS NULL THEN LET total4 = 0 END IF IF total2 > 0 THEN PRINT COLUMN 2,"1126", COLUMN 11,"6880", COLUMN 55,total2 USING "###,###,###.##" END IF LET total3 = total1 + total2 DECLARE busco CURSOR FOR SELECT b.cod_mov,a.cta_aux,sum(b.valor) FROM notb00008 b,notb00002 a WHERE a.cod_mov = b.cod_mov AND a.tipo_mov = "F" AND a.clase_mov IN ("D","S","R") AND b.tipo_emp = "Q" AND b.num_nomi = nomina GROUP BY 1,2 ORDER BY 1,2 LET total5 = 0 LET total6 = 0 FOREACH busco INTO auxiliar.* PRINT COLUMN 2,"2125", COLUMN 18,auxiliar.cta_aux, COLUMN 75,auxiliar.valor1 USING "###,###,###.##" END FOREACH SELECT SUM(a.monto) INTO total5 FROM notb00009 a WHERE a.num_nomi = nomina AND a.tipo_emp = "Q" PRINT COLUMN 2,"1103", COLUMN 75,total5 USING "###,###,###.##" LET total6 = total4 + total5 PRINT COLUMN 55,total3 USING "###,###,###.##", COLUMN 75,total6 USING "###,###,###.##" END REPORT