To set preferred transactions within the Customer that triggers transaction emails, we can create a custom field within the customer record that lets users choose transactions that would allow the system to send email. We can then create a script that checks the custom field and allows or disallows sending of email for the customer's transaction.
Steps:
1. Create a custom entity field that would contain the different transaction
types (Customizations> Lists, Records, & Fields > Entity Fields > New)
a. Label -> Send Transactions For
b. Type -> Multiple Select
c. List/Record -> Transaction Type
d. Store Value -> Checked
e. Applies To > Customer -> Checked
f. Display > Subtab -> Preferences
2. Save new custom field.
3. Create a user event script that checks whether the customer would like to
receive an email for the transaction based on the custom field created above.
Below is a sample script that can be deployed to transaction records:
function beforeSubmit(type) {
nlapiLogExecution('DEBUG','Before Submit','type = '+type);
if (type=='create'){
var cust = nlapiLoadRecord('customer',nlapiGetFieldValue('entity'));
var tran_for_email = new Array();
tran_for_email = trimSpaces(cust.getFieldTexts('custentity_sendtransactionsfor'));
if (tran_for_email.indexOf(nlapiGetRecordType())<0){
nlapiLogExecution('DEBUG','Do not Send Email',nlapiGetFieldValue('tobeemailed'));
nlapiSetFieldValue('tobeemailed','F');
} else {
nlapiLogExecution('DEBUG','Email Sent',nlapiGetFieldValue('tobeemailed'));
}
}
}
function trimSpaces(type_array){
var newtype_array = new Array();
for (var i=0; i<type_array.length; i++){
newtype_array[i] = type_array[i].replace(/\s+/g,'').toLowerCase();
}
return newtype_array;
}
No comments:
Post a Comment