Email Subscription for not log-in customers
SUITE SCRIPT
return SCModel.extend({
getcustomer: function(details) {
try {
var emailid = details.emailid;
console.log('details.listid', emailid)
var customerSearch = nlapiSearchRecord("customer", null,
[
["email", "is", emailid]
],
[
new nlobjSearchColumn("entityid").setSort(false),
new nlobjSearchColumn("altname"),
new nlobjSearchColumn("email"),
new nlobjSearchColumn("subscriptionstatus"),
new nlobjSearchColumn("subscription"),
new nlobjSearchColumn("internalid")
]
);
var sublist = []
var customer = []
if (customerSearch) {
for (var i = 0; i < customerSearch.length; i++) {
var result = customerSearch[i];
sublist.push({
subscription: result.getText("subscription"),
status: result.getValue("subscriptionstatus"),
});
}
var result = customerSearch[0];
customer.push({
entityid: result.getValue("altname"),
email: result.getValue("email"),
subscriptions: sublist,
internalid: result.getValue("internalid"),
});
console.log('customer', customer)
} else {
customer = this.CreateLead({ emailid: emailid })
}
return customer
} catch (e) {
console.log(e);
}
},
CreateLead: function(data) {
console.error('In@Model: Forms', JSON.stringify(data))
try {
data.firstname = "Guest"
data.lastname = "Shopper"
var firstname, lastname, company, email, comments;
var customerRecord = nlapiCreateRecord('lead', { recordmode: 'dynamic' });
customerRecord.setFieldValue('isperson', 'T');
customerRecord.setFieldValue('entitystatus', 6); //LEAD-Unqualified
if (data.firstname) {
firstname = Utils.sanitizeString(data.firstname);
customerRecord.setFieldValue('firstname', firstname);
}
if (data.lastname) {
lastname = Utils.sanitizeString(data.lastname);
customerRecord.setFieldValue('lastname', lastname);
}
if (data.company) {
company = Utils.sanitizeString(data.company);
customerRecord.setFieldValue('companyname', company);
}
if (data.emailid) {
email = Utils.sanitizeString(data.emailid);
customerRecord.setFieldValue('email', email);
}
customerRecord.setFieldValue('phone', 1234567890);
customerRecord.setFieldValue('subsidiary', 2);
var custid = nlapiSubmitRecord(customerRecord);
console.log('custid', custid)
var customerSearch = nlapiSearchRecord("customer", null,
[
["internalidnumber", "equalto", custid]
],
[
new nlobjSearchColumn("entityid").setSort(false),
new nlobjSearchColumn("altname"),
new nlobjSearchColumn("email"),
new nlobjSearchColumn("subscriptionstatus"),
new nlobjSearchColumn("subscription")
]
);
var sublist = []
var customer = []
if (customerSearch) {
for (var i = 0; i < customerSearch.length; i++) {
var result = customerSearch[i];
sublist.push({
subscription: result.getText("subscription"),
status: result.getValue("subscriptionstatus"),
});
}
var result = customerSearch[0];
customer.push({
entityid: result.getValue("altname"),
email: result.getValue("email"),
subscriptions: sublist,
internalid: custid,
});
console.log('customer', customer)
return customer
}
} catch (e) {
// statements
console.error('err@creatinglead', e);
return {
status: 500,
code: 'ERR_FORM',
message: 'There was an error'
}
}
},
updatesub: function(data) {
try {
var subsc = JSON.parse(data.subs)
var record = nlapiLoadRecord('customer', data.internalid)
record.setFieldValue('globalsubscriptionstatus', 1);
record.setLineItemValue('subscriptions', 'subscribed', 4, "F");
record.setLineItemValue('subscriptions', 'subscribed', 1, "F");
record.setLineItemValue('subscriptions', 'subscribed', 3, "F");
record.setLineItemValue('subscriptions', 'subscribed', 2, "F");
if (subsc.farmmails == "T") {
record.setLineItemValue('subscriptions', 'subscribed', 4, "T");
}
if (subsc.equinemails == "T") {
record.setLineItemValue('subscriptions', 'subscribed', 1, "T");
}
if (subsc.petmails == "T") {
record.setLineItemValue('subscriptions', 'subscribed', 3, "T");
}
if (subsc.Goatmails == "T") {
record.setLineItemValue('subscriptions', 'subscribed', 2, "T");
}
nlapiSubmitRecord(record);
return true
} catch (e) {
// statements
console.log(e);
}
}
});
VIEW return Backbone.View.extend({
template: cd_emailsubnonaccuser_emailsubnonaccuser_tpl
,
initialize: function(options) {
this.application = options.application
this.model = new CDEmailSubNonAccUserModel();
}
,
events: {
'click .email_sub_button': 'getsubscription',
// 'keypress #email': "validateemail",
'change #email1': "validateemail",
}
,
bindings: {
'[name="email"]': 'getsubscription'
}
,
childViews: {},
getsubscription: function getContext() {
var count= 0;
var emailid = jQuery('#email1').val()
var application = this.application
var model = new CDEmailSubNonAccUserModel();
var equine, ranch, pet, goat
var subarray = []
model.fetch({ data: { emailid: emailid } }).done(function(result) {
// console.log('result', result)
_.each(result[0].subscriptions, function(line) {
if(count < 4){
if (line.subscription == "Equine Offers") {
equine = line.status
count=count+1;
subarray.push({ "EquineOffers": equine })
} else if (line.subscription == "Ranch/Livestock Offers") {
ranch = line.status
count=count+1;
subarray.push({ "LivestockOffers": ranch })
} else if (line.subscription == "Pet Offers") {
pet = line.status
count=count+1;
subarray.push({ "PetOffers": pet })
} else if (line.subscription == "Goat Offers") {
goat = line.status
count=count+1;
subarray.push({ "GoatOffers": goat })
} else {}
}
// console.log("count",count)
})
// console.log("subarray",subarray)
var internalid = result[0].internalid
var view = new CDEmailSubNonAccUserForm({ application: application, subarray: subarray, internalid: internalid, emailid: emailid })
view.showContent();
});
}
//@method getContext @return CD.EmailSubNonAccUser.EmailSubNonAccUser.View.Context
,
validateemail: function() {
var email = jQuery('#email1').val()
// console.log('email', email)
var re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
var valid = re.test(String(email).toLowerCase());
// console.log('email', email)
if (valid) {
jQuery('.email_sub_button').prop('disabled', false);
} else {
jQuery('.email_sub_button').prop('disabled', true);
}
},
getContext: function getContext() {}
});