Files
2026-09-22 20:38:51 -04:00

599 lines
22 KiB
Plaintext

{
_______________________________________________________________________________
PROGRAMA : NOPRRP012
OBJETIVO : Listar las informaciones generales de los
Asegurados a un mes especifico.
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Agosto 25, 1993
_______________________________________________________________________________
}
GLOBALS "noprgb000.4gl"
FUNCTION noprrp012()
## SE DEFINE EL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA EL REPORTE
DEFINE list_seg RECORD
num_emp LIKE adtb00003.num_emp,
cod_seg1 LIKE adtb00003.cod_seg1,
cod_seg2 LIKE adtb00003.cod_seg2,
cod_seg3 LIKE adtb00003.cod_seg3,
nom1_emp LIKE adtb00003.nom1_emp,
apell1_emp LIKE adtb00003.apell1_emp,
cedula LIKE adtb00003.cedula,
serie LIKE adtb00003.serie,
sexo CHAR(1),
sueldo_ac LIKE adtb00003.sueldo_ac,
nomina LIKE adtb00003.nomina,
status_t CHAR(1),
fecha1 CHAR(8),
fecha2 CHAR(8)
END RECORD
DEFINE reg_seg1 RECORD
num_emp SMALLINT,
fecha1 DATE
END RECORD
DEFINE reg_seg2 RECORD
num_emp SMALLINT,
fecha2 DATE
END RECORD
DEFINE reg_seg4 RECORD
num_emp SMALLINT,
ingreso DECIMAL(12,2)
END RECORD
DEFINE mes SMALLINT
DEFINE ano CHAR(4)
DEFINE semanas SMALLINT
DEFINE descrip_mes CHAR(20)
DEFINE nombre CHAR(62)
DEFINE nom1,nom2,ape1,ape2 CHAR(14)
DEFINE salir_1,salir_2,salir_3,salir_4,tipo_nomina CHAR(1)
DEFINE idx_2,idx_3,idx_4 INTEGER
DEFINE descn CHAR(10)
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
CLEAR SCREEN
LET formulario = formulario CLIPPED,"nofmrp012"
OPEN FORM nofmrp012 FROM formulario
DISPLAY FORM nofmrp012
CALL pantalla()
DISPLAY "noprrp012" AT 4,3
DISPLAY "Seguro Social (I D S S)" AT 6,28
## 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 = 2
CALL msgrp000(tipo_papel)
INPUT BY NAME ano,mes
AFTER FIELD ano
IF ano IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD ano
END IF
IF ano > YEAR(TODAY) THEN
LET numero_msg = 160
CALL msg(numero_msg)
NEXT FIELD ano
END IF
AFTER FIELD mes
IF mes IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD mes
END IF
IF mes > 12 THEN
LET numero_msg = 160
CALL msg(numero_msg)
NEXT FIELD mes
END IF
SELECT nom1_emp,nom2_emp,apell1_emp,apell2_emp INTO nom1,nom2,ape1,ape2
FROM adtb00003 where departamento = 1000 and nivel_emp = 1 and
cod_puesto = 1
LET nombre = nom1 clipped," ",nom2 clipped," ",
ape1 clipped," ",ape2 clipped
SELECT b.descrip INTO descrip_mes
FROM mestable b WHERE b.mes = mes
SELECT UNIQUE MAX(a.num_sem) INTO semanas FROM notb00010 a
WHERE a.mes = mes AND a.ano = ano AND (a.status_t IS NULL OR
a.status_t NOT IN("T","E")) and a.tipo_emp = "S"
END INPUT
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
DECLARE accion CURSOR FOR
SELECT a.num_emp,a.cod_seg1,a.cod_seg2,a.cod_seg3,a.nom1_emp,
a.apell1_emp,a.cedula,a.serie,b.sexo,a.sueldo_ac,a.nomina,
a.status_t
FROM adtb00003 a,adtb00021 b
WHERE a.num_emp = b.num_emp AND (a.status_t IS NULL OR
a.status_t NOT IN("T","E")) AND a.paga_seg = "S" AND
(b.cod_par = 0 AND b.sec_par = 0)
ORDER BY 1
DISPLAY "Buscando Datos Basicos.. Espere Por Favor" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
OPEN accion
DECLARE accion2 SCROLL CURSOR FOR
SELECT num_emp,MIN(fech_efec) FROM adtb00020
WHERE status_t IS NULL AND MONTH(fech_efec) = mes AND
YEAR(fech_efec) = ano AND cod_mto = 1
GROUP BY 1 ORDER BY 1
DISPLAY "Buscando Entradas en el Mes... Espere " AT 19,14
OPEN accion2
DECLARE accion3 SCROLL CURSOR FOR
SELECT num_emp,MAX(fech_efec) FROM adtb00020
WHERE status_t IS NULL AND MONTH(fech_efec) = mes AND
YEAR(fech_efec) = ano AND cod_mto = 4
GROUP BY 1 ORDER BY 1
DISPLAY "Buscando Salidas en el Mes... Espere " AT 19,14
OPEN accion3
DECLARE accion4 SCROLL CURSOR FOR
SELECT a.num_emp,SUM(b.valor) FROM notb00008 b,adtb00003 a
WHERE a.num_emp = b.num_emp AND a.paga_seg = "S" AND
MONTH(b.fecha) = mes AND YEAR(b.fecha) = ano AND
b.clase_mov IN ("I","E")
GROUP BY 1 ORDER BY 1
DISPLAY "Buscando Ingresos en el mes...Espere " AT 19,14
OPEN accion4
START REPORT seg_soc TO PRINTER
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
LET salir_1 = "N"
WHILE salir_1 != "S"
FETCH accion INTO list_seg.*
IF STATUS = NOTFOUND THEN
LET salir_1 = "S"
EXIT WHILE
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET list_seg.sueldo_ac = 0
LET list_seg.fecha1 = " - - "
LET list_seg.fecha2 = " - - "
LET idx_4 = 1
LET salir_4 = "N"
WHILE salir_4 != "S"
FETCH ABSOLUTE idx_4 accion4 INTO reg_seg4.*
IF STATUS = NOTFOUND THEN
LET idx_4 = 1
LET salir_4 = "S"
EXIT WHILE
END IF
LET idx_4 = idx_4 + 1
IF list_seg.num_emp = reg_seg4.num_emp THEN
LET list_seg.sueldo_ac = reg_seg4.ingreso
LET salir_4 = "S"
LET idx_4 = 1
EXIT WHILE
END IF
END WHILE
LET idx_2 = 1
LET salir_2 = "N"
WHILE salir_2 != "S"
FETCH ABSOLUTE idx_2 accion2 INTO reg_seg1.*
IF STATUS = NOTFOUND THEN
LET idx_2 = 1
LET salir_2 = "S"
EXIT WHILE
END IF
LET idx_2 = idx_2 + 1
IF list_seg.num_emp = reg_seg1.num_emp THEN
LET list_seg.fecha1 = reg_seg1.fecha1 USING "dd-mm-yy"
LET salir_2 = "S"
LET idx_2 = 1
EXIT WHILE
END IF
END WHILE
IF list_seg.fecha1 IS NULL THEN
LET list_seg.fecha1 = " - - "
END IF
IF list_seg.status_t IS NOT NULL THEN
LET idx_3 = 1
LET salir_3 = "N"
WHILE salir_3 != "S"
FETCH ABSOLUTE idx_3 accion3 INTO reg_seg2.*
IF STATUS = NOTFOUND THEN
LET idx_3 = 1
LET salir_3 = "S"
EXIT WHILE
END IF
LET idx_3 = idx_3 + 1
IF list_seg.num_emp = reg_seg2.num_emp AND
MONTH(reg_seg2.fecha2) = mes THEN
LET list_seg.status_t = NULL
LET list_seg.fecha2 = reg_seg2.fecha2 USING "dd-mm-yy"
LET salir_3 = "S"
LET idx_3 = 1
EXIT WHILE
END IF
END WHILE
END IF
IF list_seg.fecha2 IS NULL THEN
LET list_seg.fecha2 = " - - "
END IF
IF list_seg.sueldo_ac IS NULL THEN
LET list_seg.sueldo_ac = 0
END IF
IF list_seg.status_t IS NULL THEN
OUTPUT TO REPORT seg_soc(list_seg.*,ano,mes,semanas,
descrip_mes,nombre,descn)
END IF
END WHILE
FINISH REPORT seg_soc
CLEAR SCREEN
END FUNCTION
## AQUI SE DEFINE EL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
REPORT seg_soc(x,ano1,mes1,semana,descrip,nombre1,descno)
DEFINE x RECORD
num_emp LIKE adtb00003.num_emp,
cod_seg1 LIKE adtb00003.cod_seg1,
cod_seg2 LIKE adtb00003.cod_seg2,
cod_seg3 LIKE adtb00003.cod_seg3,
nom1_emp LIKE adtb00003.nom1_emp,
apell1_emp LIKE adtb00003.apell1_emp,
cedula LIKE adtb00003.cedula,
serie LIKE adtb00003.serie,
sexo CHAR(1),
sueldo_ac LIKE adtb00003.sueldo_ac,
nomina LIKE adtb00003.nomina,
status_t CHAR(1),
fecha1 CHAR(8),
fecha2 CHAR(8)
END RECORD
DEFINE ano1,mes1 INTEGER
DEFINE semana SMALLINT
DEFINE descrip CHAR(20)
DEFINE descno CHAR(10)
DEFINE nombre1 CHAR(60)
## DEFINICION DE LAS VARIABLES DE IMPRESION
DEFINE doble_on CHAR(2)
DEFINE doble_off CHAR(2)
DEFINE negrillas_on CHAR(2)
DEFINE negrillas_off CHAR(2)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE normal CHAR(2)
DEFINE hora CHAR(5)
DEFINE l SMALLINT
DEFINE varia CHAR(12)
DEFINE existe CHAR(1)
OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 4
ORDER BY x.nomina 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
IF existe = "S" OR existe IS NULL THEN
PRINT COLUMN 1, "********NOMINA ",descno,"********",
COLUMN 210, "noprrp012"
PRINT COLUMN 1, "T - 60 Mod. 8",
COLUMN 51, "INSTITUTO DOMINICANO DE SEGURO SOCIALES"
PRINT COLUMN 52, "NOMBRE DEL DUENO O REPRESENTANTE LEGAL",
COLUMN 138, "___________________________________________",
"_______________________________________"
PRINT COLUMN 56, "(Si se trata de una compania)",
COLUMN 138, "|",
COLUMN 219, "|"
PRINT COLUMN 138, "|",
COLUMN 151, "CERTIFICO que, las informaciones abajo descritas son",
COLUMN 219, "|"
PRINT COLUMN 138, "|",
COLUMN 219, "|"
PRINT COLUMN 1, "RAZON SOCIAL O NOMBRE DE LA EMPRESA",
COLUMN 109, "TELEFONO NUMERO",
COLUMN 138, "|",
COLUMN 151, "correctas de conformidad con el libro de sueldos y ",
COLUMN 219, "|"
PRINT COLUMN 1, "----------------------------------------------",
COLUMN 59, "---------------------------------------",
COLUMN 108, "-----------------",
COLUMN 138, "|",
COLUMN 219, "|"
PRINT COLUMN 1, "| RAY-Y-VAC DOMINICANA, S. A. |",
COLUMN 59, "| ",nombre1 CLIPPED,
COLUMN 97, "|",
COLUMN 108, "|530 |5409 |",
COLUMN 138, "|",
COLUMN 151, "jornales, Nominas de Pagos y/o Sistema Contable",
COLUMN 219, "|"
PRINT COLUMN 1, "----------------------------------------------",
COLUMN 59, "---------------------------------------",
COLUMN 108, "-----------------",
COLUMN 138, "|",
COLUMN 219, "|"
PRINT COLUMN 138, "|",
COLUMN 219, "|"
PRINT COLUMN 7, "NUMERO PATRONAL",
COLUMN 57, "DIRECCION",
COLUMN 95, "MUNICIPIO",
COLUMN 138, "|",
COLUMN 219, "|"
PRINT COLUMN 5, "___________________________",
COLUMN 47, "_____________________________",
COLUMN 80, "__________________________________________",
COLUMN 138, "|",
COLUMN 219, "|"
PRINT COLUMN 5, "| 010 | 253 | 119 |",
COLUMN 47, "| AVENIDA ROMULO BETANCOURT |",
COLUMN 80, "| SANTO DOMINGO |",
COLUMN 138, "|",
COLUMN 151, "____________________________________________________",
COLUMN 219, "|"
PRINT COLUMN 5, "---------------------------",
COLUMN 47, "-----------------------------",
COLUMN 80, "------------------------------------------",
COLUMN 138, "|",
COLUMN 155, "Firma Responsable y Sello de la Empresa",
COLUMN 219, "|"
PRINT COLUMN 138, "|",
COLUMN 219, "|"
PRINT COLUMN 65, "RELACION DE NOVEDAD DEL MES",
COLUMN 138, "|",
COLUMN 219, "|"
PRINT COLUMN 53, "____________________________________________________",
"_________",
COLUMN 138, "|",
COLUMN 151, "____________________________________________________",
COLUMN 219, "|"
PRINT COLUMN 1, "ESTE FORMULARIO DEBE LLENARSE",
COLUMN 53, "|",
COLUMN 75, descrip CLIPPED," ",ano1 USING "####",
COLUMN 113, "|",
COLUMN 138, "|",
COLUMN 155, "Fecha de Elaboracion de estas informaciones",
COLUMN 219, "|"
PRINT COLUMN 1, "EN ORIGINAL Y COPIA",
COLUMN 53, "|___________________________________________________",
"________|",
COLUMN 138, "|__________________________________________",
"______________________________________|"
SKIP 4 LINE
PRINT COLUMN 1, " 1 2",
" 3 5",
" 6 7 8 9",
" 10 11 12 13 14",
" 15"
PRINT COLUMN 1, "__________________________________________________",
"__________________________________________________",
"__________________________________________________",
"__________________________________________________",
"____________________"
PRINT COLUMN 1, "| | |",
COLUMN 59, "| | | | | | ",
COLUMN 111, "| | |",
COLUMN 167, " | | |"
PRINT COLUMN 1, "| | |",
COLUMN 59, "| | | | | | ",
COLUMN 111, "| | |",
COLUMN 137, "CLASE DE NOVEDAD",
COLUMN 167, " | PERIODO NO TRABAJADO | Codificacion IDSS |"
PRINT COLUMN 1, "| | |",
COLUMN 59, "| | | | | | ",
COLUMN 111, "| | |",
COLUMN 126, "-------------------------------------------",
COLUMN 167, "|-----------------------|--------------------------|"
PRINT COLUMN 1, "| | |",
COLUMN 59, "| CEDULA | | Salario |Num. |Promedio |Ali-",
COLUMN 111, "|Alo- |Ocu-|",
COLUMN 133, " | |Cam- | |Ausen- | |",
COLUMN 177, " | | | | |"
PRINT COLUMN 1, "| |NO DE INSCRIPCION O|",
COLUMN 59, "|--------------|SEXO| Percibido |Sema- |Por Sema-|men-",
COLUMN 111, "|ja- |pa- |",
COLUMN 133, " | |bio |Enfer- |cias | DEL |",
COLUMN 177, " AL | | | | |"
PRINT COLUMN 1, "| | AFILIACION DEL ",
COLUMN 25, "| APELLIDOS Y NOMBRE",
COLUMN 59, "| | | | en el mes |nas |nas RD$ |ta- ",
COLUMN 111, "|mien- |cion|",
COLUMN 133, " | |de |me |no |-----------",
COLUMN 177, "|-----------|Clase| | | |"
PRINT COLUMN 1, "| | ASEGURADO ",
COLUMN 25, "|",
COLUMN 59, "| NUMERO |SERIE| | RD$ |Traba-| |",
COLUMN 106, "cion|to | | ENTRADA | SALIDA |Sa- |dad",
COLUMN 157, " |Remu- | | | | | | |nove-|SEXO|catego-",
COLUMN 208, "|de se- |"
PRINT COLUMN 1, "| |",
COLUMN 25, "|",
COLUMN 59, "| | | | |jadas | |",
COLUMN 106, " | | | | |lario| ",
COLUMN 157, " |neradas|dia|mes|ano|dia|mes|ano|dad | |ria |",
"manas |"
PRINT COLUMN 1, "|=================================================",
"==================================================",
"==================================================",
"==================================================",
"===================|"
ELSE
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
PRINT COLUMN 1, " "
END IF
ON EVERY ROW
IF idx IS NULL THEN
LET idx = 0
END IF
LET idx = idx + 1
PRINT COLUMN 1,"|",idx USING "&&"," |",x.cod_seg1 USING "&&"," |",
x.cod_seg2 USING "&&"," |",x.cod_seg3 USING "&&&&&",
" |",x.apell1_emp CLIPPED,
COLUMN 43,x.nom1_emp CLIPPED,
COLUMN 59,"|",x.cedula USING "&&&&&&&"," |",x.serie USING "&&&",
COLUMN 73," |",x.sexo," | ",x.sueldo_ac USING "###,###.##",
"| ",semana USING "&","|",x.sueldo_ac/semana
USING "##,###.##","| NO | NO | O |",
x.fecha1," |",
x.fecha2," | | | | | | |",
" | | | | | | |"
PRINT COLUMN 1, "|---|------------------|--------------------------",
"--------|--------|-----|----|-----------|------|",
"---------|----|------|----|---------|---------|-----|",
"---------|-------|---|---|---|---|---|---|-----|----|",
"-------|-------|"
ON LAST ROW
LET existe = "N"
SKIP TO TOP OF PAGE
PRINT COLUMN 126,"_____________________________________________________"
PRINT COLUMN 126,"| RESERVADO PARA CONTROL I.D.S.S. |"
PRINT COLUMN 1,"_____________________________________________________",
"_______________________________________________",
COLUMN 109,"_________________|___________________________________",
"________________|____________________________________",
"________"
PRINT COLUMN 1,"| ",
" |",
COLUMN 109,"|Clase de Trabajo| Responsable | | ",
" | Responsable ",
" |"
PRINT COLUMN 1,"| NOTA: 1.- Ver instrucciones al respaldo. ",
" |",
COLUMN 109,"|----------------|-------------------------| |-------",
"----------------|------------------------------------",
"--------|"
PRINT COLUMN 1,"| ",
" |",
COLUMN 109,"|Cod. Datos | | | Rev.",
" Datos. | ",
" |"
PRINT COLUMN 1,"| 2.- Si este formulario resulta insuficien",
"te, utilice como continuacion otro T-60 MOD.8|",
COLUMN 109,"|----------------|-------------------------| |-------",
"----------------|------------------------------------",
"--------|"
PRINT COLUMN 1,"| Este formulario debe ser presentado e",
"n el IDSS o sus Dependencias dentro de los |",
COLUMN 109,"|Cod. Afil. | | | Rev.",
" Gral. | ",
" |"
PRINT COLUMN 1,"| tres dias habiles despues de vencido ",
"el mes al cual se refieren las informaciones.|",
COLUMN 109,"|----------------|-------------------------| |-------",
"----------------|------------------------------------",
"--------|"
PRINT COLUMN 1,"| ",
" |",
COLUMN 109,"| | | | ",
" | ",
" |"
PRINT COLUMN 1,"|____________________________________________________",
"_____________________________________________|",
COLUMN 109,"|________________|_________________________| |_______",
"________________|____________________________________",
"________|"
PRINT COLUMN 1,comp_off
LET existe = NULL
END REPORT