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

579 lines
19 KiB
Plaintext

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