{ _______________________________________________________________________________ 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 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 OPEN FORM nofmrp014 FROM "nofmrp014" 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 display fecha1," ",fecha2 at 12,2 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,9,32,31) AND a.num_emp = a.num_emp AND # a.num_emp = 370 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 = 330 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:\\archivo" 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 RUN "type C:\\archivo > %USPRINT%" 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 doble_on,doble_off,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,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 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 LET doble_on = ASCII 14 LET doble_off = ASCII 20 ## 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, doble_on, "IR-13"," ", "DECLARACION JURADA ANUAL DEL AGENTE DE RETENCION ", "DE ASALARIADOS", doble_off PRINT PRINT COLUMN 1, doble_on,"DATOS GENERALES DEL AGENTE DE RETENCION", COLUMN 97, "ANO FISCAL"," ",ano USING "&&&&", doble_off PRINT COLUMN 1, "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "==" PRINT COLUMN 1, "RAZON SOCIAL"," ", doble_on,p_companias.nombre CLIPPED,doble_off, # COLUMN 145, "RNC"," ", COLUMN 86, "RNC"," ", doble_on,p_companias.rnc CLIPPED, doble_off PRINT PRINT COLUMN 1, "DIRECCION"," ", doble_on, p_companias.direccion CLIPPED,doble_off, # COLUMN 145, "MUNICIPIO"," ", COLUMN 63, "MUNICIPIO"," ", " " PRINT PRINT COLUMN 1, "PROVINCIA"," ", doble_on,"SAN CRISTOBAL",doble_off, COLUMN 100, "TELEFONO No."," ", doble_on,p_companias.telefono CLIPPED,doble_off, COLUMN 145, "FAX No."," ", doble_on,p_companias.fax CLIPPED,doble_off PRINT COLUMN 1, "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "===============", "==" PRINT PRINT COLUMN 1, doble_on,"DATOS DE LOS ASALARIADOS",doble_off PRINT COLUMN 1, "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "--" PRINT COLUMN 10, " "," ", COLUMN 41, " "," ", COLUMN 55, " TOTAL DE "," ", " "," ", " TOTAL "," ", " SUELDOS Y "," ", " IMPUESTO "," ", " IMPUESTO "," ", " SALDO A "," ", " DIFERENCIA " PRINT COLUMN 10, " APELLIDOS "," ", COLUMN 41, " CEDULA O "," ", COLUMN 55, " SALARIOS "," ", " OTRAS "," ", " PAGADO "," ", " OTROS PAGOS "," ", " LIQUIDADO "," ", " RETENIDO Y "," ", " FAVOR DEL "," ", " A " PRINT COLUMN 10, " Y NOMBRES "," ", COLUMN 41, " PASAPORTE "," ", COLUMN 55, " PAGADOS "," ", "REMUNERACIONES"," ", " EN EL ANO "," ", " SUJETOS A "," ", " "," ", " PAGADO "," ", " EMPLEADO "," ", " PAGAR " PRINT COLUMN 10, " "," ", COLUMN 41, " "," ", COLUMN 55, " EN EL ANO "," ", " "," ", " "," ", " RETENCION "," ", " "," ", " "," ", " "," ", " " PRINT COLUMN 1, "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "--" PRINT COLUMN 10, " A "," ", COLUMN 41, " 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 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(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 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 LET valor_renta = total1 # LET total1 = total1 - 80980 # LET total1 = total1 - 84000 LET total1 = total1 - 97800 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 regal_ingre = 0 # Renta al 15 % # IF valor_renta > 0000 THEN # LET renta_15 = (valor_renta - 00000) * 0.15 # END IF IF valor_renta > 97800 and valor_renta < 162996 THEN LET valor_renta = valor_renta - 97800 LET isr2 = valor_renta * .15 LET renta_15 = isr2 ELSE LET renta = ((162996-97800) * .15) LET renta_15 = renta END IF # Renta al 20 % # IF valor_renta >= 53987 THEN # LET renta_20 = (valor_renta - 53987) * 0.20 # LET valor_renta = 53987 # END IF IF valor_renta > 162997 AND valor_renta < 244488 THEN LET valor_renta = valor_renta - 162997 LET isr2 = valor_renta * .20 LET renta_20 = isr2 ELSE IF valor_renta > 162997 THEN LET isr2 = ((244488-162997) * .20) LET renta_20 = isr2 END IF END IF # Renta al 25 % # IF valor_renta >= 121471 THEN # LET renta_27 = (valor_renta - 121471) * 0.25 # LET valor_renta = 121471 # END IF IF valor_renta > 244487 THEN LET valor_renta = valor_renta - 244488 LET isr2 = valor_renta * .25 LET renta_27 = isr2 END IF LET isr2 = 0 LET isr2 = renta_15 + renta_20 + renta_27 IF isr2 = 9779.4 then let isr2 = 0 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 total1 > 0 THEN LET id1 = id1 + 1 END IF # LET regal_ingre = regalia + ingreso IF x.valor < 97800 THEN LET isr2 = 0 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 "###,###,##&.&&"," ", regal_ingre USING "###,###,##&.&&"," ", total2 USING "###,###,##&.&&"," ", total1 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 55, 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 55, 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, " ", " "," ", " ", " ", " ", " ", " ", " ", " "," ", " ",doble_on, "RESUMEN PARA EL", " PAGO",doble_off 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