{ _______________________________________________________________________________ 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