\";\n this.controller = SystemPanelClientCommunicationHistoryCtrl;\n this.scope = {\n process: \"=\"\n };\n }\n ;\n SystemPanelPanelClientCommunicationHistoryDirective.Factory = function () {\n var d = function () { return new SystemPanelPanelClientCommunicationHistoryDirective(); };\n d['$inject'] = [];\n return d;\n };\n return SystemPanelPanelClientCommunicationHistoryDirective;\n }());\n systemAdmin.SystemPanelPanelClientCommunicationHistoryDirective = SystemPanelPanelClientCommunicationHistoryDirective;\n // logowanie i zmiana hasła\n var SystemLoginPanelCtrl = (function () {\n function SystemLoginPanelCtrl($scope) {\n // view domyślny\n $scope.currentView = 'LOGIN_FORM';\n // zmień na formatkę do zmiany hasła\n $scope.changeViewToResetPasswordForm = function () {\n $scope.currentView = 'RESET_PASSWORD_FORM';\n };\n // ustaw domyślne\n $scope.changeViewToLoginForm = function () {\n $scope.currentView = 'LOGIN_FORM';\n };\n }\n SystemLoginPanelCtrl.$inject = ['$scope'];\n return SystemLoginPanelCtrl;\n }());\n var SystemLoginAuthPanelCtrl = (function () {\n function SystemLoginAuthPanelCtrl($scope, $location, $http, toaster) {\n $scope.user = {\n login: \"\",\n password: \"\"\n };\n $scope.login = function () {\n $http.get(\"/system/login/af-token\").then(function (result) {\n var headers = {};\n headers[result.data.headerName] = result.data.token;\n $http.post(\"/system/partner/login\", $scope.user, {\n headers: headers\n }).then(function (d) {\n if (d.data.ChangePasswordOnLogon === true) {\n toaster.pop('sucess', \"Logowanie\", \"Witamy w systemie LeaseLink. Twoje konto użytkownika ma ustawione wymuszenie zmiany hasła przy logowaniu.\");\n $scope.$parent.currentView = 'CHANGE_PASSWORD_FORM';\n }\n else {\n toaster.pop('sucess', \"Logowanie\", \"Witamy w systemie LeaseLink\");\n top.location.href = \"/system/index\";\n }\n }, function (e) {\n toaster.pop('error', \"Logowanie\", \"Podane dane nie są poprawne.\");\n });\n }, function (e) {\n toaster.pop('error', \"Logowanie\", \"Podane dane nie są poprawne.\");\n });\n };\n $scope.showLogin = false;\n $scope.toggleLoginHelp = function () {\n $scope.showLogin = !$scope.showLogin;\n };\n $scope.showPassword = false;\n $scope.togglePasswordHelp = function () {\n $scope.showPassword = !$scope.showPassword;\n };\n }\n ;\n SystemLoginAuthPanelCtrl.$inject = ['$scope', '$location', '$http', 'toaster'];\n return SystemLoginAuthPanelCtrl;\n }());\n var SystemLoginChangePasswordPanelCtrl = (function () {\n function SystemLoginChangePasswordPanelCtrl($scope, $location, $http, toaster) {\n $scope.item = {\n CurrentPassword: \"\",\n Password: \"\",\n PasswordConfirm: \"\"\n };\n // oddanie danych\n $scope.saveNewPassword = function () {\n $http.post(\"/system/password-reset-confirm\", {\n CurrentPassword: $scope.CurrentPassword,\n Password: $scope.Password,\n PasswordConfirm: $scope.PasswordConfirm,\n ChangePaswordOnLogon: false\n }).then(function (d) {\n toaster.pop('success', \"Użytkownicy\", \"Poprawnie zmieniono hasło\");\n $scope.cancel();\n }, function (e) {\n toaster.pop('error', \"Użytkownicy\", \"Zmiana hasła nie powiodła się\");\n });\n };\n // zamkniecie\n $scope.cancel = function () {\n $scope.$parent.currentView = 'LOGIN_FORM';\n };\n }\n ;\n SystemLoginChangePasswordPanelCtrl.$inject = ['$scope', '$location', '$http', 'toaster'];\n return SystemLoginChangePasswordPanelCtrl;\n }());\n // formatka do resetu hasła\n var SystemLoginResetPasswordPanelCtrl = (function () {\n function SystemLoginResetPasswordPanelCtrl($scope, $location, $http, toaster) {\n $scope.item = {\n Login: \"\",\n Channel: null\n };\n // oddanie danych\n $scope.resetPassword = function () {\n // póki nie ma podziału na SMS i email, na sztywno wybranie kanału 0 (email)\n $scope.Channel = 0;\n $http.post(\"/system/password-reset\", {\n Login: $scope.Login,\n Channel: parseInt($scope.Channel)\n }).then(function (d) {\n if ($scope.Channel === 0) {\n toaster.pop('success', \"Użytkownicy\", \"Jeżeli podany login jest poprawny, na e-mail przypisany do konta otrzymasz wiadomość z nowym hasłem.\");\n }\n else if ($scope.Channel === 1) {\n toaster.pop('success', \"Użytkownicy\", \"Jeżeli podany login jest poprawny, na numer telefonu przypisany do konta otrzymasz wiadomość z nowym hasłem.\");\n }\n $scope.cancel();\n }, function (e) {\n toaster.pop('error', \"Użytkownicy\", \"Resetowanie hasła nie powiodło się\");\n });\n };\n // zamkniecie\n $scope.cancel = function () {\n $scope.$parent.currentView = 'LOGIN_FORM';\n };\n }\n ;\n SystemLoginResetPasswordPanelCtrl.$inject = ['$scope', '$location', '$http', 'toaster'];\n return SystemLoginResetPasswordPanelCtrl;\n }());\n // komponent logowania\n var SystemLoginAuthPanelDirective = (function () {\n function SystemLoginAuthPanelDirective() {\n this.templateUrl = '/WWW/partials/loginForm.html';\n this.controller = SystemLoginAuthPanelCtrl;\n }\n ;\n SystemLoginAuthPanelDirective.Factory = function () {\n var d = function () { return new SystemLoginAuthPanelDirective(); };\n d['$inject'] = [];\n return d;\n };\n return SystemLoginAuthPanelDirective;\n }());\n systemAdmin.SystemLoginAuthPanelDirective = SystemLoginAuthPanelDirective;\n // komponent zmiany hasła\n var SystemLoginChangePasswordPanelDirective = (function () {\n function SystemLoginChangePasswordPanelDirective() {\n this.templateUrl = '/WWW/partials/modules/users/changePassword.html';\n this.controller = SystemLoginChangePasswordPanelCtrl;\n }\n ;\n SystemLoginChangePasswordPanelDirective.Factory = function () {\n var d = function () { return new SystemLoginChangePasswordPanelDirective(); };\n d['$inject'] = [];\n return d;\n };\n return SystemLoginChangePasswordPanelDirective;\n }());\n systemAdmin.SystemLoginChangePasswordPanelDirective = SystemLoginChangePasswordPanelDirective;\n // komponent resetu hasła\n var SystemLoginResetPasswordPanelDirective = (function () {\n function SystemLoginResetPasswordPanelDirective() {\n this.templateUrl = '/WWW/partials/modules/users/resetPassword.html';\n this.controller = SystemLoginResetPasswordPanelCtrl;\n }\n ;\n SystemLoginResetPasswordPanelDirective.Factory = function () {\n var d = function () { return new SystemLoginResetPasswordPanelDirective(); };\n d['$inject'] = [];\n return d;\n };\n return SystemLoginResetPasswordPanelDirective;\n }());\n systemAdmin.SystemLoginResetPasswordPanelDirective = SystemLoginResetPasswordPanelDirective;\n // komponent autoryzacji\n var SystemLoginPanelDirective = (function () {\n function SystemLoginPanelDirective() {\n this.templateUrl = \"/WWW/partials/modules/admin/system.panel.login.html\";\n this.controller = SystemLoginPanelCtrl;\n this.scope = {\n okMessage: \"@\",\n failMessage: \"@\"\n };\n console.log(top.location.href);\n }\n ;\n SystemLoginPanelDirective.Factory = function () {\n var d = function () { return new SystemLoginPanelDirective(); };\n d['$inject'] = [];\n return d;\n };\n return SystemLoginPanelDirective;\n }());\n systemAdmin.SystemLoginPanelDirective = SystemLoginPanelDirective;\n // koponoent pokazywania skoringu\n var SystemScoringOutputSrv = (function () {\n function SystemScoringOutputSrv($http, $q) {\n var _this = this;\n this.$http = $http;\n this.$q = $q;\n // pobranie komunikatow\n this.getScoring = function (id) {\n var url = '/api/BusinessProcessScoring/' + id;\n return _this.$http.get(url);\n };\n }\n SystemScoringOutputSrv.$inject = ['$http', '$q'];\n return SystemScoringOutputSrv;\n }());\n systemAdmin.SystemScoringOutputSrv = SystemScoringOutputSrv;\n var SystemScoringOutputCtrl = (function () {\n function SystemScoringOutputCtrl($scope, $service) {\n var _this = this;\n this.$service = $service;\n //\n $scope.rules = [];\n $scope.processId = $scope.process.OfferClientResonse_Guid;\n //\n $scope.refreshRules = function () {\n _this\n .$service\n .getScoring($scope.processId)\n .then(function (d) {\n var result = d.data.Result;\n var DecisionEngineResponseAsObject = result.DecisionEngineResponseAsObject;\n if (DecisionEngineResponseAsObject) {\n $scope.rules = DecisionEngineResponseAsObject.OutputRulesAsObject;\n }\n });\n };\n //\n $scope.refreshRules();\n }\n SystemScoringOutputCtrl.$inject = ['$scope', 'SystemScoringOutputSrv'];\n return SystemScoringOutputCtrl;\n }());\n var SystemScoringOutputDirective = (function () {\n function SystemScoringOutputDirective() {\n this.template = \"\\n
\\n
Wynik : {{process.ScoringOutput}}
\\n
Sprawdzone regu\\u0142y
\\n
\\n
\\n
{{rule.klucz}}
\\n
{{rule.value}}
\\n
\\n
\\n
\";\n this.controller = SystemScoringOutputCtrl;\n this.scope = {\n process: \"=\",\n };\n }\n ;\n SystemScoringOutputDirective.Factory = function () {\n var d = function () { return new SystemScoringOutputDirective(); };\n d['$inject'] = [];\n return d;\n };\n return SystemScoringOutputDirective;\n }());\n systemAdmin.SystemScoringOutputDirective = SystemScoringOutputDirective;\n // dyrektywa z linkiem do przełączenia ekrany na formatkę zmiany hasła\n var ResetPasswordLinkDirective = (function () {\n function ResetPasswordLinkDirective() {\n this.template = \"\\n resetuj has\\u0142o\\n \";\n }\n ;\n ResetPasswordLinkDirective.Factory = function () {\n var d = function () { return new ResetPasswordLinkDirective(); };\n d['$inject'] = [];\n return d;\n };\n return ResetPasswordLinkDirective;\n }());\n systemAdmin.ResetPasswordLinkDirective = ResetPasswordLinkDirective;\n // nieużywana dyrektywa\n var ChangePasswordExternalLinkDirective = (function () {\n function ChangePasswordExternalLinkDirective() {\n this.template = \"\\n popro\\u015B o nowe has\\u0142o\\n \\n \";\n this.link = function ($scope, $el) {\n var script = document.createElement('script');\n script.src = 'https://leaselink.pl/repository/partner_js_form.js';\n $el.append(angular.element(script));\n };\n }\n ;\n ChangePasswordExternalLinkDirective.Factory = function () {\n var d = function () { return new ChangePasswordExternalLinkDirective(); };\n d['$inject'] = [];\n return d;\n };\n return ChangePasswordExternalLinkDirective;\n }());\n systemAdmin.ChangePasswordExternalLinkDirective = ChangePasswordExternalLinkDirective;\n var SignUpExternalLinkDirective = (function () {\n function SignUpExternalLinkDirective() {\n this.template = \"\\n zosta\\u0144 naszym partnerem\\n \\n \";\n this.link = function ($scope, $el) {\n var script = document.createElement('script');\n script.src = 'https://leaselink.pl/repository/partner_js_form2.js';\n $el.append(angular.element(script));\n };\n }\n ;\n SignUpExternalLinkDirective.Factory = function () {\n var d = function () { return new SignUpExternalLinkDirective(); };\n d['$inject'] = [];\n return d;\n };\n return SignUpExternalLinkDirective;\n }());\n systemAdmin.SignUpExternalLinkDirective = SignUpExternalLinkDirective;\n})(systemAdmin || (systemAdmin = {}));\n// rejestracja\nangular.module('ll.system.admin', ['ngSanitize'])\n .directive('llSystemPanel', systemAdmin.SystemPanelDirective.Factory())\n .directive('llProcessType', systemAdmin.ProcessTypeNameDir.Factory())\n .directive('llSystemFraud', systemAdmin.SystemFraudDirective.Factory())\n .directive('llProcessStatusChangesList', systemAdmin.SystemPanelProcessStatusChangeListDirective.Factory())\n .directive('llProcessPartnerChangesList', systemAdmin.SystemPanelProcessPartnerChangeListDirective.Factory())\n .controller('SystemPanelReportCtrl', systemAdmin.SystemPanelReportCtrl)\n .service('SystemPanelAdminHelperSrv', systemAdmin.SystemPanelAdminHelperSrv)\n .service('SystemFraudSrv', systemAdmin.SystemFraudSrv)\n .directive('llUserAudit', systemAdmin.SystemPanelUserAuditDirective.Factory())\n .service('SystemPanelUserAuditSrv', systemAdmin.SystemPanelUserAuditSrv)\n .directive('llSystemOfferNotes', systemAdmin.SystemOfferNoteDirective.Factory())\n .service('SystemOfferNoteSrv', systemAdmin.SystemOfferNoteSrv)\n .directive('llOfferPaymentConfirmation', systemAdmin.SystemPanelOfferPaymentConfirmationDirective.Factory())\n .service('SystemPanelOfferPaymentConfirmationSrv', systemAdmin.SystemPanelOfferPaymentConfirmationSrv)\n .directive('llClientCommunicationHistory', systemAdmin.SystemPanelPanelClientCommunicationHistoryDirective.Factory())\n .service('SystemPanelClientCommunicationHistorySrv', systemAdmin.SystemPanelClientCommunicationHistorySrv)\n .directive('llSystemLogin', systemAdmin.SystemLoginPanelDirective.Factory())\n .directive('llSystemLoginAuth', systemAdmin.SystemLoginAuthPanelDirective.Factory())\n .directive('llSystemLoginChangePassword', systemAdmin.SystemLoginChangePasswordPanelDirective.Factory())\n .directive('llSystemLoginResetPassword', systemAdmin.SystemLoginResetPasswordPanelDirective.Factory())\n .directive('llSignUpExternalLink', systemAdmin.SignUpExternalLinkDirective.Factory())\n .directive('llChangePasswordExternalLink', systemAdmin.ChangePasswordExternalLinkDirective.Factory())\n .directive('llResetPasswordLink', systemAdmin.ResetPasswordLinkDirective.Factory())\n .directive('llScoringOutput', systemAdmin.SystemScoringOutputDirective.Factory())\n .service('SystemScoringOutputSrv', systemAdmin.SystemScoringOutputSrv);\n// zarzadzanie kategoriami / produktami \nvar systemCategoryProducts;\n(function (systemCategoryProducts) {\n // serwis produktow\n var ProductSrv = (function () {\n function ProductSrv($http) {\n this.$http = $http;\n }\n ProductSrv.$inject = ['$http'];\n return ProductSrv;\n }());\n systemCategoryProducts.ProductSrv = ProductSrv;\n var ProductsCtrl = (function () {\n function ProductsCtrl($scope, $http, $modal, toaster, filterFilter, $rootScope) {\n // opracowanie guida partnera\n $scope.currentPartnerGuid = ($scope.currentPartner ? $scope.currentPartner.Key : \"\");\n $scope.filteredList = [];\n $scope.search = {\n ProductName: \"\"\n };\n $scope.ProductModels = [];\n // filtr\n $scope.filterRequest = function (item) {\n if ($scope.search.ProductName) {\n var _v0 = ($scope.search.ProductName || \"\").toLowerCase();\n var _v1 = (item.ProductName + \"\" || \"\").toLowerCase();\n var _v2 = (item.ProductId + \"\" || \"\").toLowerCase();\n var _v3 = (item.ProductCode + \"\" || \"\").toLowerCase();\n var _v4 = (item.ProductCategory + \"\" || \"\").toLowerCase();\n if (_v1.indexOf(_v0) == -1\n && _v2.indexOf(_v0) == -1\n && _v3.indexOf(_v0) == -1\n && _v4.indexOf(_v0) == -1)\n return false;\n }\n return true;\n };\n // obserwowanie filtra i glownego zbioru danych\n $scope.$watch('search', function () {\n $scope.filteredList = filterFilter($scope.ProductModels, $scope.filterRequest);\n }, true);\n $scope.$watch('ProductModels', function () {\n $scope.filteredList = filterFilter($scope.ProductModels, $scope.filterRequest);\n }, true);\n // pobieranie danych\n $scope.Refresh = function () {\n $http.get('/api/Product?Partner_Guid=' + $scope.currentPartnerGuid).then(function (d) {\n $scope.ProductModels = d.data.Result;\n }, function (e) {\n toaster.pop('error', 'Pobieranie danych nie powiodło się');\n });\n };\n // usuanie produktu\n $scope.DeleteProduct = function (id, productPartner) {\n if (confirm(\"Czy na pewno chcesz usunąć produkt?\")) {\n $http.delete('/api/Product/' + '?id=' + id.toString() + '&productPartner=' + productPartner.toString()).then(function (d) {\n toaster.pop('success', 'Operacja powiodła się');\n $scope.Refresh();\n }, function (e) {\n toaster.pop('error', 'Operacja nie powiodła się');\n });\n }\n ;\n };\n $scope.AddProduct = function () {\n $scope.dataForNewProduct = {\n ProductId: \"\",\n ProductName: \"\",\n ProductCode: \"\",\n ProductCategory: \"\",\n ProductAmortizationRate: 0.0,\n Partner: $scope.currentPartnerGuid\n };\n var modalInstance = $modal.open({\n animation: true,\n templateUrl: '/WWW/partials/modules/category.products/addProductModal.html',\n controller: 'AddProductModalCtrl',\n scope: $scope,\n resolve: {\n dataForNewProduct: function () {\n return $scope.dataForNewProduct;\n }\n }\n });\n modalInstance.result.then(function (dataForNewProduct) {\n $http.post('/api/Product/', dataForNewProduct).then(function (d) {\n $scope.Refresh();\n toaster.pop('success', 'Pomyślnie dodano nowy produkt');\n }, function (e) {\n toaster.pop('error', 'Błąd podczas dodawania nowego produktu');\n });\n }, function (e) { });\n };\n $scope.EditProduct = function (id) {\n $scope.dataForEditProduct = {\n ProductId: \"\",\n ProductName: \"\",\n ProductCode: \"\",\n ProductCategory: \"\",\n ProductAmortizationRate: 0.0\n };\n $http.get('/api/Product/' + id).then(function (d) {\n $scope.dataForEditProduct = d.data.Result;\n var modalInstance = $modal.open({\n animation: true,\n templateUrl: '/WWW/partials/modules/category.products/editProductModal.html',\n controller: 'EditProductModalCtrl',\n scope: $scope,\n resolve: {\n dataForEditProduct: function () {\n return $scope.dataForEditProduct;\n }\n }\n });\n modalInstance.result.then(function (dataForEditProduct) {\n $http.put('/api/Product/' + dataForEditProduct.Guid, dataForEditProduct).then(function (f) {\n $scope.Refresh();\n toaster.pop('success', 'Pomyślnie zaktualizowano dane produktu');\n }, function (g) {\n toaster.pop('error', 'Błąd podczas aktualizacji danych produktu');\n });\n }, function (h) { });\n }, function (i) { });\n };\n $scope.setAsDefault = function (productId, partnerId) {\n $http.put('/api/Product/' + '?id=' + productId + '&productPartner=' + partnerId).then(function (d) {\n $scope.Refresh();\n }, function (e) {\n toaster.pop('error', 'Pobieranie danych nie powiodło się');\n });\n };\n // pobranie danych na wejsciu\n $scope.Refresh();\n }\n ;\n ProductsCtrl.$inject = ['$scope', '$http', '$modal', 'toaster', 'filterFilter', '$rootScope'];\n return ProductsCtrl;\n }());\n systemCategoryProducts.ProductsCtrl = ProductsCtrl;\n var AddProductModalCtrl = (function () {\n function AddProductModalCtrl($scope, $modalInstance, dataForNewProduct) {\n $scope.dataForNewProduct = dataForNewProduct;\n $scope.ok = function () {\n $modalInstance.close($scope.dataForNewProduct);\n };\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n }\n ;\n AddProductModalCtrl.$inject = ['$scope', '$modalInstance', 'dataForNewProduct'];\n return AddProductModalCtrl;\n }());\n systemCategoryProducts.AddProductModalCtrl = AddProductModalCtrl;\n var EditProductModalCtrl = (function () {\n function EditProductModalCtrl($scope, $modalInstance, dataForEditProduct) {\n $scope.dataForEditProduct = dataForEditProduct;\n $scope.ok = function () {\n $modalInstance.close($scope.dataForEditProduct);\n };\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n }\n EditProductModalCtrl.$inject = ['$scope', '$modalInstance', 'dataForEditProduct'];\n return EditProductModalCtrl;\n }());\n systemCategoryProducts.EditProductModalCtrl = EditProductModalCtrl;\n})(systemCategoryProducts || (systemCategoryProducts = {}));\n// nowy modlu claego wniosku\nvar systemProcess;\n(function (systemProcess) {\n var AddressFormCtrl = (function () {\n function AddressFormCtrl($scope) {\n // lista prefixow\n $scope.streetPrefixes = [\n 'AL.',\n 'BULW.',\n 'DROGA',\n 'INNE',\n 'OGRÓD',\n 'OS.',\n 'PARK',\n 'PL.',\n 'RONDO',\n 'RYNEK',\n 'SKWER',\n 'SZOSA',\n 'UL.',\n 'WYB.',\n 'WYSPA'\n ];\n }\n AddressFormCtrl.$inject = ['$scope'];\n return AddressFormCtrl;\n }());\n var AddressFormDirective = (function () {\n function AddressFormDirective() {\n this.controller = AddressFormCtrl;\n this.templateUrl = \"/WWW/partials/addressForm.html\";\n this.restrict = \"AE\";\n this.scope = {\n address: \"=\",\n isRequired: \"=\",\n hideSpecificPlace: \"=\",\n isFormValidated: \"=\"\n };\n }\n AddressFormDirective.Factory = function () {\n var d = function () { return new AddressFormDirective(); };\n d['$inject'] = [];\n return d;\n };\n return AddressFormDirective;\n }());\n systemProcess.AddressFormDirective = AddressFormDirective;\n var PersonFormCtrl = (function () {\n function PersonFormCtrl($scope) {\n }\n PersonFormCtrl.$inject = ['$scope'];\n return PersonFormCtrl;\n }());\n var PersonFormDirective = (function () {\n function PersonFormDirective() {\n this.controller = AddressFormCtrl;\n this.templateUrl = \"/WWW/partials/personForm.html\";\n this.restrict = \"AE\";\n this.scope = {\n person: \"=\",\n isRequired: \"=\",\n isFormValidated: \"=\"\n };\n }\n PersonFormDirective.Factory = function () {\n var d = function () { return new PersonFormDirective(); };\n d['$inject'] = [];\n return d;\n };\n return PersonFormDirective;\n }());\n systemProcess.PersonFormDirective = PersonFormDirective;\n})(systemProcess || (systemProcess = {}));\nangular.module(\"ll.system.process\", ['ngSanitize'])\n .directive(\"llAddressForm\", systemProcess.AddressFormDirective.Factory())\n .directive(\"llPersonForm\", systemProcess.PersonFormDirective.Factory());\n/*\nzarządzanie partnerai\n*/\nvar system;\n(function (system) {\n /* partnerzy */\n var PartnersCtrl = (function () {\n function PartnersCtrl($scope, $http, $modal, toaster, FileUploader, filterFilter) {\n $scope.PartnerFunc = \"Default\";\n $scope.PartnersModels = [];\n $scope.filteredList = [];\n $scope.search = {\n PartnerName: \"\"\n };\n $scope.config = {\n itemsPerPage: 10,\n maxPages: 10,\n fillLastPage: 'yes'\n };\n // filtr\n $scope.filterRequest = function (item) {\n // jak wypelnione to szukamy po nazwie\n if ($scope.search.PartnerName && item.Name && item.Name.toLowerCase().indexOf($scope.search.PartnerName.toLowerCase()) === -1)\n return false;\n return true;\n };\n // obserwowanie filtra i glownego zbioru danych\n $scope.$watch('search', function () {\n $scope.filteredList = filterFilter($scope.PartnersModels, $scope.filterRequest);\n }, true);\n $scope.$watch('PartnersModels', function () {\n $scope.filteredList = filterFilter($scope.PartnersModels, $scope.filterRequest);\n }, true);\n $scope.Refresh = function () {\n $http.get('/api/Partner').then(function (d) {\n $scope.logoTimeStamp = new Date().getTime();\n $scope.PartnersModels = d.data.Result;\n }, function (e) {\n toaster.pop('error', 'Pobieranie danych nie powiodło się');\n });\n };\n $scope.Refresh();\n /* //zmienione na inny kontroler\n $scope.EditPartner = function (id) {\n var url = '/File/Upload';\n \n $scope.uploader = new FileUploader({\n url: url,\n method: 'PUT',\n queueLimit: 1\n });\n $scope.uploader.onErrorItem = function (fileItem, response, status, headers) {\n toaster.pop('error', 'Błąd podczas zapisywania pliku');\n };\n $scope.uploader.onSuccessItem = function (fileItem, response, status, headers) {\n fileItem.complete = true;\n toaster.pop('success', 'Plik zapisano poprawnie');\n $scope.Refresh();\n };\n $scope.uploader.onCompleteItem = function (fileItem, response, status, headers) {\n fileItem.complete = true;\n toaster.pop('info', 'Przesył pliku zakończony poprawnie');\n };\n $scope.uploader.onBeforeUploadItem = function (fileItem) {\n fileItem.formData = $scope.uploader.formData;\n };\n \n $scope.dataForEditPartner = {\n Guid: \"\",\n Name: \"\",\n PartnerUrl: \"\"\n };\n \n $http.get('/api/Partner/' + id).then(\n function (d) {\n $scope.dataForEditPartner = d.data.Result;\n \n var modalInstance = $modal.open({\n animation: true,\n templateUrl: '/WWW/partials/modules/partners/form.html',\n controller: 'EditPartnerModalCtrl',\n resolve: {\n dataForEditPartner: function () {\n return $scope.dataForEditPartner;\n },\n uploader: function () {\n return $scope.uploader;\n }\n }\n });\n \n modalInstance.result.then(\n function (dataForEditPartner) {\n $http.put('/api/Partner/' + dataForEditPartner.Guid, dataForEditPartner).then(\n function (f) {\n $scope.uploader.formData.push({ type: 'PARTNER' });\n $scope.uploader.formData.push({ oID: f.data.Result.Guid });\n if ($scope.uploader.queue.length == 0) $scope.Refresh();\n $scope.uploader.uploadAll();\n toaster.pop('success', 'Pomyślnie zaktualizowano dane partnera');\n $scope.Refresh();\n },\n function (g) {\n toaster.pop('error', 'Błąd podczas aktualizacji danych partnera');\n });\n },\n function (h) { }\n );\n },\n function (i) { }\n );\n };\n */\n $scope.showPartnerData = function (item) {\n $scope.currentPartner = item;\n $scope.PartnerFunc = \"EditPartner\";\n };\n $scope.addNewPartner = function () {\n $scope.currentPartner = {};\n $scope.PartnerFunc = \"EditPartner\";\n };\n // powrót do widoku partnerów\n $scope.backToPartners = function () {\n $scope.PartnerFunc = \"Default\";\n $scope.Refresh();\n };\n $scope.DeletePartner = function (id, partnerName) {\n if (confirm(\"Czy na pewno chcesz usunąć partnera?\")) {\n $http.delete('/api/Partner' + '?id=' + id.toString() + '&partnerName=' + partnerName.toString()).then(function (d) {\n toaster.pop('success', 'Operacja powiodła się');\n $scope.Refresh();\n }, function (e) {\n toaster.pop('error', 'Operacja nie powiodła się');\n });\n }\n };\n // aktualizacjia bazy produktowej\n $scope.UploadPartnerProducts = function (Partner_Guid) {\n var url = '/File/Upload';\n $scope.uploader = new FileUploader({\n url: url,\n method: 'PUT',\n queueLimit: 1\n });\n $scope.uploader.onErrorItem = function (fileItem, response, status, headers) {\n toaster.pop('error', 'Błąd podczas zapisywania pliku');\n };\n $scope.uploader.onSuccessItem = function (fileItem, response, status, headers) {\n fileItem.complete = true;\n toaster.pop('success', 'Plik zapisano poprawnie');\n };\n $scope.uploader.onCompleteItem = function (fileItem, response, status, headers) {\n fileItem.complete = true;\n toaster.pop('info', 'Przesył pliku zakończony poprawnie');\n };\n $scope.uploader.onBeforeUploadItem = function (fileItem) {\n fileItem.formData = $scope.uploader.formData;\n };\n $scope.partnerData = {\n Partner_Guid: Partner_Guid,\n };\n var modalInstance = $modal.open({\n animation: true,\n templateUrl: '/WWW/partials/modules/partners/product.upload.html',\n controller: 'PartnerProductUploadModalCtrl',\n resolve: {\n uploader: function () {\n return $scope.uploader;\n },\n partnerData: function () {\n return $scope.partnerData;\n }\n }\n });\n modalInstance.result.then(function (partnerData) {\n $scope.uploader.formData.push({ type: 'PARTNER_PRODUCT' });\n $scope.uploader.formData.push({ oID: $scope.partnerData.Partner_Guid });\n if ($scope.uploader.queue.length == 0)\n $scope.Refresh();\n $scope.uploader.onCompleteAll = function () {\n toaster.pop('success', 'Pomyślnie zaktualizowano dane produktowe partnera');\n };\n $scope.uploader.uploadAll();\n }, function (h) { });\n };\n }\n PartnersCtrl.$inject = ['$scope', '$http', '$modal', 'toaster', 'FileUploader', 'filterFilter'];\n return PartnersCtrl;\n }());\n system.PartnersCtrl = PartnersCtrl;\n ;\n /* edycja partnera */\n var PartnerCtrl = (function () {\n function PartnerCtrl($scope, $http, $modal, FileUploader, toaster, filterFilter) {\n $scope.uploader = new FileUploader();\n $scope.ContactPersonModels = [];\n $scope.ContactPeopleList = [];\n $scope.BankAccountModels = [];\n $scope.BankAccountsList = [];\n $scope.PartnerTypes = [\n { key: 1, value: \"Sklep\" },\n { key: 2, value: \"Pośrednik\" }\n ];\n var url = '/File/Upload';\n $scope.uploader = new FileUploader({\n url: url,\n method: 'PUT',\n queueLimit: 1\n });\n $scope.uploader.onErrorItem = function (fileItem, response, status, headers) {\n toaster.pop('error', 'Błąd podczas zapisywania pliku');\n };\n $scope.uploader.onSuccessItem = function (fileItem, response, status, headers) {\n fileItem.complete = true;\n toaster.pop('success', 'Plik zapisano poprawnie');\n };\n $scope.uploader.onCompleteItem = function (fileItem, response, status, headers) {\n fileItem.complete = true;\n toaster.pop('info', 'Przesył pliku zakończony poprawnie');\n };\n $scope.uploader.onBeforeUploadItem = function (fileItem) {\n fileItem.formData = $scope.uploader.formData;\n };\n $scope.saveEditedPartner = function () {\n if ($scope.currentPartner.Guid) {\n $http.put('/api/Partner/' + $scope.currentPartner.Guid, $scope.currentPartner).then(function (d) {\n $scope.uploader.formData.push({ type: 'PARTNER' });\n $scope.uploader.formData.push({ oID: d.data.Result.Guid });\n if ($scope.uploader.queue.length > 0)\n $scope.uploader.uploadAll();\n $scope.currentPartner = d.data.Result;\n toaster.pop('success', \"Partner\", \"Edycja partnera przebiegła poprawnie\");\n if ($scope.currentPartner.CaptchaImage) {\n $scope.CaptchaData = {\n CaptchaImage: $scope.currentPartner.CaptchaImage,\n };\n var modalInstance = $modal.open({\n animation: true,\n templateUrl: '/WWW/partials/modules/partners/CaptchaNeededModal.html',\n controller: 'CaptchaNeededModalCtrl',\n resolve: {\n CaptchaData: function () {\n return $scope.CaptchaData;\n }\n }\n });\n modalInstance.result.then(function (CaptchaData) {\n $http.post(\"/offer/SetRegonCaptcha\", { token: CaptchaData }).then(function (d) {\n if (d.data.Status) {\n $scope.currentPartner.ShouldDownloadRegistryData = true;\n $http.put('/api/Partner/' + $scope.currentPartner.Guid, $scope.currentPartner).then(function (d) {\n $scope.currentPartner = d.data.Result;\n toaster.pop('success', \"Partner\", \"Edycja partnera przebiegła poprawnie\");\n $scope.currentPartner.ShouldDownloadRegistryData = false;\n }, function (e) {\n console.error(e);\n toaster.pop('error', \"Partner\", \"Błąd przy edycji partnera\");\n });\n }\n //else\n }, function (e) {\n toaster.pop('error', \"Pobieranie partnera\", \"Wystąpił błąd podczas przysłania kodu captcha.\");\n });\n toaster.pop('success', 'Pomyślnie zaktualizowano dane produktowe partnera');\n }, function (h) { });\n }\n }, function (e) {\n console.error(e);\n toaster.pop('error', \"Partner\", \"Błąd przy edycji partnera\");\n });\n }\n else {\n $http.post('/api/Partner/', $scope.currentPartner).then(function (d) {\n $scope.uploader.formData.push({ type: 'PARTNER' });\n $scope.uploader.formData.push({ oID: d.data.Result.Guid });\n if ($scope.uploader.queue.length > 0)\n $scope.uploader.uploadAll();\n $scope.currentPartner = d.data.Result;\n toaster.pop('success', \"Partner\", \"Dodanie partnera przebiegło poprawnie\");\n if ($scope.currentPartner.CaptchaImage) {\n $scope.CaptchaData = {\n CaptchaImage: $scope.currentPartner.CaptchaImage,\n };\n var modalInstance = $modal.open({\n animation: true,\n templateUrl: '/WWW/partials/modules/partners/CaptchaNeededModal.html',\n controller: 'CaptchaNeededModalCtrl',\n resolve: {\n CaptchaData: function () {\n return $scope.CaptchaData;\n }\n }\n });\n modalInstance.result.then(function (CaptchaData) {\n $http.post(\"/offer/SetRegonCaptcha\", { token: CaptchaData }).then(function (d) {\n if (d.data.Status) {\n $scope.currentPartner.ShouldDownloadRegistryData = true;\n $http.put('/api/Partner/' + $scope.currentPartner.Guid, $scope.currentPartner).then(function (d) {\n $scope.currentPartner = d.data.Result;\n toaster.pop('success', \"Partner\", \"Edycja partnera przebiegła poprawnie\");\n $scope.currentPartner.ShouldDownloadRegistryData = false;\n }, function (e) {\n console.error(e);\n toaster.pop('error', \"Partner\", \"Błąd przy edycji partnera\");\n });\n }\n //else\n }, function (e) {\n toaster.pop('error', \"Pobieranie partnera\", \"Wystąpił błąd podczas przysłania kodu captcha.\");\n });\n toaster.pop('success', 'Pomyślnie zaktualizowano dane produktowe partnera');\n }, function (h) { });\n }\n }, function (e) {\n console.error(e);\n toaster.pop('error', \"Partner\", \"Błąd przy dodaniu partnera\");\n });\n }\n };\n $scope.downloadRegistryDataAgain = function () {\n $scope.currentPartner.ShouldDownloadRegistryData = true;\n $scope.saveEditedPartner();\n };\n $scope.search = {\n FirstName: \"\",\n LastName: \"\",\n Email: \"\"\n };\n $scope.searchBankAccount = {\n Name: \"\"\n };\n // filtr osoby kontaktowe\n $scope.filterRequest = function (item) {\n // jak wypelnione to szukamy po nazwie\n //if ($scope.search.LastName && item.LastName && item.LastName.toLowerCase().indexOf($scope.search.LastName.toLowerCase()) === -1) return false;\n if ($scope.search.FirstName) {\n var _v0 = ($scope.search.FirstName || \"\").toLowerCase();\n var _v1 = (item.FirstName + \"\" || \"\").toLowerCase();\n if (_v1.indexOf(_v0) == -1)\n return false;\n }\n if ($scope.search.LastName) {\n var _v0 = ($scope.search.LastName || \"\").toLowerCase();\n var _v1 = (item.LastName + \"\" || \"\").toLowerCase();\n if (_v1.indexOf(_v0) == -1)\n return false;\n }\n if ($scope.search.Email) {\n var _v0 = ($scope.search.Email || \"\").toLowerCase();\n var _v1 = (item.Email + \"\" || \"\").toLowerCase();\n if (_v1.indexOf(_v0) == -1)\n return false;\n }\n return true;\n };\n // filtr rachunki bankowe\n $scope.bankAccountFilterRequest = function (item) {\n // jak wypelnione to szukamy po nazwie\n //if ($scope.search.LastName && item.LastName && item.LastName.toLowerCase().indexOf($scope.search.LastName.toLowerCase()) === -1) return false;\n if ($scope.searchBankAccount.Name) {\n var _v0 = ($scope.searchBankAccount.Name || \"\").toLowerCase();\n var _v1 = (item.Name + \"\" || \"\").toLowerCase();\n if (_v1.indexOf(_v0) == -1)\n return false;\n }\n return true;\n };\n // obserwowanie filtra i glownego zbioru danych (osoby kontaktowe)\n $scope.$watch('search', function () {\n $scope.ContactPeopleList = filterFilter($scope.ContactPersonModels, $scope.filterRequest);\n }, true);\n $scope.$watch('ContactPersonModels', function () {\n $scope.ContactPeopleList = filterFilter($scope.ContactPersonModels, $scope.filterRequest);\n }, true);\n // obserwowanie filtra i glownego zbioru danych (rachunki bankowe)\n $scope.$watch('searchBankAccount', function () {\n $scope.BankAccountsList = filterFilter($scope.BankAccountModels, $scope.bankAccountFilterRequest);\n }, true);\n $scope.$watch('BankAccountModels', function () {\n $scope.BankAccountsList = filterFilter($scope.BankAccountModels, $scope.bankAccountFilterRequest);\n }, true);\n $scope.RefreshContactPeople = function () {\n $http.get('/api/ContactPerson' + '?partitionKey=' + $scope.currentPartner.Guid).then(function (d) {\n $scope.ContactPersonModels = d.data.Result;\n }, function (e) {\n toaster.pop('error', 'Pobieranie danych nie powiodło się');\n });\n };\n $scope.RefreshContactPeople();\n $scope.RefreshBankAccounts = function () {\n $http.get('/api/BankAccount' + '?partitionKey=' + $scope.currentPartner.Guid).then(function (d) {\n $scope.BankAccountModels = d.data.Result;\n }, function (e) {\n toaster.pop('error', 'Pobieranie danych nie powiodło się');\n });\n };\n $scope.RefreshBankAccounts();\n // operacje na osobach kontaktowych\n $scope.AddContactPerson = function () {\n $scope.dataForNewContactPerson = {\n PartnerID: $scope.currentPartner.Guid,\n FirstName: \"\",\n LastName: \"\",\n Email: \"\",\n PhoneNumber: \"\"\n };\n var modalInstance = $modal.open({\n animation: true,\n templateUrl: '/WWW/partials/addContactPersonModal.html',\n controller: 'AddContactPersonModalCtrl',\n scope: $scope,\n resolve: {\n dataForNewContactPerson: function () {\n return $scope.dataForNewContactPerson;\n }\n }\n });\n modalInstance.result.then(function (dataForNewContactPerson) {\n $http.post('/api/ContactPerson/', dataForNewContactPerson).then(function (d) {\n $scope.RefreshContactPeople();\n toaster.pop('success', 'Pomyślnie dodano nową osobę kontaktową');\n }, function (e) {\n toaster.pop('error', 'Błąd podczas dodawania osoby kontaktowej');\n });\n }, function (e) { });\n };\n $scope.EditContactPerson = function (contactPerson) {\n $scope.dataForEditContactPerson = contactPerson;\n var modalInstance = $modal.open({\n animation: true,\n templateUrl: '/WWW/partials/editContactPersonModal.html',\n controller: 'EditContactPersonCtrl',\n scope: $scope,\n resolve: {\n dataForEditContactPerson: function () {\n return $scope.dataForEditContactPerson;\n }\n }\n });\n modalInstance.result.then(function (dataForEditContactPerson) {\n $http.put('/api/ContactPerson/' + dataForEditContactPerson.Guid, dataForEditContactPerson).then(function (f) {\n $scope.RefreshContactPeople();\n toaster.pop('success', 'Pomyślnie zaktualizowano dane osoby kontaktowej');\n }, function (g) {\n toaster.pop('error', 'Błąd podczas aktualizacji danych osoby kontaktowej');\n });\n }, function (h) { });\n };\n $scope.DeleteContactPerson = function (id) {\n if (confirm(\"Czy na pewno chcesz usunąć osobę kontaktową?\")) {\n $http.delete('/api/ContactPerson' + '?id=' + id.toString()).then(function (d) {\n toaster.pop('success', 'Operacja powiodła się');\n $scope.RefreshContactPeople();\n }, function (e) {\n toaster.pop('error', 'Operacja nie powiodła się');\n });\n }\n };\n // operacje na rachunkach bankowych\n $scope.AddBankAccount = function () {\n $scope.dataForNewBankAccount = {\n PartnerID: $scope.currentPartner.Guid,\n Name: \"\",\n IBAN: \"\",\n BankAccountStatus: \"Aktywny\"\n };\n var modalInstance = $modal.open({\n animation: true,\n templateUrl: '/WWW/partials/addBankAccountModal.html',\n controller: 'AddBankAccountModalCtrl',\n scope: $scope,\n resolve: {\n dataForNewBankAccount: function () {\n return $scope.dataForNewBankAccount;\n }\n }\n });\n modalInstance.result.then(function (dataForNewBankAccount) {\n $http.post('/api/BankAccount/', dataForNewBankAccount).then(function (d) {\n $scope.RefreshBankAccounts();\n toaster.pop('success', 'Pomyślnie dodano nowy rachunek bankowy');\n }, function (e) {\n toaster.pop('error', 'Błąd podczas dodawania rachunku bankowego');\n });\n }, function (e) { });\n };\n $scope.EditBankAccount = function (bankAccount) {\n $scope.dataForEditBankAccount = bankAccount;\n var modalInstance = $modal.open({\n animation: true,\n templateUrl: '/WWW/partials/editBankAccountModal.html',\n controller: 'EditBankAccountModalCtrl',\n scope: $scope,\n resolve: {\n dataForEditBankAccount: function () {\n return $scope.dataForEditBankAccount;\n }\n }\n });\n modalInstance.result.then(function (dataForEditBankAccount) {\n $http.put('/api/BankAccount/' + dataForEditBankAccount.Guid, dataForEditBankAccount).then(function (f) {\n $scope.RefreshBankAccounts();\n toaster.pop('success', 'Pomyślnie zaktualizowano dane rachunku bankowego');\n }, function (g) {\n toaster.pop('error', 'Błąd podczas aktualizacji danych rachunku bankowego');\n });\n }, function (h) { });\n };\n $scope.DeleteBankAccount = function (bankAccount) {\n //$scope.dataForDeleteBankAccount = bankAccount;\n bankAccount.BankAccountStatus = \"Historyczny\";\n if (confirm(\"Czy na pewno chcesz usunąć rachunek bankowy?\")) {\n $http.put('/api/BankAccount/' + bankAccount.Guid, bankAccount).then(function (d) {\n $scope.RefreshBankAccounts();\n toaster.pop('success', \"Rachunek bankowy\", \"Status rachunku zmieniony na 'Historyczny'\");\n }, function (e) {\n console.error(e);\n toaster.pop('error', \"Rachunek bankowy\", \"Błąd przy usuwaniu rachunku bankowego\");\n });\n }\n };\n }\n PartnerCtrl.$inject = ['$scope', '$http', '$modal', 'FileUploader', 'toaster', 'filterFilter'];\n return PartnerCtrl;\n }());\n system.PartnerCtrl = PartnerCtrl;\n /* ladowanie produktow dla prartnerow */\n var PartnerProductUploadModalCtrl = (function () {\n function PartnerProductUploadModalCtrl($scope, $modalInstance, uploader, partnerData) {\n $scope.uploader = uploader;\n $scope.partnerData = partnerData;\n $scope.ok = function () {\n $modalInstance.close($scope.partnerData);\n };\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n }\n PartnerProductUploadModalCtrl.$inject = ['$scope', '$modalInstance', 'uploader', 'partnerData'];\n return PartnerProductUploadModalCtrl;\n }());\n system.PartnerProductUploadModalCtrl = PartnerProductUploadModalCtrl;\n ;\n /* dodawanie osoby kontaktowej */\n var AddContactPersonModalCtrl = (function () {\n function AddContactPersonModalCtrl($scope, $modalInstance, dataForNewContactPerson) {\n $scope.dataForNewContactPerson = dataForNewContactPerson;\n $scope.ok = function () {\n $modalInstance.close($scope.dataForNewContactPerson);\n };\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n }\n AddContactPersonModalCtrl.$inject = ['$scope', '$modalInstance', 'dataForNewContactPerson'];\n return AddContactPersonModalCtrl;\n }());\n system.AddContactPersonModalCtrl = AddContactPersonModalCtrl;\n ;\n var EditContactPersonCtrl = (function () {\n function EditContactPersonCtrl($scope, $modalInstance, dataForEditContactPerson) {\n $scope.dataForEditContactPerson = dataForEditContactPerson;\n $scope.ok = function () {\n $modalInstance.close($scope.dataForEditContactPerson);\n };\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n $scope.RefreshContactPeople();\n };\n }\n EditContactPersonCtrl.$inject = ['$scope', '$modalInstance', 'dataForEditContactPerson'];\n return EditContactPersonCtrl;\n }());\n system.EditContactPersonCtrl = EditContactPersonCtrl;\n ;\n /* dodawanie rachunku bankowego */\n var AddBankAccountModalCtrl = (function () {\n function AddBankAccountModalCtrl($scope, $modalInstance, dataForNewBankAccount) {\n $scope.dataForNewBankAccount = dataForNewBankAccount;\n $scope.ok = function () {\n $modalInstance.close($scope.dataForNewBankAccount);\n };\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n }\n AddBankAccountModalCtrl.$inject = ['$scope', '$modalInstance', 'dataForNewBankAccount'];\n return AddBankAccountModalCtrl;\n }());\n system.AddBankAccountModalCtrl = AddBankAccountModalCtrl;\n ;\n var EditBankAccountModalCtrl = (function () {\n function EditBankAccountModalCtrl($scope, $modalInstance, dataForEditBankAccount) {\n $scope.dataForEditBankAccount = dataForEditBankAccount;\n $scope.ok = function () {\n $modalInstance.close($scope.dataForEditBankAccount);\n };\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n $scope.RefreshBankAccounts();\n };\n }\n EditBankAccountModalCtrl.$inject = ['$scope', '$modalInstance', 'dataForEditBankAccount'];\n return EditBankAccountModalCtrl;\n }());\n system.EditBankAccountModalCtrl = EditBankAccountModalCtrl;\n ;\n var CaptchaNeededModalCtrl = (function () {\n function CaptchaNeededModalCtrl($scope, $modalInstance, CaptchaData) {\n $scope.CaptchaData = CaptchaData;\n $scope.ok = function () {\n $modalInstance.close($scope.CaptchaData);\n };\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n }\n CaptchaNeededModalCtrl.$inject = ['$scope', '$modalInstance', 'CaptchaData'];\n return CaptchaNeededModalCtrl;\n }());\n system.CaptchaNeededModalCtrl = CaptchaNeededModalCtrl;\n ;\n // kontroller produktow partnera\n var PartnerProductCtrl = (function () {\n function PartnerProductCtrl($scope, PartnerProductSrv) {\n // domyslana zakladka\n $scope.currentPartnerProductTab = '';\n }\n PartnerProductCtrl.$inject = ['$scope', 'PartnerProductSrv'];\n return PartnerProductCtrl;\n }());\n system.PartnerProductCtrl = PartnerProductCtrl;\n var PartnerSystemProductsCtrl = (function () {\n function PartnerSystemProductsCtrl($scope, $http, toaster, filterFilter, PartnerProductSrv, $rootScope) {\n // opracowanie guida partnera\n $scope.currentPartnerGuid = ($scope.currentPartner ? $scope.currentPartner.Key : \"\");\n $scope.filteredList = [];\n $scope.search = {\n ProductName: \"\"\n };\n $scope.ProductModels = [];\n // filtr\n $scope.filterRequest = function (item) {\n if ($scope.search.ProductName) {\n var _v0 = ($scope.search.ProductName || \"\").toLowerCase();\n var _v1 = (item.Product.ProductName + \"\" || \"\").toLowerCase();\n var _v2 = (item.Product.ProductId + \"\" || \"\").toLowerCase();\n var _v3 = (item.Product.ProductCode + \"\" || \"\").toLowerCase();\n var _v4 = (item.Product.ProductCategory + \"\" || \"\").toLowerCase();\n if (_v1.indexOf(_v0) == -1\n && _v2.indexOf(_v0) == -1\n && _v3.indexOf(_v0) == -1\n && _v4.indexOf(_v0) == -1)\n return false;\n }\n return true;\n };\n // obserwowanie filtra i glownego zbioru danych\n $scope.$watch('search', function () {\n $scope.filteredList = filterFilter($scope.ProductModels, $scope.filterRequest);\n }, true);\n $scope.$watch('ProductModels', function () {\n $scope.filteredList = filterFilter($scope.ProductModels, $scope.filterRequest);\n }, true);\n // pobieranie danych\n $scope.Refresh = function () {\n PartnerProductSrv.listSystemProducts($scope.currentPartnerGuid).then(function (d) {\n $scope.ProductModels = d.data.Result;\n }, function (e) {\n toaster.pop('error', 'Pobieranie danych nie powiodło się');\n });\n };\n $scope.AddProduct = function (Product_Guid) {\n var obj = {\n Product_Guid: Product_Guid,\n Partner_Guid: $scope.currentPartnerGuid,\n Included: true\n };\n PartnerProductSrv.updatePartnerSystemProduct(obj).then(function (d) {\n $scope.Refresh();\n }, function (e) {\n toaster.pop('error', 'Zapisywanie danych nie powiodło się');\n });\n };\n $scope.DeleteProduct = function (Product_Guid) {\n var obj = {\n Product_Guid: Product_Guid,\n Partner_Guid: $scope.currentPartnerGuid,\n Included: false\n };\n PartnerProductSrv.updatePartnerSystemProduct(obj).then(function (d) {\n $scope.Refresh();\n }, function (e) {\n toaster.pop('error', 'Zapisywanie danych nie powiodło się');\n });\n };\n $scope.setAsDefault = function (productId, partnerId) {\n $http.put('/api/PartnerSystemProduct/' + '?id=' + productId + '&productPartner=' + partnerId).then(function (d) {\n $scope.Refresh();\n }, function (e) {\n toaster.pop('error', 'Pobieranie danych nie powiodło się');\n });\n };\n // domyslnie pobranie\n $scope.Refresh();\n }\n PartnerSystemProductsCtrl.$inject = ['$scope', '$http', 'toaster', 'filterFilter', 'PartnerProductSrv', '$rootScope'];\n return PartnerSystemProductsCtrl;\n }());\n system.PartnerSystemProductsCtrl = PartnerSystemProductsCtrl;\n // serwis produktow partnera\n var PartnerProductSrv = (function () {\n function PartnerProductSrv($http) {\n var _this = this;\n this.$http = $http;\n this.listSystemProducts = function (Partner_Guid) {\n return _this.$http.get('/api/PartnerSystemProduct?Partner_Guid=' + Partner_Guid);\n };\n this.updatePartnerSystemProduct = function (obj) {\n return _this.$http.post('/api/PartnerSystemProduct', obj);\n };\n }\n PartnerProductSrv.$inject = ['$http'];\n return PartnerProductSrv;\n }());\n system.PartnerProductSrv = PartnerProductSrv;\n})(system || (system = {}));\nvar system;\n(function (system) {\n // produkty\n var LeaselinkProductsMainCtrl = (function () {\n function LeaselinkProductsMainCtrl($rootScope, $scope, $location, $http, toaster, $modal, filterFilter) {\n $scope.ProductFunc = \"Parents\";\n $scope.ProductsList = [];\n $scope.filteredList = [];\n $scope.config = {\n itemsPerPage: 10,\n maxPages: 10,\n fillLastPage: 'yes'\n };\n $scope.search = {\n Product: \"\"\n };\n // filtr\n $scope.filterRequest = function (item) {\n if ($scope.search.Product) {\n var _v0 = ($scope.search.Product || \"\").toLowerCase();\n var _v1 = (item.FinancialProductName || \"\").toLowerCase();\n // sprawdzanie czy się zawiera\n if (!~_v1.indexOf(_v0))\n return false;\n }\n return true;\n };\n // obserwowanie filtra i glownego zbioru danych\n $scope.$watch('search', function () {\n $scope.filteredList = filterFilter($scope.ProductsList, $scope.filterRequest);\n }, true);\n $scope.$watch('ProductsList', function () {\n $scope.filteredList = filterFilter($scope.ProductsList, $scope.filterRequest);\n }, true);\n $scope.Refresh = function () {\n $http.get('/api/LeaselinkProduct').then(function (d) {\n $scope.ProductsList = d.data.Result;\n }, function (e) {\n toaster.pop('error', 'Pobieranie danych nie powiodło się');\n });\n };\n $scope.Refresh();\n // pokazanie elementów\n $scope.showItem = function (item) {\n item.EditMode = false;\n item.Validfrom = new Date(item.Validfrom) || null;\n item.Validto = new Date(item.Validto) || null;\n item.Procestill = new Date(item.Procestill) || null;\n var modalInstance = $modal.open({\n animation: true,\n templateUrl: '/WWW/partials/modules/products/form.html',\n controller: 'LeaselinkProductCtrl',\n resolve: {\n item: function () {\n return item;\n }\n }\n });\n modalInstance.result.then(function (item) {\n //$scope.item = item;\n $scope.Refresh();\n }, function () { });\n };\n $scope.addItem = function () {\n var item = {\n EditMode: true\n };\n $scope.showItem(item);\n };\n $scope.deleteItem = function (item) {\n if (confirm(\"Czy na pewno chcesz usunąć pozycję ?\")) {\n $http.delete('/api/LeaselinkProduct/' + item.Guid).then(function (d) {\n toaster.pop('success', \"Produkty\", \"Dane usunięto poprawnie.\");\n $scope.Refresh();\n }, function (e) {\n toaster.pop('error', \"Produkty\", \"Wystąpił bład podczas usuwania danych.\");\n });\n }\n };\n // $scope.ProductFunc = \"Parents\";\n $scope.showChildren = function (item) {\n $scope.currentParent = item;\n $scope.ProductFunc = \"Children\";\n };\n // event powrotu do produktów finansowych (button)\n $scope.backToFinancialProducts = function () {\n $scope.ProductFunc = \"Parents\";\n $rootScope.$broadcast('back-to-financial-products');\n };\n // powrot do produktów finansowych (zakładka)\n $scope.$on('current-productFunc-Parents', function (event, args) {\n $scope.ProductFunc = \"Parents\";\n });\n }\n LeaselinkProductsMainCtrl.$inject = ['$rootScope', '$scope', '$location', '$http', 'toaster', '$modal', 'filterFilter'];\n return LeaselinkProductsMainCtrl;\n }());\n system.LeaselinkProductsMainCtrl = LeaselinkProductsMainCtrl;\n var LeaselinkProductCtrl = (function () {\n function LeaselinkProductCtrl($rootScope, $scope, $modalInstance, toaster, $http, item) {\n $scope.item = item;\n $scope.editItem = function () {\n // pokazanie danych\n $scope.item.EditMode = true;\n };\n // oddanie danych\n $scope.saveItem = function () {\n if (!item.Guid) {\n $http.post(\"/api/LeaselinkProduct\", $scope.item).then(function (d) {\n $scope.item = d.data;\n $modalInstance.close($scope.item);\n }, function (e) {\n console.error(e);\n toaster.pop('error', \"Produkty\", \"Błąd przy dodawaniu produktu\");\n });\n }\n else {\n $http.put(\"/api/LeaselinkProduct/\" + item.Guid, $scope.item).then(function (d) {\n $scope.item = d.data;\n $modalInstance.close($scope.item);\n }, function (e) {\n console.error(e);\n toaster.pop('error', \"Produkty\", \"Błąd przy dodawaniu produktu\");\n });\n }\n };\n // zamkniecie\n $scope.cancel = function () {\n $scope.item.EditMode = false;\n $modalInstance.dismiss('cancel');\n };\n }\n LeaselinkProductCtrl.$inject = ['$rootScope', '$scope', '$modalInstance', 'toaster', '$http', 'item'];\n return LeaselinkProductCtrl;\n }());\n system.LeaselinkProductCtrl = LeaselinkProductCtrl;\n var LeaselinkChildProductCtrl = (function () {\n function LeaselinkChildProductCtrl($rootScope, $scope, $modalInstance, toaster, $http, item) {\n $scope.item = item;\n $scope.editItem = function () {\n // pokazanie danych\n $scope.item.EditMode = true;\n };\n // oddanie danych\n $scope.saveItem = function () {\n if (!item.Guid) {\n $http.post(\"/api/LeaselinkSubProduct\", $scope.item).then(function (d) {\n $scope.item = d.data;\n $modalInstance.close($scope.item);\n }, function (e) {\n console.error(e);\n toaster.pop('error', \"Produkty\", \"Błąd przy dodawaniu produktu\");\n });\n }\n else {\n $http.put(\"/api/LeaselinkSubProduct/\" + item.Guid, $scope.item).then(function (d) {\n $scope.item = d.data;\n $modalInstance.close($scope.item);\n }, function (e) {\n console.error(e);\n toaster.pop('error', \"Produkty\", \"Błąd przy dodawaniu produktu\");\n });\n }\n };\n // zamkniecie\n $scope.cancel = function () {\n $scope.item.EditMode = false;\n $modalInstance.dismiss('cancel');\n };\n }\n LeaselinkChildProductCtrl.$inject = ['$rootScope', '$scope', '$modalInstance', 'toaster', '$http', 'item'];\n return LeaselinkChildProductCtrl;\n }());\n system.LeaselinkChildProductCtrl = LeaselinkChildProductCtrl;\n var LeaselinkProductChildrenCtrl = (function () {\n function LeaselinkProductChildrenCtrl($rootScope, $scope, $location, $http, toaster, $modal, filterFilter) {\n $scope.ProductChildrenList = [];\n $scope.filteredList = [];\n $scope.config = {\n itemsPerPage: 10,\n maxPages: 10,\n fillLastPage: 'yes'\n };\n $scope.search = {\n Product: \"\"\n };\n // filtr\n $scope.filterRequest = function (item) {\n if ($scope.search.Product) {\n var _v0 = ($scope.search.Product || \"\").toLowerCase();\n var _v1 = (item.FinancialProductName || \"\").toLowerCase();\n // sprawdzanie czy się zawiera\n if (!~_v1.indexOf(_v0))\n return false;\n }\n return true;\n };\n // obserwowanie filtra i glownego zbioru danych\n $scope.$watch('search', function () {\n $scope.filteredList = filterFilter($scope.ProductChildrenList, $scope.filterRequest);\n }, true);\n $scope.$watch('ProductChildrenList', function () {\n $scope.filteredList = filterFilter($scope.ProductChildrenList, $scope.filterRequest);\n }, true);\n $scope.Refresh = function () {\n $http.get('/api/LeaselinkSubProduct?partitionKey=' + $scope.currentParent.Guid).then(function (d) {\n $scope.ProductChildrenList = d.data.Result;\n }, function (e) {\n toaster.pop('error', 'Pobieranie danych nie powiodło się');\n });\n };\n $scope.Refresh();\n // pokazanie elementów\n $scope.showItem = function (item) {\n item.EditMode = item.EditMode || false;\n var modalInstance = $modal.open({\n animation: true,\n templateUrl: '/WWW/partials/modules/products/childrenForm.html',\n controller: 'LeaselinkChildProductCtrl',\n resolve: {\n item: function () {\n return item;\n }\n }\n });\n modalInstance.result.then(function (item) {\n //$scope.item = item;\n $scope.Refresh();\n }, function () { });\n };\n $scope.addItem = function () {\n var item = {\n EditMode: true,\n ParentGuid: $scope.currentParent.Guid,\n NetValueMin: $scope.currentParent.NetValueMin,\n NetValueMax: $scope.currentParent.NetValueMax,\n GrossValueMin: $scope.currentParent.GrossValueMin,\n GrossValueMax: $scope.currentParent.GrossValueMax,\n EntryPaymentMin: $scope.currentParent.EntryPaymentMin,\n EntryPaymentMax: $scope.currentParent.EntryPaymentMax,\n AdminPaymentMin: $scope.currentParent.AdminPaymentMin,\n AdminPaymentMax: $scope.currentParent.AdminPaymentMax,\n NumberOfRatesMin: $scope.currentParent.NumberOfRatesMin,\n NumberOfRatesMax: $scope.currentParent.NumberOfRatesMax,\n ClosingPaymentMin: $scope.currentParent.ClosingPaymentMin,\n ClosingPaymentMax: $scope.currentParent.ClosingPaymentMax,\n MarginMin: $scope.currentParent.MarginMin,\n MarginMax: $scope.currentParent.MarginMax\n };\n $scope.showItem(item);\n };\n $scope.deleteItem = function (item) {\n if (confirm(\"Czy na pewno chcesz usunąć pozycję ?\")) {\n $http.delete('/api/LeaselinkSubProduct/' + item.Guid).then(function (d) {\n toaster.pop('success', \"Produkty\", \"Dane usunięto poprawnie.\");\n $scope.Refresh();\n }, function (e) {\n toaster.pop('error', \"Produkty\", \"Wystąpił bład podczas usuwania danych.\");\n });\n }\n };\n }\n LeaselinkProductChildrenCtrl.$inject = ['$rootScope', '$scope', '$location', '$http', 'toaster', '$modal', 'filterFilter'];\n return LeaselinkProductChildrenCtrl;\n }());\n system.LeaselinkProductChildrenCtrl = LeaselinkProductChildrenCtrl;\n})(system || (system = {}));\n/*\nmoduł zarzadzania użytkownikami\n*/\n//import \"../commons/filters/system_filters\";\nvar system;\n(function (system) {\n /* uzytkownicy */\n var UsersCtrl = (function () {\n function UsersCtrl($rootScope, $scope, $location, $http, toaster, $modal, filterFilter, SystemDataHelper) {\n $scope.UsersModels = [];\n $scope.filteredList = [];\n $scope.config = {\n itemsPerPage: 10,\n maxPages: 10,\n fillLastPage: \"yes\",\n };\n $scope.search = {\n Phrase: \"\",\n Partner: \"\",\n };\n // filtr\n $scope.filterRequest = function (item) {\n if ($scope.search.Phrase) {\n var _v0 = ($scope.search.Phrase || \"\").toLowerCase();\n var _v1 = (item.Login + \"\" || \"\").toLowerCase();\n var _v2 = (item.FirstName + \"\" || \"\").toLowerCase();\n var _v3 = (item.LastName + \"\" || \"\").toLowerCase();\n var _v4 = (item.ExternalId + \"\" || \"\").toLowerCase();\n if (_v1.indexOf(_v0) == -1 &&\n _v2.indexOf(_v0) == -1 &&\n _v3.indexOf(_v0) == -1 &&\n _v4.indexOf(_v0) == -1)\n return false;\n }\n if ($scope.search.Partner) {\n var _v0 = ($scope.search.Partner || \"\").toLowerCase();\n var _v1 = (item.Partner + \"\" || \"\").toLowerCase();\n if (_v1 !== _v0)\n return false;\n }\n return true;\n };\n // obserwowanie filtra i glownego zbioru danych\n $scope.$watch(\"search\", function () {\n $scope.filteredList = filterFilter($scope.UsersModels, $scope.filterRequest);\n }, true);\n $scope.$watch(\"UsersModels\", function () {\n $scope.filteredList = filterFilter($scope.UsersModels, $scope.filterRequest);\n }, true);\n $scope.PartnerSupervisors = [];\n $scope.Partners = [];\n // pobranie partnerow\n $http.get(\"/offerbusinessdata/getpartnersbase\").then(function (d) {\n $scope.Partners = [];\n $scope.Partners = _.map(d.data, function (i) {\n return { k: i.Key, v: i.Name, url: i.PartnerUrl };\n });\n }, function (e) {\n console.error(e);\n });\n $scope.Roles = [\n {\n k: \"PARTNER_OPERATOR\",\n v: \"Konsultant Partnera\",\n },\n {\n k: \"WWW_OPERATOR\",\n v: \"Użytkownik internetowy\",\n },\n ];\n $scope.refresh = function () {\n $http.get(\"/api/PartnerUser\").then(function (d) {\n $scope.UsersModels = d.data.Result;\n $scope.PartnerSupervisors = $scope.UsersModels.map(function (item) {\n return {\n Guid: item.Guid,\n FullName: item.LastName +\n \", \" +\n item.FirstName +\n \" [\" +\n item.Partner +\n \"]\",\n };\n });\n }, function (e) {\n toaster.pop(\"error\", \"Użytkownicy\", \"Pobieranie danych nie powiodło się\");\n });\n };\n $scope.refresh();\n // pokazanie elementów\n $scope.showItem = function (item) {\n item.EditMode = false;\n var modalInstance = $modal.open({\n animation: true,\n templateUrl: \"/WWW/partials/modules/users/form.html\",\n controller: \"UserCtrl\",\n resolve: {\n item: function () {\n return item;\n },\n PartnerSupervisors: function () {\n return $scope.PartnerSupervisors;\n },\n Roles: function () {\n return $scope.Roles;\n },\n },\n });\n modalInstance.result.then(function (item) {\n //$scope.item = item;\n $scope.refresh();\n }, function () { });\n };\n // pokazanie szczegolow uzytkownika\n $scope.showUserData = function (item) {\n $http.get(\"/api/PartnerUser?userId=\" + item.Id).then(function (d) {\n $scope.currentUser = d.data.Result;\n $scope.currentUser.EditMode = false;\n $scope.UserFunc = \"EditUser\";\n }, function (e) {\n toaster.pop(\"error\", \"Użytkownicy\", \"Wystąpił bład podczas pobierania danych.\");\n });\n };\n // zmiana hasła przez admina\n $scope.changePasswordItem = function (item) {\n item.EditMode = false;\n var modalInstance = $modal.open({\n animation: true,\n templateUrl: \"/WWW/partials/modules/users/partnerUserChangePassword.html\",\n controller: \"UserPasswordCtrl\",\n resolve: {\n item: function () {\n return item;\n },\n },\n });\n modalInstance.result.then(function (item) { }, function () { });\n };\n // dodanie nowego\n $scope.addNewUser = function () {\n $scope.currentUser = {};\n $scope.currentUser.EditMode = true;\n $scope.UserFunc = \"EditUser\";\n };\n $scope.backToUsers = function () {\n $scope.currentUser.EditMode = false;\n $scope.UserFunc = \"Default\";\n $scope.refresh();\n };\n $scope.addItem = function () {\n var item = {\n EditMode: true,\n Roles: [],\n };\n $scope.showItem(item);\n };\n $scope.deleteItem = function (item) {\n if (confirm(\"Czy na pewno chcesz usunąć pozycję ?\")) {\n $http.delete(\"/api/PartnerUser?userId=\" + item.Id).then(function (d) {\n toaster.pop(\"success\", \"Użytkownicy\", \"Dane usunięto poprawnie.\");\n $scope.refresh();\n }, function (e) {\n toaster.pop(\"error\", \"Użytkownicy\", \"Wystąpił bład podczas usuwania danych.\");\n });\n }\n };\n $scope.editItem = function () {\n // pokazanie danych\n $scope.currentUser.EditMode = true;\n };\n // oddanie danych\n $scope.saveEditedUser = function () {\n //LL-1671 schowanie loginu, login ma być taki sam jak e-mail\n var model = $scope.currentUser;\n model.Login = model.Email;\n $http.put(\"/api/PartnerUser\", model).then(function (d) {\n if (d.data.Result == null) {\n toaster.pop(\"error\", \"Użytkownicy\", \"Użytkownik o podanym loginie już istnieje\");\n $scope.backToUsers();\n }\n $scope.currentUser = d.data.Result;\n $scope.currentUser.EditMode = false;\n $rootScope.$broadcast(\"update-statuses-filter\");\n $scope.backToUsers();\n toaster.pop(\"success\", \"Użytkownicy\", \"Użytkownik dodany/edytowany poprawnie\");\n }, function (e) {\n toaster.pop(\"error\", \"Użytkownicy\", \"Użytkownik o podanym loginie już istnieje\");\n });\n };\n $scope.searchStatuses = {\n name: \"\",\n };\n $scope.AllStatuses = [\n {\n name: \"Anulowany\",\n value: -1,\n },\n {\n name: \"Nowy\",\n value: 0,\n },\n {\n name: \"Wysłano link do klienta\",\n value: 10,\n },\n {\n name: \"Otwarty przez klienta\",\n value: 20,\n },\n {\n name: \"Wybór wniosku do realizacji\",\n value: 21,\n },\n {\n name: \"Uzupełniony przez klienta\",\n value: 30,\n },\n {\n name: \"Opłata weryfikacyjna do zapłaty\",\n value: 32,\n },\n {\n name: \"Zapłacony przez klienta\",\n value: 40,\n },\n {\n name: \"Ponów płatność 1 PLN\",\n value: 41,\n },\n {\n name: \"Odrzucony przez klienta\",\n value: 50,\n },\n {\n name: \"Prośba o uzupełnienie wymaganych dokumentów\",\n value: 55,\n },\n {\n name: \"Wstępna decyzja kredytowa\",\n value: 52,\n },\n {\n name: \"Prośba o uzupełnienie wymaganych dokumentów finansowych (VAT-owiec)\",\n value: 53,\n },\n {\n name: \"Prośba o uzupełnienie wymaganych dokumentów finansowych (nie-VAT-owiec)\",\n value: 54,\n },\n {\n name: \"Do weryfikacji BO / Przekaż do Ryzyka\",\n value: 60,\n },\n {\n name: \"Automat scoringowy - oczekiwanie na odpowiedź\",\n value: 61,\n },\n {\n name: \"Automat scoringowy - odpowiedź gotowa\",\n value: 62,\n },\n {\n name: \"Analiza ryzyka\",\n value: 63,\n },\n {\n name: \"Błąd identyfikacji tożsamości\",\n value: 67,\n },\n {\n name: \"Umowa wstepna przygotowana\",\n value: 70,\n },\n {\n name: \"Konieczność opłaty WOL (uzupełnienie danych)\",\n value: 71,\n },\n {\n name: \"WOL opłacony\",\n value: 72,\n },\n {\n name: \"Konieczność opłaty WOL (wybór płatności)\",\n value: 73,\n },\n {\n name: \"Ponów płatność WOL\",\n value: 74,\n },\n {\n name: \"Weryfikacja podpisu kwalifikowanego\",\n value: 76,\n },\n {\n name: \"Akceptacja\",\n value: 80,\n },\n {\n name: \"Akceptacja z warunkami\",\n value: 90,\n },\n {\n name: \"Do zmiany przez operatora\",\n value: 91,\n },\n {\n name: \"Zmiana formy finansowania\",\n value: 92,\n },\n {\n name: \"Zmiana zamówienia przez Klienta\",\n value: 95,\n },\n {\n name: \"Rolnik\",\n value: 98,\n },\n {\n name: \"Odrzucenie\",\n value: 100,\n },\n {\n name: \"Akceptacja nowych warunków\",\n value: 103,\n },\n {\n name: \"Umowa przygotowana\",\n value: 105,\n },\n {\n name: \"Umowa zawiera niepoprawne dane\",\n value: 106,\n },\n {\n name: \"Umowa jest poprawna\",\n value: 107,\n },\n {\n name: \"Umowa przekazana do klienta\",\n value: 110,\n },\n {\n name: \"Umowa u kuriera\",\n value: 111,\n },\n {\n name: \"Umowa zaakceptowana przez klienta\",\n value: 120,\n },\n {\n name: \"Zapłacone częściowo\",\n value: 124,\n },\n {\n name: \"Płatność do dostawcy\",\n value: 125,\n },\n {\n name: \"EDEN umowa potwierdzona\",\n value: 127,\n },\n {\n name: \"Płatność do dostawcy - oczekiwanie\",\n value: 128,\n },\n {\n name: \"Umowa odrzucona przez klienta\",\n value: 130,\n },\n {\n name: \"mSzafir - manualny proces zawarcia umowy\",\n value: 131,\n },\n {\n name: \"mSzafir - oczekiwanie na podpisanie dokumentu\",\n value: 132,\n },\n {\n name: \"Umowa podpisana. Towar do wydania\",\n value: 140,\n },\n {\n name: \"Czekamy na spłatę w terminie odroczenia\",\n value: 141,\n },\n {\n name: \"Umowa spłacona w terminie odroczenia\",\n value: 142,\n },\n {\n name: \"Zamówienie zostało rozłożone na raty\",\n value: 143,\n },\n {\n name: \"Umowa ramowa - oczekuje na zawarcie umowy\",\n value: 151,\n },\n {\n name: \"Umowa ramowa - uruchomiona\",\n value: 153,\n },\n {\n name: \"Umowa ramowa - wypowiedziana\",\n value: 155,\n },\n {\n name: \"Umowa ramowa - do płatności\",\n value: 157,\n },\n {\n name: \"Umowa potwierdzona - wyślij towar\",\n value: 200,\n },\n {\n name: \"Karencja - iPhone 15\",\n value: 201,\n },\n {\n name: \"Towar u kuriera\",\n value: 210,\n },\n {\n name: \"Towar odebrany\",\n value: 220,\n },\n {\n name: \"Towar odebrany przez klienta\",\n value: 310,\n },\n {\n name: \"Oczekiwanie na zamówienie\",\n value: 398,\n },\n {\n name: \"Brak IBAN\",\n value: 399,\n },\n {\n name: \"Korekta danych BR (AML)\",\n value: 442,\n },\n {\n name: \"Wymaga uzupełnienia danych przez sklep\",\n value: 500,\n },\n {\n name: \"Nie wymaga uzupełnienia danych przez sklep\",\n value: 505,\n },\n {\n name: \"Podpisanie umowy oraz odbiór towaru w punkcie sprzedaży\",\n value: 507,\n },\n {\n name: \"Umowa uzupełniona przez sklep\",\n value: 510,\n },\n {\n name: \"Ostateczne sprawdzenie poprawności\",\n value: 600,\n },\n {\n name: \"Automat - pobieranie danych dostawcy\",\n value: 663,\n },\n {\n name: \"Automat - oczekiwanie na dane dostawców\",\n value: 664,\n },\n {\n name: \"Automat - weryfikacja dostawców\",\n value: 665,\n },\n {\n name: \"Cesja Zaakceptowana\",\n value: 700,\n },\n {\n name: \"Wniosek zakończony\",\n value: 701,\n },\n {\n name: \"Cesja zaakceptowana z poręczeniem\",\n value: 702,\n },\n {\n name: \"(Cesja) Dokumenty wysłane do Klienta\",\n value: 703,\n },\n {\n name: \"(Cesja) Dokumenty błędnie podpisane\",\n value: 704,\n },\n {\n name: \"Cesja wprowadzona\",\n value: 705,\n },\n {\n name: \"Cesja anulowana\",\n value: 706,\n },\n {\n name: \"Obsługa rezygnacji\",\n value: 800,\n },\n {\n name: \"Obsługa anulacji\",\n value: 801,\n },\n {\n name: \"Proces zakończony\",\n value: 1000,\n },\n ];\n $scope.chunkStatuses = chunk($scope.AllStatuses, 3);\n $scope.filterRequestStatuses = function (item) {\n if ($scope.searchStatuses.name) {\n var _v0 = ($scope.searchStatuses.name || \"\").toLowerCase();\n var _v1 = (item.name + \"\" || \"\").toLowerCase();\n if (_v1.indexOf(_v0) == -1)\n return false;\n }\n return true;\n };\n // funkcja do dzielenia na kolumny\n function chunk(arr, size) {\n var newArr = [];\n for (var i = 0; i < arr.length; i += size) {\n newArr.push(arr.slice(i, i + size));\n }\n return newArr;\n }\n $scope.$watch(\"searchStatuses\", function () {\n $scope.filteredStatusesList = filterFilter($scope.AllStatuses, $scope.filterRequestStatuses);\n $scope.chunkedStatuses = chunk($scope.filteredStatusesList, 3);\n }, true);\n $scope.updateSelection = function ($event, value) {\n var checkbox = $event.target;\n var action = checkbox.checked ? \"add\" : \"remove\";\n updateSelected(action, value);\n };\n var updateSelected = function (action, value) {\n if (action === \"add\" &&\n $scope.currentUser.DefaultStatuses.indexOf(value) === -1) {\n $scope.currentUser.DefaultStatuses.push(value);\n }\n if (action === \"remove\" &&\n $scope.currentUser.DefaultStatuses.indexOf(value) !== -1) {\n $scope.currentUser.DefaultStatuses.splice($scope.currentUser.DefaultStatuses.indexOf(value), 1);\n }\n };\n $scope.isSelected = function (value) {\n return $scope.currentUser.DefaultStatuses.indexOf(value) >= 0;\n };\n }\n UsersCtrl.$inject = [\n \"$rootScope\",\n \"$scope\",\n \"$location\",\n \"$http\",\n \"toaster\",\n \"$modal\",\n \"filterFilter\",\n \"SystemDataHelper\",\n ];\n return UsersCtrl;\n }());\n system.UsersCtrl = UsersCtrl;\n /* dane uzytkownika */ // przeniesione z modala na stronę - do kontrolera UsersCtrl\n var UserCtrl = (function () {\n function UserCtrl($rootScope, $scope, $modalInstance, toaster, $http, item, PartnerSupervisors, Roles) {\n item.AccessAPI = item.Roles.indexOf(\"AccessAPI\") > -1;\n item.AccessKalkSklep = item.Roles.indexOf(\"RateCalculator\") > -1;\n item.AccessOpenKlient = item.Roles.indexOf(\"SecuredMakeNew\") > -1;\n item.AccessOpenPartner = item.Roles.indexOf(\"ProcessOfferByPartner\") > -1;\n $scope.item = item;\n $scope.PartnerSupervisors = PartnerSupervisors;\n $scope.Partners = [];\n $scope.Roles = Roles;\n // pobranie partnerow\n $http.get(\"/offerbusinessdata/getpartnersbase\").then(function (d) {\n $scope.Partners = [];\n $scope.Partners = _.map(d.data, function (i) {\n return { k: i.Key, v: i.Name, url: i.PartnerUrl };\n });\n }, function (e) {\n console.error(e);\n });\n // oddanie danych\n $scope.saveItem = function () {\n $http.post(\"/api/User\", $scope.item).then(function (d) {\n $scope.item = d.data.Result;\n $modalInstance.close($scope.item);\n }, function (e) {\n console.error(e);\n toaster.pop(\"error\", \"Użytkownicy\", \"Użytkownik o podanym EXTERNAL ID już istnieje\");\n });\n };\n // zamkniecie\n $scope.cancel = function () {\n $scope.item.EditMode = false;\n $modalInstance.dismiss(\"cancel\");\n };\n }\n UserCtrl.$inject = [\n \"$rootScope\",\n \"$scope\",\n \"$modalInstance\",\n \"toaster\",\n \"$http\",\n \"item\",\n \"PartnerSupervisors\",\n \"Roles\",\n ];\n return UserCtrl;\n }());\n system.UserCtrl = UserCtrl;\n /* haslo uzytkownika */\n var UserPasswordCtrl = (function () {\n function UserPasswordCtrl($scope, $modalInstance, $http, item, toaster) {\n $scope.passwordModel = {\n Password: \"\",\n PasswordRepeat: \"\",\n };\n // oddanie danych\n $scope.saveItem = function () {\n $http\n .post(\"/api/PartnerUserSetPassword/\", {\n UserId: item.Id,\n Password: $scope.passwordModel.Password,\n PasswordRepeat: $scope.passwordModel.PasswordRepeat,\n })\n .then(function (d) {\n $modalInstance.close($scope.item);\n toaster.pop(\"success\", \"Użytkownicy\", \"Hasło zostało zmienione\");\n }, function (e) {\n toaster.pop(\"error\", \"Użytkownicy\", \"Zmiana hasła nie powiodła się\");\n });\n };\n // zamkniecie\n $scope.cancel = function () {\n $modalInstance.dismiss(\"cancel\");\n };\n }\n UserPasswordCtrl.$inject = [\"$scope\", \"$modalInstance\", \"$http\", \"item\", \"toaster\"];\n return UserPasswordCtrl;\n }());\n system.UserPasswordCtrl = UserPasswordCtrl;\n var LlUserHierarchyDirective = (function () {\n function LlUserHierarchyDirective(toaster, $http, $modal) {\n this.toaster = toaster;\n this.$http = $http;\n this.$modal = $modal;\n this.restrict = \"AE\";\n this.scope = {\n currentUserGuid: \"=\",\n usersList: \"=\",\n };\n this.templateUrl = \"/WWW/partials/modules/user.hierarchy.html\";\n this.link = function (scope, elem, attr) {\n scope.findSubordinates = function (list, supervisorGuid) {\n return _.filter(list, function (user) {\n return user.PartnerSupervisor_Guid === supervisorGuid;\n });\n };\n scope.makeNode = function (supervisorGuid) {\n var subordinates = scope.findSubordinates(scope.usersList, supervisorGuid);\n var current = _.findWhere(scope.usersList, {\n Guid: supervisorGuid,\n });\n var nodeUser = {};\n if (current) {\n nodeUser = {\n FirstName: current.FirstName,\n LastName: current.LastName,\n Email: current.Email,\n Partner: current.Partner,\n subordinates: _.map(subordinates, function (user) {\n return scope.makeNode(user.Guid);\n }),\n };\n }\n return nodeUser;\n };\n scope.toggle = function (s) {\n s.toggle();\n };\n scope.currentUser = scope.makeNode(scope.currentUserGuid);\n };\n }\n LlUserHierarchyDirective.Factory = function () {\n var dir = function (toaster, $http, $modal) {\n return new LlUserHierarchyDirective(toaster, $http, $modal);\n };\n dir[\"$inject\"] = [\"toaster\", \"$http\", \"$modal\"];\n return dir;\n };\n return LlUserHierarchyDirective;\n }());\n system.LlUserHierarchyDirective = LlUserHierarchyDirective;\n})(system || (system = {}));\nvar clientConsents;\n(function (clientConsents) {\n var ClientConsentsSrv = (function () {\n function ClientConsentsSrv($http) {\n var _this = this;\n this.$http = $http;\n // pobranie zestawu zgod\n this.getConsentList = function (partner, processStage) {\n var url = '/api/RodoConstent?type=';\n if (partner) {\n url += '&partner=' + (partner);\n }\n if (processStage) {\n url += '&processStage=' + (processStage);\n }\n return _this.$http.get(url);\n };\n // pobranie zgod na procesie\n this.getProcessConsents = function (orderId) {\n var url = '/api/get-rodo-consent-for-offer?orderId=' + orderId;\n return _this.$http.get(url);\n };\n }\n ClientConsentsSrv.$inject = ['$http'];\n return ClientConsentsSrv;\n }());\n clientConsents.ClientConsentsSrv = ClientConsentsSrv;\n var ClientConsentsCtrl = (function () {\n function ClientConsentsCtrl($scope, $service) {\n var _this = this;\n this.$service = $service;\n // pobranie danych\n $scope.refresh = function () {\n // pobranie stage\n var partner = $scope.formRequest.PartnerName || 'LEASELINK';\n // // chwilowa klazula na wyłączność\n // if (['BOSBANK', 'ING-BANK'].indexOf(partner.toUpperCase()) === -1) {\n // partner = 'LEASELINK';\n // }\n //const partner = 'LEASELINK';\n var stage = $scope.step;\n _this.$service.getConsentList(partner, stage).then(function (d) {\n $scope.consents = d.data.Result;\n }, function (e) { });\n // pobranie zgód rodo \n _this.$service.getProcessConsents($scope.formRequest.AggragatedCalulationId).then(function (d) {\n $scope.processConsents = d.data.Result;\n }, function (e) { });\n };\n $scope.initCheckbox = function (consentGuid) {\n var consentInitialValue = false;\n for (var i = 0; i <= $scope.formRequest.Requestors[0].Consents.length - 1; i++) {\n var _processConsent = $scope.formRequest.Requestors[0].Consents[i];\n if (_processConsent.Guid === consentGuid) {\n if (_processConsent.Agreed) {\n consentInitialValue = true;\n }\n else {\n consentInitialValue = false;\n }\n }\n }\n return { Agreed: consentInitialValue, isCollapsed: false };\n };\n // obserwacja zmian\n $scope.$watch('consentsModel', function (n, o) {\n var keys = Object.keys(n);\n for (var i = 0; i <= keys.length - 1; i++) {\n var key = keys[i];\n var consent = n[key];\n var found = false;\n for (var j = 0; j <= $scope.formRequest.Requestors[0].Consents.length - 1; j++) {\n var _consent = $scope.formRequest.Requestors[0].Consents[j];\n if (_consent.Guid === key) {\n _consent.Agreed = consent.Agreed;\n found = true;\n break;\n }\n }\n if (found !== true) {\n $scope.formRequest.Requestors[0].Consents.push({\n Guid: key,\n Agreed: consent.Agreed\n });\n }\n }\n }, true);\n // obserwacja forma\n $scope.$watch('formRequest', function () {\n if ($scope.formRequest && $scope.formRequest.Requestors && $scope.formRequest.Requestors.length > 0) {\n $scope.formRequest.Requestors[0].Consents = $scope.formRequest.Requestors[0].Consents || [];\n $scope.refresh();\n }\n });\n // zmiana check all\n $scope.$watch('checkAll', function () {\n var keys = Object.keys($scope.consentsModel);\n for (var i = 0; i <= keys.length - 1; i++) {\n var _key = keys[i];\n $scope.consentsModel[_key].Agreed = ($scope.checkAll === true);\n }\n });\n // zmiana check all\n $scope.$watch('selectAll', function () {\n var keys = Object.keys($scope.consentsModel);\n for (var i = 0; i <= keys.length - 1; i++) {\n var _key = keys[i];\n $scope.consentsModel[_key].Agreed = ($scope.selectAll === true);\n }\n });\n // lista zgód\n $scope.consents = [];\n $scope.processConsents = [];\n $scope.consentsModel = {};\n $scope.selectAll = false;\n }\n ClientConsentsCtrl.$inject = ['$scope', 'ClientConsentsSrv'];\n return ClientConsentsCtrl;\n }());\n clientConsents.ClientConsentsCtrl = ClientConsentsCtrl;\n var ClientConsentsDir = (function () {\n function ClientConsentsDir() {\n this.restrict = \"AE\";\n this.template = \"\\n
0\\\" class=\\\"client-consents-container\\\">\\n
\\n
\\n
\\n
1\\\">\\n \\n
\\n\\n
\\n \\n \\n\\n
\\n \\n
\\n \\n
\\n\\n
\\n
\\n
\\n
*Prosimy o wyra\\u017Cenie zg\\u00F3d na kontakt niezb\\u0119dnych dla realizacji Twojej oferty. Ze wzgl\\u0119du na ca\\u0142kowicie on-lineowy charakter naszego procesu, od poznania oferty, a\\u017C po zawarcie transakcji, brak Twojej zgody uniemo\\u017Cliwi nam spe\\u0142nienie Twoich potrzeb w ci\\u0105gu kilku minut, 24/7/365. Podanie numeru NIP, numeru telefonu oraz adresu e-mail nie jest wymogiem ustawowym, jednak\\u017Ce jest wymagane je\\u015Bli chc\\u0105 Pa\\u0144stwo skorzysta\\u0107 z naszych us\\u0142ug.
\\n
\\n \";\n this.controller = ClientConsentsCtrl;\n this.scope = {\n step: \"@\",\n formRequest: \"=\",\n checkAll: \"=\",\n simpleForm: \"=\" // ukrywa napis pod zgodami\n };\n }\n ClientConsentsDir.Factory = function () {\n var d = function () { return new ClientConsentsDir(); };\n d['$inject'] = [];\n return d;\n };\n return ClientConsentsDir;\n }());\n clientConsents.ClientConsentsDir = ClientConsentsDir;\n var ClientConsentsNewDir = (function () {\n function ClientConsentsNewDir() {\n this.restrict = \"AE\";\n this.template = \"\\n
\\n
\\n
\\n
\\n\\n \\n\\n
\\n \\n \\n\\n
\\n \\n
\\n \\n
\\n\\n
\\n
\\n
\\n
*Prosimy o wyra\\u017Cenie zg\\u00F3d na kontakt niezb\\u0119dnych dla realizacji oferty Klienta. Ze wzgl\\u0119du na ca\\u0142kowicie on-lineowy charakter naszego procesu, od poznania oferty, a\\u017C po zawarcie transakcji, brak zgody uniemo\\u017Cliwi nam spe\\u0142nienie jego potrzeb w ci\\u0105gu kilku minut, 24/7/365. Podanie numeru NIP, numeru telefonu oraz adresu e-mail nie jest wymogiem ustawowym, jednak\\u017Ce jest wymagane je\\u015Bli chc\\u0105 Pa\\u0144stwo skorzysta\\u0107 z naszych us\\u0142ug. Klient w dowolnej chwili mo\\u017Ce usun\\u0105\\u0107 swoje zgody.
\\n\\n
\\n \";\n this.controller = ClientConsentsCtrl;\n this.scope = {\n step: \"@\",\n formRequest: \"=\",\n checkAll: \"=\"\n };\n }\n ClientConsentsNewDir.Factory = function () {\n var d = function () { return new ClientConsentsNewDir(); };\n d['$inject'] = [];\n return d;\n };\n return ClientConsentsNewDir;\n }());\n clientConsents.ClientConsentsNewDir = ClientConsentsNewDir;\n var ClientConsentsInnerDir = (function () {\n function ClientConsentsInnerDir() {\n this.restrict = \"AE\";\n this.template = \"\\n\\n
\\n \\n \\n\\n
\\n \\n
\\n \\n
\\n\\n\\n \";\n this.controller = ClientConsentsCtrl;\n this.scope = {\n step: \"@\",\n formRequest: \"=\",\n checkAll: \"=\"\n };\n }\n ClientConsentsInnerDir.Factory = function () {\n var d = function () { return new ClientConsentsInnerDir(); };\n d['$inject'] = [];\n return d;\n };\n return ClientConsentsInnerDir;\n }());\n clientConsents.ClientConsentsInnerDir = ClientConsentsInnerDir;\n var ClientConsentsInfoDir = (function () {\n function ClientConsentsInfoDir() {\n this.template = \"\\n