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

601 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
OPEN FORM nofmrp012 FROM "nofmrp012"
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 "C:\\archivo"
# START REPORT seg_soc TO "salida"
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
RUN "type C:\\archivo > %USPRINT%" 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-O-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 54, "| | | | | | ",
COLUMN 111, "| | |",
COLUMN 167, " | | |"
PRINT COLUMN 1, "| | |",
COLUMN 54, "| | | | | | ",
COLUMN 111, "| | |",
COLUMN 137, "CLASE DE NOVEDAD",
COLUMN 167, " | PERIODO NO TRABAJADO | Codificacion IDSS |"
PRINT COLUMN 1, "| | |",
COLUMN 54, "| | | | | | ",
COLUMN 111, "| | |",
COLUMN 126, "-------------------------------------------",
COLUMN 167, "|-----------------------|--------------------------|"
PRINT COLUMN 1, "| | |",
COLUMN 54, "| CEDULA | | Salario |Num. |Promedio |Ali-",
COLUMN 111, "|Alo- |Ocu-|",
COLUMN 133, " | |Cam- | |Ausen- | |",
COLUMN 177, " | | | | |"
PRINT COLUMN 1, "| |NO DE INSCRIPCION O|",
COLUMN 54, "|-------------------|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 54, "| | | | 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 54, "| 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 54, "| | | | |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,
" ", x.nom1_emp CLIPPED,
# COLUMN 43,x.nom1_emp CLIPPED,
COLUMN 54,"|",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