{"version":3,"file":"../../js/Fachleistung/qmc.fachleistung.min.js","sources":["qmc.fachleistung.min.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n(function () {\n angular.module('QMC.Fachleistung', ['QMC.Klient', 'QMC.Home']).config(routes);\n routes.$inject = ['$locationProvider', '$stateProvider', '$urlRouterProvider', 'qmcBase'];\n function routes($locationProvider, $stateProvider, $urlRouterProviderr, qmcBase) {\n $locationProvider.html5Mode({\n enabled: false,\n requireBase: false\n });\n $stateProvider\n .state('case', {\n url: '/fls/case',\n templateUrl: qmcBase + '/fls/Case',\n controller: 'FlsCaseController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.log('Current State: FLS Case List');\n }]\n }\n })\n .state('companion', {\n url: '/fls/companion',\n templateUrl: qmcBase + '/fls/Companion',\n controller: 'FlsCompanionController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.log('Current State: FLS Companion');\n }]\n }\n })\n .state('documentation', {\n url: '/fls/documentation',\n templateUrl: qmcBase + '/fls/DocumentationList',\n controller: 'FlsDocumentationListController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.log('Current State: FLS Documentation List');\n }]\n }\n })\n .state('documentationdetail', {\n url: '/fls/documentation/:id',\n templateUrl: qmcBase + '/fls/Documentation',\n controller: 'FlsDocumentationController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.log('Current State: FLS Documentation Detail');\n }]\n }\n })\n .state('documentationnew', {\n url: '/fls/documentation/new/:flsCaseIds?:plannedDocumentationId',\n templateUrl: qmcBase + '/fls/Documentation',\n controller: 'FlsDocumentationController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.log('Current State: FLS Documentation New');\n }]\n }\n })\n .state('planedDocumenation', {\n url: '/fls/case/PlanedDocumentation',\n templateUrl: qmcBase + '/fls/PlanedDocumentation',\n controller: 'FlsPlanedRawListController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.log('Current State: FLS Planed Documentation');\n }]\n }\n })\n .state('rawDocumentation', {\n url: '/fls/case/RawDocumentation',\n templateUrl: qmcBase + '/fls/RawDocumentation',\n controller: 'FlsPlanedRawListController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.log('Current State: FLS Raw Documentation');\n }]\n }\n })\n .state('documentationEndingConfirmation', {\n url: '/fls/documentationEndingConfirmation',\n templateUrl: qmcBase + '/fls/documentationEndingConfirmation',\n controller: 'FlsDocumentationEndingConfirmationController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.log('Current State: FLS Confirm Documentation Ending');\n }]\n }\n })\n .state('signature', {\n url: '/fls/signature?:page',\n templateUrl: qmcBase + '/fls/SignatureList',\n controller: 'FlsSignatureListController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.log('Current State: FLS Signature List');\n }]\n }\n })\n .state('signaturedetail', {\n url: '/fls/signature/:id',\n templateUrl: qmcBase + '/fls/SignatureList',\n controller: 'FlsSignatureListController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.log('Current State: FLS Signature List for id');\n }]\n }\n })\n .state('weekplanner', {\n url: '/fls/weekplanner?:startDay?view',\n templateUrl: qmcBase + '/fls/WeekplannerList',\n controller: 'FlsWeekplannerListController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.log('Current State: FLS Weekplanner List');\n }]\n },\n params: {\n startDay: {\n dynamic: true\n },\n view: {\n dynamic: true\n }\n }\n })\n .state('summary', {\n url: '/fls/summary',\n templateUrl: qmcBase + '/fls/Summary',\n controller: 'FlsSummaryController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.log('Current State: FLS Summary');\n }]\n }\n });\n }\n})();\nvar QMC;\n(function (QMC) {\n var Fachleistung;\n (function (Fachleistung) {\n var HttpProvider = /** @class */ (function () {\n function HttpProvider() {\n }\n HttpProvider.configureHttpProvider = function ($httpProvider) {\n // initialize get if not there\n if (!$httpProvider.defaults.headers.get) {\n $httpProvider.defaults.headers.get = {};\n }\n // disable IE ajax request caching\n $httpProvider.defaults.headers.get['If-Modified-Since'] = 'Mon, 26 Jul 1997 05:00:00 GMT';\n // extra\n $httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';\n $httpProvider.defaults.headers.get['Pragma'] = 'no-cache';\n };\n return HttpProvider;\n }());\n Fachleistung.HttpProvider = HttpProvider;\n })(Fachleistung = QMC.Fachleistung || (QMC.Fachleistung = {}));\n})(QMC || (QMC = {}));\n(function () {\n angular.module('QMC.Fachleistung')\n .config(['$httpProvider', QMC.Fachleistung.HttpProvider.configureHttpProvider]);\n})();\n// namespace FullCalendar {\n// // ReSharper disable once InconsistentNaming\n// export interface EventObject {\n// type: string;\n// }\n// }\nvar QMC;\n(function (QMC) {\n var Fachleistung;\n (function (Fachleistung) {\n var FlsService = /** @class */ (function (_super) {\n __extends(FlsService, _super);\n function FlsService($http, $q) {\n var _this = _super.call(this, $http, $q) || this;\n _this.$http = $http;\n _this.$q = $q;\n _this.modulePath = '/Fachleistung';\n return _this;\n }\n /***** Case *****/\n FlsService.prototype.getCarerList = function () {\n return _super.prototype.get.call(this, '/Person/Carer', {}, function (data) {\n return data;\n });\n };\n FlsService.prototype.getCarerListForCase = function (caseId, addTheLoggedUser) {\n if (caseId === void 0) { caseId = QMC.Common.Constants.GUID_EMPTY; }\n if (addTheLoggedUser === void 0) { addTheLoggedUser = false; }\n return _super.prototype.get.call(this, this.modulePath + '/Case/Carer/' + caseId, { addTheLoggedUser: addTheLoggedUser }, function (data) {\n return data;\n });\n };\n FlsService.prototype.getCasesListByViewPermission = function (currentOnly, onlyActive) {\n if (currentOnly === void 0) { currentOnly = false; }\n if (onlyActive === void 0) { onlyActive = true; }\n return _super.prototype.get.call(this, this.modulePath + '/Case/Viewable', { currentOnly: currentOnly, onlyActive: onlyActive }, function (data) {\n return data;\n });\n };\n FlsService.prototype.getCasesList = function (carerTypeFilterId, currentOnly, carerId, onlyForDisplay) {\n if (currentOnly === void 0) { currentOnly = false; }\n if (carerId === void 0) { carerId = undefined; }\n if (onlyForDisplay === void 0) { onlyForDisplay = false; }\n var additionalParams = \"?currentOnly=\" + currentOnly;\n if (carerTypeFilterId !== undefined && carerTypeFilterId !== null && carerTypeFilterId !== \"\")\n additionalParams += \"&carerTypeFilterId=\" + carerTypeFilterId;\n additionalParams += \"&onlyForDisplay=\" + onlyForDisplay;\n return _super.prototype.get.call(this, this.modulePath + '/Case' + additionalParams, { page: -1, pageSize: -1, carerId: carerId }, function (data) {\n return data.items;\n });\n };\n FlsService.prototype.getCasesListPaginated = function (carerTypeFilterId, page, pageSize, currentOnly, listSearch, carerId, searchProperties) {\n if (page === void 0) { page = -1; }\n if (pageSize === void 0) { pageSize = -1; }\n if (currentOnly === void 0) { currentOnly = false; }\n if (listSearch === void 0) { listSearch = \"\"; }\n if (carerId === void 0) { carerId = null; }\n if (searchProperties === void 0) { searchProperties = []; }\n var additionalParams = \"?currentOnly=\" + currentOnly;\n if (carerTypeFilterId !== undefined && carerTypeFilterId !== null && carerTypeFilterId !== \"\")\n additionalParams += \"&carerTypeFilterId=\" + carerTypeFilterId;\n return _super.prototype.getItem.call(this, this.modulePath + '/Case' + additionalParams, { page: page, pageSize: pageSize, listSearch: listSearch, carerId: carerId, searchProperties: searchProperties }, function (data) {\n return data;\n });\n };\n FlsService.prototype.getFlsCase = function (id) {\n return _super.prototype.getItem.call(this, this.modulePath + '/Case/' + id, {}, function (data) {\n return data;\n });\n };\n FlsService.prototype.getFlsCases = function (ids) {\n return _super.prototype.getItem.call(this, this.modulePath + '/Case/Multiple', { ids: ids }, function (data) {\n return data;\n });\n };\n FlsService.prototype.getFlsCaseWv = function () {\n return _super.prototype.getItem.call(this, this.modulePath + '/Case/WvModel', {}, function (data) {\n return data;\n });\n };\n FlsService.prototype.getFlsCasePaused = function (caseIds) {\n return _super.prototype.get.call(this, this.modulePath + '/Case/Paused', { caseIds: caseIds }, function (data) {\n return data;\n });\n };\n FlsService.prototype.getPlannedDocumentations = function (days, daysFuture) {\n return _super.prototype.get.call(this, this.modulePath + '/Documentation/PlanedDocumentations', { days: days, daysFuture: daysFuture }, function (data) {\n return data;\n });\n };\n FlsService.prototype.getRawDocumentations = function (days) {\n return _super.prototype.get.call(this, this.modulePath + '/Documentation/RawDocumentations', { days: days }, function (data) {\n return data;\n });\n };\n /***** Contingent *****/\n FlsService.prototype.getContingent = function (flsCaseId, targetDate) {\n return _super.prototype.get.call(this, this.modulePath + '/Contingent/' + flsCaseId, { targetDate: targetDate }, function (data) {\n for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {\n var conti = data_1[_i];\n for (var _a = 0, _b = conti.contingentItems; _a < _b.length; _a++) {\n var item = _b[_a];\n if (item.highlightColor && item.highlightColor.length > 0) {\n var color = item.highlightColor.substring(1, 7);\n item.highlightText = (((parseInt(color.substring(0, 2), 16) * 0.299)\n + (parseInt(color.substring(2, 4), 16) * 0.587) + (parseInt(color.substring(4, 6), 16) * 0.114)) > 186) ?\n \"#000000\" : \"#FFFFFF\";\n }\n }\n }\n return data;\n });\n };\n /***** Config *****/\n FlsService.prototype.getUserConfig = function () {\n return _super.prototype.getItem.call(this, this.modulePath + '/Documentation/UserConfig', {}, function (data) {\n return data;\n });\n };\n FlsService.prototype.getCatalogSettings = function (caseIds, docuId, date, carerId) {\n if (carerId === void 0) { carerId = null; }\n return _super.prototype.getItem.call(this, this.modulePath + '/Documentation/EditorSettings', { flsCaseIds: caseIds, flsDocumentationId: docuId, carerId: carerId, date: date }, function (data) {\n return data;\n });\n };\n /***** Report Template *****/\n FlsService.prototype.getReportTemplates = function () {\n return _super.prototype.get.call(this, this.modulePath + '/ReportTemplate', {}, function (data) {\n return data;\n });\n };\n FlsService.prototype.getReportTemplateItems = function (id) {\n return _super.prototype.get.call(this, this.modulePath + '/ReportTemplate/' + id, {}, function (data) {\n return data;\n });\n };\n /***** SupportPlanTarget Template *****/\n FlsService.prototype.getSupportPlanTargetTemplates = function (clientId) {\n return _super.prototype.get.call(this, '/SupportPlan/Template/' + clientId, {}, function (data) {\n return data;\n });\n };\n FlsService.prototype.getSupportPlanTargetTemplateItems = function (id) {\n return _super.prototype.get.call(this, '/SupportPlan/Template/item/' + id, {}, function (data) {\n return data;\n });\n };\n /***** Signature *****/\n FlsService.prototype.getSignature = function (id) {\n return _super.prototype.get.call(this, this.modulePath + '/Signature/' + id, {}, function (data) {\n return data;\n });\n };\n FlsService.prototype.getSignatureWv = function () {\n return _super.prototype.cachedGet.call(this, this.modulePath + '/Signature/WvModel', {}, function (data) {\n return data;\n });\n };\n FlsService.prototype.postSignature = function (data) {\n return _super.prototype.post.call(this, this.modulePath + '/Signature', data).then(function (data) { return data; });\n };\n /***** Week Planning *****/\n FlsService.prototype.getWeekPlanningList = function (personId, dateFrom, dateTo) {\n return _super.prototype.get.call(this, this.modulePath + '/WeekPlanning', { personId: personId, dateFrom: dateFrom, dateTo: dateTo }, function (data) {\n return data;\n });\n };\n FlsService.prototype.postWeekPlanningPlannedDoc = function (data) {\n return _super.prototype.post.call(this, this.modulePath + '/WeekPlanning', data).then(function (e) {\n return e;\n });\n };\n FlsService.prototype.putWeekPlanningPlannedDoc = function (id, data) {\n return _super.prototype.put.call(this, this.modulePath + '/WeekPlanning/' + id, data).then(function (data) {\n return data;\n });\n };\n FlsService.prototype.deleteWeekPlanningPlannedDoc = function (id) {\n return _super.prototype.delete.call(this, this.modulePath + '/WeekPlanning/' + id).then(function (data) { return data; });\n };\n FlsService.prototype.getAllPossibleCarer = function () {\n return _super.prototype.get.call(this, this.modulePath + '/WeekPlanning/Carer', {}, function (data) { return data; });\n };\n /***** Fls Documentation *****/\n FlsService.prototype.getFlsDocumentationList = function (page, pageSize, dateFrom, dateTo, flsCaseId, showOnlyOwnCreated, onlyCurrentCases, onlyOwnCases, listSearch, searchProperties) {\n if (onlyCurrentCases === void 0) { onlyCurrentCases = false; }\n if (onlyOwnCases === void 0) { onlyOwnCases = false; }\n if (listSearch === void 0) { listSearch = ''; }\n if (searchProperties === void 0) { searchProperties = []; }\n return _super.prototype.get.call(this, this.modulePath + '/Documentation', { dateFrom: dateFrom, dateTo: dateTo, flsCaseId: flsCaseId, showOnlyOwnCreated: showOnlyOwnCreated, page: page, pageSize: pageSize, onlyCurrentCases: onlyCurrentCases, onlyOwnCases: onlyOwnCases, listSearch: listSearch, searchProperties: searchProperties }, function (data) {\n return data;\n });\n };\n FlsService.prototype.getUnsignedFlsDocumentationList = function (page, pageSize, dateFrom, dateTo, onlyOwn, listSearch, onlyCurrentCases) {\n if (onlyOwn === void 0) { onlyOwn = false; }\n if (listSearch === void 0) { listSearch = ''; }\n if (onlyCurrentCases === void 0) { onlyCurrentCases = false; }\n return _super.prototype.get.call(this, this.modulePath + '/Documentation/Unsigned', { page: page, pageSize: pageSize, dateFrom: dateFrom, dateTo: dateTo, onlyOwn: onlyOwn, listSearch: listSearch, onlyCurrentCases: onlyCurrentCases }, function (data) {\n return data;\n });\n };\n FlsService.prototype.getFlsDocumentation = function (id) {\n return _super.prototype.getItem.call(this, this.modulePath + '/Documentation/' + id, {}, function (data) {\n return data;\n });\n };\n FlsService.prototype.getFlsDocumentationWvModel = function (flsCaseIds, flsDocumentationId, carersIds, date) {\n return _super.prototype.getItem.call(this, this.modulePath + '/Documentation/WvModel', { flsCaseIds: flsCaseIds, flsDocumentationId: flsDocumentationId, carersIds: carersIds, date: date }, function (data) {\n return data;\n });\n };\n FlsService.prototype.checkForWarningsAndErrors = function (data, isPlanned) {\n if (isPlanned === void 0) { isPlanned = false; }\n return _super.prototype.post.call(this, this.modulePath + '/Documentation/WarningsAndErrors' + '?isPlanned=' + isPlanned, data).then(function (data) {\n return data;\n });\n };\n FlsService.prototype.postFlsDocumentation = function (data, distributeHours, carerId, multiple) {\n if (distributeHours === void 0) { distributeHours = false; }\n if (carerId === void 0) { carerId = null; }\n if (multiple === void 0) { multiple = false; }\n var postString = this.modulePath + '/Documentation?distributeHours=' + distributeHours + '&carerId=' + carerId + '&multiple=' + multiple;\n return _super.prototype.post.call(this, postString, data).then(function (data) {\n return data;\n });\n };\n FlsService.prototype.putFlsDocumentation = function (id, data, carerId, onlyModifyDescription) {\n if (carerId === void 0) { carerId = null; }\n if (onlyModifyDescription === void 0) { onlyModifyDescription = false; }\n return _super.prototype.put.call(this, this.modulePath + '/Documentation/' + id + '?carerId=' + carerId + '&onlyModifyDescription=' + onlyModifyDescription, data).then(function (data) {\n return data;\n });\n };\n FlsService.prototype.deleteFlsDocumentation = function (id, data) {\n return _super.prototype.put.call(this, this.modulePath + '/Documentation/Delete/' + id, data).then(function (data) {\n return data;\n });\n };\n /***** Fls Documentation Summary *****/\n FlsService.prototype.getFlsDocumentationSummary = function (filter) {\n return _super.prototype.post.call(this, this.modulePath + \"/Documentation/Summary/\" + filter.id + \"?page=\" + filter.pagination.page + \"&pageSize=\" + filter.pagination.pageSize, filter).then(function (data) {\n return data;\n });\n };\n /***** Fls Group *****/\n FlsService.prototype.getFlsGroupList = function (page, pageSize) {\n return _super.prototype.get.call(this, this.modulePath + '/Group', { page: page, pageSize: pageSize }, function (data) {\n return data;\n });\n };\n FlsService.prototype.getFlsGroupDetail = function (id) {\n return _super.prototype.getItem.call(this, this.modulePath + '/Group/' + id, {}, function (data) {\n return data;\n });\n };\n /***** Required Fields *****/\n FlsService.prototype.getFlsRequiredFields = function () {\n return _super.prototype.get.call(this, this.modulePath + \"/Documentation/RequiredFields\", {}, function (data) {\n return data;\n });\n };\n /***** Confirm Documentation Ending *****/\n FlsService.prototype.getDocEndingConfirmList = function () {\n return _super.prototype.get.call(this, this.modulePath + \"/FlsConfirmDocumentationEnding\", {}, function (data) {\n return data;\n });\n };\n FlsService.prototype.getDocEndingConfirmForFlsCase = function (flsCaseId) {\n return _super.prototype.getItem.call(this, this.modulePath + \"/FlsConfirmDocumentationEnding/ForFlsCase/\" + flsCaseId, {}, function (data) {\n return data;\n });\n };\n FlsService.prototype.postDocEndingConfirm = function (data) {\n return _super.prototype.post.call(this, this.modulePath + \"/FlsConfirmDocumentationEnding\", data).then(function (data) {\n return data;\n });\n };\n FlsService.prototype.putDocEndingConfirm = function (id, data) {\n return _super.prototype.put.call(this, this.modulePath + \"/FlsConfirmDocumentationEnding/\" + id, data).then(function (data) {\n return data;\n });\n };\n /***** other *****/\n FlsService.prototype.getMileage = function (id) {\n return _super.prototype.getItem.call(this, '/Resource/Vehicle/Mileage/' + id, {}, function (data) {\n return data;\n });\n };\n FlsService = __decorate([\n QMC.Service('QMC.Fachleistung', 'FachleistungService'),\n QMC.Inject('$http', '$q')\n ], FlsService);\n return FlsService;\n }(QMC.Common.BaseService));\n Fachleistung.FlsService = FlsService;\n })(Fachleistung = QMC.Fachleistung || (QMC.Fachleistung = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Fachleistung;\n (function (Fachleistung) {\n var FlsCaseListController = /** @class */ (function () {\n function FlsCaseListController($location, $qui) {\n this.$location = $location;\n this.$qui = $qui;\n $qui.init($qui.getSectionColor($location.path()), function () {\n $qui.anonAvatar();\n $qui.bindEvents();\n $qui.navToggle();\n });\n if (document.getElementById(\"permissions\").getAttribute(\"fachleistung\").toLocaleLowerCase() !== \"true\") {\n console.log(\"No rights to see module fachleistung\");\n this.forbidden = true;\n return;\n }\n }\n FlsCaseListController = __decorate([\n QMC.Controller('QMC.Fachleistung', 'FlsCaseController'),\n QMC.Inject('$location', '$qui')\n ], FlsCaseListController);\n return FlsCaseListController;\n }());\n })(Fachleistung = QMC.Fachleistung || (QMC.Fachleistung = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Fachleistung;\n (function (Fachleistung) {\n var CaseListDirective = /** @class */ (function () {\n function CaseListDirective(flsService, $qui, $state, userService, permissionService, lng) {\n var _this = this;\n this.flsService = flsService;\n this.$qui = $qui;\n this.$state = $state;\n this.userService = userService;\n this.permissionService = permissionService;\n this.lng = lng;\n this.restrict = 'E';\n this.templateUrl = './fls/CaseList/';\n this.replace = true;\n this.scope = {};\n this.permissionCersovsky = false;\n this.allowTableExport = false;\n this.ui = new QMC.Fachleistung.UserInterface();\n this.filter = '';\n this.page = 0;\n this.isMobile = QMC.Common.Constants.IS_MOBILE;\n this.isFirstLoad = true;\n this.daysToHighlightCases = 0;\n this.caseFilter = QMC.Common.UserSettingConstantsAndDefaults.FLS_CASE_FILTER_DEFAULTS;\n this.loading = false;\n this.checkedCases = [];\n this.checkedCasesCount = 0;\n this.carerTypesMap = [];\n this.tableData = { cards: [], items: [] };\n this.link = function (scope) {\n _this.checkedCases = [];\n _this.checkedCasesCount = 0;\n _this.isFirstLoad = true;\n scope.vm = _this;\n localStorage.setItem(QMC.Common.LocalStorageConstants.FLS_PREVIOUS_STATE, JSON.stringify({\n state: _this.$state.$current.name,\n params: {}\n }));\n _this.permissionService.getPermissionsByObjectTypes([230000, 230017]).then(function (data) {\n _this.allowTableExport = data[0].print;\n _this.userService.getUserSettings([\"FACHLSDOKU.ERFASSUNGENDE.AKTIV\"], false).then(function (dataSetting) {\n _this.permissionCersovsky = dataSetting[0].value.toLowerCase() === \"true\" && data[1].moduleAccess;\n _this.$qui.scopeApply(scope);\n });\n });\n _this.userService.getUserSettings([QMC.Common.UserSettingConstantsAndDefaults.SHOULDLOADTABLEDATA_KEY, \"FLS.CASE.DAYSTOHIGHLIGHT\", QMC.Common.UserSettingConstantsAndDefaults.FLS_CASE_FILTER_KEY]).then(function (data) {\n _this.shouldLoadTableData = data[0].value === \"\" ? _this.shouldLoadTableData : data[0].value.toLowerCase() === 'true';\n _this.daysToHighlightCases = data[1].value === \"\" ? _this.daysToHighlightCases : parseInt(data[1].value);\n _this.caseFilter = data[2].value === '' ? _this.caseFilter : JSON.parse(data[2].value);\n if (_this.shouldLoadTableData) {\n _this.getCases();\n scope.$watch('vm.caseFilter', function (newValue, oldValue) {\n if (newValue === oldValue || !newValue)\n return;\n _this.page = 0;\n _this.getCases();\n }, true);\n }\n });\n _this.getWv();\n scope.$watch('vm.filter', function (newValue, oldValue) {\n if (newValue != oldValue) {\n if (_this.isFirstLoad) {\n setTimeout(function () {\n _this.isFirstLoad = false;\n }, 5);\n }\n else if (_this.shouldLoadTableData) {\n var lastValue_1 = _this.filter;\n setTimeout(function () {\n if (_this.filter == lastValue_1 && (newValue.length < oldValue.length || _this.filter.length >= 3)) {\n _this.page = 0;\n _this.getCases();\n }\n }, 1500);\n }\n }\n });\n scope.$watch('vm.page', function (newValue, oldValue) {\n if (newValue != oldValue)\n if (_this.isFirstLoad) {\n setTimeout(function () {\n _this.isFirstLoad = false;\n });\n }\n else {\n _this.getCases();\n }\n });\n $(\"#docEndConBtn\").show();\n };\n }\n /////////////// UI FUNCTIONS ///////////////\n CaseListDirective.prototype.getData = function () {\n this.getCases();\n };\n CaseListDirective.prototype.currentfilter = function (entry) {\n var filterActive = $('#filterActive').val();\n if (filterActive === 'true') {\n return entry.isCurrent;\n }\n else\n return true;\n };\n CaseListDirective.prototype.persistCaseFilter = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.userService.setUserSettings({ settings: [{ key: QMC.Common.UserSettingConstantsAndDefaults.FLS_CASE_FILTER_KEY, value: JSON.stringify(this.caseFilter) }] })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n CaseListDirective.prototype.toggleContingentModal = function (data) {\n var _this = this;\n this.currentCase = data;\n setTimeout(function () {\n _this.openContingent();\n });\n };\n CaseListDirective.prototype.toggleCommentModal = function (data) {\n this.currentCase = data;\n $('#caseComment').modal('toggle');\n };\n CaseListDirective.prototype.countCheckedCases = function () {\n this.checkedCasesCount = this.checkedCases.length;\n };\n CaseListDirective.prototype.toggleChecked = function (isChecked, caseObj) {\n var _this = this;\n // check if case is allowed to be selected (fix accountability and report templates)\n if (isChecked) {\n var selectedCases = this.cases.filter(function (x) { return _this.checkedCases.some(function (y) { return y === x.objectId; }); });\n var fixAccRule = selectedCases.filter(function (x) { return x.isAccountableRuleFix; })[0];\n var fixRepTemp = selectedCases.filter(function (x) { return x.isReportTemplateFix; })[0];\n var getEmphString_1 = function (str) { return \"\" + str + \"\"; };\n var createErrorString = function (conflict, oldV, newV, displayTitle) {\n return \"\" + conflict + \".
\\n\\t\\t\\t\\t\\t(\" + _this.$qui.formatString(_this.lng.translate(20016237, 'Bereits gewählt: {0}, aktuell: {1}'), getEmphString_1(oldV), getEmphString_1(newV)) + \")
\\n\\t\\t\\t\\t\\t(\" + _this.lng.translate(20016238, 'Ursprung') + \": \" + getEmphString_1(displayTitle) + \")\";\n };\n var errors = [];\n if (fixAccRule && caseObj.isAccountableRuleFix && (caseObj.defaultAccountableRuleId !== fixAccRule.defaultAccountableRuleId))\n errors.push(createErrorString(this.lng.translate(20016235, 'Ein bereits gewählter Fall hat eine abweichende fixe Abrechenbarkeitsregel'), fixAccRule.accountableRule, caseObj.accountableRule, fixAccRule.displayTitle));\n if (fixRepTemp && caseObj.isReportTemplateFix && (caseObj.reportTemplateId !== fixRepTemp.reportTemplateId))\n errors.push(createErrorString(this.lng.translate(20016236, 'Ein bereits gewählter Fall hat eine abweichende fixe Berichtsvorlage'), fixRepTemp.reportTemplate, caseObj.reportTemplate, fixRepTemp.displayTitle));\n if (errors.length) {\n isChecked = false;\n errors.forEach(function (err) {\n return _this.$qui.notify({\n message: err,\n title: _this.lng.translate(20000331, 'Auswahl nicht möglich') + \": \" + getEmphString_1(caseObj.displayTitle),\n icon: \"qm-icon-error\",\n status: \"warning\",\n timer: 8000\n });\n });\n }\n }\n for (var _i = 0, _a = this.cases; _i < _a.length; _i++) {\n var curCase = _a[_i];\n if (curCase.objectId === caseObj.objectId) {\n curCase.isChecked = isChecked;\n }\n }\n if (isChecked)\n this.checkedCases.push(caseObj.objectId);\n else\n this.checkedCases = this.checkedCases.filter(function (item) { return item !== caseObj.objectId; });\n this.countCheckedCases();\n this.tableData.items.forEach(function (item) {\n item.Avatar.selected = _this.checkedCases.some(function (x) { return x === item.objectId.value; });\n });\n this.tableData.cards.forEach(function (item) {\n item.avatar.selected = _this.checkedCases.some(function (x) { return x === item.id; });\n });\n };\n CaseListDirective.prototype.openMultipleDocumentation = function () {\n var caseIds = \"\";\n for (var _i = 0, _a = this.checkedCases; _i < _a.length; _i++) {\n var caseId = _a[_i];\n caseIds += caseId + \",\";\n }\n caseIds = caseIds.substring(0, caseIds.length - 1);\n $(\".modal-backdrop\").hide();\n $(\"body\").removeClass(\"modal-open\");\n this.$state.go('documentationnew', { \"flsCaseIds\": caseIds });\n };\n /////////////// SERVICE FUNCTIONS ///////////////\n CaseListDirective.prototype.getWv = function () {\n var _this = this;\n this.flsService.getFlsCaseWv().then(function (data) {\n _this.flsCaseWv = data;\n _this.carerTypesMap = _this.flsCaseWv.carerTypeWv.map(function (x) { return ({ text: x.name, value: x.objectId }); });\n // Set carer type filter from local storage, or if not present, from the first wv item\n if (!_this.flsCaseWv.carerTypeWv.some(function (x) { return x.objectId === _this.caseFilter.carerTypeFilterId; }) || !_this.caseFilter.carerTypeFilterId || _this.caseFilter.carerTypeFilterId === QMC.Common.Constants.GUID_EMPTY)\n _this.caseFilter.carerTypeFilterId = _this.flsCaseWv.carerTypeWv[0].id;\n });\n };\n CaseListDirective.prototype.getCases = function () {\n var _this = this;\n var _a, _b, _c;\n this.persistCaseFilter();\n if (!this.flsCaseWv) {\n setTimeout(function () { _this.getCases(); }, 100);\n return;\n }\n this.loading = true;\n var days = this.daysToHighlightCases;\n var searchProperties = this.ui.getDisplayedPropertiesFromSchema(this.ui.caseTable);\n if (!((_c = (_b = (_a = this.ui) === null || _a === void 0 ? void 0 : _a.caseTable) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.some(function (y) { return y.isReportTemplateFix; })))\n searchProperties = searchProperties.filter(function (x) { return x !== 'reportTemplate' && x !== 'isReportTemplateFix'; });\n this.flsService.getCasesListPaginated(this.caseFilter.carerTypeFilterId, this.page, QMC.Common.Constants.DEFAULT_PAGINATION_SIZE, this.caseFilter.onlyCurrentCases, this.filter, null, __spreadArrays(searchProperties, ['personNr', 'personShortCaption'])).then(function (data) {\n var _a;\n _this.paginationInfo = data.paginationInfo;\n for (var _i = 0, _b = _this.checkedCases; _i < _b.length; _i++) {\n var caseId = _b[_i];\n for (var _c = 0, _d = data.items; _c < _d.length; _c++) {\n var item = _d[_c];\n if (item.objectId == caseId)\n item.isChecked = true;\n }\n }\n _this.cases = data.items;\n data.items = data.items.map(function (obj) {\n if (obj.dateTo && Math.abs(moment().startOf('day').diff(moment(obj.dateTo).startOf('day'), 'days')) <= days)\n obj.highlightDate = { 'background-color': 'orange', 'color': 'white' };\n if (!obj.isCurrent)\n obj.highlightDate = { 'background-color': 'orangered', 'color': 'white' };\n if (obj.dateTo !== null && obj.dateTo !== undefined) {\n obj.date = moment(obj.dateFrom).format('DD.MM.YYYY') + \" - \" + moment(obj.dateTo).format('DD.MM.YYYY');\n }\n else if (obj.dateFrom !== null && obj.dateFrom !== undefined) {\n obj.date = moment(obj.dateFrom).format('DD.MM.YYYY');\n }\n else {\n obj.date = \"\";\n }\n return obj;\n });\n data.items = data.items.map(function (item) {\n item.fullName = _this.$qui.createPersonDisplay(item.name, item.forename, item.personShortCaption, item.personNr);\n return item;\n });\n _this.loading = false;\n _this.isFirstLoad = false;\n _this.ui.caseTable.data = (_a = data.items) !== null && _a !== void 0 ? _a : [];\n _this.$qui.functionWaiter(\"ui.createTable\", _this);\n });\n };\n CaseListDirective = __decorate([\n QMC.Directive('QMC.Fachleistung', 'qmCaseList', ['FachleistungService', '$qui', '$state', 'UserService', 'QmcPermissionService', 'QmcLanguageService'])\n ], CaseListDirective);\n return CaseListDirective;\n }());\n })(Fachleistung = QMC.Fachleistung || (QMC.Fachleistung = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Fachleistung;\n (function (Fachleistung) {\n var FlsCompanionController = /** @class */ (function () {\n function FlsCompanionController($location, flsService, $qui, $scope, $stateParams, $state, userService, permissionService, terminService, lng) {\n var _this = this;\n this.$location = $location;\n this.flsService = flsService;\n this.$qui = $qui;\n this.$scope = $scope;\n this.$state = $state;\n this.userService = userService;\n this.permissionService = permissionService;\n this.terminService = terminService;\n this.lng = lng;\n this.loading = {\n permission: true,\n carer: false,\n cases: false,\n report: false,\n plannings: false,\n settings: false,\n wv: false,\n editorSettings: false,\n requiredFields: false,\n save: false,\n allLoaded: function () { return !(_this.loading.permission || _this.loading.carer || _this.loading.cases || _this.loading.report || _this.loading.plannings || _this.loading.settings || _this.loading.wv || _this.loading.editorSettings || _this.loading.requiredFields || _this.loading.save); }\n };\n this.title = '';\n this.formWatcherList = [];\n this.editLockType = 'errors';\n this.wvsByDate = {};\n this.defaultAccountability = '4d35825c-8c2a-4ea2-920d-1f87db35cfcc';\n $qui.init($qui.getSectionColor($location.path()), function () {\n $qui.anonAvatar();\n $qui.bindEvents();\n $qui.navToggle();\n });\n if (document.getElementById(\"permissions\").getAttribute(\"fachleistung\").toLocaleLowerCase() !== \"true\") {\n console.log(\"No rights to see module fachleistung\");\n this.forbidden = true;\n return;\n }\n this.title = this.lng.translate(20016003, \"Dokumentation vom\") + \" \" + moment().format('DD.MM.YYYY') + \" (WebClient)\";\n permissionService.getPermissionsByObjectTypes([230000, 230021]).then(function (data) {\n _this.new = data[0].new && data[0].moduleAccess;\n _this.editLockType = data[1].openFile ? 'warnings' : 'errors';\n _this.init();\n _this.loading.requiredFields = true;\n _this.flsService.getFlsRequiredFields().then(function (rdata) {\n _this.loading.settings = true;\n _this.userService.getUserSettings([\"FLS.DEFAULTCARETYPE\", \"FLS.DEFAULTCONTACTTYPE\", \"FLS.DEFAULTACTIVITYTYPE\", \"FLS.DOKU.BERICHTTITELVORGABE\", \"FLS.DOKU.BERICHTTITEL\", \"FLS.ZEITPLANUNG.ALLOW_MANUELLEZEITENDEUHRZEIT\", \"FLS.DEFAULTVALUE_MANUAL\", \"FLS.ZEITPLANUNG.SHOW_MANUELLE_DAUER\"], false).then(function (data) {\n _this.settings.flsDefaultCareType = $.grep(data, function (e) { return e.key === \"FLS.DEFAULTCARETYPE\"; })[0].value;\n _this.settings.flsDefaultContactType = $.grep(data, function (e) { return e.key === \"FLS.DEFAULTCONTACTTYPE\"; })[0].value;\n _this.settings.flsDefaultActivityType = $.grep(data, function (e) { return e.key === \"FLS.DEFAULTACTIVITYTYPE\"; })[0].value;\n if (data[3].value === \"1\")\n _this.title = \"\";\n if (data[3].value === \"2\")\n _this.title = data[4].value;\n if (data[7].value.length > 0)\n _this.settings.isManuelTimeVisible = data[7].value.toLowerCase() === \"true\";\n if (data[5].value.length > 0)\n _this.settings.allowManual = data[5].value.toLowerCase() === \"true\" && _this.settings.isManuelTimeVisible;\n if (data[6].value.length > 0 && _this.settings.allowManual && _this.settings.isManuelTimeVisible)\n _this.settings.manualDefault = data[6].value.toLowerCase() === \"true\";\n _this.flsService.getUserConfig().then(function (dataUserConfig) {\n _this.settings.allowEmptyReports = dataUserConfig.allowEmptyReports;\n _this.showTime = data[0].value === \"\" ? QMC.Common.UserSettingConstantsAndDefaults.SHOWTIMEINSTEADOFDECIMAL : dataUserConfig.allowEmptyReports;\n _this.settings.requiredFields = rdata;\n _this.planForm.workingHours.isMiscontactEnabled = rdata.workingHours.miscontactWvId;\n _this.loading.requiredFields = false;\n _this.loading.settings = false;\n _this.loading.permission = false;\n _this.events();\n _this.getCarer();\n _this.getCases();\n _this.getReportTemplates();\n });\n });\n });\n });\n }\n FlsCompanionController.prototype.init = function () {\n var _a, _b;\n this.planForm = {\n caseId: null,\n carerId: $('#session').data().personId,\n dateFrom: new Date(),\n dateTo: new Date(),\n freedays: {\n holiday: false, vacation: false\n },\n report: {\n templateId: QMC.Common.Constants.GUID_EMPTY, itemId: QMC.Common.Constants.GUID_EMPTY, isTemplateFix: false\n },\n timeFrom: new Date(),\n timeTo: new Date(),\n weekdays: {\n mo: true, tu: true, we: true, th: true, fr: true, sa: false, su: false\n },\n workingHours: {\n abrechenbarkeitId: QMC.Common.Constants.GUID_EMPTY,\n activityWvId: QMC.Common.Constants.GUID_EMPTY,\n careTypeWvId: QMC.Common.Constants.GUID_EMPTY,\n contactTypeWvId: QMC.Common.Constants.GUID_EMPTY,\n durationInHours: 0,\n isManualDuration: false,\n carerObjectId: $(\"#session\").data().personId,\n miscontactWvId: QMC.Common.Constants.FLS_NO_MISCONTACT,\n isMiscontactEnabled: (_b = (_a = this.settings) === null || _a === void 0 ? void 0 : _a.requiredFields) === null || _b === void 0 ? void 0 : _b.workingHours.miscontactWvId\n }\n };\n if (localStorage.getItem(this.cacheName) && localStorage.getItem(this.cacheName).length > 0) {\n this.planForm.caseId = localStorage.getItem(this.cacheName);\n }\n this.planForm.dateFrom.setDate(1);\n this.planForm.dateTo = moment().endOf('month').toDate();\n this.planForm.timeFrom.setHours(8, 0, 0, 0);\n this.planForm.timeTo.setHours(12, 0, 0, 0);\n this.createForm = {\n caseId: null,\n documentations: null,\n reportTemplateId: null,\n reportTemplateItemId: null\n };\n this.settings = {\n isAccountableRuleFix: false,\n flsDefaultActivityType: null,\n flsDefaultCareType: null,\n flsDefaultContactType: null,\n editor: null,\n requiredFields: null,\n allowEmptyReports: false,\n manualDefault: false,\n allowManual: true,\n isManuelTimeVisible: true\n };\n this.selectLists = {\n accountability: [],\n activity: [],\n careType: [],\n carer: [],\n cases: [],\n contactType: [],\n miscontact: []\n };\n };\n FlsCompanionController.prototype.events = function () {\n var _this = this;\n this.$scope.$watch('vm.planForm.report.templateId', function (newVal, oldVal) { if (newVal !== oldVal)\n _this.getReportTemplateItems(); });\n this.$scope.$watch('vm.planForm.carerId', function (newVal, oldVal) {\n if (newVal !== oldVal) {\n _this.getCases();\n }\n });\n this.$scope.$watch('vm.planForm.caseId', function (newVal, oldVal) {\n if (newVal !== oldVal && newVal && newVal !== QMC.Common.Constants.GUID_EMPTY) {\n _this.createForm.documentations = [];\n _this.getWvForCase();\n _this.getEditorSetting();\n localStorage.setItem(_this.cacheName, _this.planForm.caseId);\n _this.setFixedTemplate(newVal);\n _this.checkCasePaused();\n }\n });\n this.$scope.$watch('vm.planForm.dateTo', function (newVal, oldVal) {\n if (newVal === oldVal || !_this.planForm.caseId || _this.planForm.caseId === QMC.Common.Constants.GUID_EMPTY)\n return;\n _this.getWvForCase();\n _this.getEditorSetting();\n });\n this.$scope.$watch('vm.planForm.report', function (newVal, oldVal) {\n if (newVal !== oldVal && _this.createForm) {\n _this.createForm.reportTemplateItemId = _this.planForm.report.itemId;\n _this.createForm.reportTemplateId = _this.planForm.report.templateId;\n }\n }, true);\n this.$scope.$watch('vm.planForm.workingHours', function (newVal, oldVal) {\n // if activity, caretype, ... are changed revalidate all items\n if (newVal !== oldVal && _this.createForm.documentations)\n _this.validatePlannings();\n }, true);\n };\n /////////////// DISPLAY LOGIC ///////////////\n FlsCompanionController.prototype.setFixedTemplate = function (caseId) {\n this.planForm.report.isTemplateFix = false;\n var cCase = this.cases.filter(function (x) { return x.objectId === caseId; })[0];\n if (cCase.reportTemplateId && cCase.reportTemplateId != QMC.Common.Constants.GUID_EMPTY) {\n this.planForm.report.templateId = cCase.reportTemplateId;\n this.planForm.report.isTemplateFix = cCase.isReportTemplateFix;\n }\n };\n FlsCompanionController.prototype.checkCasePaused = function () {\n var _this = this;\n // Check if any case is paused\n this.pausedCases = [];\n if (!this.planForm.caseId || this.planForm.caseId === QMC.Common.Constants.GUID_EMPTY)\n return;\n this.flsService.getFlsCasePaused([this.planForm.caseId]).then(function (pauseData) {\n for (var _i = 0, _a = _this.cases; _i < _a.length; _i++) {\n var curCase = _a[_i];\n if (pauseData[curCase.objectId]) {\n _this.pausedCases.push(curCase);\n }\n }\n if (_this.pausedCases.length > 0) {\n $('#casePausedModal').modal('show');\n }\n });\n };\n FlsCompanionController.prototype.createPlanning = function () {\n var _this = this;\n this.loading.plannings = true;\n this.createForm = null;\n // destroy all current validation watchers\n for (var _i = 0, _a = this.formWatcherList; _i < _a.length; _i++) {\n var watcher = _a[_i];\n watcher();\n }\n this.formWatcherList = [];\n var dates = this.getDatesInTimeFrame(this.planForm.dateFrom, this.planForm.dateTo);\n // load editor config for each day\n this.wvsByDate = {};\n dates.forEach(function (date) {\n _this.wvsByDate[date.toISOString()] = 'LOADING';\n _this.flsService.getFlsDocumentationWvModel([_this.planForm.caseId], QMC.Common.Constants.GUID_EMPTY, [_this.planForm.carerId], date)\n .then(function (data) { return _this.wvsByDate[date.toISOString()] = data[0]; })\n .catch(function () { return _this.wvsByDate[date.toISOString()] = 'ERROR'; });\n });\n this.terminService.getHolidaysSpecific(this.planForm.dateFrom.getFullYear(), !this.planForm.freedays.holiday, !this.planForm.freedays.vacation).then(function (holidays) {\n _this.createForm = {\n caseId: _this.planForm.caseId,\n documentations: [],\n reportTemplateId: _this.planForm.report.templateId,\n reportTemplateItemId: _this.planForm.report.itemId,\n };\n var _loop_1 = function (i) {\n var item = {\n documentationId: _this.$qui.generateGuid(),\n active: _this.checkIfShouldActivate(dates[i], holidays, _this.planForm.weekdays),\n date: dates[i],\n timeFrom: _this.planForm.timeFrom,\n timeTo: _this.planForm.timeTo,\n comment: '',\n validation: { errors: [], warnings: [] },\n isHoliday: _this.checkIfDateIsInHoliday(dates[i], holidays),\n style: _this.checkIfDateIsInHoliday(dates[i], holidays) ? \"{'color':'indianred'}\" : \"{'color': 'inherit'}\",\n isManual: _this.settings.manualDefault,\n duration: 0,\n durationM: 0,\n durationH: 0\n };\n if (item.isManual) {\n item.duration = Math.abs(item.timeTo.getTime() - item.timeFrom.getTime()) / 3600000;\n var conv = _this.$qui.convertDec(item.duration);\n item.durationH = conv[0];\n item.durationM = conv[1];\n }\n //initializie validation for item\n _this.formWatcherList.push(_this.$scope.$watch('vm.createForm.documentations[' + _this.createForm.documentations.length + '].timeFrom', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n _this.validatePlannings();\n }, true));\n _this.formWatcherList.push(_this.$scope.$watch('vm.createForm.documentations[' + _this.createForm.documentations.length + '].timeTo', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n _this.validatePlannings();\n }, true));\n _this.formWatcherList.push(_this.$scope.$watch('vm.createForm.documentations[' + _this.createForm.documentations.length + '].active', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n _this.validatePlannings();\n }, true));\n _this.formWatcherList.push(_this.$scope.$watch('vm.createForm.documentations[' + _this.createForm.documentations.length + '].isManual', function () {\n var conv = _this.$qui.convertDec(item.duration);\n item.durationH = conv[0];\n item.durationM = conv[1];\n _this.validatePlannings();\n }, true));\n _this.formWatcherList.push(_this.$scope.$watch('vm.createForm.documentations[' + _this.createForm.documentations.length + '].duration', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n _this.validatePlannings();\n }, true));\n _this.formWatcherList.push(_this.$scope.$watch('vm.createForm.documentations[' + _this.createForm.documentations.length + '].durationH', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n _this.validatePlannings();\n }, true));\n _this.formWatcherList.push(_this.$scope.$watch('vm.createForm.documentations[' + _this.createForm.documentations.length + '].durationM', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n if (item.durationM && item.durationM > 59) {\n item.durationH++;\n item.durationM = item.durationM - 60;\n }\n _this.validatePlannings();\n }, true));\n if (!_this.settings.allowEmptyReports) {\n _this.formWatcherList.push(_this.$scope.$watch('vm.createForm.documentations[' + _this.createForm.documentations.length + '].comment', function (newVal, oldVal) {\n setTimeout(function () {\n if (newVal === oldVal || !item.validation)\n return;\n _this.addOrRemoveError(_this.lng.translate(20016207, \"Der Bericht enthält noch keinen Text.\"), !_this.settings.allowEmptyReports && _this.createForm.documentations[i].comment.length === 0, _this.createForm.documentations[i].validation);\n }, 1500);\n }, true));\n }\n _this.createForm.documentations.push(item);\n };\n for (var i = 0; i < dates.length; i++) {\n _loop_1(i);\n }\n _this.loading.plannings = false;\n _this.validatePlannings();\n });\n };\n FlsCompanionController.prototype.checkIfShouldActivate = function (date, holidays, weekdays) {\n // iterate through holidays to see if the current date is one\n for (var _i = 0, holidays_1 = holidays; _i < holidays_1.length; _i++) {\n var holiday = holidays_1[_i];\n var dateFrom = this.$qui.createDateFromString(holiday.dateFrom);\n var dateTo = holiday.dateTo ? this.$qui.createDateFromString(holiday.dateTo) : null;\n if ((!dateTo && dateFrom >= date && dateFrom <= date) || (dateTo && dateTo >= date && dateFrom <= date))\n return false;\n }\n var currentDay = date.getDay();\n // first check weekdays\n if ((currentDay === 0 && weekdays.su) || (currentDay === 1 && weekdays.mo) || (currentDay === 2 && weekdays.tu) || (currentDay === 3 && weekdays.we) ||\n (currentDay === 4 && weekdays.th) || (currentDay === 5 && weekdays.fr) || (currentDay === 6 && weekdays.sa))\n return true;\n return false;\n };\n FlsCompanionController.prototype.checkIfDateIsInHoliday = function (dateToCheck, holidays) {\n for (var _i = 0, holidays_2 = holidays; _i < holidays_2.length; _i++) {\n var holiday = holidays_2[_i];\n var dateFrom = this.$qui.createDateFromString(holiday.dateFrom);\n var dateTo = holiday.dateTo ? this.$qui.createDateFromString(holiday.dateTo) : null;\n if ((!dateTo && dateFrom >= dateToCheck && dateFrom <= dateToCheck) || (dateTo && dateTo >= dateToCheck && dateFrom <= dateToCheck))\n return true;\n }\n return false;\n };\n FlsCompanionController.prototype.getDatesInTimeFrame = function (startDate, endDate) {\n var dates = [];\n var currentDate = startDate;\n var addDays = function (days) {\n var date = new Date(this.valueOf());\n date.setDate(date.getDate() + days);\n return date;\n };\n while (currentDate <= endDate) {\n dates.push(currentDate);\n currentDate = addDays.call(currentDate, 1);\n }\n for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) {\n var date = dates_1[_i];\n date.setHours(0, 0, 0, 0);\n }\n return dates;\n };\n ;\n FlsCompanionController.prototype.getWeekdayName = function (date) {\n switch (date.getDay()) {\n case 0: return this.lng.translate(20000188, \"Sonntag\");\n case 1: return this.lng.translate(20000182, \"Montag\");\n case 2: return this.lng.translate(20000183, \"Dienstag\");\n case 3: return this.lng.translate(20000184, \"Mittwoch\");\n case 4: return this.lng.translate(20000185, \"Donnerstag\");\n case 5: return this.lng.translate(20000186, \"Freitag\");\n case 6: return this.lng.translate(20000187, \"Samstag\");\n }\n return \"\";\n };\n FlsCompanionController.prototype.getValidationButtonState = function (item) {\n if (!(item === null || item === void 0 ? void 0 : item.validation))\n return 2;\n if (item.validation.errors.length > 0)\n return 2;\n if (item.validation.warnings.length > 0)\n return 1;\n return 0;\n };\n FlsCompanionController.prototype.showValidation = function (item) {\n this.currentItem = item;\n $('#validationModal').modal('show');\n };\n FlsCompanionController.prototype.savingEnabled = function () {\n if (!this.loading.allLoaded() || !this.new || !this.createForm || !this.createForm.documentations || this.createForm.documentations.length === 0 || !this.title || this.title.length === 0)\n return false;\n var oneIsActive = false;\n for (var _i = 0, _a = this.createForm.documentations; _i < _a.length; _i++) {\n var docu = _a[_i];\n if (docu.active)\n oneIsActive = true;\n // dont allow saving if at least one activated item is unvalidated or validated with errors\n if (docu.active && (!docu.validation || docu.validation.errors.length > 0))\n return false;\n }\n return oneIsActive;\n };\n FlsCompanionController.prototype.saveFls = function () {\n $('#validationModal').modal('hide');\n var templateItem = this.getTemplateItem(this.completeTemplateItems);\n var flsList = [];\n for (var _i = 0, _a = this.createForm.documentations; _i < _a.length; _i++) {\n var docu = _a[_i];\n if (!this.isRowEnabled(docu))\n continue;\n if (!docu.validation || docu.validation.errors.length > 0)\n return;\n var item = {\n title: this.title,\n additionalCost: null,\n dateFrom: this.$qui.addTimeToDate(docu.date, docu.timeFrom),\n dateTo: this.$qui.addTimeToDate(docu.date, docu.timeTo),\n documentationId: null,\n drivingCost: [],\n durationInHours: docu.isManual && docu.duration ? docu.duration : 0,\n flsCaseId: this.createForm.caseId,\n isManualDuration: docu.isManual,\n isSupportPlanDocu: false,\n participantCount: 0,\n participants: [],\n plannedDocumentationId: null,\n reports: [{\n caption: templateItem.caption,\n comment: docu.comment,\n wvChildId: templateItem.reportItemId,\n templateReferenceId: templateItem.objectId,\n children: []\n }],\n workingHours: this.planForm.workingHours,\n additionalFls: false,\n additionalFlsText: '',\n referencedPersonId: this.getCase(this.planForm.caseId).clientObjectId,\n warning: false,\n warningReasons: {},\n reportTemplateId: this.planForm.report.templateId,\n isReportTemplateFix: this.planForm.report.isTemplateFix\n };\n if (!item.workingHours.isMiscontactEnabled)\n item.workingHours.miscontactWvId = QMC.Common.Constants.FLS_NO_MISCONTACT;\n delete item.workingHours.isMiscontactEnabled;\n flsList.push(item);\n }\n console.log(flsList);\n this.postFls(flsList);\n };\n FlsCompanionController.prototype.getTemplateItem = function (items) {\n if (items === void 0) { items = this.completeTemplateItems; }\n var result;\n for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {\n var item = items_1[_i];\n if (item.objectId === this.createForm.reportTemplateItemId) {\n result = item;\n break;\n }\n if (item.children && item.children.length > 0) {\n var temp = this.getTemplateItem(item.children);\n if (temp) {\n result = temp;\n break;\n }\n }\n }\n ;\n return result;\n };\n FlsCompanionController.prototype.getCase = function (caseId) {\n for (var _i = 0, _a = this.cases; _i < _a.length; _i++) {\n var element = _a[_i];\n if (element.objectId === caseId)\n return element;\n }\n };\n FlsCompanionController.prototype.setDefaultValues = function () {\n this.planForm.workingHours.activityWvId = this.settings.flsDefaultActivityType;\n this.planForm.workingHours.careTypeWvId = this.settings.flsDefaultCareType;\n this.planForm.workingHours.contactTypeWvId = this.settings.flsDefaultContactType;\n var cuCase = this.getCase(this.planForm.caseId);\n this.planForm.workingHours.abrechenbarkeitId = cuCase.defaultAccountableRuleId;\n this.settings.isAccountableRuleFix = cuCase.isAccountableRuleFix;\n // if no accountability is supplied use default\n if ((!this.planForm.workingHours.abrechenbarkeitId || this.planForm.workingHours.abrechenbarkeitId === QMC.Common.Constants.GUID_EMPTY))\n this.planForm.workingHours.abrechenbarkeitId = this.defaultAccountability;\n };\n FlsCompanionController.prototype.createDisabled = function () {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;\n return !((_a = this.planForm) === null || _a === void 0 ? void 0 : _a.caseId) || this.planForm.caseId == '00000000-0000-0000-0000-000000000000' || !this.title || this.title.length == 0\n || (((_c = (_b = this.settings) === null || _b === void 0 ? void 0 : _b.requiredFields) === null || _c === void 0 ? void 0 : _c.workingHours.activityWvId) && (!((_e = (_d = this.planForm) === null || _d === void 0 ? void 0 : _d.workingHours) === null || _e === void 0 ? void 0 : _e.activityWvId) || this.planForm.workingHours.activityWvId === QMC.Common.Constants.GUID_EMPTY))\n || ((((_g = (_f = this.settings) === null || _f === void 0 ? void 0 : _f.requiredFields) === null || _g === void 0 ? void 0 : _g.workingHours.contactTypeWvId) || ((_j = (_h = this.settings) === null || _h === void 0 ? void 0 : _h.editor) === null || _j === void 0 ? void 0 : _j.isContactTypeRequiered)) && (!this.planForm.workingHours.contactTypeWvId || this.planForm.workingHours.contactTypeWvId === QMC.Common.Constants.GUID_EMPTY))\n || ((((_l = (_k = this.settings) === null || _k === void 0 ? void 0 : _k.requiredFields) === null || _l === void 0 ? void 0 : _l.workingHours.careTypeWvId) || ((_o = (_m = this.settings) === null || _m === void 0 ? void 0 : _m.editor) === null || _o === void 0 ? void 0 : _o.isCareTypeRequiered)) && (!this.planForm.workingHours.careTypeWvId || this.planForm.workingHours.careTypeWvId === QMC.Common.Constants.GUID_EMPTY))\n || (((_q = (_p = this.planForm) === null || _p === void 0 ? void 0 : _p.workingHours) === null || _q === void 0 ? void 0 : _q.isMiscontactEnabled) && (!((_s = (_r = this.planForm) === null || _r === void 0 ? void 0 : _r.workingHours) === null || _s === void 0 ? void 0 : _s.miscontactWvId) || this.planForm.workingHours.miscontactWvId === QMC.Common.Constants.GUID_EMPTY || this.planForm.workingHours.miscontactWvId === QMC.Common.Constants.FLS_NO_MISCONTACT));\n };\n FlsCompanionController.prototype.getConfigErrors = function (docu) {\n var _this = this;\n var wv = this.wvsByDate[docu.date.toISOString()];\n if (wv === 'ERROR')\n return [this.lng.translate(20016239, 'Die Konfiguration zu diesem Datum konnte nicht überprüft werden')];\n if (wv === 'LOADING')\n return [this.lng.translate(20016240, 'Die Konfiguration zu diesem Datum wird noch geprüft')];\n var errors = [];\n var checkIfIdIsPresentInWv = function (id, wv) { return (!id || id === QMC.Common.Constants.GUID_EMPTY || id === _this.defaultAccountability || wv.some(function (x) { return x.objectId === id; })); };\n var createErrorString = function (id, wv, area) {\n var _a;\n var entry = (_a = wv.filter(function (x) { return x.objectId === id; })[0]) !== null && _a !== void 0 ? _a : { caption: '' };\n var caption = 'name' in entry ? entry.name : entry.caption;\n return _this.$qui.formatString(_this.lng.translate(20016241, 'Die {0} {1} ist an dem Dokumentationsdatum ungültig'), area, caption);\n };\n if (!checkIfIdIsPresentInWv(this.planForm.workingHours.abrechenbarkeitId, wv.documentationCarerWvModel.abrechenbarkeitWv))\n errors.push(createErrorString(this.planForm.workingHours.abrechenbarkeitId, this.wv.abrechenbarkeitWv, this.lng.translate(20016036, 'An-/Abrechenbarkeitsregel')));\n if (!checkIfIdIsPresentInWv(this.planForm.workingHours.activityWvId, wv.documentationCarerWvModel.activityWv))\n errors.push(createErrorString(this.planForm.workingHours.activityWvId, this.wv.activityWv, this.lng.translate(20016046, 'Tätigkeit')));\n if (!checkIfIdIsPresentInWv(this.planForm.workingHours.contactTypeWvId, wv.documentationCarerWvModel.contactTypeWv))\n errors.push(createErrorString(this.planForm.workingHours.contactTypeWvId, this.wv.contactTypeWv, this.lng.translate(20016049, 'Kontaktart')));\n if (!checkIfIdIsPresentInWv(this.planForm.workingHours.careTypeWvId, wv.documentationCarerWvModel.careTypeWv))\n errors.push(createErrorString(this.planForm.workingHours.careTypeWvId, this.wv.careTypeWv, this.lng.translate(20016051, 'Betreuungsart')));\n return errors;\n };\n FlsCompanionController.prototype.isRowEnabled = function (docu) {\n return docu.active && this.getConfigErrors(docu).length === 0;\n };\n FlsCompanionController.prototype.showForbiddenNotification = function (docu) {\n this.$qui.notify({\n message: this.getConfigErrors(docu).join('
'),\n title: this.lng.translate(20000331, 'Auswahl nicht möglich') + \": \" + docu.date.toLocaleDateString(),\n icon: \"qm-icon-information\",\n status: \"info\",\n timer: 8000\n });\n };\n /////////////// SERVICE FUNCTIONS ///////////////\n FlsCompanionController.prototype.getCarer = function () {\n var _this = this;\n this.loading.carer = true;\n this.flsService.getCarerList().then(function (data) {\n _this.loading.carer = false;\n _this.selectLists.carer = _this.$qui.select(data, {\n value: 'objectId',\n text: 'displayTitle'\n });\n });\n };\n FlsCompanionController.prototype.getCases = function () {\n var _this = this;\n this.loading.cases = true;\n this.flsService.getCasesList(undefined, true, this.planForm.carerId).then(function (data) {\n _this.cases = data;\n _this.loading.cases = false;\n _this.selectLists.cases = _this.cases.map(function (x) { return _this.$qui.createCaseDisplayObject(x); });\n if (!_this.selectLists.cases.some(function (x) { return x.value === _this.planForm.caseId; }))\n _this.planForm.caseId = QMC.Common.Constants.GUID_EMPTY;\n if (_this.planForm.caseId && _this.planForm.caseId !== QMC.Common.Constants.GUID_EMPTY) {\n _this.getWvForCase();\n _this.getEditorSetting();\n _this.setFixedTemplate(_this.planForm.caseId);\n }\n _this.checkCasePaused();\n });\n };\n FlsCompanionController.prototype.getEditorSetting = function () {\n var _this = this;\n this.loading.editorSettings = true;\n this.flsService.getCatalogSettings([this.planForm.caseId], QMC.Common.Constants.GUID_EMPTY, this.planForm.dateTo, this.planForm.carerId).then(function (data) {\n _this.loading.editorSettings = false;\n _this.settings.editor = data;\n _this.setDefaultValues();\n });\n };\n FlsCompanionController.prototype.getWvForCase = function () {\n var _this = this;\n this.loading.wv = true;\n this.flsService.getFlsDocumentationWvModel([this.planForm.caseId], QMC.Common.Constants.GUID_EMPTY, [this.planForm.carerId], this.planForm.dateTo).then(function (data) {\n _this.loading.wv = false;\n _this.wv = data[0].documentationCarerWvModel;\n _this.selectLists.accountability = _this.$qui.select(_this.wv.abrechenbarkeitWv, {\n value: 'objectId',\n text: 'caption'\n });\n _this.selectLists.activity = _this.$qui.select(_this.wv.activityWv, {\n value: 'objectId',\n text: 'name'\n });\n _this.selectLists.careType = _this.$qui.select(_this.wv.careTypeWv, {\n value: 'objectId',\n text: 'name'\n });\n _this.selectLists.contactType = _this.$qui.select(_this.wv.contactTypeWv, {\n value: 'objectId',\n text: 'name'\n });\n _this.selectLists.miscontact = _this.$qui.select(_this.wv.miscontactWv, {\n value: 'objectId',\n text: 'name'\n });\n _this.setDefaultValues();\n });\n };\n FlsCompanionController.prototype.getReportTemplates = function () {\n var _this = this;\n this.loading.report = true;\n this.flsService.getReportTemplates().then(function (data) {\n if (data.length === 0) {\n _this.planForm.report.templateId = QMC.Common.Constants.GUID_EMPTY;\n return;\n }\n for (var _i = 0, data_2 = data; _i < data_2.length; _i++) {\n var element = data_2[_i];\n if (element.isDefault)\n _this.planForm.report.templateId = element.objectId;\n }\n _this.reportTemplates = _this.$qui.select(data, {\n value: 'objectId',\n text: 'caption'\n });\n _this.loading.report = false;\n });\n };\n FlsCompanionController.prototype.getReportTemplateItems = function () {\n var _this = this;\n this.flsService.getReportTemplateItems(this.planForm.report.templateId).then(function (data) {\n _this.reportTemplateItems = [];\n if (data.length === 0) {\n _this.planForm.report.itemId = QMC.Common.Constants.GUID_EMPTY;\n return;\n }\n _this.planForm.report.itemId = data[0].objectId;\n _this.reportTemplateItems = _this.createTemplateList(data);\n _this.completeTemplateItems = data;\n });\n };\n FlsCompanionController.prototype.createTemplateList = function (list, level) {\n if (level === void 0) { level = 0; }\n var result = [];\n for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {\n var element = list_1[_i];\n var text = element.caption;\n if (level > 0) {\n text = ' ' + text;\n for (var j = 0; j < level; j++) {\n text = '-' + text;\n }\n }\n result.push({ text: text, value: element.objectId });\n if (element.children && element.children.length > 0)\n result = result.concat(this.createTemplateList(element.children, level + 1));\n }\n return result;\n };\n FlsCompanionController.prototype.validatePlannings = function () {\n var _this = this;\n var validationObjects = [];\n var curCase = this.getCase(this.planForm.caseId);\n this.createForm.documentations.forEach(function (item) {\n if (_this.isRowEnabled(item)) {\n if (!item.isManual) {\n item.duration = Math.abs(item.timeTo.getTime() - item.timeFrom.getTime()) / 3600000;\n var conv = _this.$qui.convertDec(item.duration);\n item.durationH = conv[0];\n item.durationM = conv[1];\n }\n else if (_this.showTime) {\n var hours = item.durationH ? item.durationH : 0;\n var minutes = item.durationM ? item.durationM : 0;\n item.duration = +hours + +(minutes / 60);\n }\n validationObjects.push({\n carer: [{\n activityTypeId: _this.planForm.workingHours.activityWvId,\n carerId: _this.planForm.carerId,\n careTypeId: _this.planForm.workingHours.careTypeWvId,\n contactTypeId: _this.planForm.workingHours.contactTypeWvId,\n miscontactId: _this.planForm.workingHours.isMiscontactEnabled ? _this.planForm.workingHours.miscontactWvId : QMC.Common.Constants.FLS_NO_MISCONTACT\n }],\n dateFrom: _this.$qui.addTimeToDate(item.date, item.timeFrom),\n dateTo: _this.$qui.addTimeToDate(item.date, item.timeTo),\n hasManualDuration: item.isManual,\n ignoreConfigRoundInterval: false,\n manualDuration: item.isManual && item.duration ? item.duration : 0,\n references: [{\n referenceId: curCase.clientObjectId,\n caseId: curCase.objectId,\n accountabilityId: _this.planForm.workingHours.abrechenbarkeitId\n }],\n documentationId: QMC.Common.Constants.GUID_EMPTY,\n requestId: item.documentationId\n });\n }\n });\n if (this.lastValidation === JSON.stringify(validationObjects))\n return;\n // clear validations to indicate loading\n this.createForm.documentations.forEach(function (plan) {\n if (_this.isRowEnabled(plan)) {\n plan.validation = null;\n }\n });\n this.lastValidation = JSON.stringify(validationObjects);\n this.flsService.checkForWarningsAndErrors(validationObjects, false).then(function (data) {\n if (_this.lastValidation !== JSON.stringify(validationObjects))\n return; // we only care for the last validation\n data.forEach(function (result) {\n var docu = _this.createForm.documentations.filter(function (x) { return x.documentationId === result.requestId; })[0];\n if (!docu)\n return;\n docu.validation = result.validation[_this.planForm.carerId];\n _this.addOrRemoveError(_this.lng.translate(20016207, \"Der Bericht enthält noch keinen Text.\"), !_this.settings.allowEmptyReports && docu.comment.length === 0, docu.validation);\n });\n }).catch(function () {\n _this.createForm.documentations.forEach(function (plan) {\n if (_this.isRowEnabled(plan)) {\n plan.validation = { warnings: [], errors: [_this.lng.translate(21003033, 'Die Leistung konnte nicht validiert werden.')] };\n }\n });\n });\n };\n FlsCompanionController.prototype.formatTimeString = function (duration) {\n if (duration === void 0) { duration = 0; }\n var timeString = \"\";\n if (this.showTime) {\n var conv = this.$qui.convertDec(duration);\n var minutes = conv[1].toString();\n if (conv[1] < 10)\n minutes = \"0\" + minutes;\n timeString = conv[0] + \":\" + minutes;\n }\n else {\n timeString = parseFloat(duration + \"\").toFixed(2).toString().replace('.', ',');\n }\n return timeString;\n };\n FlsCompanionController.prototype.GuidIsNullOrEmptyOrGuidEmpty = function (guid) {\n return guid === null || guid === undefined || guid === \"\" || guid === QMC.Common.Constants.GUID_EMPTY;\n };\n FlsCompanionController.prototype.postFls = function (list) {\n var _this = this;\n window.scrollTo(null, 0);\n this.loading.save = true;\n this.flsService.postFlsDocumentation(list, false, this.planForm.carerId).then(function () {\n localStorage.setItem('flsDocuListCache', _this.planForm.caseId);\n _this.$state.go('documentation');\n });\n };\n FlsCompanionController.prototype.addOrRemoveError = function (error, add, validation) {\n if (!validation)\n return;\n if (add)\n this.addValidationError(error, validation);\n else\n this.removeValidationError(error, validation);\n this.$qui.scopeApply(this.$scope);\n return add;\n };\n FlsCompanionController.prototype.addValidationError = function (error, validation) {\n for (var _i = 0, _a = validation.errors; _i < _a.length; _i++) {\n var presentError = _a[_i];\n if (presentError === error)\n return;\n }\n validation.errors.push(error);\n };\n FlsCompanionController.prototype.removeValidationError = function (error, validation) {\n for (var i = 0; i < validation.errors.length; i++) {\n if (validation.errors[i] === error) {\n validation.errors.splice(i, 1);\n return;\n }\n }\n };\n FlsCompanionController = __decorate([\n QMC.Controller('QMC.Fachleistung', 'FlsCompanionController'),\n QMC.Inject('$location', 'FachleistungService', '$qui', '$scope', '$stateParams', '$state', 'UserService', 'QmcPermissionService', 'TerminService', 'QmcLanguageService')\n ], FlsCompanionController);\n return FlsCompanionController;\n }());\n })(Fachleistung = QMC.Fachleistung || (QMC.Fachleistung = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Fachleistung;\n (function (Fachleistung) {\n var FlsDocumentationListController = /** @class */ (function () {\n /**\n * Creates an instance of FlsDocumentationListController.\n * @param {FlsService} flsService\n * @param {Klient.KlientService} clientService\n * @param {any} $scope\n * @param {any} $qui\n * @param {any} $stateParams\n * @param {any} $timeout\n * @param {Common.QmcPermissionService} permissionService\n *\n * @memberOf FlsDocumentationListController\n */\n function FlsDocumentationListController($location, flsService, $scope, $qui, $state, $stateParams, $timeout, userService, permissionService, lng) {\n var _this = this;\n var _a, _b, _c;\n this.$location = $location;\n this.flsService = flsService;\n this.$scope = $scope;\n this.$qui = $qui;\n this.$state = $state;\n this.$timeout = $timeout;\n this.userService = userService;\n this.permissionService = permissionService;\n this.lng = lng;\n this.ui = new QMC.Fachleistung.UserInterface();\n this.page = 0;\n this.isFirstLoad = true;\n this.allowTableExport = false;\n this.pagination = [];\n this.loadingCases = true;\n this.showOnlyOwnCreated = false;\n this.showOnlyOwnCases = false;\n this.deleteReasons = [];\n this.casesMap = [];\n this.caseFilter = QMC.Common.UserSettingConstantsAndDefaults.FLS_CASE_FILTER_DEFAULTS;\n this.isLoadingDeleteModal = false;\n this.isDeleteAllowed = false;\n this.showTime = false;\n this.localStorageCacheName = \"flsDocuListCache\";\n if (document.getElementById(\"permissions\").getAttribute(\"fachleistung\").toLocaleLowerCase() !== \"true\") {\n console.log(\"No rights to see module fachleistung\");\n this.forbidden = true;\n return;\n }\n this.filter = {\n dateFrom: moment().startOf('month').toDate(),\n dateTo: moment().endOf('month').toDate(),\n };\n var previousStateCache = localStorage.getItem(QMC.Common.LocalStorageConstants.FLS_PREVIOUS_STATE);\n if (previousStateCache !== null) {\n var cachedParams = JSON.parse(previousStateCache);\n var isBackFromDocumentation = (_a = cachedParams.isBackFromDocumentationDetail) !== null && _a !== void 0 ? _a : false;\n localStorage.setItem(QMC.Common.LocalStorageConstants.FLS_PREVIOUS_STATE, JSON.stringify({\n state: this.$state.$current.name,\n params: cachedParams.params\n }));\n if (isBackFromDocumentation) {\n this.filter = {\n dateFrom: moment((_b = cachedParams.params.dateFrom) !== null && _b !== void 0 ? _b : this.filter.dateFrom).toDate(),\n dateTo: moment((_c = cachedParams.params.dateTo) !== null && _c !== void 0 ? _c : this.filter.dateTo).toDate(),\n };\n }\n }\n else {\n localStorage.setItem(QMC.Common.LocalStorageConstants.FLS_PREVIOUS_STATE, JSON.stringify({\n state: this.$state.$current.name,\n params: {}\n }));\n }\n /* Signature Permissions */\n this.permissionLoading = true;\n permissionService.getPermissionsByObjectTypes([230009, 230003, 230000]).then(function (data) {\n _this.signaturePermission = {\n moduleAccess: data[0].moduleAccess,\n view: data[0].view\n };\n _this.delete = data[1].delete;\n _this.new = data[1].new;\n _this.modify = data[1].modify;\n _this.allowTableExport = data[2].print;\n _this.init();\n _this.getCases();\n _this.permissionLoading = false;\n });\n this.userService.getUserSettings([\"FLS.SHOWMONTHFILTER\", \"SHOWTIMEINSTEADOFDECIMAL\", QMC.Common.UserSettingConstantsAndDefaults]).then(function (data) {\n _this.ui.showMonthFilter = data[0].value === \"\" ? QMC.Common.UserSettingConstantsAndDefaults.SHOWMONTHFILTERFLS : data[0].value.toLowerCase() === \"true\";\n _this.showTime = data[1].value === \"\" ? QMC.Common.UserSettingConstantsAndDefaults.SHOWTIMEINSTEADOFDECIMAL : data[1].value.toLowerCase() === \"true\";\n _this.caseFilter = data[2].value === '' ? _this.caseFilter : JSON.parse(data[2].value);\n });\n this.ui.documentationTable.filter.model = this.tableFilter;\n this.page = 0;\n $scope.$watch('vm.tableFilter', function (newValue, oldValue) {\n if (newValue != oldValue) {\n if (_this.isFirstLoad) {\n setTimeout(function () {\n _this.isFirstLoad = false;\n }, 5);\n }\n else {\n var lastValue_2 = _this.tableFilter;\n setTimeout(function () {\n if (_this.tableFilter == lastValue_2) {\n _this.page = 0;\n _this.getData();\n }\n }, 500);\n }\n }\n });\n $scope.$watch('vm.page', function (newValue, oldValue) {\n if (newValue != oldValue)\n if (_this.isFirstLoad) {\n setTimeout(function () {\n _this.isFirstLoad = false;\n });\n }\n else {\n _this.getData();\n }\n });\n this.deleteId = QMC.Common.Constants.DELETE_REASON_ID;\n if (QMC.Common.Constants.IS_MOBILE)\n this.cards = true;\n $qui.init($qui.getSectionColor($location.path()), function () {\n $qui.anonAvatar();\n $qui.bindEvents();\n });\n this.events();\n }\n FlsDocumentationListController.prototype.openNewDocu = function () {\n if (this.loadingCases)\n return;\n if (this.casesMap.length > 0 && this.filter.selectedCaseId && this.filter.selectedCaseId != '' && this.filter.selectedCaseId != QMC.Common.Constants.GUID_EMPTY)\n this.$state.go(\"documentationnew\", { flsCaseIds: [this.filter.selectedCaseId] });\n else\n this.$state.go(\"case\");\n };\n /**\n * init the Filter an the signature permissions\n *\n * @private\n *\n * @memberOf FlsDocumentationListController\n */\n FlsDocumentationListController.prototype.init = function () {\n //set filter to last parameters\n if (localStorage.getItem(QMC.Common.LocalStorageConstants.FLS_DOCU_LIST_HIDE_SIGNATURE) !== null && this.signaturePermission.view) {\n this.hideSignature = localStorage.getItem(QMC.Common.LocalStorageConstants.FLS_DOCU_LIST_HIDE_SIGNATURE) === 'true';\n }\n else {\n this.hideSignature = true;\n }\n if (localStorage.getItem(QMC.Common.LocalStorageConstants.FLS_DOCU_LIST_SHOW_ONLY_OWN_CREATED) !== null)\n this.showOnlyOwnCreated = localStorage.getItem(QMC.Common.LocalStorageConstants.FLS_DOCU_LIST_SHOW_ONLY_OWN_CREATED) === \"true\";\n else\n this.showOnlyOwnCreated = false;\n if (localStorage.getItem(QMC.Common.LocalStorageConstants.FLS_DOCU_LIST_SHOW_ONLY_OWN_CASES) !== null)\n this.showOnlyOwnCases = localStorage.getItem(QMC.Common.LocalStorageConstants.FLS_DOCU_LIST_SHOW_ONLY_OWN_CASES) === \"true\";\n else\n this.showOnlyOwnCases = false;\n };\n /**\n * Register view events\n *\n * @private\n *\n * @memberOf FlsDocumentationListController\n */\n FlsDocumentationListController.prototype.events = function () {\n var _this = this;\n if (this.loading || this.loadingCases) {\n setTimeout(function () { _this.events(); }, 250);\n return;\n }\n this.filterWatcher = this.$scope.$watchCollection('vm.filter', function (newValue, oldValue) {\n if (newValue === oldValue)\n return;\n localStorage.setItem(QMC.Common.LocalStorageConstants.FLS_PREVIOUS_STATE, JSON.stringify({\n state: _this.$state.$current.name,\n params: _this.filter\n }));\n _this.getData();\n });\n this.filterWatcher = this.$scope.$watch('vm.filter.selectedCaseId ', function (newValue, oldValue) {\n if (newValue === oldValue)\n return;\n localStorage.setItem(_this.localStorageCacheName, _this.filter.selectedCaseId);\n });\n };\n /**\n * Set the filter values to localStorage and get documentations\n *\n * @private\n *\n * @memberOf FlsDocumentationListController\n */\n FlsDocumentationListController.prototype.getData = function () {\n this.getDocumenations();\n };\n FlsDocumentationListController.prototype.getDocumenations = function () {\n var _this = this;\n var currentRequest = { dateFrom: this.filter.dateFrom, dateTo: this.filter.dateTo, caseId: this.filter.selectedCaseId, onlySelf: this.showOnlyOwnCreated, onlyCurrent: this.caseFilter.onlyCurrentCases, onlyOwnCases: this.showOnlyOwnCases, tableFilter: this.tableFilter, page: this.page };\n currentRequest.dateFrom = moment(this.filter.dateFrom).startOf('day').toDate();\n currentRequest.dateTo = moment(this.filter.dateTo).endOf('day').toDate();\n if (!this.cases || this.cases.length <= 0 || (JSON.stringify(this.lastRequest) === JSON.stringify(currentRequest))) {\n return;\n }\n this.lastRequest = currentRequest;\n this.loading = true;\n this.flsService.getFlsDocumentationList(this.page, QMC.Common.Constants.DEFAULT_PAGINATION_SIZE, currentRequest.dateFrom, currentRequest.dateTo, currentRequest.caseId, currentRequest.onlySelf, currentRequest.onlyCurrent, currentRequest.onlyOwnCases, currentRequest.tableFilter, this.ui.getDisplayedPropertiesFromSchema(this.ui.documentationTable)).then(function (data) {\n _this.paginationInfo = data.paginationInfo;\n _this.ui.documentationTable.totalSums.data = data.additionalData;\n data.items = data.items.map(function (obj) {\n if (obj.warning)\n obj.style = { 'background-color': '#f0ad4e', 'color': 'white' };\n return obj;\n }.bind(_this));\n _this.docs = data;\n _this.filteredList = angular.copy(data.items);\n _this.ui.documentationTable.table.Signiert.invisible = _this.hideSignature;\n _this.ui.documentationTable.data = _this.filteredList;\n _this.$qui.functionWaiter(\"ui.createTable\", _this);\n _this.isFirstLoad = false;\n _this.loading = false;\n });\n };\n /**\n * Toggle the visibility of the signature col\n *\n * @private\n *\n * @memberOf FlsDocumentationListController\n */\n FlsDocumentationListController.prototype.toggleShowSignature = function () {\n localStorage.setItem(QMC.Common.LocalStorageConstants.FLS_DOCU_LIST_HIDE_SIGNATURE, this.hideSignature.toString());\n this.ui.documentationTable.table.Signiert.invisible = this.hideSignature;\n this.$qui.functionWaiter(\"ui.createTable\", this);\n };\n /**\n * Toggle the visibility of the own created col\n *\n * @private\n *\n * @memberOf FlsDocumentationListController\n */\n FlsDocumentationListController.prototype.toggleShowOnlyOwnCreated = function () {\n localStorage.setItem(QMC.Common.LocalStorageConstants.FLS_DOCU_LIST_SHOW_ONLY_OWN_CREATED, this.showOnlyOwnCreated.toString());\n this.getDocumenations();\n };\n /**\n * Toggle the visibility of my own cases col\n *\n * @private\n *\n * @memberOf FlsDocumentationListController\n */\n FlsDocumentationListController.prototype.toggleShowOnlyOwnCases = function () {\n localStorage.setItem(QMC.Common.LocalStorageConstants.FLS_DOCU_LIST_SHOW_ONLY_OWN_CASES, this.showOnlyOwnCases.toString());\n this.getDocumenations();\n };\n /**\n * Show only the current cases\n *\n * @memberOf FlsDocumentationListController\n */\n FlsDocumentationListController.prototype.toggleShowOnlyCurrentCases = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.getCases();\n this.getDocumenations();\n return [4 /*yield*/, this.userService.setUserSettings({ settings: [{ key: QMC.Common.UserSettingConstantsAndDefaults.FLS_CASE_FILTER_KEY, value: JSON.stringify(this.caseFilter) }] })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n FlsDocumentationListController.prototype.getCases = function () {\n var _this = this;\n var lastCaseIDFound = false;\n var lastCaseId = localStorage.getItem(this.localStorageCacheName);\n this.loadingCases = true;\n this.flsService.getCasesList('', this.caseFilter.onlyCurrentCases).then(function (data) {\n if (data.length > 0) {\n if (lastCaseId == undefined) {\n _this.filter.selectedCaseId = data[0].objectId;\n }\n else if (lastCaseId == '') {\n _this.filter.selectedCaseId = '';\n }\n else if (lastCaseId != (null || undefined) && _this.$qui.isGuid(lastCaseId)) {\n for (var i = 0; i <= data.length - 1; i++) {\n if (data[i].objectId == lastCaseId) {\n lastCaseId = data[i].objectId;\n lastCaseIDFound = true;\n break;\n }\n }\n if (!lastCaseIDFound) {\n _this.filter.selectedCaseId = data[0].objectId;\n }\n else {\n _this.filter.selectedCaseId = lastCaseId;\n }\n }\n }\n else\n return;\n _this.cases = data;\n _this.casesMap = _this.createCasesMap();\n _this.$qui.getTableAutoload(_this.userService).then(function (ltd) {\n _this.shouldLoadTableData = ltd;\n if (_this.shouldLoadTableData) {\n _this.getData();\n }\n });\n _this.loadingCases = false;\n _this.$qui.waitForEl('#newClickButton', function () {\n document.getElementById('newClickButton').style.visibility = 'unset';\n });\n });\n };\n FlsDocumentationListController.prototype.createCasesMap = function () {\n var _this = this;\n if (!this.cases)\n return [];\n var casesMap = this.cases.map(function (x) { return _this.$qui.createCaseDisplayObject(x); });\n casesMap.unshift({ value: '', text: this.lng.translate(20000212, '- Alle -') });\n return casesMap;\n };\n FlsDocumentationListController = __decorate([\n QMC.Controller('QMC.Fachleistung', 'FlsDocumentationListController'),\n QMC.Inject('$location', 'FachleistungService', '$scope', '$qui', '$state', '$stateParams', '$timeout', 'UserService', 'QmcPermissionService', 'QmcLanguageService')\n ], FlsDocumentationListController);\n return FlsDocumentationListController;\n }());\n })(Fachleistung = QMC.Fachleistung || (QMC.Fachleistung = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Fachleistung;\n (function (Fachleistung) {\n var FlsDocumentationController = /** @class */ (function () {\n /**\n * Creates an instance of FlsDocumentationController.\n * @param {FlsService} fachleistungService\n * @param {any} $qui\n * @param {any} $stateParams\n * @param {any} $scope\n * @param {any} $state\n * @param {QMC.Klient.KlientService} clientService\n * @param {*} userService\n * @param {Common.QmcLanguageService} lng\n * @param {Common.QmcPermissionService} permissionService\n *\n * @memberof FlsDocumentationController\n */\n function FlsDocumentationController($location, fachleistungService, $qui, $stateParams, $scope, $state, $timeout, clientService, userService, lng, permissionService, markItemService, udfService) {\n var _this = this;\n this.$location = $location;\n this.fachleistungService = fachleistungService;\n this.$qui = $qui;\n this.$stateParams = $stateParams;\n this.$scope = $scope;\n this.$state = $state;\n this.$timeout = $timeout;\n this.clientService = clientService;\n this.userService = userService;\n this.lng = lng;\n this.permissionService = permissionService;\n this.markItemService = markItemService;\n this.ui = new Fachleistung.UserInterface();\n this.cachingObjectName = 'flsCache-' + $(\"#session\").data().personId;\n this.documentationIds = [];\n this.flsCaseIds = [];\n this.cases = [];\n this.isMobile = QMC.Common.Constants.IS_MOBILE;\n this.isPlaned = false;\n this.isNewDocumentation = false;\n this.isSupportPlanDocu = false;\n this.isGroup = false;\n this.formState = 'new';\n this.requiredFields = null;\n this.maxFutureDays = -1;\n this.hasMaxFutureDays = false;\n this.vehiclesMap = [];\n this.validateEmptyDrivingCost = false;\n this.ignoreConfigRoundInterval = false;\n this.selectedMarkings = [];\n this.accountabilityBoxState = 'close';\n this.standardActivityAllowedIfRequired = false;\n this.showAdditionalCosts = true;\n this.editAdditionalCosts = false;\n this.newAdditionalCosts = false;\n this.deleteAdditionalCosts = false;\n this.showDrivingCosts = true;\n this.isMarkingRequired = false;\n this.allowEmptyReports = true;\n this.isSaving = false;\n this.hideQuickDrivingCost = false;\n this.isManuelTimeVisible = false;\n this.smartAction = new QMC.Common.SmartAction(this.permissionService, this.userService, this.clientService, this.lng, this.$scope);\n this.createSummernote = null;\n this.userSettings = {};\n this.wvCarerDocumentationList = [];\n this.wvlivingAreaList = [];\n this.wvsubLivingAreaList = [];\n this.drivingAddresses = [];\n this.participantsList = [];\n this.carers = [];\n this.carersIds = [];\n this.selectedCarerList = [];\n this.zIndexCarerForm = 9999;\n this.showActivityForFirstCarerOpen = true;\n this.modifiyDescription = false;\n this.additionalFls = false;\n this.additionalFlsEnabled = false;\n this.additionalFlsText = \"\";\n this.emptyDescription = \"\";\n this.isReportTemplateFix = false;\n this.form = {\n workingHours: {\n abrechenbarkeitId: QMC.Common.Constants.GUID_EMPTY,\n carerObjectId: QMC.Common.Constants.GUID_EMPTY\n }\n };\n this.permissions = {};\n this.validation = {\n errors: [],\n warnings: []\n };\n this.summaryEntryDays = 0;\n this.editLockType = 'errors';\n this.resetHoursOnManualDuration = false;\n this.enableWarningReason = false;\n this.commentModalState = 'close';\n this.createForm = {\n timeForm: null,\n activityForm: null,\n drivingCostsForm: [],\n participantsForm: null,\n additionnalCosts: [],\n };\n this.group = {\n onlyNumberOfParticipants: false,\n allowAdditionalExternalParticipants: false,\n allowAdditionalInternalParticipants: false,\n members: {\n employee: [],\n client: []\n },\n data: null,\n };\n this.loading = {\n documentation: false,\n case: false,\n group: false,\n save: false,\n validate: false,\n settings: false,\n wv: true,\n wvFirst: true,\n requieredFields: true,\n editorSettings: true,\n templates: false,\n allLoaded: function () { return !(_this.loading.documentation && _this.loading.case || _this.loading.group); },\n allLoadersFinished: function () {\n return !_this.loading.requieredFields && !_this.loading.documentation && !_this.loading.case && !_this.loading.group && !_this.loading.save && !_this.loading.wv && !_this.loading.settings;\n }\n };\n this.reportForm = {\n templateId: null,\n items: [],\n templates: [],\n activeReport: null,\n isReportViewAllowed: true,\n isReportUpdateAllowed: true,\n reports: [],\n normalReportTemplates: [],\n supportPlanTemplates: []\n };\n this.activityForm = {\n carerId: null,\n activityWvId: QMC.Common.Constants.DEFAULT_ACTIVITY_ID,\n contactTypeWvId: null,\n careTypeWvId: null,\n miscontactWvId: QMC.Common.Constants.FLS_NO_MISCONTACT,\n isActivityFix: false,\n isMiscontactEnabled: false,\n isMiscontactRequired: false\n };\n this.timeForm = {\n dateFrom: new Date(),\n originalTimeFrom: new Date(),\n dateTo: new Date(),\n originalTimeTo: new Date(),\n hours: 0,\n minutes: 0,\n distributeHours: QMC.Common.UserSettingConstantsAndDefaults.FLS_NEUMEHREREBETREUTE_ZEITAUFFAELLEVERTEILEN,\n distributeHoursFix: QMC.Common.UserSettingConstantsAndDefaults.FLS_NEUMEHREREBETREUTE_ZEITAUFFAELLEVERTEILEN_FIX,\n isManualDuration: false,\n isManualTimeAllowed: true,\n isManualTimeRequired: false,\n isManuelTimeVisible: true,\n timeString: \"\",\n splitString: \"\",\n disableTime: false,\n createDate: new Date(),\n };\n this.participantsForm = {\n participants: [],\n participantCount: 0,\n participantEmployees: []\n };\n this.disableForm = false;\n this.reportTemplates = {\n normal: [],\n supportPlan: []\n };\n this.deleteDocu = {\n deleteItemId: null,\n deleteReason: null,\n deleteText: \"\"\n };\n this.promptOptionsCache = {\n title: this.lng.translate(20016030, \"Fachleistungen\"),\n yesNo: true,\n icon: \"qm-icon-arrow_circle\",\n text: this.lng.translate(20000228, 'Es gibt nicht gespeicherte Änderungen, wollen Sie diese wiederherstellen?'),\n };\n this.promptOptionsTemplateChange = {\n title: this.lng.translate(20016030, \"Fachleistungen\"),\n yesNo: true,\n icon: \"qm-icon-ballpen\",\n text: this.lng.translate(20016175, 'Wenn Sie die Vorlage ändern gehen alle Änderungen verloren, wollen Sie fortfahren?'),\n };\n this.promptOptiondsDeleteDokuWithText = {\n title: this.lng.translate(20016030, \"Fachleistungen\"),\n yesNo: true,\n icon: \"qm-icon-garbage_can\",\n text: this.lng.translate(20016198, 'Achtung: die FLS enthält inhaltliche Dokumentationen im Berichttext. Sind Sie sicher, dass sie die FLS inkl. deren Inhalt unwiderruflich löschen möchten?'),\n };\n this.udfs = [];\n /**\n * handel view events.\n *\n * @private\n *\n * @memberof FlsDocumentationController\n */\n this.ignoreManualTimeOverwrite = false;\n /**\n * Gets the catalog settings for the cases.\n */\n this.defaultTimesSet = false;\n /**\n * set the current report template\n *\n * @private\n * @param {Guid} templateId\n * @param {Common.IReportTemplateItem[]} template\n *\n * @memberof FlsDocumentationController\n */\n this.dontTriggerReportPrompt = false;\n this.templatePromptOpen = false;\n this.isValidating = false;\n this.validationFailCounter = 0;\n /////////////// Driving COST ///////////////\n this.isDcInit = false;\n /////////////// ElaborativeWarning ///////////////\n this.elaborativeWarning = false;\n this.elaborativeWarningData = {};\n this.isNewDocumentation = $state.current.name !== \"documentationdetail\";\n if (!this.isNewDocumentation)\n this.documentationIds = [$state.params.id];\n else {\n this.flsCaseIds = $stateParams.flsCaseIds.split(',');\n if ($stateParams.plannedDocumentationId !== undefined && $stateParams !== null)\n this.documentationIds.push($stateParams.plannedDocumentationId);\n else\n this.flsCaseIds.forEach(function () { _this.documentationIds.push(_this.ui.getNewGuid()); });\n }\n this.validation.errors.push(\"Es wurde noch keine Validierung durchgeführt\");\n this.getSmartActionClientAndEmployeeList();\n this.permissions.forbidden = document.getElementById(\"permissions\").getAttribute(\"fachleistung\").toLocaleLowerCase() !== \"true\";\n permissionService.getPermissionsByObjectTypes([230000, 230006, 230020, 230021, 230005]).then(function (data) {\n _this.permissions.delete = data[0].delete && data[0].moduleAccess;\n _this.permissions.new = data[0].new && data[0].moduleAccess;\n _this.permissions.modify = data[0].modify && data[0].moduleAccess;\n _this.permissions.drivingCostModuleAccess = data[1].moduleAccess;\n _this.handleReportPermission(data[2]);\n _this.editLockType = data[3].openFile ? 'warnings' : 'errors';\n if (!_this.isNewDocumentation) {\n permissionService.getPermissionsForDataset(_this.documentationIds[0], 230020).then(function (dataDS) {\n _this.handleReportPermission(dataDS[0]);\n });\n }\n _this.showAdditionalCosts = _this.showAdditionalCosts && (data[4].view || data[0].moduleAccess);\n _this.editAdditionalCosts = data[4].modify;\n _this.deleteAdditionalCosts = data[4].delete;\n _this.newAdditionalCosts = data[4].new;\n });\n this.getReportTemplates();\n this.fachleistungService.getFlsRequiredFields().then(function (data) {\n _this.requiredFields = data;\n _this.loading.requieredFields = false;\n var previousStateCache = localStorage.getItem(QMC.Common.LocalStorageConstants.FLS_PREVIOUS_STATE);\n if (previousStateCache !== null) {\n _this.returnState = JSON.parse(previousStateCache);\n localStorage.setItem(QMC.Common.LocalStorageConstants.FLS_PREVIOUS_STATE, JSON.stringify({\n state: _this.returnState.state,\n params: _this.returnState.params,\n isBackFromDocumentationDetail: true\n }));\n }\n else {\n _this.returnState = {\n state: \"documentation\",\n params: {},\n isBackFromDocumentationDetail: true\n };\n }\n _this.form.title = _this.lng.translate(20016003, \"Dokumentation vom\") + \" \" + moment().format('DD.MM.YYYY') + \" (WebClient)\";\n _this.init();\n if (_this.isNewDocumentation) {\n _this.isInit = false;\n _this.form.drivingCost = [];\n _this.addDrivingCost(null, false);\n _this.getUserConfig(_this.flsCaseIds);\n _this.getCases(_this.flsCaseIds);\n _this.carerActivityForm = [];\n _this.form.carers = [];\n _this.getCarers();\n _this.events();\n }\n else {\n _this.isInit = true;\n _this.loadDocuWaiter();\n _this.form.isUpdateAllowed = true;\n udfService.getUserDefinedFields(230003).then(function (data) {\n _this.udfs = data.sort(function (a, b) { return a.caption.localeCompare(b.caption); });\n _this.$scope.$watch('vm.udfs', function (newVal, oldVal) {\n if (JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n _this.webClientValidation();\n }, true);\n });\n }\n });\n $qui.init($qui.getSectionColor(\"/fls/documentation\"), function () {\n //$qui.init($qui.getSectionColor($location.path()), () => {\n $qui.bindEvents();\n $('ul.floating-menu>li>button.floating-menu-open').on('click', function () {\n if ($(this).find('i').attr('class') === \"fa fa-bars\")\n $(this).find('i').attr('class', \"fa fa-times\");\n else\n $(this).find('i').attr('class', \"fa fa-bars\");\n $(' ul.floating-menu>li>ul').toggle('display');\n });\n });\n setTimeout(function () {\n $('#prompt').modal('hide');\n $('body').removeClass('modal-open');\n $('.modal-backdrop').remove();\n }, 300);\n // wait for all loader having finished to make sure form is initialized\n var loadWatcher = this.$scope.$watch('vm.loading', function () {\n if (_this.loading.allLoadersFinished() && _this.defaultTimesSet && _this.flsDocumentationEditorSettings && (!_this.isNewDocumentation || (_this.isNewDocumentation && !_this.loading.documentation))) {\n loadWatcher(); // clear watcher after all things are loaded for the first time\n setTimeout(function () {\n _this.isInit = false;\n _this.events();\n _this.ignoreManualTimeOverwrite = false;\n _this.initCache();\n }, 50);\n }\n }, true);\n // handle save/delete button visibility for mobile view\n if (this.isMobile) {\n $(document).scroll(function () {\n var floatingButtons = true;\n //only switch button visablity if bottumButtons enter/leave viewport\n if ((document.getElementById('mobileBottomButtons').getBoundingClientRect().bottom <= (window.innerHeight || document.documentElement.clientHeight)) && floatingButtons) {\n $('#mobileFloatingButtons').fadeOut();\n floatingButtons = false;\n }\n else {\n $('#mobileFloatingButtons').fadeIn();\n floatingButtons = true;\n }\n });\n }\n if (this.isGroup) {\n this.participantsList = this.getParticipantsList();\n }\n }\n FlsDocumentationController.prototype.loadDocuWaiter = function () {\n var _this = this;\n if (this.ui.documentationTimeForm.form[0] && !this.loading.templates)\n this.getDocumentation(this.documentationIds[0] != undefined && this.documentationIds[0] != QMC.Common.Constants.GUID_EMPTY ? this.documentationIds[0] : this.documentationIds[1]);\n else\n setTimeout(function () {\n _this.loadDocuWaiter();\n }, 250);\n };\n FlsDocumentationController.prototype.handleReportPermission = function (permission) {\n if (!permission.modify) {\n this.allowEmptyReports = true;\n }\n this.reportForm.isReportUpdateAllowed = permission.modify;\n this.reportForm.isReportViewAllowed = permission.view;\n };\n /**\n * Init of the local storage form cache. This method is to be called after all other initialization is done (including loading existing data)\n *\n * @memberof FlsDocumentationController\n * */\n FlsDocumentationController.prototype.initCache = function () {\n var _this = this;\n var formObject = JSON.parse(window.localStorage.getItem(this.cachingObjectName));\n //check also if the form can be edited, if not there is no reason to show the cache info or to restore the cache info\n //if the form is disabled you cannot save it so no reason for showing the cache\n var t1 = angular.copy(formObject);\n var t2 = this.createCacheObject();\n if (t1)\n delete t1.documentationIds;\n if (t2)\n delete t2.documentationIds;\n var cacheEqual = JSON.stringify(t1) === JSON.stringify(t2);\n if (formObject && !cacheEqual && (!this.shouldDisable())\n && ((this.isNewDocumentation && formObject.isNew) || QMC.Common.Utilities.arraysEqual(this.documentationIds, formObject.documentationIds))\n && QMC.Common.Utilities.arraysEqual(this.flsCaseIds, formObject.caseIds)) {\n QMC.Common.Utilities.confirm(this.promptOptionsCache, function (dataCache) {\n if (dataCache) {\n _this.ignoreManualTimeOverwrite = true;\n _this.dontTriggerReportPrompt = true;\n // form\n _this.form.title = formObject.form.title;\n _this.form.additionalCost = formObject.form.additionalCost;\n _this.form.description = formObject.form.description;\n if (formObject.form.drivingCost) {\n _this.form.drivingCost.forEach(function (x) { return _this.deleteDrivingCost(x); });\n _this.form.drivingCost = [];\n formObject.form.drivingCost.forEach(function (dc) {\n dc.dateOfArrival = _this.$qui.createDateFromString(dc.dateOfArrival);\n dc.dateOfDeparture = _this.$qui.createDateFromString(dc.dateOfDeparture);\n dc.timeOfArrival = _this.$qui.createDateFromString(dc.timeOfArrival);\n dc.timeOfDeparture = _this.$qui.createDateFromString(dc.timeOfDeparture);\n _this.addDrivingCost(dc, false);\n });\n }\n _this.form.workingHours = __assign(__assign({}, _this.form.workingHours), formObject.form.workingHours);\n _this.form.warning = formObject.form.warning;\n _this.form.plannedDocumentationId = formObject.form.plannedDocumentationId;\n // time\n if (formObject.time.dateFrom)\n formObject.time.dateFrom = _this.$qui.createDateFromString(formObject.time.dateFrom);\n if (formObject.time.dateTo)\n formObject.time.dateTo = _this.$qui.createDateFromString(formObject.time.dateTo);\n formObject.time.isManualDuration = _this.timeForm.isManualTimeAllowed ? formObject.time.isManualDuration || _this.timeForm.isManualTimeRequired : false;\n _this.timeForm = __assign(__assign({}, _this.timeForm), formObject.time);\n // report\n _this.reportForm.templateId = formObject.report.templateId;\n // carerActivityForm\n _this.selectedCarerList = formObject.selectedCarerList;\n // misc\n _this.isPlaned = formObject.form.plannedDocumentationId ? true : false;\n _this.form.plannedDocumentationId = formObject.form.plannedDocumentationId;\n if (_this.isNewDocumentation) {\n _this.documentationIds = formObject.documentationIds;\n _this.createCarerActivityForm(_this.selectedCarerList);\n }\n _this.activityForm = formObject.activity;\n _this.participantsForm = formObject.participants;\n _this.elaborativeWarning = formObject.elaborativeWarning;\n _this.elaborativeWarningData = __assign(__assign({}, _this.elaborativeWarningData), formObject.elaborativeWarningData);\n _this.isSupportPlanDocu = formObject.isSupportPlanDocu;\n setTimeout(function () {\n var _a, _b, _c;\n _this.ignoreManualTimeOverwrite = false;\n _this.dontTriggerReportPrompt = false;\n _this.setReportContentFromCache(_this.reportForm.reports, formObject.report.reports);\n if (_this.isNewDocumentation) {\n _this.selectReport(_this.reportForm.reports[0]);\n var _loop_2 = function (carerId) {\n var cachedActivity = formObject.carerActivity.find(function (y) { return y.carerId === carerId; });\n var activity = _this.carerActivityForm.filter(function (y) { return y.carerId === carerId; })[0];\n if (activity && cachedActivity) {\n activity.careTypeWvId = (_a = cachedActivity === null || cachedActivity === void 0 ? void 0 : cachedActivity.careTypeWvId) !== null && _a !== void 0 ? _a : activity.careTypeWvId;\n activity.contactTypeWvId = (_b = cachedActivity === null || cachedActivity === void 0 ? void 0 : cachedActivity.contactTypeWvId) !== null && _b !== void 0 ? _b : activity.contactTypeWvId;\n activity.activityWvId = (_c = cachedActivity === null || cachedActivity === void 0 ? void 0 : cachedActivity.activityWvId) !== null && _c !== void 0 ? _c : activity.activityWvId;\n }\n };\n for (var _i = 0, _d = _this.selectedCarerList; _i < _d.length; _i++) {\n var carerId = _d[_i];\n _loop_2(carerId);\n }\n }\n _this.formatTimeString();\n }, 1000);\n _this.initCacheWatcher();\n _this.validateDocumentation(0);\n }\n }, '#promptCache');\n }\n this.initCacheWatcher();\n };\n FlsDocumentationController.prototype.setReportContentFromCache = function (targetArray, sourceArray) {\n var _this = this;\n sourceArray.forEach(function (source) {\n var target = targetArray.filter(function (x) { return x.objectId === source.objectId; })[0];\n if (!target)\n return;\n target.comment = source.comment;\n if (target.children && target.children.length && source.children && source.children.length) {\n _this.setReportContentFromCache(target.children, source.children);\n }\n });\n };\n FlsDocumentationController.prototype.initCacheWatcher = function () {\n var _this = this;\n setTimeout(function () {\n _this.$scope.$watch('vm.reportForm', function (newValue, oldValue) { _this.cacheForm(newValue, oldValue); }, true);\n _this.$scope.$watch('vm.form', function (newValue, oldValue) { _this.cacheForm(newValue, oldValue); }, true);\n _this.$scope.$watch('vm.timeForm', function (newValue, oldValue) {\n var oldCopy = angular.copy(oldValue);\n var newCopy = angular.copy(newValue);\n // remove calculated display values\n delete newCopy.durationInHours;\n delete oldCopy.durationInHours;\n delete newCopy.timeString;\n delete newCopy.timeString;\n delete newCopy.splitString;\n _this.cacheForm(newCopy, oldCopy);\n }, true);\n _this.$scope.$watch('vm.activityForm', function (newValue, oldValue) { _this.cacheForm(newValue, oldValue); }, true);\n _this.$scope.$watch('vm.participantsForm', function (newValue, oldValue) { _this.cacheForm(newValue, oldValue); }, true);\n _this.$scope.$watch('vm.selectedCarerList', function (newValue, oldValue) { _this.cacheForm(newValue, oldValue); }, true);\n _this.$scope.$watch('vm.elaborativeWarning', function (newValue, oldValue) { _this.cacheForm(newValue, oldValue); }, true);\n _this.$scope.$watch('vm.elaborativeWarningData', function (newValue, oldValue) { _this.cacheForm(newValue, oldValue); }, true);\n _this.$scope.$watch('vm.carerActivityForm', function (newValue, oldValue) { _this.cacheForm(newValue, oldValue); }, true);\n }, 500);\n };\n FlsDocumentationController.prototype.cacheForm = function (newVal, oldVal) {\n // only update cache if something has changed\n if (!this.defaultTimesSet || newVal === oldVal || JSON.stringify(newVal) === JSON.stringify(oldVal) || !this.timeForm.dateFrom || !this.timeForm.dateTo || isNaN(this.timeForm.dateFrom.getTime()) || isNaN(this.timeForm.dateFrom.getTime()))\n return;\n // Create new object containing all relevant forms then serialize it into sessionstorage\n window.localStorage.setItem(this.cachingObjectName, JSON.stringify(this.createCacheObject()));\n };\n FlsDocumentationController.prototype.createCacheObject = function () {\n var obj = {\n form: {\n title: this.form.title,\n additionalCost: this.form.additionalCost,\n description: this.form.description,\n drivingCost: this.form.drivingCost,\n workingHours: this.form.workingHours,\n warning: this.form.warning,\n plannedDocumentationId: this.form.plannedDocumentationId\n },\n report: {\n reports: this.reportForm.reports,\n templateId: this.reportForm.templateId\n },\n time: {\n dateFrom: this.timeForm.dateFrom,\n dateTo: this.timeForm.dateTo,\n durationInHours: this.timeForm.isManualDuration ? this.hoursMinutesToDecimal(this.timeForm.hours, this.timeForm.minutes) : 0,\n isManualDuration: this.timeForm.isManualDuration,\n hours: this.timeForm.hours,\n minutes: this.timeForm.minutes,\n distributeHours: this.timeForm.distributeHours\n },\n activity: this.activityForm,\n participants: this.participantsForm,\n documentationIds: this.documentationIds,\n caseIds: this.flsCaseIds,\n isNew: this.isNewDocumentation,\n selectedCarerList: this.selectedCarerList,\n elaborativeWarning: this.elaborativeWarning,\n elaborativeWarningData: this.elaborativeWarningData,\n carerActivity: [],\n isSupportPlanDocu: this.isSupportPlanDocu\n };\n if (this.isNewDocumentation)\n this.carerActivityForm.forEach(function (x) { return obj.carerActivity.push({ carerId: x.carerId, activityWvId: x.activityWvId, contactTypeWvId: x.contactTypeWvId, careTypeWvId: x.careTypeWvId }); });\n obj.form.drivingCost.forEach(function (dc) { delete dc.watcherList; delete dc.$$hashKey; });\n obj.report.reports.forEach(function (dc) { delete dc.$$hashKey; });\n return obj;\n };\n /**\n * Init default values, check for data in the localStorage.\n *\n * @private\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.init = function () {\n var _a;\n this.isInit = true;\n if (this.$stateParams.plannedDocumentationId !== undefined)\n this.form.plannedDocumentationId = this.$stateParams.plannedDocumentationId;\n var flsObject = localStorage.getItem('flsObject') ? JSON.parse(localStorage.getItem('flsObject')) : undefined;\n if (flsObject && this.form.plannedDocumentationId !== undefined) {\n this.isPlaned = true;\n if (this.$stateParams.flsCaseIds === flsObject.flsCaseId) {\n this.timeForm.dateFrom = this.$qui.createDateFromString(flsObject.dateFrom);\n this.timeForm.dateTo = this.$qui.createDateFromString(flsObject.dateTo);\n }\n else {\n this.timeForm.dateFrom = new Date();\n this.timeForm.dateTo = moment().add(2, 'hours').toDate();\n }\n this.form.description = flsObject.description;\n this.selectedCarerList = [(_a = flsObject.carerId) !== null && _a !== void 0 ? _a : $('#session').data().personId];\n }\n if (this.isGroup)\n this.form.participantCount = 0;\n };\n /**\n * Create the forms, create events\n *\n * @private\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.initForm = function () {\n var _this = this;\n if (this.requiredFields) {\n this.ui.documentationActivityForm.form[0].required = this.requiredFields.workingHours.activityWvId;\n this.ui.documentationActivityForm.form[1].required = this.requiredFields.workingHours.activityWvId;\n this.ui.documentationActivityForm.form[2].required = this.requiredFields.workingHours.contactTypeWvId;\n this.ui.documentationActivityForm.form[3].required = this.requiredFields.workingHours.careTypeWvId;\n this.ui.documentationActivityForm.form[5].required = this.requiredFields.workingHours.miscontactWvId;\n this.ui.documentationActivityForm.form[6].required = this.requiredFields.workingHours.miscontactWvId;\n }\n this.$qui.functionWaiter(\"createForm.activityForm\", this);\n this.$qui.functionWaiter(\"createForm.timeForm\", this);\n if (this.isNewDocumentation)\n this.isInit = false;\n setTimeout(function () {\n _this.events();\n }, 1000);\n };\n FlsDocumentationController.prototype.events = function () {\n var _this = this;\n this.$scope.$watch('vm.reportForm.templateId', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n _this.getReportTemplateItems(_this.reportForm.templateId);\n });\n this.$scope.$watch('vm.timeForm.dateFrom', function (newVal, oldVal) {\n if (JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n //this setting should be applied only for new entries and in case of saved entries after the user changes the date from/to\n _this.ui.documentationTimeForm.form[0].config.roundInterval = _this.configRoundInterval;\n _this.ui.documentationTimeForm.form[0].config.startRoundType = _this.configStartRoundType;\n _this.ui.documentationTimeForm.form[0].config.endRoundType = _this.configEndRoundType;\n _this.ignoreConfigRoundInterval = false;\n if ((moment(_this.timeForm.dateFrom).toDate().getTime() === moment(_this.timeForm.originalTimeFrom).toDate().getTime()) &&\n (moment(_this.timeForm.dateTo).toDate().getTime() === moment(_this.timeForm.originalTimeTo).toDate().getTime())) {\n _this.ignoreConfigRoundInterval = true;\n }\n _this.getWv(_this.flsCaseIds, _this.documentationIds[0]);\n _this.getCatalogSettings();\n if (_this.ignoreManualTimeOverwrite || JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n if (!_this.isInit) {\n _this.validateDocumentation();\n if (_this.form.drivingCost) {\n for (var _i = 0, _a = _this.form.drivingCost; _i < _a.length; _i++) {\n var cost = _a[_i];\n if (!isNaN(_this.timeForm.dateFrom.valueOf())) {\n if (!cost.dateOfDeparture)\n cost.dateOfDeparture = angular.copy(_this.timeForm.dateFrom);\n }\n }\n }\n }\n });\n this.$scope.$watch('vm.timeForm.dateTo', function (newVal, oldVal) {\n if (JSON.stringify(newVal) === JSON.stringify(oldVal) || _this.isInit)\n return;\n //this setting should be applied only for new entries and in case of saved entries after the user changes the date from/to\n _this.ui.documentationTimeForm.form[0].config.roundInterval = _this.configRoundInterval;\n _this.ui.documentationTimeForm.form[0].config.startRoundType = _this.configStartRoundType;\n _this.ui.documentationTimeForm.form[0].config.endRoundType = _this.configEndRoundType;\n _this.ignoreConfigRoundInterval = false;\n if ((moment(_this.timeForm.dateFrom).toDate().getTime() === moment(_this.timeForm.originalTimeFrom).toDate().getTime()) &&\n (moment(_this.timeForm.dateTo).toDate().getTime() === moment(_this.timeForm.originalTimeTo).toDate().getTime())) {\n _this.ignoreConfigRoundInterval = true;\n }\n if (_this.ignoreManualTimeOverwrite || JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n _this.validateDocumentation();\n });\n this.$scope.$watch('vm.timeForm.isManualDuration', function (newVal, oldVal) {\n if (_this.ignoreManualTimeOverwrite || JSON.stringify(newVal) === JSON.stringify(oldVal) || _this.isInit)\n return;\n if (_this.resetHoursOnManualDuration && _this.timeForm.isManualDuration) {\n _this.timeForm.disableTime = true;\n _this.timeForm.dateFrom = moment(_this.timeForm.dateFrom).startOf('day').toDate();\n _this.timeForm.dateTo = moment(_this.timeForm.dateTo).startOf('day').toDate();\n }\n else {\n _this.timeForm.disableTime = false;\n if (_this.resetHoursOnManualDuration) {\n _this.timeForm.dateFrom = moment(_this.timeForm.dateFrom).startOf('day').add(_this.flsDocumentationEditorSettings.defaultHour, 'h').toDate();\n _this.timeForm.dateTo = moment(_this.timeForm.dateFrom).add(_this.ui.convertHours(_this.timeForm.hours, _this.timeForm.minutes), 'h').toDate();\n }\n }\n _this.validateDocumentation();\n if (_this.timeForm.isManualDuration && !_this.ignoreManualTimeOverwrite) {\n var conv = _this.$qui.convertDec(_this.timeForm.durationInHours);\n _this.timeForm.hours = conv[0];\n _this.timeForm.minutes = conv[1];\n }\n });\n this.$scope.$watch('vm.timeForm.distributeHours', function (newVal, oldVal) {\n _this.formatTimeString();\n if (_this.ignoreManualTimeOverwrite || newVal === oldVal)\n return;\n if (_this.timeForm.distributeHours && _this.timeForm.isManualTimeAllowed)\n _this.timeForm.isManualDuration = false;\n _this.validateDocumentation();\n });\n this.$scope.$watch('vm.timeForm.hours', function (newVal, oldVal) {\n if (_this.ignoreManualTimeOverwrite || newVal === oldVal)\n return;\n _this.manualTimeWatch();\n _this.formatTimeString();\n _this.timeForm.durationInHours = _this.hoursMinutesToDecimal(_this.timeForm.hours, _this.timeForm.minutes);\n _this.$qui.scopeApply(_this.$scope);\n }, true);\n this.$scope.$watch('vm.timeForm.minutes', function (newVal, oldVal) {\n if (_this.ignoreManualTimeOverwrite || newVal === oldVal)\n return;\n _this.manualTimeWatch();\n _this.formatTimeString();\n _this.timeForm.durationInHours = _this.hoursMinutesToDecimal(_this.timeForm.hours, _this.timeForm.minutes);\n _this.$qui.scopeApply(_this.$scope);\n }, true);\n this.$scope.$watch('vm.timeForm.durationInHours', function (newVal, oldVal) {\n if (_this.ignoreManualTimeOverwrite || newVal === oldVal)\n return;\n _this.formatTimeString();\n if (_this.timeForm.isManualDuration && !_this.ignoreManualTimeOverwrite) {\n var conv = _this.$qui.convertDec(_this.timeForm.durationInHours);\n _this.timeForm.hours = conv[0];\n _this.timeForm.minutes = conv[1];\n }\n _this.$qui.scopeApply(_this.$scope);\n }, true);\n this.$scope.$watch('vm.form.workingHours.abrechenbarkeitId', function () { _this.validateDocumentation(); });\n this.$scope.$watch('vm.activityForm.careTypeWvId', function () { _this.validateDocumentation(); });\n this.$scope.$watch('vm.activityForm.activityWvId', function () { _this.validateDocumentation(); });\n this.$scope.$watch('vm.activityForm.contactTypeWvId', function () { _this.validateDocumentation(); });\n this.$scope.$watch('vm.activityForm.miscontactWvId', function () { _this.validateDocumentation(); });\n this.$scope.$watch('vm.activityForm.isMiscontactEnabled', function () { _this.validateDocumentation(); });\n this.$scope.$watch('vm.participantsForm.participantsCount', function () { _this.validateDocumentation(); });\n this.$scope.$watch('vm.reportForm.templateId', function () { _this.webClientValidation(); });\n this.$scope.$watch('vm.selectedMarkings', function () { _this.webClientValidation(); });\n this.$scope.$watch('vm.selectedCarerList', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n //make sure list entries are unique!\n if (_this.selectedCarerList && _this.selectedCarerList.length > 0) {\n var seen_1 = {};\n var withoutDubs = _this.selectedCarerList.filter(function (item) {\n return seen_1.hasOwnProperty(item) ? false : (seen_1[item] = true);\n });\n if (withoutDubs.length !== _this.selectedCarerList.length) {\n _this.selectedCarerList = withoutDubs;\n return;\n }\n }\n if (!_this.isInit && _this.selectedCarerList.length > 0) {\n _this.getWv(_this.flsCaseIds, _this.documentationIds[0]);\n }\n else if (!_this.isInit && _this.selectedCarerList.length === 0) {\n //when the last carer is removed, remove also his activity form\n _this.createCarerActivityForm(_this.selectedCarerList);\n _this.lastWvGetRequest = \"\";\n }\n //always validate for getting also the error when no carer is selected\n _this.webClientValidation();\n });\n if (!this.allowEmptyReports) {\n this.$scope.$watch('vm.reportForm.activeReport.comment', function (newValue, oldValue) {\n if (newValue === oldValue)\n return;\n _this.webClientValidation();\n });\n }\n this.createTypeAhead();\n };\n FlsDocumentationController.prototype.manualTimeWatch = function () {\n if (!this.timeForm.isManualDuration)\n return;\n var hours = this.cleanInputNumber(this.timeForm.hours);\n var minutes = this.cleanInputNumber(this.timeForm.minutes);\n while (minutes >= 60) {\n minutes = minutes - 60;\n hours = hours + 1;\n }\n if (this.restrictDaysOnManualDuration) {\n var dayCount = Math.max(1, Math.ceil(Math.abs(this.timeForm.dateFrom.getTime() - this.timeForm.dateTo.getTime()) / 8.64e7));\n if (hours >= dayCount * 24) {\n hours = dayCount * 24;\n minutes = 0;\n }\n }\n this.timeForm.hours = hours;\n this.timeForm.minutes = minutes;\n this.validateDocumentation();\n };\n FlsDocumentationController.prototype.formatTimeString = function () {\n var _a;\n var time = (_a = (this.timeForm.isManualDuration ? this.hoursMinutesToDecimal(this.timeForm.hours, this.timeForm.minutes) : this.timeForm.durationInHours)) !== null && _a !== void 0 ? _a : 0;\n var splittedTime = time / (this.cases.length > 0 ? this.cases.length : 1);\n if (this.showTime) {\n this.timeForm.timeString = this.getTimeStringFromDecimal(time);\n this.timeForm.splitString = this.lng.translate(20016194, 'Entspricht pro Fall') + ': ' + this.getTimeStringFromDecimal(splittedTime);\n }\n else {\n this.timeForm.timeString = time.toFixed(2).toString().replace('.', ',');\n this.timeForm.splitString = this.lng.translate(20016194, 'Entspricht pro Fall') + ': ' + splittedTime.toFixed(2).toString().replace('.', ',');\n }\n if (this.flsCaseIds.length < 2 || !this.timeForm.distributeHours) {\n this.timeForm.splitString = \"\";\n }\n };\n FlsDocumentationController.prototype.getTimeStringFromDecimal = function (time) {\n var conv = this.$qui.convertDec(time);\n var minutes = conv[1].toString();\n if (conv[1] < 10)\n minutes = \"0\" + minutes;\n return conv[0] + \":\" + minutes;\n };\n FlsDocumentationController.prototype.cleanInputNumber = function (inputNumber) {\n //remove commas and leading minus characters and\n //possibility to remove content of input box completely\n if (isNaN(inputNumber)) {\n inputNumber = 0;\n }\n //kill leading zeros\n inputNumber = +inputNumber;\n return Math.round(inputNumber);\n };\n FlsDocumentationController.prototype.hoursMinutesToDecimal = function (hours, minutes) {\n return (hours !== null && hours !== void 0 ? hours : 0) + ((minutes !== null && minutes !== void 0 ? minutes : 0) / 60);\n };\n FlsDocumentationController.prototype.createTypeAhead = function () {\n var vm = this;\n $('#departure .typeahead').typeahead({\n minLength: 3,\n source: function (query, process) {\n process(vm.drivingAddresses.map(function (obj) {\n return obj.value;\n }));\n },\n updater: function (item) {\n return item;\n }\n });\n $('#destination .typeahead').typeahead({\n minLength: 3,\n source: function (query, process) {\n process(vm.drivingAddresses.map(function (obj) {\n return obj.value;\n }));\n },\n updater: function (item) {\n return item;\n }\n });\n };\n FlsDocumentationController.prototype.getUserConfig = function (caseIds) {\n var _this = this;\n if (this.userConfig || this.loading.settings) {\n return;\n }\n var load = 0;\n this.loading.settings = true;\n this.fachleistungService.getDocEndingConfirmForFlsCase(caseIds[0]).then(function (data) {\n var lockDate = _this.$qui.createDateFromString(data.lockDate);\n if (data.hasLockDate) {\n _this.userSettings.isLockedByDate = true;\n _this.userSettings.lockDate = moment(lockDate).add(1, 'days').toDate();\n _this.ui.documentationTimeForm.form[0].startDate = moment(lockDate).add(1, 'days').toDate();\n }\n load++;\n _this.loading.settings = load < 4;\n });\n this.userService.getUserSettings([\"FLS.SHOWDATETO\", \"SHOWTIMEINSTEADOFDECIMAL\", \"FLS.ADDITIONAL_TIMELESS_ENTRY\", \"FLS.ADDITIONAL_TIMELESS_ENTRY_TEXT\", \"FLS.DOCUSUMMARYITEMS\", \"FLS.HIDE_QUICK_DRIVINGCOST\", \"FLS.ZEITPLANUNG.ALLOW_MANUELLEZEITENDEUHRZEIT\", \"FLS.ZEITPLANUNG.SHOW_MANUELLE_DAUER\"]).then(function (data) {\n _this.userSettings.dateToEnabled = $.grep(data, function (e) { return e.key === \"FLS.SHOWDATETO\"; })[0].value === \"true\";\n _this.ui.documentationTimeForm.form[0].config.displayDateTo = _this.userSettings.dateToEnabled;\n _this.showTime = $.grep(data, function (e) { return e.key === \"SHOWTIMEINSTEADOFDECIMAL\"; })[0].value === \"\" ? QMC.Common.UserSettingConstantsAndDefaults.SHOWTIMEINSTEADOFDECIMAL : $.grep(data, function (e) { return e.key === \"SHOWTIMEINSTEADOFDECIMAL\"; })[0].value.toLowerCase() === \"true\";\n _this.additionalFlsEnabled = $.grep(data, function (e) { return e.key === \"FLS.ADDITIONAL_TIMELESS_ENTRY\"; })[0].value === \"true\";\n _this.additionalFlsText = _this.additionalFlsEnabled ? $.grep(data, function (e) { return e.key === \"FLS.ADDITIONAL_TIMELESS_ENTRY_TEXT\"; })[0].value : \"\";\n _this.additionalFls = _this.additionalFlsEnabled;\n _this.summaryEntryDays = $.grep(data, function (e) { return e.key === \"FLS.DOCUSUMMARYITEMS\"; })[0].value === \"\" ? 0 : parseInt(data[4].value);\n _this.hideQuickDrivingCost = $.grep(data, function (e) { return e.key === \"FLS.HIDE_QUICK_DRIVINGCOST\"; })[0].value.toLowerCase() === \"true\";\n load++;\n _this.loading.settings = load < 4;\n });\n this.userService.getUserSettings([\"FLS.ZEITPLANUNG.ALLOW_MANUELLEZEITENDEUHRZEIT\", \"FLS.ZEITPLANUNG.SHOW_MANUELLE_DAUER\"], false).then(function (data) {\n _this.isManuelTimeVisible = $.grep(data, function (e) { return e.key === \"FLS.ZEITPLANUNG.SHOW_MANUELLE_DAUER\"; })[0].value.toLowerCase() === \"true\";\n var allowManual = $.grep(data, function (e) { return e.key === \"FLS.ZEITPLANUNG.ALLOW_MANUELLEZEITENDEUHRZEIT\"; })[0].value.toLowerCase() === \"true\";\n _this.timeForm.isManuelTimeVisible = _this.isManuelTimeVisible;\n _this.timeForm.isManualTimeAllowed = _this.isManuelTimeVisible && allowManual;\n load++;\n _this.loading.settings = load < 4;\n });\n this.fachleistungService.getUserConfig().then(function (data) {\n var _a;\n _this.userConfig = data;\n if (_this.flsCaseIds.length > 1 && data.multipleCasesDistributeTime) {\n _this.timeForm.distributeHours = true;\n _this.timeForm.isManualDuration = true;\n }\n else\n _this.timeForm.distributeHours = false;\n _this.timeForm.distributeHoursFix = data.multipleCasesDistributeTimeFix;\n _this.resetHoursOnManualDuration = data.multipleCasesResetOnDistributeTime;\n _this.restrictDaysOnManualDuration = data.restrictDaysOnManualDuration;\n _this.validateEmptyDrivingCost = data.allowEmptyDrivingCost;\n if (data.defaultReportTitleType === 1 && _this.isNewDocumentation)\n _this.form.title = \"\";\n if (data.defaultReportTitleType === 2 && _this.isNewDocumentation)\n _this.form.title = data.defaultReportTitle;\n _this.defaultActivities = {\n careType: data.defaultCareType,\n contactType: data.defaultContactType,\n activityType: data.defaultActivityType\n };\n if (data.drivingCostOverlapCheck !== 'fe55229f-b052-4d3a-b2d1-e127b0d08879') {\n _this.$scope.$watch('vm.form.drivingCost', function (newValue, oldValue) {\n if (newValue === oldValue || !newValue)\n return;\n _this.validateDocumentation();\n }, true);\n }\n _this.enableWarningReason = data.enableWarningReason;\n var endDate = moment().add(data.daysAllowedCreatingReportsForFuture, 'days').toDate();\n var startDate = moment().subtract(data.daysAllowedCreatingReportsForPast, 'days').toDate();\n if (!_this.isNewDocumentation) {\n startDate = moment(_this.timeForm.createDate).subtract(data.daysAllowedCreatingReportsForPast, 'days').toDate();\n }\n _this.hasMaxFutureDays = data.isLockedCreatingForFuture;\n _this.maxFutureDays = data.daysAllowedCreatingReportsForFuture;\n if ((data.isLockedCreatingForPast && _this.editLockType === 'errors') && (_this.ui.documentationTimeForm.form[0].startDate < startDate || _this.ui.documentationTimeForm.form[0].startDate === null)) {\n _this.ui.documentationTimeForm.form[0].startDate = moment(startDate).startOf('day').toDate();\n }\n if (data.isLockedCreatingForFuture && _this.editLockType === 'errors')\n _this.ui.documentationTimeForm.form[0].endDate = moment(endDate).endOf('day').toDate();\n _this.timeForm.isManualTimeRequired = data.isManualTimeRequired;\n _this.timeForm.isManualTimeAllowed = data.allowManualTimes || data.isManualTimeRequired;\n if (!_this.timeForm.isManualTimeAllowed) {\n if (!_this.isNewDocumentation && _this.timeForm.isManualDuration) {\n var prevDur_1 = _this.timeForm.durationInHours;\n setTimeout(function () {\n _this.timeForm.durationInHours = prevDur_1;\n }, 250);\n }\n _this.timeForm.isManualDuration = false;\n }\n else if (_this.isNewDocumentation) {\n _this.timeForm.isManualDuration = data.manualTimeDefault;\n }\n _this.showAdditionalCosts = _this.showAdditionalCosts && data.showAdditionalCosts;\n _this.showDrivingCosts = data.showDrivingCosts;\n _this.isMarkingRequired = data.isMarkingRequired;\n _this.allowEmptyReports = data.allowEmptyReports;\n _this.form.warning = (_a = _this.form.warning) !== null && _a !== void 0 ? _a : false;\n _this.initForm();\n _this.formatTimeString();\n load++;\n _this.loading.settings = load < 4;\n });\n };\n FlsDocumentationController.prototype.getCurrentGenericWvList = function () {\n var _a;\n return this.wvList ? this.wvList : (_a = this.wvCarerDocumentationList[0]) === null || _a === void 0 ? void 0 : _a.documentationCarerWvModel;\n };\n FlsDocumentationController.prototype.setUpdateAllowedOnDescriptionChange = function () {\n this.modifiyDescription = true;\n };\n FlsDocumentationController.prototype.isCommentEditAllowed = function () {\n return this.isNewDocumentation || this.form.isUpdateAllowed || this.editLockType === 'warnings';\n };\n /**\n * Get a single documentation by id\n *\n * @private\n * @param {Guid} id\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.getDocumentation = function (id) {\n var _this = this;\n this.loading.documentation = true;\n this.fachleistungService.getFlsDocumentation(id).then(function (data) {\n var _a;\n var _b;\n _this.carersIds = [];\n _this.carersIds.push(data.isGroupDocumentation ? $('#session').data().personId : data.workingHours.carerObjectId);\n _this.flsCaseIds = [data.flsCaseId];\n _this.getCases(_this.flsCaseIds);\n _this.getUserConfig(_this.flsCaseIds);\n _this.formState = \"detail\";\n _this.form = data;\n _this.form.warning = (_b = data.warning) !== null && _b !== void 0 ? _b : false;\n _this.isSupportPlanDocu = data.isSupportPlanDocu;\n _this.form.dateFrom = _this.$qui.createDateFromString(data.dateFrom);\n _this.form.dateTo = _this.$qui.createDateFromString(data.dateTo);\n _this.form.isUpdateAllowed = data.isUpdateAllowed;\n if (_this.form.description != null && _this.strip(_this.form.description).length > 0)\n _this.commentModalState = 'open';\n if (_this.form.dateFrom.getDay() !== _this.form.dateTo.getDay())\n _this.ui.documentationTimeForm.form[0].config.dateToEnabled = true;\n var hours = 0, minutes = 0;\n if (data.workingHours.isManualDuration) {\n hours = parseInt(data.workingHours.durationInHours.toString().split('.')[0]);\n minutes = Math.round((data.workingHours.durationInHours - hours) * 60);\n }\n _this.ignoreManualTimeOverwrite = true;\n _this.timeForm = {\n dateFrom: _this.$qui.createDateFromString(data.dateFrom),\n dateTo: _this.$qui.createDateFromString(data.dateTo),\n originalTimeFrom: _this.$qui.createDateFromString(data.dateFrom),\n originalTimeTo: _this.$qui.createDateFromString(data.dateTo),\n hours: hours,\n minutes: minutes,\n distributeHours: QMC.Common.UserSettingConstantsAndDefaults.FLS_NEUMEHREREBETREUTE_ZEITAUFFAELLEVERTEILEN,\n distributeHoursFix: QMC.Common.UserSettingConstantsAndDefaults.FLS_NEUMEHREREBETREUTE_ZEITAUFFAELLEVERTEILEN_FIX,\n isManualDuration: data.workingHours.isManualDuration,\n isManualTimeAllowed: _this.timeForm.isManualTimeAllowed || _this.timeForm.isManualTimeRequired,\n isManuelTimeVisible: _this.timeForm.isManuelTimeVisible,\n timeString: \"\",\n splitString: \"\",\n durationInHours: data.workingHours.durationInHours,\n disableTime: false,\n createDate: _this.$qui.createDateFromString(data.createDate),\n isManualTimeRequired: _this.timeForm.isManualTimeRequired\n };\n _this.formatTimeString();\n _this.getCatalogSettings();\n _this.getWv(_this.flsCaseIds, id);\n if (_this.form.reports) {\n _this.dontTriggerReportPrompt = true;\n _this.reportForm.isReportViewAllowed = data.isReportViewAllowed;\n _this.reportForm.isReportUpdateAllowed = data.isReportUpdateAllowed;\n if (_this.form.reportTemplateId) {\n _this.reportForm.templateId = _this.form.reportTemplateId;\n _this.getReportTemplateItems(_this.form.reportTemplateId, data.isSupportPlanDocu, true);\n }\n else {\n _this.reportForm.templateId = null;\n }\n _this.reportForm.reports = data.reports;\n _this.isReportEntryCommented(_this.reportForm.reports);\n if ((!_this.reportForm.reports || _this.reportForm.reports.length <= 0) && (!_this.reportForm.activeReport || _this.reportForm.activeReport.comment === \"\")) {\n _this.reportForm.reports = [];\n if (_this.reportForm.templates && _this.reportForm.templates.length > 0)\n _this.selectDefaultTemplate();\n }\n setTimeout(function () {\n _this.dontTriggerReportPrompt = false;\n }, 1000);\n }\n if (!data.isReportUpdateAllowed) {\n $('#changeTemplate').attr('disabled', 'disabled');\n }\n if (!data.isReportViewAllowed) {\n $('#reportBox').remove();\n }\n if (_this.form.workingHours) {\n _this.activityForm = {\n carerId: data.authorPersonObjectId,\n activityWvId: data.workingHours.activityWvId,\n careTypeWvId: data.workingHours.careTypeWvId,\n contactTypeWvId: data.workingHours.contactTypeWvId,\n miscontactWvId: data.workingHours.miscontactWvId,\n isActivityFix: _this.activityForm.isActivityFix,\n isMiscontactEnabled: _this.requiredFields.workingHours.miscontactWvId || data.workingHours.miscontactWvId && data.workingHours.miscontactWvId !== QMC.Common.Constants.FLS_NO_MISCONTACT,\n isMiscontactRequired: _this.requiredFields.workingHours.miscontactWvId\n };\n }\n ;\n if (_this.form.drivingCost === null)\n _this.form.drivingCost = [];\n for (var _i = 0, _c = _this.form.drivingCost; _i < _c.length; _i++) {\n var element = _c[_i];\n var hours_1 = void 0, minutes_1 = void 0;\n _a = _this.$qui.convertDec(element.duration), hours_1 = _a[0], minutes_1 = _a[1];\n element.hours = hours_1;\n element.minutes = minutes_1;\n element.dateOfDeparture = element.dateOfDeparture != null ?\n _this.$qui.createDateFromString(element.dateOfDeparture) :\n _this.$qui.createDateFromString(_this.timeForm.dateFrom);\n element.timeOfDeparture = element.dateOfDeparture != null ?\n _this.$qui.createDateFromString(element.dateOfDeparture) :\n _this.$qui.createDateFromString(_this.timeForm.dateFrom);\n element.dateOfArrival = element.dateOfArrival != null ?\n _this.$qui.createDateFromString(element.dateOfArrival) :\n _this.$qui.createDateFromString(_this.timeForm.dateTo);\n element.timeOfArrival = element.dateOfArrival != null ?\n _this.$qui.createDateFromString(element.dateOfArrival) :\n _this.$qui.createDateFromString(_this.timeForm.dateFrom);\n var arrivalTime = _this.$qui.createDateFromString(element.dateOfDeparture);\n arrivalTime.setHours(arrivalTime.getHours() + hours_1);\n if (_this.$qui.createDateFromString(arrivalTime.getTime() + minutes_1 * 60000) != element.timeOfArrival) {\n element.timeOfArrival = _this.$qui.createDateFromString(arrivalTime.getTime() + minutes_1 * 60000);\n }\n element.isCarPool = element.drivingCostType === 1;\n element.isPrivate = element.drivingCostType === 0;\n element.synchronize = false;\n element.isBlocked = element.isCarPool;\n }\n _this.addDrivingCost(null, _this.form.drivingCost.length > 0);\n if (_this.form.drivingCost[0] && _this.form.drivingCost[0].mileageArrival === 0) {\n _this.updateMileage(_this.form.drivingCost[0], 'distance');\n }\n if (data.isGroupDocumentation) {\n if (data.participants)\n _this.participantsForm.participants = data.participants.filter(function (x) { return !x.isEmployee; }).map(function (x) { return (x.objectId); });\n if (data.participants)\n _this.participantsForm.participantEmployees = data.participants.filter(function (x) { return x.isEmployee; }).map(function (x) { return (x.objectId); });\n _this.participantsForm.participantCount = data.participantCount;\n _this.isGroup = true;\n }\n _this.elaborativeWarning = data.warning && Object.keys(data.warningReasons).length > 0;\n _this.elaborativeWarningData = _this.getInternalElobaritveWarningObject(data.warningReasons);\n _this.isReportTemplateFix = data.isReportTemplateFix;\n _this.defaultReportTemplateId = data.reportTemplateId && data.reportTemplateId !== QMC.Common.Constants.GUID_EMPTY ? data.reportTemplateId : _this.defaultReportTemplateId;\n if (_this.defaultReportTemplateId)\n _this.reportForm.templateId = data.reportTemplateId;\n setTimeout(function () {\n _this.loading.documentation = false;\n _this.timeForm.hours = hours;\n _this.timeForm.minutes = minutes;\n }, 500);\n });\n };\n /**\n * get the current fls cases\n *\n * @private\n * @param {Guid[]} caseIds\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.getCases = function (caseIds) {\n var _this = this;\n this.loading.case = true;\n this.fachleistungService.getFlsCases(caseIds).then(function (data) {\n var _a, _b;\n _this.cases = data;\n for (var _i = 0, data_3 = data; _i < data_3.length; _i++) {\n var element = data_3[_i];\n _this.participantsList.push(element.clientObjectId);\n }\n if (_this.flsCaseIds.length === 1) {\n if (_this.formState === 'new') {\n _this.form.workingHours.abrechenbarkeitId = data[0].defaultAccountableRuleId;\n _this.form.referencedPersonId = data[0].clientObjectId;\n }\n _this.permissions.isAccountableRuleFix = data[0].isAccountableRuleFix;\n }\n else {\n _this.permissions.isAccountableRuleFix = true;\n _this.form.workingHours.abrechenbarkeitId = QMC.Common.Constants.GUID_EMPTY;\n for (var _c = 0, data_4 = data; _c < data_4.length; _c++) {\n var element = data_4[_c];\n _this.permissions.isAccountableRuleFix = _this.permissions.isAccountableRuleFix && element.isAccountableRuleFix;\n if (!element.isAccountableRuleFix && (!_this.form.workingHours.abrechenbarkeitId || _this.form.workingHours.abrechenbarkeitId === QMC.Common.Constants.GUID_EMPTY))\n _this.form.workingHours.abrechenbarkeitId = element.defaultAccountableRuleId;\n }\n }\n // open accountability box if no rule is selected, DA-2941\n if (_this.isNewDocumentation && (!_this.form.workingHours.abrechenbarkeitId || _this.form.workingHours.abrechenbarkeitId === QMC.Common.Constants.GUID_EMPTY)) {\n _this.$qui.waitForEl('#accountabilityBox', function () {\n _this.accountabilityBoxState = 'open';\n });\n }\n // Group Stuff.\n _this.isGroup = data[0].isGroup && data[0].isServiceBaseTypeGroup;\n if (_this.isGroup) {\n _this.getGroup(data[0].clientObjectId);\n _this.getCatalogSettings();\n }\n if (caseIds.length === 1)\n _this.getSupportPlanTargetTemplates(data[0].clientObjectId);\n _this.loading.case = false;\n // Check if any case is paused\n _this.pausedCases = [];\n _this.fachleistungService.getFlsCasePaused(caseIds).then(function (pauseData) {\n for (var _i = 0, _a = _this.cases; _i < _a.length; _i++) {\n var curCase = _a[_i];\n if (pauseData[curCase.objectId]) {\n _this.pausedCases.push(curCase);\n }\n }\n if (_this.pausedCases.length > 0) {\n $('#casePausedModal').modal('show');\n }\n });\n // reporttemplate preselection by case\n if (_this.isNewDocumentation) {\n _this.isReportTemplateFix = data.some(function (x) { return x.isReportTemplateFix; });\n if (_this.isReportTemplateFix)\n _this.defaultReportTemplateId = (_a = data.filter(function (x) { return x.reportTemplateId && x.reportTemplateId !== QMC.Common.Constants.GUID_EMPTY && x.isReportTemplateFix; })[0]) === null || _a === void 0 ? void 0 : _a.reportTemplateId;\n else\n _this.defaultReportTemplateId = (_b = data.filter(function (x) { return x.reportTemplateId && x.reportTemplateId !== QMC.Common.Constants.GUID_EMPTY; })[0]) === null || _b === void 0 ? void 0 : _b.reportTemplateId;\n if (_this.defaultReportTemplateId)\n _this.reportForm.templateId = _this.defaultReportTemplateId;\n }\n }).catch(function () {\n _this.$qui.notify({\n message: _this.lng.translate(20002066, \"Der gewählte Fall steht nicht mehr zur Verfügung, die Planung kann nicht editiert oder dokumentiert werden!\"),\n title: _this.lng.translate(20002067, \"Editieren nicht möglich\"),\n icon: \"qm-icon-information\",\n status: \"info\",\n timer: 8000\n });\n _this.loading.case = false;\n _this.disableForm = true;\n });\n };\n /**\n * get the fls group details\n *\n * @private\n * @param {Guid} id\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.getGroup = function (id) {\n var _this = this;\n this.loading.group = true;\n this.fachleistungService.getFlsGroupDetail(id).then(function (data) {\n _this.group = {\n onlyNumberOfParticipants: data.onlyNumberOfParticipants,\n allowAdditionalExternalParticipants: data.allowAdditionalExternalParticipants,\n allowAdditionalInternalParticipants: data.allowAdditionalInternalParticipants,\n members: {\n employee: data.members.filter(function (x) { return x.objectType === 120000; }).map(function (x) { return ({ value: x.objectId, text: _this.$qui.createPersonDisplay(x.lastName, x.foreName, x.shortCaption, x.personNumber), group: x.objectTypeCaption, subText: x.institute }); }),\n client: data.members.filter(function (x) { return x.objectType !== 120000; }).map(function (x) { return ({ value: x.objectId, text: _this.$qui.createPersonDisplay(x.lastName, x.foreName, x.shortCaption, x.personNumber), group: x.objectTypeCaption, subText: x.institute }); }),\n },\n data: data,\n };\n _this.loading.group = false;\n _this.$qui.functionWaiter(\"createForm.participantsForm\", _this);\n if (_this.group.allowAdditionalInternalParticipants && !_this.group.onlyNumberOfParticipants) {\n _this.clientService.getPersonListByObjectType(140000, '', true).then(function (dataClient) {\n var groupValues = dataClient.map(function (x) { return ({ value: x.objectId, text: _this.$qui.createPersonDisplay(x.lastName, x.firstName, x.shortCaption, x.personNumber), group: _this.lng.translate(21002000, 'Klient'), subText: x.institute }); });\n var _loop_3 = function (member) {\n if (!_this.group.members.client.some(function (x) { return x.value === member.value; }))\n _this.group.members.client.push(member);\n };\n // remove duplicates\n for (var _i = 0, groupValues_1 = groupValues; _i < groupValues_1.length; _i++) {\n var member = groupValues_1[_i];\n _loop_3(member);\n }\n _this.$qui.functionWaiter(\"createForm.participantsForm\", _this);\n _this.loading.group = false;\n });\n }\n });\n };\n /**\n * get the current carer list for the additional carers for which to create the documentation\n *\n * @private\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.getCarers = function () {\n var _this = this;\n this.loading.wv = true;\n if (!this.isGroup) {\n this.fachleistungService.getCarerListForCase(this.flsCaseIds[0], true).then(function (data) {\n _this.carers = data.map(function (x) { return ({\n value: x.objectId, text: _this.$qui.createPersonDisplay(x.lastName, x.firstName, x.shortCaption, x.personNumber)\n }); });\n _this.carersIds = data.map(function (carerId) { return carerId.objectId; });\n _this.getWv(_this.flsCaseIds, null);\n });\n }\n else {\n this.carersIds.push($('#session').data().personId);\n this.getWv(this.flsCaseIds, null);\n }\n };\n /**\n * create a new activity form for the selected carer the user just selected\n *\n * @private carerId = the personObjektId for the carer is selected\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.createCarerActivityForm = function (carerIds) {\n var _this = this;\n var _a, _b;\n if (this.isGroup || !this.carerActivityForm) {\n // DA-1834, make sure wvs are still valid\n var wvCarerList = this.wvCarerDocumentationList[0].documentationCarerWvModel;\n var carer = this.carers.filter(function (carer) { return carer.value === _this.form.carers[0]; })[0];\n this.ensureActivityValidity(this.activityForm, carer, wvCarerList, true);\n return;\n }\n if (!this.defaultActivities) {\n setTimeout(function () { _this.createCarerActivityForm(carerIds); }, 50);\n return;\n }\n var onlyRemove = carerIds.length === 0 ? true : false;\n var _loop_4 = function (i) {\n var filterCarer = carerIds.filter(function (carer) { return carer === _this.carerActivityForm[i].carerId; });\n if (filterCarer.length === 0) {\n this_1.carerActivityForm.splice(i, 1);\n onlyRemove = true;\n }\n };\n var this_1 = this;\n for (var i = 0; i < this.carerActivityForm.length; i++) {\n _loop_4(i);\n }\n if (!onlyRemove) {\n var lastList = angular.copy(this.carerActivityForm);\n this.carerActivityForm = [];\n var _loop_5 = function (carerId) {\n var carer = this_2.carers.filter(function (carer) { return carer.value === carerId; })[0];\n var wvCarerList = this_2.getCarerWvList(carerId);\n // if we already had this carer just push it\n var existed = lastList.filter(function (x) { return x.carerId === carerId; })[0];\n if (existed) {\n this_2.ensureActivityValidity(existed, carer, wvCarerList);\n this_2.carerActivityForm.push(existed);\n }\n else {\n var carerActForm = {\n carerId: carerId,\n activityWvId: QMC.Common.Constants.DEFAULT_ACTIVITY_ID,\n contactTypeWvId: null,\n careTypeWvId: null,\n miscontactWvId: QMC.Common.Constants.FLS_NO_MISCONTACT,\n isActivityFix: false,\n careTypeWv: [],\n contactTypeWv: [],\n activityWv: [],\n carerName: '',\n errors: [],\n warnings: [],\n watcherList: [],\n activityBoxOpen: carerId === $('#session').data().personId ? 'open' : 'close',\n isMiscontactEnabled: false\n };\n carerActForm.zIndex = this_2.zIndexCarerForm - this_2.carerActivityForm.length - 1;\n carerActForm.activityCarerDescr = this_2.lng.translate(20016205, 'Tätigkeit für') + (((_a = carer === null || carer === void 0 ? void 0 : carer.text) === null || _a === void 0 ? void 0 : _a.length) ? \": \" + carer.text : \" \" + this_2.lng.translate(20016009, 'Dokumentation'));\n carerActForm.carerName = carer === null || carer === void 0 ? void 0 : carer.text;\n this_2.applyWvs(carerActForm, carer, wvCarerList);\n this_2.carerActivityForm.push(carerActForm);\n // DA-1401 if this is not the first carer, use activities from first carer if aplicable\n // only change activity if it is not fixed and standard is not valid with not just two options available (standard and one alternative)\n if (this_2.checkIfWvIsPresentById(wvCarerList.activityWv, this_2.carerActivityForm[0].activityWvId) && !carerActForm.isActivityFix && wvCarerList.activityWv.length !== 2 && !this_2.standardActivityAllowedIfRequired)\n carerActForm.activityWvId = this_2.carerActivityForm[0].activityWvId;\n if (this_2.checkIfWvIsPresentById(wvCarerList.careTypeWv, this_2.carerActivityForm[0].careTypeWvId))\n carerActForm.careTypeWvId = this_2.carerActivityForm[0].careTypeWvId;\n if (this_2.checkIfWvIsPresentById(wvCarerList.contactTypeWv, this_2.carerActivityForm[0].contactTypeWvId))\n carerActForm.contactTypeWvId = this_2.carerActivityForm[0].contactTypeWvId;\n if (this_2.checkIfWvIsPresentById(wvCarerList.miscontactWv, this_2.carerActivityForm[0].miscontactWvId))\n carerActForm.miscontactWvId = ((_b = this_2.carerActivityForm[0]) === null || _b === void 0 ? void 0 : _b.isMiscontactEnabled) ? this_2.carerActivityForm[0].miscontactWvId : QMC.Common.Constants.FLS_NO_MISCONTACT;\n carerActForm.isMiscontactEnabled = this_2.requiredFields.workingHours.miscontactWvId || (carerActForm.miscontactWvId && carerActForm.miscontactWvId !== QMC.Common.Constants.FLS_NO_MISCONTACT);\n var index_1 = this_2.carerActivityForm.length - 1;\n this_2.carerActivityForm[index_1].watcherList = [];\n this_2.carerActivityForm[index_1].watcherList.push(this_2.$scope.$watch('vm.carerActivityForm[' + index_1 + '].careTypeWvId', function (newValue, oldValue) {\n if (newValue !== oldValue && _this.carerActivityForm[index_1])\n _this.validateDocumentation(0);\n }));\n this_2.carerActivityForm[index_1].watcherList.push(this_2.$scope.$watch('vm.carerActivityForm[' + index_1 + '].activityWvId', function (newValue, oldValue) {\n if (newValue !== oldValue && _this.carerActivityForm[index_1])\n _this.validateDocumentation(0);\n }));\n this_2.carerActivityForm[index_1].watcherList.push(this_2.$scope.$watch('vm.carerActivityForm[' + index_1 + '].contactTypeWvId', function (newValue, oldValue) {\n if (newValue !== oldValue && _this.carerActivityForm[index_1])\n _this.validateDocumentation(0);\n }));\n this_2.carerActivityForm[index_1].watcherList.push(this_2.$scope.$watch('vm.carerActivityForm[' + index_1 + '].isMiscontactEnabled', function (newValue, oldValue) {\n if (newValue !== oldValue && _this.carerActivityForm[index_1])\n _this.validateDocumentation(0);\n }));\n this_2.carerActivityForm[index_1].watcherList.push(this_2.$scope.$watch('vm.carerActivityForm[' + index_1 + '].miscontactWvId', function (newValue, oldValue) {\n if (newValue !== oldValue && _this.carerActivityForm[index_1])\n _this.validateDocumentation(0);\n }));\n this_2.validateDocumentation(0);\n }\n };\n var this_2 = this;\n for (var _i = 0, carerIds_1 = carerIds; _i < carerIds_1.length; _i++) {\n var carerId = carerIds_1[_i];\n _loop_5(carerId);\n }\n }\n else {\n this.webClientValidation();\n }\n };\n FlsDocumentationController.prototype.showActivityResetNotification = function (carerName, area, caption) {\n this.$qui.notify({\n message: this.$qui.formatString(this.lng.translate(20016241, 'Die {0} {1} ist an dem Dokumentationsdatum ungültig'), area, caption),\n title: ((carerName === null || carerName === void 0 ? void 0 : carerName.length) ? \"\" + carerName + \":\" : '') + this.$qui.formatString(this.lng.translate(0, 'Die {0} wurde zurückgesetzt'), area),\n icon: \"qm-icon-information\",\n status: \"info\",\n timer: 8000\n });\n };\n FlsDocumentationController.prototype.ensureActivityValidity = function (form, carer, currentWvs, useActvityForm) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n if (useActvityForm === void 0) { useActvityForm = false; }\n var previousValues = {\n activity: form.activityWvId,\n activityCaption: (_c = (_b = (_a = form.activityWv) === null || _a === void 0 ? void 0 : _a.filter(function (x) { return x.value === form.activityWvId; })[0]) === null || _b === void 0 ? void 0 : _b.text) !== null && _c !== void 0 ? _c : '',\n contact: form.contactTypeWvId,\n contactCaption: (_f = (_e = (_d = form.contactTypeWv) === null || _d === void 0 ? void 0 : _d.filter(function (x) { return x.value === form.contactTypeWvId; })[0]) === null || _e === void 0 ? void 0 : _e.text) !== null && _f !== void 0 ? _f : '',\n care: form.careTypeWvId,\n careCaption: (_j = (_h = (_g = form.careTypeWv) === null || _g === void 0 ? void 0 : _g.filter(function (x) { return x.value === form.careTypeWvId; })[0]) === null || _h === void 0 ? void 0 : _h.text) !== null && _j !== void 0 ? _j : ''\n };\n this.applyWvs(form, carer, currentWvs, useActvityForm);\n if (this.checkIfWvIsPresentById(currentWvs.activityWv, previousValues.activity))\n form.activityWvId = previousValues.activity;\n else\n this.showActivityResetNotification(carer === null || carer === void 0 ? void 0 : carer.text, this.lng.translate(20016046, 'Tätigkeit'), previousValues.activityCaption);\n if (this.checkIfWvIsPresentById(currentWvs.careTypeWv, previousValues.care))\n form.careTypeWvId = previousValues.care;\n else\n this.showActivityResetNotification(carer === null || carer === void 0 ? void 0 : carer.text, this.lng.translate(20016051, 'Betreuungsart'), previousValues.careCaption);\n if (this.checkIfWvIsPresentById(currentWvs.contactTypeWv, previousValues.contact))\n form.contactTypeWvId = previousValues.contact;\n else\n this.showActivityResetNotification(carer === null || carer === void 0 ? void 0 : carer.text, this.lng.translate(20016049, 'Kontaktart'), previousValues.contactCaption);\n };\n FlsDocumentationController.prototype.applyWvs = function (carerActForm, carer, wvCarerList, useActvityForm) {\n var _a, _b, _c, _d;\n if (useActvityForm === void 0) { useActvityForm = false; }\n wvCarerList = wvCarerList !== null && wvCarerList !== void 0 ? wvCarerList : this.wvCarerDocumentationList[0].documentationCarerWvModel;\n if (!wvCarerList.activityWv)\n wvCarerList.activityWv = [];\n carerActForm.activityWv = this.getActivityList(carer === null || carer === void 0 ? void 0 : carer.objectId, wvCarerList);\n carerActForm.careTypeWv = this.getCareTypeList(carer === null || carer === void 0 ? void 0 : carer.objectId, wvCarerList);\n carerActForm.contactTypeWv = this.getContactList(carer === null || carer === void 0 ? void 0 : carer.objectId, wvCarerList);\n carerActForm.miscontactWv = this.getMiscontactList(carer === null || carer === void 0 ? void 0 : carer.objectId, wvCarerList);\n this.getCatalogSettings(useActvityForm ? null : carerActForm);\n if (this.defaultActivities.careType !== (null || QMC.Common.Constants.GUID_EMPTY) && this.checkIfWvIsPresentById(wvCarerList.careTypeWv, this.defaultActivities.careType))\n carerActForm.careTypeWvId = this.defaultActivities.careType;\n if (this.defaultActivities.contactType !== (null || QMC.Common.Constants.GUID_EMPTY) && this.checkIfWvIsPresentById(wvCarerList.contactTypeWv, this.defaultActivities.contactType))\n carerActForm.contactTypeWvId = this.defaultActivities.contactType;\n if (!carerActForm.isActivityFix && (this.defaultActivities.activityType !== (null || QMC.Common.Constants.GUID_EMPTY) && this.checkIfWvIsPresentById(wvCarerList.activityWv, this.defaultActivities.activityType))) {\n carerActForm.activityWvId = this.defaultActivities.activityType;\n }\n else if (!carerActForm.isActivityFix && wvCarerList.activityWv.length === 2 && !this.standardActivityAllowedIfRequired) {\n wvCarerList.activityWv.forEach(function (element) {\n if (element.objectId !== QMC.Common.Constants.DEFAULT_ACTIVITY_ID) {\n carerActForm.activityWvId = element.objectId;\n }\n });\n }\n // if we come from a planning update carerForm with selected values from planning\n if (this.isPlaned && !this.carerActivityForm.length && localStorage.getItem('flsObject')) {\n var plannedFlsObject = JSON.parse(localStorage.getItem('flsObject'));\n carerActForm.activityWvId = (_a = plannedFlsObject.activity) !== null && _a !== void 0 ? _a : carerActForm.activityWvId;\n carerActForm.careTypeWvId = (_b = plannedFlsObject.careType) !== null && _b !== void 0 ? _b : carerActForm.careTypeWvId;\n carerActForm.contactTypeWvId = (_c = plannedFlsObject.contactType) !== null && _c !== void 0 ? _c : carerActForm.contactTypeWvId;\n carerActForm.miscontactWvId = (_d = plannedFlsObject.miscontact) !== null && _d !== void 0 ? _d : carerActForm.miscontactWvId;\n carerActForm.isMiscontactEnabled = carerActForm.miscontactWvId && carerActForm.miscontactWvId !== QMC.Common.Constants.FLS_NO_MISCONTACT;\n }\n };\n FlsDocumentationController.prototype.getWarningErrorsCount = function (getForWarnings) {\n var _a, _b;\n if (getForWarnings === void 0) { getForWarnings = true; }\n if (this.isNewDocumentation) {\n var count = 0;\n for (var i = 0; (_b = i < ((_a = this.carerActivityForm) === null || _a === void 0 ? void 0 : _a.length)) !== null && _b !== void 0 ? _b : 0; i++) {\n if (getForWarnings) {\n count = this.carerActivityForm[i].warnings.length > 0 ? count + this.carerActivityForm[i].warnings.length : count + 0;\n }\n else {\n count = this.carerActivityForm[i].errors.length > 0 ? count + this.carerActivityForm[i].errors.length : count + 0;\n }\n }\n return count;\n }\n return 0;\n };\n FlsDocumentationController.prototype.getCatalogSettings = function (carerActivityForm) {\n var _this = this;\n var _a;\n if (carerActivityForm === void 0) { carerActivityForm = null; }\n this.loading.editorSettings = true;\n this.fachleistungService.getCatalogSettings(this.flsCaseIds, this.documentationIds[0], this.timeForm.dateFrom, (_a = carerActivityForm === null || carerActivityForm === void 0 ? void 0 : carerActivityForm.carerId) !== null && _a !== void 0 ? _a : $('#session').data().personId).then(function (data) {\n var _a, _b, _c;\n _this.flsDocumentationEditorSettings = data;\n _this.configRoundInterval = data.hasStartHourRounding || data.hasEndHourRound ? Math.max(data.timeSetMinuteInterval, (_c = (_b = (_a = _this.ui.documentationTimeForm.form[0]) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.roundInterval) !== null && _c !== void 0 ? _c : 0) : 0;\n _this.configStartRoundType = data.hasStartHourRounding ? data.startRoundingType : null;\n _this.configEndRoundType = data.hasEndHourRound ? data.endRoundingType : null;\n //this setting should be applied only for new entries and in case of saved entries after the user changes the date from/to\n if (_this.isNewDocumentation) {\n if (_this.configRoundInterval > 0) {\n _this.ui.documentationTimeForm.form[0].config.roundInterval = _this.configRoundInterval;\n }\n if (!_this.isPlaned && !_this.defaultTimesSet) {\n _this.timeForm.dateFrom.setHours(data.defaultHour);\n _this.timeForm.dateFrom.setMinutes(0);\n _this.timeForm.dateTo.setHours(data.defaultHour + 1);\n _this.timeForm.dateTo.setMinutes(0);\n if (_this.createForm.timeForm)\n _this.createForm.timeForm();\n }\n if (_this.form.drivingCost[0]) {\n _this.form.drivingCost[0].dateOfArrival.setHours(data.defaultHour);\n _this.form.drivingCost[0].dateOfArrival.setMinutes(0);\n _this.form.drivingCost[0].dateOfDeparture.setHours(data.defaultHour);\n _this.form.drivingCost[0].dateOfDeparture.setMinutes(0);\n _this.form.drivingCost[0].timeOfArrival.setHours(data.defaultHour);\n _this.form.drivingCost[0].timeOfArrival.setMinutes(0);\n _this.form.drivingCost[0].timeOfDeparture.setHours(data.defaultHour);\n _this.form.drivingCost[0].timeOfDeparture.setMinutes(0);\n }\n }\n _this.defaultTimesSet = true;\n _this.standardActivityAllowedIfRequired = data.isActivityStandardValidValue;\n if (carerActivityForm === null) {\n _this.requiredFields.workingHours.contactTypeWvId = data.isContactTypeRequiered || _this.requiredFields.workingHours.contactTypeWvId;\n _this.requiredFields.workingHours.careTypeWvId = data.isCareTypeRequiered || _this.requiredFields.workingHours.careTypeWvId;\n }\n else {\n carerActivityForm.requiredFields = _this.requiredFields;\n carerActivityForm.requiredFields.workingHours.contactTypeWvId = data.isContactTypeRequiered || carerActivityForm.requiredFields.workingHours.contactTypeWvId || _this.requiredFields.workingHours.contactTypeWvId;\n carerActivityForm.requiredFields.workingHours.careTypeWvId = data.isCareTypeRequiered || carerActivityForm.requiredFields.workingHours.careTypeWvId || _this.requiredFields.workingHours.careTypeWvId;\n }\n // if we got a fix activity Id set the activity to it!\n if (_this.flsCaseIds.length === 1) {\n if (carerActivityForm === null) {\n _this.activityForm.isActivityFix = (data.fixActivityId && data.fixActivityId !== QMC.Common.Constants.GUID_EMPTY);\n if (_this.activityForm.isActivityFix)\n _this.activityForm.activityWvId = data.fixActivityId;\n }\n else {\n carerActivityForm.isActivityFix = (data.fixActivityId && data.fixActivityId !== QMC.Common.Constants.GUID_EMPTY);\n if (carerActivityForm.isActivityFix)\n carerActivityForm.activityWvId = data.fixActivityId;\n }\n }\n _this.loading.editorSettings = false;\n _this.$qui.functionWaiter(\"createForm.activityForm\", _this);\n }).catch(function () {\n _this.loading.editorSettings = false;\n _this.disableForm = true;\n });\n };\n FlsDocumentationController.prototype.shouldDisable = function () {\n return this.form.isSigned ? this.form.isSigned : (!this.isNewDocumentation && !this.showSaveButton()) || this.hasPrevMonthLock() || this.disableForm;\n };\n FlsDocumentationController.prototype.showSaveButton = function () {\n return ((this.modifiyDescription || this.form.isUpdateAllowed || this.editLockType === 'warnings' || this.formState == 'new') && (this.pausedCases && !(this.pausedCases.length > 0 && this.editLockType === 'errors')));\n };\n FlsDocumentationController.prototype.showDeleteButton = function () {\n return this.form.isDeleteAllowed && (this.pausedCases && !(this.pausedCases.length > 0 && this.editLockType === 'errors')) && !this.hasPrevMonthLock();\n };\n FlsDocumentationController.prototype.hasPrevMonthLock = function () {\n if (this.isNewDocumentation || this.editLockType === 'warnings')\n return false; // DAA-481\n if (!this.userConfig || !this.timeForm || !this.timeForm.dateFrom)\n return true; // no settings loaded / not init => block\n var res = false;\n if (moment(this.timeForm.dateFrom).startOf('month') < moment().startOf('month') && this.userConfig.isLockedCreatingForPreviousMonth) {\n var i = 0;\n var dtmin = new moment().startOf('month');\n while (i < this.userConfig.daysAllowedCreatingReportsForPreviousMonth) {\n dtmin = dtmin.add(1, 'day');\n if (!((dtmin.day() === 6) || (dtmin.day() === 0)))\n i++;\n }\n if (dtmin.toDate() < this.timeForm.dateFrom) {\n res = true;\n }\n }\n this.addOrRemoveError(this.lng.translate(20016225, 'Die Dokumentation kann aufgrund der Sperre Vormonat nicht mehr verändert werden. Ausgenommen ist das Bemerkungsfeld'), res);\n return res;\n };\n FlsDocumentationController.prototype.getWv = function (caseIds, documentationId) {\n var _this = this;\n var carerIds = this.isNewDocumentation ? this.selectedCarerList : this.carersIds;\n if (!carerIds || carerIds.length === 0) {\n carerIds = [$('#session').data().personId];\n }\n ;\n var getRequestString = JSON.stringify({ caseIds: caseIds, documentationId: documentationId, carerIds: carerIds, date: this.timeForm.dateFrom });\n if (this.lastWvGetRequest === getRequestString)\n return;\n this.lastWvGetRequest = getRequestString;\n this.loading.wv = true;\n this.fachleistungService.getFlsDocumentationWvModel(caseIds, documentationId, carerIds, this.timeForm.dateFrom).then(function (data) {\n //sort wvs alphanumerically\n data.forEach(function (carer) {\n for (var wv in carer.documentationCarerWvModel) {\n if (Array.isArray(carer.documentationCarerWvModel[wv])) {\n console.log(wv, carer.documentationCarerWvModel[wv]);\n carer.documentationCarerWvModel[wv] = carer.documentationCarerWvModel[wv].sort(function (a, b) { var _a, _b; return ((_a = a.caption) !== null && _a !== void 0 ? _a : a.name).localeCompare(((_b = b.caption) !== null && _b !== void 0 ? _b : b.name), undefined, { sensitivity: 'base' }); });\n }\n }\n });\n _this.wvCarerDocumentationList = data;\n if (!_this.isNewDocumentation || _this.isGroup) {\n //the carersIds will always be filled for an existing documentation in the getDocumentation() function with the ReferencePersonId of the Documentation\n _this.wvList = _this.getCarerWvList(_this.carersIds[0]);\n }\n else {\n //DA-4495 check if the session user can be a carer before adding him/her to the selectedCarerList\n if (_this.selectedCarerList.length === 0 && _this.carersIds.some(function (x) { return x === $('#session').data().personId; })) {\n _this.selectedCarerList.push($('#session').data().personId);\n }\n _this.createCarerActivityForm(_this.selectedCarerList);\n }\n _this.wvlivingAreaList = _this.getLivingAreaWvList();\n if (_this.wvlivingAreaList.length > 0) {\n _this.livingAreaId = _this.wvlivingAreaList[0].value;\n }\n //only do this part when you create a group fls, for a new documentation with carers the settings are loaded and set in createCarerActivityForm\n if (_this.isNewDocumentation && _this.isGroup) {\n _this.$timeout(function () {\n _this.userService.getUserSettings([\"FLS.DEFAULTCARETYPE\", \"FLS.DEFAULTCONTACTTYPE\", \"FLS.DEFAULTACTIVITYTYPE\"], false).then(function (data) {\n var wvCarerList = _this.getCarerWvList($('#session').data().personId);\n if (!wvCarerList.activityWv)\n wvCarerList.activityWv = [];\n _this.activityForm.carerId = $('#session').data().personId;\n if (data[0].value !== (null || QMC.Common.Constants.GUID_EMPTY) && _this.checkIfWvIsPresentById(wvCarerList.careTypeWv, data[0].value))\n _this.activityForm.careTypeWvId = data[0].value;\n if (data[1].value !== (null || QMC.Common.Constants.GUID_EMPTY) && _this.checkIfWvIsPresentById(wvCarerList.contactTypeWv, data[1].value))\n _this.activityForm.contactTypeWvId = data[1].value;\n if (!_this.activityForm.isActivityFix && (data[2].value !== (null || QMC.Common.Constants.GUID_EMPTY) && _this.checkIfWvIsPresentById(wvCarerList.activityWv, data[2].value)))\n _this.activityForm.activityWvId = data[2].value;\n else if (!_this.activityForm.isActivityFix && wvCarerList.activityWv.length === 2 && !_this.standardActivityAllowedIfRequired) {\n wvCarerList.activityWv.forEach(function (element) {\n if (element.objectId !== QMC.Common.Constants.DEFAULT_ACTIVITY_ID) {\n _this.activityForm.activityWvId = element.objectId;\n }\n });\n }\n });\n });\n }\n _this.loading.wvFirst = false;\n _this.loading.wv = false;\n _this.createCarerActivityForm(carerIds);\n _this.validateDocumentation();\n });\n };\n FlsDocumentationController.prototype.getCarerWvList = function (carerId) {\n var _a, _b;\n for (var _i = 0, _c = this.wvCarerDocumentationList; _i < _c.length; _i++) {\n var element = _c[_i];\n if (element.carerId === carerId) {\n return element.documentationCarerWvModel;\n }\n }\n ;\n // no wv found go with default as failsafe\n return (_b = (_a = this.wvCarerDocumentationList[0]) === null || _a === void 0 ? void 0 : _a.documentationCarerWvModel) !== null && _b !== void 0 ? _b : {};\n };\n FlsDocumentationController.prototype.checkIfWvIsPresentById = function (list, id) {\n if (!list)\n list = [];\n for (var _i = 0, list_2 = list; _i < list_2.length; _i++) {\n var element = list_2[_i];\n if (element.objectId === id\n //failsafe if any of the involved values is undefined\n || (!id && element.objectId === QMC.Common.Constants.GUID_EMPTY)\n || (!element.objectId && id === QMC.Common.Constants.GUID_EMPTY))\n return true;\n }\n return false;\n };\n FlsDocumentationController.prototype.getDrivingCostCategoryWv = function () {\n if (this.wvList && this.wvList.drivingCostCategoryWv.length > 0) {\n return this.wvList.drivingCostCategoryWv;\n }\n else {\n var wvCarerList = this.getCarerWvList($('#session').data().personId);\n return wvCarerList.drivingCostCategoryWv;\n }\n };\n FlsDocumentationController.prototype.getDrivingCostCategoryList = function () {\n var _a, _b, _c;\n if (this.wvList && ((_a = this.wvList.drivingCostCategoryWv) === null || _a === void 0 ? void 0 : _a.length) > 0) {\n return (_b = this.wvList.drivingCostCategoryWv) === null || _b === void 0 ? void 0 : _b.map(function (x) { return ({ value: x.objectId, text: x.name, isFix: x.isFix }); });\n }\n else {\n var wvCarerList = this.getCarerWvList($('#session').data().personId);\n return (_c = wvCarerList.drivingCostCategoryWv) === null || _c === void 0 ? void 0 : _c.map(function (x) { return ({ value: x.objectId, text: x.name, isFix: x.isFix }); });\n }\n };\n FlsDocumentationController.prototype.getDrivingCostCharingList = function () {\n var _a, _b, _c;\n if (this.wvList && ((_a = this.wvList.drivingCostChargingMethodWv) === null || _a === void 0 ? void 0 : _a.length) > 0) {\n return (_b = this.wvList.drivingCostChargingMethodWv) === null || _b === void 0 ? void 0 : _b.map(function (x) { return ({ value: x.objectId, text: x.name, isFix: x.isFix }); });\n }\n else {\n var wvCarerList = this.getCarerWvList($('#session').data().personId);\n return (_c = wvCarerList.drivingCostChargingMethodWv) === null || _c === void 0 ? void 0 : _c.map(function (x) { return ({ value: x.objectId, text: x.name, isFix: x.isFix }); });\n }\n };\n FlsDocumentationController.prototype.getActivityList = function (carerId, wvCarerList) {\n var _a;\n if (carerId === void 0) { carerId = QMC.Common.Constants.GUID_EMPTY; }\n if (wvCarerList === void 0) { wvCarerList = this.getCarerWvList($('#session').data().personId); }\n if (carerId === QMC.Common.Constants.GUID_EMPTY && this.wvList && ((_a = this.wvList.activityWv) === null || _a === void 0 ? void 0 : _a.length) > 0) {\n return this.wvList.activityWv.map(function (x) { return ({ value: x.objectId, text: x.name, isFix: x.isFix }); });\n }\n else {\n return wvCarerList.activityWv ? wvCarerList.activityWv.map(function (x) { return ({ value: x.objectId, text: x.name, isFix: x.isFix }); }) : [];\n }\n };\n FlsDocumentationController.prototype.getContactList = function (carerId, wvCarerList) {\n var _a;\n if (carerId === void 0) { carerId = QMC.Common.Constants.GUID_EMPTY; }\n if (wvCarerList === void 0) { wvCarerList = this.getCarerWvList($('#session').data().personId); }\n if (carerId === QMC.Common.Constants.GUID_EMPTY && this.wvList && ((_a = this.wvList.contactTypeWv) === null || _a === void 0 ? void 0 : _a.length) > 0) {\n return this.wvList.contactTypeWv.map(function (x) { return ({ value: x.objectId, text: x.name, isFix: x.isFix }); });\n }\n else {\n return wvCarerList.contactTypeWv ? wvCarerList.contactTypeWv.map(function (x) { return ({ value: x.objectId, text: x.name, isFix: x.isFix }); }) : [];\n }\n };\n FlsDocumentationController.prototype.getCareTypeList = function (carerId, wvCarerList) {\n var _a;\n if (carerId === void 0) { carerId = QMC.Common.Constants.GUID_EMPTY; }\n if (wvCarerList === void 0) { wvCarerList = this.getCarerWvList($('#session').data().personId); }\n if (carerId === QMC.Common.Constants.GUID_EMPTY && this.wvList && ((_a = this.wvList.careTypeWv) === null || _a === void 0 ? void 0 : _a.length) > 0) {\n return this.wvList.careTypeWv.map(function (x) { return ({ value: x.objectId, text: x.name, isFix: x.isFix }); });\n }\n else {\n return wvCarerList.careTypeWv ? wvCarerList.careTypeWv.map(function (x) { return ({ value: x.objectId, text: x.name, isFix: x.isFix }); }) : [];\n }\n };\n FlsDocumentationController.prototype.getMiscontactList = function (carerId, wvCarerList) {\n var _a;\n if (carerId === void 0) { carerId = QMC.Common.Constants.GUID_EMPTY; }\n if (wvCarerList === void 0) { wvCarerList = this.getCarerWvList($('#session').data().personId); }\n if (carerId === QMC.Common.Constants.GUID_EMPTY && this.wvList && ((_a = this.wvList.miscontactWv) === null || _a === void 0 ? void 0 : _a.length) > 0) {\n return this.wvList.miscontactWv.map(function (x) { return ({ value: x.objectId, text: x.name, isFix: x.isFix }); });\n }\n else {\n return wvCarerList.miscontactWv ? wvCarerList.miscontactWv.map(function (x) { return ({ value: x.objectId, text: x.name, isFix: x.isFix }); }) : [];\n }\n };\n FlsDocumentationController.prototype.getLivingAreaWvList = function () {\n if (this.wvList && this.wvList.livingAreaWvList.length > 0) {\n var livingAreaWvList = this.wvList.livingAreaWvList.map(function (x) { return ({ value: x.objectId, text: x.name, isFix: x.isFix }); });\n livingAreaWvList.unshift({ value: QMC.Common.Constants.GUID_EMPTY, text: this.lng.translate(20000212, '- Alle -'), isFix: true });\n return livingAreaWvList;\n }\n else {\n //get the wvList for the current user\n var wvCarerList = this.getCarerWvList($('#session').data().personId);\n var livingAreaWvList = wvCarerList.livingAreaWvList.map(function (x) { return ({ value: x.objectId, text: x.name, isFix: x.isFix }); });\n livingAreaWvList.unshift({ value: QMC.Common.Constants.GUID_EMPTY, text: this.lng.translate(20000212, '- Alle -'), isFix: true });\n return livingAreaWvList;\n }\n };\n FlsDocumentationController.prototype.getSubLivingAreaWvList = function () {\n if (this.livingAreaId && this.livingAreaId !== '') {\n var data = [];\n var livingAreaName = this.getlivingAreaName(this.livingAreaId);\n if (livingAreaName !== '' && livingAreaName) {\n data = this.wvList.subLivingAreaWvList[livingAreaName];\n if (data.length > 0) {\n data = data.map(function (obj) {\n return {\n value: obj.objectId,\n text: obj.name\n };\n });\n data.unshift({ value: QMC.Common.Constants.GUID_EMPTY, text: this.lng.translate(20000212, '- Alle -'), isFix: true });\n }\n }\n return data;\n }\n };\n FlsDocumentationController.prototype.getlivingAreaName = function (livingAreaId) {\n var livingAreaType = this.wvList.livingAreaWvList.filter(function (livingAreaType) { return livingAreaType.objectId === livingAreaId; });\n if (livingAreaType && livingAreaType.length > 0) {\n var livingAreaName = livingAreaType[0].name;\n return livingAreaName.substring(0, 1).toLowerCase() + livingAreaName.substring(1);\n }\n };\n FlsDocumentationController.prototype.getParticipantsList = function () {\n return this.group.members.client;\n };\n FlsDocumentationController.prototype.getParticipantEmployeesList = function () {\n return this.group.members.employee;\n };\n FlsDocumentationController.prototype.getAccountabilityRuleName = function (id) {\n if (!this.wvList)\n return '';\n for (var _i = 0, _a = this.wvList.abrechenbarkeitWv; _i < _a.length; _i++) {\n var rule = _a[_i];\n if (rule.objectId === id)\n return rule.caption;\n }\n return '';\n };\n /////////////// REPORT FUNCTIONS ///////////////\n /**\n * get the report templates from api\n *\n * @private\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.getReportTemplates = function () {\n var _this = this;\n this.loading.templates = true;\n this.fachleistungService.getReportTemplates().then(function (data) {\n _this.loading.templates = false;\n _this.reportForm.templates = data;\n _this.reportForm.normalReportTemplates = data;\n if (_this.isNewDocumentation) {\n _this.selectDefaultTemplate();\n }\n _this.reportTemplates.normal = data.map(function (x) { return ({ text: x.caption, value: x.id }); });\n });\n };\n FlsDocumentationController.prototype.selectDefaultTemplate = function () {\n if (this.defaultReportTemplateId) {\n this.getReportTemplateItems(this.reportForm.templateId);\n return;\n }\n this.reportForm.templateId = this.reportForm.templates[0].objectId;\n for (var _i = 0, _a = this.reportForm.templates; _i < _a.length; _i++) {\n var element = _a[_i];\n if (element.isDefault) {\n this.reportForm.templateId = element.objectId;\n break;\n }\n }\n this.getReportTemplateItems(this.reportForm.templateId);\n };\n /**\n * get the report template items\n *\n * @private\n * @param {Guid} templateId\n * @returns {void}\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.getReportTemplateItems = function (templateId, changeReportType, noPrompt) {\n var _this = this;\n if (changeReportType === void 0) { changeReportType = false; }\n if (noPrompt === void 0) { noPrompt = false; }\n if (!templateId) {\n this.reportForm.templateId = this.form.reportTemplateId;\n return;\n }\n var option = !this.isSupportPlanDocu ? \"getReportTemplateItems\" : \"getSupportPlanTargetTemplateItems\";\n this.fachleistungService[option](templateId).then(function (data) {\n _this.setReportTemplate(templateId, data, changeReportType, noPrompt);\n });\n };\n FlsDocumentationController.prototype.setReportTemplate = function (templateId, template, changeReportType, noPrompt) {\n var _this = this;\n if (changeReportType === void 0) { changeReportType = false; }\n if (noPrompt === void 0) { noPrompt = false; }\n if (this.templatePromptOpen)\n return;\n if (!noPrompt && this.isReportEntryCommented(this.reportForm.reports) && !this.dontTriggerReportPrompt) {\n this.templatePromptOpen = true;\n QMC.Common.Utilities.confirm(this.promptOptionsTemplateChange, function (response) {\n _this.dontTriggerReportPrompt = true;\n if (response) {\n _this.setReportTemplateItems(templateId, template);\n }\n else {\n _this.reportForm.templateId = _this.form.reportTemplateId;\n if (changeReportType) {\n _this.isSupportPlanDocu = !_this.isSupportPlanDocu;\n _this.toggleSupportPlan(true, false);\n }\n }\n setTimeout(function () {\n var _a;\n _this.dontTriggerReportPrompt = false;\n _this.templatePromptOpen = false;\n // the backdrop sometimes remained...\n (_a = $('.modal-backdrop')) === null || _a === void 0 ? void 0 : _a.remove();\n }, 500);\n }, '#promptTemplate', true);\n }\n else {\n this.setReportTemplateItems(templateId, template);\n }\n };\n FlsDocumentationController.prototype.setReportTemplateItems = function (templateId, template) {\n var _this = this;\n if (templateId !== this.form.reportTemplateId || this.reportForm.reports.length === 0)\n this.reportForm.reports = this.createReportTemplateRecursive(template);\n this.$timeout(function () {\n if (!_this.isReportEntryCommented(_this.reportForm.reports))\n _this.reportForm.activeReport = _this.reportForm.reports[0];\n });\n this.form.reportTemplateId = templateId;\n };\n FlsDocumentationController.prototype.isReportEntryCommented = function (items, setFirstCommented) {\n if (setFirstCommented === void 0) { setFirstCommented = true; }\n if (this.reportForm.activeReport) {\n for (var _i = 0, _a = this.reportForm.reports; _i < _a.length; _i++) {\n var tempItem = _a[_i];\n if (tempItem.objectId == this.reportForm.activeReport.objectId)\n tempItem.comment = this.reportForm.activeReport.comment;\n }\n }\n for (var _b = 0, items_2 = items; _b < items_2.length; _b++) {\n var entry = items_2[_b];\n if (entry.comment && this.strip(entry.comment).length > 0) {\n if (setFirstCommented) {\n this.reportForm.activeReport = entry;\n }\n return true;\n }\n if (entry.children && entry.children.length > 0 && this.isReportEntryCommented(entry.children, setFirstCommented))\n return true;\n if (items.length === items.indexOf(entry))\n return false;\n }\n };\n /**\n * create the report template structure recursive\n *\n * @private\n * @param {Common.IReportTemplateItem[]} template\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.createReportTemplateRecursive = function (template) {\n var result = [];\n for (var _i = 0, template_1 = template; _i < template_1.length; _i++) {\n var templateItem = template_1[_i];\n var item = {\n caption: templateItem.caption,\n children: [],\n comment: '',\n templateReferenceId: templateItem.objectId,\n wvChildId: templateItem.reportItemId,\n objectId: templateItem.objectId,\n icon: this.isSupportPlanDocu ? templateItem.measureId ? 'qm-icon-lifebelt' : templateItem.targetId ? 'qm-icon-target' : 'qm-icon-elements' : ''\n };\n if (templateItem.children.length > 0)\n item.children = this.createReportTemplateRecursive(templateItem.children);\n result.push(item);\n }\n return result;\n };\n /**\n * Select and set the report template item\n *\n * @private\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.selectReport = function (reportItem) {\n this.reportForm.activeReport = reportItem;\n $('#reportSummernote').find('.note-editable').trigger('focus');\n };\n /**\n * get the support plan from api\n *\n * @private\n * @param {Guid} id\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.getSupportPlanTargetTemplates = function (id) {\n var _this = this;\n this.fachleistungService.getSupportPlanTargetTemplates(id).then(function (data) {\n data = data.sort(function (a, b) {\n var fromA = moment(a.dateFrom);\n var fromB = moment(b.dateFrom);\n return fromA < fromB ? 1 : fromA > fromB ? -1 : 0;\n });\n _this.reportForm.supportPlanTemplates = data;\n _this.reportTemplates.supportPlan = data.map(function (x) { return ({ text: x.caption, subText: x.supportPlanCaption, value: x.id }); });\n if (_this.isSupportPlanDocu) {\n _this.reportForm.templates = data;\n }\n });\n };\n /**\n * switches to support plan templates\n *\n * @private\n *\n * @memberOf FlsDocumentationController\n */\n FlsDocumentationController.prototype.toggleSupportPlan = function (dontSetTemplates, overwrite) {\n if (dontSetTemplates === void 0) { dontSetTemplates = false; }\n if (overwrite === void 0) { overwrite = true; }\n if (this.isSupportPlanDocu) {\n this.reportForm.templates = this.reportForm.supportPlanTemplates;\n }\n else {\n this.reportForm.templates = this.reportForm.normalReportTemplates;\n }\n if (overwrite && (!dontSetTemplates || !(this.isNewDocumentation && this.form.isSupportPlanDocu))) {\n this.reportForm.templateId = this.defaultReportTemplateId && !this.isSupportPlanDocu ? this.defaultReportTemplateId : this.reportForm.templates[0].id;\n this.getReportTemplateItems(this.reportForm.templateId, true);\n }\n };\n /////////////// SAVELOGIC ///////////////\n /**\n * Validate the current documentation\n *\n * @private\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.allowSaveAnyway = function () {\n var allow = this.validation.errors.length === 0;\n if (this.carerActivityForm && this.carerActivityForm.length > 0)\n this.carerActivityForm.forEach(function (x) {\n allow = allow && x.errors.length === 0;\n });\n return allow;\n };\n FlsDocumentationController.prototype.validateDocumentation = function (debounce, saveAnyway, doServerValidation, afterSuccessfullValidationAction) {\n var _this = this;\n if (debounce === void 0) { debounce = 1500; }\n if (saveAnyway === void 0) { saveAnyway = false; }\n if (doServerValidation === void 0) { doServerValidation = false; }\n if (afterSuccessfullValidationAction === void 0) { afterSuccessfullValidationAction = function () { }; }\n if (this.loading.save)\n return;\n var exitValidation = function () {\n _this.loading.validate = _this.isValidating;\n _this.$qui.scopeApply(_this.$scope);\n };\n this.validation.errors = [];\n this.validation.warnings = [];\n if (isNaN(this.timeForm.dateFrom.valueOf()) || isNaN(this.timeForm.dateTo.valueOf())) {\n this.webClientValidation();\n return;\n }\n if (this.timeForm.dateFrom.getSeconds())\n this.timeForm.dateFrom.setSeconds(0);\n if (this.timeForm.dateFrom.getMilliseconds())\n this.timeForm.dateFrom.setMilliseconds(0);\n if (this.timeForm.dateTo.getSeconds())\n this.timeForm.dateTo.setSeconds(0);\n if (this.timeForm.dateTo.getMilliseconds())\n this.timeForm.dateTo.setMilliseconds(0);\n if (this.loading.requieredFields) {\n setTimeout(function () { _this.validateDocumentation(debounce); }, 500);\n return;\n }\n this.loading.validate = true;\n this.webClientValidation();\n var references = [];\n if (this.cases && this.cases.length > 0) {\n for (var _i = 0, _a = this.cases; _i < _a.length; _i++) {\n var curCase = _a[_i];\n references.push({\n caseId: curCase.objectId,\n referenceId: curCase.clientObjectId,\n accountabilityId: curCase.isAccountableRuleFix ? curCase.defaultAccountableRuleId : this.form.workingHours.abrechenbarkeitId\n });\n }\n }\n else {\n this.loading.validate = this.isValidating;\n return;\n }\n var carer = [];\n if (this.carerActivityForm && this.carerActivityForm.length > 0) {\n for (var _b = 0, _c = this.carerActivityForm; _b < _c.length; _b++) {\n var curCarer = _c[_b];\n carer.push({\n carerId: curCarer.carerId,\n activityTypeId: curCarer.activityWvId,\n contactTypeId: curCarer.contactTypeWvId,\n careTypeId: curCarer.careTypeWvId,\n miscontactId: curCarer.miscontactWvId\n });\n }\n }\n else if (this.isGroup || !this.isNewDocumentation) {\n carer.push({\n carerId: this.isGroup ? $(\"#session\").data().personId : this.form.workingHours.carerObjectId,\n activityTypeId: this.activityForm.activityWvId,\n careTypeId: this.activityForm.careTypeWvId,\n contactTypeId: this.activityForm.contactTypeWvId,\n miscontactId: this.activityForm.miscontactWvId\n });\n }\n else {\n exitValidation();\n return;\n }\n setTimeout(function () {\n var _a;\n var duration = _this.timeForm.durationInHours;\n if (_this.timeForm.isManualDuration) {\n duration = _this.form.durationInHours = _this.hoursMinutesToDecimal(_this.timeForm.hours, _this.timeForm.minutes);\n }\n var validationObject = null;\n if (_this.isNewDocumentation && !_this.isGroup) {\n var isManual = _this.timeForm.isManualDuration || (_this.timeForm.distributeHours && _this.cases.length > 1); // if we got multiple cases && ditribute hours is set, validate as if manual duration DA-1127,\n for (var _i = 0, _b = _this.carerActivityForm; _i < _b.length; _i++) {\n var element = _b[_i];\n validationObject = {\n dateFrom: _this.timeForm.dateFrom,\n dateTo: _this.timeForm.dateTo,\n hasManualDuration: isManual,\n manualDuration: isManual ? _this.timeForm.distributeHours ? duration / references.length : duration : 0,\n documentationId: _this.formState === 'new' ? QMC.Common.Constants.GUID_EMPTY : _this.documentationIds[0],\n references: references,\n carer: carer,\n requestId: _this.$qui.generateGuid(),\n ignoreConfigRoundInterval: (_this.ignoreConfigRoundInterval || _this.ui.documentationTimeForm.form[0].config.roundInterval === 0)\n };\n }\n }\n else {\n validationObject = {\n dateFrom: _this.timeForm.dateFrom,\n dateTo: _this.timeForm.dateTo,\n hasManualDuration: _this.timeForm.isManualDuration,\n manualDuration: _this.timeForm.isManualDuration ? _this.timeForm.distributeHours ? duration / references.length : duration : 0,\n documentationId: _this.formState === 'new' ? QMC.Common.Constants.GUID_EMPTY : _this.documentationIds[0],\n references: references,\n carer: carer,\n requestId: _this.$qui.generateGuid(),\n ignoreConfigRoundInterval: (_this.ignoreConfigRoundInterval || _this.ui.documentationTimeForm.form[0].config.roundInterval === 0)\n };\n }\n if ((_a = _this.form) === null || _a === void 0 ? void 0 : _a.drivingCost) {\n validationObject.drivingCost = [];\n for (var _c = 0, _d = _this.form.drivingCost; _c < _d.length; _c++) {\n var cost = _d[_c];\n if (_this.ui.convertHours(cost.hours, cost.minutes >= 0 ? cost.minutes : 0) > 0 || cost.drivingDistance > 0 || cost.isCarPool || cost.isPrivate)\n validationObject.drivingCost.push({\n objectId: cost.objectId,\n dateOfArrival: cost.isPrivate || cost.isCarPool ? _this.$qui.addTimeToDate(cost.dateOfArrival, cost.timeOfArrival) : null,\n dateOfDeparture: cost.isPrivate || cost.isCarPool ? _this.$qui.addTimeToDate(cost.dateOfDeparture, cost.timeOfDeparture) : null,\n drivingDistance: cost.drivingDistance,\n duration: _this.ui.convertHours(cost.hours, cost.minutes >= 0 ? cost.minutes : 0),\n chargingMethodId: cost.chargingMethodId,\n drivingCostCategoryId: cost.drivingCostCategoryId\n });\n }\n }\n // failsafe to make absolutely sure to not validate with manual duration, when there is none\n if (validationObject != null) {\n if (validationObject.hasManualDuration && !validationObject.manualDuration) {\n validationObject.manualDuration = 0;\n }\n }\n else {\n exitValidation();\n return;\n }\n if (_this.lastValidation) {\n var last = JSON.parse(_this.lastValidation);\n var current = angular.copy(validationObject);\n delete last.requestId;\n delete current.requestId;\n if (JSON.stringify(last) === JSON.stringify(current)) {\n exitValidation();\n return;\n }\n ;\n }\n if (references.length === 0) {\n exitValidation();\n return;\n }\n _this.lastValidation = JSON.stringify(validationObject);\n if (!doServerValidation) {\n exitValidation();\n return;\n }\n _this.isValidating = true;\n _this.fachleistungService.checkForWarningsAndErrors([validationObject], false).then(function (data) {\n if (JSON.parse(_this.lastValidation).requestId !== validationObject.requestId)\n return;\n _this.isValidating = false;\n if (_this.isGroup || !_this.isNewDocumentation) {\n data.forEach(function (result) {\n for (var key in result.validation) {\n result.validation[key].errors.forEach(function (msg) { _this.addValidation(msg, \"errors\"); });\n result.validation[key].warnings.forEach(function (msg) { _this.addValidation(msg, \"warnings\"); });\n }\n });\n }\n else {\n data.forEach(function (result) {\n _this.carerActivityForm.forEach(function (form) {\n var _a, _b, _c, _d;\n form.warnings = form.warnings.concat((_b = (_a = result.validation[form.carerId]) === null || _a === void 0 ? void 0 : _a.warnings) !== null && _b !== void 0 ? _b : []);\n form.errors = form.errors.concat((_d = (_c = result.validation[form.carerId]) === null || _c === void 0 ? void 0 : _c.errors) !== null && _d !== void 0 ? _d : []);\n });\n });\n }\n _this.removeValidation(_this.lng.translate(21003033, \"Die Leistung konnte nicht validiert werden.\"), \"errors\");\n _this.validationFailCounter = 0;\n _this.loading.validate = false;\n afterSuccessfullValidationAction(saveAnyway);\n }).catch(function () {\n _this.loading.validate = false;\n _this.validation.errors = [];\n _this.validation.warnings = [];\n _this.validation.errors.push(_this.lng.translate(21003033, \"Die Leistung konnte nicht validiert werden.\"));\n _this.isValidating = false;\n if (_this.validationFailCounter < 5)\n setTimeout(function () {\n _this.validateDocumentation(0);\n _this.validationFailCounter++;\n }, 2500);\n }).finally(function () {\n _this.loading.validate = false;\n _this.$qui.scopeApply(_this.$scope);\n });\n }, debounce);\n };\n /**\n * returns true if error\n * */\n FlsDocumentationController.prototype.webClientValidation = function () {\n var _this = this;\n var _a, _b, _c, _d, _e;\n var result = this.hasPrevMonthLock();\n // WebClient specific validation\n result = this.addOrRemoveError(this.lng.translate(20016228, 'Bitte geben Sie einen validen Wert für Pflichtfeld ‘Gültig von’ ein'), (!this.ui.documentationTimeForm.form[0].config.dateFromNotRequired && isNaN(this.timeForm.dateFrom.valueOf()))) || result;\n result = this.addOrRemoveError(this.lng.translate(20016209, 'Mindestens ein Erbringer muss ausgewählt werden.'), (this.selectedCarerList != undefined && this.selectedCarerList.length === 0 && !this.isGroup && this.isNewDocumentation)) || result;\n result = this.addOrRemoveError(this.lng.translate(20016226, 'Markierungen sind Pflicht. Bitte mindestens eine Markierung markieren.'), ((this.selectedMarkings === null || this.selectedMarkings.length === 0) && this.isMarkingRequired)) || result;\n result = this.addOrRemoveError(this.lng.translate(21003034, 'Bitte einen gültigen Zeitraum angeben.'), (!this.timeForm.dateFrom || !this.timeForm.dateTo || (!this.timeForm.isManualDuration && isNaN(this.timeForm.dateFrom.getTime()))\n || (!this.timeForm.isManualDuration && isNaN(this.timeForm.dateFrom.getTime())) || this.timeForm.dateFrom > this.timeForm.dateTo)) || result;\n var noReports = true;\n if (this.reportForm.reports)\n noReports = !this.isReportEntryCommented(this.reportForm.reports, false);\n result = this.addOrRemoveError(this.lng.translate(20016207, \"Der Bericht enthält noch keinen Text.\"), ((!this.allowEmptyReports && noReports) && this.reportForm.templates.length > 0)) || result;\n // if no carer activity forms present, use single form, if thats null as well iterate over an empty array (do nothing)\n var actFormArr = ((_a = this.carerActivityForm) === null || _a === void 0 ? void 0 : _a.length) ? this.carerActivityForm : [this.activityForm];\n var _loop_6 = function (actFormToCheck) {\n actFormToCheck.warnings = [];\n actFormToCheck.errors = [];\n // reset miscontact if disabled\n if (!actFormToCheck.isMiscontactEnabled)\n actFormToCheck.miscontactWvId = QMC.Common.Constants.FLS_NO_MISCONTACT;\n var requiredFields = (_b = actFormToCheck.requiredFields) !== null && _b !== void 0 ? _b : this_3.requiredFields;\n result = this_3.addOrRemoveError(this_3.lng.translate(20016190, 'Standard ist keine gültige Tätigkeit'), !this_3.standardActivityAllowedIfRequired && actFormToCheck.activityWvId === \"bcafd3ce-f25c-410a-a623-75c77eb15d5c\" //WVKonstante GC_STANDARDTAETIGKEIT_MA_EXCLUDE\n ) || result;\n if (requiredFields) {\n if (requiredFields.workingHours.activityWvId)\n result = this_3.addOrRemoveError(this_3.lng.translate(21003030, \"Die Tätigkeit muss ausgewählt werden\"), (!actFormToCheck.activityWvId || actFormToCheck.activityWvId === QMC.Common.Constants.GUID_EMPTY), actFormToCheck) || result;\n if (requiredFields.workingHours.careTypeWvId)\n result = this_3.addOrRemoveError(this_3.lng.translate(21003031, \"Die Betreuungsart muss ausgewählt werden\"), (!actFormToCheck.careTypeWvId || actFormToCheck.careTypeWvId === QMC.Common.Constants.GUID_EMPTY), actFormToCheck) || result;\n if (requiredFields.workingHours.contactTypeWvId)\n result = this_3.addOrRemoveError(this_3.lng.translate(21003032, \"Die Kontaktart muss ausgewählt werden\"), (!actFormToCheck.contactTypeWvId || actFormToCheck.contactTypeWvId === QMC.Common.Constants.GUID_EMPTY), actFormToCheck) || result;\n result = this_3.addOrRemoveError(this_3.lng.translate(20016243, \"Die Fehlkontaktart muss ausgewählt werden\"), actFormToCheck.isMiscontactEnabled && (!actFormToCheck.miscontactWvId || actFormToCheck.miscontactWvId === QMC.Common.Constants.FLS_NO_MISCONTACT), actFormToCheck) || result;\n result = this_3.checkTitle() || result;\n if (requiredFields.drivingCost.drivingCostCategoryId) {\n var error = false;\n if (((_c = this_3.form.drivingCost) === null || _c === void 0 ? void 0 : _c.length) > 0) {\n for (var _i = 0, _a = this_3.form.drivingCost; _i < _a.length; _i++) {\n var cost = _a[_i];\n if ((!cost.drivingCostCategoryId || cost.drivingCostCategoryId === QMC.Common.Constants.GUID_EMPTY) &&\n (this_3.validateEmptyDrivingCost || parseFloat(cost.drivingDistance + '') > 0 || parseFloat(cost.hours + '') > 0 || parseFloat(cost.minutes + '') > 0)) {\n error = true;\n break;\n }\n }\n }\n result = this_3.addOrRemoveError(this_3.lng.translate(21003035, \"Für jeden Fahrtkostensatz muss eine Fahrtkostenart ausgewählt sein.\"), (error)) || result;\n }\n if (!this_3.validateEmptyDrivingCost && ((_d = this_3.form.drivingCost) === null || _d === void 0 ? void 0 : _d.length) > 0) {\n var error = false;\n for (var _b = 0, _c = this_3.form.drivingCost; _b < _c.length; _b++) {\n var cost = _c[_b];\n if ((cost.comment || cost.departure || cost.destination || cost.drivingCostCategoryId || cost.isPrivate || cost.isCarPool)\n && (!(parseFloat(cost.drivingDistance + '') > 0 || parseFloat(cost.hours + '') > 0 || parseFloat(cost.minutes + '') > 0))) {\n error = true;\n break;\n }\n }\n result = this_3.addOrRemoveError(this_3.lng.translate(21003045, \"Mindestens ein Fahrtkostensatz hat keine Angaben über Dauer oder Strecke.\"), (error)) || result;\n }\n }\n if (!this_3.isNewDocumentation || this_3.isGroup) {\n ['warnings', 'errors'].forEach(function (mode) {\n actFormToCheck[mode].forEach(function (entry) {\n _this.addIfNotPresent(_this.validation[mode], entry);\n });\n });\n }\n };\n var this_3 = this;\n for (var _i = 0, actFormArr_1 = actFormArr; _i < actFormArr_1.length; _i++) {\n var actFormToCheck = actFormArr_1[_i];\n _loop_6(actFormToCheck);\n }\n var dcDefect = false;\n if (this.form.drivingCost && ((_e = this.form.drivingCost) === null || _e === void 0 ? void 0 : _e.length) > 0) {\n dcDefect = this.form.drivingCost.some(function (cost) { return cost.isCarPool && (!cost.vehicleId || cost.vehicleId === QMC.Common.Constants.GUID_EMPTY); });\n }\n result = this.addOrRemoveError(this.lng.translate(20016180, \"Mindestens ein Fahrtkostensatz mit Fuhrparkbezug hat kein ausgewähltes Fahrzeug\"), dcDefect) || result;\n result = this.addOrRemoveError(this.lng.translate(20016216, \"Die manuelle Dauer muss größer 0 sein.\"), this.timeForm.isManualDuration && (this.timeForm.isManualTimeRequired && this.timeForm.hours <= 0 && this.timeForm.minutes <= 0)) || result;\n this.udfs.forEach(function (udf) {\n result = _this.addOrRemoveError(_this.lng.translate(20002065, 'In diesem Tab sind nicht alle Pflichtfelder ausgefüllt') + \": \" + udf.caption, !udf.isValid);\n });\n return result;\n };\n FlsDocumentationController.prototype.checkTitle = function () {\n if (!this.requiredFields)\n return;\n if (this.requiredFields.fls.title) {\n return this.addOrRemoveError(this.lng.translate(20016196, \"Es muss ein Berichttitel angegeben werden.\"), (!this.form.title || this.form.title.length === 0));\n }\n return false;\n };\n FlsDocumentationController.prototype.addOrRemoveError = function (error, add, carerActForm) {\n if (carerActForm === void 0) { carerActForm = null; }\n if (add)\n this.addValidation(error, \"errors\", carerActForm);\n else\n this.removeValidation(error, \"errors\", carerActForm);\n return add;\n };\n FlsDocumentationController.prototype.addValidation = function (msg, mode, carerActForm) {\n var _this = this;\n if (carerActForm === void 0) { carerActForm = null; }\n if (!carerActForm || carerActForm[mode] === undefined) {\n this.addIfNotPresent(this.validation[mode], msg);\n }\n else {\n // error is already added globally\n if (this.validation[mode].some(function (x) { return x === msg; }))\n return;\n if (!this.checkPresentForMoreCarers(msg, mode)) {\n this.addIfNotPresent(carerActForm[mode], msg);\n }\n else {\n this.addIfNotPresent(this.validation[mode], msg);\n this.carerActivityForm.forEach(function (carerForm) {\n _this.removeValidation(msg, \"errors\", carerForm);\n });\n }\n }\n };\n FlsDocumentationController.prototype.addIfNotPresent = function (arr, str) {\n if (!arr.some(function (x) { return x === str; }))\n arr.push(str);\n };\n FlsDocumentationController.prototype.checkPresentForMoreCarers = function (msg, mode) {\n var _a;\n return ((_a = this.carerActivityForm) === null || _a === void 0 ? void 0 : _a.filter(function (x) { return x[mode].some(function (y) { return y === msg; }); }).length) > 1;\n };\n FlsDocumentationController.prototype.removeValidation = function (error, mode, carerActForm) {\n var _a, _b;\n if (carerActForm === void 0) { carerActForm = null; }\n var src = ((_a = this.carerActivityForm) === null || _a === void 0 ? void 0 : _a.length) ? carerActForm !== null && carerActForm !== void 0 ? carerActForm : this.validation : this.validation;\n src[mode] = (_b = src[mode]) === null || _b === void 0 ? void 0 : _b.filter(function (x) { return x !== error; });\n };\n /**\n * Strip html tags\n *\n * @private\n * @param {any} html\n * @returns {string}\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.strip = function (html) {\n if (!html)\n return \"\";\n var textEl = document.createElement(\"div\");\n textEl.innerHTML = html;\n return textEl.textContent.trim();\n };\n /**\n * calls the validation that calls the saveDocumentationAction if successful validated\n *\n * @private\n * @param {any} saveAnyway\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.saveDocumentation = function (saveAnyway) {\n $('#validationModal').modal('show');\n this.lastValidation = null;\n this.validateDocumentation(0, saveAnyway, true, this.saveDocumentationAction.bind(this));\n };\n /**\n * Prepare the data to put / post the documentation\n *\n * @private\n * @param {any} saveAnyway\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.saveDocumentationAction = function (saveAnyway) {\n var _this = this;\n if ((this.validation.warnings.length + this.validation.errors.length === 0) && (this.getWarningErrorsCount(true) + this.getWarningErrorsCount(false) === 0) || saveAnyway && !this.loading.validate) {\n setTimeout(function () {\n var form = __assign({}, _this.form);\n if (_this.strip(_this.emptyDescription).length > 0) {\n form.description = _this.emptyDescription;\n }\n form.flsCaseId = _this.flsCaseIds[0];\n if (!form.drivingCost)\n form.drivingCost = [];\n for (var _i = 0, _a = form.drivingCost; _i < _a.length; _i++) {\n var element = _a[_i];\n if (!element.drivingDistance || isNaN(parseFloat(element.drivingDistance + '')))\n element.drivingDistance = 0;\n element.duration = _this.ui.convertHours(element.hours, element.minutes >= 0 ? element.minutes : 0);\n element.drivingCostType = element.isPrivate ? 0 : element.isCarPool ? 1 : 2;\n }\n form.workingHours = {\n abrechenbarkeitId: form.workingHours.abrechenbarkeitId,\n activityWvId: _this.activityForm.activityWvId,\n contactTypeWvId: _this.activityForm.contactTypeWvId,\n careTypeWvId: _this.activityForm.careTypeWvId,\n miscontactWvId: _this.activityForm.isMiscontactEnabled ? _this.activityForm.miscontactWvId : QMC.Common.Constants.FLS_NO_MISCONTACT\n };\n form.isManualDuration = _this.timeForm.isManualDuration;\n form.dateFrom = _this.timeForm.dateFrom;\n form.dateTo = _this.timeForm.dateTo;\n if (_this.isGroup) {\n _this.formatParticipants(form);\n form.participantCount = _this.participantsForm.participantCount;\n }\n form.reports = _this.reportForm.reports;\n //(this.form).isSupportPlanDocu = this.isSupportPlanDocu;\n form.isSupportPlanDocu = _this.isSupportPlanDocu;\n form.isManualDuration = _this.timeForm.isManualDuration;\n if (form.isManualDuration) {\n _this.timeForm.durationInHours = form.durationInHours = _this.hoursMinutesToDecimal(_this.timeForm.hours, _this.timeForm.minutes); // + unary operator, convert the var into number\n }\n form.reportTemplateId = _this.reportForm.templateId;\n form.isReportTemplateFix = _this.isReportTemplateFix;\n //Driving Cost\n _this.formatDrivingCost(form);\n //remove driving cost if not allowed\n if (!_this.permissions.drivingCostModuleAccess)\n delete form.drivingCost;\n //ellaborative Warning\n if (form.warning && _this.elaborativeWarning) {\n form.warningReasons = {};\n for (var item in _this.elaborativeWarningData) {\n if (_this.elaborativeWarningData[item].active)\n form.warningReasons[item] = _this.elaborativeWarningData[item].comment;\n }\n }\n document.body.scrollTop = document.documentElement.scrollTop = 0;\n _this.loading.save = true;\n $('#validationModal').modal('hide');\n if (_this.formState === 'new') {\n _this.postDocumentation(form);\n }\n else {\n _this.putDocumentation(form);\n }\n _this.udfs.forEach(function (x) { var _a; return (_a = x.save) === null || _a === void 0 ? void 0 : _a.call(x, false); });\n });\n }\n };\n /**\n * Updates an existing fls documentation\n *\n * @private\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.putDocumentation = function (form) {\n var _this = this;\n //Special case when a docu with manual duration was opened, manual duration is foridden and time was not changed while editing\n if (this.timeForm.durationInHours !== this.diffHours(form.dateFrom, form.dateTo) && this.timeForm.isManualDuration && !this.timeForm.isManualTimeAllowed) {\n form.isManualDuration = true;\n form.durationInHours = this.timeForm.durationInHours;\n }\n this.fachleistungService.putFlsDocumentation(form.id, form, this.carersIds[0], this.modifiyDescription && this.shouldDisable()).then(function () {\n _this.isSaving = false;\n _this.ui.notify(_this.ui.successNote);\n if ($('.modal-backdrop') !== null)\n $('.modal-backdrop').remove();\n _this.leaveState();\n }).catch(function (e) { return _this.handleSaveActionError(e); });\n };\n FlsDocumentationController.prototype.diffHours = function (dt2, dt1) {\n var diff = (dt2.getTime() - dt1.getTime()) / 1000;\n diff /= (60 * 60);\n return Math.abs(Math.round(diff));\n };\n /**\n * Post an existing fls documentation\n *\n * @private\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.postDocumentation = function (form) {\n var _this = this;\n //Carers\n for (var _i = 0, _a = this.carerActivityForm; _i < _a.length; _i++) {\n var element = _a[_i];\n if (element.errors.length === 0) {\n var addCarer = {\n carerId: element.carerId,\n workingHours: {\n activityWvId: element.activityWvId,\n contactTypeWvId: element.contactTypeWvId,\n careTypeWvId: element.careTypeWvId,\n miscontactWvId: element.isMiscontactEnabled ? element.miscontactWvId : QMC.Common.Constants.FLS_NO_MISCONTACT\n }\n };\n form.carers.push(addCarer);\n }\n }\n //remove duplicates\n form.carers = form.carers.slice().reverse().filter(function (v, i, a) { return a.findIndex(function (t) { return (t.carerId === v.carerId); }) === i; }).reverse();\n // make sure only ´currently selected carers remain\n form.carers = form.carers.filter(function (x) { return _this.selectedCarerList.indexOf(x.carerId) >= 0; });\n // create array of docus, one for each case (new multiple cases)\n var dataArray = [];\n for (var i = 0; i < this.flsCaseIds.length; i++) {\n var data = jQuery.extend(true, {}, form);\n data.flsCaseId = this.flsCaseIds[i];\n data.documentationId = this.documentationIds[i];\n for (var _b = 0, _c = this.cases; _b < _c.length; _b++) {\n var element = _c[_b];\n if (element.objectId === this.flsCaseIds[i]) {\n data.referencedPersonId = element.clientObjectId;\n if (element.isAccountableRuleFix)\n data.workingHours.abrechenbarkeitId = element.defaultAccountableRuleId;\n }\n }\n data.additionalFls = this.additionalFls;\n data.additionalFlsText = this.additionalFls ? this.additionalFlsText : \"\";\n dataArray.push(data);\n }\n this.fachleistungService.postFlsDocumentation(dataArray, this.timeForm.distributeHours, null, dataArray.length > 1 || dataArray[0].carers.length > 1).then(function () {\n _this.isSaving = false;\n _this.ui.notify(_this.ui.successNote);\n _this.continueDialog();\n }).catch(function (e) { return _this.handleSaveActionError(e); });\n };\n /**\n * Format the form particiants, by group members\n *\n * @private\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.formatParticipants = function (form) {\n var _a, _b;\n if (form === void 0) { form = this.form; }\n form.participants = new Array();\n var participants = (_a = this.participantsForm.participantEmployees) !== null && _a !== void 0 ? _a : [];\n if (!this.group.onlyNumberOfParticipants)\n participants = participants.concat((_b = this.participantsForm.participants) !== null && _b !== void 0 ? _b : []);\n if (participants && participants.length > 0) {\n var _loop_7 = function (part) {\n var members = this_4.group.data.members.filter(function (x) { return x.objectId === part; });\n if (members.length > 0) {\n form.participants.push({\n objectId: members[0].objectId,\n isEmployee: members[0].objectType === QMC.Common.Constants.OBJECTTYPE_EMPLOYEE,\n isGroupMember: true\n });\n }\n else {\n form.participants.push({\n objectId: part,\n isEmployee: false,\n isGroupMember: false\n });\n }\n };\n var this_4 = this;\n for (var _i = 0, participants_1 = participants; _i < participants_1.length; _i++) {\n var part = participants_1[_i];\n _loop_7(part);\n }\n }\n if (!this.group.onlyNumberOfParticipants) {\n if (form.participants)\n form.participantCount = form.participants.length;\n else\n form.participantCount = 0;\n }\n };\n FlsDocumentationController.prototype.inArray = function (array, id) {\n if (!array || !id)\n return null;\n for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {\n var element = array_1[_i];\n return (element.objectId === id);\n }\n return false;\n };\n /**\n * Checks if the user should be asked if the docu should be signed right away, and asks him.\n *\n * @private\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.continueDialog = function () {\n $('#afterSaveActionModal').modal('show');\n };\n FlsDocumentationController.prototype.leaveState = function () {\n var _this = this;\n localStorage.removeItem(this.cachingObjectName);\n localStorage.setItem(QMC.Common.LocalStorageConstants.FLS_PREVIOUS_STATE, JSON.stringify({\n state: this.$state.$current.name,\n params: {\n plannedDocumentationId: this.$stateParams.plannedDocumentationId,\n flsCaseIds: this.$stateParams.flsCaseIds\n }\n }));\n if ($('.modal-backdrop') !== null)\n $('.modal-backdrop').remove();\n this.$timeout(function () {\n _this.$state.go(_this.returnState.state, _this.returnState.params);\n });\n };\n FlsDocumentationController.prototype.afterSaveAction = function (action) {\n $('#afterSaveActionModal').modal('hide');\n // saving completed, clear cache\n localStorage.removeItem(this.cachingObjectName);\n switch (action) {\n case 'sign':\n this.$state.go(\"signaturedetail\", { id: this.documentationIds[0] });\n break;\n case 'more':\n this.$state.go('documentationnew', { flsCaseIds: this.flsCaseIds, plannedDocumentationId: undefined }, { reload: true });\n break;\n default:\n this.leaveState();\n break;\n }\n };\n /**\n * get the smart action client list\n *\n * @private\n *\n * @memberOf TagebuchListController\n */\n FlsDocumentationController.prototype.getSmartActionClientAndEmployeeList = function () {\n var _this = this;\n var lngTagClient = this.lng.translate(21002000, 'Klient');\n var lngTagEmployee = this.lng.translate(20000235, 'Mitarbeiter');\n this.clientService.getClientAndEmployeeList('', true).then(function (data) {\n _this.smartClientAndEmployeeList = data.map(function (obj) {\n var textValue = '';\n if (obj.objectType === 140000) {\n textValue = obj.displayTitle + ' (' + lngTagClient + ')';\n }\n else {\n textValue = obj.displayTitle + ' (' + lngTagEmployee + ')';\n }\n return {\n text: textValue,\n value: obj.objectId,\n objType: obj.objectType\n };\n });\n }).finally(function () { return _this.$qui.functionWaiter('createSummernote', _this); });\n };\n FlsDocumentationController.prototype.handleSaveActionError = function (e) {\n if (e.data)\n e = e.data;\n this.saveErrors = [];\n // first try to gather all error msgs in one handy array\n if (typeof e === 'string')\n this.saveErrors.push(e);\n if (typeof e === 'object') {\n if (e.fieldErrors)\n this.saveErrors = this.saveErrors.concat(e.fieldErrors);\n if (e.FieldErrors)\n this.saveErrors = this.saveErrors.concat(e.FieldErrors);\n if (e.fieldError)\n this.saveErrors.push(e.fieldError);\n if (e.FieldError)\n this.saveErrors.push(e.FieldError);\n if (e.globalErrors)\n this.saveErrors = this.saveErrors.concat(e.globalErrors);\n if (e.GlobalErrors)\n this.saveErrors = this.saveErrors.concat(e.GlobalErrors);\n if (e.globalError)\n this.saveErrors.push(e.globalError);\n if (e.GlobalError)\n this.saveErrors.push(e.GlobalError);\n }\n if (Array.isArray(e)) {\n this.saveErrors = this.saveErrors.concat(e);\n }\n $('#saveErrorModal').modal('show');\n };\n FlsDocumentationController.prototype.afterErrorAction = function (action) {\n $('#saveErrorModal').modal('hide');\n // saving completed, clear cache\n switch (action) {\n case 'reloadCacheless':\n localStorage.removeItem(this.cachingObjectName);\n this.$state.reload();\n break;\n case 'reload':\n this.$state.reload();\n break;\n case 'case':\n this.$state.go('case');\n break;\n case 'docu':\n this.$state.go('documentation');\n break;\n default:\n this.leaveState();\n break;\n }\n };\n /////////////// DELETE DOCUMENTATION ///////////////\n /**\n * delete the current fls documentation\n *\n * @private\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.deleteDocumentation = function () {\n var _this = this;\n console.log(\"delete docu\", this.deleteDocu);\n this.fachleistungService.deleteFlsDocumentation(this.deleteDocu.deleteItemId, { deleteReasonText: this.deleteDocu.deleteText, deleteReasonWvId: this.deleteDocu.deleteReason }).then(function () {\n _this.ui.notify(_this.ui.deleteNote);\n _this.leaveState();\n }).catch(function (e) { return _this.handleSaveActionError(e); });\n };\n /**\n * open die delete modal, prepare the data.\n *\n * @private\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.openDeleteDokuModal = function () {\n this.deleteDocu.deleteItemId = this.form.objectId;\n if (this.isReportEntryCommented(this.reportForm.reports)) {\n QMC.Common.Utilities.confirm(this.promptOptiondsDeleteDokuWithText, function (response) {\n if (response) {\n $('#deleteDokuModal').modal('toggle');\n }\n }, '#promptDeleteDokuWithText');\n }\n else {\n $('#deleteDokuModal').modal('toggle');\n }\n };\n /////////////// ADDITIONAL COST ///////////////\n /**\n * add an additional cost\n *\n * @private\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.addAdditionalCost = function () {\n var wv = this.getCurrentGenericWvList();\n var newCost = {\n id: null,\n objectId: null,\n additionalCostTypeId: wv.additionalCostTypeWv.length > 0 ? wv.additionalCostTypeWv[0].objectId : null,\n accountabilityTypeId: wv.additionalCostAccountabilityTypeWv.length > 0 ? wv.additionalCostAccountabilityTypeWv[0].objectId : null,\n amount: 0,\n quantity: 1,\n durration: 0,\n comment: \"\",\n additionalCostType: null,\n accountabilityType: null,\n };\n if (!this.form.additionalCost)\n this.form.additionalCost = [];\n if (wv.additionalCostAccountabilityTypeWv.length >= 2)\n newCost.accountabilityTypeId = wv.additionalCostAccountabilityTypeWv[1].objectId;\n this.form.additionalCost.push(newCost);\n };\n /**\n * remove an additional cost\n *\n * @private\n * @param {(IFlsDocumentationAdditionalCostCreate | IFlsDocumentationAdditionalCostUpdate)} cost\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.deleteAdditionalCost = function (cost) {\n this.form.additionalCost = this.form.additionalCost.filter(function (obj) {\n return obj !== cost;\n });\n };\n FlsDocumentationController.prototype.initDcData = function () {\n var _this = this;\n if (this.isDcInit)\n return;\n this.isDcInit = true;\n this.loading.ressources = true;\n this.fachleistungService.getVehicleList().then(function (dataV) {\n _this.vehiclesMap = dataV.map(function (x) { return ({ value: x.objectId, text: x.displayTitle }); });\n _this.vehiclesMap.unshift({ value: QMC.Common.Constants.GUID_EMPTY, text: '' });\n _this.loading.ressources = false;\n });\n this.clientService.getAllAddresses().then(function (data) {\n _this.drivingAddresses = _this.ui.formatAddresses(data);\n });\n };\n /**\n * add a driving cost\n *\n * @private\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.addDrivingCost = function (cost, isLoadingTheDocumentation) {\n var _this = this;\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n if (!isLoadingTheDocumentation) {\n if (this.loading.wv || !this.requiredFields || !this.requiredFields.drivingCost) {\n setTimeout(function () {\n _this.addDrivingCost(cost, false);\n }, 500);\n return;\n }\n if (!cost) {\n cost = {\n hours: 0,\n minutes: 0,\n duration: 0,\n drivingDistance: 0,\n drivingCostCategoryId: this.getdrivingCostCategoryId(),\n chargingMethodId: \"ecaf4b95-1915-4370-9d9a-b5842bd797cb\",\n departure: \"\",\n destination: \"\",\n vehicle: \"\",\n dateOfArrival: (_a = this.form.dateFrom) !== null && _a !== void 0 ? _a : new Date(),\n dateOfDeparture: (_b = this.form.dateFrom) !== null && _b !== void 0 ? _b : new Date(),\n timeOfArrival: (_c = this.form.dateFrom) !== null && _c !== void 0 ? _c : new Date(),\n timeOfDeparture: (_d = this.form.dateFrom) !== null && _d !== void 0 ? _d : new Date(),\n isPrivate: false,\n isCarPool: false,\n synchronize: true,\n mileageArrival: 0,\n mileageDeparture: 0,\n comment: \"\",\n drivingCostType: 0,\n isBlocked: false,\n isDrivingValidating: false,\n objectId: QMC.Common.Constants.GUID_EMPTY,\n vehicleId: QMC.Common.Constants.GUID_EMPTY,\n watcherList: null\n };\n if (this.flsDocumentationEditorSettings) {\n cost.dateOfArrival.setHours(this.flsDocumentationEditorSettings.defaultHour);\n (_e = cost.dateOfArrival) === null || _e === void 0 ? void 0 : _e.setMinutes(0);\n cost.dateOfDeparture.setHours(this.flsDocumentationEditorSettings.defaultHour);\n cost.dateOfDeparture.setMinutes(0);\n cost.timeOfArrival.setHours(this.flsDocumentationEditorSettings.defaultHour);\n cost.timeOfArrival.setMinutes(0);\n cost.timeOfDeparture.setHours(this.flsDocumentationEditorSettings.defaultHour);\n cost.timeOfDeparture.setMinutes(0);\n }\n }\n else {\n cost.isPrivate = cost.isPrivate || (!cost.vehicleId && !cost.dateOfDeparture);\n cost.isCarPool = cost.isCarPool || (!cost.isPrivate && !cost.dateOfDeparture);\n if (!cost.dateOfArrival)\n cost.dateOfArrival = (_f = this.form.dateFrom) !== null && _f !== void 0 ? _f : new Date();\n if (!cost.dateOfDeparture)\n cost.dateOfDeparture = (_g = this.form.dateFrom) !== null && _g !== void 0 ? _g : new Date();\n if (!cost.timeOfArrival)\n cost.timeOfArrival = (_h = this.form.dateFrom) !== null && _h !== void 0 ? _h : new Date();\n if (!cost.timeOfDeparture)\n cost.timeOfDeparture = (_j = this.form.dateFrom) !== null && _j !== void 0 ? _j : new Date();\n cost.synchronize = true;\n }\n cost.dateOfArrival.setSeconds(0);\n cost.dateOfDeparture.setSeconds(0);\n cost.timeOfArrival.setSeconds(0);\n cost.timeOfDeparture.setSeconds(0);\n if (!this.form.drivingCost) {\n this.form.drivingCost = [];\n }\n else {\n if (this.form.drivingCost.length === 1 && !this.form.drivingCost[0].objectId) {\n //the drivingCost array is filled when creating the forms, documentationDrivingCostsForm, is not a real IFlsDocumentationDrivingCost\n //since we are filling the array with the right one here, remove the one created automatically\n this.form.drivingCost = [];\n }\n }\n var index = this.form.drivingCost.length;\n this.form.drivingCost.push(cost);\n this.addEventValidations(index);\n }\n else {\n for (var i = 0; i < this.form.drivingCost.length; i++) {\n this.addEventValidations(i);\n }\n }\n };\n FlsDocumentationController.prototype.getdrivingCostCategoryId = function () {\n var wv = this.getCurrentGenericWvList();\n if (wv && wv.drivingCostCategoryWv.length > 0) {\n return this.requiredFields.drivingCost.drivingCostCategoryId && wv.drivingCostCategoryWv.length === 1 ? wv.drivingCostCategoryWv[0].objectId : null;\n }\n else {\n var wvCarerList = this.getCarerWvList($('#session').data().personId);\n return this.requiredFields.drivingCost.drivingCostCategoryId && wvCarerList.drivingCostCategoryWv && wvCarerList.drivingCostCategoryWv.length === 1 ? wvCarerList.drivingCostCategoryWv[0].objectId : null;\n }\n };\n FlsDocumentationController.prototype.addEventValidations = function (index) {\n var _this = this;\n var isDcTabActive = function () {\n return $('#drivingCostTab').hasClass('active');\n };\n this.$timeout(function () {\n _this.createTypeAhead();\n _this.form.drivingCost[index].watcherList = [];\n _this.form.drivingCost[index].watcherList.push(_this.$scope.$watch('vm.form.drivingCost[' + index + '].isPrivate', function (newValue, oldValue) {\n if (!_this.loading.save && isDcTabActive && newValue && newValue !== oldValue) {\n _this.form.drivingCost[index].isCarPool = false;\n _this.initCostArrDep(_this.form.drivingCost[index]);\n _this.$qui.scopeApply(_this.$scope);\n }\n }));\n _this.form.drivingCost[index].watcherList.push(_this.$scope.$watch('vm.form.drivingCost[' + index + '].isCarPool', function (newValue, oldValue) {\n if (!_this.loading.save && isDcTabActive && newValue && newValue !== oldValue) {\n _this.form.drivingCost[index].isPrivate = false;\n _this.initCostArrDep(_this.form.drivingCost[index]);\n _this.$qui.scopeApply(_this.$scope);\n _this.validateDocumentation(0);\n }\n }));\n _this.form.drivingCost[index].watcherList.push(_this.$scope.$watch('vm.form.drivingCost[' + index + '].drivingDistance', function (newValue, oldValue) {\n if (!_this.loading.save && isDcTabActive && newValue !== oldValue && _this.form.drivingCost[index]) {\n _this.updateMileage(_this.form.drivingCost[index], 'distance');\n _this.webClientValidation();\n }\n }));\n _this.form.drivingCost[index].watcherList.push(_this.$scope.$watch('vm.form.drivingCost[' + index + '].mileageDeparture', function (newValue, oldValue) {\n if (!_this.loading.save && isDcTabActive && newValue !== oldValue && _this.form.drivingCost[index])\n _this.updateMileage(_this.form.drivingCost[index], 'departure');\n }));\n _this.form.drivingCost[index].watcherList.push(_this.$scope.$watch('vm.form.drivingCost[' + index + '].mileageArrival', function (newValue, oldValue) {\n if (!_this.loading.save && isDcTabActive && newValue !== oldValue && _this.form.drivingCost[index])\n _this.updateMileage(_this.form.drivingCost[index], 'arrival');\n }));\n _this.form.drivingCost[index].watcherList.push(_this.$scope.$watch('vm.form.drivingCost[' + index + '].timeOfArrival', function (newValue, oldValue) {\n if (!_this.loading.save && isDcTabActive && newValue !== oldValue && _this.form.drivingCost[index])\n _this.validateDrivingTime(_this.form.drivingCost[index], 'timeOfArrival');\n }));\n _this.form.drivingCost[index].watcherList.push(_this.$scope.$watch('vm.form.drivingCost[' + index + '].timeOfDeparture', function (newValue, oldValue) {\n if (!_this.loading.save && isDcTabActive && newValue !== oldValue && _this.form.drivingCost[index])\n _this.validateDrivingTime(_this.form.drivingCost[index], 'timeOfDeparture');\n }));\n _this.form.drivingCost[index].watcherList.push(_this.$scope.$watch('vm.form.drivingCost[' + index + '].dateOfArrival', function (newValue, oldValue) {\n if (!_this.loading.save && isDcTabActive && newValue !== oldValue && _this.form.drivingCost[index])\n _this.validateDrivingTime(_this.form.drivingCost[index], 'arrival');\n }));\n _this.form.drivingCost[index].watcherList.push(_this.$scope.$watch('vm.form.drivingCost[' + index + '].dateOfDeparture', function (newValue, oldValue) {\n if (!_this.loading.save && isDcTabActive && newValue !== oldValue && _this.form.drivingCost[index])\n _this.validateDrivingTime(_this.form.drivingCost[index], 'departure');\n }));\n _this.form.drivingCost[index].watcherList.push(_this.$scope.$watch('vm.form.drivingCost[' + index + '].hours', function (newValue, oldValue) {\n if (!_this.loading.save && newValue !== oldValue && _this.form.drivingCost[index]) {\n _this.form.drivingCost[index].hours = _this.cleanInputNumber(_this.form.drivingCost[index].hours);\n _this.webClientValidation();\n _this.validateDrivingTime(_this.form.drivingCost[index], 'costHoursMinutes');\n }\n }));\n _this.form.drivingCost[index].watcherList.push(_this.$scope.$watch('vm.form.drivingCost[' + index + '].minutes', function (newValue, oldValue) {\n if (!_this.loading.save && newValue !== oldValue && _this.form.drivingCost[index]) {\n var minutes = _this.cleanInputNumber(_this.form.drivingCost[index].minutes);\n var hours = _this.cleanInputNumber(_this.form.drivingCost[index].hours);\n while (minutes >= 60) {\n minutes = minutes - 60;\n hours = hours + 1;\n }\n _this.form.drivingCost[index].minutes = minutes;\n _this.form.drivingCost[index].hours = hours;\n _this.webClientValidation();\n _this.validateDrivingTime(_this.form.drivingCost[index], 'costHoursMinutes');\n }\n }));\n _this.form.drivingCost[index].watcherList.push(_this.$scope.$watch('vm.form.drivingCost[' + index + '].synchronize', function (newValue, oldValue) {\n var _a;\n if (!_this.loading.save && isDcTabActive && newValue !== oldValue && ((_a = _this.form.drivingCost[index]) === null || _a === void 0 ? void 0 : _a.synchronize)) {\n if (!_this.form.drivingCost[index].mileageDeparture)\n _this.form.drivingCost[index].mileageDeparture = 0;\n if (!_this.form.drivingCost[index].mileageArrival)\n _this.form.drivingCost[index].mileageArrival = 0;\n if (!_this.form.drivingCost[index].drivingDistance)\n _this.form.drivingCost[index].drivingDistance = 0;\n _this.form.drivingCost[index].drivingDistance = _this.form.drivingCost[index].mileageArrival - _this.form.drivingCost[index].mileageDeparture;\n _this.validateDrivingTime(_this.form.drivingCost[index], 'departure');\n }\n }));\n _this.form.drivingCost[index].watcherList.push(_this.$scope.$watch('vm.form.drivingCost[' + index + '].drivingCostCategoryId', function (newValue, oldValue) {\n if (!_this.loading.save && newValue !== oldValue && _this.form.drivingCost[index])\n _this.webClientValidation();\n }));\n });\n };\n /**\n * remove a driving cost\n *\n * @private\n * @param {(IFlsDocumentationAdditionalCostCreate | IFlsDocumentationAdditionalCostUpdate)} cost\n *\n * @memberof FlsDocumentationController\n */\n FlsDocumentationController.prototype.deleteDrivingCost = function (cost) {\n if (cost.watcherList)\n for (var _i = 0, _a = cost.watcherList; _i < _a.length; _i++) {\n var element = _a[_i];\n element();\n }\n this.form.drivingCost = this.form.drivingCost.filter(function (obj) {\n return obj !== cost;\n });\n this.webClientValidation();\n };\n FlsDocumentationController.prototype.getMileage = function (cost, index) {\n if (cost.isPrivate || !cost.vehicleId || cost.vehicleId === QMC.Common.Constants.GUID_EMPTY)\n return;\n var sum = 0;\n var first = true;\n for (var i = 0; i < index; i++) {\n if (this.form.drivingCost[i].vehicleId === cost.vehicleId) {\n first = false;\n sum = sum + parseInt(this.form.drivingCost[i].mileageArrival + \"\");\n }\n }\n if (!first) {\n cost.mileageDeparture = sum;\n cost.mileageArrival = sum + parseInt(cost.drivingDistance + \"\");\n return;\n }\n this.fachleistungService.getMileage(cost.vehicleId).then(function (mileage) {\n console.log(mileage);\n cost.mileageDeparture = mileage;\n cost.mileageArrival = parseInt(mileage + \"\") + parseInt(cost.drivingDistance + \"\");\n });\n };\n FlsDocumentationController.prototype.updateMileage = function (cost, origin) {\n var _this = this;\n if (!cost.mileageDeparture)\n cost.mileageDeparture = 0;\n if (!cost.mileageArrival)\n cost.mileageArrival = 0;\n if (!cost.drivingDistance)\n cost.drivingDistance = 0;\n if ((!cost.synchronize && cost.drivingDistance === 0) || (!cost.isCarPool && !cost.isPrivate))\n return;\n switch (origin) {\n case 'arrival':\n var current_1 = parseFloat(cost.mileageArrival.toString());\n setTimeout(function () {\n if (current_1 !== parseFloat(cost.mileageArrival.toString()))\n return;\n if (parseFloat(cost.mileageArrival.toString()) < parseFloat(cost.mileageDeparture.toString()))\n cost.mileageArrival = parseInt(cost.mileageDeparture.toString());\n var calcDist = parseFloat(cost.mileageArrival.toString()) - parseFloat(cost.mileageDeparture.toString());\n if (calcDist !== Math.round(cost.drivingDistance))\n cost.drivingDistance = calcDist;\n _this.$qui.scopeApply(_this.$scope);\n }, 500);\n break;\n case 'departure':\n cost.mileageArrival = Math.round(parseFloat(cost.mileageDeparture.toString()) + parseFloat(cost.drivingDistance.toString()));\n break;\n case 'distance':\n cost.mileageArrival = Math.round(parseFloat(cost.mileageDeparture.toString()) + parseFloat(cost.drivingDistance.toString()));\n break;\n }\n this.$qui.scopeApply(this.$scope);\n };\n FlsDocumentationController.prototype.validateDrivingTime = function (cost, origin) {\n var _a, _b;\n if (cost.isDrivingValidating || this.lastDrivingCost === JSON.stringify(cost) || this.isSaving)\n return;\n if (!$('#drivingCostTab').hasClass('active') || origin === 'costHoursMinutes')\n return; //only redo validation if the tab is active or base data is changed\n cost.isDrivingValidating = true;\n var init = (!cost.dateOfDeparture || !cost.dateOfArrival || !cost.timeOfDeparture || !cost.timeOfArrival) && (cost.isPrivate || cost.isCarPool);\n if (!cost.dateOfDeparture)\n cost.dateOfDeparture = this.$qui.createDateFromString(angular.copy(this.timeForm.dateFrom));\n if (!cost.dateOfArrival)\n cost.dateOfArrival = this.$qui.createDateFromString(angular.copy(this.timeForm.dateTo));\n if (!cost.timeOfDeparture)\n cost.timeOfDeparture = this.$qui.createDateFromString(angular.copy(this.timeForm.dateFrom));\n if (!cost.timeOfArrival)\n cost.timeOfArrival = this.$qui.createDateFromString(angular.copy(this.timeForm.dateTo));\n // make sure all values are consistent and complete\n cost.timeOfArrival = this.$qui.addTimeToDate(cost.dateOfArrival, cost.timeOfArrival);\n cost.timeOfDeparture = this.$qui.addTimeToDate(cost.dateOfDeparture, cost.timeOfDeparture);\n cost.dateOfArrival = angular.copy(cost.timeOfArrival);\n cost.dateOfDeparture = angular.copy(cost.timeOfDeparture);\n if (init) {\n var hourMinutes = this.getHoursMinutesForDrivingCost(cost);\n cost.hours = hourMinutes[0];\n cost.minutes = hourMinutes[1];\n }\n var hours = 0;\n var minutes = 0;\n switch (origin) {\n case 'costHoursMinutes':\n if ((cost.hours === 0 && cost.hours === null) || (cost.minutes === 0 && cost.minutes === null)) {\n cost.dateOfDeparture = this.$qui.createDateFromString(angular.copy(this.timeForm.dateFrom));\n cost.dateOfArrival = this.$qui.createDateFromString(angular.copy(this.timeForm.dateTo));\n cost.timeOfDeparture = this.$qui.createDateFromString(angular.copy(this.timeForm.dateFrom));\n cost.timeOfArrival = this.$qui.createDateFromString(angular.copy(this.timeForm.dateTo));\n break;\n }\n hours = cost.hours;\n minutes = (cost.minutes === 0 || cost.minutes === null) ? 0 : cost.minutes;\n var arrivalTime = this.$qui.createDateFromString(cost.dateOfDeparture);\n arrivalTime.setHours(arrivalTime.getHours() + hours);\n if (!cost.synchronize || (cost.synchronize && !(cost.isCarPool || cost.isPrivate))) {\n }\n else {\n if (this.$qui.createDateFromString(arrivalTime.getTime() + minutes * 60000) !== cost.timeOfArrival) {\n var newDateTime = this.$qui.addTimeToDate(cost.dateOfDeparture, cost.timeOfDeparture);\n newDateTime = moment(newDateTime).add(hours, 'hours').add(minutes, 'minutes').toDate();\n cost.dateOfArrival = newDateTime;\n cost.timeOfArrival = newDateTime;\n }\n }\n break;\n case 'arrival':\n case 'timeOfArrival':\n if (cost.timeOfArrival < cost.timeOfDeparture) {\n cost.timeOfDeparture = angular.copy(cost.timeOfArrival);\n cost.dateOfDeparture = angular.copy(cost.dateOfArrival);\n }\n _a = this.getHoursMinutesForDrivingCost(cost), hours = _a[0], minutes = _a[1];\n if (!cost.synchronize || (cost.synchronize && !(cost.isCarPool || cost.isPrivate))) {\n }\n else {\n cost.hours = hours;\n cost.minutes = minutes;\n }\n break;\n case 'departure':\n case 'timeOfDeparture':\n if (cost.timeOfArrival < cost.timeOfDeparture) {\n cost.timeOfArrival = angular.copy(cost.timeOfDeparture);\n cost.dateOfArrival = angular.copy(cost.dateOfDeparture);\n }\n _b = this.getHoursMinutesForDrivingCost(cost), hours = _b[0], minutes = _b[1];\n if (!cost.synchronize || (cost.synchronize && !(cost.isCarPool || cost.isPrivate))) {\n }\n else {\n cost.hours = hours;\n cost.minutes = minutes;\n }\n break;\n }\n cost.isDrivingValidating = false;\n this.lastDrivingCost = JSON.stringify(cost);\n this.$qui.scopeApply(this.$scope);\n };\n FlsDocumentationController.prototype.getHoursMinutesForDrivingCost = function (cost) {\n var _a;\n var hours = 0;\n var minutes = 0;\n _a = this.$qui.convertDec((cost.timeOfArrival.getTime() - cost.timeOfDeparture.getTime()) / 36e5), hours = _a[0], minutes = _a[1];\n if (minutes === 60) {\n minutes = 0;\n hours = hours + 1;\n }\n return [hours, minutes];\n };\n FlsDocumentationController.prototype.initCostArrDep = function (cost) {\n if (!isNaN(this.timeForm.dateFrom.valueOf())) {\n if (!cost.dateOfDeparture)\n cost.dateOfDeparture = angular.copy(this.timeForm.dateFrom);\n }\n this.validateDrivingTime(cost, 'costHoursMinutes');\n this.updateMileage(cost, 'departure');\n };\n FlsDocumentationController.prototype.formatDrivingCost = function (form) {\n if (form === void 0) { form = this.form; }\n for (var _i = 0, _a = form.drivingCost; _i < _a.length; _i++) {\n var element = _a[_i];\n if (!element.isPrivate)\n delete element.vehicle;\n if (!element.isCarPool)\n delete element.vehicleId;\n if (!element.isPrivate && !element.isCarPool) {\n delete element.dateOfDeparture;\n delete element.dateOfArrival;\n delete element.timeOfArrival;\n delete element.timeOfDeparture;\n }\n else {\n element.timeOfArrival.setSeconds(0, 0);\n element.timeOfDeparture.setSeconds(0, 0);\n element.dateOfArrival.setSeconds(0, 0);\n element.dateOfDeparture.setSeconds(0, 0);\n }\n delete element.isCarPool;\n delete element.isPrivate;\n delete element.synchronize;\n element.duration = this.hoursMinutesToDecimal(element.hours, element.minutes);\n }\n };\n FlsDocumentationController.prototype.openElaborativeWarningModal = function () {\n if (this.elaborativeWarning) {\n $('#elaborativeWarningModal').modal('show');\n }\n };\n FlsDocumentationController.prototype.createElobaritveWarningObject = function () {\n var result = {};\n for (var item in this.elaborativeWarningData) {\n if (this.elaborativeWarningData[item].active)\n result[item] = this.elaborativeWarningData[item].comment;\n }\n return result;\n };\n FlsDocumentationController.prototype.getInternalElobaritveWarningObject = function (data) {\n var result = {};\n for (var id in data) {\n result[id] = { active: true, comment: data[id] };\n }\n return result;\n };\n FlsDocumentationController = __decorate([\n QMC.Controller('QMC.Fachleistung', 'FlsDocumentationController'),\n QMC.Inject('$location', 'FachleistungService', '$qui', '$stateParams', '$scope', '$state', '$timeout', 'KlientService', 'UserService', 'QmcLanguageService', 'QmcPermissionService', 'QmcMarkItemService', 'QmcUdfService')\n ], FlsDocumentationController);\n return FlsDocumentationController;\n }());\n })(Fachleistung = QMC.Fachleistung || (QMC.Fachleistung = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Fachleistung;\n (function (Fachleistung) {\n var FlsDocumentationEndingConfirmationController = /** @class */ (function () {\n function FlsDocumentationEndingConfirmationController(flsService, $scope, $qui, userService, permissionService, lng) {\n this.flsService = flsService;\n this.$scope = $scope;\n this.$qui = $qui;\n this.userService = userService;\n this.permissionService = permissionService;\n this.lng = lng;\n this.isLoading = false;\n this.setDate = null;\n this.cases = [];\n this.init();\n $qui.init($qui.getSectionColor(\"/fls/documentation\"), function () {\n //$qui.init($qui.getSectionColor($location.path()), () => {\n $qui.anonAvatar();\n $qui.bindEvents();\n $qui.navToggle();\n });\n this.promptOptions = {\n title: \"Fachleistungen\",\n yesNo: true,\n icon: \"qm-icon-clock\",\n text: this.lng.translate(20016137, 'Erfassungsende wirklich setzen? Änderungen werden bis zu dem angegebenen Datum nicht mehr möglich sein.')\n };\n }\n FlsDocumentationEndingConfirmationController.prototype.init = function () {\n var _this = this;\n this.isLoading = true;\n this.cases = [];\n this.userService.getUserSettings(['FACHLSDOKU.ERFASSUNGENDE.AKTIV'], false).then(function (data) {\n _this.permissionService.getPermissionsByObjectTypes([230017]).then(function (dataPerm) {\n _this.newPermission = data[0].value.toLowerCase() === \"true\" && dataPerm[0].new;\n _this.modifyPermission = data[0].value.toLowerCase() === \"true\" && dataPerm[0].modify;\n _this.deletePermission = data[0].value.toLowerCase() === \"true\" && dataPerm[0].delete;\n _this.viewPermission = data[0].value.toLowerCase() === \"true\" && dataPerm[0].view;\n if (_this.viewPermission)\n _this.flsService.getDocEndingConfirmList().then(function (data) {\n // Format lock date for date input fields\n for (var i = 0; i < data.length; i++) {\n if (data[i].lockDate !== null) {\n data[i].lockDate = _this.$qui.createDateFromString(data[i].lockDate.toString());\n data[i].dbLockDate = _this.$qui.createDateFromString(data[i].lockDate.toString());\n }\n else {\n data[i].lockDate = null;\n data[i].dbLockDate = null;\n }\n }\n _this.cases = data;\n _this.isLoading = false;\n });\n });\n });\n };\n FlsDocumentationEndingConfirmationController.prototype.setLockDates = function () {\n for (var i = 0; i < this.cases.length; i++) {\n if (this.cases[i].dbLockDate !== null) {\n if (this.cases[i].dbLockDate < this.setDate) {\n this.cases[i].lockDate = this.setDate;\n }\n else {\n this.cases[i].lockDate = this.cases[i].dbLockDate;\n }\n }\n else {\n this.cases[i].lockDate = this.setDate;\n }\n }\n };\n FlsDocumentationEndingConfirmationController.prototype.saveLockDates = function () {\n var _this = this;\n QMC.Common.Utilities.confirm(this.promptOptions, function (data) {\n if (data) {\n for (var _i = 0, _a = _this.cases; _i < _a.length; _i++) {\n var cCase = _a[_i];\n if (!cCase.lockDate)\n continue;\n if (!cCase.id && cCase.id !== QMC.Common.Constants.GUID_EMPTY) {\n _this.postLockDate(cCase);\n }\n else {\n _this.putLockDate(cCase);\n }\n }\n setTimeout(function () {\n _this.init();\n }, 500);\n }\n });\n };\n FlsDocumentationEndingConfirmationController.prototype.postLockDate = function (flsCase) {\n this.flsService.postDocEndingConfirm(flsCase);\n };\n FlsDocumentationEndingConfirmationController.prototype.putLockDate = function (flsCase) {\n this.flsService.putDocEndingConfirm(flsCase.id, flsCase);\n };\n FlsDocumentationEndingConfirmationController = __decorate([\n QMC.Controller('QMC.Fachleistung', 'FlsDocumentationEndingConfirmationController'),\n QMC.Inject('FachleistungService', '$scope', '$qui', 'UserService', 'QmcPermissionService', 'QmcLanguageService')\n ], FlsDocumentationEndingConfirmationController);\n return FlsDocumentationEndingConfirmationController;\n }());\n })(Fachleistung = QMC.Fachleistung || (QMC.Fachleistung = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Fachleistung;\n (function (Fachleistung) {\n var FlsPlanedRawListController = /** @class */ (function () {\n function FlsPlanedRawListController($location, flsService, $qui, $scope, $stateParams, $state, userService) {\n var _this = this;\n this.$location = $location;\n this.flsService = flsService;\n this.$qui = $qui;\n this.$scope = $scope;\n this.$state = $state;\n this.userService = userService;\n this.ui = new Fachleistung.UserInterface();\n this.checkedCasesCount = 0;\n this.loading = true;\n this.createRawTable = null;\n this.createPlanedTable = null;\n this.contingentTargetDate = new Date();\n $qui.init($qui.getSectionColor(\"/fls/documentation\"), function () {\n $qui.anonAvatar();\n $qui.bindEvents();\n $qui.navToggle();\n });\n localStorage.setItem(QMC.Common.LocalStorageConstants.FLS_PREVIOUS_STATE, JSON.stringify({\n state: this.$state.$current.name,\n params: {}\n }));\n if (document.getElementById(\"permissions\").getAttribute(\"fachleistung\").toLocaleLowerCase() !== \"true\") {\n console.log(\"No rights to see module fachleistung\");\n this.forbidden = true;\n return;\n }\n // Get days to the past to get pled/raw docus for\n this.userService.getUserSettings([\"FLS.PLANEDRAWDAYS\"]).then(function (data) {\n var days = parseInt(data[0].value);\n if (isNaN(days) || days === null || days === undefined)\n days = QMC.Common.UserSettingConstantsAndDefaults.PLANEDRAWDAYS;\n _this.userService.getUserSettings([\"FLS.PLANEDDAYSFUTURE\"]).then(function (data) {\n var daysFuture = parseInt(data[0].value);\n if (isNaN(daysFuture) || daysFuture === null || daysFuture === undefined)\n daysFuture = QMC.Common.UserSettingConstantsAndDefaults.PLANEDDAYSFUTURE;\n _this.GetPlanedAndRawDocumentations(days, daysFuture);\n });\n });\n this.cards = false;\n if (QMC.Common.Constants.IS_MOBILE)\n this.cards = true;\n }\n /////////////// DISPLAY LOGIC ///////////////\n FlsPlanedRawListController.prototype.writeFlsObjectToLocalStorage = function (data) {\n console.log(\"storage\", data);\n var flsObject = data;\n var cacheObject = {\n dateFrom: flsObject.dateFrom,\n timeFrom: flsObject.dateFrom,\n dateTo: flsObject.dateTo,\n timeTo: flsObject.dateTo,\n flsCaseId: flsObject.flsCaseId,\n description: flsObject.description\n };\n localStorage.setItem('flsObject', JSON.stringify(cacheObject));\n window.location.hash = \"#/fls/documentation/new/\" + cacheObject.flsCaseId + \"?plannedDocumentationId=\" + data.objectId;\n };\n /////////////// SERVICE FUNCTIONS ///////////////\n /**\n * GetPlanedDocumentations\n * @description Gets all planed but not docuemented documentations in the past x days.\n */\n FlsPlanedRawListController.prototype.GetPlanedAndRawDocumentations = function (days, daysFuture) {\n var _this = this;\n this.flsService.getPlannedDocumentations(days, daysFuture).then(function (data) {\n _this.ui.planedDocuTable.data = data;\n if (_this.createPlanedTable)\n _this.createPlanedTable();\n });\n this.flsService.getRawDocumentations(days).then(function (data) {\n _this.ui.rawDocuTable.data = data;\n if (_this.createRawTable)\n _this.createRawTable();\n });\n this.loading = false;\n };\n FlsPlanedRawListController = __decorate([\n QMC.Controller('QMC.Fachleistung', 'FlsPlanedRawListController'),\n QMC.Inject('$location', 'FachleistungService', '$qui', '$scope', '$stateParams', '$state', 'UserService')\n ], FlsPlanedRawListController);\n return FlsPlanedRawListController;\n }());\n })(Fachleistung = QMC.Fachleistung || (QMC.Fachleistung = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Fachleistung;\n (function (Fachleistung) {\n var FlsWeekplannerListController = /** @class */ (function () {\n function FlsWeekplannerListController($location, fachleistungsService, $qui, terminService, aznService, $scope, $state, $timeout, lng, permissionService, userService, $stateParams) {\n var _this = this;\n this.fachleistungsService = fachleistungsService;\n this.$qui = $qui;\n this.terminService = terminService;\n this.aznService = aznService;\n this.$scope = $scope;\n this.$state = $state;\n this.$timeout = $timeout;\n this.lng = lng;\n this.userService = userService;\n this.$stateParams = $stateParams;\n this.typeFlsDocumentation = 'FlsDocumentation';\n this.typeAppointment = 'Appointment';\n this.typeAzn = 'AZN';\n this.dragMode = this.typeFlsDocumentation;\n this.formState = 'new';\n this.validation = {\n errors: [],\n warnings: [],\n type: this.typeFlsDocumentation\n };\n // loading\n this.wvLoading = false;\n this.copyLoading = false;\n this.calendarLoading = false;\n this.validationLoading = false;\n this.caseLoading = false;\n // calender data\n this.caseFilterObject = QMC.Common.UserSettingConstantsAndDefaults.FLS_CASE_FILTER_DEFAULTS;\n this.caseFilter = '';\n this.aznList = [];\n this.eventList = [];\n this.ui = new Fachleistung.UserInterface();\n this.colorFlsDocumentation = '#333333';\n this.colorPlannedFlsDocumentation = '#3F51B5';\n this.colorAzn = '#FE9700';\n this.colorPlannedAzn = '#876c4c';\n this.colorAppointment = '#4CAF50';\n // permissions\n this.permissions = {\n fls: { new: false, modify: false, delete: false },\n azn: { new: false, modify: false, delete: false }\n };\n // Case pagination\n this.currentPage = 0;\n this.pageSize = 7;\n this.numberOfPages = 0;\n // AZNTypes pagination\n this.aznCurrentPage = 0;\n this.aznPageSize = 10;\n this.aznNumberOfPages = 0;\n this.showWeekends = false;\n this.showHoliday = false;\n this.showVacation = true;\n this.showPublicHoliday = true;\n this.eventLength = 60;\n this.showUnplannableCases = false;\n this.slotDuration = 30;\n this.getFutureCases = false;\n this.getPastCases = false;\n this.selectedPerson = sessionStorage.getItem('weekplanner:lastSelectedPerson') ? sessionStorage.getItem('weekplanner:lastSelectedPerson') : $(\"#session\").data().personId;\n this.loadingAllCases = false;\n this.formFirstInit = true;\n this.lastFlsValidationRequestId = '';\n this.firstLoad = true;\n $qui.init($qui.getSectionColor($location.path()), function () {\n $qui.anonAvatar();\n $qui.bindEvents();\n setTimeout(_this.events, 300);\n });\n if (document.getElementById(\"permissions\").getAttribute(\"fachleistung\").toLocaleLowerCase() !== \"true\") {\n console.log(\"No rights to see module fachleistung\");\n this.forbidden = true;\n return;\n }\n this.showWeekends = localStorage.getItem('weekplanner:showWeeks') === 'true';\n var keys = [];\n keys.push(\"FLS.WEEKPLANNER.SHOWHOLIDAY\");\n keys.push(\"FLS.WEEKPLANNER_INCLUDE_FUTURE_CASES\");\n keys.push(\"FLS.WEEKPLANNER_INCLUDE_PAST_CASES\");\n keys.push(\"FLS.WEEKPLANNER.DEFAULTEVENTLENGTH\");\n keys.push('CALENDAR.SLOTDURATION');\n keys.push('WEEKPLANNER.SHOWUNPLANNABLECASES');\n keys.push(\"FLS.WEEKPLANNER.SHOWVACATION\");\n keys.push(\"FLS.WEEKPLANNER.SHOWPUBLICHOLIDAY\");\n keys.push(QMC.Common.UserSettingConstantsAndDefaults.FLS_CASE_FILTER_KEY);\n this.userService.getUserSettings(keys).then(function (data) {\n var _a, _b, _c;\n _this.showHoliday = data[0].value === \"\" ? _this.showHoliday : data[0].value.toLowerCase() === \"true\";\n _this.getFutureCases = data[1].value === \"\" ? _this.getFutureCases : data[1].value.toLowerCase() === \"true\";\n _this.getPastCases = data[2].value === \"\" ? _this.getPastCases : data[2].value.toLowerCase() === \"true\";\n _this.eventLength = data[3].value === \"\" ? _this.eventLength : parseInt(data[3].value);\n _this.slotDuration = data[4].value && data[4].value.length > 0 ? parseInt(data[4].value) : _this.slotDuration;\n _this.showUnplannableCases = ((_a = data[5].value) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'true';\n _this.showVacation = data[6].value === \"\" ? _this.showVacation : ((_b = data[6].value) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === 'true';\n _this.showPublicHoliday = data[7].value === \"\" ? _this.showPublicHoliday : ((_c = data[7].value) === null || _c === void 0 ? void 0 : _c.toLowerCase()) === 'true';\n _this.caseFilterObject = data[8].value === '' ? _this.caseFilterObject : JSON.parse(data[8].value);\n _this.getWv();\n });\n this.promptOptions = {\n title: \"Wochenplanung\",\n yesNo: true,\n icon: \"\",\n text: this.lng.translate(20000290, 'Wollen Sie den Eintrag wirklich löschen?')\n };\n this.fachleistungsService.getAllPossibleCarer().then(function (data) {\n data.sort(function (a, b) { return (a.displayTitle.toLocaleLowerCase() > b.displayTitle.toLocaleLowerCase()) ? 1 : ((b.displayTitle.toLocaleLowerCase() > a.displayTitle.toLocaleLowerCase()) ? -1 : 0); });\n _this.possibleCarer = data;\n _this.possibleCarerMap = data.map(function (x) { return ({ text: _this.$qui.createPersonDisplay(x.lastName, x.firstName, x.shortCaption, x.personNumber), value: x.objectId }); });\n _this.$scope.$watch('vm.selectedPerson', function (newVal, oldVal) {\n if (newVal !== oldVal) {\n _this.copyCandidates = [];\n _this.resetCalendar();\n _this.getCases();\n sessionStorage.setItem('weekplanner:lastSelectedPerson', _this.selectedPerson);\n }\n });\n _this.$scope.$watch('vm.form.carerId', function (newVal, oldVal) {\n if (newVal !== oldVal) {\n _this.selectedPerson = newVal;\n _this.getAllCases();\n }\n });\n if (_this.possibleCarer.filter(function (x) { return x.objectId === sessionStorage.getItem('weekplanner:lastSelectedPerson'); }).length === 0)\n sessionStorage.setItem('weekplanner:lastSelectedPerson', _this.selectedPerson);\n if (!_this.possibleCarer.some(function (x) { return x.objectId === _this.selectedPerson; }))\n _this.selectedPerson = $(\"#session\").data().personId;\n _this.getAllCases();\n _this.getCases();\n _this.$scope.$watch('vm.caseFilterObject.onlyCurrentCases', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n _this.toggleShowCurrentOnly();\n });\n });\n //ObjectType: FlsZeitplanungSoll\n permissionService.getPermissionsByObjectType(230007).then(function (data) {\n _this.permissions.fls.delete = data[0].delete && data[0].moduleAccess;\n _this.permissions.fls.new = data[0].new && data[0].moduleAccess;\n _this.permissions.fls.modify = data[0].modify && data[0].moduleAccess;\n // check only for view permission\n if (data[0].view && data[0].moduleAccess) {\n _this.dragMode = _this.typeFlsDocumentation;\n }\n else {\n _this.dragMode = \"NoPlanningAllowed\";\n }\n _this.setNewButton();\n });\n permissionService.getPermissionsByObjectType(411010).then(function (data) {\n _this.permissions.azn.delete = data[0].new;\n _this.permissions.azn.new = data[0].new;\n _this.permissions.azn.modify = data[0].new;\n // set the dragMode to typeAZN only when the dragMode is not arleady set to typeFlsDocumentation, check only for view permission\n if (data[0].view && data[0].moduleAccess) {\n _this.dragMode = _this.dragMode === _this.typeFlsDocumentation ? _this.typeFlsDocumentation : _this.typeAzn;\n }\n else {\n _this.dragMode = _this.dragMode === _this.typeFlsDocumentation ? _this.typeFlsDocumentation : \"NoPlanningAllowed\";\n }\n _this.setNewButton();\n });\n this.getWv();\n this.getAznWv();\n }\n /******************* Misc *******************/\n FlsWeekplannerListController.prototype.getCaseList = function () {\n var _a;\n //this.$timeout(this.filterEvents);\n return (_a = this.cases) !== null && _a !== void 0 ? _a : [];\n };\n FlsWeekplannerListController.prototype.getAllCases = function () {\n var _this = this;\n var request = JSON.stringify({\n carerId: this.selectedPerson\n });\n if (this.lastAllCaseRequest === request)\n return;\n this.lastAllCaseRequest = request;\n this.allCases = [];\n this.allCasesMap = [];\n this.loadingAllCases = true;\n this.fachleistungsService.getCasesList(QMC.Common.Constants.GUID_EMPTY, false, this.selectedPerson).then(function (data) {\n if (!_this.getFutureCases) {\n data = data.filter(function (item) { return moment(item.dateFrom).toDate() <= new Date(); });\n }\n if (!_this.getPastCases) {\n data = data.filter(function (item) { return !item.dateTo || moment(item.dateTo).toDate() >= new Date(); });\n }\n _this.allCases = data;\n data.forEach(function (x) { return x.displayTitle = _this.$qui.createCaseDisplayObject(x).text; });\n _this.allCasesMap = data.map(function (x) { return _this.$qui.createCaseDisplayObject(x); });\n _this.loadingAllCases = false;\n });\n };\n FlsWeekplannerListController.prototype.handleFilterChange = function () {\n if (this.caseFilter.length > 0) {\n this.currentPage = 0;\n }\n this.numberOfPages = Math.ceil(this.getCaseList().length / this.pageSize);\n };\n FlsWeekplannerListController.prototype.events = function () {\n var _this = this;\n if (!this.$scope)\n return;\n this.handleFilterChange();\n this.$scope.$watch('vm.caseFilter', function (newVal, oldVal) {\n if (newVal !== oldVal)\n _this.filterEvents();\n });\n this.$scope.$watch('vm.showWeekends', function (newVal, oldVal) {\n localStorage.setItem('weekplanner:showWeeks', String(newVal));\n if (newVal !== oldVal)\n _this.$state.reload();\n });\n setTimeout(function () {\n _this.filterEvents();\n _this.buildPlanner();\n }, 500);\n this.$scope.$watch('vm.aznForm', function (newVal, oldVal) {\n if (_this.dragMode !== _this.typeAzn || JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n _this.checkPlausibilityAzn();\n }, true);\n this.$scope.$watch('vm.isAznFormValid', function (newVal, oldVal) {\n if (_this.dragMode !== _this.typeFlsDocumentation || JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n _this.checkPlausibilityAzn();\n });\n this.$scope.$watch('vm.flsForm', function (newVal, oldVal) {\n if (_this.dragMode !== _this.typeFlsDocumentation || JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n _this.checkPlausibilityFls();\n }, true);\n this.$scope.$watch('vm.isFlsFormValid', function (newVal, oldVal) {\n if (_this.dragMode !== _this.typeFlsDocumentation || JSON.stringify(newVal) === JSON.stringify(oldVal))\n return;\n _this.checkPlausibilityFls();\n });\n this.$scope.$watch('vm.dragMode', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n if (newVal === _this.typeAzn)\n _this.checkPlausibilityAzn();\n else if (newVal === _this.typeFlsDocumentation)\n _this.checkPlausibilityFls();\n });\n };\n FlsWeekplannerListController.prototype.setNewButton = function () {\n var _this = this;\n if (this.dragMode === this.typeFlsDocumentation) {\n document.getElementsByName('newModalButton').forEach(function (x) { return x.style.visibility = _this.permissions.fls.new ? 'unset' : 'hidden'; });\n }\n else if (this.dragMode === this.typeAzn) {\n document.getElementsByName('newModalButton').forEach(function (x) { return x.style.visibility = _this.permissions.azn.new ? 'unset' : 'hidden'; });\n }\n else {\n document.getElementsByName('newModalButton').forEach(function (x) { return x.style.visibility = 'hidden'; });\n }\n };\n FlsWeekplannerListController.prototype.getCases = function () {\n return __awaiter(this, void 0, void 0, function () {\n var request;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n request = JSON.stringify({\n carerFilter: this.caseFilterObject.carerTypeFilterId,\n carerId: this.selectedPerson,\n onlyCurrent: this.caseFilterObject.onlyCurrentCases,\n showUnplannableCases: this.showUnplannableCases\n });\n if (this.lastCaseRequest === request || !this.caseFilterObject.carerTypeFilterId || this.caseFilterObject.carerTypeFilterId === QMC.Common.Constants.GUID_EMPTY)\n return [2 /*return*/];\n this.lastCaseRequest = request;\n this.caseLoading = true;\n this.cases = [];\n this.casesMap = [];\n return [4 /*yield*/, this.userService.setUserSettings({ settings: [{ key: QMC.Common.UserSettingConstantsAndDefaults.FLS_CASE_FILTER_KEY, value: JSON.stringify(this.caseFilterObject) }] })];\n case 1:\n _a.sent();\n this.fachleistungsService.getCasesList(this.caseFilterObject.carerTypeFilterId, this.caseFilterObject.onlyCurrentCases, this.selectedPerson, this.showUnplannableCases).then(function (data) {\n if (!_this.getFutureCases) {\n data = data.filter(function (item) { return moment(item.dateFrom).toDate() <= moment().endOf('day').toDate(); });\n }\n if (!_this.getPastCases) {\n data = data.filter(function (item) { return !item.dateTo || moment(item.dateTo).toDate() >= moment().startOf('day').toDate(); });\n }\n _this.casesMap = _this.cases.map(function (x) { return _this.$qui.createCaseDisplayObject(x); });\n data.forEach(function (x) { return x.displayTitle = _this.$qui.createCaseDisplayObject(x).text; });\n _this.cases = data;\n setTimeout(function () {\n _this.$qui.anonAvatar();\n _this.$qui.scopeApply(_this.$scope);\n }, 500);\n _this.caseLoading = false;\n _this.events();\n });\n return [2 /*return*/];\n }\n });\n });\n };\n FlsWeekplannerListController.prototype.getWv = function () {\n var _this = this;\n this.fachleistungsService.getFlsCaseWv().then(function (data) {\n _this.flsCaseWv = data;\n // Set carer type filter from local storage, or if not present, from the first wv item\n if (!_this.flsCaseWv.carerTypeWv.some(function (x) { return x.objectId === _this.caseFilterObject.carerTypeFilterId; }))\n _this.caseFilterObject.carerTypeFilterId = _this.flsCaseWv.carerTypeWv[0].id;\n _this.getCases();\n });\n };\n FlsWeekplannerListController.prototype.getEvents = function (view) {\n var _this = this;\n if (this.dontGetDates) {\n this.dontGetDates = false;\n return;\n }\n if (view) {\n localStorage.setItem('calendarView', view.name);\n }\n if (this.firstLoad && this.$stateParams.startDay) {\n this.firstLoad = false;\n $('#weekplannerCalendar').fullCalendar('gotoDate', this.$stateParams.startDay);\n }\n this.$state.go('.', {\n startDay: this.$qui.createDateFromString($('#weekplannerCalendar').fullCalendar('getView').start).toISOString(),\n view: $('#weekplannerCalendar').fullCalendar('getView').name\n });\n // calendar is not yet updated, that would mess up everything thats going to follow => bail out\n if (this.$qui.createDateFromString($('#weekplannerCalendar').fullCalendar('getView').start).toISOString() !== moment(this.$state.params.startDay).toISOString()) {\n setTimeout(function () { _this.getEvents(view); }, 50);\n return;\n }\n var localEvents = [];\n this.eventList = [];\n this.setViewDates();\n $('#weekplannerCalendar').fullCalendar('removeEvents');\n $(\"#filterCheck\").attr(\"disabled\", \"true\");\n $(\".squaredThree label\").css(\"opacity\", \"0.4\").css(\"cursor\", \"not-allowed\");\n this.copyCandidates = [];\n this.deleteItems = [];\n this.calendarLoading = true;\n this.getWeekPlanning().then(function (weekData) {\n _this.addToEventlist(weekData, localEvents);\n _this.getAppointmentList().then(function (appointmentData) {\n _this.addToEventlist(appointmentData, localEvents);\n _this.getArbeitszeitnachweis().then(function (arbeitszeitnachweisData) {\n _this.addToEventlist(arbeitszeitnachweisData, localEvents);\n _this.terminService.getHolidaysSpecific($('#weekplannerCalendar').fullCalendar('getDate').year(), _this.showPublicHoliday, _this.showVacation).then(function (holidays) {\n _this.addToEventlist(_this.createHolidayCalendarEntry(holidays), localEvents);\n _this.eventList = localEvents;\n _this.renderCalendar();\n _this.calendarLoading = false;\n var calView = $('#weekplannerCalendar').fullCalendar('getView');\n var start = calView.intervalStart.startOf('day');\n var end = calView.intervalEnd.subtract(1, 'days').endOf('day');\n if (!_this.showWeekends)\n end = end.subtract(2, 'days');\n var allDay = false;\n for (var _i = 0, _a = _this.eventList; _i < _a.length; _i++) {\n var event_1 = _a[_i];\n if (event_1.allDay && (start.toString().slice(0, 24) === event_1.start.toString().slice(0, 24) || moment(event_1.start).isBetween(start, end) || (moment(start).isSameOrBefore(event_1.end) && moment(event_1.start).isSameOrBefore(end)))) {\n allDay = true;\n break;\n }\n }\n _this.dontGetDates = true;\n $('#weekplannerCalendar').fullCalendar('option', 'allDaySlot', allDay);\n });\n });\n });\n });\n };\n FlsWeekplannerListController.prototype.createHolidayCalendarEntry = function (holidays) {\n for (var _i = 0, holidays_3 = holidays; _i < holidays_3.length; _i++) {\n var holiday = holidays_3[_i];\n holiday.allDay = true;\n holiday.title = holiday.caption;\n holiday.editable = false;\n holiday.color = \"#DBDBDB\";\n holiday.start = moment(holiday.dateFrom);\n holiday.end = moment(holiday.dateTo);\n }\n return holidays;\n };\n FlsWeekplannerListController.prototype.getAppointmentList = function () {\n var _this = this;\n var appointmentTypes = [];\n appointmentTypes.push(401000);\n if (this.showHoliday) {\n appointmentTypes.push(411003); //holidays\n appointmentTypes.push(411004); //sick days\n }\n // send appointment without userId, those always getting for current.\n return this.terminService.getAppointmentList(this.selectedPerson, this.viewDateFrom, this.viewDateTo, appointmentTypes).then(function (data) {\n var dataArray = [];\n var setColor = true;\n for (var _i = 0, data_5 = data; _i < data_5.length; _i++) {\n var element = data_5[_i];\n var tempEvent = _this.ui.createCalendarEvent(element);\n tempEvent.editable = false;\n if (setColor) {\n setColor = false;\n $(\"#appointmentColor\").css(\"color\", tempEvent.color);\n }\n dataArray.push(tempEvent);\n }\n return dataArray;\n });\n };\n FlsWeekplannerListController.prototype.openNewForm = function () {\n var _a;\n if (this.formFirstInit) {\n this.formFirstInit = false;\n return;\n }\n ;\n this.aznForm = {\n dateFrom: moment().startOf('hour').toDate(),\n dateTo: moment().startOf('hour').add(this.eventLength, 'm').toDate(),\n typeId: QMC.Common.Constants.GUID_EMPTY,\n referencePersonId: ((_a = this.possibleCarer) === null || _a === void 0 ? void 0 : _a.some(function (x) { return x.objectId === $(\"#session\").data().personId; })) ? $(\"#session\").data().personId : QMC.Common.Constants.GUID_EMPTY\n };\n this.setFlsForm(undefined, undefined, this.selectedPerson);\n this.formState = 'new';\n $('#weekplanner-entry').modal('show');\n };\n FlsWeekplannerListController.prototype.postForm = function () {\n switch (this.dragMode) {\n case this.typeAzn:\n this.saveNewAznPlanning();\n break;\n case this.typeFlsDocumentation:\n this.saveNewFlsPlanning();\n break;\n default:\n console.warn(\"create not supported for dragMode \" + this.dragMode);\n }\n };\n FlsWeekplannerListController.prototype.putForm = function () {\n switch (this.dragMode) {\n case this.typeAzn:\n this.updateAznPlanning();\n break;\n case this.typeFlsDocumentation:\n this.updateFlsPlanning();\n break;\n default:\n console.warn(\"update not supported for dragMode \" + this.dragMode);\n }\n };\n FlsWeekplannerListController.prototype.deleteForm = function () {\n switch (this.dragMode) {\n case this.typeAzn:\n this.deleteAznPlanning();\n break;\n case this.typeFlsDocumentation:\n this.deleteFlsPlanning();\n break;\n default:\n console.warn(\"delete not supported for dragMode \" + this.dragMode);\n }\n };\n FlsWeekplannerListController.prototype.createDocumentation = function (mode) {\n if (mode === this.typeFlsDocumentation) {\n var cacheObject = {\n dateFrom: this.flsForm.dateFrom,\n timeFrom: this.flsForm.dateFrom,\n dateTo: this.flsForm.dateTo,\n timeTo: this.flsForm.dateTo,\n flsCaseId: this.flsForm.flsCaseId,\n description: this.flsForm.description,\n activity: this.flsForm.activityTypeId,\n careType: this.flsForm.careTypeId,\n contactType: this.flsForm.contactTypeId,\n miscontact: this.flsForm.miscontactId,\n carerId: this.flsForm.carerId\n };\n localStorage.setItem('flsObject', JSON.stringify(cacheObject));\n this.$state.go('documentationnew', { plannedDocumentationId: this.flsForm.objectId, flsCaseIds: this.flsForm.flsCaseId }, { reload: true });\n }\n else if (mode === this.typeAzn) {\n this.goToAznDetail(this.aznForm.objectId);\n }\n };\n /******************* FLS *******************/\n FlsWeekplannerListController.prototype.toggleShowCurrentOnly = function () {\n this.getCases();\n this.getAllCases();\n };\n FlsWeekplannerListController.prototype.saveUnplannableSetting = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.userService.setUserSettings({ settings: [{ key: 'WEEKPLANNER.SHOWUNPLANNABLECASES', value: String(this.showUnplannableCases) }] })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n FlsWeekplannerListController.prototype.checkPlausibilityFls = function (afterValidationAction, form) {\n var _this = this;\n this.$timeout(function () {\n var _a;\n form = form !== null && form !== void 0 ? form : _this.flsForm;\n if (!form)\n return;\n _this.validation = {\n errors: [],\n warnings: [],\n type: _this.typeFlsDocumentation\n };\n if (!_this.isFlsFormValid) {\n _this.validation.errors.push(_this.lng.translate(20002061, 'Es wurden nicht alle Pflichtfelder ausgefüllt.'));\n }\n if (!_this.flsForm.miscontactId || _this.flsForm.miscontactId === QMC.Common.Constants.GUID_EMPTY) {\n _this.validation.errors.push(_this.lng.translate(20016243, \"Die Fehlkontaktart muss ausgewählt werden\"));\n }\n if ((_a = _this.validation.errors) === null || _a === void 0 ? void 0 : _a.length) {\n if (afterValidationAction)\n afterValidationAction();\n _this.validationLoading = false;\n return;\n }\n // get current case\n var currentCase = _this.allCases.filter(function (x) { return form.flsCaseId === x.objectId; })[0];\n if (!currentCase) {\n _this.validation.errors = [_this.lng.translate(20000328, 'Die Validierung konnte nicht durchgeführt werden!')];\n if (afterValidationAction)\n afterValidationAction();\n _this.validationLoading = false;\n return;\n }\n _this.validationLoading = true;\n var validationObject = {\n dateFrom: form.dateFrom,\n dateTo: !form.dateTo ? moment(form.dateFrom).add(_this.eventLength, 'minutes').toDate() : form.dateTo,\n hasManualDuration: false,\n documentationId: !form.objectId ? QMC.Common.Constants.GUID_EMPTY : form.documentationId,\n references: [{ caseId: currentCase.objectId, referenceId: currentCase.clientObjectId, accountabilityId: currentCase.defaultAccountableRuleId }],\n carer: [{\n activityTypeId: form.activityTypeId,\n contactTypeId: form.contactTypeId,\n careTypeId: form.careTypeId,\n miscontactId: form.miscontactId,\n carerId: form.carerId\n }],\n manualDuration: 0,\n requestId: _this.$qui.generateGuid(),\n ignoreConfigRoundInterval: false\n };\n var requestId = '_' + Math.random().toString(36).substring(2, 10);\n _this.lastFlsValidationRequestId = requestId;\n _this.fachleistungsService.checkForWarningsAndErrors([validationObject], true).then(function (data) {\n if (_this.lastFlsValidationRequestId !== requestId)\n return;\n data.forEach(function (result) {\n for (var key in result.validation) {\n _this.validation.errors = result.validation[key].errors;\n _this.validation.warnings = result.validation[key].warnings;\n }\n });\n if (afterValidationAction)\n afterValidationAction();\n _this.validationLoading = false;\n _this.$qui.scopeApply(_this.$scope);\n })\n .catch(function (e) {\n _this.validation.errors = [_this.lng.translate(20000328, 'Die Validierung konnte nicht durchgeführt werden!')];\n _this.handleSaveActionError(e);\n _this.validationLoading = false;\n });\n });\n };\n FlsWeekplannerListController.prototype.saveNewFlsPlanning = function () {\n var _this = this;\n this.calendarLoading = true;\n $(\"#weekplanner-entry\").modal(\"hide\");\n this.fachleistungsService.postWeekPlanningPlannedDoc([this.flsForm]).then(function () {\n _this.$qui.notify(_this.$qui.successNote);\n _this.resetCalendar();\n _this.calendarLoading = false;\n }).catch(function (e) { return _this.handleSaveActionError(e); });\n };\n FlsWeekplannerListController.prototype.updateFlsPlanning = function (form) {\n var _this = this;\n form = form !== null && form !== void 0 ? form : this.flsForm;\n this.calendarLoading = true;\n $('#weekplanner-entry').modal('hide');\n this.fachleistungsService.putWeekPlanningPlannedDoc(form.documentationId, form).then(function () {\n _this.$qui.notify(_this.$qui.successNote);\n _this.resetCalendar();\n _this.calendarLoading = false;\n }).catch(function (e) { return _this.handleSaveActionError(e); });\n };\n FlsWeekplannerListController.prototype.changeFlsEvent = function (id, dateFrom, dateTo, revertFunc) {\n var _this = this;\n var _a, _b;\n this.dragMode = 'none';\n var origPlanning = this.flsWeekPlanning.filter(function (x) { return x.objectId === id; })[0];\n if (!(origPlanning === null || origPlanning === void 0 ? void 0 : origPlanning.flsCaseId))\n return;\n var currentCase = this.cases.filter(function (x) { return origPlanning.flsCaseId === x.objectId; })[0];\n if (!currentCase) {\n this.$qui.notify({\n message: this.lng.translate(20002066, \"Der gewählte Fall steht nicht mehr zur Verfügung, die Planung kann nicht editiert oder dokumentiert werden!\"),\n title: this.lng.translate(20002015, \"Fehler\"),\n icon: \"qm-icon-delete\",\n status: \"warning\",\n timer: 6000\n });\n revertFunc();\n return;\n }\n ;\n this.calendarLoading = true;\n var form = __assign(__assign({}, origPlanning), { documentationId: id, serviceTypeId: currentCase.serviceTypeId, dateFrom: dateFrom, dateTo: dateTo, description: (_a = origPlanning.description) !== null && _a !== void 0 ? _a : '', flsCaseId: (_b = origPlanning.flsCaseId) !== null && _b !== void 0 ? _b : QMC.Common.Constants.GUID_EMPTY });\n this.setFlsForm(form);\n this.checkPlausibilityFls(function () {\n if (!_this.validation.errors.length && !_this.validation.warnings.length) {\n _this.updateFlsPlanning(form);\n }\n else {\n _this.formState = 'edit';\n _this.dragMode = _this.typeFlsDocumentation;\n $('#weekplanner-entry').modal('show');\n revertFunc();\n _this.calendarLoading = false;\n }\n _this.dragMode = _this.typeFlsDocumentation;\n }, form);\n };\n FlsWeekplannerListController.prototype.getWeekPlanning = function () {\n var _this = this;\n return this.fachleistungsService.getWeekPlanningList(this.selectedPerson, this.viewDateFrom, this.viewDateTo).then(function (data) {\n _this.addFlsToCopyCandidates(data);\n _this.addFlsToDeleteItems(data);\n _this.flsWeekPlanning = data;\n var dataArray = [];\n for (var _i = 0, data_6 = data; _i < data_6.length; _i++) {\n var element = data_6[_i];\n var color = _this.colorFlsDocumentation;\n var isDraggable = false;\n if (element.isPlannedDocumentation) {\n color = _this.colorPlannedFlsDocumentation;\n isDraggable = _this.permissions.fls.modify;\n }\n dataArray.push({\n id: element.objectId,\n title: element.reportTitle,\n objectId: element.flsCaseId,\n start: _this.$qui.createDateFromString(element.dateFrom),\n end: _this.$qui.createDateFromString(element.dateTo),\n color: color,\n editable: isDraggable,\n type: _this.typeFlsDocumentation,\n description: element.description\n });\n }\n _this.buildPlanner();\n _this.renderCalendar();\n return dataArray;\n });\n };\n FlsWeekplannerListController.prototype.deleteFlsPlanning = function () {\n var _this = this;\n QMC.Common.Utilities.confirm(this.promptOptions, function (data) {\n $('#weekplanner-entry').modal('hide');\n if (data)\n _this.fachleistungsService.deleteWeekPlanningPlannedDoc(_this.flsForm.objectId).then(function () {\n _this.$qui.notify(_this.$qui.deleteNote);\n _this.resetCalendar();\n });\n });\n };\n FlsWeekplannerListController.prototype.addFlsToDeleteItems = function (items) {\n var _this = this;\n if (this.cases.length < 1) {\n setTimeout(function () {\n _this.addFlsToDeleteItems(items);\n }, 1000);\n }\n for (var _i = 0, items_3 = items; _i < items_3.length; _i++) {\n var item = items_3[_i];\n var currentCase = void 0;\n for (var _a = 0, _b = this.cases; _a < _b.length; _a++) {\n var cuCase = _b[_a];\n if (cuCase.objectId == item.flsCaseId)\n currentCase = cuCase;\n }\n if (!currentCase || !item.isPlannedDocumentation)\n continue;\n this.deleteItems.push({\n dateFrom: this.$qui.createDateFromString(item.dateFrom),\n dateTo: this.$qui.createDateFromString(item.dateTo),\n id: item.id,\n isChecked: false,\n objectId: item.objectId,\n title: item.reportTitle,\n type: 230000,\n flsCase: currentCase,\n aznImputeId: undefined,\n aznTypeId: undefined\n });\n }\n };\n FlsWeekplannerListController.prototype.addFlsToCopyCandidates = function (items) {\n var _this = this;\n if (this.cases.length < 1) {\n setTimeout(function () {\n _this.addFlsToCopyCandidates(items);\n }, 1000);\n }\n var _loop_8 = function (item) {\n if (this_5.copyCandidates.some(function (x) { return x.objectId === item.objectId; }))\n return \"continue\"; //If the candidate already exists, skip it.\n this_5.copyCandidates.push({\n dateFrom: this_5.$qui.createDateFromString(item.dateFrom),\n dateTo: this_5.$qui.createDateFromString(item.dateTo),\n id: item.id,\n isChecked: false,\n objectId: item.objectId,\n title: item.reportTitle,\n type: 230000,\n flsCase: null,\n flsCaseId: item.flsCaseId,\n aznImputeId: undefined,\n aznTypeId: undefined,\n activityForm: {\n activityTypeId: item.activityTypeId,\n careTypeId: item.careTypeId,\n contactTypeId: item.contactTypeId,\n miscontactId: item.miscontactId\n }\n });\n };\n var this_5 = this;\n for (var _i = 0, items_4 = items; _i < items_4.length; _i++) {\n var item = items_4[_i];\n _loop_8(item);\n }\n };\n /******************* AZN *******************/\n FlsWeekplannerListController.prototype.checkPlausibilityAzn = function (afterValidationAction) {\n var _this = this;\n this.$timeout(function () {\n var _a;\n if (!_this.aznForm)\n return;\n _this.aznForm.referencePersonId = (_a = _this.aznForm.referencePersonId) !== null && _a !== void 0 ? _a : _this.selectedPerson;\n _this.validation = {\n errors: [],\n warnings: [],\n type: _this.typeAzn\n };\n if (!_this.isAznFormValid) {\n _this.validation.errors.push(_this.lng.translate(20002061, 'Es wurden nicht alle Pflichtfelder ausgefüllt.'));\n if (afterValidationAction)\n afterValidationAction();\n _this.validationLoading = false;\n return;\n }\n if (moment(_this.aznForm.dateTo).isBefore(_this.aznForm.dateFrom)) {\n _this.validation.errors = [_this.lng.translate(20002004, 'Das Startdatum ist größer als das Enddatum')];\n return;\n }\n _this.validationLoading = true;\n _this.aznService.checkForWarningsAndErrors({\n idObjectAznw: _this.aznForm.objectId,\n dateFrom: moment(_this.aznForm.dateFrom).format(),\n dateTo: moment(_this.aznForm.dateTo).format(),\n performingPersonObjIdList: [_this.aznForm.referencePersonId],\n isPlanned: true,\n activityId: QMC.Common.Constants.GUID_EMPTY,\n imputeWvId: QMC.Common.Constants.GUID_EMPTY,\n instituteId: QMC.Common.Constants.GUID_EMPTY\n })\n .then(function (data) {\n _this.validation.errors = data.errors;\n _this.validation.warnings = data.warnings;\n if (afterValidationAction)\n afterValidationAction();\n _this.$qui.scopeApply(_this.$scope);\n })\n .catch(function (e) {\n _this.validation.errors = [_this.lng.translate(20000328, 'Die Validierung konnte nicht durchgeführt werden!')];\n })\n .finally(function () { return _this.validationLoading = false; });\n });\n };\n FlsWeekplannerListController.prototype.saveNewAznPlanning = function () {\n var _this = this;\n this.calendarLoading = true;\n $(\"#weekplanner-entry\").modal(\"hide\");\n this.aznService.postAznWeekPlanning(this.aznForm).then(function (e) {\n _this.$qui.notify(_this.$qui.successNote);\n _this.resetCalendar();\n _this.calendarLoading = false;\n }).catch(function (e) { return _this.handleSaveActionError(e); });\n };\n FlsWeekplannerListController.prototype.updateAznPlanning = function () {\n var _this = this;\n this.calendarLoading = true;\n $('#weekplanner-entry').modal('hide');\n this.aznService.putAznWeekPlanning(this.aznForm.objectId, this.aznForm).then(function (e) {\n _this.$qui.notify(_this.$qui.successNote);\n _this.resetCalendar();\n _this.calendarLoading = false;\n }).catch(function (e) { return _this.handleSaveActionError(e); });\n };\n FlsWeekplannerListController.prototype.changeAznEvent = function (id, dateFrom, dateTo, revertFunc) {\n var _this = this;\n var azn = this.aznList.filter(function (x) { return x.objectId === id; })[0];\n if (!azn)\n return;\n this.calendarLoading = true;\n azn.dateFrom = dateFrom;\n azn.dateTo = dateTo;\n this.aznForm = azn;\n this.checkPlausibilityAzn(function () {\n if (!_this.validation.errors.length && !_this.validation.warnings.length) {\n _this.updateAznPlanning();\n }\n else {\n _this.formState = 'edit';\n _this.dragMode = _this.typeAzn;\n $('#weekplanner-entry').modal('show');\n revertFunc();\n _this.calendarLoading = false;\n }\n });\n this.$qui.scopeApply(this.$scope);\n };\n FlsWeekplannerListController.prototype.openAznPlanning = function (data) {\n this.aznForm = {\n dateFrom: data.start.toDate(),\n dateTo: data.end.toDate(),\n typeId: data.typeId,\n objectId: data.id,\n referencePersonId: this.selectedPerson\n };\n this.dragMode = this.typeAzn;\n $('#weekplanner-entry').modal('show');\n this.formState = 'edit';\n this.$qui.scopeApply(this.$scope);\n };\n FlsWeekplannerListController.prototype.deleteAznPlanning = function () {\n var _this = this;\n QMC.Common.Utilities.confirm(this.promptOptions, function (data) {\n $('#weekplanner-entry').modal('hide');\n if (data)\n _this.aznService.deleteAznWeekPlanning(_this.aznForm.objectId).then(function () {\n _this.$qui.notify(_this.$qui.deleteNote);\n _this.resetCalendar();\n });\n });\n };\n FlsWeekplannerListController.prototype.getArbeitszeitnachweis = function () {\n var _this = this;\n return this.aznService.getAznWeekPlanning(this.viewDateFrom, this.viewDateTo, true, true, this.selectedPerson).then(function (data) {\n _this.addAznToCopyCandidates(data);\n _this.addAznToDeleteItems(data);\n var dataArray = [];\n _this.aznList = data;\n for (var _i = 0, data_7 = data; _i < data_7.length; _i++) {\n var azn = data_7[_i];\n dataArray.push({\n id: azn.objectId,\n title: azn.type,\n objectId: azn.objectId,\n start: _this.$qui.createDateFromString(azn.dateFrom),\n end: _this.$qui.createDateFromString(azn.dateTo),\n color: azn.isPlanned ? _this.colorPlannedAzn : _this.colorAzn,\n editable: azn.isPlanned && azn.permissions.modify,\n deletable: azn.isPlanned && azn.permissions.delete,\n type: _this.typeAzn,\n isPlanned: azn.isPlanned,\n typeId: azn.typeId\n });\n }\n return dataArray;\n });\n };\n FlsWeekplannerListController.prototype.addAznToCopyCandidates = function (items) {\n for (var _i = 0, items_5 = items; _i < items_5.length; _i++) {\n var item = items_5[_i];\n this.copyCandidates.push({\n dateFrom: new Date(item.dateFrom),\n dateTo: new Date(item.dateTo),\n id: item.id,\n isChecked: false,\n objectId: item.objectId,\n title: item.type,\n type: 425000,\n flsCase: undefined,\n aznTypeId: item.typeId,\n aznImputeId: item.imputeId,\n flsCaseId: undefined,\n activityForm: {\n //Currently empty since planning activity is not supported for AZN at time of writing\n }\n });\n }\n };\n FlsWeekplannerListController.prototype.addAznToDeleteItems = function (items) {\n for (var _i = 0, items_6 = items; _i < items_6.length; _i++) {\n var item = items_6[_i];\n if (!item.isPlanned)\n continue;\n this.deleteItems.push({\n dateFrom: new Date(item.dateFrom),\n dateTo: new Date(item.dateTo),\n id: item.id,\n isChecked: false,\n objectId: item.objectId,\n title: item.type,\n type: 425000,\n flsCase: undefined,\n aznTypeId: item.typeId,\n aznImputeId: item.imputeId\n });\n }\n };\n FlsWeekplannerListController.prototype.getAznWv = function () {\n var _this = this;\n this.wvLoading = true;\n this.aznService.getArbeitzeitnachweisWv(undefined).then(function (data) {\n _this.aznTypesMap = _this.$qui.select(data.types, { value: 'objectId', text: 'name' });\n _this.aznCurrentPage = 0;\n _this.aznNumberOfPages = Math.ceil(_this.aznTypesMap.length / _this.aznPageSize);\n });\n };\n FlsWeekplannerListController.prototype.goToAznDetail = function (id) {\n localStorage.setItem(QMC.Common.LocalStorageConstants.AZN_PREVIOUS_STATE, JSON.stringify({\n state: this.$state.$current.name,\n params: {\n startDay: this.$qui.createDateFromString($('#weekplannerCalendar').fullCalendar('getView').start),\n view: $('#weekplannerCalendar').fullCalendar('getView').name\n }\n }));\n this.$state.go('azndetail', { id: id }, { reload: true });\n };\n FlsWeekplannerListController.prototype.toggleDragMode = function () {\n if (this.dragMode == this.typeFlsDocumentation) {\n this.dragMode = this.typeAzn;\n this.validation.type = this.typeAzn;\n this.setNewButton();\n }\n else if (this.dragMode == this.typeAzn) {\n this.dragMode = this.typeFlsDocumentation;\n this.validation.type = this.typeFlsDocumentation;\n this.setNewButton();\n }\n };\n FlsWeekplannerListController.prototype.handleSaveActionError = function (e) {\n this.saveErrors = [];\n // first try to gather all error msgs in one handy array\n if (typeof e === 'string')\n this.saveErrors.push(e);\n if (typeof e === 'object') {\n if (e.fieldErrors)\n this.saveErrors = this.saveErrors.concat(e.fieldErrors);\n if (e.FieldErrors)\n this.saveErrors = this.saveErrors.concat(e.FieldErrors);\n if (e.fieldError)\n this.saveErrors.push(e.fieldError);\n if (e.FieldError)\n this.saveErrors.push(e.FieldError);\n if (e.globalErrors)\n this.saveErrors = this.saveErrors.concat(e.globalErrors);\n if (e.GlobalErrors)\n this.saveErrors = this.saveErrors.concat(e.GlobalErrors);\n if (e.globalError)\n this.saveErrors.push(e.globalError);\n if (e.GlobalError)\n this.saveErrors.push(e.GlobalError);\n }\n if (Array.isArray(e)) {\n this.saveErrors = this.saveErrors.concat(e);\n }\n $('#saveErrorModal').modal('show');\n };\n FlsWeekplannerListController.prototype.leaveState = function () {\n var _this = this;\n if ($('.modal-backdrop') !== null)\n $('.modal-backdrop').remove();\n this.$timeout(function () {\n _this.$state.reload();\n });\n };\n FlsWeekplannerListController.prototype.afterErrorAction = function () {\n $('#saveErrorModal').modal('hide');\n // saving completed, clear cache\n this.$state.reload();\n };\n FlsWeekplannerListController.prototype.isDraggable = function (id) {\n return this.cases.some(function (x) { return x.objectId === id; });\n };\n FlsWeekplannerListController.prototype.filterEvents = function () {\n setTimeout(function () {\n $('.fc-event.dummy').each(function (i) {\n $(this).data('event', {\n title: $.trim($(this).text()),\n id: $(this).data('id'),\n flsCaseId: $(this).data('case'),\n clientId: $(this).data('client'),\n serviceTypeId: $(this).data('service'),\n type: $(this).data('type'),\n stick: true\n });\n $(this).draggable({\n zIndex: 999,\n revert: true,\n revertDuration: 0\n });\n });\n }, 150);\n };\n FlsWeekplannerListController.prototype.addDropEvent = function (obj, revertFunc) {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.calendarLoading = true;\n obj.carerId = this.selectedPerson;\n if (!(obj.type === this.typeFlsDocumentation && this.permissions.fls.new)) return [3 /*break*/, 2];\n _a = this;\n return [4 /*yield*/, this.setFlsForm(obj, obj.flsCaseId)];\n case 1:\n _a.flsForm = _b.sent();\n this.$timeout(function () {\n _this.checkPlausibilityFls(function () {\n if (!_this.validation.errors.length && !_this.validation.warnings.length)\n _this.saveNewFlsPlanning();\n else {\n _this.dragMode = _this.typeFlsDocumentation;\n $('#weekplanner-entry').modal('show');\n _this.calendarLoading = false;\n revertFunc();\n }\n });\n });\n return [3 /*break*/, 3];\n case 2:\n if (obj.type === this.typeAzn && this.permissions.azn.new) {\n this.aznForm = {\n dateFrom: obj.dateFrom,\n dateTo: moment(obj.dateFrom).add(this.eventLength, 'minutes').toDate(),\n typeId: obj.id,\n referencePersonId: obj.carerId\n };\n this.checkPlausibilityAzn(function () {\n if (!_this.validation.errors.length && !_this.validation.warnings.length)\n _this.saveNewAznPlanning();\n else {\n _this.dragMode = _this.typeAzn;\n $('#weekplanner-entry').modal('show');\n _this.calendarLoading = false;\n revertFunc();\n }\n });\n }\n else {\n $('#noPermissionDialog').modal('show');\n this.calendarLoading = false;\n }\n _b.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n FlsWeekplannerListController.prototype.resetCalendar = function () {\n $(\".modal-backdrop\").remove();\n this.getEvents(null);\n };\n FlsWeekplannerListController.prototype.addToEventlist = function (arr, targetList) {\n if (targetList === void 0) { targetList = this.eventList; }\n for (var _i = 0, arr_1 = arr; _i < arr_1.length; _i++) {\n var event_2 = arr_1[_i];\n targetList.push(event_2);\n }\n };\n FlsWeekplannerListController.prototype.renderCalendar = function () {\n $(\"#filterCheck\").removeAttr(\"disabled\");\n $(\".squaredThree label\").css(\"opacity\", \"1\").css(\"cursor\", \"pointer\");\n ;\n $('#weekplannerCalendar').fullCalendar('removeEvents');\n $('#weekplannerCalendar').fullCalendar('addEventSource', this.eventList);\n };\n FlsWeekplannerListController.prototype.setViewDates = function () {\n var dateFrom = $('#weekplannerCalendar').fullCalendar('getView').start;\n var dateTo = $('#weekplannerCalendar').fullCalendar('getView').end;\n if (typeof dateFrom !== \"object\")\n dateFrom = new Date();\n if (typeof dateTo !== \"object\")\n dateTo = new Date();\n this.viewDateFrom = moment(dateFrom).startOf('week').format();\n this.viewDateTo = moment(dateTo).endOf('week').add(1, 'day').format();\n };\n FlsWeekplannerListController.prototype.deviceDefault = function () {\n if (this.$stateParams.view && this.$stateParams.view.length > 0)\n return this.$stateParams.view;\n if (localStorage.getItem('calendarView') != null && localStorage.getItem('calendarView') != 'month') {\n return localStorage.getItem('calendarView');\n }\n if (QMC.Common.Constants.IS_MOBILE)\n return 'agendaDay';\n else\n return 'agendaWeek';\n };\n FlsWeekplannerListController.prototype.getHeight = function () {\n if ($('body').hasClass('mobile'))\n return 350;\n return null;\n };\n FlsWeekplannerListController.prototype.buildPlanner = function () {\n var _this = this;\n var vm = this;\n var allDayText = this.lng.translate(20018016, \"Ganztägig\");\n $('#weekplannerCalendar').fullCalendar({\n schedulerLicenseKey: QMC.Common.Constants.FULL_CALENDAR_PREMIUM_LICENSE,\n defaultTimedEventDuration: '00:30:00',\n contentHeight: $(window).height() * 0.6,\n defaultView: this.deviceDefault(),\n timezone: 'local',\n allDaySlot: false,\n allDayText: allDayText,\n slotLabelFormat: 'H:mm',\n slotDuration: this.$qui.timeStringFromHours(this.slotDuration),\n events: this.eventList,\n firstDay: 1,\n weekends: this.showWeekends,\n monthNames: this.lng.translate(20018519, 'Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember').split(','),\n monthNamesShort: this.lng.translate(20018520, 'Jan,Feb,Mrz,Apr,Mai,Jun,Jul,Aug,Sep,Okt,Nov,Dez').split(','),\n dayNames: this.lng.translate(20018521, 'Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag').split(','),\n dayNamesShort: this.lng.translate(20018522, 'So.,Mo.,Di.,Mi.,Do.,Fr.,Sa.').split(','),\n weekNumbers: true,\n weekNumberCalculation: function (date) { return moment(date).isoWeek(); },\n views: {\n month: {\n titleFormat: 'MMMM yyyy',\n },\n week: {\n titleFormat: 'dddd, D MMM YYYY',\n },\n day: {\n titleFormat: 'dddd D.MM'\n }\n },\n columnFormat: 'ddd D.M',\n header: {\n left: 'prev,next today',\n center: 'title',\n right: 'agendaWeek, agendaDay'\n },\n timeFormat: 'H:mm',\n buttonText: {\n today: this.lng.translate(20000126, 'Heute'),\n month: this.lng.translate(20000115, 'Monat'),\n week: this.lng.translate(20000114, 'Woche'),\n day: this.lng.translate(20000041, 'Tag')\n },\n viewRender: function (view) {\n _this.getEvents(view);\n _this.filterEvents();\n },\n editable: this.permissions.fls.new,\n droppable: true,\n eventResize: function (event, delta, revertFunc) {\n if (event.type == _this.typeFlsDocumentation) {\n _this.changeFlsEvent(event.id, moment(event.start).toDate(), moment(event.end).toDate(), revertFunc);\n }\n else if (event.type == _this.typeAzn) {\n _this.changeAznEvent(event.id, moment(event.start).toDate(), moment(event.end).toDate(), revertFunc);\n }\n },\n eventRender: function (event, element) {\n $(element).find(\".fc-title\").prepend(event.iconCode);\n },\n eventDrop: function (event, delta, revertFunc) {\n if (event.type == _this.typeFlsDocumentation && _this.permissions.fls.new) {\n _this.changeFlsEvent(event.id, moment(event.start).toDate(), moment(event.end || event.start).toDate(), revertFunc);\n }\n else if (event.type == _this.typeAzn && _this.permissions.azn.new) {\n _this.changeAznEvent(event.id, moment(event.start).toDate(), moment(event.end || event.start).toDate(), revertFunc);\n }\n else {\n $('#noPermissionDialog').modal('show');\n }\n },\n eventReceive: function (data) {\n var _a;\n vm.formState = 'new';\n var dropForm = {\n dateFrom: moment(data.start).toDate(),\n dateTo: moment(data.start).add(vm.eventLength, 'minutes').toDate(),\n flsCaseId: data.flsCaseId,\n serviceTypeId: data.serviceTypeId,\n clientObjectId: data.clientId,\n description: '',\n type: (_a = data.type) !== null && _a !== void 0 ? _a : vm.getTypeFailSafe(data.id),\n id: data.id\n };\n // eventReceive does not come with its own revertFunc, so we create oute own (delete events from calender where ids match)\n vm.addDropEvent(dropForm, function () {\n $('#weekplannerCalendar').fullCalendar('removeEvents', function (event) { return event.id === data.id; });\n });\n },\n eventClick: function (e) {\n sessionStorage.setItem('weekplanner:lastSelectedPerson', _this.selectedPerson);\n if (e.type === _this.typeFlsDocumentation) {\n localStorage.setItem(QMC.Common.LocalStorageConstants.FLS_PREVIOUS_STATE, JSON.stringify({\n state: 'weekplanner',\n params: {\n startDay: _this.$qui.createDateFromString($('#weekplannerCalendar').fullCalendar('getView').start),\n view: $('#weekplannerCalendar').fullCalendar('getView').name\n }\n }));\n if (e.color === _this.colorFlsDocumentation) {\n _this.$state.go('documentationdetail', { \"id\": e.id });\n }\n else if (e.color === _this.colorPlannedFlsDocumentation) {\n var fls_1 = _this.flsWeekPlanning.filter(function (x) { return e.id === x.objectId; })[0];\n if (!(fls_1 === null || fls_1 === void 0 ? void 0 : fls_1.isPlannedDocumentation))\n return;\n var currentCase = _this.allCases.filter(function (x) { return fls_1.flsCaseId === x.objectId; })[0];\n if (!currentCase) {\n _this.$qui.notify({\n message: _this.lng.translate(20002066, \"Der gewählte Fall steht nicht mehr zur Verfügung, die Planung kann nicht editiert oder dokumentiert werden!\"),\n title: _this.lng.translate(20002067, \"Editieren nicht möglich\"),\n icon: \"qm-icon-information\",\n status: \"info\",\n timer: 8000\n });\n return;\n }\n _this.formState = 'edit';\n _this.dragMode = _this.typeFlsDocumentation;\n _this.setFlsForm({\n id: fls_1.id,\n objectId: fls_1.objectId,\n clientObjectId: fls_1.clientObjectId,\n dateFrom: moment(fls_1.dateFrom).toDate(),\n dateTo: moment(fls_1.dateTo).toDate(),\n description: fls_1.description,\n flsCaseId: fls_1.flsCaseId,\n serviceTypeId: currentCase.serviceTypeId,\n carerId: fls_1.carerId,\n documentationId: fls_1.objectId,\n activityTypeId: fls_1.activityTypeId,\n careTypeId: fls_1.careTypeId,\n contactTypeId: fls_1.contactTypeId,\n miscontactId: fls_1.miscontactId\n });\n $('#weekplanner-entry').modal('show');\n _this.$qui.scopeApply(_this.$scope);\n }\n }\n else if (e.type === _this.typeAzn) {\n if (!e.isPlanned) {\n localStorage.setItem(QMC.Common.LocalStorageConstants.AZN_PREVIOUS_STATE, JSON.stringify({\n state: _this.$state.$current.name,\n params: {\n startDay: _this.$qui.createDateFromString($('#weekplannerCalendar').fullCalendar('getView').start),\n view: $('#weekplannerCalendar').fullCalendar('getView').name\n }\n }));\n _this.$state.go('azndetail', { \"id\": e.id });\n }\n else {\n _this.openAznPlanning(e);\n }\n }\n else if (e.isTypeAppointment) {\n if (e.end == undefined)\n e.end = e.start;\n location.hash = \"#/appointment/appointment/\" +\n (e.isRecurring ? e.mid : e.id) + \"/\" +\n e.isRecurring + \"/\" + e.participantObjectId + \"/\" +\n e.dateFrom + \"/\" +\n ((e.start !== undefined) ? moment(e.start._d).toISOString() : 0) + \"/\" +\n ((e.end !== undefined) ? moment(e.end._d).toISOString() : ((e.start !== undefined) ? moment(e.start._d).toISOString() : 0)) + \"/\" +\n e.isRecurring + (\"/\" + e.permFlag);\n }\n },\n dayClick: function () {\n console.log('NOT IMPLEMENTED NOW');\n }\n });\n this.filterEvents();\n };\n FlsWeekplannerListController.prototype.getTypeFailSafe = function (id) {\n if (this.cases.some(function (x) { return x.objectId === id; }))\n return this.typeFlsDocumentation;\n if (this.aznTypesMap.some(function (x) { return x.value === id; }))\n return this.typeAzn;\n };\n FlsWeekplannerListController = __decorate([\n QMC.Controller('QMC.Fachleistung', 'FlsWeekplannerListController'),\n QMC.Inject('$location', 'FachleistungService', '$qui', 'TerminService', 'ArbeitszeitnachweisService', '$scope', '$state', '$timeout', 'QmcLanguageService', 'QmcPermissionService', 'UserService', '$stateParams')\n ], FlsWeekplannerListController);\n return FlsWeekplannerListController;\n }());\n })(Fachleistung = QMC.Fachleistung || (QMC.Fachleistung = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Fachleistung;\n (function (Fachleistung) {\n var QmWeekPlannerCopyDirective = /** @class */ (function () {\n function QmWeekPlannerCopyDirective($qui, $state, lng, permissionService, flsService, aznService) {\n var _this = this;\n this.$qui = $qui;\n this.$state = $state;\n this.lng = lng;\n this.permissionService = permissionService;\n this.flsService = flsService;\n this.aznService = aznService;\n this.restrict = 'E';\n this.templateUrl = './fls/WeekplannerCopyDirective';\n this.replace = true;\n this.scope = {\n qmCalendarName: '@',\n qmData: '=',\n qmCarerId: '=' // = is a two way databinding\n };\n this.link = function (scope) {\n //init\n scope.cases = [];\n _this.flsService.getCasesList(null, true).then(function (cases) {\n scope.cases = cases;\n });\n if (!scope.qmCalendarName || scope.qmCalendarName == '')\n scope.qmCalendarName = 'calendar';\n scope.lng = _this.lng;\n scope.flsService = _this.flsService;\n scope.aznService = _this.aznService;\n scope.$qui = _this.$qui;\n scope.copySettings = {\n copyMode: 'target',\n futureWeekSelect: 0,\n start: null,\n end: null,\n candidates: [],\n plannings: [],\n errors: [],\n state: 'select',\n selectAllCandidates: false,\n selectAllPlannings: false,\n isValidationFinished: false\n };\n scope.dayNames = scope.lng.translate(20018521, 'Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag').split(',');\n scope.$watch('qmData', function (newVal, oldVal) {\n if (newVal == oldVal)\n return;\n scope.createCandidates();\n }, true);\n scope.$watch('copySettings.isValidationFinished', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n if (newVal) {\n scope.anythingOrAllSelected(scope.copySettings.plannings, true);\n scope.copySettings.isValidationFinished = false;\n }\n }, true);\n scope.createCandidates = function () {\n var _a;\n if (!scope.cases || scope.cases.length === 0)\n setTimeout(function () { scope.createCandidates(); }, 500);\n var start = _this.$qui.createDateFromString($('#' + scope.qmCalendarName).fullCalendar('getView').start);\n var end = _this.$qui.createDateFromString($('#' + scope.qmCalendarName).fullCalendar('getView').end);\n scope.copySettings.candidates = [];\n var _loop_9 = function (candidate) {\n if (candidate.dateFrom >= start && candidate.dateTo <= end) {\n candidate.flsCase = (_a = scope.cases.filter(function (x) { return x.objectId === candidate.flsCaseId; })[0]) !== null && _a !== void 0 ? _a : null;\n if ((candidate.flsCase || candidate.type !== 230000) && !scope.copySettings.candidates.some(function (x) { return JSON.stringify(x) === JSON.stringify(candidate); }))\n scope.copySettings.candidates.push(candidate);\n }\n };\n for (var _i = 0, _b = scope.qmData; _i < _b.length; _i++) {\n var candidate = _b[_i];\n _loop_9(candidate);\n }\n scope.copySettings.candidates = scope.copySettings.candidates.sort(function (a, b) { return a.dateFrom > b.dateFrom ? 1 : a.dateFrom < b.dateFrom ? -1 : 0; });\n };\n scope.openCopyDialog = function () {\n scope.loading = true;\n $('#weekplanner-copy-modal').modal('show');\n scope.copySettings.copyMode = 'target';\n scope.copySettings.futureWeekSelect = 0;\n scope.copySettings.plannings = [];\n scope.copySettings.errors = [];\n scope.copySettings.state = 'select';\n //create target Week DropDown Values\n var start = this.$qui.createDateFromString($('#' + scope.qmCalendarName).fullCalendar('getView').start);\n scope.futureWeeks = [];\n for (var i = 0; i < 53; i++) {\n var temp = this.$qui.createDateFromString(start.toISOString());\n temp = this.$qui.createDateFromString(temp.setDate(temp.getDate() + i * 7));\n var weeks = weeksBetween(temp, new Date());\n if (!(weeksBetween(temp, new Date()) > 1) || temp > new Date() || (temp < new Date() && weeks == 1))\n if (i === 0)\n scope.futureWeeks.push({ value: i, text: i + 1 + \" \" + this.lng.translate(20000114, \"Woche\") });\n else\n scope.futureWeeks.push({ value: i, text: i + 1 + \" \" + this.lng.translate(20000118, \"Wochen\") });\n }\n if (moment(start).week() < moment(new Date()).week()) {\n var firstInArray = scope.futureWeeks[0];\n scope.futureWeeks.unshift({ value: firstInArray.value - 1, text: this.lng.translate(20016187, \"aktuelle Woche\") });\n }\n scope.copySettings.futureWeekSelect = scope.futureWeeks[0].value;\n scope.calculateCopyWeek();\n // reset checkboxes\n for (var _i = 0, _a = scope.copySettings.candidates; _i < _a.length; _i++) {\n var candidate = _a[_i];\n candidate.isChecked = false;\n }\n $(\"#wpcm-toggleAllPlCb\").prop(\"checked\", false);\n $(\"#wpcm-toggleAllCandCb\").prop(\"checked\", false);\n scope.loading = false;\n };\n /////////////////// TimeFrame Helper Functions ///////////////////\n scope.calculateCopyWeek = function () {\n if (scope.copySettings.copyMode === 'target') {\n var start = this.$qui.createDateFromString($('#' + scope.qmCalendarName).fullCalendar('getView').start);\n var temp = getNextWeek(start, 1);\n scope.copySettings.start = this.$qui.createDateFromString(temp.setDate(temp.getDate() + (scope.copySettings.futureWeekSelect) * 7));\n temp = this.$qui.createDateFromString(scope.copySettings.start.toDateString());\n scope.copySettings.end = this.$qui.createDateFromString(temp.setDate(temp.getDate() + 6));\n }\n else if (scope.copySettings.copyMode === 'timeFrame') {\n scope.copySettings.start = getNextWeek(new Date(), 1);\n var temp = this.$qui.createDateFromString(scope.copySettings.start.getTime());\n scope.copySettings.end = moment(this.$qui.createDateFromString(temp.setDate(temp.getDate() + 6))).add(scope.copySettings.futureWeekSelect, 'weeks').toDate();\n }\n };\n var getNextWeek = function (date, dayOfWeek) {\n var dayOffset = dayOfWeek > date.getDay()\n ? dayOfWeek - date.getDay()\n : dayOfWeek - date.getDay() + 7;\n date.setDate(date.getDate() + dayOffset);\n return date;\n };\n var weeksBetween = function (date1, date2) {\n var date1ms = date1.getTime();\n var date2ms = date2.getTime();\n var diff = Math.abs(date2ms - date1ms);\n // round back to weeks\n return Math.ceil(diff / (1000 * 60 * 60 * 24 * 7));\n };\n /////////////////// Gui Helper Functions ///////////////////\n scope.toggleAll = function (selectAllCandidates) {\n var _this = this;\n if (selectAllCandidates === void 0) { selectAllCandidates = true; }\n var value = selectAllCandidates ? scope.copySettings.selectAllCandidates : scope.copySettings.selectAllPlannings;\n for (var _i = 0, _a = selectAllCandidates ? scope.copySettings.candidates : scope.copySettings.plannings; _i < _a.length; _i++) {\n var selection = _a[_i];\n selection.isChecked = selectAllCandidates || !value ? value : selection.validation.warnings.length + selection.validation.errors.length === 0;\n }\n setTimeout(function () {\n _this.$qui.scopeApply(_this.$scope);\n }, 5);\n };\n scope.getDayName = function (date) {\n var dayNumber = (this.$qui.createDateFromString(date)).getDay();\n if (dayNumber < 0)\n return scope.dayNames[0];\n if (dayNumber > 6)\n return scope.dayNames[6];\n return scope.dayNames[dayNumber];\n };\n scope.anythingOrAllSelected = function (arr, selectAll) {\n if (selectAll === void 0) { selectAll = false; }\n var result = false;\n if (!selectAll) {\n var itemFound = arr.find(function (item) { return item.isChecked === true; });\n result = itemFound != null ? true : false;\n }\n else {\n result = arr.every(function (item) { return item.isChecked === true; });\n }\n if (selectAll) {\n if (arr === scope.copySettings.plannings) {\n scope.copySettings.selectAllPlannings = result;\n $(\"#wpcm-toggleAllPlCb\").prop(\"checked\", scope.copySettings.selectAllPlannings);\n }\n else {\n scope.copySettings.selectAllCandidates = result;\n $(\"#wpcm-toggleAllCandCb\").prop(\"checked\", scope.copySettings.selectAllCandidates);\n }\n }\n return result;\n };\n scope.getValidationButtonState = function (validation) {\n if (validation == (null || undefined)) {\n validation = {\n errors: [this.lng.translate(20016182, \"Noch keine Validierung durchgeführt\")],\n warnings: []\n };\n }\n ;\n if (validation.errors.length == 0 && validation.warnings.length == 0)\n return 0;\n if (validation.errors.length == 0)\n return 1;\n return 2;\n };\n scope.showValidation = function (item) {\n scope.currentItem = item;\n $('#weekplanner-copy-validation-modal').modal('show');\n };\n // Workaround part2 since normal modal messes up the dom for whatever reason.\n scope.hideValidation = function () {\n $('#weekplanner-copy-validation-modal').modal('hide');\n };\n scope.isSaveDisabled = function () {\n for (var _i = 0, _a = scope.copySettings.plannings; _i < _a.length; _i++) {\n var planning = _a[_i];\n if (planning.isChecked && !planning.isValidating)\n return false;\n }\n return true;\n };\n scope.toggleMode = function () {\n scope.copySettings.futureWeekSelect = scope.futureWeeks[0].value;\n setTimeout(function () {\n scope.calculateCopyWeek();\n }, 250);\n };\n /////////////////// Planning creation ///////////////////\n scope.createPlannings = function () {\n var _a, _b, _c, _d, _e, _f;\n scope.loading = true;\n scope.copySettings.errors = [];\n scope.copySettings.plannings = [];\n var validationObjects = [];\n //Create plannings\n for (var _i = 0, _g = scope.copySettings.candidates; _i < _g.length; _i++) {\n var candidate = _g[_i];\n if (!candidate.isChecked)\n continue;\n if (candidate.type === 230000) {\n var currentCase = candidate.flsCase;\n if (currentCase == (null || undefined)) {\n scope.copySettings.errors.push(this.lng.translate(20016181, \"Für den folgenden Fall kann keine Planung angelegt werden\") + ': ' + candidate.reportTitle\n + ', ' + moment(candidate.dateFrom).format('DD.MM.YYYY HH:mm') + ' - ' + moment(candidate.dateTo).format('DD.MM.YYYY HH:mm'));\n continue;\n }\n if (scope.copySettings.copyMode == 'target') {\n var planning = createWeekPlanningObjectFls(currentCase, candidate, scope.copySettings.futureWeekSelect);\n planning.isValidating = true;\n validationObjects.push({\n dateFrom: planning.dateFrom,\n dateTo: planning.dateTo === undefined ? moment(planning.dateFrom).add(1, 'hours').toDate() : planning.dateTo,\n hasManualDuration: false,\n documentationId: planning.documentationId,\n references: [{ caseId: currentCase.objectId, referenceId: currentCase.clientObjectId, accountabilityId: currentCase.defaultAccountableRuleId }],\n carer: [{\n carerId: (_a = scope.qmCarerId) !== null && _a !== void 0 ? _a : $(\"#session\").data().personId,\n activityTypeId: (_b = planning.activityTypeId) !== null && _b !== void 0 ? _b : QMC.Common.Constants.DEFAULT_ACTIVITY_ID,\n contactTypeId: planning.contactTypeId,\n careTypeId: planning.careTypeId,\n miscontactId: (_c = planning.miscontactId) !== null && _c !== void 0 ? _c : QMC.Common.Constants.FLS_NO_MISCONTACT\n }],\n manualDuration: 0,\n ignoreConfigRoundInterval: false,\n requestId: planning.documentationId\n });\n scope.copySettings.plannings.push(planning);\n }\n else if (scope.copySettings.copyMode === 'timeFrame') {\n for (var j = 0; j <= scope.copySettings.futureWeekSelect; j++) {\n var planning = createWeekPlanningObjectFls(currentCase, candidate, j);\n planning.isValidating = true;\n validationObjects.push({\n dateFrom: planning.dateFrom,\n dateTo: planning.dateTo === undefined ? moment(planning.dateFrom).add(1, 'hours').toDate() : planning.dateTo,\n hasManualDuration: false,\n documentationId: planning.documentationId,\n references: [{ caseId: currentCase.objectId, referenceId: currentCase.clientObjectId, accountabilityId: currentCase.defaultAccountableRuleId }],\n carer: [{\n carerId: (_d = scope.qmCarerId) !== null && _d !== void 0 ? _d : $(\"#session\").data().personId,\n activityTypeId: (_e = planning.activityTypeId) !== null && _e !== void 0 ? _e : QMC.Common.Constants.DEFAULT_ACTIVITY_ID,\n contactTypeId: planning.contactTypeId,\n careTypeId: planning.careTypeId,\n miscontactId: (_f = planning.miscontactId) !== null && _f !== void 0 ? _f : QMC.Common.Constants.FLS_NO_MISCONTACT\n }],\n manualDuration: 0,\n ignoreConfigRoundInterval: false,\n requestId: planning.documentationId\n });\n scope.copySettings.plannings.push(planning);\n }\n }\n }\n if (candidate.type === 425000) {\n if (scope.copySettings.copyMode == 'target') {\n var planning = createWeekPlanningObjectAzn(candidate, scope.copySettings.futureWeekSelect);\n validatePlanningAzn(planning);\n scope.copySettings.plannings.push(planning);\n }\n else if (scope.copySettings.copyMode == 'timeFrame') {\n for (var j = 0; j <= scope.copySettings.futureWeekSelect; j++) {\n var planning = createWeekPlanningObjectAzn(candidate, j);\n validatePlanningAzn(planning);\n scope.copySettings.plannings.push(planning);\n }\n }\n }\n }\n if (validationObjects.length > 0) {\n validatePlanningFls(validationObjects);\n }\n scope.copySettings.plannings = scope.copySettings.plannings.sort(function (a, b) { return a.dateFrom > b.dateFrom ? 1 : a.dateFrom < b.dateFrom ? -1 : 0; });\n scope.loading = false;\n };\n var validatePlanningFls = function (validationObjects) {\n scope.flsService.checkForWarningsAndErrors(validationObjects, true).then(function (data) {\n data.forEach(function (result) {\n var _a;\n var planning = scope.copySettings.plannings.filter(function (x) { return x.documentationId === result.requestId; })[0];\n if (!planning)\n return;\n planning.validation = result.validation[(_a = scope.qmCarerId) !== null && _a !== void 0 ? _a : $(\"#session\").data().personId];\n planning.isValidating = false;\n if (planning.validation.errors.length == 0 && planning.validation.warnings.length == 0)\n planning.isChecked = true;\n else\n planning.isChecked = false;\n });\n scope.copySettings.isValidationFinished = true;\n });\n };\n var validatePlanningAzn = function (planning) {\n planning.isValidating = true;\n scope.aznService.checkForWarningsAndErrors({\n idObjectAznw: QMC.Common.Constants.GUID_EMPTY,\n dateFrom: planning.dateFrom,\n dateTo: planning.dateTo,\n performingPersonObjIdList: [planning.carerId],\n activityId: planning.activityTypeId,\n imputeWvId: QMC.Common.Constants.GUID_EMPTY,\n instituteId: QMC.Common.Constants.GUID_EMPTY,\n isPlanned: true\n }).then(function (data) {\n planning.validation = data;\n planning.isValidating = false;\n if (data.errors.length == 0 && data.warnings.length == 0)\n planning.isChecked = true;\n else\n planning.isChecked = false;\n });\n };\n var createWeekPlanningObjectFls = function (currentCase, item, modifier) {\n var weekModifier = (7 * (modifier + 1));\n var tempStart = new Date(item.dateFrom.getTime());\n var tempEnd = new Date(item.dateTo.getTime());\n var newEntry = __assign(__assign({}, item), { dateFrom: new Date(tempStart.setDate(tempStart.getDate() + weekModifier)), dateTo: new Date(tempEnd.setDate(tempEnd.getDate() + weekModifier)), flsCaseId: currentCase.objectId, serviceTypeId: currentCase.serviceTypeId, clientObjectId: currentCase.clientObjectId, title: item.title, isValidating: false, isChecked: false, validation: null, type: item.type, documentationId: scope.copySettings.copyMode === 'timeFrame' ? scope.$qui.generateGuid() : item.id, description: \"\" });\n return newEntry;\n };\n var createWeekPlanningObjectAzn = function (item, modifier) {\n var weekModifier = (7 * (modifier + 1));\n var tempStart = new Date(item.dateFrom.getTime());\n var tempEnd = new Date(item.dateTo.getTime());\n var newEntry = {\n dateFrom: new Date(tempStart.setDate(tempStart.getDate() + weekModifier)),\n dateTo: new Date(tempEnd.setDate(tempEnd.getDate() + weekModifier)),\n clientObjectId: $('#session').data().personId,\n flsCaseId: item.aznImputeId,\n serviceTypeId: item.aznTypeId,\n title: item.title,\n isValidating: false,\n isChecked: false,\n validation: null,\n type: item.type,\n documentationId: QMC.Common.Constants.GUID_EMPTY,\n description: \"\"\n };\n return newEntry;\n };\n scope.postPlannings = function () {\n var _a;\n scope.loading = true;\n var toCreateFls = [];\n var toCreateAzn = [];\n for (var _i = 0, _b = scope.copySettings.plannings; _i < _b.length; _i++) {\n var planning = _b[_i];\n if (planning.isChecked && planning.type === 230000) {\n toCreateFls.push({\n id: null,\n objectId: null,\n carerId: (_a = scope.qmCarerId) !== null && _a !== void 0 ? _a : $(\"#session\").data().personId,\n clientObjectId: planning.clientObjectId,\n dateFrom: planning.dateFrom,\n dateTo: planning.dateTo,\n flsCaseId: planning.flsCaseId,\n serviceTypeId: planning.serviceTypeId,\n description: null,\n documentationId: null,\n activityTypeId: planning.activityForm.activityTypeId,\n contactTypeId: planning.activityForm.contactTypeId,\n careTypeId: planning.activityForm.careTypeId,\n miscontactId: !planning.activityForm || planning.activityForm.miscontactId === QMC.Common.Constants.GUID_EMPTY\n ? QMC.Common.Constants.FLS_NO_MISCONTACT\n : planning.activityForm.miscontactId\n });\n }\n if (planning.isChecked && planning.type === 425000) {\n toCreateAzn.push({\n dateFrom: planning.dateFrom,\n dateTo: planning.dateTo,\n referencePersonId: planning.clientObjectId,\n typeId: planning.serviceTypeId,\n imputeId: planning.flsCaseId // ... azn purposes\n });\n }\n }\n scope.savingFls = false;\n if (toCreateFls.length > 0) {\n scope.savingFls = true;\n this.flsService.postWeekPlanningPlannedDoc(toCreateFls).then(function (data) {\n scope.savingFls = false;\n finishSaving();\n });\n }\n scope.savingAzn = false;\n if (toCreateAzn.length > 0) {\n scope.savingAzn = true;\n this.aznService.postAznWeekPlanning(toCreateAzn).then(function (data) {\n scope.savingAzn = false;\n finishSaving();\n });\n }\n };\n var finishSaving = function () {\n if (scope.savingAzn || scope.savingFls)\n return;\n scope.loading = false;\n $('#weekplanner-copy-modal').modal('hide');\n scope.$qui.notify(scope.$qui.successNote);\n };\n };\n }\n QmWeekPlannerCopyDirective = __decorate([\n QMC.Directive('QMC.Fachleistung', 'qmWeekplannerCopy', ['$qui', '$state', 'QmcLanguageService', 'QmcPermissionService', 'FachleistungService', 'ArbeitszeitnachweisService'])\n ], QmWeekPlannerCopyDirective);\n return QmWeekPlannerCopyDirective;\n }());\n })(Fachleistung = QMC.Fachleistung || (QMC.Fachleistung = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Fachleistung;\n (function (Fachleistung) {\n var QmWeekPlannerDeleteDirective = /** @class */ (function () {\n function QmWeekPlannerDeleteDirective($qui, $state, lng, permissionService, flsService, aznService) {\n var _this = this;\n this.$qui = $qui;\n this.$state = $state;\n this.lng = lng;\n this.permissionService = permissionService;\n this.flsService = flsService;\n this.aznService = aznService;\n this.restrict = 'E';\n this.templateUrl = './fls/WeekplannerDeleteDirective';\n this.replace = true;\n this.scope = {\n qmCalendarName: '@',\n qmData: '=',\n qmCases: '='\n };\n this.link = function (scope) {\n //init\n if (!scope.qmCalendarName || scope.qmCalendarName == '')\n scope.qmCalendarName = 'calendar';\n scope.lng = _this.lng;\n scope.flsService = _this.flsService;\n scope.aznService = _this.aznService;\n scope.$qui = _this.$qui;\n scope.$state = _this.$state;\n scope.promptOptions = {\n title: \"Wochenplannung Löschen\",\n yesNo: true,\n icon: \"qm-icon-history2\",\n text: 'Wollen Sie den Einträge wirklich löschen?',\n };\n scope.canDeleteAzn = _this.deleteAzn;\n scope.canDeleteFls = _this.delete;\n scope.deleteSettings = {\n start: null,\n end: null,\n plannedItems: [],\n plannedItemsToDelete: [],\n errors: [],\n state: 'select',\n selectAll: false\n };\n scope.$watch('qmData', function (newVal, oldVal) {\n if (newVal == oldVal)\n return;\n var start = _this.$qui.createDateFromString($('#' + scope.qmCalendarName).fullCalendar('getView').start);\n var end = _this.$qui.createDateFromString($('#' + scope.qmCalendarName).fullCalendar('getView').end);\n scope.deleteSettings.plannedItems = [];\n for (var _i = 0, _a = scope.qmData; _i < _a.length; _i++) {\n var plannedItem = _a[_i];\n if (plannedItem.dateFrom >= start && plannedItem.dateTo <= end) {\n scope.deleteSettings.plannedItems.push(plannedItem);\n }\n }\n scope.deleteSettings.plannedItems = scope.deleteSettings.plannedItems.sort(function (a, b) { return a.dateFrom > b.dateFrom ? 1 : a.dateFrom < b.dateFrom ? -1 : 0; });\n }, true);\n scope.openDeleteDialog = function () {\n scope.loading = true;\n $('#weekplanner-delete-modal').modal('show');\n scope.deleteSettings.errors = [];\n scope.deleteSettings.state = 'select';\n scope.deleteSettings.selectAll = false;\n //create target Week DropDown Values\n var start = this.$qui.createDateFromString($('#' + scope.qmCalendarName).fullCalendar('getView').start);\n // reset checkboxes\n for (var _i = 0, _a = scope.deleteSettings.plannedItems; _i < _a.length; _i++) {\n var plannedItem = _a[_i];\n plannedItem.isChecked = false;\n }\n $(\"#wpcm-toggleDeleteAllCb\").prop(\"checked\", false);\n scope.loading = false;\n };\n /////////////////// Planning items to be deleted creation ///////////////////\n scope.createPlanningItemsToBeDeleted = function () {\n scope.loading = true;\n scope.deleteSettings.errors = [];\n scope.deleteSettings.plannedItemsToDelete = [];\n //Create the items to be deleted with validation\n for (var _i = 0, _a = scope.deleteSettings.plannedItems; _i < _a.length; _i++) {\n var plannedItem = _a[_i];\n if (!plannedItem.isChecked)\n continue;\n var planningItemToDelete = createWeekPlanningDeleteObjectFls(plannedItem);\n planningItemToDelete.isChecked = true;\n scope.deleteSettings.plannedItemsToDelete.push(planningItemToDelete);\n }\n scope.deleteSettings.plannedItemsToDelete = scope.deleteSettings.plannedItemsToDelete.sort(function (a, b) { return a.dateFrom > b.dateFrom ? 1 : a.dateFrom < b.dateFrom ? -1 : 0; });\n scope.deleteSettings.state = 'delete';\n scope.loading = false;\n };\n var createWeekPlanningDeleteObjectFls = function (item) {\n var newEntry = {\n id: item.id,\n objectId: item.objectId,\n dateTo: item.dateTo,\n dateFrom: item.dateFrom,\n isChecked: item.isChecked,\n type: item.type,\n flsCase: item.flsCase,\n title: item.title,\n aznImputeId: item.aznImputeId,\n aznTypeId: item.aznTypeId\n };\n return newEntry;\n };\n /////////////////// Planning items to be deleted creation ///////////////////\n scope.deletePlannings = function () {\n scope.loading = true;\n //QMC.Common.Utilities.confirm(scope.promptOptions, (data) => {\n $('#weekplanner-delete-modal').modal('hide');\n var _loop_10 = function (plannedItemToDelete) {\n if (plannedItemToDelete.type == 230000) {\n scope.flsService.deleteWeekPlanningPlannedDoc(plannedItemToDelete.objectId).then(function () {\n $('#weekplannerCalendar').fullCalendar('removeEvents', plannedItemToDelete.objectId);\n scope.RemoveItemsFromDeleteList(plannedItemToDelete);\n });\n }\n if (plannedItemToDelete.type == 425000) {\n this_6.aznService.deleteAznWeekPlanning(plannedItemToDelete.id).then(function () {\n $('#weekplannerCalendar').fullCalendar('removeEvents', plannedItemToDelete.objectId);\n scope.RemoveItemsFromDeleteList(plannedItemToDelete);\n });\n }\n };\n var this_6 = this;\n //if (data) {\n for (var _i = 0, _a = scope.deleteSettings.plannedItemsToDelete; _i < _a.length; _i++) {\n var plannedItemToDelete = _a[_i];\n _loop_10(plannedItemToDelete);\n }\n this.$qui.notify(this.$qui.deleteNotes);\n setTimeout(function () { scope.$state.go('weekplanner', {}, { reload: true }); }, 500);\n //}\n //else {\n // $('#weekplanner-delete-modal').modal('hide');\n //}\n //});\n scope.loading = false;\n };\n scope.RemoveItemsFromDeleteList = function (deletedItem) {\n for (var i = 0; i < scope.deleteSettings.plannedItemsToDelete.length; i++) {\n if (scope.deleteSettings.plannedItemsToDelete[i].objectId === deletedItem.objectId) {\n scope.deleteSettings.plannedItemsToDelete.splice(i, 1);\n }\n }\n };\n scope.toggleAllDelete = function (value) {\n var _this = this;\n if (value == null || value == undefined)\n value = scope.deleteSettings.selectAll;\n for (var _i = 0, _a = scope.deleteSettings.plannedItems; _i < _a.length; _i++) {\n var plannedItem = _a[_i];\n plannedItem.isChecked = value;\n }\n setTimeout(function () {\n _this.$qui.scopeApply(_this.$scope);\n }, 5);\n };\n scope.anythingSelected = function (arr) {\n for (var _i = 0, arr_2 = arr; _i < arr_2.length; _i++) {\n var element = arr_2[_i];\n if (element.isChecked)\n return true;\n }\n return false;\n };\n scope.isDeleteDisabled = function () {\n for (var _i = 0, _a = scope.deleteSettings.plannedItemsToDelete; _i < _a.length; _i++) {\n var plannedItemToDelete = _a[_i];\n if (plannedItemToDelete.isChecked)\n return false;\n }\n return true;\n };\n };\n //ObjectType: FlsZeitplanungSoll\n permissionService.getPermissionsByObjectType(230007).then(function (data) {\n _this.delete = data[0].delete && data[0].moduleAccess;\n _this.new = data[0].new && data[0].moduleAccess;\n _this.modify = data[0].modify && data[0].moduleAccess;\n });\n permissionService.getPermissionsByObjectType(411010).then(function (data) {\n _this.deleteAzn = data[0].delete && data[0].moduleAccess;\n _this.newAzn = data[0].new && data[0].moduleAccess;\n _this.modifyAzn = data[0].modify && data[0].moduleAccess;\n });\n }\n QmWeekPlannerDeleteDirective = __decorate([\n QMC.Directive('QMC.Fachleistung', 'qmWeekplannerDelete', ['$qui', '$state', 'QmcLanguageService', 'QmcPermissionService', 'FachleistungService', 'ArbeitszeitnachweisService'])\n ], QmWeekPlannerDeleteDirective);\n return QmWeekPlannerDeleteDirective;\n }());\n })(Fachleistung = QMC.Fachleistung || (QMC.Fachleistung = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Fachleistung;\n (function (Fachleistung) {\n var WeekplannerAznFormDirective = /** @class */ (function () {\n function WeekplannerAznFormDirective(scope, userService) {\n var _this = this;\n this.scope = scope;\n this.id = '_' + Math.random().toString(36).substring(2, 10);\n this.carerMap = [];\n this.types = [];\n this.loading = { wv: false };\n this.watchers = [];\n this.$postLink = function () {\n _this.events();\n };\n this.$onDestroy = function () {\n _this.watchers.forEach(function (watcher) { return watcher(); });\n };\n userService.getUserSettings(['AZN.SHOWDATETO']).then(function (data) {\n _this.showDateTo = data[0].value.toLowerCase() === 'true';\n });\n }\n WeekplannerAznFormDirective.prototype.events = function () {\n var _this = this;\n this.watchers.push(this.scope.$watch('vm.carer', function () {\n var _a, _b;\n _this.carerMap = (_b = (_a = _this.carer) === null || _a === void 0 ? void 0 : _a.map(function (x) { return ({ text: x.displayTitle, value: x.objectId }); })) !== null && _b !== void 0 ? _b : [];\n }, true));\n this.watchers.push(this.scope.$watch('vm.form', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n //reset the form\n _this.id.$setPristine();\n _this.id.$setUntouched();\n }));\n };\n WeekplannerAznFormDirective.prototype.isGuidEmpty = function (guid) {\n return !guid || guid === QMC.Common.Constants.GUID_EMPTY;\n };\n return WeekplannerAznFormDirective;\n }());\n angular.module('QMC.Fachleistung').component('qmWeekplannerAznForm', {\n templateUrl: './fls/WeekplannerAznForm',\n controller: ['$scope', 'UserService', WeekplannerAznFormDirective],\n controllerAs: 'vm',\n bindings: {\n carer: '=',\n types: '=',\n form: '=?',\n isValid: '=?'\n }\n });\n })(Fachleistung = QMC.Fachleistung || (QMC.Fachleistung = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Fachleistung;\n (function (Fachleistung) {\n var WeekplannerFlsFormDirective = /** @class */ (function () {\n function WeekplannerFlsFormDirective(scope, $qui, flsService, userService) {\n var _this = this;\n this.scope = scope;\n this.$qui = $qui;\n this.flsService = flsService;\n this.id = '_' + Math.random().toString(36).substring(2, 10);\n this.cases = {};\n this.casesMap = [];\n this.carerMap = [];\n this.loading = { wv: false };\n this.watchers = [];\n this.defaultActivities = {\n activity: QMC.Common.Constants.DEFAULT_ACTIVITY_ID,\n careType: QMC.Common.Constants.GUID_EMPTY,\n contactType: QMC.Common.Constants.GUID_EMPTY\n };\n // settings\n this.defaultEventLength = 60;\n this.getFutureCases = true;\n this.getPastCases = true;\n this.$postLink = function () {\n _this.events();\n _this.setForm = function (form, caseId, carerId) { return __awaiter(_this, void 0, void 0, function () {\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n this.watchers.forEach(function (watcher) { return watcher(); });\n this.form = form !== null && form !== void 0 ? form : {\n id: undefined,\n objectId: undefined,\n clientObjectId: QMC.Common.Constants.GUID_EMPTY,\n dateFrom: moment().startOf('hour').toDate(),\n dateTo: moment().startOf('hour').add(this.defaultEventLength, 'm').toDate(),\n description: '',\n documentationId: QMC.Common.Constants.GUID_EMPTY,\n flsCaseId: QMC.Common.Constants.GUID_EMPTY,\n serviceTypeId: QMC.Common.Constants.GUID_EMPTY,\n carerId: ((_a = this.carer) === null || _a === void 0 ? void 0 : _a.some(function (x) { return x.objectId === $(\"#session\").data().personId; })) ? $(\"#session\").data().personId : QMC.Common.Constants.GUID_EMPTY\n };\n this.isMiscontactEnabled = !this.isGuidEmpty(form === null || form === void 0 ? void 0 : form.miscontactId) && (form === null || form === void 0 ? void 0 : form.miscontactId) !== QMC.Common.Constants.FLS_NO_MISCONTACT;\n this.internalMiscontactId = (_b = form === null || form === void 0 ? void 0 : form.miscontactId) !== null && _b !== void 0 ? _b : QMC.Common.Constants.FLS_NO_MISCONTACT;\n this.form.flsCaseId = caseId !== null && caseId !== void 0 ? caseId : this.form.flsCaseId;\n this.form.carerId = carerId !== null && carerId !== void 0 ? carerId : this.form.carerId;\n if (!this.internalMiscontactId || this.internalMiscontactId === QMC.Common.Constants.GUID_EMPTY)\n this.internalMiscontactId = QMC.Common.Constants.FLS_NO_MISCONTACT;\n return [4 /*yield*/, this.getWv()];\n case 1:\n _c.sent();\n this.events();\n return [2 /*return*/, Promise.resolve(this.form)];\n }\n });\n }); };\n };\n this.$onDestroy = function () {\n _this.watchers.forEach(function (watcher) { return watcher(); });\n };\n this.setCasesMap = function () {\n var _a, _b;\n if (!((_a = _this.form) === null || _a === void 0 ? void 0 : _a.carerId))\n return;\n if (_this.cases[_this.form.carerId] === 'loading') {\n setTimeout(_this.setCasesMap, 250);\n return;\n }\n var cases = (_b = _this.cases[_this.form.carerId]) !== null && _b !== void 0 ? _b : [];\n if (cases === 'loading')\n cases = [];\n if (!_this.getFutureCases) {\n cases = cases.filter(function (item) { return moment(item.dateFrom).toDate() <= new Date(); });\n }\n if (!_this.getPastCases) {\n cases = cases.filter(function (item) { return !item.dateTo || moment(item.dateTo).toDate() >= new Date(); });\n }\n // if cases are fitlered by current, ensure that current selected case is always present (editing)\n _this.casesMap = cases.filter(function (x) { var _a; return !_this.onlyCurrent || x.isCurrent || ((_a = _this.form) === null || _a === void 0 ? void 0 : _a.flsCaseId) === x.objectId; }).map(function (x) { return (__assign(__assign({}, _this.$qui.createCaseDisplayObject(x)), { warn: !x.isCurrent })); });\n };\n this.getCases = function () {\n var _a;\n if (!((_a = _this.form) === null || _a === void 0 ? void 0 : _a.carerId) || _this.form.carerId === QMC.Common.Constants.GUID_EMPTY)\n return;\n _this.cases[_this.form.carerId] = 'loading';\n _this.flsService.getCasesList(QMC.Common.Constants.GUID_EMPTY, false, _this.form.carerId).then(function (data) {\n _this.cases[_this.form.carerId] = data;\n }).catch(function () { return _this.cases[_this.form.carerId] = []; }).finally(function () { _this.setCaseDependetForm(); _this.setCasesMap(); });\n };\n this.setCaseDependetForm = function () {\n var _a, _b;\n if (_this.form && _this.cases[_this.form.carerId]) {\n if (_this.cases[_this.form.carerId] === 'loading') {\n setTimeout(_this.setCaseDependetForm, 250);\n return;\n }\n var currentCase = _this.cases[_this.form.carerId].filter(function (x) { return _this.form.flsCaseId === x.objectId; })[0];\n _this.form.clientObjectId = (_a = currentCase === null || currentCase === void 0 ? void 0 : currentCase.clientObjectId) !== null && _a !== void 0 ? _a : QMC.Common.Constants.GUID_EMPTY;\n _this.form.serviceTypeId = (_b = currentCase === null || currentCase === void 0 ? void 0 : currentCase.serviceTypeId) !== null && _b !== void 0 ? _b : QMC.Common.Constants.GUID_EMPTY;\n }\n };\n this.flsService.getUserConfig().then(function (data) {\n _this.defaultActivities.activity = data.defaultActivityType;\n _this.defaultActivities.careType = data.defaultCareType;\n _this.defaultActivities.contactType = data.defaultContactType;\n });\n userService.getUserSettings(['FLS.WEEKPLANNER.DEFAULTEVENTLENGTH', 'FLS.WEEKPLANNER_INCLUDE_FUTURE_CASES', 'FLS.WEEKPLANNER_INCLUDE_PAST_CASES', 'FLS.SHOWDATETO']).then(function (data) {\n _this.defaultEventLength = data[0].value && data[0].value.length > 0 ? parseInt(data[0].value) : _this.defaultEventLength;\n _this.getFutureCases = data[1].value === \"\" ? _this.getFutureCases : data[1].value.toLowerCase() === \"true\";\n _this.getPastCases = data[2].value === \"\" ? _this.getPastCases : data[2].value.toLowerCase() === \"true\";\n _this.showDateTo = data[3].value.toLowerCase() === 'true';\n _this.getWv();\n });\n }\n WeekplannerFlsFormDirective.prototype.events = function () {\n var _this = this;\n this.watchers.push(this.scope.$watch('vm.onlyCurrent', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n _this.setCasesMap();\n }));\n this.watchers.push(this.scope.$watch('vm.carer', function () {\n var _a, _b;\n _this.carerMap = (_b = (_a = _this.carer) === null || _a === void 0 ? void 0 : _a.map(function (x) { return ({ text: x.displayTitle, value: x.objectId }); })) !== null && _b !== void 0 ? _b : [];\n }, true));\n this.watchers.push(this.scope.$watch('vm.form.dateFrom', function (newVal, oldVal) {\n if (JSON.stringify(newVal) !== JSON.stringify(oldVal))\n _this.getWv();\n }));\n this.watchers.push(this.scope.$watch('vm.form.flsCaseId', function (newVal, oldVal) {\n if (newVal !== oldVal)\n _this.getWv();\n _this.setCaseDependetForm();\n }));\n this.watchers.push(this.scope.$watch('vm.form.carerId', function (newVal, oldVal) {\n if (newVal !== oldVal)\n _this.getWv();\n _this.getCases();\n }));\n this.watchers.push(this.scope.$watch('vm.form', function (newVal, oldVal) {\n _this.setCasesMap();\n if (newVal === oldVal)\n return;\n //reset the form\n _this.id.$setPristine();\n _this.id.$setUntouched();\n }));\n this.watchers.push(this.scope.$watch('vm.internalMiscontactId', function () {\n if (!_this.form)\n return;\n if (_this.isMiscontactEnabled)\n if (_this.internalMiscontactId === QMC.Common.Constants.FLS_NO_MISCONTACT)\n _this.form.miscontactId = QMC.Common.Constants.GUID_EMPTY;\n else\n _this.form.miscontactId = _this.internalMiscontactId;\n else {\n _this.form.miscontactId = QMC.Common.Constants.FLS_NO_MISCONTACT;\n }\n }));\n this.watchers.push(this.scope.$watch('vm.isMiscontactEnabled', function () {\n if (!_this.form)\n return;\n if (!_this.isMiscontactEnabled) {\n _this.internalMiscontactId = QMC.Common.Constants.FLS_NO_MISCONTACT;\n _this.form.miscontactId = QMC.Common.Constants.FLS_NO_MISCONTACT;\n }\n else if (_this.internalMiscontactId === QMC.Common.Constants.FLS_NO_MISCONTACT) {\n _this.form.miscontactId = QMC.Common.Constants.GUID_EMPTY;\n }\n }));\n };\n WeekplannerFlsFormDirective.prototype.shouldDisableActivity = function () {\n var _a, _b;\n return this.isGuidEmpty((_a = this.form) === null || _a === void 0 ? void 0 : _a.carerId) || this.isGuidEmpty((_b = this.form) === null || _b === void 0 ? void 0 : _b.flsCaseId) || this.loading.wv;\n };\n WeekplannerFlsFormDirective.prototype.isGuidEmpty = function (guid) {\n return !guid || guid === QMC.Common.Constants.GUID_EMPTY;\n };\n WeekplannerFlsFormDirective.prototype.getWv = function () {\n var _this = this;\n return new Promise(function (resolve) {\n if (_this.shouldDisableActivity()) {\n resolve();\n return;\n }\n _this.loading.wv = true;\n _this.flsService.getFlsDocumentationWvModel([_this.form.flsCaseId], _this.form.documentationId, [_this.form.carerId], _this.form.dateFrom)\n .then(function (data) {\n _this.wvMaps = {\n activity: data[0].documentationCarerWvModel.activityWv.map(function (x) { return ({ text: x.name, value: x.objectId }); }),\n careType: data[0].documentationCarerWvModel.careTypeWv.map(function (x) { return ({ text: x.name, value: x.objectId }); }),\n contactType: data[0].documentationCarerWvModel.contactTypeWv.map(function (x) { return ({ text: x.name, value: x.objectId }); }),\n miscontact: data[0].documentationCarerWvModel.miscontactWv.map(function (x) { return ({ text: x.name, value: x.objectId }); })\n };\n })\n .catch(function () { return _this.wvMaps = { activity: [], careType: [], contactType: [], miscontact: [] }; })\n .finally(function () {\n _this.loading.wv = false;\n _this.applyDefaultWv();\n _this.setCaseDependetForm();\n resolve();\n });\n });\n };\n WeekplannerFlsFormDirective.prototype.applyDefaultWv = function () {\n var _this = this;\n var _a, _b, _c, _d, _e, _f, _g;\n if (this.isGuidEmpty((_a = this.form) === null || _a === void 0 ? void 0 : _a.objectId)) { // do not automatically alter persisted data\n if (this.isGuidEmpty(this.form.activityTypeId))\n this.form.activityTypeId = this.defaultActivities.activity;\n if (this.isGuidEmpty(this.form.careTypeId))\n this.form.careTypeId = this.defaultActivities.careType;\n if (this.isGuidEmpty(this.form.contactTypeId))\n this.form.contactTypeId = this.defaultActivities.contactType;\n this.form.activityTypeId = ((_c = (_b = this.wvMaps) === null || _b === void 0 ? void 0 : _b.activity) === null || _c === void 0 ? void 0 : _c.some(function (x) { return x.value === _this.form.activityTypeId; })) ? this.form.activityTypeId : QMC.Common.Constants.DEFAULT_ACTIVITY_ID;\n this.form.careTypeId = ((_e = (_d = this.wvMaps) === null || _d === void 0 ? void 0 : _d.careType) === null || _e === void 0 ? void 0 : _e.some(function (x) { return x.value === _this.form.careTypeId; })) ? this.form.careTypeId : QMC.Common.Constants.GUID_EMPTY;\n this.form.contactTypeId = ((_g = (_f = this.wvMaps) === null || _f === void 0 ? void 0 : _f.contactType) === null || _g === void 0 ? void 0 : _g.some(function (x) { return x.value === _this.form.contactTypeId; })) ? this.form.contactTypeId : QMC.Common.Constants.GUID_EMPTY;\n }\n this.$qui.scopeApply(this.scope);\n };\n WeekplannerFlsFormDirective.prototype.areRequiredFieldsOkay = function () {\n var _a, _b;\n var isMiscontactValid = !this.isMiscontactEnabled || !this.isGuidEmpty(this.internalMiscontactId);\n return isMiscontactValid && !this.isGuidEmpty((_a = this.form) === null || _a === void 0 ? void 0 : _a.carerId) && !this.isGuidEmpty((_b = this.form) === null || _b === void 0 ? void 0 : _b.flsCaseId);\n };\n return WeekplannerFlsFormDirective;\n }());\n angular.module('QMC.Fachleistung').component('qmWeekplannerFlsForm', {\n templateUrl: './fls/WeekplannerFlsForm',\n controller: ['$scope', '$qui', 'FachleistungService', 'UserService', WeekplannerFlsFormDirective],\n controllerAs: 'vm',\n bindings: {\n onlyCurrent: '=',\n carer: '=',\n form: '=?',\n isValid: '=?',\n setForm: '=?',\n }\n });\n })(Fachleistung = QMC.Fachleistung || (QMC.Fachleistung = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Fachleistung;\n (function (Fachleistung) {\n var FlsSignatureListController = /** @class */ (function () {\n /**\n * QMC.Fachleistung.SignatureController\n * @constructor\n * @param fachleistungsService\n * @param $qui\n * @param $stateParams\n * @param klientService\n * @param $state\n * @param lng\n */\n function FlsSignatureListController($location, $scope, fachleistungsService, $qui, $stateParams, klientService, $state, $timeout, userService, lng, permissionService) {\n var _this = this;\n this.$location = $location;\n this.$scope = $scope;\n this.fachleistungsService = fachleistungsService;\n this.$qui = $qui;\n this.$stateParams = $stateParams;\n this.klientService = klientService;\n this.$state = $state;\n this.$timeout = $timeout;\n this.userService = userService;\n this.lng = lng;\n this.permissionService = permissionService;\n this.sliderSizeCacheName = 'SigSliderSizes';\n this.ui = new QMC.Fachleistung.UserInterface();\n this.allowTableExport = false;\n this.filterSearchText = \"\";\n this.signatureMode = \"single\";\n this.defaultSigningPerson = QMC.Common.UserSettingConstantsAndDefaults.DEFAULTSIGNINGPERSON;\n this.defaultSigningReason = QMC.Common.UserSettingConstantsAndDefaults.DEFAULTSIGNINGREASON;\n this.defaultSigningReasonText = \"\";\n this.reasonNotMandatory = false;\n this.allFlsChecked = false;\n this.blockModal = false;\n this.promptOptionsOneMore = {\n title: \"Fachleistungen\",\n yesNo: true,\n icon: \"qm-icon-clock\",\n text: this.lng.translate(20016136, 'Wollen Sie weitere Fachleistungen für den Klienten erfassen?'),\n };\n this.signingPersonClientId = QMC.Common.Constants.SIGNATURE_SIGNING_PERSON_CLIENT;\n this.maxTargetWidth = 600;\n this.maxPossibleWidth = 300;\n this.sigHeight = 150;\n this.sigWidth = 300;\n this.signatureFilterCacheName = \"SignatureFilter;\";\n this.signatureOnlyCurrentCases = \"SignatureOnlyCurrentCases\";\n $qui.init($qui.getSectionColor($location.path()), function () {\n // signatureModal\n $('#signatureModal').on('hidden.bs.modal', function () {\n $(\"#clear-signature\").click();\n });\n $qui.anonAvatar();\n $qui.bindEvents();\n });\n this.ui.signatureTable.data = [];\n //ObjectType: FlsSignatur\n permissionService.getPermissionsByObjectTypes([230009, 230000]).then(function (data) {\n _this.delete = data[0].delete && data[0].moduleAccess;\n _this.new = data[0].new && data[0].moduleAccess;\n _this.modify = data[0].modify && data[0].moduleAccess;\n _this.allowTableExport = data[1].print;\n });\n if (document.getElementById(\"permissions\").getAttribute(\"signature\").toLocaleLowerCase() !== \"true\") {\n this.forbidden = true;\n return;\n }\n this.filter = {\n dateFrom: moment().startOf('month').toDate(),\n dateTo: moment().endOf('month').toDate(),\n onlyOwn: false,\n onlyCurrentCases: false\n };\n //get Filter Cache\n this.filter.onlyOwn = JSON.parse(localStorage.getItem(this.signatureFilterCacheName));\n this.filter.onlyCurrentCases = JSON.parse(localStorage.getItem(this.signatureOnlyCurrentCases));\n this.$qui.getTableAutoload(this.userService).then(function (ltd) {\n _this.shouldLoadTableData = ltd;\n _this.userService.getUserSettings([\"FLS.SIGNATURE.BLOCK\", \"FLS.SIGNATURE.HIDEREPORTS\", \"FLS.SHOWMONTHFILTER\", \"FLS.MINUTESTOSIGN\"]).then(function (data) {\n _this.blockModal = (data[0].value.toLowerCase() === \"true\");\n if (_this.blockModal) {\n $(\"#signatureModal\").on('shown.bs.modal', function () {\n $('div.modal-backdrop').css('opacity', 1);\n });\n }\n _this.ui.signatureHideReports = data[1].value.toLowerCase() === \"true\";\n _this.ui.showMonthFilter = data[2].value === \"\" ? QMC.Common.UserSettingConstantsAndDefaults.SHOWMONTHFILTERFLS : data[2].value.toLowerCase() === \"true\";\n _this.minutesToSign = data[3].value === \"\" ? -1 : parseFloat(data[3].value);\n // when we are in detailmode we need to load the list to allow direct signature\n if (_this.shouldLoadTableData || _this.$state.current.name === \"signaturedetail\") {\n _this.getData();\n }\n _this.$qui.scopeApply(_this.$scope);\n });\n });\n this.userService.getUserSettings([\"FLS.SIGNATURE.DEFAULTSIGNINGPERSON\", \"FLS.SIGNATURE.DEFAULTSIGNINGREASON\", \"FLS.SIGNATURE.DEFAULTSIGNINGREASONTEXT\",\n \"FLS.SIGNATURE.REASONNOTMANDATORY\"], false).then(function (data) {\n if (data[0].value !== \"\")\n _this.defaultSigningPerson = data[0].value;\n if (data[1].value !== \"\")\n _this.defaultSigningReason = data[1].value;\n _this.defaultSigningReasonText = data[2].value;\n _this.reasonNotMandatory = data[3].value.toLowerCase() === 'true';\n });\n this.cards = false;\n if (QMC.Common.Constants.IS_MOBILE)\n this.cards = true;\n this.$scope.$watch('vm.user', function (newValue, oldValue) {\n if (newValue === oldValue)\n return;\n if (_this.user === _this.signingPersonClientId) {\n _this.reasonWv = QMC.Common.Constants.GUID_EMPTY;\n _this.notice = '';\n return;\n }\n if (_this.user === _this.defaultSigningPerson) {\n _this.reasonWv = _this.defaultSigningReason;\n }\n });\n this.$scope.$watch('vm.reasonWv', function (newValue, oldValue) {\n if (newValue === oldValue)\n return;\n if (_this.reasonWv === _this.defaultSigningReason && _this.user !== _this.signingPersonClientId) {\n _this.notice = _this.defaultSigningReasonText;\n }\n });\n this.$scope.$watch('vm.selectedMultiSignClient', function (newValue, oldValue) {\n if (newValue === oldValue)\n return;\n _this.allFlsChecked = false;\n _this.item = null;\n });\n this.$scope.$watch('vm.sigWidth', function (newValue, oldValue) {\n if (newValue !== oldValue && newValue === 300 && (oldValue === _this.maxTargetWidth || oldValue === _this.maxPossibleWidth))\n _this.setSigWidth(_this.getSigSliderCacheWidth());\n });\n this.$scope.$watch('vm.allFlsChecked', function () {\n if (!_this.multiSignableList || !_this.multiSignableList[_this.selectedMultiSignClient])\n return;\n for (var _i = 0, _a = _this.multiSignableList[_this.selectedMultiSignClient]; _i < _a.length; _i++) {\n var element = _a[_i];\n element.isChecked = _this.allFlsChecked;\n }\n _this.isSomethingChecked(_this.multiSignableList);\n });\n this.sigResizeWatcher();\n }\n FlsSignatureListController.prototype.sigResizeWatcher = function () {\n var _this = this;\n if (this.maxPossibleWidth !== $('#sig-pad').parent().width())\n this.setSigWidth(this.getSigSliderCacheWidth());\n if (this.$location.path().indexOf(\"signature\") > 0)\n setTimeout(function () { _this.sigResizeWatcher(); }, 1000);\n };\n /////////////// DISPLAY LOGIC ///////////////\n FlsSignatureListController.prototype.isSignatureEmpty = function () {\n return !this.signature || this.signature === 'data:image/gif;base64,R0lGODlhAQABAAAAACwAAAAAAQABAAA=';\n };\n FlsSignatureListController.prototype.setSigSliderSizeCache = function () {\n if (this.maxPossibleWidth <= 0 || this.sigWidth === this.maxTargetWidth || this.sigWidth === 300)\n return;\n var cache = JSON.parse(localStorage.getItem(this.sliderSizeCacheName));\n if (!cache)\n cache = [];\n for (var _i = 0, cache_1 = cache; _i < cache_1.length; _i++) {\n var element = cache_1[_i];\n if (element.possibleWidth === this.maxPossibleWidth) {\n element.width = this.sigWidth;\n localStorage.setItem(this.sliderSizeCacheName, JSON.stringify(cache));\n return;\n }\n }\n cache.push({\n possibleWidth: this.maxPossibleWidth,\n width: this.sigWidth,\n });\n localStorage.setItem(this.sliderSizeCacheName, JSON.stringify(cache));\n };\n FlsSignatureListController.prototype.getSigSliderCacheWidth = function () {\n var cache = JSON.parse(localStorage.getItem(this.sliderSizeCacheName));\n if (!cache)\n cache = [];\n for (var _i = 0, cache_2 = cache; _i < cache_2.length; _i++) {\n var element = cache_2[_i];\n if (element.possibleWidth === this.maxPossibleWidth) {\n return element.width;\n }\n }\n return this.maxTargetWidth;\n };\n FlsSignatureListController.prototype.setSigWidth = function (target) {\n this.maxPossibleWidth = $('#sig-pad').parent().width();\n this.sigWidth = this.maxPossibleWidth;\n if (this.maxTargetWidth < this.maxPossibleWidth) {\n if (target)\n this.sigWidth = target;\n else\n this.sigWidth = this.maxTargetWidth;\n }\n this.setSigHeight();\n };\n FlsSignatureListController.prototype.setSigHeight = function () {\n this.sigHeight = this.sigWidth / 2;\n this.$qui.scopeApply(this.$scope);\n this.setSigSliderSizeCache();\n };\n FlsSignatureListController.prototype.events = function () {\n var _this = this;\n this.filterWatcher = this.$scope.$watchCollection('vm.filter', function (newValue, oldValue) {\n if (newValue === oldValue)\n return;\n _this.getUnsignedList();\n });\n };\n FlsSignatureListController.prototype.toggleShowOnlyOwnCreated = function () {\n localStorage.setItem(this.signatureFilterCacheName, this.filter.onlyOwn);\n this.$qui.scopeApply(this.$scope);\n };\n FlsSignatureListController.prototype.toggleShowOnlyCurrentCases = function () {\n localStorage.setItem(this.signatureOnlyCurrentCases, this.filter.onlyCurrentCases);\n this.$qui.scopeApply(this.$scope);\n };\n FlsSignatureListController.prototype.getData = function () {\n this.getUnsignedList();\n this.getWv();\n this.events();\n };\n /**\n * selectItem\n * @description Set the current item.\n * @param item The item selected by the view\n */\n FlsSignatureListController.prototype.selectItem = function (item) {\n this.user = this.defaultSigningPerson;\n this.reasonWv = this.defaultSigningReason;\n this.notice = this.defaultSigningReasonText;\n this.signatureMode = \"single\";\n this.allowedToSign = this.checkIfAllowedToSign(item);\n this.item = item;\n if (this.blockModal)\n $(\"#signatureModal\").modal({ backdrop: 'static', keyboard: false });\n else\n $(\"#signatureModal\").modal('show');\n };\n /**\n * Checks if enough time has past from the end of a fls to sign it\n * @param item\n */\n FlsSignatureListController.prototype.checkIfAllowedToSign = function (item) {\n if (item) {\n var endDate = this.$qui.createDateFromString(item.dateToFls);\n return this.minutesToSign >= 0 ? moment(Date.now()).add(this.minutesToSign, 'm').toDate() > endDate : true;\n }\n if (this.multiSignableList != null) {\n //no item specified we iterrate through all selected fls'\n this.allowedToSign = true;\n for (var _i = 0, _a = this.multiSignableList[this.selectedMultiSignClient]; _i < _a.length; _i++) {\n var item_1 = _a[_i];\n var endDate = this.$qui.createDateFromString(item_1.dateToFls);\n this.allowedToSign = this.allowedToSign && this.minutesToSign >= 0 ? moment(Date.now()).add(this.minutesToSign, 'm').toDate() > endDate : true;\n }\n }\n return this.allowedToSign;\n };\n /**\n * setPutObject\n * @description Set the putItem with all needed properties\n */\n FlsSignatureListController.prototype.createForm = function (dataUrl) {\n var _a, _b, _c, _d;\n this.form = {\n flsDocumentationIds: [(_b = (_a = this.item) === null || _a === void 0 ? void 0 : _a.flsDocumentationId) !== null && _b !== void 0 ? _b : QMC.Common.Constants.GUID_EMPTY],\n clientId: (_d = (_c = this.item) === null || _c === void 0 ? void 0 : _c.referenceObjectId) !== null && _d !== void 0 ? _d : QMC.Common.Constants.GUID_EMPTY,\n signingPersonWvId: this.user,\n reasonWvId: this.reasonWv,\n reason: this.notice,\n signatureBase64String: dataUrl\n };\n // if signing person is client, dont save reasonWv or Text DAA-426\n if (this.form.signingPersonWvId === this.signingPersonClientId) {\n this.form.reasonWvId = QMC.Common.Constants.GUID_EMPTY;\n this.form.reason = '';\n }\n if (this.signatureMode === \"multi\") {\n this.form.flsDocumentationIds = [];\n for (var _i = 0, _e = this.multiSignableList[this.selectedMultiSignClient]; _i < _e.length; _i++) {\n var docu = _e[_i];\n if (docu.isChecked)\n if (!this.checkIdInFlsDocumentationIds(docu.flsDocumentationId)) {\n //just a measure against the \"Element mit dem gleichen Schlüssel\" error\n this.form.flsDocumentationIds.push(docu.flsDocumentationId);\n }\n }\n this.form.clientId = this.selectedMultiSignClient;\n this.form.clientFullName = this.getClientName(this.selectedMultiSignClient);\n }\n };\n FlsSignatureListController.prototype.getClientName = function (id) {\n var client = this.ui.signatureTable.data.find(function (x) { return x.clientObjectId === id; });\n return client ? this.$qui.createPersonDisplay(client.clientName, client.clientFirstName) : '';\n };\n FlsSignatureListController.prototype.checkIdInFlsDocumentationIds = function (flsDocumentationId) {\n for (var _i = 0, _a = this.form.flsDocumentationIds; _i < _a.length; _i++) {\n var docu = _a[_i];\n if (docu === flsDocumentationId) {\n return true;\n }\n }\n return false;\n };\n FlsSignatureListController.prototype.openMultipleSignature = function () {\n var _this = this;\n this.loading = true;\n $('#loading-modal').modal('show');\n this.user = this.defaultSigningPerson;\n this.reasonWv = this.defaultSigningReason;\n this.notice = this.defaultSigningReasonText;\n this.allFlsChecked = false;\n this.selectedMultiSignClient = null;\n this.signatureMode = \"multi\";\n this.item = {};\n this.multiSignableList = {};\n this.multiSignableClients = [];\n var tmpClients = [];\n this.ui.signatureTable.data.filter(function (docu) { return docu.isMultiSignable && _this.checkIfAllowedToSign(docu); }).forEach(function (docu) {\n if (_this.multiSignableList[docu.clientObjectId] === (null || undefined))\n _this.multiSignableList[docu.clientObjectId] = [];\n docu.isChecked = false;\n _this.multiSignableList[docu.clientObjectId].push(docu);\n });\n for (var client in this.multiSignableList) {\n if (this.multiSignableList.hasOwnProperty(client)) {\n tmpClients.push({ id: client, name: this.multiSignableList[client][0].clientDisplayTitle, value: client, text: this.multiSignableList[client][0].clientDisplayTitle });\n }\n }\n tmpClients.sort(function (a, b) { return (a.text.toLocaleLowerCase() > b.text.toLocaleLowerCase()) ? 1 : ((b.text.toLocaleLowerCase() > a.text.toLocaleLowerCase()) ? -1 : 0); });\n this.loading = false;\n $('#loading-modal').modal('hide');\n if (this.blockModal)\n $(\"#signatureModal\").modal({ backdrop: 'static', keyboard: false });\n else\n $(\"#signatureModal\").modal('show');\n setTimeout(function () {\n _this.multiSignableClients = tmpClients;\n });\n };\n FlsSignatureListController.prototype.isSomethingChecked = function (list) {\n if (list === (null || undefined))\n return false;\n for (var _i = 0, list_3 = list; _i < list_3.length; _i++) {\n var element = list_3[_i];\n if (element.isChecked) {\n return true;\n }\n }\n return false;\n };\n FlsSignatureListController.prototype.showReportText = function (docu) {\n docu.isActive = !docu.isActive;\n if (docu.isActive)\n this.item = docu;\n else\n this.item = {};\n for (var _i = 0, _a = this.multiSignableList[this.selectedMultiSignClient]; _i < _a.length; _i++) {\n var client = _a[_i];\n if (client.objectId !== docu.objectId)\n client.isActive = false;\n }\n };\n FlsSignatureListController.prototype.closeSignatureModal = function (close, reload) {\n var _this = this;\n if (reload === void 0) { reload = true; }\n this.$state.params.id = \"\";\n if (close)\n this.promptOptions = {\n title: \"Signierung\",\n icon: \"qm-icon-clipboard_check_edit\",\n text: this.lng.translate(20016166, 'Wollen Sie die Signierung wirklich abbrechen?'),\n };\n else\n this.promptOptions = {\n title: \"Signierung\",\n icon: \"qm-icon-clipboard_check_edit\",\n text: this.lng.translate(20000232, 'Sie werden zur Listenansicht weitergeleitet.'),\n yesNo: 'okay'\n };\n // use timeout to reload to make sure that modal backdrop has gone\n if (this.blockModal) {\n QMC.Common.Utilities.confirm(this.promptOptions, function (data) {\n if (data) {\n $(\"#signatureModal\").modal(\"hide\");\n if (reload)\n setTimeout(function () {\n _this.getUnsignedList();\n }, 250);\n _this.showOneMore();\n }\n }, '#signPrompt');\n }\n else {\n $(\"#signatureModal\").modal(\"hide\");\n if (reload)\n setTimeout(function () {\n _this.getUnsignedList();\n _this.showOneMore();\n }, 250);\n }\n this.allFlsChecked = false;\n };\n FlsSignatureListController.prototype.showOneMore = function () {\n var _this = this;\n if (this.flsCase && this.flsCase.length > 0 && this.flsCase !== QMC.Common.Constants.GUID_EMPTY) {\n QMC.Common.Utilities.confirm(this.promptOptionsOneMore, function (data) {\n if (data) {\n if (_this.flsCase)\n _this.$state.go(\"documentationnew\", { flsCaseIds: [_this.flsCase] });\n setTimeout(function () {\n $('#prompt').modal('hide');\n $('body').removeClass('modal-open');\n $('.modal-backdrop').remove();\n }, 300);\n }\n }, '#oneMorePrompt');\n }\n };\n /////////////// SERVICE FUNCTIONS ///////////////\n /**\n * signatureItem\n * @description Send the signature by fls Id to API\n */\n FlsSignatureListController.prototype.saveSignature = function () {\n var _this = this;\n this.createForm(this.signature);\n this.closeSignatureModal(false, false);\n this.loading = true;\n this.allFlsChecked = false;\n $('#loading-modal').modal('show');\n this.fachleistungsService.postSignature(this.form).then(function () {\n _this.$qui.notify({\n message: _this.lng.translate(20016206, 'Signatur(en) erfolgreich gespeichert.'),\n title: _this.lng.translate(20016008, 'Signatur'),\n icon: 'qm-icon-ballpen',\n status: 'default',\n timer: 3000,\n delay: 1000\n });\n }).finally(function () {\n _this.$state.params.id = \"\";\n _this.getUnsignedList();\n });\n };\n /**\n * getUnsignedList\n * @description Get all list of all unsigned fls documentations from API\n */\n FlsSignatureListController.prototype.getUnsignedList = function () {\n var _this = this;\n this.loading = true;\n this.$qui.functionWaiter(\"ui.createTable\", this);\n this.$qui.scopeApply(this.$scope);\n /* Remove Listener */\n this.fachleistungsService.getUnsignedFlsDocumentationList(-1, 0, this.filter.dateFrom, this.filter.dateTo, this.filter.onlyOwn, '', this.filter.onlyCurrentCases).then(function (data) {\n _this.unsigned = data;\n data.items.forEach(function (x) {\n x.clientDisplayTitle = _this.$qui.createPersonDisplay(x.clientName, x.clientFirstName, x.clientShortCaption, x.clientPersonNr);\n x.authorDisplayTitle = _this.$qui.createPersonDisplay(x.authorName, x.authorFirstName, x.authorShortCaption, x.authorPersonNr);\n });\n _this.ui.signatureTable.data = data.items;\n _this.$qui.functionWaiter(\"ui.createTable\", _this);\n if (_this.$state.current.name === \"signaturedetail\") {\n _this.$timeout(function () {\n for (var _i = 0, _a = _this.unsigned.items; _i < _a.length; _i++) {\n var item = _a[_i];\n if (item.objectId === _this.$state.params.id) {\n _this.selectItem(item);\n break;\n }\n }\n });\n }\n // Do this to know which case was selected when a docu is directly signed\n var docuId = _this.$stateParams.id;\n _this.$stateParams.id = '';\n for (var _i = 0, _a = _this.unsigned.items; _i < _a.length; _i++) {\n var docu = _a[_i];\n if (docu.objectId === docuId)\n _this.flsCase = docu.flsCaseId;\n }\n _this.loading = false;\n $('#loading-modal').modal('hide');\n _this.$qui.scopeApply(_this.$scope);\n }).catch(function () {\n _this.ui.signatureTable.data = [];\n });\n };\n /**\n * getWv\n * @description Get the WV list from API\n */\n FlsSignatureListController.prototype.getWv = function () {\n var _this = this;\n this.wvLoad = true;\n this.fachleistungsService.getSignatureWv().then(function (data) {\n _this.wvLoad = false;\n _this.wv = data;\n _this.signingPersons = _this.getSigningPersons();\n _this.reasonsWvList = _this.getReasons();\n });\n };\n FlsSignatureListController.prototype.getSigningPersons = function () {\n return this.wv.signingPersons.map(function (x) { return ({ value: x.objectId, text: x.name, isFix: x.isFix }); });\n };\n FlsSignatureListController.prototype.getReasons = function () {\n return this.wv.reasons.map(function (x) { return ({ value: x.objectId, text: x.name, isFix: x.isFix }); });\n };\n FlsSignatureListController = __decorate([\n QMC.Controller('QMC.Fachleistung', 'FlsSignatureListController'),\n QMC.Inject('$location', '$scope', 'FachleistungService', '$qui', '$stateParams', 'KlientService', '$state', '$timeout', 'UserService', 'QmcLanguageService', 'QmcPermissionService')\n ], FlsSignatureListController);\n return FlsSignatureListController;\n }());\n })(Fachleistung = QMC.Fachleistung || (QMC.Fachleistung = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Fachleistung;\n (function (Fachleistung) {\n var FlsSummaryController = /** @class */ (function () {\n function FlsSummaryController($location, flsService, userService, $qui, $stateParams, $scope, $state, $sce, permissionService, $timeout, lng, clientService) {\n var _this = this;\n this.$location = $location;\n this.flsService = flsService;\n this.userService = userService;\n this.$qui = $qui;\n this.$scope = $scope;\n this.$state = $state;\n this.$sce = $sce;\n this.permissionService = permissionService;\n this.$timeout = $timeout;\n this.lng = lng;\n this.clientService = clientService;\n this.allowExport = false;\n this.referencesMap = [];\n this.maps = {\n wvlivingAreaList: [],\n wvmarkingsList: [],\n };\n this.filteredTextBlocks = [];\n this.filterText = \"\";\n this.caseFilter = QMC.Common.UserSettingConstantsAndDefaults.FLS_CASE_FILTER_DEFAULTS;\n this.orderAscending = true;\n this.isMobile = QMC.Common.Constants.IS_MOBILE;\n this.showTime = false;\n // pagination\n this.page = 0;\n this.pageSize = 30;\n this.filterCacheName = 'flsSummaryFilterCache';\n this.groupTags = {\n client: this.lng.translate(21002000, 'Klient'),\n personslist: this.lng.translate(20000237, 'Personenliste'),\n case: this.lng.translate(20016028, 'Fall')\n };\n var previousState = JSON.parse(localStorage.getItem('previousState'));\n $qui.init($qui.getSectionColor($location.path()), function () {\n $qui.anonAvatar();\n $qui.bindEvents();\n });\n if (document.getElementById(\"permissions\").getAttribute(\"fachleistung\").toLocaleLowerCase() !== \"true\") {\n console.log(\"No rights to see module fachleistung\");\n this.forbidden = true;\n return;\n }\n $qui.cachePrivateContentPermission(permissionService);\n permissionService.getPermissionsByObjectTypes([230000]).then(function (data) {\n _this.allowExport = data[0].print;\n });\n this.loading = false;\n if (localStorage.getItem(QMC.Common.LocalStorageConstants.FLS_SUMMARY_ORDER_ASCENDING) !== null) {\n this.orderAscending = localStorage.getItem(QMC.Common.LocalStorageConstants.FLS_SUMMARY_ORDER_ASCENDING) === \"true\";\n }\n var filterCache = localStorage.getItem(this.filterCacheName);\n if (filterCache && filterCache.length > 0) {\n var cache = JSON.parse(filterCache);\n this.dateFrom = this.$qui.createDateFromString(cache.dateFrom);\n this.dateTo = this.$qui.createDateFromString(cache.dateTo);\n }\n else {\n this.dateFrom = moment().startOf('month').toDate();\n this.dateTo = moment().endOf('month').toDate();\n }\n if (previousState && previousState.controller === 'FlsDocumentationController' && localStorage.getItem(QMC.Common.LocalStorageConstants.FLS_SUMMARY_LAST_SEARCH) !== null) {\n this.lastSearch = JSON.parse(localStorage.getItem(QMC.Common.LocalStorageConstants.FLS_SUMMARY_LAST_SEARCH));\n if (this.lastSearch) {\n this.dateFrom = this.$qui.createDateFromString(this.lastSearch.dateFrom);\n this.dateTo = this.$qui.createDateFromString(this.lastSearch.dateTo);\n this.filterText = this.lastSearch.searchString;\n localStorage.removeItem(QMC.Common.LocalStorageConstants.FLS_SUMMARY_LAST_SEARCH);\n }\n }\n // datefilter validation and failsafe to defaults:\n if (!(this.dateFrom instanceof Date) || isNaN(this.dateFrom))\n this.dateFrom = moment().startOf('month').toDate();\n if (!(this.dateTo instanceof Date) || isNaN(this.dateTo))\n this.dateTo = moment().endOf('month').toDate();\n this.userService.getUserSettings([\"SHOWTIMEINSTEADOFDECIMAL\", \"FLS.SUMMARY.PAGESIZE\", QMC.Common.UserSettingConstantsAndDefaults.FLS_CASE_FILTER_KEY]).then(function (data) {\n _this.showTime = data[0].value === \"\" ? QMC.Common.UserSettingConstantsAndDefaults.SHOWTIMEINSTEADOFDECIMAL : data[0].value.toLowerCase() === \"true\";\n _this.pageSize = data[1].value === \"\" ? _this.pageSize : parseInt(data[1].value);\n _this.caseFilter = data[2].value === '' ? _this.caseFilter : JSON.parse(data[2].value);\n _this.getCases();\n });\n this.getClients();\n }\n /////////////// DISPLAY LOGIC ///////////////\n FlsSummaryController.prototype.formatTimeString = function (durationInHours) {\n if (this.showTime) {\n var conv = this.$qui.convertDec(durationInHours);\n var minutes = conv[1].toString();\n if (conv[1] < 10)\n minutes = \"0\" + minutes;\n return conv[0] + \":\" + minutes;\n }\n else {\n return durationInHours.toFixed(2).toString().replace('.', ',');\n }\n };\n /**\n * initForm\n * @description Init the form with default values\n */\n FlsSummaryController.prototype.init = function () {\n var _this = this;\n this.$scope.$watch('vm.page', function (newValue, oldValue) {\n if (newValue === oldValue || _this.dontTriggerPageChange)\n return;\n _this.getData(false);\n });\n this.$qui.getTableAutoload(this.userService).then(function (ltd) {\n _this.shouldLoadTableData = ltd;\n if (_this.shouldLoadTableData) {\n _this.$scope.$watch('vm.selectedReferenceId', function (newValue, oldValue) {\n if (newValue === oldValue)\n return;\n _this.geLivingAreaWvList();\n _this.getData();\n });\n _this.$scope.$watch('vm.livingAreaIds', function (newValue, oldValue) {\n if (newValue === oldValue)\n return;\n _this.getData();\n });\n _this.$scope.$watch('vm.markingIds', function (newValue, oldValue) {\n if (newValue === oldValue)\n return;\n _this.getData();\n });\n _this.$scope.$watch('vm.dateFrom', function (newValue, oldValue) {\n if (newValue === oldValue)\n return;\n if (_this.dateFrom > _this.dateTo)\n _this.dateTo = _this.dateFrom;\n _this.getData();\n });\n _this.$scope.$watch('vm.dateTo', function (newValue, oldValue) {\n if (newValue === oldValue)\n return;\n if (_this.dateTo < _this.dateFrom)\n _this.dateFrom = _this.dateTo;\n _this.getData();\n });\n _this.$scope.$watch('vm.filterText', function (newValue, oldValue) {\n if (newValue === oldValue)\n return;\n var lastValue = _this.filterText;\n setTimeout(function () {\n if (_this.filterText === lastValue) {\n _this.getData();\n }\n }, 500);\n });\n _this.getData();\n }\n });\n };\n /**\n * currentFilter\n * @description Filter the content by entry.\n * @param entry The entry entered in the View\n */\n FlsSummaryController.prototype.currentfilter = function (entry) {\n var filterActive = $('#filterActive').val();\n console.log(entry, filterActive, entry.isCurrent);\n if (filterActive === 'true')\n return entry.isCurrent;\n else\n return true;\n };\n FlsSummaryController.prototype.toggleShowCurrentOnly = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.referencesMap = this.createReferencesMap();\n this.$qui.scopeApply(this.$scope);\n return [4 /*yield*/, this.userService.setUserSettings({ settings: [{ key: QMC.Common.UserSettingConstantsAndDefaults.FLS_CASE_FILTER_KEY, value: JSON.stringify(this.caseFilter) }] })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n FlsSummaryController.prototype.toggleOrderAscending = function () {\n localStorage.setItem(QMC.Common.LocalStorageConstants.FLS_SUMMARY_ORDER_ASCENDING, this.orderAscending.toString());\n if (!this.shouldLoadTableData)\n return;\n console.log('####: order changed', this.orderAscending);\n this.getData();\n };\n FlsSummaryController.prototype.stripHtml = function (str) {\n var temp = document.createElement('DIV');\n temp.innerHTML = str;\n return temp.textContent.trim() || temp.innerText.trim();\n };\n FlsSummaryController.prototype.openDocu = function (id) {\n this.loading = true;\n localStorage.setItem(QMC.Common.LocalStorageConstants.FLS_SUMMARY_LAST_SEARCH, JSON.stringify({\n caseId: this.selectedReferenceId,\n dateFrom: this.dateFrom,\n dateTo: this.dateTo,\n searchString: this.filterText,\n scrollPos: id\n }));\n this.$qui.scopeApply(this.$scope);\n localStorage.setItem(QMC.Common.LocalStorageConstants.FLS_PREVIOUS_STATE, JSON.stringify({\n state: this.$state.$current.name,\n params: {}\n }));\n this.$state.go(\"documentationdetail\", { id: id });\n };\n FlsSummaryController.prototype.changePage = function (newPage) {\n this.page = newPage;\n };\n /////////////// SERVICE FUNCTIONS ///////////////\n /**\n * getCases\n * @description Get the aviable fls cases from API\n */\n FlsSummaryController.prototype.getCases = function () {\n var _this = this;\n this.loading = true;\n this.flsService.getCasesListByViewPermission(false).then(function (data) {\n _this.allCases = data;\n _this.referencesMap = _this.createReferencesMap();\n _this.loading = false;\n if (_this.lastSearch) {\n _this.selectedReferenceId = _this.lastSearch.caseId;\n }\n var filterCache = localStorage.getItem(_this.filterCacheName);\n if (filterCache && filterCache.length > 0) {\n var cache_3 = JSON.parse(filterCache);\n if (_this.referencesMap.some(function (x) { return x.value === cache_3.caseId; }))\n _this.selectedReferenceId = cache_3.caseId;\n }\n _this.geLivingAreaWvList();\n _this.$qui.scopeApply(_this.$scope);\n _this.init();\n });\n };\n FlsSummaryController.prototype.getClients = function () {\n var _this = this;\n Promise.all([this.clientService.getMinimalClientList(), this.clientService.getAllPersonLists()]).then(function (_a) {\n var data = _a[0], datapl = _a[1];\n _this.clients = data;\n _this.personlists = datapl;\n _this.referencesMap = _this.createReferencesMap();\n _this.$qui.scopeApply(_this.$scope);\n });\n };\n FlsSummaryController.prototype.createReferencesMap = function () {\n var _this = this;\n var _a, _b, _c, _d;\n var cases = ((_b = (_a = this.allCases) === null || _a === void 0 ? void 0 : _a.filter(function (x) { return x.isCurrent || !_this.caseFilter.onlyCurrentCases; })) !== null && _b !== void 0 ? _b : []).map(function (x) { return (__assign(__assign({}, _this.$qui.createCaseDisplayObject(x)), { group: _this.groupTags.case })); });\n var clients = ((_c = this.clients) !== null && _c !== void 0 ? _c : []).map(function (x) { return ({ text: _this.$qui.createPersonDisplay(x.name, x.forename, x.shortCaption, x.personNumber), value: x.id, group: _this.groupTags.client }); });\n var lists = ((_d = this.personlists) !== null && _d !== void 0 ? _d : []).map(function (x) { return ({ text: x.name, value: x.objectId, group: _this.groupTags.personslist }); });\n return __spreadArrays(cases, clients, lists);\n };\n FlsSummaryController.prototype.geLivingAreaWvList = function () {\n var _this = this;\n this.maps.wvlivingAreaList = [];\n this.maps.wvmarkingsList = [];\n this.flsService.getFlsDocumentationWvModel([this.selectedReferenceId], null, [$('#session').data().personId]).then(function (data) {\n if (data.length > 0) {\n _this.maps.wvlivingAreaList = data[0].documentationCarerWvModel.livingAreaWvList.map(function (x) { return ({ value: x.objectId, text: x.name, isFix: x.isFix }); });\n _this.maps.wvlivingAreaList.unshift({ value: QMC.Common.Constants.GUID_EMPTY, text: _this.lng.translate(20000212, '- Alle -'), isFix: true });\n _this.maps.wvmarkingsList = data[0].documentationCarerWvModel.markingsWvList.map(function (x) { return ({ value: x.objectId, text: x.name, isFix: x.isFix }); });\n _this.maps.wvmarkingsList.unshift({ value: QMC.Common.Constants.GUID_EMPTY, text: _this.lng.translate(20000212, '- Alle -'), isFix: true });\n }\n });\n };\n /**\n * getSummary\n * @description Get the fls summary by activeCaseId and a dateRange from API\n */\n FlsSummaryController.prototype.getData = function (resetPage) {\n var _this = this;\n if (resetPage === void 0) { resetPage = true; }\n if (!this.selectedReferenceId || this.selectedReferenceId === QMC.Common.Constants.GUID_EMPTY)\n return;\n // cache current filter\n localStorage.setItem(this.filterCacheName, JSON.stringify({\n caseId: this.selectedReferenceId,\n dateFrom: this.dateFrom,\n dateto: this.dateTo\n }));\n this.loading = true;\n this.$qui.scopeApply(this.$scope);\n if (resetPage) {\n this.dontTriggerPageChange = true;\n this.page = 0;\n this.dontTriggerPageChange = false;\n }\n var paginationInfo = {\n page: this.page,\n pageSize: this.pageSize\n };\n var filter = null;\n filter = {\n id: this.selectedReferenceId,\n dateFrom: this.dateFrom,\n dateTo: this.dateTo,\n orderAscending: this.orderAscending,\n pagination: paginationInfo,\n listSearch: this.filterText,\n livingAreaIds: this.livingAreaIds,\n markingIds: this.markingIds,\n exclude: undefined,\n referenceType: this.getTypeForId(this.selectedReferenceId)\n };\n this.flsService.getFlsDocumentationSummary(filter).then(function (data) {\n _this.summaryItems = data.items;\n _this.paginationInfo = data.paginationInfo;\n _this.loading = false;\n _this.$qui.scopeApply(_this.$scope);\n _this.$timeout(function () {\n if (_this.lastSearch) {\n //document.getElementById('box-' + this.lastSearch.scrollPos).scrollIntoView(true);\n var element = document.getElementById('box-' + _this.lastSearch.scrollPos);\n var elementRect = element.getBoundingClientRect();\n var absoluteElementTop = elementRect.top + window.pageYOffset;\n var middle = absoluteElementTop - (window.innerHeight / 2);\n window.scrollTo(0, middle);\n }\n });\n });\n };\n FlsSummaryController.prototype.getTypeForId = function (id) {\n var _a;\n var group = (_a = this.referencesMap.find(function (x) { return x.value === id; })) === null || _a === void 0 ? void 0 : _a.group;\n switch (group) {\n case this.groupTags.personslist:\n return 190000;\n case this.groupTags.client:\n return 140000;\n case this.groupTags.case:\n default:\n return 0;\n }\n };\n FlsSummaryController.prototype.print = function () {\n var areas = document.getElementsByName('printableAreas');\n var winPrint = window.open('', '', 'left=0,top=0,width=800,height=600,toolbar=0,scrollbars=0,status=0');\n for (var i = 0; i < areas.length; i++) {\n winPrint.document.write(areas[i].innerHTML);\n if (i % 2 == 1)\n winPrint.document.write(\"
\");\n }\n winPrint.document.close();\n winPrint.focus();\n winPrint.print();\n winPrint.close();\n };\n FlsSummaryController = __decorate([\n QMC.Controller('QMC.Fachleistung', 'FlsSummaryController'),\n QMC.Inject('$location', 'FachleistungService', 'UserService', '$qui', '$stateParams', '$scope', '$state', '$sce', 'QmcPermissionService', '$timeout', 'QmcLanguageService', 'KlientService')\n ], FlsSummaryController);\n return FlsSummaryController;\n }());\n Fachleistung.FlsSummaryController = FlsSummaryController;\n })(Fachleistung = QMC.Fachleistung || (QMC.Fachleistung = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Fachleistung;\n (function (Fachleistung) {\n var SummaryDirective = /** @class */ (function () {\n function SummaryDirective($location, $qui, $state, $sce, lng, permissionService, flsService) {\n var _this = this;\n this.$location = $location;\n this.$qui = $qui;\n this.$state = $state;\n this.$sce = $sce;\n this.lng = lng;\n this.permissionService = permissionService;\n this.flsService = flsService;\n this.restrict = 'E';\n this.templateUrl = './fls/SummaryDirective/';\n this.scope = {\n 'qmCaseId': '@',\n 'qmOrderAscending': '@',\n 'qmDateFrom': '@',\n 'qmDateTo': '@',\n 'qmPage': '@',\n 'qmPageSize': '@',\n 'qmShowTime': '@',\n 'qmExclude': '@'\n };\n this.showError = false;\n this.link = function (scope) {\n scope.$sce = _this.$sce;\n var lastRequest = { case: null, qmDateFrom: null, qmDateTo: null, order: null, page: 0, pageSize: 0 };\n if (scope.qmPage == (null || undefined))\n scope.qmPage = 0;\n if (scope.qmPageSize == (null || undefined))\n scope.qmPageSize = -1;\n scope.getSummary = function () {\n var request = { case: scope.qmCaseId, qmDateFrom: scope.qmDateFrom, qmDateTo: scope.qmDateTo, order: scope.qmOrderAscending, page: scope.qmPage, pageSize: scope.qmPageSize };\n if (!request.case ||\n (lastRequest.case == request.case && lastRequest.qmDateFrom == request.qmDateFrom && lastRequest.qmDateTo == request.qmDateTo && request.order == lastRequest.order\n && lastRequest.page == request.page && lastRequest.pageSize == request.pageSize))\n return;\n lastRequest = request;\n scope.loading = true;\n _this.flsService.getFlsDocumentationSummary({ id: request.case, dateFrom: request.qmDateFrom, dateTo: request.qmDateTo, orderAscending: !scope.qmOrderAscending, pagination: { page: scope.qmPage, pageSize: scope.qmPageSize }, listSearch: '', livingAreaIds: [], markingIds: [], exclude: scope.qmExclude }).then(function (data) {\n scope.summaryItems = data.items;\n scope.qmPaginationInfo = data.paginationInfo;\n scope.loading = false;\n });\n };\n scope.formatTimeString = function (durationInHours) {\n if (scope.qmShowTime) {\n var conv = _this.$qui.convertDec(durationInHours);\n var minutes = conv[1].toString();\n if (conv[1] < 10)\n minutes = \"0\" + minutes;\n return conv[0] + \":\" + minutes;\n }\n else {\n return durationInHours.toFixed(2).toString().replace('.', ',');\n }\n };\n scope.openDocu = function (id) {\n localStorage.setItem(QMC.Common.LocalStorageConstants.FLS_PREVIOUS_STATE, JSON.stringify({\n state: _this.$state.$current.name,\n params: {}\n }));\n _this.$state.go(\"documentationdetail\", { id: id });\n };\n scope.stripHtml = function (html) {\n var temp = document.createElement('DIV');\n temp.innerHTML = html;\n return temp.textContent.trim() || temp.innerText.trim();\n };\n scope.changePage = function (newPage) {\n scope.qmPage = newPage;\n };\n scope.$watch('qmDateFrom', function () {\n if (scope.qmDateFrom > scope.qmDateTo)\n scope.qmDateTo = scope.qmDateFrom;\n scope.getSummary();\n });\n scope.$watch('qmDateTo', function () {\n if (scope.qmDateTo < scope.qmDateFrom)\n scope.qmDateFrom = scope.qmDateTo;\n scope.getSummary();\n });\n scope.$watch('qmOrderAscending', function () {\n scope.getSummary();\n });\n scope.$watch('qmPage', function () {\n scope.getSummary();\n });\n scope.$watch('qmPageSize', function () {\n scope.getSummary();\n });\n scope.$watch('qmCaseId', function () {\n scope.getSummary();\n });\n setTimeout(function () {\n scope.getSummary();\n }, 500);\n };\n }\n SummaryDirective = __decorate([\n QMC.Directive('QMC.Fachleistung', 'qmFlsSummary', ['$location', '$qui', '$state', '$sce', 'QmcLanguageService', 'QmcPermissionService', 'FachleistungService'])\n ], SummaryDirective);\n return SummaryDirective;\n }());\n })(Fachleistung = QMC.Fachleistung || (QMC.Fachleistung = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Fachleistung;\n (function (Fachleistung) {\n /**\n * Fachleistung UserInterface class\n *\n * @export\n * @class UserInterface\n * @extends {Common.UserInterface}\n */\n var UserInterface = /** @class */ (function (_super) {\n __extends(UserInterface, _super);\n function UserInterface() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.showMonthFilter = true;\n /**\n * Fachleistung case table\n * @memberOf UserInterface\n */\n _this.caseTable = {\n \"filter\": {\n \"model\": null\n },\n \"table\": {\n //\"Checkbox\": {\n // \"id\": \"objectId\",\n // \"selected\": \"isChecked\",\n // \"dType\": \"Checkbox\",\n // \"events\": {\n // \"onChange\": \"toggleChecked\"\n // }\n //},\n \"Bild\": {\n \"label\": \"clientObjectId\",\n \"dType\": \"Avatar\",\n \"name\": \"name\",\n \"forename\": \"forename\",\n \"selectable\": \"true\",\n \"selectableExclude\": \"isGroup\",\n \"events\": {\n \"onChange\": \"toggleChecked\"\n },\n \"selected\": \"isChecked\"\n },\n \"Name\": {\n \"label\": \"fullName\",\n \"dType\": \"string\",\n \"lngTag\": \"20000072\"\n },\n \"Leistung\": {\n \"label\": \"internalName\",\n \"dType\": \"string\",\n \"lngTag\": \"20000089\"\n },\n \"Datum\": {\n \"label\": \"date\",\n \"dType\": \"Date\",\n \"style\": \"highlightDate\",\n \"lngTag\": \"20000045\"\n },\n \"Aktueller Fall\": {\n \"label\": \"isCurrent\",\n \"dType\": \"Bool\",\n \"invisible\": \"true\",\n },\n \"Id\": {\n \"label\": \"objectId\",\n \"dType\": \"string\",\n \"invisible\": \"true\",\n },\n \"Aktionen\": [{\n \"icon\": \"qm-icon-add blue\",\n \"href\": \"#/fls/documentation/new/{{objectId}}\",\n \"label\": \"objectId\",\n \"tooltip\": \"FLS eintragen\",\n \"lngTag\": \"20016064\",\n \"dType\": \"Button\",\n }, {\n \"icon\": \"qm-icon-clock orange\",\n \"click\": \"toggleContingentModal\",\n \"label\": \"objectId\",\n \"dType\": \"Button\",\n \"tooltip\": \"Kontingent anzeigen\",\n \"lngTag\": \"20016029\",\n }, {\n \"icon\": \"qm-icon-dude4 green\",\n \"href\": \"#/stammdaten/detail/{{clientObjectId}}/cover/{{clientObjectId}}\",\n \"label\": \"clientObjectId\",\n \"dType\": \"Button\",\n \"events\": {\n \"hide\": \"isGroup\",\n },\n \"tooltip\": \"Klient Stammdaten\",\n \"lngTag\": \"21002052\",\n }, {\n \"icon\": \"qm-icon-note_text darkslategray\",\n \"click\": \"toggleCommentModal\",\n \"label\": \"Comment\",\n \"dType\": \"Button\",\n \"events\": {\n \"hide\": \"!comment\",\n },\n \"tooltip\": \"Bemerkung\",\n \"lngTag\": \"20000049\",\n }],\n }, \"card\": {\n \"idProperty\": \"objectId\",\n \"avatar\": {\n \"label\": \"clientObjectId\",\n \"dType\": \"Avatar\",\n \"name\": \"name\",\n \"forename\": \"forename\",\n \"selectable\": \"true\",\n \"selectableExclude\": \"isGroup\",\n \"events\": {\n \"onChange\": \"toggleChecked\"\n },\n \"selected\": \"isChecked\"\n },\n \"text\": {\n \"label\": [\"fullName\"],\n \"dType\": \"string\"\n },\n \"subtext\": [\n {\n \"label\": \"internalName\",\n \"dType\": \"string\",\n \"style\": \"highlightDate\"\n },\n {\n \"label\": \"date\",\n \"dType\": \"string\",\n \"style\": \"highlightDate\"\n }\n ],\n \"toggle\": {\n \"label\": \"isCurrent\"\n },\n \"buttons\": [{\n \"icon\": \"qm-icon-add blue\",\n \"href\": \"#/fls/documentation/new/{{objectId}}\",\n \"label\": \"objectId\",\n \"tooltip\": \"FLS eintragen\",\n \"lngTag\": \"20016064\",\n \"dType\": \"Button\",\n }, {\n \"icon\": \"qm-icon-clock orange\",\n \"click\": \"toggleContingentModal\",\n \"label\": \"objectId\",\n \"dType\": \"Button\",\n \"tooltip\": \"Kontingent anzeigen\",\n \"lngTag\": \"20016029\",\n }, {\n \"icon\": \"qm-icon-dude4 green\",\n \"href\": \"#/stammdaten/detail/{{clientObjectId}}/cover/{{clientObjectId}}\",\n \"label\": \"clientObjectId\",\n \"dType\": \"Button\",\n \"hide\": \"isGroup\",\n \"events\": {\n \"hide\": \"isGroup\",\n },\n \"tooltip\": \"Klient Stammdaten\",\n \"lngTag\": \"21002052\",\n }, {\n \"icon\": \"qm-icon-note_text darkslategray\",\n \"click\": \"toggleCommentModal\",\n \"label\": \"Comment\",\n \"dType\": \"Button\",\n \"events\": {\n \"hide\": \"!comment\",\n },\n \"tooltip\": \"Bemerkung\",\n \"lngTag\": \"20000049\",\n }],\n },\n \"data\": null,\n };\n /**\n * Fachleistung documentation list table\n * @memberOf UserInterface\n */\n _this.documentationTable = {\n \"config\": {\n \"defaultSort\": \"dateFrom\",\n \"sortReverse\": \"true\",\n \"tableRowLink\": \"#/fls/documentation/{{objectId}}\",\n },\n \"filter\": {\n \"model\": null,\n },\n \"table\": {\n \"Klient\": {\n \"label\": \"personReference\",\n \"dType\": \"string\",\n \"lngTag\": \"21002000\",\n \"style\": \"style\"\n },\n \"Leistung\": {\n \"label\": \"serviceName\",\n \"dType\": \"string\",\n \"lngTag\": \"20000089\",\n \"style\": \"style\"\n },\n \"Zeitraum von\": {\n \"label\": \"dateFrom\",\n \"dType\": \"Date\",\n \"withTime\": \"true\",\n \"lngTag\": \"20000060\",\n \"style\": \"style\"\n },\n \"Zeitraum bis\": {\n \"label\": \"dateTo\",\n \"dType\": \"Date\",\n \"withTime\": \"true\",\n \"lngTag\": \"20000061\",\n \"style\": \"style\"\n },\n \"Dauer\": {\n \"label\": \"duration\",\n \"dType\": \"Time\",\n \"calculate\": \"true\",\n \"lngTag\": \"20000075\",\n \"style\": \"style\"\n },\n \"Autor\": {\n \"label\": \"authorPerson\",\n \"dType\": \"string\",\n \"lngTag\": \"20000062\",\n \"style\": \"style\"\n },\n \"Erbringer\": {\n \"label\": \"performer\",\n \"dType\": \"string\",\n \"lngTag\": \"20000272\",\n \"style\": \"style\"\n },\n \"Erstellt am\": {\n \"label\": \"createdDate\",\n \"dType\": \"Date\",\n \"lngTag\": \"20000063\",\n \"style\": \"style\"\n },\n \"Signiert\": {\n \"label\": \"isSigned\",\n \"dType\": \"Bool\",\n \"invisible\": false,\n \"lngTag\": \"20016105\",\n \"style\": \"style\"\n },\n \"Fahrtdauer\": {\n \"label\": \"drivingDuration\",\n \"dType\": \"Time\",\n \"lngTag\": \"20016153\",\n \"calculate\": \"true\",\n \"style\": \"style\"\n },\n \"Fahrtstrecke\": {\n \"label\": \"drivingDistance\",\n \"dType\": \"Number\",\n \"lngTag\": \"20016154\",\n \"calculate\": \"true\",\n \"style\": \"style\"\n }\n },\n \"card\": {\n \"avatar\": {\n \"label\": \"referenceObjectId\",\n \"dType\": \"Avatar\",\n \"name\": \"personReference\",\n \"forename\": \"personReference\",\n \"href\": \"#/fls/documentation/{{objectId}}\",\n },\n \"text\": {\n \"label\": \"personReference\",\n \"dType\": \"string\"\n },\n \"subtext\": [\n {\n \"label\": \"serviceName\",\n \"dType\": \"string\",\n }, {\n \"label\": \"dateFrom\",\n \"dType\": \"Date\",\n \"withTime\": \"true\",\n }, {\n \"label\": \"dateTo\",\n \"dType\": \"Date\",\n \"withTime\": \"true\",\n }\n ],\n \"buttons\": [{\n \"icon\": \"qm-icon-eye blue\",\n \"href\": \"#/fls/documentation/{{objectId}}\",\n \"label\": \"objectId\",\n \"dType\": \"Button\",\n \"tooltip\": \"Ansehen\",\n \"lngTag\": \"20000065\",\n \"permission\": \"modify\",\n }]\n },\n \"data\": null,\n \"totalSums\": {\n data: null,\n columns: {\n \"duration\": \"totalDuration\",\n \"drivingDuration\": \"totalDrivingDuration\",\n \"drivingDistance\": \"totalDrivingDistance\"\n }\n }\n };\n _this.documentationParticipantsForm = {\n form: [\n {\n label: \"Anzahl der Teilnehmer\",\n type: \"Number\",\n model: \"participantCount\",\n lngTag: 20016086,\n style: {\n class: \"col-md-6 col-xs-12\"\n },\n events: {\n hideExpression: \"!(qmScopeCallback().group.onlyNumberOfParticipants)\"\n }\n },\n {\n type: \"Select2\",\n model: \"participants\",\n multiple: true,\n label: \"Teilnehmer\",\n lngTag: 20016084,\n dataSource: \"getParticipantsList\",\n style: {\n class: \"col-xs-12\"\n },\n events: {\n hideExpression: \"qmScopeCallback().group.onlyNumberOfParticipants\"\n }\n },\n {\n type: \"Select2\",\n model: \"participantEmployees\",\n multiple: true,\n label: \"Mitarbeiter\",\n lngTag: 20000235,\n dataSource: \"getParticipantEmployeesList\",\n style: {\n class: \"col-xs-12\"\n }\n }\n ]\n };\n _this.documentationActivityForm = {\n form: [\n {\n label: \"...als\",\n placeholder: \"Tätigkeit wählen...\",\n lngTag: 20016047,\n type: \"Select\",\n model: \"activityWvId\",\n dataSource: \"getActivityList\",\n disabled: true,\n style: {\n class: \"col-xs-12\"\n },\n events: {\n hideExpression: \"!(qmForm.isActivityFix)\"\n }\n },\n {\n label: \"...als\",\n placeholder: \"Tätigkeit wählen...\",\n lngTag: 20016047,\n type: \"Select\",\n model: \"activityWvId\",\n dataSource: \"getActivityList\",\n style: {\n class: \"col-xs-12\"\n },\n events: {\n hideExpression: \"(qmForm.isActivityFix)\"\n }\n },\n {\n label: \"Kontaktart\",\n placeholder: \"Kontaktart wählen...\",\n lngTag: 20016049,\n type: \"Select\",\n model: \"contactTypeWvId\",\n dataSource: \"getContactList\",\n style: {\n class: \"col-xs-12\"\n }\n },\n {\n label: \"Betreuungsart\",\n placeholder: \"Betreuungsart wählen...\",\n lngTag: 20016051,\n type: \"Select\",\n model: \"careTypeWvId\",\n dataSource: \"getCareTypeList\",\n style: {\n class: \"col-xs-12\"\n }\n },\n {\n type: \"Checkbox\",\n model: \"isMiscontactEnabled\",\n style: {\n class: \"col-xs-1\"\n },\n events: {\n hideExpression: \"(qmForm.isMiscontactRequired)\"\n }\n },\n {\n label: \"Fehlkontaktart\",\n lngTag: 20016242,\n type: \"Select\",\n model: \"miscontactWvId\",\n dataSource: \"getMiscontactList\",\n style: {\n class: \"col-xs-11\"\n },\n events: {\n hideExpression: \"(!qmForm.isMiscontactEnabled)\"\n }\n },\n {\n label: \"Fehlkontaktart\",\n lngTag: 20016242,\n type: \"Select\",\n model: \"miscontactWvId\",\n disabled: true,\n dataSource: \"getMiscontactList\",\n style: {\n class: \"col-xs-11\"\n },\n events: {\n hideExpression: \"(qmForm.isMiscontactEnabled)\"\n }\n }\n ]\n };\n _this.documentationDrivingCostsForm = {\n form: [\n {\n label: \"Stunden\",\n type: \"Number\",\n lngTag: 20000219,\n maxLength: 4,\n model: \"hours\",\n style: {\n class: \"col-md-3 col-xs-6\"\n }\n },\n {\n label: \"Minuten\",\n type: \"Number\",\n lngTag: 20000247,\n model: \"minutes\",\n style: {\n class: \"col-md-3 col-xs-6\"\n }\n },\n {\n label: \"Gefahrene Strecke (in km)\",\n lngTag: 20016056,\n type: \"Number\",\n model: \"drivingDistance\",\n style: {\n class: \"col-md-6 col-xs-12\"\n }\n },\n {\n label: \"Fahrtkostenart\",\n placeholder: \"Fahrtkostenart auswählen\",\n lngTag: 20016087,\n type: \"Select\",\n model: \"drivingCostCategoryId\",\n dataSource: \"getDrivingCostCategoryList\",\n style: {\n class: \"col-xs-12\"\n }\n },\n {\n label: \"Abrechnungsart\",\n placeholder: \"Abrechnungsart auswählen\",\n lngTag: 20016089,\n type: \"Select\",\n model: \"chargingMethodId\",\n dataSource: \"getDrivingCostCharingList\",\n style: {\n class: \"col-xs-12\"\n }\n },\n {\n label: \"Abfahrtsort\",\n placeholder: \"Anfahrtsort eingeben..\",\n lngTag: 20016113,\n type: \"Autocomplete\",\n id: \"departure\",\n model: \"departure\",\n style: {\n class: \"col-xs-12\",\n }\n },\n {\n label: \"Anfahrtsort\",\n lngTag: 20016114,\n placeholder: \"Abfahrtsort eingeben..\",\n type: \"Autocomplete\",\n model: \"destination\",\n id: \"destination\",\n style: {\n class: \"col-xs-12\"\n }\n }\n ]\n };\n _this.documentationTimeForm = {\n form: [\n {\n placeholder: {\n dateFrom: \"Gültig von\",\n dateTo: \"Gültig bis\",\n },\n label: {\n dateFrom: \"Gültig von\",\n dateTo: \"Gültig bis\"\n },\n type: \"DateRange\",\n startDate: null,\n endDate: null,\n model: {\n dateFrom: \"dateFrom\",\n dateTo: \"dateTo\",\n durationInHours: \"durationInHours\"\n },\n style: {\n class: \"col-xs-12 col-md-12\"\n },\n required: true,\n config: {\n displayDateTo: true,\n displayTime: true,\n dateFromNotRequired: false,\n dateToRequired: true,\n roundInterval: 0,\n startRoundType: null,\n endRoundType: null,\n disableTime: \"disableTime\",\n }\n },\n {\n label: \"Dauer\",\n model: \"timeString\",\n lngTag: 20000075,\n type: \"String\",\n disabled: true,\n style: {\n class: \"col-md-6 col-xs-12\",\n icon: \"fa fa-clock-o\"\n },\n events: {\n hide: \"isManualDuration\"\n }\n },\n {\n label: \"Stunden\",\n model: \"hours\",\n type: \"Number\",\n style: {\n class: \"col-xs-6 col-md-3\"\n },\n events: {\n hideExpression: \"!(qmForm.isManualDuration)\"\n }\n },\n {\n label: \"Minuten\",\n type: \"Number\",\n model: \"minutes\",\n style: {\n class: \"col-xs-6 col-md-3\"\n },\n events: {\n hideExpression: \"!(qmForm.isManualDuration)\"\n }\n },\n {\n label: \"Manuelle Dauer\",\n type: \"Checkbox\",\n lngTag: 20000213,\n model: \"isManualDuration\",\n id: \"isManualDuration\",\n style: {\n class: \"col-lg-2 col-xs-12 col-md-6\"\n },\n events: {\n hideExpression: \"(!qmForm.isManualTimeAllowed || !qmForm.isManuelTimeVisible)\"\n }\n },\n {\n label: \"Stunden auf ausgewählte Fälle verteilen\",\n lngTag: 20016151,\n model: \"distributeHours\",\n id: \"distributeHours\",\n type: \"Checkbox\",\n style: {\n class: \"col-lg-4 col-xs-12 col-md-6\"\n },\n events: {\n hideExpression: \"(qmScopeCallback().flsCaseIds.length < 2 || qmForm.distributeHoursFix)\"\n }\n },\n {\n label: \"Aufteilung\",\n lngTag: 20016193,\n model: \"splitString\",\n type: \"String\",\n disabled: true,\n style: {\n class: \"col-md-6 col-xs-12\",\n icon: \"fa fa-info\"\n },\n events: {\n hideExpression: \"!(qmForm.splitString && qmForm.splitString.length > 0)\"\n }\n },\n ]\n };\n /**\n * Facheleistung signature list table\n * @memberOf UserInterface\n */\n _this.signatureTable = {\n \"config\": {\n \"defaultSort\": \"dateFromFls\",\n \"sortReverse\": \"true\",\n \"events\": {\n \"click\": \"selectItem\",\n }\n },\n \"filter\": {\n \"model\": null\n },\n \"table\": {\n \"Klient\": {\n \"label\": \"clientDisplayTitle\",\n \"dType\": \"string\",\n \"lngTag\": \"21002000\"\n },\n \"Fall\": {\n \"label\": \"flsCaseName\",\n \"dType\": \"string\",\n \"lngTag\": \"20016028\"\n },\n \"Zeitraum von\": {\n \"label\": \"dateFromFls\",\n \"dType\": \"Date\",\n \"withTime\": \"true\",\n \"lngTag\": \"20000060\"\n },\n \"Zeitraum bis\": {\n \"label\": \"dateToFls\",\n \"dType\": \"Date\",\n \"withTime\": \"true\",\n \"lngTag\": \"20000061\"\n },\n \"Autor\": {\n \"label\": \"authorDisplayTitle\",\n \"dType\": \"string\",\n \"lngTag\": \"20000062\"\n },\n \"Erstellt am\": {\n \"label\": \"createdDate\",\n \"dType\": \"Date\",\n \"lngTag\": \"20000063\"\n },\n \"Signierungsart\": {\n \"label\": \"signingType\",\n \"dType\": \"string\",\n \"lngTag\": \"20016062\"\n },\n },\n \"card\": {\n \"avatar\": {\n //\"label\": \"referenceObjectId\",\n //\"dType\": \"Avatar\",\n \"icon\": \"qm-icon-print_layout_single\",\n \"name\": \"clientName\",\n \"forename\": \"clientFirstName\"\n },\n \"text\": {\n \"label\": [\"clientDisplayTitle\"],\n \"dType\": \"string\"\n },\n \"subtext\": [\n {\n \"label\": \"reportTitle\",\n \"dType\": \"string\"\n },\n ],\n \"buttons\": {\n \"icon\": \"qm-icon-ballpen blue\",\n \"click\": \"selectItem\",\n \"label\": \"data\",\n \"tooltip\": \"Signieren\",\n \"lngTag\": \"20016063\",\n \"dType\": \"Button\",\n \"permission\": \"new\"\n }\n },\n \"data\": null,\n };\n _this.rawDocuTable = {\n \"config\": {\n \"tableRowLink\": \"#/fls/documentation/{{objectId}}\",\n },\n \"table\": {\n \"Klient\": {\n \"label\": \"clientName\",\n \"dType\": \"string\",\n \"lngTag\": \"21002000\"\n },\n \"Leistung\": {\n \"label\": \"caseName\",\n \"dType\": \"string\",\n \"lngTag\": \"20000089\"\n },\n \"Zeitraum von\": {\n \"label\": \"dateFrom\",\n \"dType\": \"Date\",\n \"withTime\": \"true\",\n \"lngTag\": \"20000060\"\n },\n \"Zeitraum bis\": {\n \"label\": \"dateTo\",\n \"dType\": \"Date\",\n \"withTime\": \"true\",\n \"lngTag\": \"20000061\"\n },\n \"Autor\": {\n \"label\": \"authorName\",\n \"dType\": \"Date\",\n \"lngTag\": \"20000062\"\n },\n },\n \"card\": {\n \"avatar\": {\n \"icon\": \"qm-icon-clipboard\"\n },\n \"text\": {\n \"label\": [\"clientName\"],\n \"dType\": \"string\"\n },\n \"subtext\": [\n {\n \"label\": \"caseName\",\n \"dType\": \"string\"\n },\n {\n \"label\": \"dateFrom\",\n \"dType\": \"Date\"\n },\n {\n \"label\": \"dateTo\",\n \"dType\": \"Date\"\n },\n ],\n \"buttons\": {\n \"icon\": \"qm-icon-ballpen blue\",\n \"label\": \"data\",\n \"href\": \"#/fls/documentation/{{objectId}}\",\n \"tooltip\": \"Dokumentation ansehen\",\n \"dType\": \"Button\",\n \"permission\": \"new\"\n }\n },\n \"data\": null,\n };\n _this.planedDocuTable = {\n \"config\": {\n \"events\": {\n \"click\": \"writeFlsObjectToLocalStorage\"\n }\n },\n \"table\": {\n \"Bezeichnung\": {\n \"label\": \"reportTitle\",\n \"dType\": \"string\",\n \"lngTag\": \"20000053\"\n },\n \"Klient\": {\n \"label\": \"referencePerson\",\n \"dType\": \"string\",\n \"lngTag\": \"21002000\"\n },\n \"Zeitraum von\": {\n \"label\": \"dateFrom\",\n \"dType\": \"Date\",\n \"withTime\": \"true\",\n \"lngTag\": \"20000060\"\n },\n \"Zeitraum bis\": {\n \"label\": \"dateTo\",\n \"dType\": \"Date\",\n \"withTime\": \"true\",\n \"lngTag\": \"20000061\"\n },\n },\n \"card\": {\n \"avatar\": {\n \"icon\": \"qm-icon-clipboard_empty\"\n },\n \"text\": {\n \"label\": [\"reportTitle\"],\n \"dType\": \"string\"\n },\n \"subtext\": [\n {\n \"label\": \"referencePerson\",\n \"dType\": \"string\"\n },\n {\n \"label\": \"dateFrom\",\n \"dType\": \"Date\"\n },\n {\n \"label\": \"dateTo\",\n \"dType\": \"Date\"\n },\n ],\n \"buttons\": {\n \"icon\": \"qm-icon-ballpen blue\",\n \"label\": \"data\",\n \"click\": \"writeFlsObjectToLocalStorage\",\n \"href\": \"#/fls/documentation/new/{{flsCaseId}}?plannedDocumentationId={{objectId}}\",\n \"tooltip\": \"Dokumentation ansehen\",\n \"dType\": \"Button\",\n \"permission\": \"new\"\n }\n },\n \"data\": null,\n };\n return _this;\n }\n /**\n * Create a new Guid\n *\n * @private\n * @returns {Guid}\n *\n * @memberof UserInterface\n */\n UserInterface.prototype.getNewGuid = function () {\n var d = new Date().getTime();\n var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = (d + Math.random() * 16) % 16 | 0;\n d = Math.floor(d / 16);\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);\n });\n return uuid;\n };\n /**\n * Convert a decimal to hours and minutes\n * example 1.5 = 1 hour 30 minutes\n * @param {number} dec\n * @returns {number[]}\n *\n * @memberof UserInterface\n */\n //public convertDec(dec: number): number[] {\n // if (isNaN(dec)) return [0, 0];\n // const hours: number = Math.floor(Math.abs(dec));\n // const minutes: number = Math.floor(Math.abs(dec) * 60 % 60);\n // return [hours, minutes];\n //}\n UserInterface.prototype.convertHours = function (hours, minutes) {\n if (isNaN(minutes))\n minutes = parseInt(minutes);\n if (isNaN(hours))\n hours = parseInt(hours);\n if (isNaN(hours) || isNaN(minutes))\n return 0;\n return moment.duration(hours + \":\" + minutes).asHours();\n };\n /**\n * format the addreses to a readable format\n *\n * @param {Klient.IAddressByTypeListItem[]} data\n * @returns {*}\n *\n * @memberof UserInterface\n */\n UserInterface.prototype.formatAddresses = function (data) {\n var addresses = [];\n for (var i = 0; i < data.length; i++) {\n var displayName = data[i].name;\n displayName += data[i].forename.length > 0 ? \", \" + data[i].forename + \" (\" + data[i].street : \" (\" + data[i].street;\n displayName += data[i].street.length > 0 ? \" \" + data[i].houseNumber : data[i].houseNumber;\n displayName += data[i].street.length > 0 || data[i].houseNumber.length > 0 ? \", \" + data[i].postCode : data[i].postCode;\n displayName += data[i].postCode.length > 0 ? \" \" + data[i].city : data[i].city;\n displayName += data[i].postCode.length > 0 || data[i].city.length > 0 ? \", \" + data[i].country + \")\" : data[i].country + \")\";\n var value = data[i].forename;\n value += data[i].forename.length > 0 ? \" \" + data[i].name : data[i].name;\n value += data[i].street.length > 0 || data[i].houseNumber.length > 0 ? \", \" + data[i].street + \" \" + data[i].houseNumber : \"\";\n value += data[i].city.length > 0 || data[i].postCode.length > 0 ? \", \" + data[i].postCode + \" \" + data[i].city : \"\";\n value += data[i].country.length > 0 ? \", \" + data[i].country : \"\";\n addresses.push({\n displayName: displayName,\n value: value,\n objectTypeName: data[i].objectTypeName\n });\n }\n return addresses;\n };\n return UserInterface;\n }(QMC.Common.UserInterface));\n Fachleistung.UserInterface = UserInterface;\n })(Fachleistung = QMC.Fachleistung || (QMC.Fachleistung = {}));\n})(QMC || (QMC = {}));\n\n//# sourceMappingURL=../../maps/Fachleistung/qmc.fachleistung.js.map\n"],"names":["QMC","__extends","this","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","_","label","sent","trys","ops","g","verb","throw","return","Symbol","iterator","n","v","op","TypeError","call","pop","push","__spreadArrays","s","il","k","a","j","jl","__assign","assign","routes","$locationProvider","$stateProvider","$urlRouterProviderr","qmcBase","html5Mode","enabled","requireBase","state","url","templateUrl","controller","controllerAs","data","console","log","params","startDay","dynamic","view","angular","module","config","$inject","HttpProvider","Fachleistung","configureHttpProvider","$httpProvider","defaults","headers","get","_super","FlsService","$http","$q","_this","modulePath","Common","BaseService","getCarerList","getCarerListForCase","caseId","addTheLoggedUser","Constants","GUID_EMPTY","getCasesListByViewPermission","currentOnly","onlyActive","getCasesList","carerTypeFilterId","carerId","onlyForDisplay","additionalParams","page","pageSize","undefined","items","getCasesListPaginated","listSearch","searchProperties","getItem","getFlsCase","id","getFlsCases","ids","getFlsCaseWv","getFlsCasePaused","caseIds","getPlannedDocumentations","days","daysFuture","getRawDocumentations","getContingent","flsCaseId","targetDate","_i","data_1","_a","_b","contingentItems","color","item","highlightColor","substring","highlightText","parseInt","getUserConfig","getCatalogSettings","docuId","date","flsCaseIds","flsDocumentationId","getReportTemplates","getReportTemplateItems","getSupportPlanTargetTemplates","clientId","getSupportPlanTargetTemplateItems","getSignature","getSignatureWv","cachedGet","postSignature","post","getWeekPlanningList","personId","dateFrom","dateTo","postWeekPlanningPlannedDoc","putWeekPlanningPlannedDoc","put","deleteWeekPlanningPlannedDoc","delete","getAllPossibleCarer","getFlsDocumentationList","showOnlyOwnCreated","onlyCurrentCases","onlyOwnCases","getUnsignedFlsDocumentationList","onlyOwn","getFlsDocumentation","getFlsDocumentationWvModel","carersIds","checkForWarningsAndErrors","isPlanned","postFlsDocumentation","distributeHours","multiple","postString","putFlsDocumentation","onlyModifyDescription","deleteFlsDocumentation","getFlsDocumentationSummary","filter","pagination","getFlsGroupList","getFlsGroupDetail","getFlsRequiredFields","getDocEndingConfirmList","getDocEndingConfirmForFlsCase","postDocEndingConfirm","putDocEndingConfirm","getMileage","Service","Inject","FlsCaseListController","$location","$qui","init","getSectionColor","path","anonAvatar","bindEvents","navToggle","document","getElementById","getAttribute","toLocaleLowerCase","forbidden","Controller","CaseListDirective","flsService","$state","userService","permissionService","lng","restrict","replace","scope","permissionCersovsky","allowTableExport","ui","UserInterface","isMobile","IS_MOBILE","isFirstLoad","daysToHighlightCases","caseFilter","UserSettingConstantsAndDefaults","FLS_CASE_FILTER_DEFAULTS","loading","checkedCases","checkedCasesCount","carerTypesMap","tableData","cards","link","vm","localStorage","setItem","LocalStorageConstants","FLS_PREVIOUS_STATE","JSON","stringify","$current","name","getPermissionsByObjectTypes","print","getUserSettings","dataSetting","toLowerCase","moduleAccess","scopeApply","SHOULDLOADTABLEDATA_KEY","FLS_CASE_FILTER_KEY","shouldLoadTableData","parse","getCases","$watch","newValue","oldValue","getWv","lastValue_1","setTimeout","$","show","getData","currentfilter","entry","val","isCurrent","persistCaseFilter","setUserSettings","settings","toggleContingentModal","currentCase","openContingent","toggleCommentModal","modal","countCheckedCases","toggleChecked","isChecked","caseObj","fixAccRule","fixRepTemp","getEmphString_1","createErrorString","errors","selectedCases","cases","x","some","objectId","isAccountableRuleFix","isReportTemplateFix","str","conflict","oldV","newV","displayTitle","formatString","translate","defaultAccountableRuleId","accountableRule","reportTemplateId","reportTemplate","forEach","err","notify","message","title","icon","status","timer","curCase","Avatar","selected","avatar","openMultipleDocumentation","hide","removeClass","go","flsCaseWv","carerTypeWv","map","text","_c","getDisplayedPropertiesFromSchema","caseTable","DEFAULT_PAGINATION_SIZE","paginationInfo","_d","obj","Math","abs","moment","startOf","diff","highlightDate","background-color","format","fullName","createPersonDisplay","forename","personShortCaption","personNr","functionWaiter","Directive","FlsCompanionController","$scope","$stateParams","terminService","permission","carer","report","plannings","wv","editorSettings","requiredFields","save","allLoaded","formWatcherList","editLockType","wvsByDate","defaultAccountability","new","openFile","rdata","flsDefaultCareType","grep","flsDefaultContactType","flsDefaultActivityType","isManuelTimeVisible","allowManual","manualDefault","dataUserConfig","allowEmptyReports","showTime","SHOWTIMEINSTEADOFDECIMAL","planForm","workingHours","isMiscontactEnabled","miscontactWvId","events","getCarer","Date","freedays","holiday","vacation","templateId","itemId","isTemplateFix","timeFrom","timeTo","weekdays","mo","tu","we","th","fr","sa","su","abrechenbarkeitId","activityWvId","careTypeWvId","contactTypeWvId","durationInHours","isManualDuration","carerObjectId","FLS_NO_MISCONTACT","cacheName","setDate","endOf","toDate","setHours","createForm","documentations","reportTemplateItemId","editor","selectLists","accountability","activity","careType","contactType","miscontact","newVal","oldVal","getWvForCase","getEditorSetting","setFixedTemplate","checkCasePaused","validatePlannings","cCase","pausedCases","pauseData","createPlanning","watcher","dates","getDatesInTimeFrame","toISOString","catch","getHolidaysSpecific","getFullYear","holidays","_loop_1","conv","documentationId","generateGuid","active","checkIfShouldActivate","comment","validation","warnings","isHoliday","checkIfDateIsInHoliday","style","isManual","duration","durationM","durationH","getTime","convertDec","addOrRemoveError","holidays_1","createDateFromString","currentDay","getDay","dateToCheck","holidays_2","startDate","endDate","addDays","valueOf","getDate","currentDate","dates_1","getWeekdayName","getValidationButtonState","showValidation","currentItem","savingEnabled","oneIsActive","docu","saveFls","templateItem","getTemplateItem","completeTemplateItems","flsList","isRowEnabled","additionalCost","addTimeToDate","drivingCost","isSupportPlanDocu","participantCount","participants","plannedDocumentationId","reports","caption","wvChildId","reportItemId","templateReferenceId","children","additionalFls","additionalFlsText","referencedPersonId","getCase","clientObjectId","warning","warningReasons","postFls","items_1","temp","element","setDefaultValues","cuCase","createDisabled","_s","_e","_g","_f","_j","_h","isContactTypeRequiered","_l","_k","_o","_m","isCareTypeRequiered","_q","_p","_r","getConfigErrors","checkIfIdIsPresentInWv","area","documentationCarerWvModel","abrechenbarkeitWv","activityWv","contactTypeWv","careTypeWv","showForbiddenNotification","join","toLocaleDateString","select","createCaseDisplayObject","miscontactWv","data_2","isDefault","reportTemplates","reportTemplateItems","createTemplateList","list","level","list_1","concat","validationObjects","minutes","hours","activityTypeId","careTypeId","contactTypeId","miscontactId","hasManualDuration","ignoreConfigRoundInterval","manualDuration","references","referenceId","accountabilityId","requestId","lastValidation","plan","formatTimeString","toString","parseFloat","toFixed","GuidIsNullOrEmptyOrGuidEmpty","guid","window","scrollTo","error","add","addValidationError","removeValidationError","splice","FlsDocumentationListController","$timeout","loadingCases","showOnlyOwnCases","deleteReasons","casesMap","isLoadingDeleteModal","isDeleteAllowed","localStorageCacheName","previousStateCache","isBackFromDocumentation","cachedParams","isBackFromDocumentationDetail","permissionLoading","signaturePermission","modify","showMonthFilter","SHOWMONTHFILTERFLS","documentationTable","model","tableFilter","lastValue_2","deleteId","DELETE_REASON_ID","openNewDocu","selectedCaseId","FLS_DOCU_LIST_HIDE_SIGNATURE","hideSignature","FLS_DOCU_LIST_SHOW_ONLY_OWN_CREATED","FLS_DOCU_LIST_SHOW_ONLY_OWN_CASES","filterWatcher","$watchCollection","getDocumenations","currentRequest","onlySelf","onlyCurrent","lastRequest","totalSums","additionalData","bind","docs","filteredList","copy","table","Signiert","invisible","toggleShowSignature","toggleShowOnlyOwnCreated","toggleShowOnlyOwnCases","toggleShowOnlyCurrentCases","lastCaseIDFound","lastCaseId","isGuid","createCasesMap","getTableAutoload","ltd","waitForEl","visibility","unshift","FlsDocumentationController","fachleistungService","clientService","markItemService","udfService","loadWatcher","cachingObjectName","documentationIds","isPlaned","isNewDocumentation","isGroup","formState","maxFutureDays","hasMaxFutureDays","vehiclesMap","validateEmptyDrivingCost","selectedMarkings","accountabilityBoxState","standardActivityAllowedIfRequired","showAdditionalCosts","editAdditionalCosts","newAdditionalCosts","deleteAdditionalCosts","showDrivingCosts","isMarkingRequired","isSaving","hideQuickDrivingCost","smartAction","SmartAction","createSummernote","userSettings","wvCarerDocumentationList","wvlivingAreaList","wvsubLivingAreaList","drivingAddresses","participantsList","carers","selectedCarerList","zIndexCarerForm","showActivityForFirstCarerOpen","modifiyDescription","additionalFlsEnabled","emptyDescription","form","permissions","summaryEntryDays","resetHoursOnManualDuration","enableWarningReason","commentModalState","timeForm","activityForm","drivingCostsForm","participantsForm","additionnalCosts","group","onlyNumberOfParticipants","allowAdditionalExternalParticipants","allowAdditionalInternalParticipants","members","employee","client","documentation","case","validate","wvFirst","requieredFields","templates","allLoadersFinished","reportForm","activeReport","isReportViewAllowed","isReportUpdateAllowed","normalReportTemplates","supportPlanTemplates","DEFAULT_ACTIVITY_ID","isActivityFix","isMiscontactRequired","originalTimeFrom","originalTimeTo","FLS_NEUMEHREREBETREUTE_ZEITAUFFAELLEVERTEILEN","distributeHoursFix","FLS_NEUMEHREREBETREUTE_ZEITAUFFAELLEVERTEILEN_FIX","isManualTimeAllowed","isManualTimeRequired","timeString","splitString","disableTime","createDate","participantEmployees","disableForm","normal","supportPlan","deleteDocu","deleteItemId","deleteReason","deleteText","promptOptionsCache","yesNo","promptOptionsTemplateChange","promptOptiondsDeleteDokuWithText","udfs","ignoreManualTimeOverwrite","defaultTimesSet","dontTriggerReportPrompt","templatePromptOpen","isValidating","validationFailCounter","isDcInit","elaborativeWarning","elaborativeWarningData","current","split","getNewGuid","getSmartActionClientAndEmployeeList","drivingCostModuleAccess","handleReportPermission","getPermissionsForDataset","dataDS","returnState","isInit","addDrivingCost","carerActivityForm","getCarers","loadDocuWaiter","isUpdateAllowed","getUserDefinedFields","sort","localeCompare","webClientValidation","on","find","attr","toggle","remove","flsDocumentationEditorSettings","initCache","scroll","floatingButtons","getBoundingClientRect","bottom","innerHeight","documentElement","clientHeight","fadeOut","fadeIn","getParticipantsList","documentationTimeForm","getDocumentation","formObject","t1","t2","createCacheObject","cacheEqual","shouldDisable","isNew","Utilities","arraysEqual","confirm","dataCache","description","deleteDrivingCost","dc","dateOfArrival","dateOfDeparture","timeOfArrival","timeOfDeparture","time","createCarerActivityForm","setReportContentFromCache","selectReport","_loop_2","cachedActivity","carerActivity","initCacheWatcher","validateDocumentation","targetArray","sourceArray","source","cacheForm","oldCopy","newCopy","isNaN","hoursMinutesToDecimal","watcherList","$$hashKey","flsObject","initForm","documentationActivityForm","required","roundInterval","configRoundInterval","startRoundType","configStartRoundType","endRoundType","configEndRoundType","cost","defaultHour","convertHours","manualTimeWatch","seen_1","withoutDubs","lastWvGetRequest","createTypeAhead","dayCount","cleanInputNumber","restrictDaysOnManualDuration","max","ceil","splittedTime","getTimeStringFromDecimal","inputNumber","round","typeahead","minLength","query","process","updater","load","userConfig","lockDate","hasLockDate","isLockedByDate","dateToEnabled","displayDateTo","multipleCasesDistributeTime","multipleCasesDistributeTimeFix","multipleCasesResetOnDistributeTime","allowEmptyDrivingCost","defaultReportTitleType","defaultReportTitle","defaultActivities","defaultCareType","defaultContactType","activityType","defaultActivityType","drivingCostOverlapCheck","prevDur_1","daysAllowedCreatingReportsForFuture","subtract","daysAllowedCreatingReportsForPast","isLockedCreatingForFuture","isLockedCreatingForPast","allowManualTimes","manualTimeDefault","getCurrentGenericWvList","wvList","setUpdateAllowedOnDescriptionChange","isCommentEditAllowed","isGroupDocumentation","strip","isReportEntryCommented","selectDefaultTemplate","authorPersonObjectId","hours_1","minutes_1","arrivalTime","getHours","isCarPool","drivingCostType","isPrivate","synchronize","isBlocked","mileageArrival","updateMileage","isEmployee","keys","getInternalElobaritveWarningObject","defaultReportTemplateId","data_3","data_4","isServiceBaseTypeGroup","getGroup","objectType","lastName","foreName","shortCaption","personNumber","objectTypeCaption","subText","institute","getPersonListByObjectType","dataClient","groupValues_1","firstName","_loop_3","member","carerIds","wvCarerList","ensureActivityValidity","onlyRemove","this_1","_loop_4","lastList","this_2","carerIds_1","_loop_5","index_1","getCarerWvList","existed","carerActForm","carerName","activityBoxOpen","zIndex","activityCarerDescr","applyWvs","checkIfWvIsPresentById","showActivityResetNotification","currentWvs","useActvityForm","previousValues","activityCaption","contact","contactCaption","care","careCaption","getActivityList","getCareTypeList","getContactList","getMiscontactList","plannedFlsObject","getWarningErrorsCount","getForWarnings","count","hasStartHourRounding","hasEndHourRound","timeSetMinuteInterval","startRoundingType","endRoundingType","setMinutes","isActivityStandardValidValue","fixActivityId","isSigned","showSaveButton","hasPrevMonthLock","showDeleteButton","res","isLockedCreatingForPreviousMonth","dtmin","daysAllowedCreatingReportsForPreviousMonth","day","getRequestString","isArray","sensitivity","getLivingAreaWvList","livingAreaId","list_2","getDrivingCostCategoryWv","drivingCostCategoryWv","getDrivingCostCategoryList","isFix","getDrivingCostCharingList","drivingCostChargingMethodWv","livingAreaWvList","getSubLivingAreaWvList","livingAreaName","getlivingAreaName","subLivingAreaWvList","livingAreaType","getParticipantEmployeesList","getAccountabilityRuleName","rule","changeReportType","noPrompt","option","setReportTemplate","template","setReportTemplateItems","response","toggleSupportPlan","createReportTemplateRecursive","setFirstCommented","tempItem","items_2","indexOf","template_1","measureId","targetId","reportItem","trigger","fromA","fromB","supportPlanCaption","dontSetTemplates","overwrite","allowSaveAnyway","allow","debounce","saveAnyway","doServerValidation","afterSuccessfullValidationAction","exitValidation","getSeconds","setSeconds","getMilliseconds","setMilliseconds","curCarer","validationObject","drivingDistance","chargingMethodId","drivingCostCategoryId","last","msg","addValidation","removeValidation","finally","dateFromNotRequired","noReports","actFormArr","this_3","actFormArr_1","_loop_6","actFormToCheck","checkTitle","departure","destination","mode","addIfNotPresent","dcDefect","vehicleId","udf","isValid","fls","checkPresentForMoreCarers","carerForm","arr","src","html","textEl","createElement","innerHTML","textContent","trim","saveDocumentation","saveDocumentationAction","formatParticipants","formatDrivingCost","scrollTop","postDocumentation","putDocumentation","diffHours","successNote","leaveState","handleSaveActionError","dt2","dt1","addCarer","slice","reverse","findIndex","dataArray","jQuery","extend","continueDialog","this_4","participants_1","_loop_7","part","OBJECTTYPE_EMPLOYEE","isGroupMember","inArray","array","array_1","removeItem","afterSaveAction","action","reload","lngTagClient","lngTagEmployee","getClientAndEmployeeList","smartClientAndEmployeeList","objType","saveErrors","fieldErrors","FieldErrors","fieldError","FieldError","globalErrors","GlobalErrors","globalError","GlobalError","afterErrorAction","deleteDocumentation","deleteReasonText","deleteReasonWvId","deleteNote","openDeleteDokuModal","addAdditionalCost","newCost","additionalCostTypeId","additionalCostTypeWv","accountabilityTypeId","additionalCostAccountabilityTypeWv","amount","quantity","durration","additionalCostType","accountabilityType","deleteAdditionalCost","initDcData","ressources","getVehicleList","dataV","getAllAddresses","formatAddresses","isLoadingTheDocumentation","addEventValidations","getdrivingCostCategoryId","vehicle","mileageDeparture","isDrivingValidating","index","initCostArrDep","validateDrivingTime","sum","first","mileage","origin","current_1","calcDist","lastDrivingCost","hasClass","newDateTime","hourMinutes","getHoursMinutesForDrivingCost","openElaborativeWarningModal","createElobaritveWarningObject","FlsDocumentationEndingConfirmationController","isLoading","promptOptions","dataPerm","newPermission","modifyPermission","deletePermission","viewPermission","dbLockDate","setLockDates","saveLockDates","putLockDate","postLockDate","flsCase","FlsPlanedRawListController","createRawTable","createPlanedTable","contingentTargetDate","PLANEDRAWDAYS","PLANEDDAYSFUTURE","GetPlanedAndRawDocumentations","writeFlsObjectToLocalStorage","cacheObject","location","hash","planedDocuTable","rawDocuTable","FlsWeekplannerListController","fachleistungsService","aznService","typeFlsDocumentation","typeAppointment","typeAzn","dragMode","type","wvLoading","copyLoading","calendarLoading","validationLoading","caseLoading","caseFilterObject","aznList","eventList","colorFlsDocumentation","colorPlannedFlsDocumentation","colorAzn","colorPlannedAzn","colorAppointment","azn","currentPage","numberOfPages","aznCurrentPage","aznPageSize","aznNumberOfPages","showWeekends","showHoliday","showVacation","showPublicHoliday","eventLength","showUnplannableCases","slotDuration","getFutureCases","getPastCases","selectedPerson","sessionStorage","loadingAllCases","formFirstInit","lastFlsValidationRequestId","firstLoad","possibleCarer","possibleCarerMap","copyCandidates","resetCalendar","getAllCases","toggleShowCurrentOnly","getPermissionsByObjectType","setNewButton","getAznWv","getCaseList","request","lastAllCaseRequest","allCases","allCasesMap","handleFilterChange","filterEvents","String","buildPlanner","checkPlausibilityAzn","checkPlausibilityFls","getElementsByName","carerFilter","lastCaseRequest","getEvents","localEvents","dontGetDates","fullCalendar","start","setViewDates","css","deleteItems","getWeekPlanning","weekData","addToEventlist","getAppointmentList","appointmentData","getArbeitszeitnachweis","arbeitszeitnachweisData","year","createHolidayCalendarEntry","renderCalendar","calView","intervalStart","end","intervalEnd","allDay","event_1","isBetween","isSameOrBefore","holidays_3","editable","appointmentTypes","viewDateFrom","viewDateTo","setColor","data_5","tempEvent","createCalendarEvent","openNewForm","aznForm","typeId","referencePersonId","setFlsForm","postForm","saveNewAznPlanning","saveNewFlsPlanning","warn","putForm","updateAznPlanning","updateFlsPlanning","deleteForm","deleteAznPlanning","deleteFlsPlanning","createDocumentation","flsForm","goToAznDetail","saveUnplannableSetting","afterValidationAction","isFlsFormValid","random","changeFlsEvent","revertFunc","origPlanning","flsWeekPlanning","serviceTypeId","addFlsToCopyCandidates","addFlsToDeleteItems","data_6","isDraggable","isPlannedDocumentation","reportTitle","items_3","aznImputeId","aznTypeId","this_5","items_4","_loop_8","isAznFormValid","isBefore","idObjectAznw","performingPersonObjIdList","activityId","imputeWvId","instituteId","postAznWeekPlanning","putAznWeekPlanning","changeAznEvent","openAznPlanning","deleteAznWeekPlanning","getAznWeekPlanning","addAznToCopyCandidates","addAznToDeleteItems","data_7","deletable","items_5","imputeId","items_6","getArbeitzeitnachweisWv","aznTypesMap","types","AZN_PREVIOUS_STATE","toggleDragMode","each","stick","draggable","revert","revertDuration","addDropEvent","targetList","arr_1","event_2","removeAttr","deviceDefault","getHeight","allDayText","schedulerLicenseKey","FULL_CALENDAR_PREMIUM_LICENSE","defaultTimedEventDuration","contentHeight","height","defaultView","timezone","allDaySlot","slotLabelFormat","timeStringFromHours","firstDay","weekends","monthNames","monthNamesShort","dayNames","dayNamesShort","weekNumbers","weekNumberCalculation","isoWeek","views","month","titleFormat","week","columnFormat","header","left","center","right","timeFormat","buttonText","today","viewRender","droppable","eventResize","event","delta","eventRender","prepend","iconCode","eventDrop","eventReceive","dropForm","getTypeFailSafe","eventClick","fls_1","isTypeAppointment","isRecurring","mid","participantObjectId","permFlag","dayClick","QmWeekPlannerCopyDirective","qmCalendarName","qmData","qmCarerId","copySettings","copyMode","futureWeekSelect","candidates","selectAllCandidates","selectAllPlannings","isValidationFinished","createCandidates","anythingOrAllSelected","_loop_9","candidate","openCopyDialog","futureWeeks","firstInArray","weeks","weeksBetween","calculateCopyWeek","prop","getNextWeek","toDateString","dayOfWeek","dayOffset","date1","date2","date1ms","date2ms","validatePlanningFls","toggleAll","selection","getDayName","dayNumber","selectAll","every","hideValidation","isSaveDisabled","planning","toggleMode","createPlannings","createWeekPlanningObjectFls","createWeekPlanningObjectAzn","validatePlanningAzn","modifier","weekModifier","tempStart","tempEnd","finishSaving","postPlannings","toCreateFls","toCreateAzn","savingFls","savingAzn","QmWeekPlannerDeleteDirective","qmCases","canDeleteAzn","deleteAzn","canDeleteFls","deleteSettings","plannedItems","plannedItemsToDelete","plannedItem","openDeleteDialog","createPlanningItemsToBeDeleted","planningItemToDelete","createWeekPlanningDeleteObjectFls","deletePlannings","this_6","_loop_10","plannedItemToDelete","RemoveItemsFromDeleteList","deleteNotes","deletedItem","toggleAllDelete","anythingSelected","arr_2","isDeleteDisabled","newAzn","modifyAzn","WeekplannerAznFormDirective","carerMap","watchers","$postLink","$onDestroy","showDateTo","$setPristine","$setUntouched","isGuidEmpty","component","bindings","WeekplannerFlsFormDirective","defaultEventLength","setForm","internalMiscontactId","setCasesMap","setCaseDependetForm","shouldDisableActivity","wvMaps","applyDefaultWv","areRequiredFieldsOkay","FlsSignatureListController","klientService","sliderSizeCacheName","filterSearchText","signatureMode","defaultSigningPerson","DEFAULTSIGNINGPERSON","defaultSigningReason","DEFAULTSIGNINGREASON","defaultSigningReasonText","reasonNotMandatory","allFlsChecked","blockModal","promptOptionsOneMore","signingPersonClientId","SIGNATURE_SIGNING_PERSON_CLIENT","maxTargetWidth","maxPossibleWidth","sigHeight","sigWidth","signatureFilterCacheName","signatureOnlyCurrentCases","click","signatureTable","signatureHideReports","minutesToSign","user","reasonWv","notice","setSigWidth","getSigSliderCacheWidth","multiSignableList","selectedMultiSignClient","isSomethingChecked","sigResizeWatcher","parent","width","isSignatureEmpty","signature","setSigSliderSizeCache","cache","cache_1","possibleWidth","cache_2","setSigHeight","getUnsignedList","selectItem","allowedToSign","checkIfAllowedToSign","backdrop","keyboard","dateToFls","now","item_1","dataUrl","flsDocumentationIds","referenceObjectId","signingPersonWvId","reasonWvId","reason","signatureBase64String","checkIdInFlsDocumentationIds","clientFullName","getClientName","clientName","clientFirstName","openMultipleSignature","tmpClients","multiSignableClients","isMultiSignable","clientDisplayTitle","list_3","showReportText","isActive","closeSignatureModal","close","showOneMore","saveSignature","delay","unsigned","clientShortCaption","clientPersonNr","authorDisplayTitle","authorName","authorFirstName","authorShortCaption","authorPersonNr","wvLoad","signingPersons","getSigningPersons","reasonsWvList","getReasons","reasons","FlsSummaryController","$sce","previousState","allowExport","referencesMap","maps","wvmarkingsList","filteredTextBlocks","filterText","orderAscending","filterCacheName","groupTags","personslist","cachePrivateContentPermission","FLS_SUMMARY_ORDER_ASCENDING","filterCache","FLS_SUMMARY_LAST_SEARCH","lastSearch","searchString","getClients","dontTriggerPageChange","geLivingAreaWvList","lastValue","filterActive","createReferencesMap","toggleOrderAscending","stripHtml","innerText","openDocu","selectedReferenceId","scrollPos","changePage","newPage","cache_3","all","getMinimalClientList","getAllPersonLists","datapl","clients","personlists","lists","markingsWvList","resetPage","dateto","livingAreaIds","markingIds","exclude","referenceType","getTypeForId","summaryItems","middle","top","pageYOffset","areas","winPrint","open","write","focus","SummaryDirective","qmCaseId","qmOrderAscending","qmDateFrom","qmDateTo","qmPage","qmPageSize","qmShowTime","qmExclude","showError","order","getSummary","qmPaginationInfo","Bild","dType","selectable","selectableExclude","onChange","Name","lngTag","Leistung","Datum","Aktueller Fall","Id","Aktionen","href","tooltip","card","idProperty","subtext","buttons","defaultSort","sortReverse","tableRowLink","Klient","Zeitraum von","withTime","Zeitraum bis","Dauer","calculate","Autor","Erbringer","Erstellt am","Fahrtdauer","Fahrtstrecke","columns","drivingDuration","documentationParticipantsForm","class","hideExpression","dataSource","placeholder","disabled","documentationDrivingCostsForm","maxLength","displayTime","dateToRequired","Fall","Signierungsart","Bezeichnung","floor","asHours","addresses","displayName","street","houseNumber","postCode","city","country","objectTypeName"],"mappings":"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"}