import React from 'react'; import type { ReportData, ComplianceItem } from '../types'; interface PrintableReportProps { report: ReportData; } const formatDate = (dateString: string) => { // Tries to parse common date formats like DD.MM.YYYY or YYYY-MM-DD const parts = dateString.split(/[.\-/]/); if (parts.length === 3) { // Assuming DD.MM.YYYY if (parts[0].length === 2) return `${parts[0]}/${parts[1]}/${parts[2]}`; // Assuming YYYY-MM-DD if (parts[0].length === 4) return `${parts[2]}/${parts[1]}/${parts[0]}`; } return dateString; // fallback }; const TableRow: React.FC<{item: ComplianceItem}> = ({item}) => ( {item.property || item.element || item.test} {item.norm} {item.certificate} {item.status} ) export const PrintableReport: React.FC = ({ report }) => { const { identification, compliance, overPerformance, equivalents, confidence } = report; return (

SteelBase

Análise de Qualidade Industrial com IA

Relatório de Análise Técnica

Documento gerado em: {new Date().toLocaleDateString('pt-BR')}

Produto: {identification.product}
Norma Principal: {identification.standards}
Fabricante: {identification.manufacturer}
Nº Certificado: {identification.certificateNumber}
Lotes: {identification.batches}
Corridas: {identification.heats}
Quantidade: {identification.quantity}
Data Emissão: {formatDate(identification.certificateDate)}

Resumo da Análise

O material de {identification.product} atende aos requisitos da norma {identification.standards}. Status Geral de Conformidade: {compliance.status}.

{compliance.status === 'CONFORME' && overPerformance.length > 0 && (

O material excede os requisitos normativos em pontos-chave, como {overPerformance.map(item => item.property).join(', ')}.

)}

Análise de Composição Química

{compliance.chemical.map((item, i) => )}
ElementoNormaCertificadoStatus

Análise de Propriedades Mecânicas

{compliance.mechanical.map((item, i) => )}
PropriedadeNormaCertificadoStatus

Normas Equivalentes

{equivalents.map((item, i) => (

{item.system}

{item.norm}

))}
); };