﻿'use strict';
angular.module("ngAdminApp", ['ngSanitize'])
    .controller("companySplitCtrl", ["$scope", "$http", "$filter", function ($scope, $http, $filter) {

        $scope.itemsPerPage = 10;
        $scope.maxSize = 10;
        $scope.LabelShowSuccess = false;

        InitializeSplitModel();
        GetAllCompanies();
        GetAllSplits(0, 1);

        function InitializeSplitModel() {
            var model = { SplitDate: $filter("gbadmindate")(new Date()), SplitID: 0 };
            $scope.split = model;
        }
        $scope.ClearCtrl = function () {
            InitializeSplitModel();
        }
        $scope.clickonpage = function (cID, currentpage) {
            $scope.currentPage = currentpage;
            GetAllSplits(cID, currentpage);
        }

        function GetAllSplits(cId, cp) {
            blockUI("splits");
            $http({
                method: "POST",
                url: "/Admin/GetCompanySplits",
                data: { companyID: cId, page: cp }
            }).then(function (response) {
                $scope.splits = response.data;
                $scope.totalItems = response.data[0]["TotalSplits"];
                $scope.currentPage = cp;
                $scope.companyID = cId;
                unblockUI("splits");
            });
        }

        $scope.SaveUpdateSplit = function () {
            blockUI("saveSplit");
            $scope.btnDisabled = true;
            $http({
                method: "POST",
                url: "/Admin/SaveSplit",
                data: { split: $scope.split }
            }).then(function (response) {
                $scope.LabelShowSuccess = true;
                $scope.message = "Record Saved Successfully";
                GetAllSplits($scope.companyID, 1);
                InitializeSplitModel();
            }).finally(function () {
                unblockUI("saveSplit")
                $scope.btnDisabled = false;;
            });
        }

        $scope.EditSplit = function (id) {
            blockUI("saveSplit");
            $http({
                method: "POST",
                url: "/Admin/GetCompanySplitByID",
                data: { splitID: id }
            }).then(function (response) {
                response.data["SplitDate"] = $filter("gbadmindate")(response.data["SplitDate"]);
                $scope.split = response.data;
            }).finally(function () {
                unblockUI("saveSplit");
            });
        }

        $scope.onchange = function (val) {
            if (val == null) { val = 0; }
            GetAllSplits(val, 1);
        }
        $scope.AreYouSure = function (val) {
            $scope.ID = val;
        }
        $scope.deleteCompanySplit = function (val) {
            $http({
                method: "POST",
                url: "/Admin/DeleteCompanySplit",
                data: { id: val }
            }).then(function (response) {
                GetAllSplits($scope.companyID, 1);
            });
        }
        function GetAllCompanies() {
            $http({
                method: "POST",
                url: "/Admin/GetCompanies"
            }).then(function (response) {
                $scope.companies = response.data;
            });
        }

    }])
    .controller("ipoCtrl", ["$scope", "$http", "$filter", function ($scope, $http, $filter) {

        $scope.itemsPerPage = 20;
        $scope.maxSize = 10;

        GetData();
        InitializeIPOModel();

        function InitializeIPOModel() {
            var obj = { IPODate: $filter("gbadmindate")(new Date()), ID: 0, Status: 1, LangId: 1, TypeId: 1, CompanyID: 0 };
            $scope.ipo = obj;
            $scope.LabelShowSuccess = false;
            $scope.RequiredCompany = false;
            GetIPOS(1);
        }
        $scope.clickonpage = function (currentpage) {
            $scope.currentPage = currentpage;
            GetIPOS(currentpage);
        }
        function GetIPOS(cp) {
            blockUI("listOfIpo");
            $http({
                method: "POST",
                url: "/Admin/GetIPOS",
                data: { page: cp }
            }).then(function (response) {

                $scope.ipos = response.data;
                $scope.totalItems = response.data[0]["TotalIPO"];
                $scope.currentPage = cp;
                unblockUI("listOfIpo");
            });
        }

        function GetData() {

            $http({
                method: "POST",
                url: "/Admin/ManageIPO"
            }).then(function (response) {
                $scope.countries = response.data.countryList;
                $scope.ipoTypes = response.data.ipos;
                $scope.status = response.data.status;
                $scope.languages = response.data.languages;
            });
        }

        $scope.selectedTicker = function ($items) {
            $scope.ipo.Ticker = $items.originalObject.Ticker;
            $scope.ipo.CompanyID = $items.originalObject.ID;
            if ($items.originalObject.ID > 0)
            { $scope.RequiredCompany = false; }
        }

        $scope.SaveIPO = function () {
            if ($scope.ipo.CompanyID == 0) {
                $scope.RequiredCompany = true;
                return false;
            }

            blockUI("saveupdateIPO");
            $http({
                method: "POST",
                url: "/Admin/SaveUpdateIPO",
                data: { model: $scope.ipo }
            }).then(function (response) {
                $scope.LabelShowSuccess = true;
                if (response.data == -1) { $scope.message = "Error occured while saveing record"; } else { $scope.message = "Record Saved Successfully"; }
                InitializeIPOModel();
                GetIPOS(1);
            }).finally(function () {
                unblockUI("saveupdateIPO");
            });
        }

        $scope.ClearCrl = function () {
            InitializeIPOModel();
        }

        $scope.EditIPO = function (ID) {
            blockUI("saveupdateIPO");
            $http({
                method: "POST",
                url: "/Admin/GetIPOByID",
                data: { ipoID: ID }
            }).then(function (response) {
                response.data["IPODate"] = $filter("gbadmindate")(response.data["IPODate"]);
                $scope.ipo = response.data;
            }).finally(function () {
                unblockUI("saveupdateIPO");
            });
        }

    }])
    .controller("SpecialArticleCtrl", ['$scope', '$http', "$filter", function ($scope, $http, $filter) {
        $scope.LabelShowSuccess = false;
        $scope.itemsPerPage = 10;
        $scope.maxSize = 10;
        ClearControl();
        GetAllCountries();
        GetAllSpeicalArticles(1);

        $scope.clickonpage = function (currentpage) {
            $scope.currentPage = currentpage;
            GetAllSpeicalArticles(currentpage);
        }

        function ClearControl() {

            $scope.btnDisabled = false;
            GetAllSpeicalArticles(1);
            $scope.articles = { Date: $filter('gbadmindate')(new Date()), GCCID: 1, SpecialArticlesID: 0 };
        }

        $scope.ClearCtrl = function () {
            ClearControl();
        }
        function GetAllSpeicalArticles(cp) {
            blockUI('specialartilceslist');
            $http({
                method: "POST",
                url: "/Admin/GetAllArticles",
                data: { page: cp }

            }).then(function (response) {
                $scope.articleslist = response.data;
                $scope.totalItems = response.data[0]["TotalArticles"];
                $scope.currentPage = cp;
                $scope.itemsPerPage = $scope.itemsPerPage;
            }).finally(function () {
                unblockUI('specialartilceslist');
            });
        }
        function GetAllCountries() {
            $http({
                method: "POST",
                url: "/Admin/GetCountries"
            }).then(function (response) {
                $scope.countries = response.data;
            });
        }
        $scope.deleteArticle = function (val) {
            $http({
                method: "POST",
                url: "/Admin/DeleteSpecialArticle",
                data: { id: val }
            }).then(function (response) {
                GetAllSpeicalArticles(1);
            });
        }
        $scope.AreYouSure = function (val) {
            $scope.DeletedArticleId = val;
        }

        $scope.SaveSepecialArticles = function () {
            $scope.btnDisabled = true;
            blockUI("savespecialartilces");
            $http({
                method: "POST",
                url: "/Admin/SaveSpecialArticles",
                data: JSON.stringify($scope.articles),
                dataType: "json"
            }).then(function (response) {
                if (response.data > -1) {
                    $scope.message = "Article Saved Successfully";
                } else { $scope.message = "An Error Occurred While Saving The Article"; }
                $scope.LabelShowSuccess = true;
                ClearControl();
            }).finally(function () { unblockUI("savespecialartilces"); });
        }

        $scope.editSpecialArticles = function (id) {
            blockUI("savespecialartilces");
            $http({
                method: "POST",
                url: "/Admin/GetSpecialArtilceByID/" + id
            }).then(function (response) {
                response.data.Date = $filter('gbadmindate')(response.data['Date']);
                $scope.articles = response.data;
                //$scope.specialarticlesid = response.data['SpecialArticlesID'];
                //$scope.gccid = response.data['GCCID'];
                //$scope.title = response.data['Title'];
                //$scope.ishome = response.data['IsHome'];
                //$scope.arabic = response.data['Arabic'];
                //$scope.description = response.data['Description'];
                //$scope.source = response.data["Source"];
                //$scope.priorityhome = response.data["PriorityHome"];
                //$scope.prioritysubhome = response.data["PrioritySubHome"];

            }).finally(function () { unblockUI("savespecialartilces") });
        }
    }])
    .controller("viewResearchCtrl", ['$scope', '$http', "$filter", function ($scope, $http, $filter) {
        $scope.itemsPerPage = 20;
        $scope.maxSize = 10;

        $scope.init = function (obj) {
            $scope.reports = obj;
            $scope.totalItems = obj[0]["TotalReports"];
            $scope.currentPage = 1;
        }

        $scope.AreYouSure = function (val) {
            $scope.ID = val;
        }

        $scope.DeleteReport = function (ID) {
            $http({
                method: "POST",
                url: "/Admin/DeleteReport",
                data: { reportID: ID },
                dataType: JSON
            }).then(function (response) {
                if (response.data == 1) {
                    $scope.LabelShowSuccess = true;
                    $scope.message = "Report Deleted Successfully";
                    GetReports(1);
                } else {
                    $scope.message = "Error";
                }
            });
        }

        function GetReports(cp) {
            blockUI("page-wrapper");
            $http({
                method: "POST",
                url: "/Admin/ViewResearchReports",
                data: { pageNo: cp },
                dataType: JSON
            }).then(function (response) {
                $scope.reports = response.data;
                $scope.totalItems = response.data[0]["TotalReports"];
                $scope.currentPage = cp;

            }).finally(function () {
                unblockUI("page-wrapper");
            });
        }

        $scope.clickonpage = function (cp) {
            GetReports(cp);
        }

    }])
    .controller("updateQuarterCtrl", ["$scope", "$http", "$filter", function ($scope, $http, $filter) {

        $scope.LabelShowSuccess = false;
        blockUI("updateQuarterCtrl");
        $http({
            method: "POST",
            url: "/Admin/UpdateQuarter"
        }).then(function (response) {
            $scope.quarter = response.data;
        }).finally(function () {
            unblockUI("updateQuarterCtrl");
        });

        $scope.SaveQuarter = function () {

            blockUI('updateQuarterCtrl');
            $scope.btnDisabled = true;
            $http({
                method: "POST",
                url: "/Admin/SaveQuarter",
                data: { quarter: $scope.quarter },
                dataType: "json"
            }).then(function (response) {
                $scope.LabelShowSuccess = true;
                if (response.data > 0) {
                    $scope.message = "Quarter Updated Successfully";
                } else { $scope.message = "An error occured"; }
            }).finally(function () {
                unblockUI('updateQuarterCtrl');
                $scope.btnDisabled = false;
            });
        }

    }])
    .controller("fileUploadCtrl", ["$scope", "$http", "$filter", function ($scope, $http, $filter) {
        $scope.LabelShowSuccess = false;
        $scope.btnDisable = false;
        $scope.itemsPerPage = 10;
        $scope.maxSize = 10;
        GetFiles(1);

        $scope.clickonpage = function (currentpage) {
            $scope.currentPage = currentpage;
            GetFiles(currentpage);
        }

        function GetFiles(cp) {
            blockUI("filesList");
            $http({
                method: "POST",
                url: "/Admin/GetFiles",
                data: { pageNo: cp },
                dataType: JSON
            }).then(function (response) {
                $scope.files = response.data;
                $scope.totalItems = response.data[0]["TotalReports"];
                $scope.currentPage = cp;
                $scope.itemsPerPage = $scope.itemsPerPage;

            }).finally(function () {
                unblockUI("filesList");
            });
        }

        $scope.uploadFile = function () {
            blockUI("fileUpload");
            $scope.btnDisable = true;
            var file = $scope.myFile;
            if (file == null) {
                $scope.LabelShowSuccess = true;
                $scope.message = "Please Select File";
                unblockUI("fileUpload");
            }
            var fd = new FormData();
            fd.append('formData', file);
            $http({
                method: "POST",
                url: "/Admin/UploadFile",
                data: fd,
                headers: { 'Content-Type': undefined }
            }).then(function (response) {
                $scope.LabelShowSuccess = true;
                $scope.message = "File Uploaded Successfully";
                $scope.btnDisable = false;
                angular.element("input[type='file']").val(null);
                unblockUI("fileUpload");
                GetFiles(1);
            }).finally(function () {

            });
        };

        $scope.AreYouSure = function (val) {
            $scope.ID = val;
        }
        $scope.DeleteFile = function (val) {
            $http({
                method: "POST",
                url: "/Admin/DeleteFile/" + val
            }).then(function (response) {
                GetFiles(1);
                $scope.LabelShowSuccess = true;
                $scope.message = "File Deleted Successfully";
            }).finally(function () {

            });
        }

    }])
    .controller("researchReportCtrl", ["$scope", "$http", "$filter", function ($scope, $http, $filter) {

        $scope.ShowRecomendation = function (catID) {
            if (catID == 3) {
                $scope.Recomendations = true;
                $scope.isRequired = true;
            }
            else
                $scope.Recomendations = false;
        }

        $scope.SelectedCompany = function ($items) {
            $scope.report.CompanyID = $items.originalObject.ID;
            if ($items.originalObject.ID > 0)
            { $scope.RequiredCompany = false; }
        }

        InitializeResearchReportModel();
        function InitializeResearchReportModel() {
            $http({
                method: "POST",
                url: "/Admin/ResearchReports"
            }).then(function (response) {
                $scope.rptSource = response.data.reportSource;
                $scope.reportTypes = response.data.reportTypes;
                $scope.stockMarkets = response.data.stockMarkets;
                $scope.currencies = response.data.currencies;
                $scope.recomendated = response.data.recomendated;
            });

            var model = { ReportDate: $filter("gbadmindate")(new Date()), DateOfRec: $filter("gbadmindate")(new Date()), ReportID: 0, ReportCatID: 1, ReportSource: 1, CurrencyID: 1, SourceID: 1, CompanyID: 0, RecommendationID: 1 };
            $scope.report = model;
            $scope.Recomendations = false;
            arr = [];
        }
        var arr = [];
        $scope.checkedStockMarkets = function (data) {
            arr = [];
            for (var i in data) {
                if (data[i].Selected == 'Y') {
                    arr.push(data[i].StockMarketID);
                }
            }
        }

        $scope.ClearCtrl = function () {
            InitializeResearchReportModel();
        }

        $scope.SaveResearchReport = function (data) {

            if ($scope.report.ReportCatID == 3) {
                if ($scope.report.CompanyID == 0) {
                    $scope.RequiredCompany = true;
                    return false;
                }
            }

            blockUI("saveresearchreport");
            $scope.btnDisabled = true;

            var data = new FormData();
            angular.forEach($scope.report, function (value, key) {
                data.append(key, value);
            });

            if (arr.length > 0)
                data.append("StockMarketList", arr);
            else
                data.append("StockMarketList", null);

            $http({
                method: "POST",
                url: "/Admin/SaveResearchReport",
                data: data,
                transformRequest: angular.identity,
                headers: { 'Content-Type': undefined }
            }).then(function (response) {
                $scope.LabelShowSuccess = true;
                if (response.data == -1) {
                    $scope.message = "Please Select File";
                    $scope.btnDisabled = false;
                }
                else if (response.data == -2) {
                    $scope.message = "Error Uploading File Please Try Again";
                    InitializeResearchReportModel();
                } else if (response.data > 0) {
                    $scope.message = "Research Report Uploaded Successfully";
                    InitializeResearchReportModel();
                    angular.element("input[type='file']").val(null);
                }
                else if (response.data == -11) {
                    $scope.message = "Error Occured While Saving The Recoed, Pleae Try Again";
                }
            }).finally(function () {
                unblockUI("saveresearchreport");
                $scope.btnDisabled = false;
            });
        }
    }])
    .controller("uploadPirceCtrl", ["$scope", "$http", "$filter", function ($scope, $http, $filter) {
        $scope.LabelShowSuccess = false;
        $scope.btnDisable = false;
        $scope.uploadFile = function () {
            blockUI("priceUpload");
            $scope.btnDisable = true;
            var file = $scope.myFile;
            if (file == null) {
                $scope.LabelShowSuccess = true;
                $scope.message = "Please Select File";
                unblockUI("priceUpload");
            }
            var fd = new FormData();
            fd.append('formData', file);
            $scope.LabelShowSuccess = true;
            $scope.message = "Please Wait Prices are uploading";
            $http({
                method: "POST",
                url: "/Admin/UploadPriceFile",
                data: fd,
                headers: { 'Content-Type': undefined }
            }).then(function (response) {
                $scope.LabelShowSuccess = true;
                $scope.message = response.data;
                angular.element("input[type='file']").val(null);
                $scope.btnDisable = false;
            }).finally(function () {
                unblockUI("priceUpload");
            });
        };


    }])
    .controller("uploadEndofDayPirceCtrl", ["$scope", "$http", "$filter", function ($scope, $http, $filter) {
        $scope.LabelShowSuccess = false;
        $scope.btnDisable = false;
        $scope.uploadEndOfDayFile = function () {
            blockUI("priceUpload");
            $scope.btnDisable = true;
            var file = $scope.myFile;
            if (file == null) {
                $scope.LabelShowSuccess = true;
                $scope.message = "Please Select File";
                unblockUI("priceUpload");
            }
            var fd = new FormData();
            fd.append('formData', file);
            $scope.LabelShowSuccess = true;
            $scope.message = "Please Wait Prices are uploading";
            $http({
                method: "POST",
                url: "/Admin/UploadEndOfDayPriceFile",
                data: fd,
                headers: { 'Content-Type': undefined }
            }).then(function (response) {
                $scope.LabelShowSuccess = true;
                $scope.message = response.data;
                angular.element("input[type='file']").val(null);
                $scope.btnDisable = false;
            }).finally(function () {
                unblockUI("priceUpload");
            });
        };
    }])
    .controller("uploadMFundPriceCtrl", ["$scope", "$http", "$filter", function ($scope, $http, $filter) {
        $scope.LabelShowSuccess = false;
        $scope.btnDisable = false;
        $scope.uploadMFundPriceFile = function () {
            blockUI("priceUpload");
            $scope.btnDisable = true;
            var file = $scope.myFile;
            if (file == null) {
                $scope.LabelShowSuccess = true;
                $scope.message = "Please Select File";
                unblockUI("priceUpload");
            }
            var fd = new FormData();
            fd.append('formData', file);
            $scope.LabelShowSuccess = true;
            $scope.message = "Please Wait Prices are being uploading";
            $http({
                method: "POST",
                url: "/Admin/UploadMFundPriceFile",
                data: fd,
                headers: { 'Content-Type': undefined }
            }).then(function (response) {
                $scope.LabelShowSuccess = true;
                $scope.message = response.data;
                angular.element("input[type='file']").val(null);
                $scope.btnDisable = false;
            }).finally(function () {
                unblockUI("priceUpload");
            });
        };
    }])
    .controller("uploadGlobalIndices", ["$scope", "$http", "$filter", function ($scope, $http, $filter) {
        $scope.LabelShowSuccess = false;
        $scope.btnDisable = false;
        $scope.refreshGloablIndices = function () {
            blockUI("uploadIndices");
            $scope.btnDisable = true;
            $scope.LabelShowSuccess = true;
            $scope.message = "Please Wait Global Indices & Commodaties are being Uploading";
            $http({
                method: "POST",
                url: "/Admin/UploadGlobalIndices",
            }).then(function (response) {
                $scope.LabelShowSuccess = true;
                $scope.message = response.data;
                $scope.btnDisable = false;
            }).finally(function () {
                unblockUI("uploadIndices");
            });
        };


    }])
    .controller("uploadOfficialInidiceCtrl", ["$scope", "$http", "$filter", function ($scope, $http, $filter) {
        $scope.LabelShowSuccess = false;
        $scope.btnDisable = false;

        $scope.clickonpage = function (currentpage) {
            $scope.currentPage = currentpage;
            GetFiles(currentpage);
        }
        $scope.uploadFile = function () {
            blockUI("indiceUpload");
            $scope.btnDisable = true;
            var file = $scope.myFile;
            var fd = new FormData();
            fd.append('formData', file);
            $scope.LabelShowSuccess = true;
            $scope.message = "Please Wait Official Indices are uploading";
            $http({
                method: "POST",
                url: "/Admin/UploadIndiceFile",
                data: fd,
                headers: { 'Content-Type': undefined }
            }).then(function (response) {
                $scope.LabelShowSuccess = true;
                $scope.message = response.data;
                angular.element("input[type='file']").val(null);
                $scope.btnDisable = false;
            }).finally(function () {
                unblockUI("indiceUpload");
            });
        };


    }])
    .controller("companyMeetingCtrl", ['$scope', '$http', "$filter", function ($scope, $http, $filter) {

        InitializeMeetingModel();

        function InitializeMeetingModel() {

            $http({
                method: "POST",
                url: "/Admin/CompanyMeetings"
            }).then(function (response) {
                $scope.meetingTypes = response.data.meetingTypes;
                $scope.meetingStatus = response.data.meetingStatus;
                var model = { Announcedon: $filter("gbadmindate")(new Date()), HeldDate: $filter("gbadmindate")(new Date()), MeetingRegarding: response.data.meetingregarding };
                $scope.meeting = model;
                $scope.meeting.MTypeID = 1;
                $scope.meeting.CompanyID = 0;
                $scope.meeting.Status = 0;
                $scope.lblEnglishFile = false;
                $scope.lblArabicFile = false;
                $scope.lblMeetingResultsFile = false;
                $scope.msgMeetingResultsAFile = false;
                $scope.$broadcast('angucomplete-alt:clearInput')
            });

        }

        $scope.UploadFile = function (file, fileType) {
            if (file == null) { alert('Please Select File'); return false; }

            var fd = new FormData();
            fd.append('formData', file);

            $http({
                method: "POST",
                url: "/Admin/UploadMeetingFile",
                data: fd,
                transformRequest: angular.identity,
                headers: { 'Content-Type': undefined }
            }).then(function (response) {

                if (fileType == "EnglishFile") {
                    $scope.meeting.EnglishFileName = response.data;
                    $scope.lblEnglishFile = true;
                    $scope.msgEnglishFile = "File Uploaded Successfully";
                }
                else if (fileType == "ArabicFile") {
                    $scope.meeting.ArabicFileName = response.data;
                    $scope.lblArabicFile = true;
                    $scope.msglblArabicFile = "File Uploaded Successfully";
                }
                else if (fileType == "MeetingResultsFile") {
                    $scope.meeting.MeetingResultsFileName = response.data;
                    $scope.lblMeetingResultsFile = true;
                    $scope.msgMeetingResultsFile = "File Uploaded Successfully";
                }
                else if (fileType == "MeetingResultsAFile") {
                    $scope.meeting.MeetingResultsAFileName = response.data;
                    $scope.lblMeetingResultsAFile = true;
                    $scope.msgMeetingResultsAFile = "File Uploaded Successfully";
                }
                angular.element("input[type='file']").val(null);

            }).finally(function () {

            });
        }

        function GetCompanyMeetingByID(id) {

            $http({
                method: "POST",
                url: "/Admin/GetCompanyMeetingByID",
                data: { mid: id },
            }).then(function (response) {
                $scope.meeting = response.data;
                if (id == 0) {
                    $scope.meeting.Announcedon = $filter("gbadmindate")(new Date());
                    $scope.meeting.HeldDate = $filter("gbadmindate")(new Date());
                    $scope.meeting.MTypeID = 1;
                    $scope.meeting.Status = 0;
                }
                else {
                    $scope.meeting.Announcedon = $filter("gbadmindate")(response.data.Announcedon);
                    $scope.meeting.HeldDate = $filter("gbadmindate")(response.data.HeldDate);
                }

            }).finally(function () {
            });
        }

        $scope.Edit = function (id) {
            GetCompanyMeetingByID(id);
            $scope.LabelShowSuccess = false;
        }

        $scope.SelectedCompany = function ($items) {
            $scope.meeting.CompanyID = $items.originalObject.ID;
            if ($items.originalObject.ID > 0)
            { $scope.RequiredCompany = false; }

            GetCompanyMeetings($items.originalObject.ID);
        }

        function GetCompanyMeetings(id) {

            $http({
                method: "POST",
                url: "/Admin/GetCompanyMeetingsByCompanyID",
                data: { companyID: id },
                dataType: JSON
            }).then(function (response) {
                $scope.companymeetings = response.data

            }).finally(function () {
            });
        }

        $scope.SaveCompanyMeetings = function () {
            if ($scope.meeting.CompanyID == 0) {
                $scope.RequiredCompany = true;
                window.scrollTo(0, 0);
                return false;
            }

            blockUI("companyMeeting");
            $scope.btnDisabled = true;
            $http({
                method: "POST",
                url: "/Admin/SaveCompanyMeeting",
                data: $scope.meeting,
            }).then(function (response) {
                $scope.LabelShowSuccess = true;
                $scope.message = response.data;
                window.scrollTo(0, 0);
                InitializeMeetingModel();
                GetCompanyMeetings(0);
                $scope.btnDisabled = false;
            }).finally(function () {
                unblockUI("companyMeeting");

            });
        }

    }])
    .controller("priceAdjustmentCtrl", ["$scope", "$http", "$filter", function ($scope, $http, $filter) {

        $scope.LabelShowSuccess = false;
        InitializeModel();

        function InitializeModel() {
            var obj = { CompanyID: 0, PriceFactor: 0 };
            $scope.priceadjustment = obj;
            $scope.$broadcast('angucomplete-alt:clearInput')
            $scope.btnDisable = false;

        }


        $scope.SelectedCompany = function ($items) {
            $scope.priceadjustment.CompanyID = $items.originalObject.ID;
            if ($items.originalObject.ID > 0)
            { $scope.RequiredCompany = false; }
        }

        $scope.UploadPriceAdjustment = function () {

            if ($scope.priceadjustment.CompanyID == 0) {
                $scope.RequiredCompany = true;
                return false;
            }
            if ($scope.priceadjustment.PriceFactor <= 0) {
                $scope.LabelShowSuccess = true;
                $scope.message = "Please add correct price factor";
                return false;
            }

            $scope.LabelShowSuccess = true;

            blockUI("page-wrapper");

            $http({
                method: "POST",
                url: "/Admin/UpdatePriceAdjustment",
                data: $scope.priceadjustment,
            }).then(function (response) {
                $scope.LabelShowSuccess = true;
                $scope.message = response.data;
                InitializeModel();
            }).finally(function () {
                unblockUI("page-wrapper");
            });
        };
    }])
    .controller("investingIdeasCtrl", ["$scope", "$http", "$filter", function ($scope, $http, $filter) {

        $scope.itemsPerPage = 20;
        $scope.maxSize = 20;
        $scope.LabelShowSuccess = false;

        GetAllInvestingIdeas(1);
        InitializeModel();

        function InitializeModel() {
            var obj = { CompanyID: 0, TweetDate: $filter("gbadmindate")(new Date()), TweetID: 0 };
            $scope.ideas = obj;
            $scope.$broadcast('angucomplete-alt:clearInput')
            $scope.btnDisable = false;
        }

        function GetAllInvestingIdeas(cp) {
            blockUI("investingIdealist");
            $http({
                method: "POST",
                url: "/Admin/GetInvestingIdeas",
                data: { page: cp },
            }).then(function (response) {
                $scope.ideaslist = response.data;
                $scope.totalItems = response.data[0]["TotalTweets"];
                $scope.currentPage = cp;

            }).finally(function () {
                unblockUI("investingIdealist");
            });
        }

        $scope.clickonpage = function (currentpage) {
            $scope.currentPage = currentpage;
            GetAllInvestingIdeas(currentpage);
        }

        $scope.SelectedCompany = function ($items) {
            $scope.ideas.CompanyID = $items.originalObject.ID;
            if ($items.originalObject.ID > 0)
            { $scope.RequiredCompany = false; }
        }

        $scope.SaveUpdateInvestingIdeas = function () {

            if ($scope.ideas.CompanyID == 0) {
                $scope.RequiredCompany = true;
                return false;
            }
            $scope.LabelShowSuccess = true;
            blockUI("investingIdeasform");
            $http({
                method: "POST",
                url: "/Admin/SaveUpdateIdeas",
                data: $scope.ideas,
            }).then(function (response) {
                $scope.LabelShowSuccess = true;
                $scope.message = response.data;
                InitializeModel();
                GetAllInvestingIdeas(1);
            }).finally(function () {
                unblockUI("investingIdeasform");
            });
        };

        $scope.Edit = function (tweetID) {
            blockUI("investingIdeasform");
            $http({
                method: "POST",
                url: "/Admin/GetInvestingIdeasByID",
                data: { ID: tweetID },
            }).then(function (response) {
                $scope.ideas = response.data;
                $scope.ideas.TweetDate = $filter("gbadmindate")(response.data.TweetDate);
            }).finally(function () {
                unblockUI("investingIdeasform");
            });
        };

        $scope.DeleteIdeas = function (tweetID) {
            $http({
                method: "POST",
                url: "/Admin/DeleteInvestingIdeas",
                data: { ID: tweetID },
            }).then(function (response) {
                $scope.LabelShowSuccess = true;
                $scope.message = "Record Deleted Successfully";
                GetAllInvestingIdeas(1);
            }).finally(function () {

            });
        };

        $scope.AreYouSure = function (val) {
            $scope.TweetID = val;
        }

    }])
    .controller("perdiodicReportCtrl", ["$scope", "$http", "$filter", function ($scope, $http, $filter) {

        InitializeResearchReportModel();
        function InitializeResearchReportModel() {
            $http({
                method: "POST",
                url: "/Admin/PeriodicReport"
            }).then(function (response) {
                $scope.reportTypes = response.data.reportTypes;
                $scope.stockMarkets = response.data.stockMarkets;
            });

            var model = { ReportDate: $filter("gbadmindate")(new Date()), StockMarketID: 1, ReportTypeID: 4 };
            $scope.report = model;
        }

        $scope.CreateReport = function () {
            blockUI("generateReport");
            $http({
                method: "POST",
                url: "/Admin/CreatePeriodicReport",
                data: { model: $scope.report}
            }).then(function (response) {
                $scope.LabelShowSuccess = true;
                $scope.message = response.data;
                InitializeResearchReportModel();
                }).finally(function () {
                    unblockUI("generateReport");
                });
        }

    }])
    .controller("glossaryRatio", ["$scope", "$http", "$filter", function ($scope, $http, $filter) {

        //initiate();

        function initiate() {
            var obj = { Description: 'Adnan' };
            $('#summernote').code('<strong>this is bold</strong>');
            
        }
        
        $scope.GetRatioDes = function () {
            initiate();
        }

        //InitializeResearchReportModel();
        //function InitializeResearchReportModel() {
        //    $http({
        //        method: "POST",
        //        url: "/Admin/PeriodicReport"
        //    }).then(function (response) {
        //        $scope.reportTypes = response.data.reportTypes;
        //        $scope.stockMarkets = response.data.stockMarkets;
        //    });

        //    var model = { ReportDate: $filter("gbadmindate")(new Date()), StockMarketID: 1, ReportTypeID: 4 };
        //    $scope.report = model;
        //}

        //$scope.CreateReport = function () {
        //    blockUI("generateReport");
        //    $http({
        //        method: "POST",
        //        url: "/Admin/CreatePeriodicReport",
        //        data: { model: $scope.report }
        //    }).then(function (response) {
        //        $scope.LabelShowSuccess = true;
        //        $scope.message = response.data;
        //        InitializeResearchReportModel();
        //    }).finally(function () {
        //        unblockUI("generateReport");
        //    });
        //}

    }]).controller("generateSiteMapXMLCtrl", ["$scope", "$http", "$filter", function ($scope, $http, $filter) {

        $scope.GenerateSiteMapXML = function () {
            $scope.LabelShowSuccess = true;
            $scope.message = "Please wait SiteMap is being Generating!";

            blockUI("generatesitemapxml");
            $http({
                method: "POST",
                url: "/Admin/GenerateSiteMap",
                data: { model: $scope.report }
            }).then(function (response) {
                $scope.LabelShowSuccess = true;
                $scope.message = response.data;

            }).finally(function () {
                unblockUI("generatesitemapxml");
            });
        }

    }]).controller("fundxmlCtlr", ["$scope", "$http", "$filter", function ($scope, $http, $filter) {

        $scope.GenerateFundSiteMap = function () {
            $scope.LabelShowSuccess = true;
            $scope.message = "Please wait SiteMap is being Generating!";

            blockUI("page-wrapper");
            $http({
                method: "POST",
                url: "/Admin/GenerateFundSiteMap",
                data: { model: $scope.report }
            }).then(function (response) {
                $scope.LabelShowSuccess = true;
                $scope.message = response.data;

            }).finally(function () {
                unblockUI("page-wrapper");
            });
        }

    }]).controller("generateNewsXMLFileCtrl", ["$scope", "$http", "$filter", function ($scope, $http, $filter) {

        $scope.GenerateXMLForNews = function () {
            $scope.LabelShowSuccess = true;
            $scope.message = "Please wait SiteMap is being Generating!";

            blockUI("page-wrapper");
            $http({
                method: "POST",
                url: "/Admin/GenerateNewsXML",
                data: { model: $scope.report }
            }).then(function (response) {
                $scope.LabelShowSuccess = true;
                $scope.message = response.data;

            }).finally(function () {
                unblockUI("page-wrapper");
            });
        }

    }]);
