Skip to content

Commit

Permalink
Merge pull request #51 from ismaelpadilla/master
Browse files Browse the repository at this point in the history
v 1.3.0
  • Loading branch information
ismaelpadilla authored Feb 11, 2024
2 parents 6210a6e + 8f3d44f commit 9974c64
Show file tree
Hide file tree
Showing 8 changed files with 5,544 additions and 7,114 deletions.
13 changes: 13 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# These are supported funding model platforms

github: ismaelpadilla # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# Changelog
Todos los cambios importantes en el proyecto serán documentados en este archivo.

## [1.3.0] - 2024-02-10

- Actualizados valores para el 2024.

## [1.2.1] - 2022-03-11

- Actualizados topes Art. 7º y 8º (Ley 16713).
Expand Down
18 changes: 10 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
![Versión](https://img.shields.io/github/package-json/v/ismaelpadilla/salario-liquido-uruguay?label=versi%C3%B3n)
![Build y test](/~https://github.com/ismaelpadilla/salario-liquido-uruguay/workflows/Build%20y%20test/badge.svg)

✔Actualizado para el 2022.
✔Actualizado para el 2024.

----

Simulador para calcular el salario líquido en Uruguay, actualmente publicado en https://salarioliquidouruguay.com/

En la actualidad, hay varios problemas con los simuladores oficiales existentes. Por ejemplo, tanto el [simulador de aportes de BPS](https://app1.bps.gub.uy/AcercaSimuladorCalculosWeb/paginas/simuladorPersona/otras/ingresoDatosIC.jsf) como los [simuladores de IRPF de DGI](https://www.dgi.gub.uy/wdgi/page?2,principal,dgi--herramientas--simuladores--irpf--2020,O,es,0,) no manejan correctamente las distintas franjas del FONASA. Otros simuladores no oficiales que he encontrado parecen no estar actualizados.
En la actualidad, hay varios problemas con los simuladores oficiales existentes. Por ejemplo, tanto el [simulador de aportes de BPS](https://app1.bps.gub.uy/AcercaSimuladorCalculosWeb/paginas/simuladorPersona/otras/ingresoDatosIC.jsf) como los [simuladores de IRPF de DGI](https://www.gub.uy/direccion-general-impositiva/politicas-y-gestion/simulador-irpf-mensual-2024) no manejan correctamente las distintas franjas del FONASA. Otros simuladores no oficiales que he encontrado parecen no estar actualizados.

## ¿Cómo se calcula el salario líquido?

Expand All @@ -25,7 +25,7 @@ Los aportes a realizar son:

### IRPF

El IRPF es el impuesto con el que la guente suele tener más problemas a la hora de calcularlo. Se aplican diferentes tasas sobre las diferentes franjas del salario, donde las franjas son:
El IRPF es el impuesto con el que la gente suele tener más problemas a la hora de calcularlo. Se aplican diferentes tasas sobre las diferentes franjas del salario, donde las franjas son:

| Desde | Hasta | Tasa |
| -------: |----------:| -----:|
Expand All @@ -40,13 +40,15 @@ El IRPF es el impuesto con el que la guente suele tener más problemas a la hora

Contrario a creencia popular, no se cobra el impuesto correspondiente a la franja más alta sobre todo el salario, si no que se aplican diferentes tasas a la porción de salario que está dentro de cada franja.

Por ejemplo, si el salario nominal es de $60.000, y el BPC es $5164 (valor de 2022), el impuesto que se cobra es:
Por ejemplo, si el salario nominal es de $80.000, y el BPC es $6177 (valor de 2024), el impuesto que se cobra es:

- 0% sobre la porción del salario que cae entre la franja 0 y 7 BPC (impuesto de 0% sobre $36.148-$0=$36.148 del salario -> $0).
- 7% sobre la porción del salario que cae entre la franja 7 y 10 BPC (impuesto de 10% sobre $51.640-$36.148=$15.492 del salario -> $1.549).
- 15% sobre la porción del salario que cae entre la franja 10 y 15 BPC (impuesto de 15% sobre $77.460-$51.640=$11.960 del salario -> $1.794).
- 0% sobre la porción del salario que cae entre la franja 0 y 7 BPC (impuesto de 0% sobre $43.239-$0=$43.239 del salario -> $0).
- 7% sobre la porción del salario que cae entre la franja 7 y 10 BPC (impuesto de 10% sobre $61.770-$43.239=$18.531 del salario -> $1.853).
- 15% sobre la porción del salario que cae entre la franja 10 y 15 BPC (impuesto de 15% sobre $84.800-$61.770=$23.030 del salario -> $3.455).

El IPRF (antes de aplicar las [deducciones correspondientes](https://www.dgi.gub.uy/wdgi/page?2,principal,_Ampliacion,O,es,0,PAG;CONC;40;1;D;cuales-son-las-deducciones-personales-admitidas-en-la-liquidacion-del-irpf-33486;5;PAG;)), sería entonces $3.343.
Tener en cuenta que si el salario es mayor a 10BPC, se incrementa un 6% para los cálculos del IRPF, por eso en este caso consideramos las franjas hasta $84.800.

El IPRF (antes de aplicar las [deducciones correspondientes](https://www.dgi.gub.uy/wdgi/page?2,principal,_Ampliacion,O,es,0,PAG;CONC;40;1;D;cuales-son-las-deducciones-personales-admitidas-en-la-liquidacion-del-irpf-33486;5;PAG;)), sería entonces $5.308.

## Cómo reportar errores

Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "salario-liquido-uruguay",
"version": "1.2.1",
"version": "1.3.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^4.2.4",
Expand All @@ -9,7 +9,7 @@
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-router-dom": "^5.1.2",
"react-scripts": "4.0.3"
"react-scripts": "5.0.1"
},
"scripts": {
"start": "react-scripts start",
Expand Down
4 changes: 2 additions & 2 deletions src/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ class App extends React.Component {
<div className="content">
<header className="title">
<h1 className="title-text">
Salario líquido Uruguay <span className="anio">2022</span>
Salario líquido Uruguay <span className="anio">2024</span>
</h1>
</header>
<Switch>
Expand Down Expand Up @@ -139,7 +139,7 @@ class App extends React.Component {
</a>
</span>
<span className="footer-txt ultimaActualizacion">
v{pjsonn.version} - Última actualización: Marzo 2022
v{pjsonn.version} - Última actualización: Febrero 2024
</span>
</div>
<a
Expand Down
14 changes: 7 additions & 7 deletions src/data/constants.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* Valor BPC 2022.
* Valor BPC 2024.
*/
const BPC = 5164;
const BPC = 6177;

/**
* Franjas de IPRF.
Expand Down Expand Up @@ -31,7 +31,7 @@ const APORTES_JUBILATORIOS = 15;
/**
* Maximo del salario nominal sobre el cual aplican los aportes jubilatorios.
*/
const TOPE_APORTES_JUBILATORIOS = 215179;
const TOPE_APORTES_JUBILATORIOS = 236309;

/**
* Porcentaje de aportes FONASA para personas con salario hasta a 2.5 BPC.
Expand All @@ -50,7 +50,7 @@ const APORTE_FRL = 0.1;
/**
* Tope AFAP.
*/
const TOPE_AFAP = 215179;
const TOPE_AFAP = 236309;

/**
* Porcentaje de incremento de ingresos gravados que aplica si la renta computable es mayor a 10 BPC.
Expand All @@ -69,17 +69,17 @@ const TASA_DEDUCCIONES_DESDE15BPC = 8;
/**
* Cantidad deducida del IRPF por cada hijo sin discapacidad.
*/
const DEDUCCION_HIJO_SIN_DISCAPACIDAD = (13 * BPC) / 12;
const DEDUCCION_HIJO_SIN_DISCAPACIDAD = (20 * BPC) / 12;
/**
* Cantidad deducida del IRPF por cada hijo con discapacidad.
*/
const DEDUCCION_HIJO_CON_DISCAPACIDAD = (26 * BPC) / 12;
const DEDUCCION_HIJO_CON_DISCAPACIDAD = (40 * BPC) / 12;

/**
* Adicional al fondo de solidaridad que debe pagarse en carreras de duracion igual o mayor
* a cinco años.
*/
const ADICIONAL_FONDO_SOLIDARIDAD = ((5 / 3) * BPC) / 12;
const ADICIONAL_FONDO_SOLIDARIDAD = ((5 / 4) * BPC) / 12;

export {
BPC,
Expand Down
34 changes: 24 additions & 10 deletions src/services/calculos.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ describe("Probar cálculo de aportes BPS", () => {

test.each([
[202693, 30404],
[250000, 32276.9],
[250000, 35446.35],
])("Aplican topes jubilatorios", (salarioNominal, esperadoJubilatorio) => {
/**
* El aporte jubilatorio se aplica hasta el tope 188411 (valor 2020).
Expand All @@ -39,7 +39,21 @@ describe("Probar cálculo de aportes BPS", () => {
describe("Probar cálculo de IRPF", () => {
test.each([
[20000, 1, 0, 0, 3000, 900, 20, 0, 0, 0, 0, { impuestoFranja: [0, 0, 0, 0, 0, 0, 0, 0], deducciones: 3920 }, 0],
[40000, 1, 0, 0, 6000, 1800, 40, 0, 0, 0, 0, { impuestoFranja: [0, 385, 0, 0, 0, 0, 0, 0], deducciones: 7840 }, 0],
[
50000,
1,
0,
0,
7500,
2250,
50,
0,
0,
0,
0,
{ impuestoFranja: [0, 676.1, 0, 0, 0, 0, 0, 0], deducciones: 9800 },
0,
],
[
80000,
1,
Expand All @@ -52,8 +66,8 @@ describe("Probar cálculo de IRPF", () => {
0,
0,
0,
{ impuestoFranja: [0, 1549.2, 3873, 1761.6, 0, 0, 0, 0], deducciones: 15680 },
5929.4,
{ impuestoFranja: [0, 1853.1, 3454.5, 0, 0, 0, 0, 0], deducciones: 15680 },
3739.6,
],
[
80000,
Expand All @@ -67,8 +81,8 @@ describe("Probar cálculo de IRPF", () => {
0,
0,
0,
{ impuestoFranja: [0, 1549.2, 3873, 1761.6, 0, 0, 0, 0], deducciones: 21274.33 },
5481.85,
{ impuestoFranja: [0, 1853.1, 3454.5, 0, 0, 0, 0, 0], deducciones: 25975 },
2710.1,
],
[
80000,
Expand All @@ -82,8 +96,8 @@ describe("Probar cálculo de IRPF", () => {
0,
0,
0,
{ impuestoFranja: [0, 1549.2, 3873, 1761.6, 0, 0, 0, 0], deducciones: 26868.67 },
5034.31,
{ impuestoFranja: [0, 1853.1, 3454.5, 0, 0, 0, 0, 0], deducciones: 36270 },
1680.6,
],
[
80000,
Expand All @@ -97,8 +111,8 @@ describe("Probar cálculo de IRPF", () => {
0,
0,
0,
{ impuestoFranja: [0, 1549.2, 3873, 1761.6, 0, 0, 0, 0], deducciones: 32463 },
4586.76,
{ impuestoFranja: [0, 1853.1, 3454.5, 0, 0, 0, 0, 0], deducciones: 46565 },
651.1,
],
])(
"Calcula IRPF correctamente",
Expand Down
Loading

0 comments on commit 9974c64

Please sign in to comment.