Files
Investidor-V2/tests/frontend/fixtures/iva-beverage-fixture.mjs
T

12 lines
3.3 KiB
JavaScript

import fs from 'node:fs';
import {newSalesOperation,recordSales,saveSalesBook,operationTreatments,salesBook} from '../../../resources/js/lib/iva-operations.ts';
import {newAcquisition,recordAcquisitions,saveAcquisitionBook,acquisitionBook,acquisitionCurrent} from '../../../resources/js/lib/iva-acquisitions.ts';
import {createAcquisitionRightLink} from '../../../resources/js/lib/iva-acquisition-right.ts';
import {newAcquisitionBC} from '../../../resources/js/lib/iva-acquisition-bc.ts';
import {newBeverageRestitution,beverageRestitutionSources,recordBeverageRestitution,saveBeverageRestitutionBook,beverageRestitutionBook,beverageRestitutionCurrent,beverageRestitutionReportRows} from '../../../resources/js/lib/iva-beverage-restitution.ts';
const seed=JSON.parse(fs.readFileSync(new URL('./iva-l3e-preserved.json',import.meta.url),'utf8')),older=JSON.parse(fs.readFileSync(new URL('./iva-l3ab-preserved.json',import.meta.url),'utf8'));
export function fixture(treatment='onboard_seagoing_ship'){const d=structuredClone(seed),s=JSON.parse(d.modelo_a_snapshot),old=JSON.parse(older.modelo_a_snapshot);for(const[k,v]of Object.entries(old))if(k!=='version')s[k]={...v,...s[k]};d.modelo_a_snapshot=JSON.stringify(s);d.context_opportunity='opportunity:375';const rule=operationTreatments.find(t=>t.id===treatment);const sale={...newSalesOperation('beverage-supply','2026-12','MZN'),description:'SYNTHETIC QA bebidas efectivamente postas a bordo',establishment:'Manica',amount:'100',basis:'net',treatment,supplyCategory:'beverages',confirmed:rule.conditions.map((_,i)=>i),evidence:'SYNTHETIC QA embarcação/avião,actividade,consumo e embarque'};d.modelo_a_snapshot=saveSalesBook(d,recordSales(d,{currency:'MZN',rows:[sale],periods:[{period:'2026-12',complete:true}]}));
const row={...newAcquisition('beverage-purchase','2026-12','MZN'),net:'100',vat:'16',gross:'116',description:'SYNTHETIC QA parcela bebidas',documentType:'invoice',documentRef:'SYNTHETIC QA facturaBE1',documentDate:'2026-12-10',documentLine:'1-bebidas',supplier:'SYNTHETIC QA fornecedor',supplierRegistered:'yes',legalDocument:'yes',held:'yes',domestic:'yes',allocation:'taxable_only',exclusion:'none',integrity:'yes',deductionLink:{...createAcquisitionRightLink(d,'beverage-supply'),scopeConfirmed:'yes',allocationRef:'SYNTHETIC QA linha1 exclusivamente para abastecimento identificado',noExcludedPayments:'yes'},bc:{...newAcquisitionBC(),expense:'beverages',beveragePath:'refund',reducedSupply:'no',evidence:'SYNTHETIC QA natureza bebidas,não tabaco/recepção',facts:{beverageSpecial:'yes',notCoastalFishing:'yes'}}};
const acq=recordAcquisitions(d,{currency:'MZN',rightVersion:'acquisition-operation-right/1',taxpayerRegistered:'yes',rows:[row],periods:[{period:'2026-12',complete:true,importsComplete:true,absent:['12','13']}]});d.modelo_a_snapshot=saveAcquisitionBook(d,acq);
const claim={...newBeverageRestitution('beverage-claim',beverageRestitutionSources(d)[0]??null,'SYNTHETIC QA entidade375'),exclusive:'yes',stage:'submitted',requestReference:'SYNTHETIC QA pedidoBE1',requestDate:'2026-12-15',decision:'partial',decisionReference:'SYNTHETIC QA decisãoBE1',decisionDate:'2026-12-20',decisionIssuer:'SYNTHETIC QA entidade emitente declarada',approvedAmount:'12',receipts:[{id:'rec1',reference:'SYNTHETIC QA recebimentoBE1',date:'2026-12-23',amount:'7'}]};return{d,b:{version:1,rows:[claim]},acq};}