@devlas/dte-sii 2.12.21 → 2.12.22
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.
- package/CafSolicitor.js +35 -1
- package/package.json +1 -1
package/CafSolicitor.js
CHANGED
|
@@ -244,6 +244,19 @@ class CafSolicitor {
|
|
|
244
244
|
this.session.saveSession(this.sessionPath);
|
|
245
245
|
}
|
|
246
246
|
|
|
247
|
+
// Rechazo duro por falta de Verificación de Actividades: debe detectarse ANTES de
|
|
248
|
+
// _processMultiStepFlow. La página de rechazo también contiene el string
|
|
249
|
+
// "of_solicita_folios_dcto" dentro del JS changeRegregion(), lo que hace que
|
|
250
|
+
// _processMultiStepFlow la confunda con el paso 2 normal y siga de largo el flujo
|
|
251
|
+
// multi-paso en vez de detectar el rechazo aquí, terminando en errorCode UNKNOWN.
|
|
252
|
+
if (response.body && response.body.includes('no registra Verificacion de Actividades')) {
|
|
253
|
+
return {
|
|
254
|
+
success: false,
|
|
255
|
+
errorCode: 'VERIFICACION_ACTIVIDADES_PENDIENTE',
|
|
256
|
+
error: 'SII: El RUT no tiene registrada la Verificación de Actividades para este tipo de documento. Solicítala en el sitio SII → Peticiones Administrativas → Verificación de actividad, o en oficinas del SII.',
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
|
|
247
260
|
// Procesar flujo multi-paso del SII
|
|
248
261
|
response = await this._processMultiStepFlow(response, rut, dv, tipoDte, cantidad, debugDir);
|
|
249
262
|
|
|
@@ -269,6 +282,16 @@ class CafSolicitor {
|
|
|
269
282
|
return { success: false, errorCode: 'TIMBRAJE_BLOQUEADO', error: 'SII: No se autoriza timbraje. Folios acumulados excesivos o situaciones tributarias pendientes. Revisa el portal SII → Factura Electrónica → Solicitud de Timbraje.' };
|
|
270
283
|
}
|
|
271
284
|
|
|
285
|
+
// Rechazo por Verificación de Actividades detectado en un paso posterior del flujo
|
|
286
|
+
// multi-paso (ver guarda defensiva en _processMultiStepFlow).
|
|
287
|
+
if (response.body && response.body.includes('no registra Verificacion de Actividades')) {
|
|
288
|
+
return {
|
|
289
|
+
success: false,
|
|
290
|
+
errorCode: 'VERIFICACION_ACTIVIDADES_PENDIENTE',
|
|
291
|
+
error: 'SII: El RUT no tiene registrada la Verificación de Actividades para este tipo de documento. Solicítala en el sitio SII → Peticiones Administrativas → Verificación de actividad, o en oficinas del SII.',
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
|
|
272
295
|
if (response.body && response.body.includes('Autenticaci')) {
|
|
273
296
|
return { success: false, errorCode: 'SESSION_EXPIRED', error: 'El SII devolvió página de autenticación' };
|
|
274
297
|
}
|
|
@@ -375,6 +398,13 @@ class CafSolicitor {
|
|
|
375
398
|
*/
|
|
376
399
|
async _processMultiStepFlow(response, rut, dv, tipoDte, cantidad, debugDir) {
|
|
377
400
|
let currentHtml = response.body || '';
|
|
401
|
+
|
|
402
|
+
// Defensivo: mismo rechazo por Verificación de Actividades puede aparecer si el SII
|
|
403
|
+
// lo entrega recién en un paso posterior en vez del response inicial de solicitar().
|
|
404
|
+
if (currentHtml.includes('no registra Verificacion de Actividades')) {
|
|
405
|
+
return response; // solicitar() detectará el rechazo en response.body
|
|
406
|
+
}
|
|
407
|
+
|
|
378
408
|
const realFormAction = SiiSession.extractFormAction(currentHtml);
|
|
379
409
|
|
|
380
410
|
// Si el <form> real ya apunta a of_confirma_folio, el SII preseleccionó
|
|
@@ -447,7 +477,11 @@ class CafSolicitor {
|
|
|
447
477
|
*/
|
|
448
478
|
async _processStep3(response, rut, dv, tipoDte, cantidad, debugDir) {
|
|
449
479
|
let currentHtml = response.body || '';
|
|
450
|
-
|
|
480
|
+
|
|
481
|
+
if (currentHtml.includes('no registra Verificacion de Actividades')) {
|
|
482
|
+
return response; // solicitar() detectará el rechazo en response.body
|
|
483
|
+
}
|
|
484
|
+
|
|
451
485
|
const formAction3 = SiiSession.extractFormAction(currentHtml) || '/cvc_cgi/dte/of_confirma_folio';
|
|
452
486
|
const inputs3 = SiiSession.extractInputValues(currentHtml);
|
|
453
487
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devlas/dte-sii",
|
|
3
|
-
"version": "2.12.
|
|
3
|
+
"version": "2.12.22",
|
|
4
4
|
"description": "Facturación y boletas electrónicas para el SII de Chile. Genera, timbra, firma y envía DTEs, libros electrónicos y automatiza la certificación.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "dte-sii.d.ts",
|