Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,645 @@
|
||||
{
|
||||
------------------------------------------------------------------------
|
||||
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
|
||||
Reference in New Issue
Block a user