Suitelet that summarizes the length of time open

Suitelet returns the KLIPFOLIO  - UK CASE whose search results  summarize length of open cases
/**
 * @NApiVersion 2.1
 * @NScriptType Suitelet
 */
/*******************************************************************
 *   Suitelet Script returns search result for klipfolio
 ****************************************************************
 *
 * Date: 16/05/2022
 *
 * Author:  Jobin and Jismi IT Services LLP
 *
 * REVISION HISTORY
 *
 * Revision
 *
 * Description: Suitelet returns the KLIPFOLIO  - UK CASES for klipfolio -length of open cases

 ***************************************************************/
define(['N/format', 'N/search'],
    /**
 * @param{format} format
 * @param{search} search
 */
    (format, search) => {
        var docArray = [];
        /**
         * Defines the Suitelet script trigger point.
         * @param {Object} scriptContext
         * @param {ServerRequest} scriptContext.request - Incoming request
         * @param {ServerResponse} scriptContext.response - Suitelet response
         * @since 2015.2
         */
        const onRequest = (scriptContext) => {
            try{
                var response = scriptContext.response;
//search for <24 hours
                 var supportcaseSearchObj1 = search.create({
                    type: "supportcase",
                    filters:
                        [
                            ["stage","anyof","OPEN","ESCALATED"],
                            "AND",
                            ["subsidiary","anyof","12"],
                            "AND",
                            ["formulanumeric: {timeopen}","lessthan","24"]

                        ],
                    columns:
                        [
                            //search.createColumn({name: "createddate", label: "Date Created"}),
                            search.createColumn({
                                name: "formulatext",
                                formula: "CASE WHEN {timeopen}<24 THEN '<24 Hours'  END",
                                label: "Formula (Text)"
                            })
                        ]
                });

                var searchResultCount1 = supportcaseSearchObj1.runPaged().count;
                //log.debug("supportcaseSearchObj result count",searchResultCount1);

                if (searchResultCount1>0){
                    supportcaseSearchObj1.run().each(function (result){
                        var docObj = {};
                        docObj.TimeOpen = result.getValue({name: "formulatext", label: "24 hours"});
                        docObj.Numberofcases=searchResultCount1;
                        docArray.push(docObj);
                    });

                }
// // search to find open case >24hr
                var supportcaseSearchObj2 = search.create({
                    type: "supportcase",
                    filters:
                        [
                            ["stage","anyof","OPEN","ESCALATED"],
                            "AND",
                            ["subsidiary","anyof","12"],
                            "AND",
                            ["formulanumeric: {timeopen}","lessthan","72"],
                            "AND",
                            ["formulanumeric: {timeopen}","greaterthan","24"]
                        ],
                    columns:
                        [
                            search.createColumn({
                                name: "formulatext",
                                formula: "CASE WHEN {timeopen}>24 AND {timeopen}<72 THEN '24 - 72 Hours'END ",
                                label: "Formula (Text)"
                            })
                        ]
                });
                var searchResultCount2= supportcaseSearchObj2.runPaged().count;
                //log.debug("supportcaseSearchObj result count",searchResultCount2);
                if (searchResultCount2>0){
                    supportcaseSearchObj2.run().each(function (result){
                        var docObj1 = {};
                        docObj1.TimeOpen = result.getValue({name: "formulatext", label: "24 - 72 Hours"});
                        docObj1.NumberOfCases=searchResultCount2;
                        docArray.push(docObj1);
                    });

                }

// //search for 3 days to 1 wk
                var supportcaseSearchObj3 = search.create({
                    type: "supportcase",
                    filters:
                        [
                            ["stage","anyof","OPEN","ESCALATED"],
                            "AND",
                            ["subsidiary","anyof","12"],
                            "AND",
                            ["formulanumeric: {timeopen}","greaterthan","72"],
                            "AND",
                            ["formulanumeric: {timeopen}","lessthan","168"]
                        ],
                    columns:
                        [
                            search.createColumn({
                                name: "formulatext",
                                formula: "CASE WHEN {timeopen}>72 AND {timeopen}<168 THEN '3 Days - 1 Week' END",
                                label: "Formula (Text)"
                            })
                        ]
                });
                var searchResultCount3 = supportcaseSearchObj3.runPaged().count;
               // log.debug("supportcaseSearchObj result count",searchResultCount4);
                if (searchResultCount3>0){
                    supportcaseSearchObj3.run().each(function (result){
                        var docObj3 = {};
                        docObj3.TimeOpen = result.getValue({name: "formulatext", label: "24 - 72 Hours"});
                        docObj3.NumberOfCases=searchResultCount3;
                        docArray.push(docObj3);
                    });

                }
// //search result for 1-2 wks
                var supportcaseSearchObj4 = search.create({
                    type: "supportcase",
                    filters:
                        [
                            ["stage","anyof","OPEN","ESCALATED"],
                            "AND",
                            ["subsidiary","anyof","12"],
                            "AND",
                            ["formulanumeric: {timeopen}","greaterthan","168"],
                            "AND",
                            ["formulanumeric: {timeopen}","lessthan","336"]
                        ],
                    columns:
                        [
                            search.createColumn({
                                name: "formulatext",
                                formula: "CASE WHEN {timeopen}>168 AND {timeopen}<336 THEN '1 - 2 Weeks' END",
                                label: "Formula (Text)"
                            })
                        ]
                });
                var searchResultCount4 = supportcaseSearchObj4.runPaged().count;
                //log.debug("supportcaseSearchObj result count",searchResultCount4);
                if (searchResultCount4>0){
                    supportcaseSearchObj4.run().each(function (result){
                        var docObj4 = {};
                        docObj4.TimeOpen = result.getValue({name: "formulatext", label: "24 - 72 Hours"});
                        docObj4.NumberOfCases=searchResultCount4;
                        docArray.push(docObj4);
                    });
                }
// //search for older greater than 336
                var supportcaseSearchObj5 = search.create({
                    type: "supportcase",
                    filters:
                        [
                            ["stage","anyof","OPEN","ESCALATED"],
                            "AND",
                            ["subsidiary","anyof","12"],
                            "AND",
                            ["formulanumeric: {timeopen}","greaterthan","336"],
                        ],
                    columns:
                        [
                            search.createColumn({
                                name: "formulatext",
                                formula: "CASE WHEN {timeopen}>336 THEN 'older'  END",
                                label: "Formula (Text)"
                            })
                        ]
                });
                var searchResultCount5 = supportcaseSearchObj5.runPaged().count;
                //log.debug("supportcaseSearchObj result count",searchResultCount5);

                if (searchResultCount5>0){
                    supportcaseSearchObj5.run().each(function (result){
                        var docObj5 = {};
                        docObj5.TimeOpen = result.getValue({name: "formulatext", label: "24 - 72 Hours"});
                        docObj5.NumberOfCases=searchResultCount5;
                        docArray.push(docObj5);
                    });

                }


                response.writeLine(JSON.stringify(docArray));

            }catch (e) {
                log.debug("error @ onRequest",e);
            }
        }
        return {onRequest}
    });

Leave a comment

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