From d1b1da14142f6f58a5342adc1a084b75948d30f5 Mon Sep 17 00:00:00 2001 From: "Denise D." Date: Mon, 27 Jul 2026 15:53:43 +0200 Subject: [PATCH] Comments added for explanation --- file.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/file.js b/file.js index a91172c..bfe4606 100644 --- a/file.js +++ b/file.js @@ -15,7 +15,7 @@ let pdfFile = process.argv[3]; // pdf1 => /Users/ddatinguinoo/Downloads/G-S IPP 5.pdf // pdf2 => /Users/ddatinguinoo/Downloads/H IPP 5.pdf const data = []; // contains the info of all the clients -const tempFilePath = []; +const tempFilePath = []; // contains the temp files const authConfig = { sfdcTokenFile: process.env.SFDC_TOKEN_FILE, // Path to store/retrieve OAuth tokens @@ -51,7 +51,7 @@ async function attachPdfToAccount(sfdc) { let contentVersion; for (let i = 0; i < tempFilePath.length; i++) { // 1. Read the local PDF file and convert it to Base64 - const pdfBuffer = fs.readFileSync(tempFilePath[i]); // pdfFilePath is tempFilePath + const pdfBuffer = fs.readFileSync(tempFilePath[i]); const base64Pdf = pdfBuffer.toString('base64'); parser = new PDFParse({ data: pdfBuffer }); try { @@ -64,10 +64,12 @@ async function attachPdfToAccount(sfdc) { conditions.push(`CF__c='${ codiceFiscale }'`); } + // since the name and lastname of the user are reversed, I need to put it in order + // to match the name from the database const nameMatch = result.text.match(/Il\s+Sig\.\/La\s+Sig\.ra[ \t]+([A-Za-zÀ-ÿ']+(?:[ \t]+[A-Za-zÀ-ÿ']+)+)/i); if (nameMatch) { - const rawName = nameMatch[1].trim(); + const rawName = nameMatch[1].trim() const parts = rawName.split(/\s+/); if (parts.length >= 2) { @@ -81,7 +83,8 @@ async function attachPdfToAccount(sfdc) { } } - // use the soql comand to search in the database + // use the soql command to search in the database + // if codice fiscale is not available, I search the user's account based on their name and lastname const soql = `SELECT Id, Name FROM Account WHERE (${conditions.join(' OR ')}) ORDER BY CreatedDate DESC LIMIT 1`; const result_soql = await sfdc.query(soql); if (result_soql && result_soql.records && result_soql.records.length > 0) { // if we find something @@ -110,7 +113,7 @@ async function attachPdfToAccount(sfdc) { async function uploadUserAccount() { await initializeSalesforceConnection(); - // now for each client we need to create an Account on Salesforce + // now for each client we need to create an Account on Salesforce Sandbox try { for (let i = 0; i < data.length; i++) { const firstName = (data[i].NOME || '').toString().trim(); @@ -128,7 +131,7 @@ async function uploadUserAccount() { console.log('Something went wrong while creating the accounts: ', error); } } -// this is where i need to store each page in a common temporary pdf file +// this is where i need to store each page in a temporary pdf file async function processPage(pdfDoc, pageIndex) { try { const newDoc = await PDFDocument.create(); @@ -146,7 +149,7 @@ async function processPage(pdfDoc, pageIndex) { } async function splitExcelFile(inputFile) { - let numRows; // this parameter is needed when we need to analyze the pdf file in case it has duplicates + let numRows; // this parameter is needed when we need to analyze the pdf file in case it has duplicate pages const columnNames = []; // contains the names of the columns (header names) try {