How to get custom Record data From netsuite using suitescript

When to Use: When the we want to use custom records of Netsuite in View file for showing or performing some operations using those data.

JavaScript

View.js

define('Ravin4Madi.MadiCourses.course.detailed.View', [    'ravin4madi_madicourses_course_details.tpl', 'Ravin4Madi.MadiCourses.courses.Model', 'GlobalViews.Message.View', 'jQuery', 'underscore', 'Backbone',    "Backbone.CompositeView",    "Backbone.CollectionView",    "Backbone.FormView",    "sweetAlert",    "Utils"], function(    ravin4madi_madicourses_course_details, Model, GlobalViewsMessageView, jQuery, _, Backbone, BackboneCompositeView,    BackboneCollectionView,    BackboneFormView,    swal,    Utils) {    'use strict';
    return Backbone.View.extend({
        template: ravin4madi_madicourses_course_details
            ,        title: _("Course Details | Madi International").translate(),        initialize: function(options) {                this.application = options.application;                var url_string = window.location.href; //window.location.href                var url = new URL(url_string);jQuery.get(this.service_url, { 'method': 'getCourseDetails', 'courseID': this.courseID}).then(function(res) {                    res = JSON.parse(res);                    console.log('res', res)});            }
            ,        events: {  },        bindings: { }
        ,getContext: function getContext() {            this.message = this.message || 'Hello World!!'            return {                message: this.message,                data: this.data,                notification: this.notification,                isLoading: this.isLoading,                country: this.country,                courseDates: this.newBookingData            };        }    });});

suitescript

ServiceController.js

define("Ravin4Madi.MadiCourses.courses.ServiceController", ["ServiceController", "Ravin4Madi.MadiCourses.courses"], function(    ServiceController, Model) {    "use strict";
    return ServiceController.extend({        name: "Ravin4Madi.MadiCourses.courses.ServiceController",
        // The values in this object are the validation needed for the current service.        options: {            common: {}        },
        get: function get() {            var method = this.request.getParameter('method');            var category = this.request.getParameter('courseCategory');            var courseID = this.request.getParameter('courseID');
            if (method == "getAllDetails") {                return Model.getAllDetails(category);            } else if (method == "getCourseDetails") {                return Model.getCourseDetails(courseID);            }        },
        post: function post() {         //not implemented      },
        put: function put() {            // not implemented        },
        delete: function() {            // not implemented        }    });});

model.js

define('Ravin4Madi.MadiCourses.courses', [    'Ravin4Madi.MadiCourses.courses.ServiceController', "SC.Model",    "Application",    "Utils",    "underscore",], function(    coursesServiceController, SCModel, Application, Utils, _) {    'use strict';
    return SCModel.extend({getAllDetails: function(categoryID) {            if (categoryID) {                var courseDetails = this.searchCourse(categoryID);                return JSON.stringify({ 'success': true, 'reason': 'Course Found', 'data': courseDetails });            } else {                return JSON.stringify({ 'success': false, 'reason': 'No category ID' });            }        },        getCourseDetails: function(courseID) {
            var country = this.getListValues('customlist977');            var city = this.getCityList();            var district = this.getDistrictList();
            var selectFieldDetails = { 'country': country, 'city': city, 'district': district };
            var courseDetails = this.getCourse(courseID);
            if (courseDetails) {                var allDetails = _.extend(selectFieldDetails, courseDetails);
                return JSON.stringify({ "success": true, "data": allDetails });            } else {                return JSON.stringify({ 'success': false, 'reason': 'No Data Found' });            } },getCourse: function(courseID) {
var obj = {};
var coursesSearch = nlapiSearchRecord("customrecord_ra4madi_madi_courses", null,
[
["internalidnumber", "equalto", courseID]
],
new nlobjSearchColumn("name"), new nlobjSearchColumn("internalid"), new nlobjSearchColumn("custrecord_madi_course_badge"), new nlobjSearchColumn("custrecord_madi_course_image"), new nlobjSearchColumn("custrecord_madi_course_breakdown"), new nlobjSearchColumn("custrecord_madi_course_description"), new nlobjSearchColumn("custrecord_madi_course_duration"), new nlobjSearchColumn("custrecord_madi_course_price"), new nlobjSearchColumn("custrecord_madi_course_modules"), new nlobjSearchColumn("custrecord_madi_course_schedule"), new nlobjSearchColumn("custrecord_madi_course_timing"), new nlobjSearchColumn("custrecord_jj_city","CUSTRECORD_JJ_MADITRAINGCOURSE",null), new nlobjSearchColumn("custrecord_jj_coutryrec","CUSTRECORD_JJ_MADITRAINGCOURSE",null), new nlobjSearchColumn("custrecord_jj_date","CUSTRECORD_JJ_MADITRAINGCOURSE",null), new nlobjSearchColumn("custrecord_jj_day","CUSTRECORD_JJ_MADITRAINGCOURSE",null), new nlobjSearchColumn("custrecord_jj_educator","CUSTRECORD_JJ_MADITRAINGCOURSE", null), new nlobjSearchColumn("custrecord_jj_maditraingcourse","CUSTRECORD_JJ_MADITRAINGCOURSE", null), new nlobjSearchColumn("custrecord_jj_program","CUSTRECORD_JJ_MADITRAINGCOURSE", null), new nlobjSearchColumn("custrecord_jj_count","CUSTRECORD_JJ_MADITRAINGCOURSE", null), new nlobjSearchColumn("custrecord_course_prices_person_price", "CUSTRECORD_MADI_TRAINING_COURSE", null), new nlobjSearchColumn("custrecord_course_prices_person", "CUSTRECORD_MADI_TRAINING_COURSE", null), new nlobjSearchColumn("formulatext").setFormula("CASE WHEN {custrecord_madi_course_image} IS NOT NULL THEN 'https://5102772-sb1.app.netsuite.com/'||{custrecord_madi_course_image} END")
);
if (coursesSearch && coursesSearch.length > 0) {
obj = {
name: coursesSearch[0].getValue("name"),
id: coursesSearch[0].getValue("internalid"),
badge: coursesSearch[0].getValue("custrecord_madi_course_badge"),
courseBreakdown: coursesSearch[0].getValue("custrecord_madi_course_breakdown"),
courseDescription: coursesSearch[0].getValue("custrecord_madi_course_description"),
courseDuration: coursesSearch[0].getValue("custrecord_madi_course_duration"),
coursePrice: coursesSearch[0].getValue("custrecord_madi_course_price"),
courseModules: coursesSearch[0].getValue("custrecord_madi_course_modules"),
courseSchedule: this.getDateOptions(coursesSearch[0].getValue("custrecord_madi_course_schedule")),
timing: coursesSearch[0].getValue("custrecord_madi_course_timing"),
images: coursesSearch[0].getValue("formulatext"),
Booking:[],
CoursePrices: [],
SumData: []
};
for (var i in coursesSearch) {
obj.Booking.push({ "Date": coursesSearch[i].getValue("custrecord_jj_date", "CUSTRECORD_JJ_MADITRAINGCOURSE", null),
'City':coursesSearch[i].getText("custrecord_jj_city", "CUSTRECORD_JJ_MADITRAINGCOURSE", null),
'Country':coursesSearch[i].getText("custrecord_jj_coutryrec", "CUSTRECORD_JJ_MADITRAINGCOURSE", null),
'Day':coursesSearch[i].getValue("custrecord_jj_day", "CUSTRECORD_JJ_MADITRAINGCOURSE", null),
'Educator':coursesSearch[i].getValue("custrecord_jj_educator", "CUSTRECORD_JJ_MADITRAINGCOURSE", null),
'courseName':coursesSearch[i].getText("custrecord_jj_maditraingcourse", "CUSTRECORD_JJ_MADITRAINGCOURSE", null),
'Program':coursesSearch[i].getText("custrecord_jj_program", "CUSTRECORD_JJ_MADITRAINGCOURSE", null),
'Count':coursesSearch[i].getValue("custrecord_jj_count", "CUSTRECORD_JJ_MADITRAINGCOURSE", null)});
obj.CoursePrices.push({"Price": coursesSearch[i].getValue("custrecord_course_prices_person_price","CUSTRECORD_MADI_TRAINING_COURSE", null),
'Person':coursesSearch[i].getValue("custrecord_course_prices_person", "CUSTRECORD_MADI_TRAINING_COURSE", null),});
if (coursesSearch[i].getValue("custrecord_jj_date", "CUSTRECORD_JJ_MADITRAINGCOURSE", null)) {
obj.SumData.push(this.getSumDetails(coursesSearch[i].getValue("custrecord_jj_date", "CUSTRECORD_JJ_MADITRAINGCOURSE", null), courseID));
}}

            return obj;
        }



        return false;
    },
    getSumDetails: function (CourseDate, courseID) {
        var arr = [];
        var customrecord_ra4madi_madi_training_leadsSearchsum = nlapiSearchRecord("customrecord_ra4madi_madi_training_leads",null,
            [
            ["custrecord_jj_training_lead.custrecord_jj_training_leaddate_selected","on",CourseDate],
            "AND",
            ["custrecord_jj_training_lead.custrecord_jj_training_lead_course","anyof",courseID]
            ],
            [
            new nlobjSearchColumn("custrecord_jj_booking_count","CUSTRECORD_JJ_TRAINING_LEAD","SUM"),
            new nlobjSearchColumn("name","CUSTRECORD_JJ_TRAINING_LEAD","COUNT").setSort(false)
            ]
        );
        if (customrecord_ra4madi_madi_training_leadsSearchsum && customrecord_ra4madi_madi_training_leadsSearchsum.length > 0){
            arr = {
                'CourseDate': CourseDate,
                'sum': customrecord_ra4madi_madi_training_leadsSearchsum[0].getValue("custrecord_jj_booking_count", "CUSTRECORD_JJ_TRAINING_LEAD", "SUM"),
                'sumCount': customrecord_ra4madi_madi_training_leadsSearchsum[0].getValue("name", "CUSTRECORD_JJ_TRAINING_LEAD", "COUNT"),

            };
            return arr;
        }
    },

    getDateOptions: function(dates) {
        var arr = [];
        var options = { year: 'numeric', month: 'long', day: 'numeric' };

        if (dates) {

            var splitDate = dates.split(',');

            for (var i in splitDate) {
                var obj = {};
                var date = splitDate[i].trim();
                var parsedDate = nlapiStringToDate(date);
                obj.value = date;
                //obj.option= date+ ' '+this.getleadsearch(date);
                var bookingStatus = this.getleadsearch(date);
                var isBooked = (bookingStatus == 'Fully Booked' ? true : false);
                var isPast = new Date(parsedDate) < new Date();
                obj.option = new Date(parsedDate).toLocaleDateString("en-US", options) + ' ' + bookingStatus;
                if (isBooked || isPast) {
                    obj.disabled = true
                }
                arr.push(obj);

            }
        }

        return arr;
    },
    getleadsearch: function(date) {
        var customrecord_ra4madi_madi_training_leadsSearch = nlapiSearchRecord("customrecord_ra4madi_madi_training_leads", null,
            [
                ["custrecord_training_lead_date_selected", "on", date]
            ],
            [
                new nlobjSearchColumn("internalid")
            ]
        );


        var length = (customrecord_ra4madi_madi_training_leadsSearch && customrecord_ra4madi_madi_training_leadsSearch.length) || 0;
        return length >= 10 ? 'Fully Booked' : '';

    },
    getListValues: function(listID) {
        var searchResults = nlapiSearchRecord(listID, null, null, [new nlobjSearchColumn('name'), new nlobjSearchColumn('internalid')]);
        var obj = {};
        if (searchResults && searchResults.length >= 1) {
            for (var i in searchResults) {
                obj[searchResults[i].getValue('internalid')] = searchResults[i].getValue('name');
            }
        }

        return obj;
    },

    getCityList: function() {
        var resultArr = [];
        var customrecordb2b_citySearch = nlapiSearchRecord("customrecordb2b_city", null,
            [],
            [
                new nlobjSearchColumn("name"),
                new nlobjSearchColumn("internalid"),
                new nlobjSearchColumn("custrecordb2b_country")
            ]
        );


        if (customrecordb2b_citySearch && customrecordb2b_citySearch.length >= 1) {
            for (var i in customrecordb2b_citySearch) {
                var obj = {};
                obj.name = customrecordb2b_citySearch[i].getValue('name');
                obj.internalid = customrecordb2b_citySearch[i].getValue('internalid');
                obj.country = customrecordb2b_citySearch[i].getValue('custrecordb2b_country');

                resultArr.push(obj);
            }
        }

        return resultArr;
    },

    getDistrictList: function() {
        var resultArr = [];
        var customrecordb2b_districtSearch = nlapiSearchRecord("customrecordb2b_district", null,
            [],
            [
                new nlobjSearchColumn("name").setSort(false),
                new nlobjSearchColumn("internalid"),
                new nlobjSearchColumn("custrecordb2b_district")
            ]
        );

        if (customrecordb2b_districtSearch && customrecordb2b_districtSearch.length >= 1) {
            for (var i in customrecordb2b_districtSearch) {
                var obj = {};
                obj.name = customrecordb2b_districtSearch[i].getValue('name');
                obj.internalid = customrecordb2b_districtSearch[i].getValue('internalid');
                obj.country = customrecordb2b_districtSearch[i].getValue('custrecordb2b_district');

                resultArr.push(obj);
            }
        }

        return resultArr;
    }    })

});

Leave a comment

Your email address will not be published. Required fields are marked *