diff --git a/server/routers.ts b/server/routers.ts index 172ec32..4d17d89 100644 --- a/server/routers.ts +++ b/server/routers.ts @@ -561,8 +561,10 @@ export const appRouter = router({ }); const signedPdfBytes = await pdfDoc.save(); - const filename = path.basename(invoice.fileKey); - const bapFilename = `BAP_${Date.now()}_${filename}`; + const _bapDateStr = invoice.invoiceDate ? new Date(invoice.invoiceDate).toISOString().slice(0, 10) : new Date().toISOString().slice(0, 10); + const _bapSupplier = (invoice.supplierName || 'Fournisseur').replace(/[^a-zA-Z0-9\u00e0-\u00ff \-]/g, '').trim(); + const _bapNumber = (invoice.invoiceNumber || '').replace(/[^a-zA-Z0-9\-]/g, '').trim(); + const bapFilename = [_bapDateStr, _bapSupplier, _bapNumber].filter(Boolean).join(' - ') + '.pdf'; console.log(`[BAP] Mode export: ${bapExportMode}, type: ${exportFolderType}, dossier: ${exportFolder ? 'configuré' : 'non configuré'}`); if ((bapExportMode === 'folder' || bapExportMode === 'both') && exportFolder) { @@ -774,8 +776,10 @@ export const appRouter = router({ }); const signedPdfBytes = await pdfDoc.save(); - const filename = path.basename(invoice.fileKey); - const bapFilename = `BAP_${Date.now()}_${filename}`; + const _bapDateStr2 = invoice.invoiceDate ? new Date(invoice.invoiceDate).toISOString().slice(0, 10) : new Date().toISOString().slice(0, 10); + const _bapSupplier2 = (invoice.supplierName || 'Fournisseur').replace(/[^a-zA-Z0-9\u00e0-\u00ff \-]/g, '').trim(); + const _bapNumber2 = (invoice.invoiceNumber || '').replace(/[^a-zA-Z0-9\-]/g, '').trim(); + const bapFilename = [_bapDateStr2, _bapSupplier2, _bapNumber2].filter(Boolean).join(' - ') + '.pdf'; if ((bapExportMode === 'folder' || bapExportMode === 'both') && exportFolder) { if (exportFolderType === 'sharepoint') { const { uploadToSharePoint } = await import('./sharepoint'); @@ -1000,8 +1004,10 @@ export const appRouter = router({ }); const signedPdfBytes = await pdfDoc.save(); - const filename = path.basename(invoice.fileKey || `invoice_${invoice.id}.pdf`); - const bapFilename = `BAP_${Date.now()}_${filename}`; + const _bapDateStr3 = invoice.invoiceDate ? new Date(invoice.invoiceDate).toISOString().slice(0, 10) : new Date().toISOString().slice(0, 10); + const _bapSupplier3 = (invoice.supplierName || 'Fournisseur').replace(/[^a-zA-Z0-9\u00e0-\u00ff \-]/g, '').trim(); + const _bapNumber3 = (invoice.invoiceNumber || '').replace(/[^a-zA-Z0-9\-]/g, '').trim(); + const bapFilename = [_bapDateStr3, _bapSupplier3, _bapNumber3].filter(Boolean).join(' - ') + '.pdf'; const bapKey = generateStorageKey(ctx.user.id, bapFilename); const { url } = await localStoragePut(bapKey, Buffer.from(signedPdfBytes), 'application/pdf');