//*****************DESCRIPTION BLOCK START*********************************
/*
Script Name:
Author: Mohammad Ashrafi
Script Modification Log:
-- Date -- -- Modified By -- --Requested By-- -- Description --
*/
//*****************DESCRIPTION BLOCK END*********************************
/**
* @NApiVersion 2.x
* @NScriptType UserEventScript
* @NModuleScope SameAccount
*/
define(['N/record','N/search','N/runtime','N/ui/serverWidget','N/redirect'],
function(record,search,runtime,serverWidget,redirect) {
/**
* Function definition to be triggered before record is loaded.
*
* @param {Object} scriptContext
* @param {Record} scriptContext.newRecord - New record
* @param {Record} scriptContext.oldRecord - Old record
* @param {string} scriptContext.type - Trigger type
* @Since 2015.2
*/
function afterSubmit(scriptContext) {
/* if (scriptContext.type !== scriptContext.UserEventType.VIEW)
{
return;
} */
if (scriptContext.type == "delete")
{
return;
}
log.debug(" scriptContext = ",scriptContext);
var currentRecord = scriptContext.newRecord;
log.debug(" currentRecord = ",currentRecord);
var recordId = currentRecord.id;
var recordType = currentRecord.type;
log.debug(" recordId = ",recordId);
log.debug(" recordType = ",recordType);
var newRecord = record.load({
type: recordType,
id: recordId
});
var checkFormVal = newRecord.getValue({
fieldId: 'customform'
});
log.debug(" checkFormVal = ",checkFormVal);
var contextVal = runtime.ContextType;
var exeContextVal = runtime.executionContext;
log.debug(" contextVal = ",contextVal);
log.debug(" exeContextVal = ",exeContextVal);
var tdsAmt = newRecord.getValue({
fieldId: 'custbody_tds_amount1'
});
log.debug(" tdsAmt = ",tdsAmt);
var subsidiaryVal = newRecord.getValue({
fieldId: 'subsidiary'
});
log.debug(" subsidiaryVal = ",subsidiaryVal);
var cusVal = newRecord.getValue({
fieldId: 'customer'
});
log.debug(" cusVal = ",cusVal);
var arAccVal = newRecord.getValue({
fieldId: 'aracct'
});
log.debug(" arAccVal = ",arAccVal);
tdsAmt = parseFloat(tdsAmt);
if ( tdsAmt != null || tdsAmt != "" )
{
var jourObj = record.create({
type: "journalentry",
isDynamic: false
});
var dateVal = new Date();
jourObj.setValue({
fieldId: 'trandate',
value : dateVal
});
jourObj.setValue({
fieldId: 'subsidiary',
value : subsidiaryVal
});
jourObj.setSublistValue({
sublistId: 'line',
fieldId: 'account',
value: 124,
line: 0
});
jourObj.setSublistValue({
sublistId: 'line',
fieldId: 'debit',
value: tdsAmt,
line: 0
});
jourObj.setSublistValue({
sublistId: 'line',
fieldId: 'entity',
value: cusVal,
line: 0
});
jourObj.setSublistValue({
sublistId: 'line',
fieldId: 'account',
value: arAccVal,
line: 1
});
jourObj.setSublistValue({
sublistId: 'line',
fieldId: 'credit',
value: tdsAmt,
line: 1
});
jourObj.setSublistValue({
sublistId: 'line',
fieldId: 'entity',
value: cusVal,
line: 1
});
var newJourId = jourObj.save();
log.debug(" newJourId = ",newJourId);
var fieldLookUp = search.lookupFields({
type: 'journalentry',
id: newJourId,
columns: ['tranid']
});
var jourRef = fieldLookUp.tranid;
log.debug(" jourRef = ",jourRef);
var newJourRef = jourRef.toString();
log.debug(" newJourRef = ",newJourRef);
var refNo = newRecord.getSublistValue({
sublistId: 'apply',
fieldId: 'refnum',
line: 0
});
var newRefNo = refNo.toString();
log.debug(" newRefNo = ",newRefNo);
var tempVal = "AR Invoice #";
var finalRefNo = tempVal.concat(newRefNo);
log.debug(" finalRefNo = ",finalRefNo);
var newFinalRefNo = finalRefNo.toString();
log.debug(" newFinalRefNo = ",newFinalRefNo);
newRecord.setSublistValue({
sublistId: 'credit',
fieldId: 'amount',
value: tdsAmt,
line: 0
});
newRecord.setSublistText({
sublistId: 'credit',
fieldId: 'appliedto',
text: newFinalRefNo,
line: 0
});
newRecord.setSublistValue({
sublistId: 'credit',
fieldId: 'apply',
value: true,
line: 0
});
newRecord.setSublistValue({
sublistId: 'credit',
fieldId: 'creditdate',
value: dateVal,
line: 0
});
var tempType = "Journal";
newRecord.setSublistText({
sublistId: 'credit',
fieldId: 'type',
text: tempType,
line: 0
});
newRecord.setSublistValue({
sublistId: 'credit',
fieldId: 'internalid',
value: newJourId,
line: 0
});
newRecord.setSublistValue({
sublistId: 'credit',
fieldId: 'line',
value: 0,
line: 0
});
newRecord.setSublistValue({
sublistId: 'credit',
fieldId: 'pymt',
value: recordId,
line: 0
});
var receiptId = newRecord.save();
log.debug(" receiptId = ",receiptId);
}
}
return {
//beforeLoad: beforeLoad
//beforeSubmit: beforeSubmit,
afterSubmit: afterSubmit
};
});