User Event
function beforLoad(){
try{
if (scriptContext.type == 'view') {
var currentRec = scriptContext.newRecord;
log.debug('current record',currentRec);
var recFieldObj ={}
var arDocType = currentRec.getValue({
fieldId:'custbody_scg_ar_doctype'
});
recFieldObj.arDocType = arDocType;
var printLine = currentRec.getValue({
fieldId:'custbody_scg_print1line'
});
recFieldObj.printLine = printLine;
var paymentAppliedAmount = currentRec.getValue({
fieldId:'applied'
});
log.debug('applied amount',paymentAppliedAmount);
var appliedToCount = currentRec.getLineCount({
sublistId: 'apply'
});
log.debug('appliedToCount',appliedToCount);
var creditAppliedObj2 ={}
var discTakenAmtObj ={}
var discTakenTotal =0;
//Get the Disc Take Amount from transaction applied on the payment record
var appliedArr =[]
if(appliedToCount >0){
for (var j = 0; j < appliedToCount; j++){
var appliedObj ={}
var tranId = currentRec.getSublistValue({
sublistId: 'apply',
fieldId: 'internalid',
line: j,
});
var refNo = currentRec.getSublistValue({
sublistId: 'apply',
fieldId: 'refnum',
line: j,
});
var appliedPayment = currentRec.getSublistValue({
sublistId: 'apply',
fieldId: 'amount',
line: j,
});
appliedObj.tranId =tranId;
appliedObj.refNo =refNo;
appliedObj.appliedPayment =appliedPayment;
appliedArr.push(appliedObj)
var discTakenAmt = currentRec.getSublistValue({
sublistId: 'apply',
fieldId: 'disc',
line: j,
});
log.debug('discTakenAmt',discTakenAmt)
discTakenTotal += Number(discTakenAmt)
}
}
log.debug('appliedArr',appliedArr)
//started getting credit sublist
var numLines = currentRec.getLineCount({
sublistId: 'credit'
});
log.debug('credit lines',numLines);
var creditAppliedArr =[]
if(numLines > 0){
for (var line = 0; line < numLines; line++){
var creditAppliedObj ={}
var appliedTranId = currentRec.getSublistValue({
sublistId: 'credit',
fieldId: 'internalid',
line: line,
});
log.debug('credit appliedTranId',appliedTranId);
var appliedAmount = currentRec.getSublistValue({
sublistId: 'credit',
fieldId: 'amount',
line: line,
});
log.debug('credit appliedAmount',appliedAmount);
var appliedDoc = currentRec.getSublistValue({
sublistId: 'credit',
fieldId: 'refnum',
line: line,
});
log.debug('credit sublistFieldValue document number',appliedDoc);
creditAppliedObj.appliedTranId = appliedTranId
creditAppliedObj.appliedDoc = appliedDoc
creditAppliedObj.appliedAmount = appliedAmount;
creditAppliedObj.creditAppliedTransaction = 0
creditAppliedArr.push(creditAppliedObj)
}
}
discTakenAmtObj.discTakenTotal = discTakenTotal;
creditAppliedArr.push(discTakenAmtObj);
creditAppliedObj2.paymentAppliedAmount = paymentAppliedAmount;
creditAppliedArr.push(creditAppliedObj2);
log.debug('creditAppliedArr', creditAppliedArr);
scriptContext.form.addButton({
id: 'custpage_receipt_button',
label: 'Receipt',
functionName: 'printReceipt(' + JSON.stringify(creditAppliedArr) +',' + JSON.stringify(appliedArr) +' ,'+ JSON.stringify(recFieldObj) +')'//function triggered on button click
});
scriptContext.form.clientScriptFileId = 33775;//File Cabinet internal ID of CS
}
}catch (e){
log.debug({
title: e.name,
details: e.message
});
}
}
Client Script
function printReceipt(creditAppliedObj,appliedArr,recFieldObj) {
try {
var record = currentRecord.get();
var recId = record.id;
var recType = record.type;
console.log('record id',recId);
console.log('arDocType',recFieldObj.arDocType);
//map to Suitelet
if(recFieldObj.arDocType == 7 || recFieldObj.arDocType == 1){
var suiteletURL = url.resolveScript({
scriptId: "customscript417",
deploymentId: "customdeploy1",
params: {
recId:recId,
creditApplied: JSON.stringify(creditAppliedObj),
appliedObj : JSON.stringify(appliedArr),
recFieldObj : JSON.stringify(recFieldObj)
}
});
console.log('url',suiteletURL);
//Open the suiteletURL in new page
window.open(suiteletURL);
}
else {
alert('Choose AR Document Type either ใบเสร็จรับเงิน - AR or ใบกำกับภาษี/ใบเสร็จรับเงิน - AR.');
}
}catch (e) {
log.error({
title: e.name,
details: e.message
});
}
}
Suitelet
function displayAppliedTransaction(){
var appliedTransactions = request.parameters.appliedObj;
appliedTransactions = JSON.parse(appliedTransactions)
log.debug('appliedTransactions', appliedTransactions);
if(appliedTransactions.length >0){
for(var tranLine =0; tranLine < appliedTransactions.length; tranLine++){
var receiptLineObj ={}
var tranId = appliedTransactions[tranLine].tranId;
var docNo = appliedTransactions[tranLine].refNo;
var appliedAmount = appliedTransactions[tranLine].appliedPayment;
var appliedWithholdAmt = appliedTranWithholdObj[tranId];
var appliedPayment = Number(appliedAmount)+Number(appliedWithholdAmt);
if(appliedPayment){
RECEIPT_TOTAL += appliedPayment
}
receiptLineObj.docNo = docNo;
receiptLineObj.appliedPayment = appliedPayment;
receiptLineObj.appliedTransaction = 0
if(receiptLineObj.docNo){
receiptLineArr.push(receiptLineObj)
}
}
}
var creditApplied = request.parameters.creditApplied;
creditApplied = JSON.parse(creditApplied)
log.debug('creditApplied', creditApplied);
if(creditApplied.length >0){
for(var creditApply =0;creditApply< creditApplied.length;creditApply++){
var receiptLineObj2 ={}
var docNo2 = creditApplied[creditApply].appliedDoc
var appliedPayment2 = creditApplied[creditApply].appliedAmount
if(appliedPayment2){
RECEIPT_TOTAL -= Number(appliedPayment2)
}
receiptLineObj2.docNo = docNo2;
receiptLineObj2.appliedPayment = appliedPayment2;
receiptLineObj2.appliedTransaction = 1
if(receiptLineObj2.docNo){
receiptLineArr.push(receiptLineObj2)
}
if(creditApplied[creditApply].appliedTranId){
APPLIED_TRAN_IDS.push(creditApplied[creditApply].appliedTranId)
}
// DISC_TAKEN_TOTAL = creditApplied[creditApplied.length - 1].discTakenTotal;
// log.debug('creditApplied.discTakenTotal',creditApplied[creditApply].discTakenTotal)
}
}
}