diff --git a/src/server/models/catalog.js b/src/server/models/catalog.js index fd80543..23a8890 100755 --- a/src/server/models/catalog.js +++ b/src/server/models/catalog.js @@ -86,6 +86,10 @@ const CatalogSchema = new Schema({ data_online: { type: Date, }, + pdf_online_stampa: String, + data_online_stampa: { + type: Date, + }, date_created: { type: Date, diff --git a/src/server/router/admin_router.js b/src/server/router/admin_router.js index 2e36698..831cbd7 100755 --- a/src/server/router/admin_router.js +++ b/src/server/router/admin_router.js @@ -27,6 +27,8 @@ const Gasordine = require('../models/gasordine'); const { User } = require('../models/user'); +const { Catalog } = require('../models/catalog'); + const server_constants = require('../tools/server_constants'); const { ImageDownloader } = require('../tools/general.js'); @@ -290,9 +292,15 @@ async function convertPDF_PdfLib(idapp, inputFile, outputFile, options) { }); } + let addstr = ''; + + if (options.compressione) { + addstr = '_temp.pdf'; + } + // Salva il nuovo PDF const pdfBytes = await newPdfDoc.save(); - fs.writeFileSync(outputFile, pdfBytes); + fs.writeFileSync(outputFile + addstr, pdfBytes); console.log(`PDF convertito e salvato come '${outputFile}'`); const comprimi = false; @@ -302,9 +310,10 @@ async function convertPDF_PdfLib(idapp, inputFile, outputFile, options) { if (options.compressione) { const todayDate = tools.getDateYYYYMMDD_Today(); - const compressed = tools.removeFileExtension(outputFile) + `_${todayDate}.pdf`; + //const compressed = tools.removeFileExtension(outputFile) + `_${todayDate}.pdf`; + const compressed = tools.removeFileExtension(outputFile) + `_generato.pdf`; - await compressPdf(outputFile, compressed, options.compressione); + await compressPdf(outputFile + addstr, compressed, options.compressione); if (mostrainfo) extractPdfInfo(compressed); @@ -314,7 +323,6 @@ async function convertPDF_PdfLib(idapp, inputFile, outputFile, options) { if (options.dir_out && options.idapp) { // Crea directory se non esiste ! // Salva il fileout anche su questa directory dir_out - //const fileoutdir = path.join(options.dir_out, options.file_out); //await fs.promises.copyFile(fileout, fileoutdir); //console.log(`File ${fileout} anche salvato in ${options.dir_out}`); @@ -322,7 +330,6 @@ async function convertPDF_PdfLib(idapp, inputFile, outputFile, options) { let fileout_print = ''; - // Crea anche il PDF per la stampa if ( options.print_left !== 0 || @@ -337,7 +344,7 @@ async function convertPDF_PdfLib(idapp, inputFile, outputFile, options) { const uscita = { pdf_generato: tools.removePathDirByFileName(options.idapp, fileout), pdf_generato_stampa: tools.removePathDirByFileName(options.idapp, ris.fileout_print), - } + }; return uscita; } catch (e) { @@ -357,7 +364,7 @@ async function ConvertPDF_WithMargins(options) { return { err: 'Nessun file caricato.' }; } - const outputFilename = path.basename(tools.removeFileExtension(options.filenameIn))+ '-stampabile.pdf'; + const outputFilename = path.basename(tools.removeFileExtension(options.filenameIn)) + '-stampabile.pdf'; const outputPath = path.join(options.dir_out, outputFilename); try { @@ -395,10 +402,9 @@ async function ConvertPDF_WithMargins(options) { const pdfBytes = await destPdfDoc.save(); await fs.promises.mkdir(options.dir_out, { recursive: true }); - + await fs.promises.writeFile(outputPath, pdfBytes); - fileout_print = outputPath; } catch (error) { const log = 'Errore durante la creazione del PDF per la Stampa:' + error.message; @@ -409,6 +415,56 @@ async function ConvertPDF_WithMargins(options) { return { fileout_print }; } +router.post('/online-pdf', authenticate, async (req, res) => { + console.log('/online-pdf'); + + idapp = req.body.idapp; + id_catalog = req.body.id_catalog; + stampa = req.body.stampa; + let mydir = ''; + let risout = {}; + + try { + // Aggiorna il PDF OnLine, copiando il file da Generato a OnLine + let catalog = await Catalog.findOne({ _id: id_catalog }); + + if (catalog) { + mydir = tools.getdirByIdApp(idapp); + // const baseurl = this.getHostByIdApp(idapp); + + if (stampa) { + catalog.pdf_online_stampa = catalog.pdf_generato_stampa.replace('_generato', ''); + } else { + catalog.pdf_online = catalog.pdf_generato.replace('_generato', ''); + } + + // Aggiorna il PDF OnLine, copiando il file da Generato a OnLine + const fileOrigin = mydir + (stampa ? catalog.pdf_generato_stampa : catalog.pdf_generato); + const fileDest = mydir + (stampa ? catalog.pdf_online_stampa : catalog.pdf_online); + const fileDestNoDir = (stampa ? catalog.pdf_online_stampa : catalog.pdf_online); + // copia il file + await fs.promises.copyFile(fileOrigin, fileDest); + + if (stampa) { + catalog.data_online_stampa = catalog.data_generato_stampa; + } else { + catalog.data_online = catalog.data_generato; + } + + // Aggiorna il record + await catalog.save(); + + risout = {catalog: catalog._doc}; + } + + // risout + + return res.status(200).send(risout); + } catch (e) { + console.error('Err Online-pdf', e.message); + } +}); + // Endpoint POST per la conversione del PDF router.post('/convert-pdf', upload.single('pdf'), async (req, res) => { if (!req.file) {