/**
 * pickup js in pickup.html
 * @since cms:1.4.3.2&1.4.3.3 web:1.0
 */
var PICKUP = {};

PICKUP.newReportList;
PICKUP.continousWorkReport;
PICKUP.reportWithWarning;
PICKUP.pickupDefault = 'newReport';
PICKUP.pickupActive = 'newReport';

PICKUP.countNewReportList = 0;
PICKUP.countContinousWorkReport = 0;
PICKUP.countReportWithWarning = 0;

/**
 * Report type
 */
PICKUP.REPORT_TYPE = {
    REPORTONLY: 0, //report only
    INSPECT: 1, //rountine
    WITHREPLY: 2, // report answer
    WORKFLOW: 3, // continuous
};
/**
 * operation type
 */
PICKUP.OPERATION_TYPE = {
    LIST: '0',
    DRAWING: '1',
    VTOUR: '2',
    PDF: '3',
};
/**
 * task type of report answer
 */
PICKUP.REPLYREPORT_TASK_TYPE = {
    REPORT: 0,
    ANSWER: 1,
};

/**
 * default Pickup List
 */
PICKUP.defaultPickupList = {
    operationList: [],
};

PICKUP.baseApiUrl = COMMON.format(ClientData.conf_checkApiUrl(), ClientData.userInfo_accountPath());
PICKUP.getNewReportListApiUrl = PICKUP.baseApiUrl + CONSTANT.URL.CMS.API.NEW_REPORT;
PICKUP.getContinuousWorkListApiUrl = PICKUP.baseApiUrl + CONSTANT.URL.CMS.API.WORKING_FLOW;
PICKUP.getReportWithWarningsListApiUrl = PICKUP.baseApiUrl + CONSTANT.URL.CMS.API.WARNING_WITH_REPORT;

/**
 * Call get new report list api get data
 * @param callback
 */
PICKUP.getNewreportListData = function (callback) {
    let param = {
        sid: COMMON.getSid(),
    };
    COMMON.cmsAjax(
        PICKUP.getNewReportListApiUrl,
        param,
        false,
        function (json) {
            if (callback) {
                callback(json);
            }
        },
        function () {
            console.log('DASHBOARD.getNewreportListData error');
            if (callback) {
                callback(PICKUP.defaultPickupList);
            }
        },
    );
};
/**
 * Call get Continuous Work list api get data
 * @param {*} callback
 */
PICKUP.getContinuousWorkListData = function (callback) {
    let param = {
        sid: COMMON.getSid(),
    };
    COMMON.cmsAjax(
        PICKUP.getContinuousWorkListApiUrl,
        param,
        false,
        function (json) {
            if (callback) {
                callback(json);
            }
        },
        function () {
            console.log('DASHBOARD.getContinuousWorkListData error');
            if (callback) {
                callback(PICKUP.defaultPickupList);
            }
        },
    );
};

/**
 * Call get Report With Warnings list api get data
 * @param {*} callback
 */
PICKUP.getReportWithWarningsListData = function (callback) {
    let param = {
        sid: COMMON.getSid(),
    };
    COMMON.cmsAjax(
        PICKUP.getReportWithWarningsListApiUrl,
        param,
        false,
        function (json) {
            if (callback) {
                callback(json);
            }
        },
        function () {
            console.log('DASHBOARD.getReportWithWarningListData error');
            if (callback) {
                callback(PICKUP.defaultPickupList);
            }
        },
    );
};
/**
 * Initialization pickup html
 */
PICKUP.init = function () {
    //Check if user is logged in
    COMMON.checkAuth(false);

    console.log('PICKUP.init');
    sessionStorage.activeHomePage = CONSTANT.PAGE_TAB.DASHBOARD;
    TEMPLATE.loadHearder('#includedHeader');
    TEMPLATE.loadConfirmModal('#includedConfirmModal');
    const navs = [
        {
            titleLang: 'dashboard',
            href: 'dashboard.html',
        },
        {
            titleLang: 'pickup',
        },
    ];
    TEMPLATE.loadMainNavsTitle('#includedMainTitle', 'pickup', navs, null);
    PICKUP.initSettingActivePickup();
    PICKUP.settingPickup();
    COMMON.closeLoading();
};
/**
 * Setting pickup data
 */
PICKUP.settingPickup = function () {
    DashboardSetting.getSettingData(function (settings) {
        $('#liTabNewReport').addClass('d-none');
        $('#liTabContinousWork').addClass('d-none');
        $('#liTabReportWithWarning').addClass('d-none');
        if (settings.newReport) {
            $('#liTabNewReport').removeClass('d-none');
            PICKUP.initNewReportTab();
        }
        if (settings.continousWork) {
            $('#liTabContinousWork').removeClass('d-none');
            PICKUP.initContinuosWorkTab();
        }
        if (settings.warningReport) {
            $('#liTabReportWithWarning').removeClass('d-none');
            PICKUP.initReportWithWarningsTab();
        }
    });
};
/**
 * init Setting Active Pickup
 */
PICKUP.initSettingActivePickup = function () {
    var urlParam = COMMON.getUrlParameter();
    if (urlParam.pickupActive == undefined || urlParam.pickupActive == '') {
        urlParam.pickupActive = PICKUP.pickupDefault;
    }
    PICKUP.pickupActive = urlParam.pickupActive;
    PICKUP.settingActivePickup(PICKUP.pickupActive);
};

/**
 * setting Active Pickup
 * @param {*} pickupActive
 * @returns
 */
PICKUP.settingActivePickup = function (pickupActive) {
    PICKUP.pickupActive = pickupActive;
    $('#liTabNewReport a').removeClass('active');
    $('#liTabContinousWork a').removeClass('active');
    $('#liTabReportWithWarning a').removeClass('active');

    $('#tab-content-NewReport').removeClass('active show');
    $('#tab-content-ContinousWork').removeClass('active show');
    $('#tab-content-ReportWithWarnings').removeClass('active show');

    if (pickupActive == 'newReport') {
        $('#liTabNewReport a').addClass('active');
        $('#tab-content-NewReport').addClass('active show');
        return;
    }

    if (pickupActive == 'continousWork') {
        $('#liTabContinousWork a').addClass('active');
        $('#tab-content-ContinousWork').addClass('active show');
        return;
    }
    if (pickupActive == 'reportWarning') {
        $('#liTabReportWithWarning a').addClass('active');
        $('#tab-content-ReportWithWarnings').addClass('active show');
        return;
    }
};

/**
 * Initialization show not found pickup item html
 * @param {*} elementId
 */
PICKUP.showNotFoundPickupItem = function (elementId) {
    $(elementId).removeClass();
    $(elementId).addClass('p-0 mt-3 card-list');
    let li = $("<li class='card mb-2 not-found'></li>");
    let div = $("<div class='text-dark mb-1 px-3 py-5 text-center m-auto'></div>");
    let imgdiv = $('<img src="../common/img/icon_not_found.svg" alt=\'' + I18N.i18nText('msgNotFound') + "' class='not-found-img mb-2'>");
    let childDiv = $("<div class='fs-9 text-secondary font-weight-bold'>" + I18N.i18nText('msgNotFound') + '</div>');
    div.append(imgdiv);
    div.append(childDiv);
    li.append(div);
    $(elementId).append(li);
};

/**
 * Initialization view pickup menu html
 * @param {*} elementId
 * @param {*} count
 */
PICKUP.showCountDisplayPickupItem = function (elementId, count) {
    let span = $('<span>' + I18N.i18nText('display') + '</span>');
    $(elementId).append(count);
    $(elementId).append(span);
};

/**
 * Initialization new report list html
 */
PICKUP.initNewReportTab = function () {
    PICKUP.getNewreportListData(function (json) {
        PICKUP.createNewReportList(json.operationList);
    });
};

/**
 * Initialization continuous work list html
 */
PICKUP.initContinuosWorkTab = function () {
    PICKUP.getContinuousWorkListData(function (json) {
        PICKUP.createContinousWorkList(json.operationList);
    });
};

/**
 * Initialization continuous work list html
 */
PICKUP.initReportWithWarningsTab = function () {
    PICKUP.getReportWithWarningsListData(function (json) {
        PICKUP.createReportWithWarningList(json.operationList);
    });
};

/**
 * sort New report operation list
 * @param {*} operationList
 * @returns
 */
PICKUP.sortNewReportList = function (operationList) {
    operationList = operationList.sort(function (a, b) {
        if (a.operationId < b.operationId) return 1;
        if (a.operationId > b.operationId) return -1;
        return 0;
    });
    return operationList;
};
/**
 * Implement new report list html
 * @param {*} operationListOld
 * @returns
 */
PICKUP.createNewReportList = function (operationListOld) {
    if (typeof operationListOld === 'undefined' || operationListOld.length < 1) {
        PICKUP.showNotFoundPickupItem('#newReport-list');
        $('#viewMenuNewReport').addClass('d-none');
        return;
    }

    let operationList = PICKUP.sortNewReportList(operationListOld);
    $('#viewMenuNewReport').removeClass('d-none');
    $('#newReport-list').empty();
    PICKUP.countNewReportList = 0;

    $('#newReport-list').addClass('task-list view-content view-block');
    let classIcon;
    for (let i = 0; i < operationList.length; i++) {
        switch (operationList[i].reportType) {
            case PICKUP.REPORT_TYPE.REPORTONLY:
                classIcon = 'report';
                break;
            case PICKUP.REPORT_TYPE.INSPECT:
                classIcon = 'inspection';
                break;
            case PICKUP.REPORT_TYPE.WITHREPLY:
                classIcon = 'questionary';
                break;
            case PICKUP.REPORT_TYPE.WORKFLOW:
                classIcon = 'proccess';
                break;
        }
        let messageli = $("<li class='card mb-2' name = 'operationId_" + operationList[i].operationId + "' ></li>");
        let ahrefRequiredFlg = $(
            '<a href="javascript:PICKUP.sendReportFormFromNewReport (\'' + operationList[i].operationId + "');\" class='h-100 d-block px-3 py-2 text-decoration-none text-dark position-relative'></a>",
        );
        let divIcon = $("<div class='position-absolute translate-middle top-50 left-0 ml-3'>" + "<div class='type-icon'>" + "<span class='" + classIcon + "'></span>" + '</div></div>');

        let divText = $(
            "<div class='pl-5 h-100 d-flex align-items-center'>" + "<div class='w-100'>" + "<div class='fs-12 text-truncate'>" + operationList[i].operationName + '</div>' + '</div></div>',
        );
        ahrefRequiredFlg.append(divIcon);
        ahrefRequiredFlg.append(divText);
        messageli.append(ahrefRequiredFlg);

        $('#newReport-list').append(messageli);
        PICKUP.countNewReportList = PICKUP.countNewReportList + 1;
    }
    // show not found if
    if (PICKUP.countNewReportList == 0) {
        PICKUP.showNotFoundPickupItem('#newReport-list');
        $('#viewMenuNewReport').addClass('d-none');
        return;
    }
    PICKUP.showCountDisplayPickupItem('#count-NewReport', PICKUP.countNewReportList);
};
/**
 * sort continuous work operation list
 * @param {*} operationList
 * @returns
 */
PICKUP.sortContinousWorkList = function (operationList) {
    let newOperationList = [];
    for (let i = 0; i < operationList.length; i++) {
        if (operationList[i].reportType === 3) {
            if (typeof operationList[i].processList === 'undefined') continue;
            if (operationList[i].processList && operationList[i].processList.length != 0) {
                for (let j = 0; j < operationList[i].processList.length; j++) {
                    if (typeof operationList[i].processList[j].phaseList === 'undefined') continue;
                    for (let g = 0; g < operationList[i].processList[j].phaseList.length; g++) {
                        if (operationList[i].processList[j].phaseList[g].phaseStatus != 999) {
                            let item = {
                                reportType: operationList[i].reportType,
                                operationType: operationList[i].operationType,
                                phaseList: operationList[i].processList[j].phaseList,
                                processKey: operationList[i].processList[j].processKey,
                                permitCodeRequiredFlg: operationList[i].permitCodeRequiredFlg,
                                operationId: operationList[i].operationId,
                                contentId: operationList[i].contentId,
                                operationName: operationList[i].operationName,
                                taskCode: operationList[i].processList[j].taskCode,
                                taskKey: operationList[i].processList[j].taskKey,
                                taskName: operationList[i].processList[j].taskName,
                                updateDate: operationList[i].processList[j].phaseList[g].updateDate,
                                phaseNo: operationList[i].processList[j].phaseList[g].phaseNo,
                                phaseName: operationList[i].processList[j].phaseList[g].phaseName,
                            };
                            newOperationList.push(item);
                        }
                    }
                }
            }
        }
    }
    newOperationList = newOperationList.sort(function (a, b) {
        if (!a.updateDate) {
            a.updateDate = '1900-01-01 00:00:00';
        }
        if (!b.updateDate) {
            b.updateDate = '1900-01-01 00:00:00';
        }
        if (a.updateDate < b.updateDate) return 1;
        if (a.updateDate > b.updateDate) return -1;
        return 0;
    });
    //console.log("newOperationList: " + JSON.stringify(newOperationList));
    return newOperationList;
};

/**
 * Implement continous work html
 * @param {*} operationListOld
 * @returns
 */
PICKUP.createContinousWorkList = function (operationListOld) {
    if (typeof operationListOld === 'undefined' || operationListOld.length < 1) {
        PICKUP.showNotFoundPickupItem('#continousWork-list');
        $('#viewMenuContinuousWork').addClass('d-none');
        return;
    }

    let operationList = PICKUP.sortContinousWorkList(operationListOld);
    $('#viewMenuContinuousWork').removeClass('d-none');
    $('#continousWork-list').empty();

    PICKUP.countContinousWorkReport = 0;

    $('#continousWork-list').addClass('task-list view-content view-block');

    for (let i = 0; i < operationList.length; i++) {
        let directKey = operationList[i].processKey;
        if (operationList[i].operationType == PICKUP.OPERATION_TYPE.VTOUR || operationList[i].operationType == PICKUP.OPERATION_TYPE.PDF) {
            directKey = operationList[i].taskKey;
        }
        let messageli = $("<li class='card mb-2' id = 'list_" + operationList[i].processKey + '$' + operationList[i].phaseNo + "'></li>");

        let ahrefRequiredFlg;
        if (operationList[i].permitCodeRequiredFlg == 1) {
            ahrefRequiredFlg = $("<a href=\"javascript:CHK.displayAlert('onlyRfid');\" class='h-100 d-block px-3 py-2 text-decoration-none text-dark position-relative'></a>");
        } else {
            ahrefRequiredFlg = $(
                '<a href="javascript:PICKUP.sendReportFormFromContinuousWork (\'' +
                    operationList[i].operationId +
                    "','" +
                    operationList[i].taskKey +
                    "','" +
                    operationList[i].processKey +
                    "'," +
                    operationList[i].phaseNo +
                    ");\"  class='h-100 d-block px-3 py-2 text-decoration-none text-dark position-relative'></a>",
            );
        }

        let divProccess = $("<div class='position-absolute translate-middle top-50 left-0 ml-3'><div class='type-icon'><span class='proccess'></span></div></div>");

        let divInfor = $("<div class='pl-5 h-100 d-flex align-items-center'></div>");
        let divChildInfor = $("<div class='w-100'></div>");
        let divOperationName = $("<div class='fs-8 bg-dark10 px-2 py-1 mr-2 rounded mb-1 w-fit-content text-truncate mw-100'>" + operationList[i].phaseName + '</div>');

        let divProcessName = $("<div class='fs-12 text-truncate'>" + operationList[i].operationName + '</div>');
        let divReportInfor = $("<div class='d-flex justify-content-between align-items-center'></div>");
        let divReportName = $("<div class='fs-10 text-truncate'>" + operationList[i].taskName + '</div>');
        let divReportCode = $("<div class='fs-8 text-secondary text-truncate'>" + operationList[i].taskCode + '</div>');

        divReportInfor.append(divReportName);
        divReportInfor.append(divReportCode);

        divChildInfor.append(divOperationName);
        divChildInfor.append(divProcessName);
        divChildInfor.append(divReportInfor);

        divInfor.append(divChildInfor);

        ahrefRequiredFlg.append(divProccess);
        ahrefRequiredFlg.append(divInfor);
        messageli.append(ahrefRequiredFlg);

        $('#continousWork-list').append(messageli);
        PICKUP.countContinousWorkReport = PICKUP.countContinousWorkReport + 1;
    }

    // show not found if
    if (PICKUP.countContinousWorkReport == 0) {
        PICKUP.showNotFoundPickupItem('#continousWork-list');
        $('#viewMenuContinuousWork').addClass('d-none');
        return;
    }
    PICKUP.showCountDisplayPickupItem('#count-ContinuousWork', PICKUP.countContinousWorkReport);
};
/**
 * sort report with warnings list
 * @param {*} operationList
 * @returns
 */
PICKUP.sortWarningList = function (operationList) {
    let newOperationList = [];
    for (let i = 0; i < operationList.length; i++) {
        if (typeof operationList[i].warningReportList === 'undefined') continue;
        if (operationList[i].warningReportList && operationList[i].warningReportList.length != 0) {
            for (let j = 0; j < operationList[i].warningReportList.length; j++) {
                let item = {
                    reportType: operationList[i].reportType,
                    operationType: operationList[i].operationType,
                    permitCodeRequiredFlg: operationList[i].permitCodeRequiredFlg,
                    operationId: operationList[i].operationId,
                    contentId: operationList[i].contentId,
                    operationName: operationList[i].operationName,
                    taskCode: operationList[i].warningReportList[j].taskCode,
                    taskKey: operationList[i].warningReportList[j].taskKey,
                    taskName: operationList[i].warningReportList[j].taskName,
                    taskType: operationList[i].warningReportList[j].taskType,
                    updateDate: operationList[i].warningReportList[j].updateDate,
                    reportStartDateString: operationList[i].warningReportList[j].reportStartDateString,
                    reportEndDateString: operationList[i].warningReportList[j].reportEndDateString,
                    processKey: operationList[i].warningReportList[j].processKey,
                    phaseNo: operationList[i].warningReportList[j].phaseNo,
                    phaseName: operationList[i].warningReportList[j].phaseName,
                };
                newOperationList.push(item);
            }
        }
    }
    newOperationList = newOperationList.sort(function (a, b) {
        if (!a.updateDate) {
            a.updateDate = '1900-01-01 00:00:00';
        }
        if (!b.updateDate) {
            b.updateDate = '1900-01-01 00:00:00';
        }
        if (a.updateDate < b.updateDate) return 1;
        if (a.updateDate > b.updateDate) return -1;
        return 0;
    });
    //console.log("newOperationList: " + JSON.stringify(newOperationList));
    return newOperationList;
};

/**
 * init Warning Report With ReportOnly Type
 * @param {*} report
 * @returns
 */
PICKUP.initWarningReportWithReportOnlyType = function (report) {
    let ele = $(
        "<li class='card mb-2'>" +
            '<a href="javascript:PICKUP.sendReportFormFromWarningReport (\'' +
            report.operationId +
            "'," +
            PICKUP.REPORT_TYPE.REPORTONLY +
            ",'" +
            report.taskKey +
            "', null,null,null);\"  class='h-100 d-block px-3 py-2 text-decoration-none text-dark position-relative'>" +
            "<div class='position-absolute translate-middle top-50 left-0 ml-3'>" +
            "<div class='type-icon'><span class='report'></span></div></div>" +
            "<div class='pl-5 h-100 d-flex align-items-center'><div class='w-100'>" +
            "<div class='fs-12 text-truncate'>" +
            report.operationName +
            '</div>' +
            "<div class='d-flex justify-content-between align-items-center'>" +
            "<div class='fs-10 text-truncate'>" +
            report.taskName +
            '</div>' +
            "<div class='fs-8 text-secondary text-truncate'> " +
            report.taskCode +
            '</div>' +
            '</div></div></div></a></li>',
    );
    return ele;
};

/**
 * init Warning Report With Inspect Type
 * @param {*} report
 * @returns
 */
PICKUP.initWarningReportWithInspectType = function (report) {
    let ele = $(
        "<li class='card mb-2'>" +
            '<a href="javascript:PICKUP.sendReportFormFromWarningReport (\'' +
            report.operationId +
            "'," +
            PICKUP.REPORT_TYPE.INSPECT +
            ",'" +
            report.taskKey +
            "', null,null,null);\"   class='h-100 d-block px-3 py-2 text-decoration-none text-dark position-relative'>" +
            "<div class='position-absolute translate-middle top-50 left-0 ml-3'>" +
            "<div class='type-icon'><span class='inspection'></span></div></div>" +
            "<div class='pl-5 h-100 d-flex align-items-center'><div class='w-100'>" +
            "<div class='fs-12 text-truncate'>" +
            report.operationName +
            '</div>' +
            "<div class='d-flex justify-content-between align-items-center'>" +
            "<div class='fs-10 text-truncate'></div>" +
            "<div class='fs-8 text-secondary text-truncate'>" +
            PICKUP.getInspectDate(report.reportStartDateString) +
            ' ~ ' +
            PICKUP.getInspectDate(report.reportEndDateString) +
            '</div></div></div></div></a></li>',
    );
    return ele;
};
/**
 * init Warning Report With AnswerReport Type
 * @param {*} report
 * @param {*} reportTypeMsg
 * @returns
 */
PICKUP.initWarningReportWithAnswerReportType = function (report, reportTypeMsg) {
    let ele = $(
        "<li class='card mb-2'>" +
            '<a href="javascript:PICKUP.sendReportFormFromWarningReport (\'' +
            report.operationId +
            "'," +
            PICKUP.REPORT_TYPE.WITHREPLY +
            ',null, null,null,' +
            report.replyNo +
            ");\" class='h-100 d-block px-3 py-2 text-decoration-none text-dark position-relative'>" +
            "<div class='position-absolute translate-middle top-50 left-0 ml-3'><div class='type-icon'>" +
            "<span class='questionary'></span></div></div><div class='pl-5 h-100 d-flex align-items-center'><div class='w-100'>" +
            "<div class='fs-8 bg-dark10 px-2 py-1 mr-2 rounded mb-1 w-fit-content text-truncate mw-100'>" +
            reportTypeMsg +
            '</div>' +
            "<div class='fs-12 text-truncate'>" +
            report.operationName +
            '</div>' +
            "<div class='d-flex justify-content-between align-items-center'>" +
            "<div class='fs-10 text-truncate'>" +
            report.taskName +
            '</div>' +
            "<div class='fs-8 text-secondary text-truncate'>" +
            report.taskCode +
            '</div>' +
            '</div></div></div></a></li>',
    );
    return ele;
};

/**
 * init Warning Report With Continuous Report Type
 * @param {*} report
 * @returns
 */
PICKUP.initWarningReportWithContinuousReportType = function (report) {
    let directKey = report.processKey;
    if (report.operationType == PICKUP.OPERATION_TYPE.VTOUR || report.operationType == PICKUP.OPERATION_TYPE.PDF) {
        directKey = report.taskKey;
        if (report.phaseNo > 1) {
            //find taskKey of phaseNo 1
            for (let k = 0; k < operationList.length; k++) {
                if (operationList[k].phaseNo == 1 && operationList[k].processKey == report.processKey) {
                    directKey = operationList[k].taskKey;
                    break;
                }
            }
        }
    }
    let ele = $(
        "<li class='card mb-2'>" +
            '<a href="javascript:PICKUP.sendReportFormFromWarningReport (\'' +
            report.operationId +
            "'," +
            PICKUP.REPORT_TYPE.WORKFLOW +
            ",null,'" +
            report.processKey +
            "' ,'" +
            report.phaseNo +
            "',null);\"  class='h-100 d-block px-3 py-2 text-decoration-none text-dark position-relative'>" +
            "<div class='position-absolute translate-middle top-50 left-0 ml-3'>" +
            "<div class='type-icon'><span class='proccess'></span></div></div>" +
            "<div class='pl-5 h-100 d-flex align-items-center'><div class='w-100'>" +
            "<div class='fs-8 bg-dark10 px-2 py-1 mr-2 rounded mb-1 w-fit-content text-truncate mw-100'>" +
            report.phaseName +
            '</div>' +
            "<div class='fs-12 text-truncate'>" +
            report.operationName +
            '</div>' +
            "<div class='d-flex justify-content-between align-items-center'>" +
            "<div class='fs-10 text-truncate'>" +
            report.taskName +
            '</div>' +
            "<div class='fs-8 text-secondary text-truncate'>" +
            report.taskCode +
            '</div>' +
            '</div></div></div></a></li>',
    );
    return ele;
};
/**
 * create Report With Warnings List html
 * @param {*} operationListOld
 * @returns
 */
PICKUP.createReportWithWarningList = function (operationListOld) {
    if (typeof operationListOld === 'undefined' || operationListOld.length < 1) {
        PICKUP.showNotFoundPickupItem('#reportWithWarnings-list');
        $('#viewMenuReportWithWarnings').addClass('d-none');
        return;
    }

    let operationList = PICKUP.sortWarningList(operationListOld);
    $('#viewMenuReportWithWarnings').removeClass('d-none');
    $('#reportWithWarnings-list').empty();
    PICKUP.countReportWithWarning = 0;

    $('#reportWithWarnings-list').addClass('task-list view-content view-block');

    const msgLevelReport = I18N.i18nText('reportLevelReport');
    const msgLevelAnswer = I18N.i18nText('reportLevelAnswer');
    for (let i = 0; i < operationList.length; i++) {
        let operationNameLi;
        switch (operationList[i].reportType) {
            case PICKUP.REPORT_TYPE.REPORTONLY:
                operationNameLi = PICKUP.initWarningReportWithReportOnlyType(operationList[i]);
                break;
            case PICKUP.REPORT_TYPE.INSPECT:
                operationNameLi = PICKUP.initWarningReportWithInspectType(operationList[i]);
                break;
            case PICKUP.REPORT_TYPE.WITHREPLY: // report answer
                if (operationList[i].taskType == PICKUP.REPLYREPORT_TASK_TYPE.REPORT) {
                    operationNameLi = PICKUP.initWarningReportWithAnswerReportType(operationList[i], msgLevelReport);
                } else {
                    operationNameLi = PICKUP.initWarningReportWithAnswerReportType(operationList[i], msgLevelAnswer);
                }
                break;
            case PICKUP.REPORT_TYPE.WORKFLOW: // continouswork
                operationNameLi = PICKUP.initWarningReportWithContinuousReportType(operationList[i]);
                break;
        }
        $('#reportWithWarnings-list').append(operationNameLi);
        PICKUP.countReportWithWarning = PICKUP.countReportWithWarning + 1;
    }
    // show not found if
    if (PICKUP.countReportWithWarning == 0) {
        PICKUP.showNotFoundPickupItem('#reportWithWarnings-list');
        $('#viewMenuReportWithWarnings').addClass('d-none');
        return;
    }
    PICKUP.showCountDisplayPickupItem('#count-ReportWithWarnings', PICKUP.countReportWithWarning);
};

/**
 * get Inspect Date format
 * @param {*} dateString
 * @returns
 */
PICKUP.getInspectDate = function (dateString) {
    let date = new Date(dateString);
    return date.getFullYear() + '/' + ('0' + (date.getMonth() + 1)).slice(-2) + '/' + ('0' + date.getDate()).slice(-2);
};

/**
 * send data to open report form from New report pickup
 * @param operarionId
 * @returns
 */
PICKUP.sendReportFormFromNewReport = function (operationId) {
    //Transition to the report form or operation list screen
    const url = 'reportForm.html?operationId=' + operationId;
    COMMON.avwScreenMove(url);
};

/**
 * send data to open report form of event click continuous work operation report
 * @param {*} operationId
 * @param {*} taskKey
 * @param {*} processKey
 * @param {*} phaseNo
 */
PICKUP.sendReportFormFromContinuousWork = function (operationId, taskKey, processKey, phaseNo) {
    //Transition to the report form or operation list screen
    const url = 'reportForm.html?operationId=' + operationId + '&processKey=' + processKey + '&phaseNo=' + phaseNo;
    COMMON.avwScreenMove(url);
};

/**
 * send data to open report form of event click warning operation reports
 * @param {*} operationId
 * @param {*} reportType
 * @param {*} taskKey
 * @param {*} processKey
 * @param {*} phaseNo
 * @param {*} replyNo
 */
PICKUP.sendReportFormFromWarningReport = function (operationId, reportType, taskKey, processKey, phaseNo, replyNo) {
    //Transition to the report form or operation list screen
    let url = 'reportForm.html?operationId=' + operationId;
    switch (reportType) {
        case PICKUP.REPORT_TYPE.REPORTONLY:
            url += '&taskKey' + taskKey;
            break;
        case PICKUP.REPORT_TYPE.INSPECT:
            url += '&taskKey' + taskKey;
            break;
        case PICKUP.REPORT_TYPE.WITHREPLY:
            url += '&taskKey' + taskKey;
            url += '&replyNO' + replyNo;
            break;
        case PICKUP.REPORT_TYPE.WORKFLOW:
            url += '&processKey' + processKey;
            url += '&phaseNo' + phaseNo;
            break;
    }

    COMMON.avwScreenMove(url);
};