Files
Investidor-V2/tools/irpc-economic-association-fixtures.mjs
T
2026-11-10 13:23:11 +02:00

20 lines
1.6 KiB
JavaScript

import fs from 'node:fs';
import { economicCase } from '../tests/frontend/helpers/irpc-economic-case.mjs';
import { recordAnnual, saveAnnualBook, annualBook, calculateAnnual, annualHtml } from '../resources/js/lib/irpc-annual-settlement.ts';
import assert from 'node:assert/strict';
const out = new URL('../outputs/irpc-economic-association-20261110/', import.meta.url);
fs.mkdirSync(out, { recursive: true });
if (process.argv[2] === 'recovered') {
const d = JSON.parse(fs.readFileSync(new URL('recovered.json', out), 'utf8'));
const b = annualBook(d), m = b.result.model;
assert.deepEqual(calculateAnnual(d, b).economicCredit, m.economicCredit);
const html = annualHtml(d);assert.match(html, /IRPC-economic-association\/1/);
fs.writeFileSync(new URL('report.html', out), html);
fs.writeFileSync(new URL('verification.json', out), JSON.stringify({ synthetic: true, apiRecovered: true, currentRecalculation: true, html: true, association: m.economicCredit.rows[0].association, quota: m.economicCredit.rows[0].nationalLimit, balance: m.arithmeticBalance, activeChanged: false }, null, 2));
} else {
const c = economicCase();
Object.assign(c.b.economicCredits.rows[0], {kind:'association',association:{kind:'participation',effectivelyTaxed:'yes',reference:'SYNTHETIC QA contract and effective taxation of distributed income; documented adaptation64(4)'},nationalMethod:'proportional',nationalBasisReference:'SYNTHETIC current base includes100 plus nominal12'});
const b = recordAnnual(c.d, c.b, '2026-11-10T14:00:00+02:00');
fs.writeFileSync(new URL('fixture.json', out), JSON.stringify({ ...c.d, modelo_a_snapshot: saveAnnualBook(c.d, b) }));
}