define(['N/record', 'N/search', 'N/runtime', 'N/email'],
(record, search, runtime, email) => {
function sendEmailtoCSR(soRecord,customerId){
try {
let soSearch = search.lookupFields({
type: search.Type.SALES_ORDER,
id: soRecord,
columns: ['otherrefnum', 'tranid']
});
let poHash = soSearch.otherrefnum
let soHash = soSearch.tranid
let csrIdIs = search.lookupFields({
type: search.Type.CUSTOMER,
id: customerId,
columns: ['custentity_jj_csr','entityid']
})
let csrId=csrIdIs.custentity_jj_csr
let customerName=csrIdIs.entityid
let recipientId = ['ar@corpdesign.com'];
if (csrId.length>0) {
var csrInternalId = csrId[0].value
var csrEmail = search.lookupFields({
type: search.Type.EMPLOYEE,
id: csrInternalId,
columns: ['email']
}).email
recipientId.push(csrEmail)
}
//send email
let userObj = runtime.getCurrentUser();
let senderId = userObj.id
let emailSubject = 'Deposit or Payment received from ' + customerName
var emailBody;
if (poHash) {
emailBody = "Please note that a deposit or payment from " + customerName + " was applied to " + poHash + "/" + soHash + ". Please manage the pickup or shipping immediately. "
} else {
emailBody = "Please note that a deposit or payment from " + customerName + " was applied to " + soHash + ". Please manage the pickup or shipping immediately. "
}
email.send({
author: senderId,
recipients: recipientId,
subject: emailSubject,
body: emailBody,
relatedRecords: {
transactionId: parseInt(soRecord),
entityId:2528
}
});
}catch (e) {
log.debug("error @sendEmailtoCSR",e)
return []
}
}
const afterSubmit = (scriptContext) => {
try {
if ( scriptContext.type == "create"){
var customerDeposit = scriptContext.newRecord
var customerId = customerDeposit.getValue({
fieldId: 'customer'
});
var soRecord = customerDeposit.getValue({
fieldId: 'salesorder'
});
//Check if the customer deposit is attached to sales order
if (soRecord ) {
sendEmailtoCSR(soRecord,customerId)
}
}
} catch (e) {
log.debug("error@afterSubmit", e)
}
}
return {afterSubmit}
});