Files
MBS/PROYECTO/nodir/noprrp005.4gl
T

299 lines
8.7 KiB
Plaintext

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