tax-cl 1.0.3 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/tax-cl.iml" filepath="$PROJECT_DIR$/.idea/tax-cl.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="WEB_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$">
5
+ <excludeFolder url="file://$MODULE_DIR$/temp" />
6
+ <excludeFolder url="file://$MODULE_DIR$/.tmp" />
7
+ <excludeFolder url="file://$MODULE_DIR$/tmp" />
8
+ </content>
9
+ <orderEntry type="inheritedJdk" />
10
+ <orderEntry type="sourceFolder" forTests="false" />
11
+ </component>
12
+ </module>
package/.idea/vcs.xml ADDED
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="" vcs="Git" />
5
+ </component>
6
+ </project>
package/README.md CHANGED
@@ -83,14 +83,14 @@ Retorna un objeto con las siguientes propiedades:
83
83
  * `impuestos`: *(number)*. Es el total de impuestos a pagar según el tramo impositivo.
84
84
  * `deuda`: *(number)*. Es la deuda final, si su valor es positivo indica el valor que debes pagar al Servicio de Impuestos Internos, si es negativo es el valor que recibirás como devolución.
85
85
  * `deudaModalidadParcial`: *(number)*. Es la deuda final, pero considerando que has optado por pagar las cotizaciones en modalidad parcial.
86
- * `operacionRenta`: *(number)*. Es el año de la declaración (**2021** por defecto).
86
+ * `operacionRenta`: *(number)*. Es el año de la declaración (**2023** por defecto).
87
87
 
88
88
  ### `configurarDeclaracion(number: year) : void`
89
89
 
90
- Configura el año de la operación renta sobre la cual aplican los cálculos. Por defecto, el año de la declaración es **2021**.
90
+ Configura el año de la operación renta sobre la cual aplican los cálculos. Por defecto, el año de la declaración es **2023**.
91
91
 
92
92
  #### Arguments
93
93
 
94
94
  Recibe el siguiente argumento:
95
95
 
96
- * `year`: *(number)*, año de la operación renta para la realización de los cálculos. Los valores válidos son: `2018`, `2019`, `2020`, `2021` y `2022`.
96
+ * `year`: *(number)*, año de la operación renta para la realización de los cálculos. Los valores válidos son: `2018`, `2019`, `2020`, `2021`, `2022` y `2023`.
package/lib/config.js CHANGED
@@ -10,7 +10,8 @@ var UTA = {
10
10
  2019: 595476,
11
11
  2020: 612348,
12
12
  2021: 650052,
13
- 2022: 653304 // 2021-01-04
13
+ 2022: 733884,
14
+ 2023: 741228 // 2023-01
14
15
 
15
16
  }; // Valor UF al 31 de diciembre en https://www.sii.cl/valores_y_fechas/index_valores_y_fechas.html
16
17
 
@@ -19,7 +20,8 @@ var UF = {
19
20
  2019: 28309.94,
20
21
  2020: 29070.33,
21
22
  2021: 30991.74,
22
- 2022: 31036.65 // 2021-01-09
23
+ 2022: 35110.98,
24
+ 2023: 35287.50 // 2023-01-31
23
25
 
24
26
  };
25
27
  var RETENCION = {
@@ -57,7 +59,9 @@ var TOPE_IMPONIBLE_MENSUAL = {
57
59
  // https://www.spensiones.cl/portal/institucional/594/w3-article-13843.html
58
60
  2021: 81.6,
59
61
  // https://www.spensiones.cl/portal/institucional/594/w3-article-14366.html
60
- 2022: 81.6 // Not published yet!
62
+ 2022: 81.6,
63
+ // https://www.spensiones.cl/portal/institucional/594/w3-article-15178.html
64
+ 2023: 81.6 // https://www.spensiones.cl/portal/institucional/594/w3-article-15486.html
61
65
 
62
66
  };
63
67
 
@@ -74,20 +78,22 @@ function obtenerTramosImpositivos(uta) {
74
78
  }
75
79
 
76
80
  function getConfig(operacionRenta) {
77
- var year = operacionRenta - 1;
81
+ var commercialYear = operacionRenta - 1;
78
82
 
79
- if (!TOPE_IMPONIBLE_MENSUAL[year]) {
80
- var validos = Object.keys(TOPE_IMPONIBLE_MENSUAL).join(', ');
83
+ if (!TOPE_IMPONIBLE_MENSUAL[commercialYear]) {
84
+ var validos = Object.keys(TOPE_IMPONIBLE_MENSUAL).map(function (year) {
85
+ return parseInt(year) + 1;
86
+ }).join(', ');
81
87
  throw new Error("El a\xF1o ingresado es incorrecto. Los valores v\xE1lidos son: ".concat(validos));
82
88
  }
83
89
 
84
90
  return {
85
91
  OPERACION_RENTA: operacionRenta,
86
- UTA: UTA[year],
87
- UF: UF[year],
88
- RETENCION: RETENCION[year] / 100,
89
- COBERTURA_PARCIAL: COBERTURA_PARCIAL[year] / 100,
90
- TOPE_IMPONIBLE_MENSUAL: TOPE_IMPONIBLE_MENSUAL[year],
91
- TRAMOS_IMPOSITIVOS: obtenerTramosImpositivos(UTA[year])
92
+ UTA: UTA[commercialYear],
93
+ UF: UF[commercialYear],
94
+ RETENCION: RETENCION[commercialYear] / 100,
95
+ COBERTURA_PARCIAL: COBERTURA_PARCIAL[commercialYear] / 100,
96
+ TOPE_IMPONIBLE_MENSUAL: TOPE_IMPONIBLE_MENSUAL[commercialYear],
97
+ TRAMOS_IMPOSITIVOS: obtenerTramosImpositivos(UTA[commercialYear])
92
98
  };
93
99
  }
package/lib/index.js CHANGED
@@ -23,7 +23,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
23
23
 
24
24
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25
25
 
26
- var OPERACION_RENTA_ACTUAL = 2021;
26
+ var OPERACION_RENTA_ACTUAL = 2023;
27
27
  var config = (0, _config.getConfig)(OPERACION_RENTA_ACTUAL);
28
28
  /**
29
29
  * Configura el año de la operación renta para los cálculos.
@@ -52,16 +52,18 @@ function calcularGastos(sueldoAnual) {
52
52
  }
53
53
 
54
54
  var COTIZACIONES_OBLIGATORIAS = [{
55
- name: "Seguro de invalidez y sobrevivencia",
56
- percent: 1.53,
55
+ name: "Seguro de invalidez y sobrevivencia (SIS)",
56
+ percent: 1.54,
57
+ // https://www.spensiones.cl/portal/institucional/594/w3-propertyvalue-9917.html#recuadros_articulo_4130_0
57
58
  variable: false
58
59
  }, {
59
- name: "Seguro de la ley de accidentes del trabajo y enfermedades profesionales",
60
- percent: 0.91,
60
+ name: "Seguro de la ley de accidentes del trabajo y enfermedades profesionales (ATEP)",
61
+ percent: 0.90,
61
62
  variable: false
62
63
  }, {
63
- name: "Seguro de acompañamiento niños y niñas",
64
- percent: 0.02,
64
+ name: "Seguro de acompañamiento niños y niñas (Ley SANNA)",
65
+ percent: 0.03,
66
+ // https://www.chileatiende.gob.cl/fichas/53276-seguro-para-el-acompanamiento-de-ninos-y-ninas-afectados-por-una-condicion-grave-de-salud-ley-sanna
65
67
  variable: false
66
68
  }, {
67
69
  name: "Salud",
@@ -73,7 +75,8 @@ var COTIZACIONES_OBLIGATORIAS = [{
73
75
  variable: true
74
76
  }, {
75
77
  name: "Comisión AFP",
76
- percent: 0.77,
78
+ percent: 0.58,
79
+ // AFP Modelo https://www.spensiones.cl/apps/estcom/estcom.php
77
80
  variable: false
78
81
  }];
79
82
  exports.COTIZACIONES_OBLIGATORIAS = COTIZACIONES_OBLIGATORIAS;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tax-cl",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "Librería cálculo de impuestos y cotizaciones en Chile 🇨🇱",
5
5
  "main": "lib/index.js",
6
6
  "repository": "git@github.com:muZk/tax-cl.git",
@@ -18,5 +18,6 @@
18
18
  "presets": [
19
19
  "@babel/preset-env"
20
20
  ]
21
- }
21
+ },
22
+ "dependencies": {}
22
23
  }
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.obtenerTramos = obtenerTramos;
7
-
8
- var _config = require("./config");
9
-
10
- function construirTramoImpositivo(factor, montoMaximo, descuento) {
11
- return {
12
- factor: factor,
13
- montoMaximo: montoMaximo,
14
- descuento: descuento
15
- };
16
- }
17
-
18
- function obtenerTramos(year) {
19
- var uta = _config.UTA[year - 1];
20
- return [construirTramoImpositivo(0, 13.5 * uta, 0), construirTramoImpositivo(0.04, 30 * uta, 0.54 * uta), construirTramoImpositivo(0.08, 50 * uta, 1.74 * uta), construirTramoImpositivo(0.135, 70 * uta, 4.49 * uta), construirTramoImpositivo(0.23, 90 * uta, 11.14 * uta), construirTramoImpositivo(0.304, 120 * uta, 17.8 * uta), construirTramoImpositivo(0.35, 150 * uta, 23.92 * uta), construirTramoImpositivo(0.4, Number.MAX_VALUE, 30.67 * uta)];
21
- }