Files
Investidor-V2/tests/frontend/helpers/irpc-international-case.mjs
T

62 lines
2.1 KiB
JavaScript

import { pecCase } from './irpc-pec-case.mjs';
import {
prepareInternationalBook,
newInternationalProof,
} from '../../../resources/js/lib/irpc-annual-settlement.ts';
import { newInternationalPosition } from '../../../resources/js/lib/irpc-international-credit.ts';
export function internationalCase(
tax = '10',
national = '8',
pec = '200',
ppc = '500',
rf = '0',
) {
const c = pecCase(pec, ppc, rf);
c.b = prepareInternationalBook(c.b);
const p = {
...newInternationalPosition('country-za'),
country: 'ZA',
qualificationCountry: 'ZA',
subjectNuit: c.b.subjectNuit,
year: c.b.year,
assessmentKey: c.b.assessmentKey,
incomeAmount: '100',
incomeIncluded: 'yes',
incomeReference:
'SYNTHETIC QA: foreign income included in valid 2026 base',
nationalLimit: national,
nationalLimitReference:
'SYNTHETIC QA: documented national fraction, no automatic derivation',
treaty: 'no',
treatyReference:
'SYNTHETIC QA assumption only; not an assertion about actual ZA convention applicability',
previousUse: {
state: 'known',
amount: '0',
reference: 'SYNTHETIC QA: actual previous credit use known zero',
},
payments: [
{
...newInternationalProof('foreign-tax'),
document: 'SYNTHETIC-FOREIGN-TAX-2026',
issuer: 'SYNTHETIC QA foreign authority',
date: '2026-09-30',
subjectNuit: c.b.subjectNuit,
year: c.b.year,
proofAmount: tax,
amount: tax,
effective: 'yes',
incomeTax: 'yes',
reference: 'SYNTHETIC QA paid MZN tax amount, no real receipt',
taxReference: 'SYNTHETIC QA income tax nature and entitlement',
},
],
};
Object.assign(c.b.internationalCredits, {
state: 'known',
reference: 'SYNTHETIC QA complete inventory for entity/year',
positions: [p],
});
return c;
}