Jira Code: TM 162
This article briefs about to add leads through dashboard with custom columns.
Portlet script
/**
* @NApiVersion 2.x
* @NScriptType Portlet
* @NModuleScope SameAccount
*/
/*******************************************************************************
* CLIENTNAME:Take5 Media
* TM-162
* Add Quick add lead
*************************************************************************
* Date : 14-01-2019
*
* Author:Peter Ward
* Script Description :
* Date created : 14-01-2019
*Add LContact First Name and last name
* REVISION HISTORY
*
* Revision 1.0 ${14-01-2019} margrat : created
* 1.1 ${22-01-2019} aj : Remove middle name from the Lead form
* 1.2 ${28-01-2019} aj : Make WebAddress as URL field
*
*
*
******************************************************************************/
define(['N/record', 'N/ui/serverWidget', 'N/url', 'N/runtime' ],
function(record, serverWidget, url, runtime) {
/**
* Definition of the Portlet script trigger point.
*
* @param {Object} params
* @param {Portlet} params.portlet - The portlet object used for rendering
* @param {number} params.column - Specifies whether portlet is placed in left (1), center (2) or right (3) column of the dashboard
* @param {string} params.entity - (For custom portlets only) references the customer ID for the selected customer
* @Since 2015.2
*/
function render(params) {
try{
var portlet = params.portlet;
portlet.title = 'QUICK ADD-LEADS';
portlet.clientScriptFileId = '1089';
portlet.setSubmitButton({
url: 'www',
label: 'Save'
});
var leadId = portlet.addField({
id : 'textfield_leadid',
type : serverWidget.FieldType.TEXT,
label : 'LEAD ID'
});
leadId.isMandatory = true;
var firstname = portlet.addField({
id : 'textfield_firstname',
type : serverWidget.FieldType.TEXT,
label : 'First Name'
});
firstname.isMandatory = true;
var lastname = portlet.addField({
id : 'textfield_lastname',
type : serverWidget.FieldType.TEXT,
label : 'Last Name'
});
lastname.isMandatory = true;
var companyName = portlet.addField({
id : 'textfield_companyname',
type : serverWidget.FieldType.TEXT,
label : 'COMPANY NAME'
});
companyName.isMandatory = true;
var webAddress = portlet.addField({
id : 'textfield_webaddress',
type : serverWidget.FieldType.URL,//TEXT,
label : 'WEB ADDRESS'
});
webAddress.isMandatory = true;
var email = portlet.addField({
id : 'textfield_email',
type : serverWidget.FieldType.TEXT,
label : 'EMAIL'
});
var phone = portlet.addField({
id : 'textfield_phone',
type : serverWidget.FieldType.TEXT,
label : 'PHONE'
});
var category = portlet.addField({
id : 'textfield_category',
type : serverWidget.FieldType.TEXT,
label : 'Category'
});
category.updateDisplayType({
displayType: serverWidget.FieldDisplayType.HIDDEN
});
var leadsource = portlet.addField({
id : 'textfield_leadsource',
type : serverWidget.FieldType.SELECT,
label : 'LEAD SOURCE'
});
leadsource.addSelectOption({
value: '-2',
text: 'Ad'
});
leadsource.addSelectOption({
value: '50854',
text: 'Buyer Zone'
});
leadsource.addSelectOption({
value: '50860',
text: 'Inbound Blogs'
});
leadsource.addSelectOption({
value: '50859',
text: 'Inbound Website'
});
leadsource.addSelectOption({
value: '50856',
text: 'LinkedIn Inbound'
});
leadsource.addSelectOption({
value: '50855',
text: 'LinkedIn Self'
});
leadsource.addSelectOption({
value: '50858',
text: 'Next Mark'
});
leadsource.addSelectOption({
value: '-3',
text: 'Other'
});
leadsource.addSelectOption({
value: '-4',
text: 'Partner Referral'
});
leadsource.addSelectOption({
value: '-5',
text: 'Trade Show'
});
leadsource.addSelectOption({
value: '-6',
text: 'Web'
});
leadsource.addSelectOption({
value: '50857',
text: 'Web Leads'
});
leadsource.defaultValue = 1;
leadsource.isMandatory = true;
} catch (e) {
log.error({
title : 'form for lead',
details : e.message
});
}
}
return {
render: render
};
});
Client script
/**
* @NApiVersion 2.x
* @NScriptType ClientScript
* @NModuleScope SameAccount
*/
/*******************************************************************************
* CLIENTNAME:Take5 Media
* TM-162
* Add Quick add lead
*************************************************************************
* Date : 14-01-2019
*
* Author:Peter Ward
* Script Description :
* Date created : 14-01-2019
*Add LContact First Name and last name
* REVISION HISTORY
*
* Revision 1.0 ${14-01-2019} margrat : created
* 1.1 ${14-01-2019} aj : Remove middle name
* 1.2 ${28-01-2019} aj : To add sales team
*
*
******************************************************************************/
define(['N/record','N/search','N/currentRecord','N/runtime'],
function(record,search,currentRecord,runtime) {
function saveRecord(scriptContext) {
try{
var records = scriptContext.currentRecord;
var entity = records.getValue({
fieldId: 'textfield_leadid',
});
var companyname = records.getValue({
fieldId: 'textfield_companyname',
});
var webaddress = records.getValue({
fieldId: 'textfield_webaddress',
});
var email = records.getValue({
fieldId: 'textfield_email',
});
var phone = records.getValue({
fieldId: 'textfield_phone',
});
var leadsource = records.getValue({
fieldId: 'textfield_leadsource',
});
var firstname = records.getValue({
fieldId: 'textfield_firstname',
});
console.log("firstname="+firstname)
var lastname = records.getValue({
fieldId: 'textfield_lastname',
});
console.log("lastname="+lastname)
if(entity && lastname && firstname && companyname && webaddress && leadsource ){
var leadRec = record.create({
type: "LEAD",
isDynamic: true
});
leadRec.setValue({
fieldId: 'entityid',
value: entity
});
leadRec.setValue({
fieldId: 'companyname',
value: companyname
});
leadRec.setValue({
fieldId: 'url',
value: webaddress
});
leadRec.setValue({
fieldId: 'email',
value: email
});
leadRec.setValue({
fieldId: 'phone',
value: phone
});
leadRec.setValue({
fieldId: 'category',
value: 4
});
leadRec.setValue({
fieldId: 'leadsource',
value: leadsource
});
// AJ MODIFIED TO ADD SALES TEAM
var userID = runtime.getCurrentUser().id;
console.log("userID="+userID);
leadRec.selectLine({
sublistId:'salesteam',
line:0
});
// to set employee
leadRec.setCurrentSublistValue({
sublistId:'salesteam',
fieldId:'employee',
value:userID,
});
// to set employee Sales rep
leadRec.setCurrentSublistValue({
sublistId:'salesteam',
fieldId:'salesrole',
value:-2,
});
// to set employee Sales rep true
leadRec.setCurrentSublistValue({
sublistId:'salesteam',
fieldId:'issalesrep',
value:true,
});
//isprimary
leadRec.setCurrentSublistValue({
sublistId:'salesteam',
fieldId:'isprimary',
value:true,
});
leadRec.commitLine({
sublistId:'salesteam'
});
var internalid = leadRec.save();
alert("You have successfully created the lead record internalId="+internalid)
try{
var leadcontact = record.create({
type: "CONTACT"
});
leadcontact.setText({
fieldId: 'company',
text:companyname //entity
});
leadcontact.setValue({
fieldId: 'firstname',
value: firstname
});
leadcontact.setValue({
fieldId: 'lastname',
value: lastname
});
var contactid = leadcontact.save();
}catch(e)
{
console.log("Err 2 Contact create",e.message)
}
window.location.reload();
}
else{
alert("please fill all mandatory fields")
}}
catch (e) {
alert("invalid field value"+e.message)
}
}
return {
saveRecord: saveRecord
};
});