Con éxito

Notas

Error

Session expiration Your session is going to expireClick here to extend

Presupuesto

Proyecto pequeño <800

Publicado el

24/09/14 2:41

Cliente

Mar***

Este proyecto ha expirado

Publica un proyecto similar y recibe ofertas sin compromiso alguno.

¡Publica un proyecto similar ahora!

Descripción

Necesito alguien que programe un formulario para la web que calcule impuestos a partir de valores que ingrese el usuario. No es necesario que la informacion se guarde, solo que la muestre en pantalla. Es un pequeñismo proyecto para una futura web.

Paso el cod. de programa estadistico:

 

do "D:\Mis documentos\Downloads\Calculo IRPF - IRP 2014.do"

 

. *************

. * IRPF 2014 *

. *************

.

. clear all

 

. set obs 1

obs was 0, now 1

 

.

. *** Esto debería aparecer como nota metodológica ***

.

. /*

> Los cálculos que se presentan tienen los siguientes supuestos:

>

> - Son calculados a nivel de la persona y no admiten liquidación por núcleo fam

> iliar.

> - Las deducciones por pago de alquiler o de cuota hipotecaria se asume como co

> mpartida con otra persona (se imputa la mitad).

> - En el caso de ser asalariado o empleado en más de un empleo, con ingresos no

> minales mensuales menores a 2,5 BPC ($U 7.048) en al menos uno de ellos,

> el cálculo de aportes FONASA es apenas sobreestimado. 

> */

.

.

. ***DATOS QUE INGRESA LA PERSONA***

.

. gen HS=2 /* Cantidad de hijos menores a cargo sin discapacidad */

. gen HD=0 /* Cantidad de hijos a cargo con discapacidad */

. gen DH=1  /* La deducción por hijo: 1 - la asume usted solo; 2 - la comparte c> on la madre/padre de sus hijos, 3 - no la asume */

 

. gen CO=0 /* Si tiene cónyuge, ¿su cónyuge tiene cobertura de salud (FONASA) a

> través de su empleo? 1 - Sí; 0 - No */

 

. gen PU=0 /* ¿En su trabajo principal en relación de dependencia, es asalariado

>  público? */

 

. gen YD=10000 /* Si es empleado o asalariado, ingrese su sueldo nominal mensual

> (ingresos nominales percibidos habitualmente en un mes en trabajos con relació

> n de dependencia). Si tiene más de un trabajo asalariado, sume todos sus ingre

> sos */

 

. gen YI=0 /* Si es trabajador independiente, ingrese sus ingresos nominales men

> suales (ingresos percibidos promedialmente en un mes como trabajador independi

> ente) */

 

. gen P=0 /* Si es trabajador independiente, ingrese el monto total mensual de a

> portes a la seguridad social como trabajador independiente (aporte BPS indepie

> nte, Caja Profesional, Caja Notarial) */

 

. *¿Es profesional universitario? (SI RESPONDE SÍ, DEBERÍAN APARECER LAS DOS PRE

> GUNTAS SIGUIENTES)

. gen FS=0 /* ¿Paga fondo de solidaridad? 1 - Sí; 0 - No */

 

. gen AU=0 /* ¿Cuántos años de duración tiene su carrera?*/

 

. gen AL=8156 /* Si es arrendatario de un inmueble con contrato mayor a un año,

> ¿cuánto se paga mensualmente por alquiler en su vivienda? */ 

 

. gen CH=0 /* Si se encuentra pagando un crédito para la compra de vivienda únic

> a, y el costo de su vivienda no excedió los montos establecidos por DGI,

> ingrese cuánto paga mensualmente de cuota (ver tope de costos de vivienda) (TO

> PE DE COSTOS DE VIVIENDA DEBERÍA SER UN HIPERVÍNCULO A UN EXCEL) */

 

.

.

. ***CÁLCULO IRPF***

.

. gen bpc = 2819

 

.

. *Situacion familiar

.

. gen alquiler_men=AL/2

 

. gen cuota_hip=CH/2

 

. gen q_hijos_cargo_sindisc = HS

 

. gen q_hijos_cargo_condisc = HD

 

. gen q_hijos_cargo = q_hijos_cargo_sindisc+q_hijos_cargo_condisc

 

. replace q_hijos_cargo=q_hijos_cargo/2 if DH==2

(0 real changes made)

 

. replace q_hijos_cargo=0 if DH==3

(0 real changes made)

 

. gen conyuge_cargo = CO

 

.

. ** IRPF **

.

. *Ingresos nominales

.

. gen ing_nominal_dep = YD

 

. gen ing_nominal_indep= YI*0.7

 

. gen ing_nominal_T=ing_nominal_dep+ing_nominal_indep

 

. *[OBSCURED]000 [OBSCURED]000 65000 78000

.

. gen ing_nominal_dep_total = ing_nominal_dep*13

 

.

. *deducciones_anues

.

. gen aporte_ss = ing_nominal_dep*0.15

 

.

. gen aporte_fonasa = ing_nominal_dep*0.03 if ing_nominal_dep<(bpc*2.5) & conyug

> e_cargo==0

(1 missing value generated)

 

. replace aporte_fonasa = ing_nominal_dep*0.05 if ing_nominal_dep<(bpc*2.5) & co

> nyuge_cargo==1

(0 real changes made)

 

. replace aporte_fonasa = ing_nominal_dep*0.045 if ing_nominal_dep>(bpc*2.5) & q

> _hijos_cargo==0 & conyuge_cargo==0

(0 real changes made)

 

. replace aporte_fonasa = ing_nominal_dep*0.065 if ing_nominal_dep>(bpc*2.5) & q

> _hijos_cargo==0 & conyuge_cargo==1

(0 real changes made)

 

. replace aporte_fonasa = ing_nominal_dep*0.06 if ing_nominal_dep>(bpc*2.5) & q_

> hijos_cargo>0 & conyuge_cargo==0

(1 real change made)

 

. replace aporte_fonasa = ing_nominal_dep*0.08 if ing_nominal_dep>(bpc*2.5) & q_

> hijos_cargo>0 & conyuge_cargo==1

(0 real changes made)

 

.

. gen aporte_fonasa_an=aporte_fonasa*13

 

.

. g cpe=1953

 

.

. g costo_prom=0

 

. replace costo_prom=cpe*(1+q_hijos_cargo+conyuge_cargo)*13 if aporte_fonasa>0

(1 real change made)

 

.

. g devolucion=0

 

. replace devolucion=aporte_fonasa_an-costo_prom*1.25 if aporte_fonasa_an>costo_

> prom*1.25

(0 real changes made)

 

.

. g aporte_fonasa_neto_an=aporte_fonasa_an-devolucion

 

.

. gen aporte_ind = P

 

.

. gen aporte_frl = ing_nominal_dep*0.00125

 

.

. gen salario_vacacional=ing_nominal_dep-aporte_fonasa-aporte_frl-aporte_ss if P

> U==0

 

.

. gen aportes_anu=(aporte_ss+aporte_frl)*13 + aporte_ind*12 + aporte_fonasa_neto

> _an

 

.

. gen personas_cargo = (q_hijos_cargo_sindisc * (13*bpc)) + (q_hijos_cargo_condi

> sc * (26*bpc))

 

.

. gen paga_fondo_solidaridad = FS

 

.

. gen tipo_fondo_solidaridad=0

 

. replace tipo_fondo_solidaridad=1 if AU<4

(1 real change made)

 

. replace tipo_fondo_solidaridad=2 if AU==4

(0 real changes made)

 

. replace tipo_fondo_solidaridad=3 if AU>4

(0 real changes made)

 

. gen monto_fondo=0

 

. replace monto_fondo = (1/2)*bpc if paga_fondo_solidaridad==1 & tipo_fondo_soli

> daridad==1

(0 real changes made)

 

. replace monto_fondo = 1*bpc if paga_fondo_solidaridad==1 & tipo_fondo_solidari

> dad==2

(0 real changes made)

 

. replace monto_fondo = (5/3*bpc)*2 if paga_fondo_solidaridad==1 & tipo_fondo_so

> lidaridad==3

(0 real changes made)

 

.

. gen ded_cuota_hip=cuota_hip*12

 

. replace ded_cuota_hip=(36*bpc)/2 if cuota_hip*12>=(36*bpc)/2

(0 real changes made)

 

.

. gen deducciones_anues_anu = aportes_anu+personas_cargo+monto_fondo+ded_cuota_h

> ip

 

.

. *Ingreso liquido

.

. *gen ing_liquido = ing_nominal - aporte_ss - aporte_fonasa - aporte_frl - fond

> o_solidaridad - aporte_cjppu

.

.

. *Franjas impositivas

.

. gen ing_nominal_an_total = ing_nominal_dep*13 + ing_nominal_indep*12 +salario_

> vacacional

 

.

. g y_irpf=ing_nominal_an_total

 

.

. g irpf_ing=0

 

. replace irpf_ing=((y_irpf-(96)*bpc)*0.10) if y_irpf>(96)*bpc & y_irpf<=(120)*b

> pc

(0 real changes made)

 

. replace irpf_ing=[(y_irpf-(120)*bpc)*0.15+((120)*bpc-(96)*bpc)*0.10] if y_irpf

> >(120)*bpc & y_irpf<=(180)*bpc

(0 real changes made)

 

. replace irpf_ing=[(y_irpf-(180)*bpc)*0.20+((180)*bpc-(120)*bpc)*0.15+((120)*bp

> c - (84)*bpc)*0.10] if y_irpf>(180)*bpc & y_irpf<=(600)*bpc

(0 real changes made)

 

. replace irpf_ing=[(y_irpf-(600)*bpc)*0.22+((600)*bpc-(180)*bpc)*0.20+((180)*bp

> c-(120)*bpc)*0.15+((120)*bpc - (84)*bpc)*0.10] if y_irpf>(600)*bpc & y_irpf<=(

> 900)*bpc

(0 real changes made)

 

. replace irpf_ing=[(y_irpf-(900)*bpc)*0.25+((900)*bpc-(600)*bpc)*0.22+((600)*bp

> c-(180)*bpc)*0.20+((180)*bpc-(120)*bpc)*0.15+((120)*bpc - (84)*bpc)*0.10] if y

> _irpf>(900)*bpc & y_irpf<=(1380)*bpc

(0 real changes made)

 

. replace irpf_ing=[(y_irpf-(1380)*bpc)*0.3+((1380)*bpc-(900)*bpc)*0.25+((900)*b

> pc-(600)*bpc)*0.22+((600)*bpc-(180)*bpc)*0.20+((180)*bpc - (120)*bpc)*0.15+((1

> 20)*bpc - (84)*bpc)*0.10] if y_irpf>(1380)*bpc

(0 real changes made)

 

.

.

. *Franjas deducciones_anues

.

. g irpf_ded=0

 

. replace irpf_ded=deducciones_anu*0.10 if deducciones_anu<=(36)*bpc

(1 real change made)

 

. replace irpf_ded=[(deducciones_anu-(36)*bpc)*0.15+(36)*bpc*0.10] if deduccione

> s_anu>(36)*bpc & deducciones_anu<=(96)*bpc

(0 real changes made)

 

. replace irpf_ded=[(deducciones_anu-(96)*bpc)*0.20+((96)*bpc-(36)*bpc)*0.15+(36

> )*bpc*0.10] if deducciones_anu>(96)*bpc & deducciones_anu<=(516)*bpc

(0 real changes made)

 

. replace irpf_ded=[(deducciones_anu-(516)*bpc)*0.22+((516)*bpc-(96)*bpc)*0.20+(

> (96)*bpc-(36)*bpc)*0.15+(36)*bpc*0.10] if deducciones_anu>(516)*bpc & deduccio

> nes_anu<=(816)*bpc

(0 real changes made)

 

. replace irpf_ded=[(deducciones_anu-(816)*bpc)*0.25+((816)*bpc-(516)*bpc)*0.22+

> ((516)*bpc-(96)*bpc)*0.20+((96)*bpc-(36)*bpc)*0.15+(36)*bpc*0.10] if deduccion

> es_anu>(816)*bpc

(0 real changes made)

 

. replace irpf_ded=[(deducciones_anu-(1116)*bpc)*0.3+((1116)*bpc-(816)*bpc)*0.25

> +((816)*bpc-(516)*bpc)*0.22+((516)*bpc-(96)*bpc)*0.20+((96)*bpc-(36)*bpc)*0.15

> +(36)*bpc*0.10] if deducciones_anu>(1116)*bpc

(0 real changes made)

 

.

. gen deduc_alq=alquiler_men*12*0.06

 

.

. gen irpf_an = irpf_ing-irpf_ded-deduc_alq

 

. replace irpf_an=0 if irpf_an<0

(1 real change made)

 

.

.

. * Devolución FONASA

.

. *g desc_dev_irpf=0.2*devolucion

.

. gen irpf_m=irpf_an/12

 

.

.

. ** IRP **

.

.

. gen irp_men_dep = 0

 

. replace irp_men_dep = ing_nominal_dep*0.02 if ing_nominal_dep>3*bpc & ing_nomi

> nal_dep<=6*bpc

(1 real change made)

 

. replace irp_men_dep = ing_nominal_dep-6*bpc*0.98 if ing_nominal_dep>6*bpc & in

> g_nominal_dep*0.94<0.98*6*bpc

(0 real changes made)

 

. replace irp_men_dep = ing_nominal_dep*0.06 if ing_nominal_dep*0.94>0.98*6*bpc

(0 real changes made)

 

.

. gen irp_men_ind = 0

 

. replace irp_men_ind = ing_nominal_ind*0.02 if ing_nominal_ind>3*bpc & ing_nomi

> nal_ind<6*bpc

(0 real changes made)

 

. replace irp_men_ind = ing_nominal_ind-6*bpc*0.98 if ing_nominal_ind>6*bpc & in

> g_nominal_ind*0.94<0.98*6*bpc

(0 real changes made)

. replace irp_men_ind = ing_nominal_ind*0.06 if ing_nominal_ind*0.94>0.98*6*bpc

(0 real changes made)

 

.

. gen irp_an=irp_men_dep*13+irp_men_ind*12

 

.

. gen irp_m=irp_an/12

 

.

.

. ***VARIABLES QUE DEBERÍA DEVOLVER EL PROGRAMA***

. dis irpf_m

0

 

. dis irp_m

216.66667

 

.

. twoway (line irpf_m YD, sort) (line irp_m YD, sort)

 

.

end of do-file