{ _______________________________________________________________________________ PROGRAMA : NOPRRP013 OBJETIVO : Listar las informaciones generales del IR-4 a un mes especifico. PROGRAMADOR : Tadeo A. Ferreras FECHA REALIZACION : Agosto 25, 1993 _______________________________________________________________________________ } GLOBALS "noprgb000.4gl" DEFINE p_mes SMALLINT, fecha1,fecha2 DATE, p_ano CHAR(4) FUNCTION noprrp013() ## SE DEFINE EL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA EL REPORTE DEFINE list_ir4 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, nomina LIKE adtb00003.nomina, valor DECIMAL(12,2), valor1 DECIMAL(12,2), isr DECIMAL(12,2) END RECORD DEFINE list_1 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, nomina LIKE adtb00003.nomina, valor DECIMAL(12,2) END RECORD DEFINE list_2 RECORD num_emp LIKE adtb00003.num_emp, valor1 DECIMAL(12,2) END RECORD DEFINE list_3 RECORD num_emp LIKE adtb00003.num_emp, isr DECIMAL(12,2) END RECORD DEFINE mes SMALLINT DEFINE ano CHAR(4) DEFINE fecha1,fecha2 DATE DEFINE semanas SMALLINT DEFINE descrip_mes CHAR(20) DEFINE nombre CHAR(62) DEFINE nom1,nom2,ape1,ape2 CHAR(14) DEFINE salir1,salir2,salir3,tipo_nomina CHAR(1) DEFINE descn CHAR(10) DEFINE idx1,idx2,idx3 INTEGER #WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 CLEAR SCREEN OPEN FORM nofmrp013 FROM "nofmrp013" DISPLAY FORM nofmrp013 CALL pantalla() DISPLAY "noprrp013" AT 4,3 DISPLAY "Impuesto Sobre la Renta IR-4" AT 6,26 ## INDICA EL PAPEL NECESARIO PARA IMPRIMIR EL REPORTE. 1 _ PAPEL 9-1/2X11 ## 2 _ PAPEL 14-7/8X11 LET tipo_papel = 2 CALL msgrp000(tipo_papel) INPUT BY NAME p_mes,p_ano AFTER FIELD p_mes IF p_mes IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD p_mes END IF SELECT UNIQUE a.descrip INTO descrip_mes FROM mestable a WHERE a.mes = p_mes AFTER FIELD p_ano IF p_ano IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD p_ano END IF SELECT MIN(a.fecha_del),MAX(a.fecha_al) INTO fecha1,fecha2 FROM notb00010 a WHERE a.mes = p_mes and a.ano = p_ano DISPLAY BY NAME fecha1,fecha2 ATTRIBUTE (BOLD) 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,b.nom1_emp,b.apell1_emp,b.cedula,b.serie, b.nomina,SUM(a.valor) FROM adtb00003 b, notb00008 a,notb00010 c WHERE b.num_emp = a.num_emp AND c.mes = p_mes AND c.ano = p_ano AND a.num_nomi = c.num_nomi and a.tipo_emp = c.tipo_emp and a.fecha between fecha1 and fecha2 AND a.cod_mov IN (1,31) GROUP BY 1,2,3,4,5,6 ORDER BY 1 DISPLAY "Buscando Datos Basicos.. Espere Por Favor" AT 19,14 ATTRIBUTE (REVERSE,BOLD) OPEN accion DECLARE accion1 SCROLL CURSOR FOR SELECT a.num_emp,SUM(a.valor) FROM notb00008 a, notb00010 b WHERE b.mes = p_mes AND b.ano = p_ano AND a.fecha between fecha1 and fecha2 AND a.num_nomi = b.num_nomi and a.tipo_emp = b.tipo_emp and a.status_t IS NULL AND a.clase_mov IN ("I","E") AND a.cod_mov NOT IN (1,31) GROUP BY 1 ORDER BY 1 DISPLAY "Buscando Otros Ingresos. Espere Por Favor" AT 19,14 OPEN accion1 DECLARE accion2 SCROLL CURSOR FOR SELECT a.num_emp,SUM(a.valor) FROM notb00008 a ,notb00010 b WHERE b.mes = p_mes AND b.ano = p_ano AND a.fecha between fecha1 and fecha2 AND a.num_nomi = b.num_nomi and a.tipo_emp = b.tipo_emp and a.status_t IS NULL AND a.cod_mov IN (23,70) GROUP BY 1 ORDER BY 1 DISPLAY "Buscando Imp. de Renta.. Espere Por Favor" AT 19,14 OPEN accion2 START REPORT isr_4 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 salir1 = "N" WHILE salir1 != "S" FETCH accion INTO list_1.* IF STATUS = NOTFOUND THEN LET salir1 = "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_ir4.num_emp = list_1.num_emp LET list_ir4.nom1_emp = list_1.nom1_emp LET list_ir4.apell1_emp = list_1.apell1_emp LET list_ir4.cedula = list_1.cedula LET list_ir4.serie = list_1.serie LET list_ir4.nomina = list_1.nomina LET list_ir4.valor = list_1.valor LET list_ir4.valor1 = 0 LET list_ir4.isr = 0 DISPLAY " " AT 11,14 DISPLAY "Datos ",list_ir4.num_emp USING "&&&&","-",list_ir4.valor USING "&&&,&&&.&&" AT 11,14 LET idx1 = 1 LET salir2= "N" WHILE salir2 != "S" FETCH ABSOLUTE idx1 accion1 INTO list_2.* IF STATUS = NOTFOUND THEN LET idx1 = 1 LET salir2 = "S" EXIT WHILE END IF LET idx1 = idx1 + 1 IF list_2.num_emp = list_1.num_emp THEN LET list_ir4.valor1 = list_2.valor1 LET idx1 = 1 LET salir2 = "S" EXIT WHILE END IF END WHILE IF list_ir4.valor1 IS NULL THEN LET list_ir4.valor1 = 0 END IF LET idx2 = 1 LET salir3= "N" WHILE salir3 != "S" FETCH ABSOLUTE idx2 accion2 INTO list_3.* IF STATUS = NOTFOUND THEN LET idx2 = 1 LET salir3 = "S" EXIT WHILE END IF LET idx2 = idx2 + 1 IF list_3.num_emp = list_1.num_emp THEN LET list_ir4.isr = list_3.isr LET idx2 = 1 LET salir3 = "S" EXIT WHILE END IF END WHILE IF list_ir4.isr IS NULL THEN LET list_ir4.isr = 0 END IF OUTPUT TO REPORT isr_4(list_ir4.*,ano,mes,descrip_mes) END WHILE FINISH REPORT isr_4 CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION ## AQUI SE DEFINE EL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE REPORT isr_4(x,ano1,mes1,descrip) 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, nomina LIKE adtb00003.nomina, valor DECIMAL(12,2), valor1 DECIMAL(12,2), isr DECIMAL(12,2) END RECORD DEFINE ano1,mes1 SMALLINT DEFINE semana SMALLINT DEFINE descrip CHAR(20) DEFINE descno CHAR(10) DEFINE existe CHAR(1) DEFINE nombre1 CHAR(60) DEFINE isr,isr1,isr2,total,total1,total2,sueldo,ingreso, bruto,bruto1 DECIMAL(12,2) DEFINE tipo_nm CHAR(1) ## 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 id1 SMALLINT DEFINE tot_pag,tot_pag1,tot_pag2,tot_pag3,tot_pag4, tot_pag5,tot_pag6,tot_pag7 DECIMAL(12,2) DEFINE tot_gen,tot_gen1,tot_gen2,tot_gen3,tot_gen4, tot_gen5,tot_gen6,tot_gen7 DECIMAL(12,2) 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 PRINT COLUMN 98, p_companias.nombre CLIPPED PRINT COLUMN 93, "===================================================" PRINT COLUMN 5, "IR-4", COLUMN 93, "FORMATO PARA CALCULO DE LA RETENCION DEL ASALARIADO" PRINT COLUMN 93, "===================================================", COLUMN 217, "noprrp013" PRINT COLUMN 18, "F E C H A : ","30/",mes1 USING "&&","/", ano1 USING "####", COLUMN 216, "Pagina ",pageno USING "###" PRINT COLUMN 1, "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "---------------" PRINT COLUMN 9, "AGENTE DE RETENCION", COLUMN 49, "RNC", COLUMN 64, "NUMERO DE INSCRIPCION", COLUMN 178, "P E R I O D O" PRINT COLUMN 5, p_companias.nombre CLIPPED, COLUMN 46, p_companias.rnc CLIPPED, COLUMN 70, "101009527", COLUMN 178, descrip CLIPPED," ",ano1 USING "####" PRINT COLUMN 1, "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "---------------" PRINT COLUMN 1, "|", COLUMN 52, "|", COLUMN 146, "|", COLUMN 152, "LIQUIDACION SALDO A FAVOR SALDO A FAVOR", COLUMN 212, "SALDO A FAVOR", COLUMN 227, "|" PRINT COLUMN 1, "| IDENTIFICACION DEL CONSTRIBUYENTE", COLUMN 52, "|", COLUMN 84, "REMUNERACIONES PERCIBIDAS", COLUMN 146, "|", COLUMN 154, "PERIODO DEL ASALARIADO ASAL/RECOMPESAR", COLUMN 212, "DE LA DIRECCION", COLUMN 227, "|" PRINT COLUMN 1, "|", COLUMN 52, "|", COLUMN 146, "|", COLUMN 154, " FUT. RETENCIONES", COLUMN 212, "GENERAL", COLUMN 227, "|" PRINT COLUMN 1, "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "---------------" PRINT COLUMN 1, "| APELLIDOS Y NOMBRES", COLUMN 55, "Sueldos Pagados Remuneraciones Otras Remunera-", COLUMN 110, "TOTAL PAGADO EN Sueldos y otros LEY 11 - 92", COLUMN 174, "I M P U E S T O LEY 11 - 92 LEY 11 - 92", COLUMN 227, "|" PRINT COLUMN 1, "| COMPLETOS", COLUMN 41, "CEDULA - S", COLUMN 55, "Por el Agente Pagadas por ciones pagadas ", COLUMN 110, " EL MES pagos sujetos a (Impuesto men-", COLUMN 174, " LEY 11 - 92 (Diferencia (-) (Diferencia (+)", COLUMN 227, "|" PRINT COLUMN 1, "|", COLUMN 55, " de Retencion otros emplea- por el Agente ", COLUMN 110, " Retencion sual s/Tabla)", COLUMN 174, " H e I) H e I) ", COLUMN 227, "|" PRINT COLUMN 1, "|", COLUMN 55, " dores. de Retencion", COLUMN 227, "|" PRINT COLUMN 1, "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "---------------" PRINT COLUMN 1, "|", COLUMN 16, "A", COLUMN 47, "B", COLUMN 62, "C", COLUMN 81, "D", COLUMN 101, "E", COLUMN 119, "F", COLUMN 136, "G", COLUMN 157, "H", COLUMN 182, "I", COLUMN 199, "J", COLUMN 217, "K |" PRINT COLUMN 1, "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "-----------------------------------------------------", "---------------" IF tot_pag is null THEN 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 END IF LET l = 30 ON EVERY ROW LET existe = "S" LET bruto = 0 LET bruto = x.valor + x.valor1 LET total1 = bruto - 5000 LET bruto1 = 0 IF total1 > 0 THEN LET bruto1 = bruto LET id1 = id1 + 1 END IF LET total2 = 0 LET total2 = (x.isr*-1) LET isr1 = 0 LET isr2 = 0 IF idx IS NULL THEN LET idx = 0 LET id1 = 0 END IF LET tot_pag = tot_pag + x.valor LET tot_pag1 = tot_pag1 + x.valor1 LET tot_pag2 = tot_pag2 + bruto LET tot_pag3 = tot_pag3 + bruto1 LET tot_pag4 = tot_pag4 + x.isr LET tot_pag5 = tot_pag5 + isr2 LET tot_pag6 = tot_pag6 + isr1 LET tot_pag7 = tot_pag7 + total2 LET idx = idx + 1 PRINT COLUMN 1, x.nom1_emp CLIPPED," ", x.apell1_emp CLIPPED, COLUMN 42, x.cedula USING "#######","-",x.serie USING "&&&", COLUMN 55, x.valor USING "###,##&.&&", COLUMN 78, 0.00, #COLUMN 78, tot_pag using "###,###.##", COLUMN 95, x.valor1 USING "###,##&.&&", COLUMN 113, bruto USING "###,##&.&&", COLUMN 134, bruto1 USING "###,##&.&&", COLUMN 151, x.isr USING "###,##&.&&", COLUMN 173, isr2 USING "###,##&.&&", COLUMN 200, isr1 USING "###,##&.&&", COLUMN 216, total2 USING "###,##&.&&" LET l = l - 1 IF l = 0 THEN SKIP TO TOP OF PAGE END IF LET bruto = 0 LET bruto1 = 0 ON LAST ROW LET existe = "N" PAGE TRAILER PRINT COLUMN 1, "=====================================================", "=====================================================", "=====================================================", "=====================================================", "===============" PRINT COLUMN 21, "TOTAL PAGINA -->", COLUMN 52, tot_pag USING "##,###,##&.&&", COLUMN 78, 0.00, COLUMN 92, tot_pag1 USING "##,###,##&.&&", COLUMN 110, tot_pag2 USING "##,###,##&.&&", COLUMN 131, tot_pag3 USING "##,###,##&.&&", COLUMN 148, tot_pag4 USING "##,###,##&.&&", COLUMN 170, tot_pag5 USING "##,###,##&.&&", COLUMN 197, tot_pag6 USING "##,###,##&.&&", COLUMN 213, tot_pag7 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 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_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 PRINT COLUMN 21, "TOTAL ACUMULADO -->", COLUMN 52, tot_gen USING "##,###,##&.&&", COLUMN 78, 0.00, COLUMN 92, tot_gen1 USING "##,###,##&.&&", COLUMN 110, tot_gen2 USING "##,###,##&.&&", COLUMN 131, tot_gen3 USING "##,###,##&.&&", COLUMN 148, tot_gen4 USING "##,###,##&.&&", COLUMN 170, tot_gen5 USING "##,###,##&.&&", COLUMN 194, tot_gen6 USING "##,###,##&.&&", COLUMN 213, tot_gen7 USING "##,###,##&.&&" PRINT COLUMN 1, "=====================================================", "=====================================================", "=====================================================", "=====================================================", "===============" IF existe = "N" THEN LET tot_gen = 0 LET tot_gen1 = 0 LET tot_gen2 = 0 LET tot_gen3 = 0 LET tot_gen4 = 0 LET tot_gen5 = 0 LET tot_gen6 = 0 LET tot_gen7 = 0 END IF PRINT COLUMN 1, "(L) NUMERO 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 ---------- " END REPORT