UNPKG

@accounter/server

Version:
34 lines 1.7 kB
import { ValidationError } from '../types/index.js'; import { validateData } from '../validation/index.js'; import { generateHeaderRecord } from './generate-header.js'; import { generateReportEntriesSection } from './generate-report-entries.js'; /** * Generates a full report string for the SHAAM 6111 specification. * @param reportData The ReportData object containing all sections of the report. * @returns A string formatted according to the SHAAM 6111 specification, 8612 characters long. */ export function generateReport(reportData, validate = true) { // Validate the report data using the schema if (validate) { const validationResult = validateData(reportData); if (!validationResult.isValid) { throw new ValidationError('Validation failed', validationResult.errors); } } // Generate the header section const headerSection = generateHeaderRecord(reportData.header); // Add the 370-long fixture const fixture = '0'.repeat(370); // Generate the profit and loss section const profitAndLossSection = generateReportEntriesSection(reportData.profitAndLoss); // Generate the tax adjustment section const taxAdjustmentSection = generateReportEntriesSection(reportData.taxAdjustment); // Generate the balance sheet section (if exists) const balanceSheetSection = reportData.balanceSheet ? generateReportEntriesSection(reportData.balanceSheet) : ''.padEnd(2700, '0'); // Combine all sections into a single string const report = headerSection + fixture + profitAndLossSection + taxAdjustmentSection + balanceSheetSection; return report; } //# sourceMappingURL=generate-report.js.map