Files
2026-09-22 20:38:51 -04:00

554 lines
18 KiB
Plaintext

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