Commit 638edf5
authored
Omitir validación del módulo 11 para personas jurídicas (#5)
## Descripción
Este PR ajusta la lógica de validación del RUC para personas jurídicas
para alinearla con la disposición oficial del Servicio de Rentas
Internas (SRI) [1].
El cambio principal consiste en **omitir la validación del algoritmo
módulo 11** para los RUCs pertenecientes a personas jurídicas (aquellos
cuyo tercer dígito es '9'). Esto sigue la recomendación explícita del
SRI, ya que sus procesos internos de generación pueden resultar en RUCs
válidos que no pasarían la comprobación tradicional del módulo 11.
Fixes #4
## Cambios Realizados
* Se modificó la función `isRUC` para **omitir la validación del módulo
11** específicamente para los RUCs identificados como pertenecientes a
personas jurídicas. Estos RUCs ahora se consideran válidos por `isRUC`
si cumplen los criterios básicos (longitud 13, numérico, código de
provincia correcto, sufijo '001').
* Se introdujo una nueva función auxiliar `isLegalEntityRUC(ruc:
string): boolean`.
* Se añadieron nuevos casos de prueba para verificar la nueva lógica y
la función auxiliar.
* Se actualizó el README y se incrementó la versión del paquete a
`1.3.0`.
## Uso Recomendado de `isLegalEntityRUC`
La nueva función `isLegalEntityRUC` está diseñada para ayudar a
implementar la estrategia de validación recomendada por el SRI:
1. Puedes usar `isLegalEntityRUC(ruc)` para determinar si un RUC
pertenece a una persona jurídica.
2. **Si `isLegalEntityRUC` devuelve `true`**, y necesitas una
confirmación de validez más allá de los chequeos básicos (longitud,
formato), **la recomendación del SRI es validar ese RUC directamente
contra sus servicios web oficiales**.
3. La función `isRUC` de esta librería ya **no** intentará validar el
dígito verificador para estos casos, simplemente confirmará el formato
general.
## Motivo del Cambio
Asegurar que la librería `validator-ec` refleje con precisión las reglas
de validación oficiales y actuales definidas por el SRI, evitando que
RUCs válidos de personas jurídicas sean marcados incorrectamente como
inválidos. Se facilita la implementación de la estrategia de validación
sugerida por el SRI mediante la función `isLegalEntityRUC`.
## Enlaces Relacionados
[1] Comunicación SRI (Comunicado Registro Único de Contribuyentes -
RUC):
https://minka.gob.ec/mintel/ge/rutr/gobec_forms/uploads/1ef593d96275a7c07987c5bc043ce654/comunicado_cambio_generacion_RUC.pdf
## Pruebas
* Las pruebas existentes pasan.
* Se han añadido y pasan nuevas pruebas que cubren específicamente la
lógica actualizada para los RUCs de personas jurídicas y la función
`isLegalEntityRUC`.1 parent 0391b29 commit 638edf5
File tree
5 files changed
+48
-25
lines changed- src
- lib
- tests
5 files changed
+48
-25
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
42 | 43 | | |
43 | 44 | | |
44 | 45 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
9 | 20 | | |
10 | | - | |
| 21 | + | |
11 | 22 | | |
12 | 23 | | |
13 | 24 | | |
| |||
55 | 66 | | |
56 | 67 | | |
57 | 68 | | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
| 69 | + | |
| 70 | + | |
73 | 71 | | |
74 | 72 | | |
75 | 73 | | |
| |||
90 | 88 | | |
91 | 89 | | |
92 | 90 | | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
3 | 4 | | |
4 | 5 | | |
5 | 6 | | |
| |||
75 | 76 | | |
76 | 77 | | |
77 | 78 | | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
78 | 91 | | |
79 | 92 | | |
80 | 93 | | |
| |||
0 commit comments