Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,307 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : NOPRRP027
|
||||
OBJETIVO : Analisis Polizas de Accidente de Trabajo
|
||||
PROGRAMADOR : Tadeo A. Ferreras
|
||||
FECHA REALIZACION : Octubre 18, 1995.
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "noprgb000.4gl"
|
||||
DEFINE p_ano,p_mes INTEGER,
|
||||
salir CHAR(1),
|
||||
fecha1 DATE,
|
||||
ano1 CHAR(4)
|
||||
|
||||
FUNCTION noprrp027()
|
||||
|
||||
## SE DEFINE EL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA EL REPORTE
|
||||
DEFINE datos_rep27 RECORD
|
||||
num_emp INTEGER,
|
||||
departamento INTEGER,
|
||||
nom1_emp CHAR(15),
|
||||
nom2_emp CHAR(15),
|
||||
apell1_emp CHAR(15),
|
||||
apell2_emp CHAR(15),
|
||||
tipo_emp CHAR(1),
|
||||
valor1 DECIMAL(12,2),
|
||||
porc_trab DECIMAL(12,2),
|
||||
valor2 DECIMAL(12,2)
|
||||
END RECORD
|
||||
#WHENEVER ERROR CONTINUE
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
CLEAR SCREEN
|
||||
|
||||
OPEN FORM nofmrp027 FROM "nofmrp027"
|
||||
DISPLAY FORM nofmrp027
|
||||
CALL pantalla()
|
||||
DISPLAY "noprrp027" AT 4,3
|
||||
DISPLAY "Analisis Polizas Accidentes de Trabajo" AT 6,21
|
||||
|
||||
## INDICA EL PAPEL NECESARIO PARA IMPRIMIR EL REPORTE. 1 - PAPEL 9 1/2 X 11
|
||||
## 2 - PAPEL 14 7/8 X 11
|
||||
|
||||
LET tipo_papel = 1
|
||||
CALL msgrp000(tipo_papel)
|
||||
|
||||
INPUT BY NAME p_ano,p_mes
|
||||
AFTER FIELD p_ano
|
||||
IF p_ano IS NULL OR p_ano > YEAR(TODAY) THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD p_ano
|
||||
END IF
|
||||
|
||||
AFTER FIELD p_mes
|
||||
IF p_mes IS NULL OR p_mes > 12 THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD p_mes
|
||||
END IF
|
||||
|
||||
SELECT MAX(a.fecha_al) INTO fecha1 FROM notb00010 a
|
||||
WHERE a.ano = p_ano AND a.mes = p_mes AND
|
||||
(a.status_t IS NULL OR a.status_t = "P")
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD p_mes
|
||||
END IF
|
||||
END INPUT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
### Se crea el criterio de busqueda
|
||||
|
||||
CONSTRUCT criterio ON a.nomina FROM nomina
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
## SE SELECCIONAN LOS CAMPOS NECESARIOS PARA EL REPORTE
|
||||
LET ano1 = p_ano USING "&&&&"
|
||||
|
||||
LET selec =
|
||||
"SELECT a.num_emp,a.departamento,a.nom1_emp,a.nom2_emp,a.apell1_emp, ",
|
||||
" a.apell2_emp,a.nomina ",
|
||||
"FROM adtb00003 a ",
|
||||
"WHERE (a.status_t IS NULL OR a.status_t = 'I') AND ",
|
||||
criterio CLIPPED
|
||||
|
||||
DISPLAY "Buscando Informacion ... Espere Por Favor" AT 19,14
|
||||
ATTRIBUTE (REVERSE,BOLD)
|
||||
|
||||
PREPARE comando FROM selec
|
||||
DECLARE busca1 CURSOR FOR comando
|
||||
#OPEN busca1 USING fecha1,ano1
|
||||
OPEN busca1
|
||||
|
||||
START REPORT reporte_027 TO "C:\\archivo"
|
||||
|
||||
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
|
||||
AT 19,14 ATTRIBUTE (REVERSE)
|
||||
|
||||
## AQUI SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE
|
||||
## SALIDA AL REPORTE
|
||||
|
||||
DISPLAY "Fecha: ",fecha1 AT 22,14
|
||||
LET idx = 1
|
||||
LET salir = "N"
|
||||
WHILE salir != "S"
|
||||
FETCH busca1 INTO datos_rep27.*
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET salir = "S"
|
||||
LET idx = 1
|
||||
EXIT WHILE
|
||||
END IF
|
||||
|
||||
LET idx = idx + 1
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET datos_rep27.valor1 = 0
|
||||
LET datos_rep27.porc_trab = 0
|
||||
LET datos_rep27.valor2 = 0
|
||||
|
||||
IF YEAR(TODAY) != p_ano THEN
|
||||
SELECT SUM(a.valor) INTO datos_rep27.valor1 FROM notb00016 a
|
||||
WHERE (a.status_t IS NULL) AND (a.num_emp = datos_rep27.num_emp) AND
|
||||
(a.clase_mov IN ('I','E')) AND (a.fecha <= fecha1 AND
|
||||
YEAR(a.fecha) = p_ano) AND (a.valor IS NOT NULL AND
|
||||
a.valor > 0)
|
||||
ELSE
|
||||
SELECT SUM(a.valor) INTO datos_rep27.valor1 FROM notb00008 a
|
||||
WHERE (a.status_t IS NULL) AND (a.num_emp = datos_rep27.num_emp) AND
|
||||
(a.clase_mov IN ('I','E')) AND (a.fecha <= fecha1 AND
|
||||
YEAR(a.fecha) = p_ano) AND (a.valor IS NOT NULL AND
|
||||
a.valor > 0)
|
||||
END IF
|
||||
SELECT a.porc_accidente INTO datos_rep27.porc_trab
|
||||
FROM notb00018 a WHERE a.num_emp = datos_rep27.num_emp
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET STATUS = 0
|
||||
LET salir = "N"
|
||||
END IF
|
||||
IF datos_rep27.porc_trab IS NULL THEN
|
||||
LET datos_rep27.porc_trab = 0
|
||||
END IF
|
||||
IF datos_rep27.valor1 IS NULL THEN
|
||||
LET datos_rep27.valor1 = 0
|
||||
END IF
|
||||
LET datos_rep27.valor1 = (datos_rep27.valor1 / p_mes) * 12
|
||||
LET datos_rep27.valor2 = datos_rep27.valor1 * (datos_rep27.porc_trab/100)
|
||||
|
||||
IF datos_rep27.valor1 > 0 THEN
|
||||
DISPLAY "DATOS: ",datos_rep27.num_emp USING "&&&&","-",
|
||||
datos_rep27.valor1 USING "##,###,###.##" AT 20,14
|
||||
|
||||
OUTPUT TO REPORT reporte_027(datos_rep27.*)
|
||||
END IF
|
||||
END WHILE
|
||||
FINISH REPORT reporte_027
|
||||
|
||||
CLEAR SCREEN
|
||||
|
||||
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
||||
|
||||
## AQUI SE DEFINE EL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA
|
||||
## EL REPORTE
|
||||
|
||||
REPORT reporte_027(x)
|
||||
DEFINE x RECORD
|
||||
num_emp INTEGER,
|
||||
departamento INTEGER,
|
||||
nom1_emp CHAR(15),
|
||||
nom2_emp CHAR(15),
|
||||
apell1_emp CHAR(15),
|
||||
apell2_emp CHAR(15),
|
||||
tipo_emp CHAR(1),
|
||||
valor1 DECIMAL(12,2),
|
||||
porc_trab DECIMAL(12,2),
|
||||
valor2 DECIMAL(12,2)
|
||||
END RECORD,
|
||||
doble_on,doble_off,negrillas_on,negrillas_off,comp_on,
|
||||
comp_off,doce,normal CHAR(2),
|
||||
hora CHAR(5),
|
||||
tipo_nom CHAR(12)
|
||||
|
||||
## DEFINICION DE LOS MARGENES DE IMPRESION
|
||||
|
||||
OUTPUT
|
||||
TOP MARGIN 0
|
||||
LEFT MARGIN 0
|
||||
BOTTOM MARGIN 4
|
||||
ORDER BY x.tipo_emp,x.porc_trab DESC,x.num_emp
|
||||
|
||||
FORMAT
|
||||
PAGE HEADER
|
||||
LET doble_on = ASCII 14
|
||||
LET doble_off = ASCII 20
|
||||
LET negrillas_on = ASCII 27, ASCII 69
|
||||
LET negrillas_off = ASCII 27, ASCII 70
|
||||
LET comp_on = ASCII 15
|
||||
LET comp_off = ASCII 18
|
||||
LET doce = ASCII 27, ASCII 77
|
||||
LET normal = ASCII 27, ASCII 80
|
||||
LET hora = time
|
||||
|
||||
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
|
||||
|
||||
PRINT COLUMN 1, comp_on,negrillas_on
|
||||
PRINT COLUMN 1, "noprrp027",
|
||||
COLUMN 33, p_companias.nombre CLIPPED,
|
||||
COLUMN 106, "Pag. ",pageno using "###"
|
||||
PRINT COLUMN 33, " Sistema de Nomina",
|
||||
COLUMN 106, today using "dd/mm/yy"
|
||||
PRINT COLUMN 33, " Analisis Polizas Accidente de Trabajo",
|
||||
COLUMN 109, hora
|
||||
|
||||
PRINT COLUMN 1, "FECHA DE CORTE: ",fecha1 USING "dd/mm/yy"
|
||||
PRINT COLUMN 1, "--------------------------------------------------",
|
||||
"--------------------------------------------------",
|
||||
"-------------"
|
||||
PRINT COLUMN 83, "Devengado",
|
||||
COLUMN 107, "Total"
|
||||
|
||||
PRINT COLUMN 1, "Empleado",
|
||||
COLUMN 70, "Depto.",
|
||||
COLUMN 83, "Proyectado",
|
||||
COLUMN 94, "% Poliza",
|
||||
COLUMN 107, "A Pagar"
|
||||
|
||||
PRINT COLUMN 1, "--------------------------------------------------",
|
||||
"--------------------------------------------------",
|
||||
"-------------"
|
||||
PRINT COLUMN 1, negrillas_off
|
||||
|
||||
BEFORE GROUP OF x.tipo_emp
|
||||
|
||||
IF x.tipo_emp= "Q" THEN
|
||||
LET tipo_nom = " QUINCENALES"
|
||||
ELSE
|
||||
LET tipo_nom = "SEMANALES"
|
||||
END IF
|
||||
|
||||
PRINT COLUMN 1, negrillas_on,tipo_nom CLIPPED,negrillas_off
|
||||
|
||||
ON EVERY ROW
|
||||
|
||||
PRINT COLUMN 1, x.num_emp USING "&&&&"," ",x.nom1_emp CLIPPED," ",
|
||||
x.nom2_emp CLIPPED," ",x.apell1_emp CLIPPED," ",
|
||||
x.apell2_emp CLIPPED,
|
||||
COLUMN 70, x.departamento USING "&&&&",
|
||||
COLUMN 80, x.valor1 USING "##,###,###.##",
|
||||
COLUMN 94, x.porc_trab USING "###.##",
|
||||
COLUMN 101, x.valor2 USING "##,###,###.##"
|
||||
|
||||
AFTER GROUP OF x.porc_trab
|
||||
|
||||
### Impresion de total devengado y total pagado por Prociento
|
||||
|
||||
PRINT COLUMN 1, negrillas_on
|
||||
PRINT COLUMN 5, "Total Por Porciento",
|
||||
COLUMN 80, GROUP SUM(x.valor1) USING "##,###,###.##",
|
||||
COLUMN 101, GROUP SUM(x.valor2) USING "##,###,###.##"
|
||||
PRINT COLUMN 1, negrillas_off
|
||||
|
||||
AFTER GROUP OF x.tipo_emp
|
||||
|
||||
### Impresion de total devengado y total pagado por tipo de nomina
|
||||
|
||||
PRINT COLUMN 1, negrillas_on
|
||||
PRINT COLUMN 5, "Total Por Tipo de Nomina",
|
||||
COLUMN 80, GROUP SUM(x.valor1) USING "##,###,###.##",
|
||||
COLUMN 101, GROUP SUM(x.valor2) USING "##,###,###.##"
|
||||
PRINT COLUMN 1, negrillas_off
|
||||
|
||||
ON LAST ROW
|
||||
|
||||
### Impresion de total devengado y total pagado en general
|
||||
|
||||
PRINT COLUMN 1, negrillas_on
|
||||
PRINT COLUMN 5, "Total General",
|
||||
COLUMN 80, SUM(x.valor1) USING "##,###,###.##",
|
||||
COLUMN 101, SUM(x.valor2) USING "##,###,###.##"
|
||||
PRINT COLUMN 1, negrillas_off,normal
|
||||
|
||||
END REPORT
|
||||
Reference in New Issue
Block a user