UNPKG

@accounter/shaam6111-generator

Version:

Fully typed application that generates, parses, and validates SHAAM 6111 tax reports.

40 lines (39 loc) 2.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateHeaderRecord = generateHeaderRecord; const generation_utils_js_1 = require("../utils/generation-utils.js"); /** * Generates a fixed-width formatted string for a HeaderRecord. * @param header The HeaderRecord to format. * @returns A string formatted according to the SHAAM 6111 specification. */ function generateHeaderRecord(header) { return ((0, generation_utils_js_1.padOrTrim)(header.taxFileNumber, 9) + (0, generation_utils_js_1.padOrTrim)(header.taxYear, 4) + (0, generation_utils_js_1.padOrTrim)(header.idNumber, 9) + (0, generation_utils_js_1.padOrTrim)(header.vatFileNumber ?? '', 9) + (0, generation_utils_js_1.padOrTrim)(header.withholdingTaxFileNumber ?? '', 9) + (0, generation_utils_js_1.padOrTrim)(header.industryCode, 4) + (0, generation_utils_js_1.padOrTrim)(header.businessDescription ?? '', 50, ' ', false) + (0, generation_utils_js_1.padOrTrim)(header.businessType.toString(), 2, '0') + (0, generation_utils_js_1.padOrTrim)(header.reportingMethod.toString(), 2, '0') + (0, generation_utils_js_1.padOrTrim)(header.accountingMethod.toString(), 2, '0') + (0, generation_utils_js_1.padOrTrim)(header.accountingSystem.toString(), 2, '0') + (0, generation_utils_js_1.padOrTrim)(header.isPartnership?.toString() ?? '', 1) + (0, generation_utils_js_1.padOrTrim)(header.includesProfitLoss.toString(), 1) + (0, generation_utils_js_1.padOrTrim)(header.includesTaxAdjustment.toString(), 1) + (0, generation_utils_js_1.padOrTrim)(header.includesBalanceSheet.toString(), 1) + (0, generation_utils_js_1.padOrTrim)(header.profitLossEntryCount?.toString() ?? '', 3) + (0, generation_utils_js_1.padOrTrim)(header.taxAdjustmentEntryCount?.toString() ?? '', 3) + (0, generation_utils_js_1.padOrTrim)(header.balanceSheetEntryCount?.toString() ?? '', 3) + (0, generation_utils_js_1.padOrTrim)(header.ifrsImplementationYear ?? '9999', 4) + (0, generation_utils_js_1.padOrTrim)(header.ifrsReportingOption?.toString() ?? '', 1) + (0, generation_utils_js_1.padOrTrim)(header.softwareRegistrationNumber ?? '99999999', 8) + (0, generation_utils_js_1.padOrTrim)(header.partnershipCount?.toString() ?? '999', 3) + (0, generation_utils_js_1.padOrTrim)(header.partnershipProfitShare == null ? '999999' : header.partnershipProfitShare.toFixed().replace('.', ''), 6) + (0, generation_utils_js_1.padOrTrim)(header.currencyType.toString(), 2) + (0, generation_utils_js_1.padOrTrim)(header.auditOpinionType?.toString() ?? '', 2) + (0, generation_utils_js_1.padOrTrim)(header.amountsInThousands.toString(), 1)); }