Client Script: Fetch data from Zoho analytics and add rows in the subform.
Tue Nov 19 2024 17:02:41 GMT+0000 (Coordinated Universal Time)
Saved by @RehmatAli2024 #deluge
/** * log("sample logging statement") --> can be used to print any data in the browser console. * ZDK module can be used for customising the UI and other functionalities. * return false to prevent <SAVE> action **/ console.log("running client script"); var accountId = ZDK.Page.getField("Operating_Company").getValue().id; const accountDetails = ZDK.Apps.CRM.Accounts.fetchById(accountId); const relatedContacts = ZDK.Apps.CRM.Accounts.fetchRelatedRecords(accountId, 'Contacts') if (relatedContacts.length) { for (const contact of relatedContacts) { var mp = { 'id': contact.id, 'name': contact.Full_Name } } ZDK.Page.getField('Requested_By').setValue(mp); } var vendor = { 'id': accountDetails.Referred_By().id, 'name': accountDetails.Referred_By().Vendor_Name } if (vendor.id != null) { ZDK.Page.getField("Vendor").setValue(vendor); } ZDK.Page.getField("Request_Status").setValue("Customer Requested"); const today = new Date(); const formattedDate = today.toISOString().split('T')[0]; console.log(formattedDate); ZDK.Page.getField("Requested_Date").setValue(formattedDate); accountId = "575609000057932130"; /////// Fetching From Zoho Analytics //////// var functionResp = ZDK.Apps.CRM.Functions.execute("fetch_available_tokens", { "accountId": accountId }); // console.log(response); var message = functionResp.message; if (message == "function executed successfully"); { const parsedOutput = JSON.parse(functionResp._details.output); const columnOrder = parsedOutput.response.result.column_order; const rows = parsedOutput.response.result.rows; console.log(columnOrder) console.log(rows); tokenDetialsList = new Array(); ////////////////// /////////////////// for (let i = 0; i < rows.length; i++) { var row = rows[i]; let promoterId = row[columnOrder.indexOf("Promoter Id")]; let promoterName = row[columnOrder.indexOf("Promoter Name")]; let tokens = parseFloat(row[columnOrder.indexOf("Tokens")]); let tokenValue = parseFloat(row[columnOrder.indexOf("Token Value")]); let amount = (tokens * tokenValue).toFixed(2); console.log(amount); var promoterMap= { 'id': promoterId, 'name': promoterName }; var rowMap = { "Promoter": promoterMap, "Tokens": tokens, "Amount": amount }; tokenDetialsList.push(rowMap); //// } console.log(tokenDetialsList); ZDK.Page.getForm().setValues({ 'Token_Details': tokenDetialsList }); }
Comments