jlu344 / angular

0 stars 0 forks source link

HomePage Markup #5

Open jlu344 opened 8 years ago

jlu344 commented 8 years ago
LMA Requests
Margin Requests
jlu344 commented 8 years ago

app.controller("HomePageController", [ "$rootScope", "$scope", "dataFactoryConcession", "dataFactoryUser", "$location", "$filter", "$uibModal", "UserType", function ($rootScope, $scope, dataFactoryConcession, dataFactoryUser, $location, $filter, $uibModal, UserType) {

    $scope.tabs = { active: 0 };
    $scope.selectTabs = function (systemId) {
        $rootScope.systemId = systemId;
        resetLocalScopeVariables();
    };

    var trimStart = function (character, string) {
        var startIndex = 0;
        while (string[startIndex] === character) {
            startIndex++;
        }
        return string.substr(startIndex);
    };

    var trimEnd = function (character, string) {
        var startIndex = 0;
        var endIndex = string.length;
        while (string[endIndex] === character) {
            endIndex--;
        }
        return string.substr(startIndex, endIndex);
    };

    var openDeleteConfirmation = function (size) {
        var textInPopup = "<p>Are you sure you want to delete?</p>";
        var modalInstance = $uibModal.open({
            animation: true,
            templateUrl: "HomePagePopup.html",
            controller: "HomePagePopup",
            windowClass: "modal-popup",
            size: size,
            resolve: {
                param: function () {
                    return { popuptext: textInPopup, proceedtext: "OK", popupheader: "Confirm" }
                }
            }
        });

        modalInstance.result.then(deleteRequest, function () {
        });
    };

    var openAssignMLConfirmation = function (size) {
        $scope.modal = { AssignMLNumber: "" };

        var textInPopup = "<p>Enter ML number below</p>";
        var modalInstance = $uibModal.open({
            animation: true,
            templateUrl: "HomePageAssignMLPopup.html",
            controller: "AssignMLNumberPopup",
            windowClass: "modal-popup",
            size: size,
            scope: $scope,
            resolve: {
                param: function () {
                    return { popuptext: textInPopup, proceedtext: "Assign", prospectNumber: $scope.AssignMLNumberFor.ProspectNumber, statusId: $scope.AssignMLNumberFor.StatusId, purposeIndicator: $scope.AssignMLNumberFor.PurposeIndicator }
                },
                dataFactoryConcession: dataFactoryConcession,
                rootScope: $rootScope
            }
        });

        modalInstance.result.then(function () {

        }, function () {
        });
    };

    var changeApproverForm = function (acctNumber, faMLID, oldApproverMLID, size) {
        $scope.modal = { AssignMLNumber: "" };
        var modalInstance = $uibModal.open({
            animation: true,
            templateUrl: "ChangeApproverPopup.html",
            controller: "ChangeApproverPopup",
            windowClass: "modal-popup",
            size: size,
            scope: $scope,
            resolve: {
                param: function () {
                    return { acctNumber: acctNumber, faMLID: faMLID, oldApproverMLID: oldApproverMLID }
                },
                dataFactoryConcession: dataFactoryConcession,
                rootScope: $rootScope
            }
        });

        modalInstance.result.then(function () {

        }, function () {
        });
    };

    //Store all approver data into $scope
    var loadApproverData = function () {
        if (!angular.isUndefined($scope.CASelectedRow)) {
            $scope.SelectedChangeApprover = null;
            $scope.ComplexApprovers = [];
            $scope.MarketApprovers = [];
            $scope.SBLApprovers = [];
            var data = $scope.CASelectedRow;
            var currentApproverStep = data.Step1StatusID == 1 ? 1 :
                data.Step2StatusID == 1 ? 2 :
                data.Step3StatusID == 1 ? 3 : 0;
            var acctNumber = data.AccountNumber;
            var faMLID = data.SubmittedFA_MLID
            var oldApproverMLID = currentApproverStep == 1 ? data.Step1Approver_MLID :
                currentApproverStep == 2 ? data.Step2Approver_MLID :
                currentApproverStep == 3 ? data.Step3Approver_MLID : null;

            dataFactoryConcession.LoadApprover(faMLID).then(function (response) {
                $scope.ApproverList = response.data;
                var nAppCount = $scope.ApproverList.length;
                for (var i = 0; i < nAppCount; i++) {
                    if ($scope.ApproverList[i].SBLTitleCode == 1) {
                        $scope.ComplexApprovers.push($scope.ApproverList[i]);
                    }
                    if ($scope.ApproverList[i].SBLTitleCode == 2) {
                        $scope.MarketApprovers.push($scope.ApproverList[i]);
                    }
                    if ($scope.ApproverList[i].SBLTitleCode == 3) {
                        $scope.SBLApprovers.push($scope.ApproverList[i]);
                    }
                }

                $scope.SBLApprovers = $filter("orderBy")($scope.SBLApprovers, 'FullName');
                //No complex level approver
                if ($scope.ComplexApprovers.length == 0) {
                    $scope.MissingComplexAdmin = true;
                } else {
                    $scope.ComplexApprovers = $filter("orderBy")($scope.ComplexApprovers, 'FullName');
                }
                if ($scope.MarketApprovers.length > 0) $scope.MarketApprovers = $filter("orderBy")($scope.MarketApprovers, 'FullName');
                if ($scope.SBLApprovers.length > 0) $scope.SBLApprovers = $filter("orderBy")($scope.SBLApprovers, 'FullName');

                $scope.PopUpApproversList = currentApproverStep == 1 ? $scope.ComplexApprovers :
                    currentApproverStep == 2 ? $scope.MarketApprovers :
                    currentApproverStep == 3 ? $scope.SBLApprovers : [];

                changeApproverForm(acctNumber, faMLID, oldApproverMLID);

            });
        }
    };

    var doAfterIndirectEmulation = {
        ViewRequest: function () {
            var account = angular.isUndefined($scope.tempValue.accountNumber) ? "" : $scope.tempValue.accountNumber;
            var statusId = angular.isUndefined($scope.tempValue.statusId) ? "" : $scope.tempValue.statusId;
            $scope.tempValue = {};
            viewRequest(account, statusId);
        },
        StartRequest: function () {
            var account = angular.isUndefined($scope.tempValue.accountNumber) ? "" : $scope.tempValue.accountNumber;
            $scope.tempValue = {};
            $rootScope.request.AccountNumber = account;
            $scope.request.AccountNumber = account;
            if ($rootScope.systemId === 1) {
                $scope.loadAccountStatus();
            } else {
                $scope.loadMarginAccountStatus();
            }
        },
        StartProspectRequest: function () {
            if ($rootScope.systemId === 1) {
                $scope.loadProspectDisclaimer();
            } else {
                $scope.loadMarginProspectDisclaimer();
            }
        }

    };

    var openIndirectEmulationConfirmation = function (producerName, producerId, mlId, account, pointofContactFA) {
        var textInPopup = "<p>This account is managed by Producer " + producerName + " (" + producerId + "). If you proceed with this request, you will be acting as that Producer within Pricing Portal.</p><p>Do you wish to proceed?</p>";
        var showPointOfContactFA = false;
        if (!angular.isUndefined(pointofContactFA)) {
            textInPopup = "<p>This account is managed by Pool Producer (" + producerId + "). If you proceed with this request, you will be acting as that Producer within Pricing Portal and will need to select a point of contact FA from within the pool.</p><p>Do you wish to proceed?</p>";
            showPointOfContactFA = true;
        }
        var modalInstance = $uibModal.open({
            animation: true,
            templateUrl: "IndirectEmulationPopup.html",
            controller: "IndirectEmulationPopup",
            windowClass: "modal-popup",
            size: 'md',
            resolve: {
                param: function () {
                    return {
                        popuptext: textInPopup, proceedtext: "Proceed", popupheader: "Proceed as Producer?",
                        PointOfContactFAEmulateUsers: pointofContactFA, showPointOfContactFA: showPointOfContactFA,
                        MlId: mlId, selectedPointOfContactFA: "0"
                    }
                }
            },
            scope: $scope
        });

        modalInstance.result.then(function () {
            $scope.tempValue.accountNumber = account;
            doAfterIndirectEmulation.StartRequest();
        }, function () {
        });
    };

    var openProspectEmulationConfirmation = function () {
        var textInPopup = "<p>Please put a Producer in-context in order to enter a Prospect Request on his or her behalf.</p>";
        $rootScope.indirectDisplayUserPopup = true;
        var modalInstance = $uibModal.open({
            animation: true,
            templateUrl: "UserContextPopup.html",
            controller: "UserContextPopup",
            windowClass: "modal-popup",
            size: 'md',
            resolve: {
                param: function () {
                    return { popuptext: textInPopup, proceedtext: "Login As", doAfterEmulation: doAfterIndirectEmulation.StartProspectRequest }
                }
            },
            scope: $scope

        });

        modalInstance.result.then(function () {
            //doIndirectEmulation(mlId);
            $rootScope.indirectDisplayUserPopup = false;
            $scope.displayUserPopup = false;
        }, function () {
            $rootScope.indirectDisplayUserPopup = false;
            $scope.displayUserPopup = false;
        });
    };

    var openIsActiveACBSConcessionPopUp = function (data) {
        var modalInstance = $uibModal.open({
            animation: true,
            templateUrl: "IsActiveACBSConcessionPopUp.html",
            controller: "IsActiveACBSConcessionPopUp",
            windowClass: "modal-popup",
            size: 'md',
            resolve: {
                param: function () {
                    return { data: data }
                }
            },
            scope: $scope
        });
        modalInstance.result.then(function () {
        }, function () {
            $scope.withdraw(data.AccountNumber);
        });
    };
    $scope.openIsActiveACBSConcessionPopUp = openIsActiveACBSConcessionPopUp;

    var openIsLMANotActivatedStateinACBSPopUp = function (data) {
        var modalInstance = $uibModal.open({
            animation: true,
            templateUrl: "IsLMANotActivatedStateinACBSPopUp.html",
            controller: "IsLMANotActivatedStateinACBSPopUp",
            windowClass: "modal-popup",
            size: 'md',
            resolve: {
                param: function () {
                    return { data: data }
                }
            },
            scope: $scope
        });
    };

    $scope.openIsLMANotActivatedStateinACBSPopUp = openIsLMANotActivatedStateinACBSPopUp;

    var getIdentity = function (faId, account, isPool) {
        if (isPool) {
            dataFactoryUser.GetUsersToEmulate($scope.UserContext.MlId, faId, 7).then(function (response) {
                var pointOfContactFAEmulateUsers = response.data;
                if (angular.isUndefined(pointOfContactFAEmulateUsers) || pointOfContactFAEmulateUsers.length === 0) {
                    $scope.AccountStatusMessage = "You do not have permission to take action against this account.";
                    return;
                } else {
                    $scope.AccountStatusMessage = "";
                    openIndirectEmulationConfirmation("", faId, faId, account, pointOfContactFAEmulateUsers);
                }
            }, function () {
                $scope.PointOfContactFAEmulateUsers = "";
            });
        } else {
            $scope.showPointOfContactFA = false;
            $scope.PointOfContactFAEmulateUsers = "";
            dataFactoryUser.GetUsersToEmulate($scope.LoginUserContext.MlId, faId, 5).then(function (response) {
                var userData = response.data;
                if (angular.isUndefined(userData) || userData.length === 0) {
                    $scope.AccountStatusMessage = "You do not have permission to take action against this account.";
                    return;
                } else {
                    userData = userData[0];
                    $scope.AccountStatusMessage = "";
                    openIndirectEmulationConfirmation(userData.Name, faId, userData.Mlid, account);
                }

            });
        }

    };

    $scope.loadProspectUserEmulation = function () {
        $rootScope.request.IsProspectRequest = true;
        $rootScope.request.AccountNumber = ""; //Prospect Doesnt require Account number
        $scope.userPopupMode = true;
        openProspectEmulationConfirmation();
    };

    $scope.loadIndirectEmulation = function () {
        if (!angular.isUndefined($scope.LoginUserContext)) {
            dataFactoryConcession.checkFaIdForIndirectEmulation($scope.request.AccountNumber, $rootScope.systemId).then(function (response) {
                var faInfo = response.data;
                if (angular.isUndefined(faInfo.FAID) || (faInfo.FAID === "" && !faInfo.IsPool)) {
                    $scope.AccountStatusMessage = "Account not found";
                    return;
                }
                $scope.AccountStatusMessage = "";
                //For CA Login only
                if ($scope.LoginUserContext.Identity !== UserType.CA) return;
                getIdentity(faInfo.FAID, $scope.request.AccountNumber, faInfo.IsPool);
            });
        }
    };
    var withdraw = function (acct) {
        var requestMlId = $scope.SelectedInProgressMLID;
        dataFactoryConcession.recallRequest((!angular.isUndefined(acct) || acct != null) ? acct : $scope.SelectedInProgressAccount, requestMlId).then(function (response) {
            $scope.SelectedInProgressAccount = "";
            $scope.WithdrawMessage = response.data;

            if (response.data.indexOf("Error") > -1 || response.data.indexOf("Invalid") > -1)
                $scope.errorWithdraw = true;
            else {
                //TODO fix below message
                $scope.WithdrawMessage = (acct != null && acct != 0) ? null : "Request Withdrawn Successfully";
                $scope.errorWithdraw = false;
                if ($rootScope.systemId === 1) {
                    LmaRequest.LoadRequestsInRouting();
                    LmaRequest.LoadRequestsInDraft();
                } else {
                    MarginRequest.LoadRequestsInRouting();
                    MarginRequest.LoadRequestsInDraft();
                }

            }
        });
    };
    $scope.withdraw = withdraw;

    var notifyMailClient = function () {
        //alert($scope.SelectedMailTo);
        window.location = $scope.SelectedMailTo;
    };

    var LmaRequest = {
        SystemId: 1,
        LoadRequestsInDraft: function () {
            dataFactoryConcession.loadRequestInDraft($scope.LoginUserContext, this.SystemId).then(function (response) {
                var columns = $scope.Role === UserType.CA ? ["Account Number", "Producer", "Account Name", "Current Pricing Value", "Status", "Requested Spread", "Last Updated Date"]
                    : ["Account Number", "Account Name", "Current Pricing Value", "Status", "Requested Spread", "Last Updated Date"];
                var dataBind = $scope.Role === UserType.CA ? ["AccountNumber", "ProducerName", "AccountName", "LoanBalance", "StatusDesc", "CurrentNetSpreadAfterConcession", "UpdatedDate"]
                    : ["AccountNumber", "AccountName", "LoanBalance", "StatusDesc", "CurrentNetSpreadAfterConcession", "UpdatedDate"];
                var gridData = {
                    data: response.data,
                    columns: columns,
                    databind: dataBind,
                    filter: { LoanBalance: "currency", CurrentNetSpreadAfterConcession: "percentage:3", UpdatedDate: 'datetime:"MM/dd/yyyy"' },
                    customBinding: { AccountNumber: '<a ng-click="click({account:\'_VALUE_\'})">_VALUE_</a>' },
                    sort: { column: "UpdatedDate", descending: true },
                    errMessage: "There are currently no draft requests"
                };

                $scope.LmaInDraftRequests = gridData;
            });
        },
        LoadRequestsInRouting: function () {
            dataFactoryConcession.loadRequestInRouting($scope.LoginUserContext, this.SystemId).then(function (response) {
                var columns = $scope.Role === UserType.CA ? ["Account Number", "Producer", "Account Name", "Current Pricing Value", "Status", "Requested Spread", "Approvers", "Waiting For", "Since"]
                    : ["Account Number", "Account Name", "Current Pricing Value", "Status", "Requested Spread", "Approvers", "Waiting For", "Since"];
                var dataBind = $scope.Role === UserType.CA ? ["AccountNumber", "ProducerName", "AccountName", "LoanBalance", "StatusDesc", "CurrentNetSpreadAfterConcession", "ApproversDirective", "WaitingForDirective", "UpdatedDate"]
                    : ["AccountNumber", "AccountName", "LoanBalance", "StatusDesc", "CurrentNetSpreadAfterConcession", "ApproversDirective", "WaitingForDirective", "UpdatedDate"];
                var gridData = {
                    data: response.data,
                    columns: columns,
                    databind: dataBind,
                    filter: { LoanBalance: "currency", CurrentNetSpreadAfterConcession: "percentage:3", UpdatedDate: 'datetime:"MM/dd/yyyy"' },
                    customBinding: { AccountNumber: '<a ng-click="click({account:\'_VALUE_\'})">_VALUE_</a>' },
                    errMessage: "There are currently no requests in progress",
                    sort: { column: "UpdatedDate", descending: true }
                };

                $scope.LmaInProgressRequests = gridData;

            });
        },
        LoadApprovedRequests: function () {
            dataFactoryConcession.loadApprovedRequest($scope.LoginUserContext, this.SystemId).then(function (response) {
                var columns = $scope.Role === UserType.CA ? ["Account Number", "Producer", "Account Name", "Approved Pricing Value", "Status", "Approved Spread", "Approvers"]
                    : ["Account Number", "Account Name", "Approved Pricing Value", "Status", "Approved Spread", "Approvers"];
                var dataBind = $scope.Role === UserType.CA ? ["AccountNumber", "ProducerName", "AccountName", "PricingValueApproved", "StatusDesc", "CurrentNetSpreadAfterConcession", "ApproversDirective"]
                    : ["AccountNumber", "AccountName", "PricingValueApproved", "StatusDesc", "CurrentNetSpreadAfterConcession", "ApproversDirective"];
                var gridData = {
                    data: response.data,
                    columns: columns,
                    databind: dataBind,
                    customBinding: { AccountNumber: '<a ng-click="click({account:\'_VALUE_\'})">_VALUE_</a>' },
                    filter: { PricingValueApproved: "currency", CurrentNetSpreadAfterConcession: "percentage:3" },
                    errMessage: "There are currently no approved requests"
                };

                $scope.LmaApprovedRequests = gridData;
            });
        },
        LoadApprovedRequestsForApproverHome: function () {
            dataFactoryConcession.loadApprovedRequest($scope.LoginUserContext, this.SystemId).then(function (response) {
                var gridData = {
                    data: response.data,
                    columns: ["Account Number", "Account Name", "Approved Pricing Value", "Status", "Approved Spread", "Approvers"],
                    databind: ["AccountNumber", "AccountName", "PricingValueApproved", "StatusDesc", "CurrentNetSpreadAfterConcession", "ApproversDirective"],
                    filter: { PricingValueApproved: "currency", CurrentNetSpreadAfterConcession: "percentage:3" },
                    customBinding: { AccountNumber: '<a ng-click="click({account:\'_VALUE_\'})">_VALUE_</a>' },
                    errMessage: "There are currently no approved requests"
                };

                $scope.LmaApprovedRequests = gridData;
            });
        },
        LoadUploadedRequests: function () {
            dataFactoryConcession.loadUploadedRequest($scope.LoginUserContext, this.SystemId).then(function (response) {
                var columns = $scope.Role === UserType.CA ? ["Account Number", "Producer", "Account Name", "Approved Pricing Value", "Status", "Approved Spread", "Approved Date", "Uploaded Date"]
                    : ["Account Number", "Account Name", "Approved Pricing Value", "Status", "Approved Spread", "Approved Date", "Uploaded Date"];
                var dataBind = $scope.Role === UserType.CA ? ["AccountNumber", "ProducerName", "AccountName", "PricingValueApproved", "StatusDesc", "CurrentNetSpreadAfterConcession", "UpdatedDate", "RequestArchiveDate"]
                    : ["AccountNumber", "AccountName", "PricingValueApproved", "StatusDesc", "CurrentNetSpreadAfterConcession", "UpdatedDate", "RequestArchiveDate"];
                var gridData = {
                    data: response.data,
                    columns: columns,
                    databind: dataBind,
                    filter: { PricingValueApproved: "currency", CurrentNetSpreadAfterConcession: "percentage:3", UpdatedDate: 'datetime:"MM/dd/yyyy"', RequestArchiveDate: 'datetime:"MM/dd/yyyy"' },
                    customBinding: { AccountNumber: '<a ng-click="click({account:\'_VALUE_\',index: \'_INDEX_\'})">_VALUE_</a>' },
                    errMessage: "There are currently no requests that are already in place",
                    sort: { column: "RequestArchiveDate", descending: true }
                };

                $scope.LmaUploadedRequests = gridData;
            });
        },
        LoadFAHomeTables: function () {
            this.LoadRequestsInDraft();
            this.LoadRequestsInRouting();
            this.LoadApprovedRequests();
            this.LoadUploadedRequests();
        },
        LoadCAHomeTables: function () {
            this.LoadRequestsInDraft();
            this.LoadRequestsInRouting();
            this.LoadApprovedRequests();
            this.LoadUploadedRequests();
        },
        LoadApproverHomeTables: function () {
            this.LoadRequestsInRouting();
            this.LoadApprovedRequestsForApproverHome();
        }
    };

    $scope.LMARequest = LmaRequest;

    var homePageActions = {
        draftActions: [
            { l: "Action..", fn: false },
            { l: "Assign ML #", fn: openAssignMLConfirmation },
            { l: "Delete", fn: openDeleteConfirmation }
        ],
        inProgressActions: [
            { l: "Action..", fn: false },                
            { l: "Assign ML #", fn: openAssignMLConfirmation },
            { l: "Change Approver", fn: loadApproverData },
            { l: "Notify Approver", fn: notifyMailClient },
            { l: "Withdraw", fn: withdraw }
        ],
        approvedActions: [
            { l: "Action..", fn: false },
            { l: "Assign ML #", fn: openAssignMLConfirmation }
        ],
        inRoutingActions: [
            { l: "Action..", fn: false },
            { l: "Change Approver", fn: loadApproverData },
            { l: "Notify FA", fn: notifyMailClient }
        ],
        approverApprovedActions: [
            { l: "Action..", fn: false },
            { l: "Notify FA", fn: notifyMailClient }
        ]
    };
    $scope.LMAActions = {
        draftRequest: homePageActions.draftActions,
        progressRequest: homePageActions.inProgressActions,
        approvedRequest: homePageActions.approvedActions,
        routingRequest: homePageActions.inRoutingActions,
        approverApprovedActions: homePageActions.approverApprovedActions
    }

    var MarginRequest = {
        SystemId: 0,
        LoadRequestsInDraft: function () {
            dataFactoryConcession.loadRequestInDraft($scope.LoginUserContext, this.SystemId).then(function (response) {
                var columns = $scope.Role === UserType.CA ? ["Account Number", "Producer", "Account Name", "Margin Debit Balance", "Status", "Requested Discount", "Last Updated Date"]
                    : ["Account Number", "Account Name", "Margin Debit Balance", "Status", "Requested Discount", "Last Updated Date"];
                var dataBind = $scope.Role === UserType.CA ? ["AccountNumber", "ProducerName", "AccountName", "LoanBalance", "StatusDesc", "ConcessionRequested", "UpdatedDate"]
                    : ["AccountNumber", "AccountName", "LoanBalance", "StatusDesc", "ConcessionRequested", "UpdatedDate"];
                var gridData = {
                    data: response.data,
                    columns: columns,
                    databind: dataBind,
                    filter: { LoanBalance: "currency", ConcessionRequested: "percentage:3", UpdatedDate: 'datetime:"MM/dd/yyyy"' },
                    customBinding: { AccountNumber: '<a ng-click="click({account:\'_VALUE_\'})">_VALUE_</a>' },
                    sort: { column: "UpdatedDate", descending: true },
                    errMessage: "There are currently no draft requests"
                };

                $scope.MarginInDraftRequests = gridData;
            });
        },
        LoadRequestsInRouting: function () {
            dataFactoryConcession.loadRequestInRouting($scope.LoginUserContext, this.SystemId).then(function (response) {
                var columns = $scope.Role === UserType.CA ? ["Account Number", "Producer", "Account Name", "Margin Debit Balance", "Status", "Requested Discount", "Approvers", "Waiting For", "Since"]
                    : ["Account Number", "Account Name", "Margin Debit Balance", "Status", "Requested Discount", "Approvers", "Waiting For", "Since"];
                var dataBind = $scope.Role === UserType.CA ? ["AccountNumber", "ProducerName", "AccountName", "LoanBalance", "StatusDesc", "ConcessionRequested", "ApproversDirective", "WaitingForDirective", "UpdatedDate"]
                    : ["AccountNumber", "AccountName", "LoanBalance", "StatusDesc", "ConcessionRequested", "ApproversDirective", "WaitingForDirective", "UpdatedDate"];
                var gridData = {
                    data: response.data,
                    columns: columns,
                    databind: dataBind,
                    filter: { LoanBalance: "currency", ConcessionRequested: "percentage:3", UpdatedDate: 'datetime:"MM/dd/yyyy"' },
                    customBinding: { AccountNumber: '<a ng-click="click({account:\'_VALUE_\'})">_VALUE_</a>' },
                    errMessage: "There are currently no requests in progress",
                    sort: { column: "UpdatedDate", descending: true }
                };

                $scope.MarginInProgressRequests = gridData;

            });
        },
        LoadApprovedRequests: function () {
            dataFactoryConcession.loadApprovedRequest($scope.LoginUserContext, this.SystemId).then(function (response) {
                var columns = $scope.Role === UserType.CA ? ["Account Number", "Producer", "Account Name", "Margin Debit Balance", "Status", "Approved Discount", "Approvers"]
                    : ["Account Number", "Account Name", "Margin Debit Balance", "Status", "Approved Discount", "Approvers"];
                var dataBind = $scope.Role === UserType.CA ? ["AccountNumber", "ProducerName", "AccountName", "LoanBalance", "StatusDesc", "ConcessionRequested", "ApproversDirective"]
                    : ["AccountNumber", "AccountName", "LoanBalance", "StatusDesc", "ConcessionRequested", "ApproversDirective"];
                var gridData = {
                    data: response.data,
                    columns: columns,
                    databind: dataBind,
                    filter: { LoanBalance: "currency", ConcessionRequested: "percentage:3" },
                    customBinding: { AccountNumber: '<a ng-click="click({account:\'_VALUE_\'})">_VALUE_</a>' },
                    errMessage: "There are currently no approved requests"
                };

                $scope.MarginApprovedRequests = gridData;
            });
        },
        LoadApprovedRequestsForApproverHome: function () {
            dataFactoryConcession.loadApprovedRequest($scope.LoginUserContext, this.SystemId).then(function (response) {
                var gridData = {
                    data: response.data,
                    columns: ["Account Number", "Account Name", "Margin Debit Balance", "Status", "Approved Discount", "Approvers"],
                    databind: ["AccountNumber", "AccountName", "LoanBalance", "StatusDesc", "ConcessionRequested", "ApproversDirective"],
                    filter: { LoanBalance: "currency", ConcessionRequested: "percentage:3" },
                    customBinding: { AccountNumber: '<a ng-click="click({account:\'_VALUE_\'})">_VALUE_</a>' },
                    errMessage: "There are currently no approved requests"
                };

                $scope.MarginApprovedRequests = gridData;
            });
        },
        LoadUploadedRequests: function () {
            dataFactoryConcession.loadUploadedRequest($scope.LoginUserContext, this.SystemId).then(function (response) {
                var columns = $scope.Role === UserType.CA ? ["Account Number", "Producer", "Account Name", "Margin Debit Balance", "Status", "Approved Discount", "Approved Date", "Uploaded Date"]
                    : ["Account Number", "Account Name", "Margin Debit Balance", "Status", "Approved Discount", "Approved Date", "Uploaded Date"];
                var dataBind = $scope.Role === UserType.CA ? ["AccountNumber", "ProducerName", "AccountName", "PricingValueApproved", "StatusDesc", "ConcessionRequested", "UpdatedDate", "RequestArchiveDate"]
                    : ["AccountNumber", "AccountName", "PricingValueApproved", "StatusDesc", "ConcessionRequested", "UpdatedDate", "RequestArchiveDate"];
                var gridData = {
                    data: response.data,
                    columns: columns,
                    databind: dataBind,
                    filter: { PricingValueApproved: "currency", ConcessionRequested: "percentage:3", UpdatedDate: 'datetime:"MM/dd/yyyy"', RequestArchiveDate: 'datetime:"MM/dd/yyyy"' },
                    customBinding: { AccountNumber: '<a ng-click="click({account:\'_VALUE_\'})">_VALUE_</a>' },
                    errMessage: "There are currently no requests that are already in place",
                    sort: { column: "RequestArchiveDate", descending: true }
                };

                $scope.MarginUploadedRequests = gridData;
            });
        },
        LoadFAHomeTables: function () {
            this.LoadRequestsInDraft();
            this.LoadRequestsInRouting();
            this.LoadApprovedRequests();
            this.LoadUploadedRequests();
        },
        LoadCAHomeTables: function () {
            this.LoadRequestsInDraft();
            this.LoadRequestsInRouting();
            this.LoadApprovedRequests();
            this.LoadUploadedRequests();
        },
        LoadApproverHomeTables: function () {
            this.LoadRequestsInRouting();
            this.LoadApprovedRequestsForApproverHome();
        }
    };

    $scope.MarginRequest = MarginRequest;

    $scope.MarginActions = {
        draftRequest: homePageActions.draftActions,
        progressRequest: homePageActions.inProgressActions,
        approvedRequest: homePageActions.approvedActions,
        routingRequest: homePageActions.inRoutingActions,
        approverApprovedActions: homePageActions.approverApprovedActions
    };
    var deleteRequest = function () {
        var requestMlId = $scope.SelectDraftMLID;
        dataFactoryConcession.deleteRequest($scope.SelectedDraftAccount, requestMlId).then(function (response) {
            $scope.SelectedDraftAccount = "";
            $scope.DeleteMessage = response.data;
            if (response.data.indexOf("Error") > -1 || response.data.indexOf("Invalid") > -1)
                $scope.errorDeleting = true;
            else {
                $scope.errorDeleting = false;
                if ($rootScope.systemId === 1)
                    LmaRequest.LoadRequestsInDraft();
                else
                    MarginRequest.LoadRequestsInDraft();
            }

        });
    };

    var reloadSpecificTable = function (systemId, statusId) {
        if (systemId == 1 && statusId == 0) {
            LmaRequest.LoadRequestsInDraft();
        } else if (systemId == 1 && statusId == 1) {
            LmaRequest.LoadRequestsInRouting();
        } else if (systemId == 1 && statusId == 4) {
            LmaRequest.LoadApprovedRequests();
        } else if (systemId == 0 && statusId == 0) {
            MarginRequest.LoadRequestsInDraft();
        } else if (systemId == 0 && statusId == 1) {
            MarginRequest.LoadRequestsInRouting();
        } else if (systemId == 0 && statusId == 4) {
            MarginRequest.LoadApprovedRequests();
        }
    }

    $scope.ReloadSpecificTable = reloadSpecificTable;

    var loadFAHomeTables = function () {
        LmaRequest.LoadFAHomeTables();
        MarginRequest.LoadFAHomeTables();
    };

    var loadCAHomeTables = function () {
        LmaRequest.LoadCAHomeTables();
        MarginRequest.LoadCAHomeTables();
    };

    var loadApproverHomeTables = function () {
        $scope.Role = "A";
        LmaRequest.LoadApproverHomeTables();
        MarginRequest.LoadApproverHomeTables();
    };

    var loadFAHomePage = function () {
        if (!angular.isUndefined($scope.LoginUserContext)) {
            $rootScope.request.AccountNumber = "";
            $scope.Role = "FA";
            loadFAHomeTables();
        }
    }

    var loadCAHomePage = function () {
        if (!angular.isUndefined($scope.LoginUserContext)) {
            $rootScope.request.AccountNumber = "";
            $scope.Role = UserType.CA;
            $scope.$on("LoadCAHomePage", function () {
                var faMlId = "";
                for (var i = 0; i < $scope.EmulateUsers.length; i++) {
                    faMlId += $scope.EmulateUsers[i].Mlid;
                    if (i !== $scope.EmulateUsers.length - 1)
                        faMlId += ",";
                }
                $scope.LoginUserContext.FaMlIds = faMlId;
                loadCAHomeTables();
            });

        }
    };

    var loadApproverHomePage = function () {
        if (!angular.isUndefined($scope.LoginUserContext)) {
            $rootScope.request.AccountNumber = "";
            loadApproverHomeTables();
        }
    };

    var resetLocalScopeVariables = function () {
        $scope.SelectedDraftAccount = ""; // Set default
        $scope.SelectedInProgressAccount = ""; // Set default
        $scope.SelectedApprovedAccount = ""; // Set default
        $scope.DeleteMessage = "";
        $scope.AssignMLMessage = "";
        $scope.WithdrawMessage = "";
        $scope.SelectedMailTo = "";
        $scope.AccountStatusMessage = "";
        $scope.AssignMLNumberFor = {
            ProspectNumber: "",
            PurposeIndicator: "",
            StatusId: ""
        };
        $scope.SelectDraftMLID = "";
        $scope.SelectedInProgressMLID = "";
        $scope.CASelectedRow = {};
        $scope.tempValue = {};
        if (!angular.isUndefined($rootScope.request)) {
            $rootScope.request.AccountNumber = "";
        }
    };

    var loadRespectiveHomePage = function () {
        resetLocalScopeVariables();

        $scope.tabs.active = $rootScope.systemId === 0 ? 1 : 0;
        var requestedHomePage = $location.path();
        if (requestedHomePage.indexOf("FAHomePage") > -1)
            loadFAHomePage();
        else if (requestedHomePage.indexOf("CAHomePage") > -1)
            loadCAHomePage();
        else if (requestedHomePage.indexOf("Approver") > -1)
            loadApproverHomePage();

    };

    var determinLmaState = function () {
        dataFactoryConcession.DeterminLmaState($scope.request.AccountNumber).then(function (response) {
            if (!angular.isUndefined(response.data)) {
                $scope.CurrentLMAState = response.data;
                if (!angular.isUndefined($scope.CurrentLMAState) && $scope.CurrentLMAState != 'Activated') {
                    $scope.openIsLMANotActivatedStateinACBSPopUp({ AccountNumber: $scope.request.AccountNumber, LMAState: $scope.CurrentLMAState });
                }
                else {
                    $rootScope.request.AccountNumber = $scope.request.AccountNumber;
                    $location.path("Request");
                }
            }
        });
    };

    var validateAccountStatus = function () {
        if (!angular.isUndefined($scope.LoginUserContext)) {
            dataFactoryConcession.validateAccountStatus($scope.request.AccountNumber, $scope.LoginUserContext, $rootScope.systemId, "").then(function (response) {
                if (!angular.isUndefined(response.data)) {
                    if (response.data === "SUCCESS") {
                        determinLmaState();
                    } else {
                        $scope.AccountStatusMessage = response.data;
                    }
                }
            });
        }
    };

    var validateMarginAccountStatus = function () {
        if (!angular.isUndefined($scope.LoginUserContext)) {
            dataFactoryConcession.validateAccountStatus($scope.request.AccountNumber, $scope.LoginUserContext, $rootScope.systemId, "").then(function (response) {
                if (!angular.isUndefined(response.data)) {
                    if (response.data === "SUCCESS") {
                        $rootScope.request.AccountNumber = $scope.request.AccountNumber;
                        $location.path("MarginRequest");
                    } else {
                        $scope.AccountStatusMessage = response.data;
                    }
                }
            });
        }
    };

    $scope.$on("UserContextLoaded", function () {
        if (!angular.isUndefined($scope.LoginUserContext)) {
            if ($scope.InitialValues.LMTPost != null && $scope.InitialValues.LMTPost != '') {
                $scope.loadProspectDisclaimer()
                return;
            }
            loadRespectiveHomePage();
        }
    });

    $scope.status = {
        isDraftOpen: true,
        isProgressOpen: true,
        isApprovedOpen: true,
        isUploadedOpen: true,
        open: true
    };

    $scope.loadAccountStatus = function () {
        $rootScope.request.IsProspectRequest = false;
        validateAccountStatus();
    };

    $scope.loadMarginAccountStatus = function () {
        $rootScope.request.IsProspectRequest = false;
        validateMarginAccountStatus();
    }

    $scope.loadProspectDisclaimer = function () {
        $rootScope.request.IsProspectRequest = true;
        $rootScope.request.AccountNumber = ""; //Prospect Doesnt require Account number
        $location.path("Request");

    };

    $scope.loadMarginProspectDisclaimer = function () {
        $rootScope.request.IsProspectRequest = true;
        $rootScope.request.AccountNumber = ""; //Prospect Doesnt require Account number
        $location.path("MarginRequest");

    };

    var getObjectFromJsonGridObject = function (gridData, accountNumber, columnName) {
        if (angular.isUndefined(gridData)) return "";
        for (var i = 0, numData = gridData.length; i < numData; i++) {

            if (gridData[i].AccountNumber === accountNumber) {
                return gridData[i][columnName];
            }
        }
        return "";
    };

    var viewRequest = function (account, statusId) {
        statusId = angular.isUndefined(statusId) ? 0 : statusId;
        $rootScope.LoadInProgressRequest = true;
        $rootScope.LoadRequestStatusId = statusId;
        var lastLetter = account.substring(7, 8);
        if (lastLetter === "P") {
            $rootScope.request.IsProspectRequest = true;
        } else
            $rootScope.request.IsProspectRequest = false;

        $rootScope.request.AccountNumber = account; //Prospect Doesnt require Account number
        //3-Uploaded,2-Rejected,5-Purged,6-Deleted
        if (statusId === 3 || statusId === 2 || statusId === 5 || statusId === 6) {
            var d;
            if ($rootScope.systemId === 1) {
                d = getObjectFromJsonGridObject($scope.LmaUploadedRequests.data, account, "RequestArchiveDate");
                $rootScope.request.ArchiveDate = $filter("datetime")(d, "yyyy-MM-dd HH:mm:ss.sss");
            } else {
                d = getObjectFromJsonGridObject($scope.MarginUploadedRequests.data, account, "RequestArchiveDate");
                $rootScope.request.ArchiveDate = $filter("datetime")(d, "yyyy-MM-dd HH:mm:ss.sss");
            }
        }

        if ($rootScope.systemId === 1) {
            $location.path("Request");
        } else {
            $location.path("MarginRequest");
        }
    }

    $scope.ViewUploadedRequest = function (account, index) {

        var requests = $rootScope.systemId === 1 ? $scope.LmaUploadedRequests : $scope.MarginUploadedRequests.data;
        var sortedGrid = $filter("orderBy")(requests.data, requests.sort.column, requests.sort.descending);

        $rootScope.LoadInProgressRequest = true;
        $rootScope.LoadRequestStatusId = 3;
        var lastLetter = account.substring(7, 8);
        if (lastLetter === "P") 
            $rootScope.request.IsProspectRequest = true;
        else
            $rootScope.request.IsProspectRequest = false;

        $rootScope.request.AccountNumber = account; //Prospect Doesnt require Account number

        var d = sortedGrid[index].RequestArchiveDate;
        $rootScope.request.ArchiveDate = $filter("datetime")(d, "yyyy-MM-dd HH:mm:ss.sss");

        if ($rootScope.systemId === 1) {
            $location.path("Request");
        } else {
            $location.path("MarginRequest");
        }
    }

    $scope.ViewRequest = function (account, statusId) {

        viewRequest(account, statusId);
    };

    $scope.ViewCARequest = function (account, statusId) {
        if ($scope.LoginUserContext.Identity === UserType.CA) {

            var mlId;
            if ($rootScope.systemId === 1) {
                mlId = getObjectFromJsonGridObject($scope.LmaInDraftRequests.data, account, "SubmittedFA_MLID");
            } else {
                mlId = getObjectFromJsonGridObject($scope.MarginInDraftRequests.data, account, "SubmittedFA_MLID");
            }
            if (mlId.length > 0) {
                $scope.tempValue.accountNumber = account;
                $scope.tempValue.statusId = statusId;
                $scope.emulateUser(mlId, doAfterIndirectEmulation.ViewRequest);

            }
        }

    };

    $scope.ViewApproverPage = function (account) {
        $rootScope.LoadInProgressRequest = true;
        $rootScope.request.AccountNumber = account;
        $rootScope.CanApproverEdit = true;
        $location.path("Approver");
    };

    $scope.ViewApproverRequest = function (account) {
        $rootScope.LoadInProgressRequest = true;
        $rootScope.request.AccountNumber = account;
        $rootScope.CanApproverEdit = false;
        $location.path("Approver");
    };

    var toggleApp = function () {
        $scope.status.isDraftOpen = $scope.status.open;
        $scope.status.isProgressOpen = $scope.status.open;
        $scope.status.isApprovedOpen = $scope.status.open;
        $scope.status.isUploadedOpen = $scope.status.open;
    };

    $scope.$watch("status.open", function (oldvalue, newvalue) {
        if (oldvalue !== newvalue)
            toggleApp();
    });

    $scope.refresh = function () {
        loadRespectiveHomePage();
    };
    var createApproverNotifyFAMailTo = function (row) {
        var accountNumber = row.AccountNumber;

        var approverEmail = "";
        if ((row.Step1StatusID == "1") || (row.Step1StatusID == "4"))
            approverEmail = approverEmail + row.Step1ApproverEMailID + ";";
        if ((row.Step2StatusID == "1") || (row.Step2StatusID == "4"))
            approverEmail = approverEmail + row.Step2ApproverEMailID + ";";
        if ((row.Step3StatusID == "1") || (row.Step3StatusID == "4"))
            approverEmail = approverEmail + row.Step3ApproverEMailID + ";";

        approverEmail = trimStart(";", approverEmail);
        approverEmail = trimEnd(";", approverEmail);

        var faEmail = row.SubmittedFAEmailID;
        if (row.SubmittedFAEmailID !== row.CreatedByEmailID) faEmail = faEmail + ";" + row.CreatedByEmailID;

        var accountName = row.AccountName;
        accountName = accountName.replace(/&/g, "and");
        accountName = accountName.replace(/'/g, " ");
        var systemName = $rootScope.systemId === 1 ? "LMA" : "Margin";
        var mailString = "mailto:" + faEmail + "?cc=" + approverEmail + "&subject=" + systemName + " Discount Request for " + accountNumber + " (" + accountName + ")";

        $scope.SelectedMailTo = mailString;
    };

    $scope.SelectInRoutingGrid = function (row) {
        var accountNumber = row.AccountNumber;
        $scope.SelectedRoutingAccount = accountNumber;
        $scope.CASelectedRow = row;
        createApproverNotifyFAMailTo(row);

    };

    $scope.SelectInDraftGrid = function (row) {
        var accountNumber = row.AccountNumber;
        $scope.DeleteMessage = "";
        $scope.AssignMLMessage = "";
        $scope.SelectedDraftAccount = accountNumber;
        $scope.AssignMLNumberFor = {
            ProspectNumber: accountNumber,
            PurposeIndicator: row.Purpose,
            StatusId: row.StatusID
        };

        $scope.SelectDraftMLID = row.SubmittedFA_MLID;

    };

    var createFANotifyApproverMailTo = function (row) {
        var accountNumber = row.AccountNumber;
        var email = "";
        if (row.Step1ApproverName && row.Step1ApproverName.length > 0 && row.Step1StatusID == 1)
            email = row.Step1ApproverEMailID;
        if (row.Step2ApproverName && row.Step2ApproverName.length > 0 && row.Step2StatusID == 1)
            email = row.Step2ApproverEMailID;
        if (row.Step3ApproverName && row.Step3ApproverName.length > 0 && row.Step3StatusID == 1)
            email = row.Step3ApproverEMailID;
        var accountName = row.AccountName;
        accountName = accountName.replace(/&/g, "and");
        accountName = accountName.replace(/'/g, " ");
        var systemName = $rootScope.systemId === 1 ? "LMA" : "Margin";
        var mailString = "mailto:" + email + "&subject=" + systemName + " Discount Request for " + accountNumber + " (" + accountName + ")";

        $scope.SelectedMailTo = mailString;
    };

    $scope.SelectInProgressRequests = function (row) {
        if (angular.isObject(row)) {
            var accountNumber = row.AccountNumber;
            $scope.WithdrawMessage = "";
            $scope.SelectedInProgressAccount = accountNumber;
            $scope.AssignMLNumberFor = {
                ProspectNumber: accountNumber,
                PurposeIndicator: row.Purpose,
                StatusId: row.StatusID
            };
            $scope.CASelectedRow = row;
            $scope.SelectedInProgressMLID = row.SubmittedFA_MLID;

            createFANotifyApproverMailTo(row);
        }
    };

    $scope.SelectApprovedGrid = function (row) {
        var accountNumber = row.AccountNumber;
        $scope.SelectedApprovedAccount = accountNumber;
        $scope.AssignMLNumberFor = {
            ProspectNumber: accountNumber,
            PurposeIndicator: row.Purpose,
            StatusId: row.StatusID
        };
        createApproverNotifyFAMailTo(row);
    };

    loadRespectiveHomePage(); // Load after route to FA Home Page

}

]);

app.controller("HomePagePopup", [ "$scope", "$uibModalInstance", "param", function ($scope, $uibModalInstance, param) {

    $scope.param = param;

    $scope.ok = function () {
        $uibModalInstance.close();
    };

    $scope.cancel = function () {
        $uibModalInstance.dismiss("cancel");
    };
}

]);

app.controller("IndirectEmulationPopup", [ "$scope", "$uibModalInstance", "param", function ($scope, $uibModalInstance, param) {

    $scope.param = param;

    var isPool = param.showPointOfContactFA;
    var closePopup = function () {
        $uibModalInstance.close();
    };

    $scope.ok = function () {
        if (!angular.isUndefined($scope.param.selectedPointOfContactFA) && $scope.param.selectedPointOfContactFA.length > 0 && isPool)
            $scope.selectedUser = $scope.param.MlId + "|" + isPool + "|" + $scope.param.selectedPointOfContactFA;
        else {
            $scope.selectedUser = $scope.param.MlId;
        }
        $scope.emulateUser($scope.selectedUser, closePopup);
    };

    $scope.cancel = function () {
        $uibModalInstance.dismiss("cancel");
    };
}

]);

app.controller("UserContextPopup", [ "$scope", "$uibModalInstance", "param", "dataFactoryUser", function ($scope, $uibModalInstance, param, dataFactoryUser) {

    $scope.param = param;

    $scope.UserSelectedInDropDown = function () {
        if ($scope.selectedUser.length > 0 && $scope.selectedUser.indexOf("|") > -1) {
            var arSelectedUser = $scope.selectedUser.split("|");
            var mlId = arSelectedUser[0];
            var isPool = arSelectedUser[1].toLowerCase() === "true";
            if (isPool) {
                dataFactoryUser.GetUsersToEmulate($scope.UserContext.MlId, mlId, 7).then(function (response) {
                    $scope.PointOfContactFAEmulateUsers = response.data;
                    $scope.selectedPointOfContactFA = "0";
                    $scope.showPointOfContactFA = true;
                }, function () {
                    $scope.PointOfContactFAEmulateUsers = "";
                });
            } else {
                $scope.showPointOfContactFA = false;
                $scope.PointOfContactFAEmulateUsers = "";
            }
        } else {
            $scope.showPointOfContactFA = false;
            $scope.PointOfContactFAEmulateUsers = "";
        }
    };

    $scope.ok = function () {
        if (!angular.isUndefined($scope.selectedPointOfContactFA) && $scope.selectedPointOfContactFA.length > 0 && $scope.showPointOfContactFA)
            $scope.selectedUser = $scope.selectedUser + "|" + $scope.selectedPointOfContactFA;
        $scope.emulateUser($scope.selectedUser, param.doAfterEmulation);
        $uibModalInstance.close();
    };

    $scope.cancel = function () {
        $uibModalInstance.dismiss("cancel");
    };
}

]);

app.controller("AssignMLNumberPopup", [ "$scope", "$uibModalInstance", "param", "dataFactoryConcession", "$rootScope", function ($scope, $uibModalInstance, param, dataFactoryConcession, $rootScope) {

    $scope.AccountStatusMessage = "";
    $scope.param = param;

    var doAssignMLAccountNumber = function (accountNumber, prospectNumber, statusId) {
        dataFactoryConcession.AssignAccountNumber(accountNumber, prospectNumber, $scope.LoginUserContext, $rootScope.systemId).then(function (response) {
            if (response.data.StatusCode == 0) {
                if (statusId > 0 && $rootScope.systemId == 1) {
                    dataFactoryConcession.GetACBSAccountDetail(accountNumber).then(function (response) {
                        if (response.data != '' && response.data.CurrentConcession > 0) {
                            $scope.openIsActiveACBSConcessionPopUp(response.data);
                        }
                    });
                }
                $scope.ReloadSpecificTable($rootScope.systemId, statusId);
                $uibModalInstance.close();
            } else {
                $scope.AccountStatusMessage = response.data.StatusDescription;
            }

        }, function () {
            $scope.AccountStatusMessage = "Error Assigning ML Number";
        });
    };

    var validateMlAccountNumber = function (accountNumber) {
        if (!angular.isUndefined($scope.LoginUserContext)) {
            dataFactoryConcession.validateAccountStatus(accountNumber, $scope.LoginUserContext, $rootScope.systemId, param.purposeIndicator).then(function (response) {
                if (!angular.isUndefined(response.data)) {
                    if (response.data === "SUCCESS") {
                        doAssignMLAccountNumber(accountNumber, param.prospectNumber, param.statusId);
                    } else {
                        $scope.AccountStatusMessage = response.data;
                    }
                }
            });
        }
    };

    $scope.ok = function () {
        validateMlAccountNumber($scope.modal.AssignMLNumber);
    };

    $scope.cancel = function () {
        $uibModalInstance.dismiss("cancel");
    };
}

]);

app.controller("IsActiveACBSConcessionPopUp", [ "$rootScope", "$scope", "$uibModalInstance", "param", "$filter", function ($rootScope, $scope, $uibModalInstance, param, $filter) { $scope.ok = function () { $uibModalInstance.dismiss("cancel"); }; $scope.AccountNumber = param.data.AccountNumber; $scope.CurrentConcession = $filter("percentage")(param.data.CurrentConcession, 3); } ]);

app.controller("ChangeApproverPopup", [ "$rootScope", "$scope", "$uibModalInstance", "dataFactoryConcession", "param", function ($rootScope, $scope, $uibModalInstance, dataFactoryConcession, param) { $scope.acctNumber = param.acctNumber; $scope.faMLID = param.faMLID; $scope.oldApproverMLID = param.oldApproverMLID;

    $scope.ok = function () {
        ChangeApprover();
    };

    $scope.cancel = function () {
        $uibModalInstance.dismiss("cancel");
    };

    var ChangeApprover = function () {
        var selApprover = $scope.SelectedChangeApprover;
        var newApproverMLID = selApprover.MLID;

        dataFactoryConcession.ChangeApprover($scope.acctNumber, $scope.faMLID, $scope.oldApproverMLID, newApproverMLID).then(function (response) {
            if (!angular.isUndefined(response.data)) {
                if (response.data.StatusCode === "SUCCESS") {
                    $rootScope.systemId === 1 ? $scope.LMARequest.LoadRequestsInRouting() : $rootScope.systemId === 0 ? $scope.MarginRequest.LoadRequestsInRouting() : null;
                    $scope.ChangeApproverMessage = "";
                    $uibModalInstance.dismiss("cancel");
                } 
                else if (response.data.StatusDescription) {
                    $scope.ChangeApproverMessage = response.data.StatusDescription;
                }
                else{
                    $scope.ChangeApproverMessage="Change Approver Failed!";
                }
            }

        });

    }

}

]);

app.controller("IsLMANotActivatedStateinACBSPopUp", [ "$rootScope", "$scope", "$uibModalInstance", "param", "$filter", function ($rootScope, $scope, $uibModalInstance, param, $filter) { $scope.cancel = function () { $uibModalInstance.dismiss("cancel"); }; $scope.proceed = function () { $scope.loadProspectDisclaimer(); }; $scope.AccountNumber = param.data.AccountNumber; $scope.LMAState = param.data.LMAState; } ]);