646 lines
20 KiB
Plaintext
646 lines
20 KiB
Plaintext
{
|
|
------------------------------------------------------------------------
|
|
FORMULARIO : NOPRRP008
|
|
OBJETIVO : Reporte para imprimir los Volantes
|
|
PROGRAMADOR : Ing. Juan Soto.
|
|
FECHA REALIZACION : Noviembre 5, 1993
|
|
MODIFICADO POR : Ing. Juan Soto
|
|
FECHA : Marzo 11, 2003
|
|
DESCRIPCION : Volante de Los empleados por pagar la nomina automatica
|
|
en el BANCO POPULAR, EL CODIGO DE LA EMPRESA ES EL 3563.
|
|
-----------------------------------------------------------------------------
|
|
}
|
|
|
|
GLOBALS "noprgb000.4gl"
|
|
|
|
DEFINE letras RECORD
|
|
negrillas_on ,
|
|
negrillas_off ,
|
|
doble_on ,
|
|
doble_off ,
|
|
comp_on ,
|
|
comp_off ,
|
|
doce ,
|
|
normal CHAR(6)
|
|
END RECORD,
|
|
fecha_inicial DATE
|
|
|
|
DEFINE impresor SMALLINT,
|
|
imprime CHAR(80),
|
|
archivo CHAR(20),
|
|
cuenta_emp SMALLINT
|
|
|
|
DEFINE cheque_ini,cheque_fin,no_cheque,emp_ant INTEGER
|
|
DEFINE idx_40,idx_x,k,l,t,i,idx,numero_msg SMALLINT
|
|
DEFINE meses ARRAY[12] OF CHAR(15)
|
|
DEFINE valor_letras CHAR(90)
|
|
DEFINE unidades1 ARRAY[19] OF CHAR(10)
|
|
DEFINE decenas ARRAY[81] OF CHAR(20)
|
|
DEFINE centenas ARRAY[10] OF CHAR(20)
|
|
DEFINE miles ARRAY[9] OF CHAR(2)
|
|
DEFINE salir,cuarta CHAR(1)
|
|
DEFINE selec21,selec20,selec10 CHAR(500)
|
|
DEFINE criterio10 CHAR(200)
|
|
DEFINE segunda,primera,siguie CHAR(1)
|
|
DEFINE p_valor DECIMAL(12,2),
|
|
formulario CHAR(70)
|
|
|
|
DEFINE emp_neto RECORD
|
|
num_emp SMALLINT,
|
|
valor DECIMAL(12,2)
|
|
END RECORD
|
|
|
|
DEFINE arr_mov ARRAY[24] OF RECORD
|
|
num_emp INTEGER,
|
|
cod_mov1 SMALLINT,
|
|
descrip1 CHAR(10),
|
|
cantidad1 DECIMAL(8,2),
|
|
valor1 DECIMAL(8,2),
|
|
acumulado1 DECIMAL(10,2),
|
|
cod_mov2 SMALLINT,
|
|
descrip2 CHAR(10),
|
|
cantidad2 DECIMAL(8,2),
|
|
valor2 DECIMAL(8,2),
|
|
acumulado2 DECIMAL(10,2),
|
|
cod_mov3 SMALLINT,
|
|
descrip3 CHAR(10),
|
|
cantidad3 DECIMAL(8,2),
|
|
valor3 DECIMAL(8,2),
|
|
acumulado3 DECIMAL(10,2)
|
|
END RECORD
|
|
|
|
DEFINE c_entra RECORD
|
|
fecha DATE,
|
|
num_nomi INTEGER,
|
|
tipo_emp CHAR(1),
|
|
nombre_tipo CHAR(20)
|
|
END RECORD
|
|
|
|
DEFINE datos_peri RECORD
|
|
tipo_emp CHAR(1),
|
|
fecha_d DATE,
|
|
fecha_a DATE
|
|
END RECORD
|
|
|
|
DEFINE cientos ARRAY[9] OF CHAR(20)
|
|
DEFINE decimas ARRAY[99] OF CHAR(20)
|
|
|
|
FUNCTION noprrp008()
|
|
DEFINE acumula RECORD
|
|
cod_mov LIKE notb00008.cod_mov,
|
|
num_emp LIKE notb00008.num_emp,
|
|
valor DECIMAL(12,2)
|
|
END RECORD
|
|
DEFINE datos_cheque RECORD
|
|
num_emp LIKE adtb00003.num_emp,
|
|
departamento LIKE adtb00003.departamento,
|
|
nivel_emp LIKE adtb00003.nivel_emp,
|
|
cod_puesto LIKE adtb00003.cod_puesto,
|
|
nom1_emp LIKE adtb00003.nom1_emp,
|
|
apell1_emp LIKE adtb00003.nom1_emp,
|
|
nom2_emp LIKE adtb00003.nom1_emp,
|
|
apell2_emp LIKE adtb00003.nom1_emp,
|
|
cod_mov LIKE notb00008.cod_mov,
|
|
descrip_mov LIKE notb00002.segundo_enc,
|
|
tipo_d CHAR(1),
|
|
cantidad LIKE notb00008.cantidad,
|
|
valor LIKE notb00008.valor,
|
|
cuenta_no LIKE adtb00003.cuenta_no,
|
|
nombre CHAR(80),
|
|
numero INTEGER,
|
|
fecha DATE,
|
|
acumulado DECIMAL(12,2),
|
|
neto DECIMAL(12,2)
|
|
|
|
END RECORD,
|
|
imp_form CHAR(1)
|
|
OPTIONS
|
|
FORM LINE 9,
|
|
ERROR LINE 24,
|
|
COMMENT LINE 22
|
|
|
|
# Desplegue de pantalla y de formulario para la captura de informacion
|
|
CALL pantalla()
|
|
LET formulario = formulario CLIPPED,"nofmrp008"
|
|
OPEN FORM nofmrp008 FROM formulario
|
|
DISPLAY FORM nofmrp008
|
|
DISPLAY "noprrp008" AT 4,2 ATTRIBUTE(RED)
|
|
DISPLAY "Volantes de Nomina" AT 6,31 ATTRIBUTE(BLACK)
|
|
|
|
INITIALIZE c_entra TO null
|
|
|
|
#Captura de informacion para el reporte: banco,numero de nomina,cheque_no
|
|
INPUT BY NAME c_entra.*,imp_form
|
|
AFTER FIELD tipo_emp
|
|
IF c_entra.tipo_emp = "Q" THEN
|
|
LET c_entra.nombre_tipo = "QUINCENAL"
|
|
END IF
|
|
IF c_entra.tipo_emp = "S" THEN
|
|
LET c_entra.nombre_tipo = "SEMANAL"
|
|
END IF
|
|
IF c_entra.tipo_emp = "V" THEN
|
|
LET c_entra.nombre_tipo = "VENDEDORES"
|
|
END IF
|
|
LET fecha_inicial = "01/01/2005"
|
|
|
|
SELECT COUNT(*) INTO cuenta_emp FROM adtb00003
|
|
WHERE (status_t IS NULL OR
|
|
status_t = "I") AND num_emp NOT IN (560,564,609,614) AND nomina = c_entra.tipo_emp
|
|
|
|
# Monto Nomina
|
|
# Del monto total de la nomina se quitaran las fichas mas abajo mencionadas porque ellos tienen
|
|
# Problemas de credito en el banco.
|
|
SELECT SUM(a.valor) INTO p_valor FROM notb00008 a,adtb00003 b
|
|
WHERE a.num_nomi = c_entra.num_nomi AND
|
|
a.tipo_emp = c_entra.tipo_emp AND
|
|
a.cod_mov not in (100,101,102,98,50) AND
|
|
# a.num_emp NOT IN (560,564,609,614)
|
|
a.num_emp = b.num_emp AND b.cuenta_no IS NOT NULL
|
|
|
|
DISPLAY BY NAME c_entra.nombre_tipo ATTRIBUTE (BOLD)
|
|
SELECT tipo_emp,fecha_del,fecha_al INTO datos_peri.* FROM notb00010
|
|
WHERE num_nomi = c_entra.num_nomi and
|
|
tipo_emp = c_entra.tipo_emp and
|
|
status_t is null
|
|
|
|
IF status = notfound THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD tipo_emp
|
|
END IF
|
|
|
|
DISPLAY BY NAME datos_peri.* ATTRIBUTE(BOLD)
|
|
AFTER INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
EXIT INPUT
|
|
END INPUT
|
|
CONSTRUCT BY NAME criterio10 ON a.departamento,a.num_emp
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
LET selec10 =
|
|
"SELECT a.num_emp,a.departamento,a.nivel_emp,a.cod_puesto, ",
|
|
"a.nom1_emp,a.apell1_emp,a.nom2_emp,a.apell2_emp, ",
|
|
"b.cod_mov,c.ch_encabeza,b.clase_mov,b.cantidad,b.valor, ",
|
|
"a.cuenta_no ",
|
|
"FROM adtb00003 a,notb00008 b, notb00002 c ",
|
|
"WHERE a.num_emp = b.num_emp and ",
|
|
"b.num_nomi = ? and ",
|
|
"b.tipo_emp = ? and ",
|
|
"b.cod_mov = c.cod_mov and ",
|
|
criterio10 clipped,
|
|
"ORDER BY 2,1,9"
|
|
|
|
PREPARE comando FROM selec10
|
|
DECLARE busca CURSOR FOR comando
|
|
OPEN busca USING c_entra.num_nomi,c_entra.tipo_emp
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
START REPORT cheque TO "c:\\volantes.txt"
|
|
|
|
START REPORT banco to "c:\\MTECH.txt"
|
|
|
|
DISPLAY "Volantes Generandose... Espere Por Favor" AT 19,14
|
|
ATTRIBUTE(REVERSE,BOLD)
|
|
|
|
LET i = 1
|
|
LET idx = 1
|
|
LET siguie = "S"
|
|
LET emp_ant = 0
|
|
LET cuarta = "N"
|
|
|
|
|
|
WHILE STATUS != NOTFOUND
|
|
FETCH busca INTO datos_cheque.*
|
|
IF status = notfound THEN
|
|
EXIT WHILE
|
|
END IF
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
LET datos_cheque.nombre = datos_cheque.nom1_emp clipped," ",
|
|
datos_cheque.nom2_emp clipped," ",
|
|
datos_cheque.apell1_emp clipped," ",
|
|
datos_cheque.apell2_emp clipped
|
|
|
|
LET datos_cheque.acumulado = 0
|
|
|
|
# Busqueda de acumulados
|
|
SELECT a.* FROM notb00014 a
|
|
WHERE a.cod_mov = datos_cheque.cod_mov
|
|
|
|
IF STATUS != NOTFOUND THEN
|
|
SELECT sum(valor) INTO datos_cheque.acumulado FROM notb00008
|
|
WHERE num_emp = datos_cheque.num_emp and
|
|
cod_mov = datos_cheque.cod_mov and
|
|
fecha <= datos_peri.fecha_a AND
|
|
fecha >= fecha_inicial
|
|
ELSE
|
|
SELECT sum(valor) INTO datos_cheque.acumulado FROM notb00008
|
|
WHERE num_emp = datos_cheque.num_emp and
|
|
cod_mov = datos_cheque.cod_mov and
|
|
fecha >= fecha_inicial and
|
|
fecha <= datos_peri.fecha_a
|
|
END IF
|
|
|
|
IF datos_cheque.cod_mov = 12 THEN
|
|
SELECT valor INTO p_valor FROM notb00008
|
|
WHERE num_nomi = c_entra.num_nomi and tipo_emp = c_entra.tipo_emp and
|
|
num_emp = datos_cheque.num_emp and
|
|
cod_mov = 110
|
|
LET datos_cheque.valor = datos_cheque.valor + p_valor
|
|
END IF
|
|
|
|
# Busque del valor neto del empleado para que el programa tenga la oportunidad
|
|
# de buscar el valor en letras del cheque
|
|
|
|
SELECT sum(a.valor) INTO datos_cheque.neto FROM notb00008 a
|
|
WHERE
|
|
a.num_nomi = c_entra.num_nomi and
|
|
a.tipo_emp = c_entra.tipo_emp and
|
|
a.cod_mov not in (100,101,102,98,50) and
|
|
a.num_emp = datos_cheque.num_emp and
|
|
a.departamento = datos_cheque.departamento
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
OUTPUT TO REPORT cheque(datos_cheque.*)
|
|
OUTPUT TO REPORT banco(datos_cheque.*)
|
|
|
|
LET siguie = "N"
|
|
END WHILE
|
|
|
|
FINISH REPORT cheque
|
|
FINISH REPORT banco
|
|
|
|
RUN "type C:\\volantes.txt > %USPRINT1%"
|
|
RUN "type C:\\rayovac.txt > %USPRINT1%"
|
|
|
|
END FUNCTION
|
|
|
|
REPORT cheque(x)
|
|
|
|
DEFINE x RECORD
|
|
num_emp LIKE adtb00003.num_emp,
|
|
departamento LIKE adtb00003.departamento,
|
|
nivel_emp LIKE adtb00003.nivel_emp,
|
|
cod_puesto LIKE adtb00003.cod_puesto,
|
|
nom1_emp LIKE adtb00003.nom1_emp,
|
|
apell1_emp LIKE adtb00003.nom1_emp,
|
|
nom2_emp LIKE adtb00003.nom1_emp,
|
|
apell2_emp LIKE adtb00003.nom1_emp,
|
|
cod_mov LIKE notb00008.cod_mov,
|
|
descrip_mov LIKE notb00002.segundo_enc,
|
|
tipo_d CHAR(1),
|
|
cantidad LIKE notb00008.cantidad,
|
|
valor LIKE notb00008.valor,
|
|
cuenta_no LIKE adtb00003.cuenta_no,
|
|
nombre CHAR(80),
|
|
numero INTEGER,
|
|
fecha DATE,
|
|
acumulado DECIMAL(12,2),
|
|
neto DECIMAL(12,2)
|
|
|
|
END RECORD
|
|
|
|
DEFINE col1,col2,col3,segunda,imp CHAR(1)
|
|
DEFINE ano CHAR(4)
|
|
DEFINE nombre_mes CHAR(10)
|
|
DEFINE orden,fact CHAR(30)
|
|
DEFINE subraya_on,subraya_off CHAR(3)
|
|
DEFINE italica,italica_of CHAR(2)
|
|
DEFINE l,k,in_mes INTEGER,
|
|
t_monto,t_desc,p_monto DECIMAL(12,2)
|
|
|
|
OUTPUT
|
|
LEFT MARGIN 0
|
|
PAGE LENGTH 22
|
|
|
|
FORMAT
|
|
|
|
BEFORE GROUP OF x.num_emp
|
|
|
|
LET italica = ASCII 27, ASCII 52
|
|
LET italica_of = ASCII 27, ASCII 53
|
|
|
|
LET subraya_on = ASCII 27, ASCII 45, ASCII 1
|
|
LET subraya_off = ASCII 27, ASCII 45, ASCII 0
|
|
LET t_desc = 0
|
|
LET t_monto = 0
|
|
LET in_mes = month(today)
|
|
CALL busca_mes()
|
|
LET nombre_mes = meses[in_mes]
|
|
|
|
|
|
|
|
PRINT COLUMN 1,letras.negrillas_on,
|
|
COLUMN 5, "Nomina: ",letras.negrillas_off,c_entra.nombre_tipo,
|
|
COLUMN 60, "del ",datos_peri.fecha_d using "dd/mm/yyyy"
|
|
|
|
|
|
PRINT COLUMN 1,letras.negrillas_on,
|
|
COLUMN 10, "Empleado: ",letras.negrillas_off,
|
|
"(",x.num_emp using "&&&",")",
|
|
x.nombre[1,30],
|
|
COLUMN 60, "al ",datos_peri.fecha_a using "dd/mm/yyyy",
|
|
letras.comp_off
|
|
|
|
LET p_monto = x.neto
|
|
LET ano = year(today) using "&&&&"
|
|
PRINT COLUMN 5,
|
|
"|------ INGRESOS ------|",
|
|
"|----------- DESCUENTOS -----------|"
|
|
|
|
PRINT COLUMN 5, "FECHA EMISION: ",day(today) using "&&",
|
|
2 SPACES, nombre_mes clipped,
|
|
2 SPACES, ano,letras.negrillas_on
|
|
PRINT COLUMN 5, "COD",
|
|
12 SPACES, "HORAS",
|
|
2 SPACES, "MONTO",
|
|
4 SPACES, "ACUMULADO",
|
|
2 SPACES, "COD",
|
|
12 SPACES, "MONTO",
|
|
2 SPACES, "ACUMULADO",
|
|
letras.negrillas_off
|
|
LET imp = "N"
|
|
LET k = 0
|
|
SKIP 1 LINES
|
|
|
|
ON EVERY ROW
|
|
IF x.tipo_d = "I" or x.tipo_d = "P" or
|
|
x.tipo_d = "E" THEN
|
|
IF idx > 1 THEN
|
|
FOR k = 1 TO 9
|
|
IF arr_mov[k].cod_mov1 is null or
|
|
arr_mov[k].cod_mov1 = 0 THEN
|
|
LET i = k
|
|
EXIT FOR
|
|
END IF
|
|
END FOR
|
|
END IF
|
|
LET arr_mov[i].num_emp = x.num_emp
|
|
LET arr_mov[i].cod_mov1 = x.cod_mov
|
|
LET arr_mov[i].descrip1 = x.descrip_mov
|
|
LET arr_mov[i].cantidad1 = x.cantidad
|
|
LET arr_mov[i].valor1 = x.valor
|
|
LET arr_mov[i].acumulado1 = x.acumulado
|
|
LET i = i + 1
|
|
LET primera = "S"
|
|
END IF
|
|
|
|
IF x.tipo_d = "S" or
|
|
x.tipo_d = "R" or
|
|
x.tipo_d = "D" THEN
|
|
IF idx <= 12 THEN
|
|
IF primera = "S" THEN
|
|
LET primera = "N"
|
|
LET i = 1
|
|
END IF
|
|
FOR k = 1 TO 9
|
|
IF arr_mov[k].cod_mov2 is null or
|
|
arr_mov[k].cod_mov2 = 0 THEN
|
|
LET i = k
|
|
EXIT FOR
|
|
END IF
|
|
END FOR
|
|
|
|
LET arr_mov[i].num_emp = x.num_emp
|
|
LET arr_mov[i].cod_mov2 = x.cod_mov
|
|
LET arr_mov[i].descrip2 = x.descrip_mov
|
|
LET arr_mov[i].cantidad2 = null
|
|
LET arr_mov[i].valor2 = x.valor
|
|
LET arr_mov[i].acumulado2 = x.acumulado
|
|
LET i = i + 1
|
|
LET segunda = "S"
|
|
END IF
|
|
|
|
IF idx > 12 THEN
|
|
IF segunda = "S" THEN
|
|
LET segunda = "N"
|
|
LET i = 1
|
|
END IF
|
|
FOR k = 1 TO 9
|
|
IF arr_mov[k].cod_mov3 is null or
|
|
arr_mov[k].cod_mov3 = 0 THEN
|
|
LET i = k
|
|
EXIT FOR
|
|
END IF
|
|
END FOR
|
|
|
|
LET arr_mov[i].num_emp = x.num_emp
|
|
LET arr_mov[i].cod_mov3 = x.cod_mov
|
|
LET arr_mov[i].descrip3 = x.descrip_mov
|
|
LET arr_mov[i].cantidad3 = null
|
|
LET arr_mov[i].valor3 = x.valor
|
|
LET arr_mov[i].acumulado3 = x.acumulado
|
|
LET i = i + 1
|
|
END IF
|
|
END IF
|
|
LET idx = idx + 1
|
|
|
|
AFTER GROUP OF x.num_emp
|
|
LET col1 = "S"
|
|
LET l = 5
|
|
LET k = 0
|
|
FOR i = 1 TO idx
|
|
#-----------------------------------------------------------------------------
|
|
# Impresion de movimientos en columnas
|
|
#------------------------------------------------------------------------------
|
|
IF arr_mov[i].cod_mov2 != 0 or
|
|
arr_mov[i].cod_mov1 != 0 or
|
|
arr_mov[i].cod_mov3 != 0 THEN
|
|
LET k = k + 1
|
|
IF arr_mov[i].cod_mov1 = 0 THEN
|
|
LET arr_mov[i].cod_mov1 = null
|
|
END IF
|
|
IF arr_mov[i].cod_mov3 = 0 THEN
|
|
LET arr_mov[i].cod_mov3 = null
|
|
END IF
|
|
IF arr_mov[i].cod_mov2 = 0 THEN
|
|
LET arr_mov[i].cod_mov2 = null
|
|
END IF
|
|
|
|
PRINT COLUMN l, arr_mov[i].cod_mov1 using "&&"," ",
|
|
COLUMN l+3, arr_mov[i].descrip1,
|
|
COLUMN l+11, arr_mov[i].cantidad1 using "###.##",
|
|
COLUMN l+18, arr_mov[i].valor1 using "####,###.##",
|
|
COLUMN l+29, arr_mov[i].acumulado1 using "###,###.##","|",
|
|
|
|
COLUMN l+39, arr_mov[i].cod_mov2 using "&&"," ",
|
|
COLUMN l+42, arr_mov[i].descrip2,
|
|
COLUMN l+51, arr_mov[i].valor2 using "####,###.##",
|
|
COLUMN l+61, arr_mov[i].acumulado2 using "###,###.##","|",
|
|
|
|
COLUMN l+78, arr_mov[i].cod_mov3 using "&&"," ",
|
|
COLUMN l+81, arr_mov[i].descrip3 ,
|
|
#COLUMN l+91, arr_mov[i].cantidad3 using "###.##",
|
|
COLUMN l+91, arr_mov[i].valor3 using "###,###.##",
|
|
COLUMN l+100, arr_mov[i].acumulado3 using "###,###.##"
|
|
|
|
IF imp = "S" THEN
|
|
LET l = 115
|
|
END IF
|
|
|
|
# Totaliza los ingresos
|
|
IF arr_mov[i].valor1 > 0 THEN
|
|
LET t_monto = t_monto + arr_mov[i].valor1
|
|
END IF
|
|
|
|
IF arr_mov[i].valor2 > 0 THEN
|
|
LET t_monto = t_monto + arr_mov[i].valor2
|
|
END IF
|
|
|
|
IF arr_mov[i].valor3 > 0 THEN
|
|
LET t_monto = t_monto + arr_mov[i].valor3
|
|
END IF
|
|
|
|
# Totaliza los descuentos
|
|
IF arr_mov[i].valor1 < 0 THEN
|
|
LET t_desc = t_Desc + arr_mov[i].valor1
|
|
END IF
|
|
IF arr_mov[i].valor2 < 0 THEN
|
|
LET t_desc = t_desc + arr_mov[i].valor2
|
|
END IF
|
|
IF arr_mov[i].valor3 < 0 THEN
|
|
LET t_desc = t_desc + arr_mov[i].valor3
|
|
END IF
|
|
END IF
|
|
END FOR
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 5,letras.comp_off, "Ingresos: ", t_monto using "$,$$$,$$#.##",
|
|
2 SPACES, "Descuentos: ", t_desc using "$$$,$$#.##",
|
|
2 SPACES, "A Cobrar : ", p_monto using "$,$$$,$$#.##",letras.comp_off
|
|
|
|
# Limpieza del arreglo
|
|
FOR i = 1 TO idx
|
|
LET arr_mov[i].cod_mov1 = null
|
|
LET arr_mov[i].descrip1 = null
|
|
LET arr_mov[i].cantidad1 = null
|
|
LET arr_mov[i].valor1 = null
|
|
LET arr_mov[i].acumulado1 = null
|
|
LET arr_mov[i].cod_mov2 = null
|
|
LET arr_mov[i].descrip2 = null
|
|
LET arr_mov[i].cantidad2 = null
|
|
LET arr_mov[i].valor2 = null
|
|
LET arr_mov[i].acumulado2 = null
|
|
LET arr_mov[i].cod_mov3 = null
|
|
LET arr_mov[i].descrip3 = null
|
|
LET arr_mov[i].cantidad3 = null
|
|
LET arr_mov[i].valor3 = null
|
|
LET arr_mov[i].acumulado3 = null
|
|
END FOR
|
|
LET i = 1
|
|
LET idx = 1
|
|
Print "----------------------"
|
|
SKIP TO TOP OF PAGE
|
|
|
|
{ON LAST ROW
|
|
|
|
UPDATE notb00010 set status_t = "P"
|
|
WHERE num_nomi = c_entra.num_nomi and
|
|
tipo_emp = c_entra.tipo_emp
|
|
}
|
|
END REPORT
|
|
|
|
|
|
REPORT banco(x)
|
|
|
|
DEFINE x RECORD
|
|
num_emp LIKE adtb00003.num_emp,
|
|
departamento LIKE adtb00003.departamento,
|
|
nivel_emp LIKE adtb00003.nivel_emp,
|
|
cod_puesto LIKE adtb00003.cod_puesto,
|
|
nom1_emp LIKE adtb00003.nom1_emp,
|
|
apell1_emp LIKE adtb00003.nom1_emp,
|
|
nom2_emp LIKE adtb00003.nom1_emp,
|
|
apell2_emp LIKE adtb00003.nom1_emp,
|
|
cod_mov LIKE notb00008.cod_mov,
|
|
descrip_mov LIKE notb00002.segundo_enc,
|
|
tipo_d CHAR(1),
|
|
cantidad LIKE notb00008.cantidad,
|
|
valor LIKE notb00008.valor,
|
|
cuenta_no LIKE adtb00003.cuenta_no,
|
|
nombre CHAR(80),
|
|
numero INTEGER,
|
|
fecha DATE,
|
|
acumulado DECIMAL(12,2),
|
|
neto DECIMAL(12,2)
|
|
|
|
END RECORD
|
|
|
|
DEFINE m_sexo,col1,col2,col3,segunda,imp CHAR(1),
|
|
ch_valor,ch_neto CHAR(14)
|
|
DEFINE ano CHAR(4)
|
|
DEFINE nombre_mes CHAR(10)
|
|
DEFINE orden,fact CHAR(30)
|
|
DEFINE subraya_on,subraya_off CHAR(3)
|
|
DEFINE italica,italica_of CHAR(2)
|
|
DEFINE l,k,in_mes INTEGER,
|
|
t_monto,t_desc,p_monto DECIMAL(12,2)
|
|
|
|
OUTPUT
|
|
TOP MARGIN 0
|
|
LEFT MARGIN 0
|
|
PAGE LENGTH 700
|
|
FORMAT
|
|
FIRST PAGE HEADER
|
|
|
|
LET ch_valor = p_valor USING "&&&&&&&&&&&.##"
|
|
LET ch_valor = ch_valor[1,11],ch_valor[13,14]
|
|
PRINT "H","03431",c_entra.fecha USING "mmddyy",ch_valor CLIPPED,
|
|
cuenta_emp USING "&&&&&&", 70 SPACES
|
|
|
|
AFTER GROUP OF x.num_emp
|
|
display x.num_emp, x.cuenta_no
|
|
IF x.cuenta_no IS NOT NULL THEN
|
|
|
|
LET ch_neto = x.neto USING "&&&&&&&&&&&.##"
|
|
LET ch_neto = ch_neto[1,11],ch_neto[13,14]
|
|
|
|
PRINT "N",x.num_emp USING "&&&&&&&&&&",x.cuenta_no USING "&&&&&&&&&&",
|
|
ch_neto CLIPPED,x.departamento USING "&&&&&&&&&&",
|
|
56 SPACES
|
|
{
|
|
PRINT "N",x.num_emp USING "&&&&&&&&&&","|",x.cuenta_no USING "&&&&&&&&&&","|",
|
|
ch_neto CLIPPED,"|",x.departamento USING "&&&&&&&&&&","|",
|
|
56 SPACES
|
|
}
|
|
END IF
|
|
|
|
END REPORT
|
|
|
|
FUNCTION busca_mes()
|
|
LET meses[1] = "ENERO"
|
|
LET meses[2] = "FEBRERO"
|
|
LET meses[3] = "MARZO"
|
|
LET meses[4] = "ABRIL"
|
|
LET meses[5] = "MAYO"
|
|
LET meses[6] = "JUNIO"
|
|
LET meses[7] = "JULIO"
|
|
LET meses[8] = "AGOSTO"
|
|
LET meses[9] = "SEPTIEMBRE"
|
|
LET meses[10] = "OCTUBRE"
|
|
LET meses[11] = "NOVIEMBRE"
|
|
LET meses[12] = "DICIEMBRE"
|
|
END FUNCTION
|