{ _______________________________________________________________________________ PROGRAMA : NOPRRP014 OBJETIVO : Listar las informaciones generales del IR-13 a un ano especifico. PROGRAMADOR : Tadeo A. Ferreras FECHA REALIZACION : Agosto 25, 1993 MODIFICADO POR : Abner Montalvo. Diciembre 18, 1997. OBJETIVO : Ajustar la salida al nuevo formato suministrado por la Direccion General de Impuestos Internos. _______________________________________________________________________________ } 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 CHAR(25), apell1_emp CHAR(24), 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 OPEN FORM nofmrp014 FROM "nofmrp014" DISPLAY FORM nofmrp014 CALL pantalla() DISPLAY "noprrp014" AT 4,3 ATTRIBUTE(RED) DISPLAY "Impuesto Sobre la Renta IR-13" AT 6,24 ATTRIBUTE(BLACK) ## 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 SELECT MAX(a.fecha_al) INTO fecha2 FROM notb00010 a WHERE a.ano = ano INSERT INTO otros_ing SELECT a.num_emp,sum(a.valor) FROM notb00008 a WHERE (a.num_nomi =a.num_nomi AND a.cod_mov NOT IN (1,32,31) AND a.num_emp = a.num_emp AND #a.num_emp = 8 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 notb00008 a WHERE a.cod_mov = 31 AND a.fecha >= (fecha2 - 30) SELECT MIN(a.num_nomi) INTO p_nomina1 FROM notb00008 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 notb00008 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.num_emp = 8 AND a.fecha BETWEEN fecha1 AND fecha2) GROUP BY 1,2,3,4,5,7 ORDER BY 7,1 START REPORT reporte_14 TO "C:\\IR13" 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 RUN "TYPE c:\\ir13 > %USPRINT%" 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 CHAR(25), apell1_emp CHAR(24), cedula LIKE adtb00003.cedula, serie LIKE adtb00003.serie, valor DECIMAL(12,2), tipo_emp CHAR(1) END RECORD, pagi,l,id1 SMALLINT, comp_on CHAR(2) ## DEFINICION DE LAS VARIABLES DE IMPRESION 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,tot_pag11,regalia, tot_gen,tot_gen1,tot_gen2,tot_gen3,tot_gen4,regal,tot_gen5,tot_gen6, tot_gen7,tot_gen8,tot_gen11,regal_ingre,valor_r,afp 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 ## 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"," ", "DECLARACION JURADA ANUAL DEL AGENTE DE RETENCION ", "DE ASALARIADOS" PRINT PRINT COLUMN 1, "DATOS GENERALES DEL AGENTE DE RETENCION", COLUMN 97, "ANO FISCAL"," ",ano USING "&&&&" PRINT COLUMN 1, "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "==" PRINT COLUMN 1, "RAZON SOCIAL"," ", "MARMOTECH, S .A", # COLUMN 145, "RNC"," ", COLUMN 86, "RNC"," ", "101-52126-2" PRINT PRINT COLUMN 1, "DIRECCION"," ", "C/CENTRAL, MADRE VIEJA NORTE, S. C.", # COLUMN 145, "MUNICIPIO"," ", COLUMN 63, "MUNICIPIO"," ", " " PRINT PRINT COLUMN 1, "PROVINCIA"," ", "CIUDAD", COLUMN 100, "TELEFONO No."," ", "(809) 528-0650", COLUMN 145, "FAX No."," ", "(809) 528-0640" PRINT COLUMN 1, "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "==" PRINT PRINT COLUMN 1, "DATOS DE LOS ASALARIADOS" PRINT COLUMN 1, "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "--" PRINT COLUMN 10, " "," ", COLUMN 46, " "," ", COLUMN 55, " TOTAL DE "," ", " "," ", " TOTAL "," ", " SUELDOS Y "," ", " IMPUESTO "," ", " IMPUESTO "," ", " SALDO A "," ", " DIFERENCIA " PRINT COLUMN 10, " APELLIDOS "," ", COLUMN 46, " CEDULA O "," ", COLUMN 55, " SALARIOS "," ", " OTRAS "," ", " PAGADO "," ", " OTROS PAGOS "," ", " LIQUIDADO "," ", " RETENIDO Y "," ", " FAVOR DEL "," ", " A " PRINT COLUMN 10, " Y NOMBRES "," ", COLUMN 46, " PASAPORTE "," ", COLUMN 55, " PAGADOS "," ", "REMUNERACIONES"," ", " EN EL ANO "," ", " SUJETOS A "," ", " "," ", " PAGADO "," ", " EMPLEADO "," ", " PAGAR " PRINT COLUMN 10, " "," ", COLUMN 46, " "," ", COLUMN 55, " EN EL ANO "," ", " "," ", " "," ", " RETENCION "," ", " "," ", " "," ", " "," ", " " PRINT COLUMN 1, "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "--" PRINT COLUMN 10, " A "," ", COLUMN 46, " B "," ", COLUMN 55, " C "," ", " D "," ", " E "," ", " F "," ", " G "," ", " H "," ", " I "," ", " J " PRINT COLUMN 1, "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "--" BEFORE GROUP OF pagi LET tot_pag = 0 LET tot_pag1 = 0 LET tot_pag11 = 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 LET afp = 0 SELECT SUM(a.valor* -1) INTO afp FROM notb00008 a WHERE a.num_emp = x.num_emp AND a.cod_mov = 49 AND a.fecha between fecha1 AND fecha2 IF afp IS NULL THEN LET afp = 0 END IF SELECT sum(a.valor) INTO regalia FROM notb00008 a WHERE a.num_nomi = a.num_nomi AND a.tipo_emp = a.tipo_emp AND a.cod_mov IN(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 DISPLAY " " AT 22,14 SELECT SUM(a.valor) INTO isr FROM notb00008 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 # LET regal = regalia # IF regalia > 10050 THEN # LET regal = regalia - 10050 # ELSE # LET regal = 0 # END IF LET total1 = x.valor + regal + ingreso LET total1 = total1 IF total1 <= 0000 THEN LET total1 = 0 LET isr2 = 0 END IF # Calculo del impuesto anual LET isr1 = 0 LET isr2 = 0 LET isr3 = 0 LET renta_15 = 0 LET renta_20 = 0 LET renta_27 = 0 LET regal_ingre = 0 LET valor_renta = total1 - afp IF valor_renta > 240000 THEN IF valor_renta > 240000 and valor_renta <=360000 THEN LET valor_renta = valor_renta - 240000 LET isr2 = valor_renta * .15 LET renta_15 = isr2 ELSE LET renta = ((360000-240000) * .15) LET renta_15 = renta END IF IF valor_renta > 360000 AND valor_renta <= 500000 THEN LET valor_renta = valor_renta - 360000 LET isr2 = valor_renta * .20 LET renta_20 = isr2 ELSE IF valor_renta > 360000 THEN LET isr2 = ((500000-360000) * .20) LET renta_20 = isr2 END IF END IF IF valor_renta > 500000 THEN LET valor_renta = valor_renta - 500000 LET isr2 = valor_renta * .25 LET renta_27 = isr2 END IF LET isr2 = renta_15 + renta_20 + renta_27 END IF 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 isr > 0 THEN LET id1 = id1 + 1 END IF LET regal_ingre = regalia + ingreso PRINT COLUMN 1, x.nom1_emp ," ", x.apell1_emp, COLUMN 38, x.cedula USING "###########","-",x.serie USING "####", { COLUMN 55, x.valor USING "&&&&&&&&&&&&"," ", # regalia USING "&&&&&&&&&&&&"," ", # ingreso USING "&&&&&&&&&&&&"," ", regal_ingre USING "&&&&&&&&&&&&"," ", total2 USING "&&&&&&&&&&&&"," ", total1 USING "&&&&&&&&&&&&"," ", isr2 USING "&&&&&&&&&&&&"," ", isr USING "&&&&&&&&&&&&"," ", isr1 USING "&&&&&&&&&&&&"," ", isr3 USING "&&&&&&&&&&&&" } COLUMN 55, x.valor USING "###,###,##&.&&"," ", # regalia USING "###,###,##&.&&"," ", # ingreso USING "###,###,##&.&&"," ", regal_ingre USING "###,###,##&.&&"," ", total2 USING "###,###,##&.&&"," ", total1-AFP USING "###,###,##&.&&"," ", afp USING "###,###,##&.&&"," ", isr2 USING "###,###,##&.&&"," ", isr USING "###,###,##&.&&"," ", isr1 USING "###,###,##&.&&"," ", isr3 USING "###,###,##&.&&" LET tot_pag = tot_pag + x.valor LET tot_pag1 = tot_pag1 + regalia LET tot_pag2 = tot_pag2 + ingreso LET tot_pag11 = tot_pag11 + regal_ingre 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 62, tot_pag USING "###,###,##&.&&"," ", tot_pag11 USING "###,###,##&.&&"," ", # tot_pag1 USING "###,###,##&.&&"," ", # tot_pag2 USING "###,###,##&.&&"," ", tot_pag3 USING "###,###,##&.&&"," ", tot_pag4 USING "###,###,##&.&&"," ", tot_pag5 USING "###,###,##&.&&"," ", tot_pag6 USING "###,###,##&.&&"," ", tot_pag7 USING "###,###,##&.&&"," ", 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 IF tot_gen11 IS NULL THEN LET tot_gen11 = 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_gen11 = tot_gen11 + tot_pag11 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, "TOTALES RD$ ==>", COLUMN 60, tot_gen USING "###,###,##&.&&"," ", # tot_gen1 USING "###,###,##&.&&"," ", # tot_gen2 USING "###,###,##&.&&"," ", tot_gen11 USING "###,###,##&.&&"," ", tot_gen3 USING "###,###,##&.&&"," ", tot_gen4 USING "###,###,##&.&&"," ", tot_gen5 USING "###,###,##&.&&"," ", tot_gen6 USING "###,###,##&.&&"," ", tot_gen7 USING "###,###,##&.&&"," ", tot_gen8 USING "###,###,##&.&&" PRINT COLUMN 1, "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "==" PRINT PRINT COLUMN 1, " ", " "," ", " ", " ", " ", " ", " ", " ", " "," ", " ", "RESUMEN PARA EL", " PAGO" PRINT COLUMN 1, "----------------------", "---------------"," ", "Yo_____________", "_______________", "_______________", "_______________", "_______________", "_______________", "_______________"," ", "_______________", "_______________", "_______________", "_______________", "___________" PRINT COLUMN 1, "| NUMERO DE ", "| ", idx USING "###"," |"," ", "en calidad de A", "gente de Retenc", "ion, por la pre", "sente declaro b", "ajo juramento q", "ue los datos co", "nsignados en la"," ", "| IMPUESTO A PA", "GAR |", " ", " |" PRINT COLUMN 1, "| ASALARIADOS ", "| |"," ", "presente declar", "acion son corre", "ctos y completo", "s y que no he o", "mitido dato alg", "uno que la mism", "a deba contener"," ", "|--------------", "-------------------------|", "---------------", "--------------|" PRINT COLUMN 1, "|---------------------", "|-------------|"," ", "siendo en conse", "cuencia todo su", " contenido la f", "iel expresion d", "e la verdad. ", " ", " "," ", "| RECARGOS ART.", "252 ( )% |", " ", " |" PRINT COLUMN 1, "| NUMERO DE ", "| |"," ", " ", " ", " ", " ", " ", " ", " "," ", "|--------------", "-------------------------|", "---------------", "--------------|" PRINT COLUMN 1, "| ASALARIADOS ", "| ",id1 USING "###"," |"," ", " ", " ", " ", " ", " ", " ", " "," ", "| INTERES INDEN", "NIZATORIO ART.27 ( )% |", " ", " |" PRINT COLUMN 1, "| SUJETOS A RETENCION ", "| |"," ", "_______________", "_______________", "_______________", " ", "_______________", "_______________", "_______________"," ", "|--------------", "-------------------------|", "---------------", "--------------|" PRINT COLUMN 1, "----------------------", "---------------"," ", " Nombres y A", "pellidos del Re", "presentante ", " ", " ", " Firma ", " "," ", "| TOTAL A PAGAR", " RD$ |", " ", " |" PRINT COLUMN 1, " ", " "," ", " ", " ", " ", " ", " ", " ", " "," ", "---------------", "--------------------------", "---------------", "---------------" PRINT COLUMN 1, " ", " "," ", " ", " ", " (COLOQUE ", "EL SELLO DE LA ", "EMPRESA) ", " ", " "," ", " ", " ", " ", " " END REPORT