Preview:
/** 
 * 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
    });
    
}
downloadDownload PNG downloadDownload JPEG downloadDownload SVG

Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!

Click to optimize width for Twitter