@albertomarturelo/sii-core 0.18.1 → 0.19.1
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/CHANGELOG.md +42 -0
- package/dist/config/config.d.ts +4 -0
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +4 -0
- package/dist/config/config.js.map +1 -1
- package/dist/errors/errors.d.ts +6 -0
- package/dist/errors/errors.d.ts.map +1 -1
- package/dist/errors/errors.js +6 -0
- package/dist/errors/errors.js.map +1 -1
- package/dist/format/text.d.ts +9 -0
- package/dist/format/text.d.ts.map +1 -0
- package/dist/format/text.js +27 -0
- package/dist/format/text.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/portal/bienes-raices-misii.d.ts +46 -0
- package/dist/portal/bienes-raices-misii.d.ts.map +1 -0
- package/dist/portal/bienes-raices-misii.js +175 -0
- package/dist/portal/bienes-raices-misii.js.map +1 -0
- package/dist/portal/bte.d.ts +3 -0
- package/dist/portal/bte.d.ts.map +1 -1
- package/dist/portal/bte.js +2 -0
- package/dist/portal/bte.js.map +1 -1
- package/dist/portal/dte-mipyme.d.ts +0 -8
- package/dist/portal/dte-mipyme.d.ts.map +1 -1
- package/dist/portal/dte-mipyme.js +1 -24
- package/dist/portal/dte-mipyme.js.map +1 -1
- package/dist/portal/f22/declaraciones.d.ts.map +1 -1
- package/dist/portal/f22/declaraciones.js +3 -2
- package/dist/portal/f22/declaraciones.js.map +1 -1
- package/dist/portal/f22/historial.d.ts.map +1 -1
- package/dist/portal/f22/historial.js +3 -1
- package/dist/portal/f22/historial.js.map +1 -1
- package/dist/portal/f22/observaciones.d.ts.map +1 -1
- package/dist/portal/f22/observaciones.js +2 -1
- package/dist/portal/f22/observaciones.js.map +1 -1
- package/dist/portal/f22/terceros.d.ts.map +1 -1
- package/dist/portal/f22/terceros.js +6 -19
- package/dist/portal/f22/terceros.js.map +1 -1
- package/dist/portal/f29-rfi-form.d.ts +7 -1
- package/dist/portal/f29-rfi-form.d.ts.map +1 -1
- package/dist/portal/f29-rfi-form.js +95 -28
- package/dist/portal/f29-rfi-form.js.map +1 -1
- package/dist/portal/f29-rfi.d.ts +12 -6
- package/dist/portal/f29-rfi.d.ts.map +1 -1
- package/dist/portal/f29-rfi.js +62 -19
- package/dist/portal/f29-rfi.js.map +1 -1
- package/dist/portal/f29.d.ts +7 -0
- package/dist/portal/f29.d.ts.map +1 -1
- package/dist/portal/f29.js +19 -0
- package/dist/portal/f29.js.map +1 -1
- package/dist/tasks/alertas.d.ts +11 -3
- package/dist/tasks/alertas.d.ts.map +1 -1
- package/dist/tasks/alertas.js +82 -6
- package/dist/tasks/alertas.js.map +1 -1
- package/dist/tasks/bienes-raices.d.ts +13 -0
- package/dist/tasks/bienes-raices.d.ts.map +1 -0
- package/dist/tasks/bienes-raices.js +39 -0
- package/dist/tasks/bienes-raices.js.map +1 -0
- package/dist/tasks/f29-submit.d.ts +20 -8
- package/dist/tasks/f29-submit.d.ts.map +1 -1
- package/dist/tasks/f29-submit.js +97 -19
- package/dist/tasks/f29-submit.js.map +1 -1
- package/package.json +1 -1
package/dist/tasks/alertas.js
CHANGED
|
@@ -7,17 +7,21 @@ import { assertOperatingSelf, withSession } from '../auth/index.js';
|
|
|
7
7
|
import { recordAudit } from '../audit/index.js';
|
|
8
8
|
import { Anio, Periodo } from '../periodo/index.js';
|
|
9
9
|
import { Rut } from '../rut/index.js';
|
|
10
|
-
import { NotAuthenticatedError, RateLimitError, SiiError, ValidationError, classifyError, } from '../errors/index.js';
|
|
10
|
+
import { BteError, NotAuthenticatedError, RateLimitError, SiiError, ValidationError, classifyError, } from '../errors/index.js';
|
|
11
11
|
import { DEFAULT_SETTINGS, HOSTS } from '../config/index.js';
|
|
12
12
|
import { parseDatosCntrNow } from '../auth/datos-cntr.js';
|
|
13
13
|
import { fetchF22Declaraciones, fetchF22Observaciones, pickVigenteFolio, } from '../portal/f22/index.js';
|
|
14
14
|
import { fetchF29Estado } from '../portal/f29.js';
|
|
15
15
|
import { fetchPeticiones } from '../portal/peticiones.js';
|
|
16
|
-
|
|
16
|
+
import { fetchPredios } from '../portal/bienes-raices-misii.js';
|
|
17
|
+
import { fetchBteMensual } from '../portal/bte.js';
|
|
18
|
+
export const FUENTES_ALERTAS = ['f22', 'f29', 'peticiones', 'bienes_raices'];
|
|
17
19
|
/** F22: años tributarios read, the current one first (3 ⇒ the prescription window). */
|
|
18
20
|
const F22_ANIOS = 3;
|
|
19
21
|
/** F29: períodos read, ending at the previous month (the current one is not due yet). */
|
|
20
22
|
const F29_PERIODOS = 12;
|
|
23
|
+
/** Bienes raíces: a vigente cuota due within this many days is « por vencer » (ADR-032). */
|
|
24
|
+
const CONTRIBUCIONES_DIAS = 30;
|
|
21
25
|
const pacingMs = () => Math.round(1000 / DEFAULT_SETTINGS.rateLimitRps);
|
|
22
26
|
const pad = (n) => String(n).padStart(2, '0');
|
|
23
27
|
const isoDate = (d) => `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}`;
|
|
@@ -90,6 +94,8 @@ function mesDeAtributo(s) {
|
|
|
90
94
|
return m ? Periodo.of(Number(m[2]), Number(m[1])) : null;
|
|
91
95
|
}
|
|
92
96
|
const antes = (a, b) => a.year < b.year || (a.year === b.year && a.month < b.month);
|
|
97
|
+
/** An atributo still in force: no end date, not deleted. */
|
|
98
|
+
const activo = (a) => a.fechaTermino == null && a.eliminado == null;
|
|
93
99
|
/** The month the account entered an observed primera-categoría regime, and the inicio de
|
|
94
100
|
* actividades, whichever is later: an account that moved from honorarios into the regime owed
|
|
95
101
|
* nothing before it (#209 review). Either one unknown ⇒ null. */
|
|
@@ -97,9 +103,7 @@ function obligadoDesde(inicio, atributos) {
|
|
|
97
103
|
if (!inicio)
|
|
98
104
|
return null; // no lower bound: "due every month" would reach before the account
|
|
99
105
|
const desde = atributos
|
|
100
|
-
.filter((a) => REGIMEN_PRIMERA_CATEGORIA.has(a.atrCodigo?.trim() ?? '') &&
|
|
101
|
-
a.fechaTermino == null &&
|
|
102
|
-
a.eliminado == null)
|
|
106
|
+
.filter((a) => REGIMEN_PRIMERA_CATEGORIA.has(a.atrCodigo?.trim() ?? '') && activo(a))
|
|
103
107
|
.map((a) => mesDeAtributo(a.fechaInicio));
|
|
104
108
|
const meses = desde.filter((p) => p !== null);
|
|
105
109
|
// An active regime whose start does not parse is not proof of when the obligation began.
|
|
@@ -108,6 +112,26 @@ function obligadoDesde(inicio, atributos) {
|
|
|
108
112
|
const regimen = meses.reduce((a, b) => (antes(a, b) ? a : b));
|
|
109
113
|
return antes(regimen, inicio) ? inicio : regimen;
|
|
110
114
|
}
|
|
115
|
+
// Segunda categoría owes no F29 « sin movimiento » (preguntas_frecuentes/impuestos_mensuales/
|
|
116
|
+
// 001_130_1154.htm, read 2026-10-29); it owes the F29 of a month whose boletas carry retención del
|
|
117
|
+
// emisor (ayudas/nuevos_contribuyentes/boleta-honorarios.html, read 2026-10-29). SII registers the
|
|
118
|
+
// category in the `SGPE` atributo's `valor`, observed 2026-10-23 on a honorarios-only persona as
|
|
119
|
+
// « Tipo contribuyente=1 y Categoría Contribuyente = 2 ». Only that exact category counts: « = 1 y
|
|
120
|
+
// 2 » or any other text is unknown and keeps the activity rule. `valor` is read for SGPE only:
|
|
121
|
+
// under NOTI it is the email. SII's own `valor` carries three U+001A where the « í » goes, and two
|
|
122
|
+
// spaces before the « y » (observed 2026-10-29, live #245). That is in SII's body, not a decoding
|
|
123
|
+
// artefact: a TextDecoder never yields U+001A (an undecodable byte becomes U+FFFD, #224). So
|
|
124
|
+
// whatever stands for the accent is accepted; the anchor on « = 2 » keeps « = 1 y 2 » out.
|
|
125
|
+
const SEGUNDA_CATEGORIA = /Categor\S*a\s+Contribuyente\s*=\s*2\s*$/i;
|
|
126
|
+
function segundaCategoria(atributos) {
|
|
127
|
+
const activos = atributos.filter(activo);
|
|
128
|
+
if (activos.some((a) => REGIMEN_PRIMERA_CATEGORIA.has(a.atrCodigo?.trim() ?? '')))
|
|
129
|
+
return false;
|
|
130
|
+
return activos.some((a) => {
|
|
131
|
+
const valor = a['valor'];
|
|
132
|
+
return (a.atrCodigo?.trim() === 'SGPE' && typeof valor === 'string' && SEGUNDA_CATEGORIA.test(valor));
|
|
133
|
+
});
|
|
134
|
+
}
|
|
111
135
|
async function leerRegimen(session) {
|
|
112
136
|
// A dead jar bounces here and the seam raises SessionExpiredError (aborts the read). A live
|
|
113
137
|
// page without the object only loses the bounds: no window, and the later day-20 deadline.
|
|
@@ -118,6 +142,7 @@ async function leerRegimen(session) {
|
|
|
118
142
|
return {
|
|
119
143
|
inicio,
|
|
120
144
|
obligadoDesde: obligadoDesde(inicio, datos?.atributos ?? []),
|
|
145
|
+
segundaCategoria: segundaCategoria(datos?.atributos ?? []),
|
|
121
146
|
termino: mesDe(c?.fechaTerminoGiro),
|
|
122
147
|
// `"S"` observed. A day-12 taxpayer says "N"; an unknown value keeps the 20th, the later of
|
|
123
148
|
// the two, so the alerta is never early.
|
|
@@ -232,6 +257,27 @@ async function leerF29(runtime, session, rut, push) {
|
|
|
232
257
|
},
|
|
233
258
|
});
|
|
234
259
|
}
|
|
260
|
+
// Segunda categoría: a month is due only when its issued boletas carry retención del emisor
|
|
261
|
+
// (#245). The activity rule would get it wrong both ways: one such month filed made every other
|
|
262
|
+
// month « sin declarar ». SII's month total leaves anuladas out, so page 0 is enough.
|
|
263
|
+
if (regimen.segundaCategoria) {
|
|
264
|
+
// With no known inicio there is no lower bound: a month before the account issued any boleta
|
|
265
|
+
// may answer BTE's « no informe » and end the source as an error (not observed; noted, #254).
|
|
266
|
+
let debido = false;
|
|
267
|
+
for (const { periodo, alerta } of sinDeclarar) {
|
|
268
|
+
await runtime.clock.sleep(pacingMs());
|
|
269
|
+
const { totales } = await fetchBteMensual(session, { rut, periodo, side: 'EMITIDAS' }, () => runtime.clock.sleep(pacingMs()), { soloTotales: true });
|
|
270
|
+
// Unknown is never "not obligated": a missing total ends the source as an error.
|
|
271
|
+
if (totales.retencionEmisor === null) {
|
|
272
|
+
throw new BteError(`El SII no entregó la suma de retención del emisor de las boletas de ${periodo.formatted}.`);
|
|
273
|
+
}
|
|
274
|
+
if (totales.retencionEmisor > 0) {
|
|
275
|
+
debido = true;
|
|
276
|
+
push(alerta);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
return declarante || debido ? 'ok' : 'no_declarante';
|
|
280
|
+
}
|
|
235
281
|
// An account with no Vigente F29 in the window does not file F29 (a persona without giro):
|
|
236
282
|
// twelve "sin declarar" would be noise, not alertas (ADR-030). Unless SII holds it in a
|
|
237
283
|
// primera-categoría regime: then a new business that never filed is exactly the case (#208),
|
|
@@ -263,6 +309,34 @@ async function leerPeticiones(session, rut, push) {
|
|
|
263
309
|
}
|
|
264
310
|
return 'ok';
|
|
265
311
|
}
|
|
312
|
+
async function leerBienesRaices(runtime, session, push) {
|
|
313
|
+
const now = runtime.clock.now();
|
|
314
|
+
const limite = isoDate(new Date(now.getFullYear(), now.getMonth(), now.getDate() + CONTRIBUCIONES_DIAS));
|
|
315
|
+
for (const p of await fetchPredios(session)) {
|
|
316
|
+
for (const c of p.cuotas) {
|
|
317
|
+
// A vigente cuota whose date did not parse is shown, not hidden (ADR-032).
|
|
318
|
+
const porVencer = !c.vencida && (c.fechaVencimiento === null || c.fechaVencimiento <= limite);
|
|
319
|
+
if (!c.vencida && !porVencer)
|
|
320
|
+
continue;
|
|
321
|
+
const estado = c.vencida ? 'vencida' : 'por_vencer';
|
|
322
|
+
push({
|
|
323
|
+
...base('bienes_raices'),
|
|
324
|
+
id: `bienes_raices:${p.comuna.codigo}-${p.manzana}-${p.predio}:` +
|
|
325
|
+
`${c.anio ?? 'null'}-${c.semestre ?? 'null'}-${c.cuota ?? 'null'}:${estado}`,
|
|
326
|
+
tipo: c.vencida ? 'contribuciones_vencida' : 'contribuciones_por_vencer',
|
|
327
|
+
estado: c.condicion,
|
|
328
|
+
fecha: c.fechaVencimiento,
|
|
329
|
+
contribucion: {
|
|
330
|
+
rol: p.rol,
|
|
331
|
+
comuna: p.comuna.nombre,
|
|
332
|
+
cuota: `${c.anio ?? '?'}-${c.cuota ?? '?'}`,
|
|
333
|
+
monto: c.totalPago,
|
|
334
|
+
},
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
return 'ok';
|
|
339
|
+
}
|
|
266
340
|
/** Read the alertas of the session principal from the requested sources (ADR-030). */
|
|
267
341
|
export async function alertas(runtime, args = {}) {
|
|
268
342
|
const fuentes = parseFuentes(args.fuentes); // fail fast — no session opened
|
|
@@ -292,7 +366,9 @@ export async function alertas(runtime, args = {}) {
|
|
|
292
366
|
? await leerF22(runtime, session, rut, push)
|
|
293
367
|
: origen === 'f29'
|
|
294
368
|
? await leerF29(runtime, session, rut, push)
|
|
295
|
-
:
|
|
369
|
+
: origen === 'peticiones'
|
|
370
|
+
? await leerPeticiones(session, rut, push)
|
|
371
|
+
: await leerBienesRaices(runtime, session, push);
|
|
296
372
|
estados.push({ origen, estado });
|
|
297
373
|
}
|
|
298
374
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alertas.js","sourceRoot":"","sources":["../../src/tasks/alertas.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"alertas.js","sourceRoot":"","sources":["../../src/tasks/alertas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type Predio } from '../portal/bienes-raices-misii.js';
|
|
2
|
+
import type { Runtime } from '../seams/index.js';
|
|
3
|
+
export type { CuotaContribucion, Predio } from '../portal/bienes-raices-misii.js';
|
|
4
|
+
export interface BienesRaicesResult {
|
|
5
|
+
readonly rut: string;
|
|
6
|
+
readonly predios: readonly Predio[];
|
|
7
|
+
/** Totals over every predio, as Mi SII's table counts them. */
|
|
8
|
+
readonly cuotasVencidas: number;
|
|
9
|
+
readonly cuotasVigentes: number;
|
|
10
|
+
}
|
|
11
|
+
/** The predios whose contribuciones the session's RUT pays, with their unpaid cuotas. */
|
|
12
|
+
export declare function bienesRaicesList(runtime: Runtime): Promise<BienesRaicesResult>;
|
|
13
|
+
//# sourceMappingURL=bienes-raices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bienes-raices.d.ts","sourceRoot":"","sources":["../../src/tasks/bienes-raices.ts"],"names":[],"mappings":"AAOA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,YAAY,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAElF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,+DAA+D;IAC/D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,yFAAyF;AACzF,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAiCpF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// Public bienes-raíces task the surfaces call (ADR-003 / ADR-032). Wraps the Mi SII facade in
|
|
2
|
+
// `withSession` and writes ONE audit receipt. SESSION-KEYED (ADR-005): Mi SII answers for the
|
|
3
|
+
// principal, so the task takes no `--rut` and refuses a representing pointer up front.
|
|
4
|
+
// The audit records the read only (rut + counts), never a rol, an address or an amount (ADR-006).
|
|
5
|
+
import { assertOperatingSelf, withSession } from '../auth/index.js';
|
|
6
|
+
import { recordAudit } from '../audit/index.js';
|
|
7
|
+
import { BienesRaicesError } from '../errors/index.js';
|
|
8
|
+
import { fetchPredios } from '../portal/bienes-raices-misii.js';
|
|
9
|
+
/** The predios whose contribuciones the session's RUT pays, with their unpaid cuotas. */
|
|
10
|
+
export async function bienesRaicesList(runtime) {
|
|
11
|
+
await assertOperatingSelf(runtime, (empresa) => new BienesRaicesError(`Bienes raíces es session-keyed: Mi SII responde por el titular de la sesión, no por el ` +
|
|
12
|
+
`RUT operado (${empresa}). Para los de esa empresa, inicia sesión como ella ` +
|
|
13
|
+
'(`sii auth logout` y luego `sii auth login`).'));
|
|
14
|
+
const start = runtime.clock.now().getTime();
|
|
15
|
+
try {
|
|
16
|
+
const result = await withSession(runtime, async (session, ctx) => {
|
|
17
|
+
const predios = await fetchPredios(session);
|
|
18
|
+
return {
|
|
19
|
+
rut: ctx.sessionRut,
|
|
20
|
+
predios,
|
|
21
|
+
cuotasVencidas: predios.reduce((n, p) => n + p.cuotasVencidas, 0),
|
|
22
|
+
cuotasVigentes: predios.reduce((n, p) => n + p.cuotasVigentes, 0),
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
recordAudit(runtime, {
|
|
26
|
+
action: 'bienes_raices_list',
|
|
27
|
+
result: 'ok',
|
|
28
|
+
rut: result.rut,
|
|
29
|
+
count: result.predios.length,
|
|
30
|
+
durationMs: runtime.clock.now().getTime() - start,
|
|
31
|
+
});
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
catch (e) {
|
|
35
|
+
recordAudit(runtime, { action: 'bienes_raices_list', result: 'failed' });
|
|
36
|
+
throw e;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=bienes-raices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bienes-raices.js","sourceRoot":"","sources":["../../src/tasks/bienes-raices.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,8FAA8F;AAC9F,uFAAuF;AACvF,kGAAkG;AAClG,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAe,MAAM,kCAAkC,CAAC;AAa7E,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAgB;IACrD,MAAM,mBAAmB,CACvB,OAAO,EACP,CAAC,OAAO,EAAE,EAAE,CACV,IAAI,iBAAiB,CACnB,yFAAyF;QACvF,gBAAgB,OAAO,sDAAsD;QAC7E,+CAA+C,CAClD,CACJ,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;YAC/D,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;YAC5C,OAAO;gBACL,GAAG,EAAE,GAAG,CAAC,UAAU;gBACnB,OAAO;gBACP,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;gBACjE,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;aAClE,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,WAAW,CAAC,OAAO,EAAE;YACnB,MAAM,EAAE,oBAAoB;YAC5B,MAAM,EAAE,IAAI;YACZ,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;YAC5B,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK;SAClD,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,WAAW,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Periodo } from '../periodo/index.js';
|
|
2
2
|
import { Rut } from '../rut/index.js';
|
|
3
3
|
import { type F29Estado, type F29Propuesta } from '../portal/f29.js';
|
|
4
|
-
import { type F29BorradorValidado, type F29Desacuerdo } from '../portal/f29-rfi.js';
|
|
4
|
+
import { type F29BorradorValidado, type F29Desacuerdo, type F29Ruta } from '../portal/f29-rfi.js';
|
|
5
5
|
import type { Gwt7Node } from '../portal/gwt.js';
|
|
6
6
|
import { type F29Grupo } from '../portal/f29-codigos.js';
|
|
7
7
|
import type { PortalSession, Runtime } from '../seams/index.js';
|
|
@@ -21,8 +21,9 @@ export interface F29SubmitPreview {
|
|
|
21
21
|
readonly desacuerdos: readonly F29Desacuerdo[];
|
|
22
22
|
/** True when nothing blocks the submit. */
|
|
23
23
|
readonly listoParaPresentar: boolean;
|
|
24
|
-
/**
|
|
25
|
-
|
|
24
|
+
/** True on the propuesta route, whose handoff leaves a borrador "Guardada" at SII
|
|
25
|
+
* (non-filing). The sin movimiento route saves nothing (run3, #221). */
|
|
26
|
+
readonly borradorGuardado: boolean;
|
|
26
27
|
}
|
|
27
28
|
/** A filed declaración. `pagoUrl` stays null until SII's payment link is observed (ADR-029
|
|
28
29
|
* amendment); when `total` > 0 the user pays at SII themselves. */
|
|
@@ -45,16 +46,21 @@ export interface F29SubmitChain {
|
|
|
45
46
|
rut: Rut;
|
|
46
47
|
periodo: Periodo;
|
|
47
48
|
}): Promise<F29Propuesta>;
|
|
48
|
-
/** The
|
|
49
|
+
/** The handoff of `ruta`, the form app and SII's validation. The propuesta route writes a
|
|
50
|
+
* borrador "Guardada". */
|
|
49
51
|
validar(session: PortalSession, p: {
|
|
50
52
|
rut: Rut;
|
|
51
53
|
periodo: Periodo;
|
|
52
54
|
hoy: Date;
|
|
55
|
+
ruta: F29Ruta;
|
|
53
56
|
}): Promise<F29BorradorValidado>;
|
|
54
57
|
/** Saves the validated borrador; does not file. */
|
|
55
|
-
guardar(session: PortalSession, borrador: Gwt7Node): Promise<Gwt7Node>;
|
|
58
|
+
guardar(session: PortalSession, borrador: Gwt7Node, ruta: F29Ruta): Promise<Gwt7Node>;
|
|
56
59
|
/** FILES the declaración. */
|
|
57
60
|
inyectar(session: PortalSession, guardado: Gwt7Node): Promise<void>;
|
|
61
|
+
/** The month of the account's inicio de actividades (Mi SII `DatosCntrNow`), null when SII
|
|
62
|
+
* does not say. Read only on the sin movimiento route, for its first month. */
|
|
63
|
+
inicioActividades(session: PortalSession): Promise<Periodo | null>;
|
|
58
64
|
}
|
|
59
65
|
export declare const SII_F29_SUBMIT: F29SubmitChain;
|
|
60
66
|
/** The two tasks over a given chain. Tests pass a fake one; the barrel exports only the pair
|
|
@@ -62,22 +68,28 @@ export declare const SII_F29_SUBMIT: F29SubmitChain;
|
|
|
62
68
|
export declare function f29SubmitTasks(chain: F29SubmitChain): {
|
|
63
69
|
f29SubmitPreview: (runtime: Runtime, args: {
|
|
64
70
|
periodo: string;
|
|
71
|
+
sinMovimiento?: boolean;
|
|
65
72
|
}) => Promise<F29SubmitPreview>;
|
|
66
73
|
f29Submit: (runtime: Runtime, args: {
|
|
67
74
|
periodo: string;
|
|
68
75
|
total: number | string;
|
|
76
|
+
sinMovimiento?: boolean;
|
|
69
77
|
}) => Promise<F29SubmitResult>;
|
|
70
78
|
};
|
|
71
79
|
/** The preview: SII's propuesta, what SII's formulas compute, SII's validated total and every
|
|
72
|
-
* disagreement. Files nothing; leaves a borrador "Guardada" at SII.
|
|
80
|
+
* disagreement. Files nothing; the propuesta route leaves a borrador "Guardada" at SII.
|
|
81
|
+
* `sinMovimiento` takes SII's « Declarar sin movimiento » route (ADR-029 amendment, #221). */
|
|
73
82
|
export declare function f29SubmitPreview(runtime: Runtime, args: {
|
|
74
83
|
periodo: string;
|
|
84
|
+
sinMovimiento?: boolean;
|
|
75
85
|
}): Promise<F29SubmitPreview>;
|
|
76
86
|
/** FILE the declaración. Refuses, without saving or filing, when SII's total today is not
|
|
77
|
-
* `total`, or when the borrador SII validated disagrees with the propuesta
|
|
78
|
-
*
|
|
87
|
+
* `total`, or when the borrador SII validated disagrees with the propuesta (with
|
|
88
|
+
* `sinMovimiento`: when it declares anything). Then saves and files once. If the filing call
|
|
89
|
+
* fails, SII's state decides what happened; it is never resent. */
|
|
79
90
|
export declare function f29Submit(runtime: Runtime, args: {
|
|
80
91
|
periodo: string;
|
|
81
92
|
total: number | string;
|
|
93
|
+
sinMovimiento?: boolean;
|
|
82
94
|
}): Promise<F29SubmitResult>;
|
|
83
95
|
//# sourceMappingURL=f29-submit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"f29-submit.d.ts","sourceRoot":"","sources":["../../src/tasks/f29-submit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"f29-submit.d.ts","sourceRoot":"","sources":["../../src/tasks/f29-submit.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks/f29-submit.js
CHANGED
|
@@ -9,26 +9,42 @@
|
|
|
9
9
|
// borrador), refuses on a total that is not the confirmed one or on any disagreement, then
|
|
10
10
|
// saves (guardarBorradorRfiValidado) and files (inyectarBorradorRfi) once, never retried.
|
|
11
11
|
//
|
|
12
|
-
//
|
|
12
|
+
// `sinMovimiento` (#221, ADR-029 amendment 2026-10-29) takes SII's « Declarar sin movimiento »
|
|
13
|
+
// route instead: no propuesta required (one refuses), every código SII validates must be zero.
|
|
14
|
+
//
|
|
15
|
+
// The audit records the RUT, the período, the route, the duration and the folio. Never amounts or
|
|
16
|
+
// códigos.
|
|
13
17
|
import { withSession } from '../auth/index.js';
|
|
18
|
+
import { parseDatosCntrNow } from '../auth/datos-cntr.js';
|
|
19
|
+
import { HOSTS } from '../config/index.js';
|
|
14
20
|
import { recordAudit } from '../audit/index.js';
|
|
15
21
|
import { F29Error, F29RechazoError, ValidationError } from '../errors/index.js';
|
|
16
22
|
import { Periodo } from '../periodo/index.js';
|
|
17
23
|
import { Rut } from '../rut/index.js';
|
|
18
|
-
import { fetchF29Estado, fetchF29Propuesta, iniciarFlujoPropuestaF29, } from '../portal/f29.js';
|
|
24
|
+
import { fetchF29Estado, fetchF29Propuesta, iniciarFlujoPropuestaF29, iniciarFlujoSinMovimientoF29, } from '../portal/f29.js';
|
|
19
25
|
import { abrirFormularioF29, guardarBorradorF29, inyectarBorradorF29, recargosDeclarados, rfiCaller, validarBorradorF29, verificarBorradorF29, } from '../portal/f29-rfi.js';
|
|
26
|
+
import { mesActual } from '../portal/f29-rfi-form.js';
|
|
20
27
|
import { F29_CODIGOS, glosaF29 } from '../portal/f29-codigos.js';
|
|
21
28
|
import { agrupar, assertSelfOperating } from './f29.js';
|
|
22
29
|
export const SII_F29_SUBMIT = {
|
|
23
30
|
estado: fetchF29Estado,
|
|
24
31
|
propuesta: fetchF29Propuesta,
|
|
25
32
|
async validar(session, p) {
|
|
26
|
-
const url =
|
|
33
|
+
const url = p.ruta === 'sinMovimiento'
|
|
34
|
+
? await iniciarFlujoSinMovimientoF29(session, p)
|
|
35
|
+
: await iniciarFlujoPropuestaF29(session, p);
|
|
27
36
|
await abrirFormularioF29(session, url);
|
|
28
37
|
return validarBorradorF29(rfiCaller(session), p);
|
|
29
38
|
},
|
|
30
|
-
guardar: (session, borrador) => guardarBorradorF29(rfiCaller(session), borrador),
|
|
39
|
+
guardar: (session, borrador, ruta) => guardarBorradorF29(rfiCaller(session), borrador, ruta),
|
|
31
40
|
inyectar: (session, guardado) => inyectarBorradorF29(rfiCaller(session), guardado),
|
|
41
|
+
async inicioActividades(session) {
|
|
42
|
+
// The same read `alertas` makes (ADR-030 / #195): `"2022-09-26…"` (observed) ⇒ that month.
|
|
43
|
+
const { body } = await session.requestText(HOSTS.miSii, { method: 'GET' });
|
|
44
|
+
const s = parseDatosCntrNow(body)?.contribuyente?.fechaInicioActividades;
|
|
45
|
+
const m = s ? /^(\d{4})-(\d{2})-\d{2}/.exec(s) : null;
|
|
46
|
+
return m ? Periodo.of(Number(m[1]), Number(m[2])) : null;
|
|
47
|
+
},
|
|
32
48
|
};
|
|
33
49
|
function audit(runtime, action, result, extra) {
|
|
34
50
|
recordAudit(runtime, { action, result, ...extra });
|
|
@@ -40,7 +56,13 @@ const esVigente = (d) => d.estadoId === 1 || d.estado?.trim().toLowerCase() ===
|
|
|
40
56
|
class Rehusado extends F29Error {
|
|
41
57
|
}
|
|
42
58
|
/** The part both phases share, from fresh SII responses each time. */
|
|
43
|
-
async function preparar(chain, session, rut, periodo, hoy) {
|
|
59
|
+
async function preparar(chain, session, rut, periodo, hoy, ruta) {
|
|
60
|
+
if (ruta === 'sinMovimiento' && periodo.canonical >= mesActual(hoy)) {
|
|
61
|
+
// The customizado flow opens any período SII is asked for, this month's and future ones
|
|
62
|
+
// included, and nobody can assert that a month not yet over had no movement.
|
|
63
|
+
throw new Rehusado(`El período ${periodo.formatted} todavía no termina: un mes se declara sin movimiento ` +
|
|
64
|
+
'una vez terminado.');
|
|
65
|
+
}
|
|
44
66
|
const estado = await chain.estado(session, { rut, periodo });
|
|
45
67
|
const vigente = estado.declaraciones.find(esVigente);
|
|
46
68
|
if (vigente) {
|
|
@@ -48,13 +70,21 @@ async function preparar(chain, session, rut, periodo, hoy) {
|
|
|
48
70
|
`${vigente.folio ? ` (folio ${vigente.folio})` : ''}. Presentar otra sería una ` +
|
|
49
71
|
'rectificatoria, que `sii f29 submit` no hace.');
|
|
50
72
|
}
|
|
73
|
+
if (ruta === 'sinMovimiento')
|
|
74
|
+
await assertMesAnteriorPresentado(chain, session, rut, periodo);
|
|
51
75
|
const propuesta = await chain.propuesta(session, { rut, periodo });
|
|
52
|
-
if (!propuesta.tienePropuesta) {
|
|
76
|
+
if (ruta === 'propuesta' && !propuesta.tienePropuesta) {
|
|
53
77
|
throw new Rehusado(`SII no tiene una propuesta de F29 para ${periodo.formatted}, y \`sii f29 submit\` solo ` +
|
|
54
|
-
'presenta la propuesta de SII. Si el período no tuvo movimiento,
|
|
55
|
-
|
|
78
|
+
'presenta la propuesta de SII. Si el período no tuvo movimiento, decláralo con ' +
|
|
79
|
+
`\`sii f29 submit ${periodo.formatted} --sin-movimiento\`.`);
|
|
80
|
+
}
|
|
81
|
+
if (ruta === 'sinMovimiento' && propuesta.tienePropuesta) {
|
|
82
|
+
// The flag must never file zeros over SII's data.
|
|
83
|
+
throw new Rehusado(`SII tiene una propuesta de F29 para ${periodo.formatted}: el período tuvo movimiento ` +
|
|
84
|
+
'según SII, o arrastra el remanente de crédito del mes anterior (504). Revísala con ' +
|
|
85
|
+
`\`sii f29 submit ${periodo.formatted}\`, sin --sin-movimiento.`);
|
|
56
86
|
}
|
|
57
|
-
const validado = await chain.validar(session, { rut, periodo, hoy });
|
|
87
|
+
const validado = await chain.validar(session, { rut, periodo, hoy, ruta });
|
|
58
88
|
const recargos = recargosDeclarados(validado);
|
|
59
89
|
if (recargos.length > 0) {
|
|
60
90
|
throw new Rehusado(`SII agrega recargos a ${periodo.formatted} (códigos ${recargos.join(', ')}): el plazo ` +
|
|
@@ -63,8 +93,45 @@ async function preparar(chain, session, rut, periodo, hoy) {
|
|
|
63
93
|
'No se presentó nada.');
|
|
64
94
|
}
|
|
65
95
|
const desacuerdos = verificarBorradorF29(propuesta.codigos, validado.campos, validado.declarados, validado.textos);
|
|
96
|
+
if (ruta === 'sinMovimiento') {
|
|
97
|
+
// Stricter than the propuesta's rule: a sin movimiento declaración is all zeros, so any
|
|
98
|
+
// código SII declares with a value blocks it, even one a formula explains.
|
|
99
|
+
const listados = new Set(desacuerdos.map((d) => d.codigo));
|
|
100
|
+
for (const codigo of [...validado.declarados.keys(), ...validado.textos.keys()]) {
|
|
101
|
+
if (!listados.has(codigo))
|
|
102
|
+
desacuerdos.push({ codigo, motivo: 'sobra' });
|
|
103
|
+
}
|
|
104
|
+
desacuerdos.sort((a, b) => Number(a.codigo) - Number(b.codigo));
|
|
105
|
+
}
|
|
66
106
|
return { propuesta, validado, desacuerdos };
|
|
67
107
|
}
|
|
108
|
+
const mesAnterior = (p) => p.month === 1 ? Periodo.of(p.year - 1, 12) : Periodo.of(p.year, p.month - 1);
|
|
109
|
+
const antes = (a, b) => a.canonical < b.canonical;
|
|
110
|
+
/** A month sin movimiento follows the previous one (ADR-029 amendment, #221). SII's propuesta
|
|
111
|
+
* carries the previous month's remanente de crédito as 504 (run5/run6), and that refuses the
|
|
112
|
+
* flag; but SII only knows it once the previous month is filed. Declaring a month in zeros
|
|
113
|
+
* before then would drop the remanente the earlier month may leave. So the previous month
|
|
114
|
+
* must be Vigente, unless it falls before the account's inicio de actividades. */
|
|
115
|
+
async function assertMesAnteriorPresentado(chain, session, rut, periodo) {
|
|
116
|
+
const anterior = mesAnterior(periodo);
|
|
117
|
+
const estado = await chain.estado(session, { rut, periodo: anterior });
|
|
118
|
+
if (estado.declaraciones.some(esVigente))
|
|
119
|
+
return;
|
|
120
|
+
const inicio = await chain.inicioActividades(session);
|
|
121
|
+
if (inicio !== null && antes(periodo, inicio)) {
|
|
122
|
+
throw new Rehusado(`${periodo.formatted} es anterior al inicio de actividades de la cuenta: no hay F29 que ` +
|
|
123
|
+
'declarar.');
|
|
124
|
+
}
|
|
125
|
+
if (inicio !== null && antes(anterior, inicio))
|
|
126
|
+
return; // the first month of activity
|
|
127
|
+
throw new Rehusado(`El F29 de ${anterior.formatted} no está presentado. Un mes sin movimiento se declara ` +
|
|
128
|
+
`después del anterior: si ${anterior.formatted} deja remanente de crédito, ` +
|
|
129
|
+
`${periodo.formatted} lo arrastra (código 504) y ya no es sin movimiento. Presenta ` +
|
|
130
|
+
`${anterior.formatted} primero.`);
|
|
131
|
+
}
|
|
132
|
+
const rutaDe = (sinMovimiento) => sinMovimiento === true ? 'sinMovimiento' : 'propuesta';
|
|
133
|
+
/** The route in the audit receipt, only when it is not the default. */
|
|
134
|
+
const rutaAudit = (ruta) => ruta === 'sinMovimiento' ? { ruta } : {};
|
|
68
135
|
function calculados(validado) {
|
|
69
136
|
const out = [];
|
|
70
137
|
for (const c of validado.campos) {
|
|
@@ -81,6 +148,7 @@ function calculados(validado) {
|
|
|
81
148
|
const describirDesacuerdos = (ds) => ds.map((d) => `${d.codigo} (${d.motivo.replace(/_/g, ' ')})`).join(', ');
|
|
82
149
|
async function previewWith(chain, runtime, args) {
|
|
83
150
|
const periodo = Periodo.parse(args.periodo);
|
|
151
|
+
const ruta = rutaDe(args.sinMovimiento);
|
|
84
152
|
await assertSelfOperating(runtime);
|
|
85
153
|
const start = runtime.clock.now().getTime();
|
|
86
154
|
let rut;
|
|
@@ -88,7 +156,7 @@ async function previewWith(chain, runtime, args) {
|
|
|
88
156
|
const res = await withSession(runtime, async (session, ctx) => {
|
|
89
157
|
const principal = Rut.parse(ctx.sessionRut);
|
|
90
158
|
rut = principal.canonical;
|
|
91
|
-
const p = await preparar(chain, session, principal, periodo, runtime.clock.now());
|
|
159
|
+
const p = await preparar(chain, session, principal, periodo, runtime.clock.now(), ruta);
|
|
92
160
|
const preview = {
|
|
93
161
|
rut: principal.canonical,
|
|
94
162
|
periodo: periodo.formatted,
|
|
@@ -97,13 +165,14 @@ async function previewWith(chain, runtime, args) {
|
|
|
97
165
|
total: p.validado.total,
|
|
98
166
|
desacuerdos: p.desacuerdos,
|
|
99
167
|
listoParaPresentar: p.desacuerdos.length === 0,
|
|
100
|
-
borradorGuardado:
|
|
168
|
+
borradorGuardado: ruta === 'propuesta',
|
|
101
169
|
};
|
|
102
170
|
return preview;
|
|
103
171
|
});
|
|
104
172
|
audit(runtime, 'f29_submit_preview', 'ok', {
|
|
105
173
|
rut: res.rut,
|
|
106
174
|
period: periodo.canonical,
|
|
175
|
+
...rutaAudit(ruta),
|
|
107
176
|
durationMs: runtime.clock.now().getTime() - start,
|
|
108
177
|
});
|
|
109
178
|
return res;
|
|
@@ -112,6 +181,7 @@ async function previewWith(chain, runtime, args) {
|
|
|
112
181
|
audit(runtime, 'f29_submit_preview', e instanceof Rehusado ? 'refused' : 'failed', {
|
|
113
182
|
...(rut ? { rut } : {}),
|
|
114
183
|
period: periodo.canonical,
|
|
184
|
+
...rutaAudit(ruta),
|
|
115
185
|
durationMs: runtime.clock.now().getTime() - start,
|
|
116
186
|
});
|
|
117
187
|
throw e;
|
|
@@ -128,6 +198,7 @@ function parseTotal(total) {
|
|
|
128
198
|
async function submitWith(chain, runtime, args) {
|
|
129
199
|
const periodo = Periodo.parse(args.periodo);
|
|
130
200
|
const totalEcho = parseTotal(args.total);
|
|
201
|
+
const ruta = rutaDe(args.sinMovimiento);
|
|
131
202
|
await assertSelfOperating(runtime);
|
|
132
203
|
const start = runtime.clock.now().getTime();
|
|
133
204
|
let rut;
|
|
@@ -137,7 +208,7 @@ async function submitWith(chain, runtime, args) {
|
|
|
137
208
|
const res = await withSession(runtime, async (session, ctx) => {
|
|
138
209
|
const principal = Rut.parse(ctx.sessionRut);
|
|
139
210
|
rut = principal.canonical;
|
|
140
|
-
const p = await preparar(chain, session, principal, periodo, runtime.clock.now());
|
|
211
|
+
const p = await preparar(chain, session, principal, periodo, runtime.clock.now(), ruta);
|
|
141
212
|
if (p.validado.total !== totalEcho) {
|
|
142
213
|
result = 'refused';
|
|
143
214
|
throw new ValidationError(`El TOTAL A PAGAR que SII valida hoy para ${periodo.formatted} es ${p.validado.total}, ` +
|
|
@@ -145,11 +216,14 @@ async function submitWith(chain, runtime, args) {
|
|
|
145
216
|
'confirma con ese total. No se presentó nada.');
|
|
146
217
|
}
|
|
147
218
|
if (p.desacuerdos.length > 0) {
|
|
148
|
-
throw new Rehusado(
|
|
149
|
-
|
|
150
|
-
|
|
219
|
+
throw new Rehusado(ruta === 'sinMovimiento'
|
|
220
|
+
? `El borrador que SII validó para ${periodo.formatted} no es sin movimiento: declara ` +
|
|
221
|
+
`los códigos ${describirDesacuerdos(p.desacuerdos)}. No se presentó nada.`
|
|
222
|
+
: 'El borrador que SII validó no coincide con la propuesta en los códigos ' +
|
|
223
|
+
`${describirDesacuerdos(p.desacuerdos)}. No se presentó nada. Que SII diga ` +
|
|
224
|
+
'"no presenta errores" no basta: revisa la propuesta en SII.');
|
|
151
225
|
}
|
|
152
|
-
const guardado = await chain.guardar(session, p.validado.borrador);
|
|
226
|
+
const guardado = await chain.guardar(session, p.validado.borrador, ruta);
|
|
153
227
|
try {
|
|
154
228
|
await chain.inyectar(session, guardado);
|
|
155
229
|
}
|
|
@@ -185,6 +259,7 @@ async function submitWith(chain, runtime, args) {
|
|
|
185
259
|
audit(runtime, 'f29_submit', 'ok', {
|
|
186
260
|
rut: res.rut,
|
|
187
261
|
period: periodo.canonical,
|
|
262
|
+
...rutaAudit(ruta),
|
|
188
263
|
durationMs: runtime.clock.now().getTime() - start,
|
|
189
264
|
...(res.folio !== null ? { folio: res.folio } : {}),
|
|
190
265
|
});
|
|
@@ -194,6 +269,7 @@ async function submitWith(chain, runtime, args) {
|
|
|
194
269
|
audit(runtime, 'f29_submit', e instanceof Rehusado ? 'refused' : result, {
|
|
195
270
|
...(rut ? { rut } : {}),
|
|
196
271
|
period: periodo.canonical,
|
|
272
|
+
...rutaAudit(ruta),
|
|
197
273
|
durationMs: runtime.clock.now().getTime() - start,
|
|
198
274
|
...(folio !== null ? { folio } : {}),
|
|
199
275
|
});
|
|
@@ -209,13 +285,15 @@ export function f29SubmitTasks(chain) {
|
|
|
209
285
|
};
|
|
210
286
|
}
|
|
211
287
|
/** The preview: SII's propuesta, what SII's formulas compute, SII's validated total and every
|
|
212
|
-
* disagreement. Files nothing; leaves a borrador "Guardada" at SII.
|
|
288
|
+
* disagreement. Files nothing; the propuesta route leaves a borrador "Guardada" at SII.
|
|
289
|
+
* `sinMovimiento` takes SII's « Declarar sin movimiento » route (ADR-029 amendment, #221). */
|
|
213
290
|
export function f29SubmitPreview(runtime, args) {
|
|
214
291
|
return previewWith(SII_F29_SUBMIT, runtime, args);
|
|
215
292
|
}
|
|
216
293
|
/** FILE the declaración. Refuses, without saving or filing, when SII's total today is not
|
|
217
|
-
* `total`, or when the borrador SII validated disagrees with the propuesta
|
|
218
|
-
*
|
|
294
|
+
* `total`, or when the borrador SII validated disagrees with the propuesta (with
|
|
295
|
+
* `sinMovimiento`: when it declares anything). Then saves and files once. If the filing call
|
|
296
|
+
* fails, SII's state decides what happened; it is never resent. */
|
|
219
297
|
export function f29Submit(runtime, args) {
|
|
220
298
|
return submitWith(SII_F29_SUBMIT, runtime, args);
|
|
221
299
|
}
|