/** * Datasheet Generator * Generates formatted test data sheets from database records */ /** * Generate a datasheet from a test record * @param {Object} record - Database record * @param {string} format - Output format ('html' or 'txt') * @returns {string} Formatted datasheet */ function generateDatasheet(record, format = 'html') { if (format === 'html') { return generateHtmlDatasheet(record); } else { return generateTextDatasheet(record); } } /** * Generate HTML datasheet */ function generateHtmlDatasheet(record) { const testDate = formatDate(record.test_date); return ` Test Data Sheet - ${record.serial_number}
DATAFORTH CORPORATION
3331 E. Hemisphere Loop
Tucson, AZ 85706 USA
Phone: (520) 741-1404
Fax: (520) 741-0762
Email: info@dataforth.com

TEST DATA SHEET

Date: ${testDate}
Model: ${record.model_number}
SN: ${record.serial_number}
Log Type: ${record.log_type}
Station: ${record.test_station || 'N/A'}
OVERALL RESULT: ${record.overall_result || 'UNKNOWN'}

Test Data

${escapeHtml(record.raw_data || 'No data available')}
`; } /** * Generate plain text datasheet */ function generateTextDatasheet(record) { const testDate = formatDate(record.test_date); const line = '='.repeat(75); const tilde = '~'.repeat(75); return `DATAFORTH CORPORATION Phone: (520) 741-1404 3331 E. Hemisphere Loop Fax: (520) 741-0762 Tucson, AZ 85706 USA Email: info@dataforth.com TEST DATA SHEET ${tilde} Date: ${testDate} Model: ${record.model_number} SN: ${record.serial_number} Log Type: ${record.log_type} Station: ${record.test_station || 'N/A'} OVERALL RESULT: ${record.overall_result || 'UNKNOWN'} ${line} TEST DATA ${line} ${record.raw_data || 'No data available'} ${line} It is hereby certified that the above product is in conformance with all requirements to the extent specified. This product is not authorized or warranted for use in life support devices and/or systems. Source: ${record.source_file} Record ID: ${record.id} `; } /** * Format date for display */ function formatDate(dateStr) { if (!dateStr) return 'Unknown'; // Convert YYYY-MM-DD to MM-DD-YYYY const [year, month, day] = dateStr.split('-'); return `${month}-${day}-${year}`; } /** * Escape HTML special characters */ function escapeHtml(str) { if (!str) return ''; return str .replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, '''); } module.exports = { generateDatasheet };