Files
MBS/PROYECTO/nodir/noprrp014.4gl
T

867 lines
29 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
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