{ _______________________________________________________________________________ PROGRAMA : NOPRRP014 OBJETIVO : Listar las informaciones generales del IR-13 a un ano especifico. PROGRAMADOR : Tadeo A. Ferreras FECHA REALIZACION : Agosto 25, 1993 _______________________________________________________________________________ } GLOBALS "noprgb000.4gl" DEFINE fecha1,fecha2 DATE, ano,p_nomina,p_nomina1 SMALLINT, hora1 CHAR(5) FUNCTION noprrp014() ## SE DEFINE EL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA EL REPORTE DEFINE datos_14 RECORD num_emp LIKE adtb00003.num_emp, nom1_emp LIKE adtb00003.nom1_emp, apell1_emp LIKE adtb00003.apell1_emp, cedula LIKE adtb00003.cedula, serie LIKE adtb00003.serie, valor DECIMAL(12,2), tipo_emp CHAR(1) END RECORD, valor_r DECIMAL(12,2), pagina,no_emp SMALLINT OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 CLEAR SCREEN LET formulario = formulario CLIPPED,"nofmrp014" OPEN FORM nofmrp014 FROM formulario DISPLAY FORM nofmrp014 CALL pantalla() DISPLAY "noprrp014" AT 4,3 DISPLAY "Impuesto Sobre la Renta IR-13" AT 6,24 ## 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 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 END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF # CREACION TABLA TEMPORAL PARA EL REPORTE IR13 CREATE TEMP TABLE otros_ing (num_emp SMALLINT, otros DECIMAL(12,2) ) DISPLAY "Creando Tabla Temporal...Espere Por Favor" AT 19,14 SELECT MIN(a.fecha_del) INTO fecha1 FROM notb00010 a WHERE a.ano = ano AND a.mes = 1 SELECT MAX(a.fecha_al) INTO fecha2 FROM notb00010 a WHERE a.ano = ano AND a.mes = 12 INSERT INTO otros_ing SELECT a.num_emp,sum(a.valor) FROM notb00016 a WHERE (a.num_nomi =a.num_nomi AND a.cod_mov NOT IN (1,9,32,31) AND a.num_emp = a.num_emp AND a.fecha BETWEEN fecha1 AND fecha2 AND a.clase_mov IN ("I","E")) GROUP BY 1 DISPLAY "Buscando Informacion ... Espere Por Favor" AT 19,14 ATTRIBUTE (REVERSE,BOLD) SELECT MIN(a.num_nomi) INTO p_nomina FROM notb00016 a WHERE a.cod_mov = 31 AND a.fecha >= (fecha2 - 30) SELECT MIN(a.num_nomi) INTO p_nomina1 FROM notb00016 a WHERE a.cod_mov = 31 AND a.fecha < (fecha2 + 30) IF p_nomina1 IS NULL THEN LET p_nomina = 0 END IF ## SE SELECCIONAN LOS CAMPOS NECESARIOS PARA EL REPORTE DECLARE accion CURSOR FOR SELECT a.num_emp,b.apell1_emp,b.nom1_emp,b.cedula,b.serie,SUM(a.valor),b.nomina FROM notb00016 a, adtb00003 b WHERE (a.num_nomi=a.num_nomi AND a.tipo_emp = a.tipo_Emp AND a.cod_mov IN(1,31) AND a.departamento=a.departamento AND a.num_emp = b.num_emp AND a.fecha BETWEEN fecha1 AND fecha2) GROUP BY 1,2,3,4,5,7 ORDER BY 7,1 START REPORT reporte_14 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 pagina = 1 LET no_emp = 0 FOREACH accion INTO datos_14.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF IF valor_r is null THEN LET valor_r = 0 END IF DISPLAY "ESTOY PROCESANDO EL EMPLEADO: ",datos_14.num_emp USING "&&&&"," ", datos_14.nom1_emp CLIPPED," ",datos_14.apell1_emp," ", datos_14.valor using "###,###.##" AT 21,01 OUTPUT TO REPORT reporte_14(datos_14.*,pagina) LET hora1 = time DISPLAY hora1 AT 6,73 ATTRIBUTE (BOLD) IF no_emp >= 27 THEN LET pagina = pagina + 1 LET no_emp = 0 END IF LET no_emp = no_emp + 1 END FOREACH FINISH REPORT reporte_14 CLEAR SCREEN END FUNCTION ## AQUI SE DEFINE EL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE REPORT reporte_14(x,pagi) DEFINE x RECORD num_emp LIKE adtb00003.num_emp, nom1_emp LIKE adtb00003.nom1_emp, apell1_emp LIKE adtb00003.apell1_emp, cedula LIKE adtb00003.cedula, serie LIKE adtb00003.serie, valor DECIMAL(12,2), tipo_emp CHAR(1) END RECORD, pagi,l,id1 SMALLINT ## DEFINICION DE LAS VARIABLES DE IMPRESION DEFINE comp_on,comp_off CHAR(2) DEFINE isr,isr1,isr2,isr3,total1,total2,sueldo,ingreso,valor_renta, renta,renta_15,renta_20,renta_27,tot_pag,tot_pag1,tot_pag2,tot_pag3, tot_pag4,tot_pag5,tot_pag6,tot_pag7,tot_pag8,regalia,tot_gen, tot_gen1,tot_gen2,tot_gen3,tot_gen4,regal,tot_gen5,tot_gen6,tot_gen7, tot_gen8 DECIMAL(12,2) ## DEFINICION DE LOS MARGENES DE IMPRESION OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 4 FORMAT PAGE HEADER LET comp_on = ASCII 15 LET comp_off = ASCII 18 ## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS PRINT COLUMN 1,comp_on PRINT COLUMN 1, TODAY USING "dd-mm-yy", COLUMN 217, "noprrp014" PRINT COLUMN 1, "IR-13", COLUMN 145, "-----------------------------------------------------", "---------------------------" PRINT COLUMN 145, "| NO. DE R.N.C. 101009527 | AGENCIA LOCAL ", " | CODIGO | HOJA # |" PRINT COLUMN 1, "DECLARACION JURADA ANUAL DEL AGENTE DE RETENCION", COLUMN 83, "-----------------------------------------------------", "-----", COLUMN 145, "|-------------------------| ", " | | ",pageno USING "###"," |" PRINT COLUMN 1, "DE ASALARIADOS", COLUMN 83, "| NOTA: TODAS LAS REMUNERACIONES PAGADAS EN EL A", "NO, |", COLUMN 145, "| AGENTE DE RETENCION: RAY.O.VAC DOMINICANA, S.A. ", " | PERIODO |--------|" PRINT COLUMN 83, "| POR SERVICIOS PRESTADOS BAJO RELACION DE DEPENDENC", "IA, |", COLUMN 145, "|----------------------------------------------------", "------| | |" PRINT COLUMN 83, "| SE DEBEN CONSIGNAR EN LA COLUMNA ''F'', AUN NO EST", "EN |", COLUMN 145, "| DIRECCION: AV. ROMULO BETANCOURT ", " | NUMERO | APTO. |" PRINT COLUMN 83, "| SUJETAS A RETENCION. ", " |", COLUMN 145, "|----------------------------------------------------", "------| | |" PRINT COLUMN 83, "-----------------------------------------------------", "-----", COLUMN 145, "| APDO. POSTAL | TELEFONO | PROVINCIA |CIUDAD,SECCION", ",PARAJE | CODIGO |" PRINT COLUMN 145, "| 145-2 | 530-5409 | CIUDAD | ", " | |" PRINT COLUMN 1, "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "------------" PRINT COLUMN 1, "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "------------" PRINT COLUMN 167, " SALDO A SALDO A FAVOR" PRINT COLUMN 167, " IMPUESTO FAVOR DEL DE LA DIRECCION" PRINT COLUMN 10, "APELLIDOS Y NOMBRES", COLUMN 42, "NO. RNC", COLUMN 57, "SALARIOS", COLUMN 72, "SALARIOS", COLUMN 89, "REGALIA", COLUMN 102, "OTROS PAGOS", COLUMN 118, "TOTAL PAGADO", COLUMN 134, " SUELDOS Y", COLUMN 150, "LIQUIDACION", COLUMN 166, "RETENIDO Y ASALARIADO GENERAL" PRINT COLUMN 10, " DE LOS", COLUMN 41, "CEDULA / S", COLUMN 57, "PAGADOS", COLUMN 72, "PAGADOS", COLUMN 89, "PASCUAL", COLUMN 102, "EFECTUADOS", COLUMN 118, "EN EL ANO", COLUMN 134, "OTROS PAGOS", COLUMN 150, "ANUAL / LEY", COLUMN 166, " PAGADO DIFERENCIA DIFERENCIA" PRINT COLUMN 10, " ASALARIADOS", COLUMN 41, "PASAPORTE", COLUMN 54, "POR EL AGENTE", COLUMN 71, "POR OTROS", COLUMN 87, "(GRAVADA Y", COLUMN 101, "POR EL AGENTE", COLUMN 118, "(C+D+E+F)", COLUMN 134, " SUJETOS A ", COLUMN 150, " NO 11-92", COLUMN 166, "EN EL ANO ENTRE ENTRE" PRINT COLUMN 54, "DE RETENCION ", COLUMN 70, "EMPLEADORES", COLUMN 87, " EXENTA)", COLUMN 101, " DE RETENCION", COLUMN 134, " RETENCION ", COLUMN 165, "(FORM.IR-3) I-J (-) I-J (+)" PRINT COLUMN 1, "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "------------" PRINT COLUMN 10, " A", COLUMN 41, " B", COLUMN 54, " C", COLUMN 71, " D", COLUMN 87, " E", COLUMN 101, " F", COLUMN 118, " G", COLUMN 134, " H", COLUMN 150, " I", COLUMN 166, " J K L" PRINT COLUMN 1, "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "------------" BEFORE GROUP OF pagi LET tot_pag = 0 LET tot_pag1 = 0 LET tot_pag2 = 0 LET tot_pag3 = 0 LET tot_pag4 = 0 LET tot_pag5 = 0 LET tot_pag6 = 0 LET tot_pag7 = 0 LET tot_pag8 = 0 LET l = 36 ON EVERY ROW LET sueldo = 0 LET ingreso = 0 LET regalia = 0 SELECT sum(a.valor) INTO regalia FROM notb00016 a WHERE (a.num_nomi=a.num_nomi AND a.tipo_emp = a.tipo_Emp AND a.cod_mov IN(9,32) AND a.departamento=a.departamento AND a.num_emp = x.num_emp AND a.fecha BETWEEN fecha1 AND fecha2) IF regalia IS NULL THEN LET regalia = 0 END IF DISPLAY "Buscando Otros Ingresos... " AT 22,14 LET ingreso = 0 SELECT a.otros INTO ingreso FROM otros_ing a WHERE a.num_emp = x.num_emp IF ingreso IS NULL THEN LET ingreso = 0 END IF { SELECT sum(a.valor) INTO ingreso FROM ir13 a WHERE (a.num_nomi =a.num_nomi AND a.cod_mov NOT IN (1,9,32,31) AND a.num_emp = x.num_emp AND a.fecha BETWEEN fecha1 AND fecha2 AND a.clase_mov IN ("I","E")) } DISPLAY " " AT 22,14 IF ingreso IS NULL THEN LET ingreso = 0 END IF SELECT SUM(a.valor) INTO isr FROM notb00016 a WHERE (a.num_nomi=a.num_nomi AND a.tipo_emp = a.tipo_Emp AND a.cod_mov = 23 AND a.departamento=a.departamento AND a.num_emp = x.num_emp AND a.fecha BETWEEN fecha1 AND fecha2) LET total2 = x.valor + regalia + ingreso LET regal = 0 IF regalia > 10050 THEN LET regal = regalia - 10050 ELSE LET regal = 0 END IF LET total1 = x.valor + regal + ingreso LET total1 = total1 - 80980 IF total1 <= 0000 THEN LET total1 = 0 LET isr2 = 0 END IF # Calculo del impuesto anual LET isr1 = 0 LET isr2 = 0 LET renta_15 = 0 LET renta_20 = 0 LET renta_27 = 0 LET valor_renta = total1 # Renta al 25 % IF valor_renta >= 121471 THEN LET renta_27 = (valor_renta - 121471) * 0.25 LET valor_renta = 121471 END IF # Renta al 20 % IF valor_renta >= 53987 THEN LET renta_20 = (valor_renta - 53987) * 0.20 LET valor_renta = 53987 END IF # Renta al 15 % IF valor_renta > 0000 THEN LET renta_15 = (valor_renta - 00000) * 0.15 END IF LET isr2 = renta_15 + renta_20 + renta_27 IF isr2 IS NULL THEN LET isr2 = 0 END IF IF isr IS NULL THEN LET isr = 0 END IF LET isr = isr * -1 LET isr1 = isr - isr2 IF isr1 > 0 THEN LET isr1 = isr1 LET isr3 = 0 ELSE LET isr3 = isr1 * -1 LET isr1 = 0 END IF IF id1 is null THEN LET id1 = 0 END IF IF idx IS NULL THEN LET idx = 0 END IF LET idx = idx + 1 IF total1 > 0 THEN LET id1 = id1 + 1 END IF PRINT COLUMN 1, x.nom1_emp CLIPPED," ", x.apell1_emp CLIPPED, COLUMN 38, x.cedula USING "############","-",x.serie USING "&&&", COLUMN 55, x.valor USING "####,##&.&&", COLUMN 75, 0.00, COLUMN 87, regalia USING "###,##&.&&", COLUMN 102, ingreso USING "###,##&.&&", COLUMN 119, total2 USING "####,##&.&&", COLUMN 134, total1 USING "####,##&.&&", COLUMN 150, isr2 USING "###,##&.&&", COLUMN 167, isr USING "###,##&.&&", COLUMN 183, isr1 USING "###,##&.&&", COLUMN 205, isr3 USING "###,##&.&&" LET tot_pag = tot_pag + x.valor LET tot_pag1 = tot_pag1 + regalia LET tot_pag2 = tot_pag2 + ingreso LET tot_pag3 = tot_pag3 + total2 LET tot_pag4 = tot_pag4 + total1 LET tot_pag5 = tot_pag5 + isr2 LET tot_pag6 = tot_pag6 + isr LET tot_pag7 = tot_pag7 + isr1 LET tot_pag8 = tot_pag8 + isr3 LET l = l - 1 AFTER GROUP OF PAGI PRINT COLUMN 1, "=====================================================", "=====================================================", "=====================================================", "=====================================================", "===============" PRINT COLUMN 21, "TOTAL PAGINA -->", COLUMN 48, tot_pag USING "##,###,###,##&.&&", COLUMN 75, 0.00, COLUMN 85, tot_pag1 USING "##,###,##&.&&", COLUMN 99, tot_pag2 USING "##,###,##&.&&", COLUMN 116, tot_pag3 USING "##,###,##&.&&", COLUMN 131, tot_pag4 USING "##,###,##&.&&", COLUMN 147, tot_pag5 USING "##,###,##&.&&", COLUMN 164, tot_pag6 USING "##,###,##&.&&", COLUMN 183, tot_pag7 USING "###,##&.&&", COLUMN 205, tot_pag8 USING "#,###,##&.&&" PRINT COLUMN 1, "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "---------------" IF tot_gen IS NULL THEN LET tot_gen = 0 END IF IF tot_gen1 IS NULL THEN LET tot_gen1 = 0 END IF IF tot_gen2 IS NULL THEN LET tot_gen2 = 0 END IF IF tot_gen3 IS NULL THEN LET tot_gen3 = 0 END IF IF tot_gen4 IS NULL THEN LET tot_gen4 = 0 END IF IF tot_gen5 IS NULL THEN LET tot_gen5 = 0 END IF IF tot_gen6 IS NULL THEN LET tot_gen6 = 0 END IF IF tot_gen7 IS NULL THEN LET tot_gen7 = 0 END IF IF tot_gen8 IS NULL THEN LET tot_gen8 = 0 END IF LET tot_gen = tot_gen + tot_pag LET tot_gen1 = tot_gen1 + tot_pag1 LET tot_gen2 = tot_gen2 + tot_pag2 LET tot_gen3 = tot_gen3 + tot_pag3 LET tot_gen4 = tot_gen4 + tot_pag4 LET tot_gen5 = tot_gen5 + tot_pag5 LET tot_gen6 = tot_gen6 + tot_pag6 LET tot_gen7 = tot_gen7 + tot_pag7 LET tot_gen8 = tot_gen8 + tot_pag8 SKIP TO TOP OF PAGE ON LAST ROW PRINT COLUMN 21, "TOTAL ACUMULADO -->", COLUMN 48, tot_gen USING "##,###,###,##&.&&", COLUMN 75, 0.00, COLUMN 85, tot_gen1 USING "##,###,##&.&&", COLUMN 99, tot_gen2 USING "##,###,##&.&&", COLUMN 116, tot_gen3 USING "##,###,##&.&&", COLUMN 131, tot_gen4 USING "##,###,##&.&&", COLUMN 147, tot_gen5 USING "##,###,##&.&&", COLUMN 164, tot_gen6 USING "##,###,##&.&&", COLUMN 183, tot_gen7 USING "###,##&.&&", COLUMN 205, tot_gen8 USING "#,###,##&.&&" PRINT COLUMN 1, "=====================================================", "=====================================================", "=====================================================", "=====================================================", "===============" PRINT COLUMN 1, "(L) NUMEERO DE ---------- Llevar a la letra (A)" PRINT COLUMN 5, "ASALARIADOS | ",idx USING "###"," | Del IR-3" PRINT COLUMN 1, " ---------- " SKIP 1 LINE PRINT COLUMN 1, "(M) ASALARIADOS ---------- Llevar a la letra (B)" PRINT COLUMN 5, "SUJETOS A | ",id1 USING "###"," | Del IR-3" PRINT COLUMN 1, " RETENCION ---------- " PRINT comp_off END REPORT