1var TiimaApp=angular.module("TiimaApp",["ngRoute","ngCookies","ngSanitize","ngLocale","ui.bootstrap","textAngularSetup","textAngular"]);TiimaApp.config(["$routeProvider","$locationProvider","$qProvider",function(n,t){n.when("/Home",{templateUrl:"MVC/StartApp/Home/Index",controller:"homeController"}).when("/Resourcing",{templateUrl:"MVC/Resourcing/Resourcing",controller:"resourcingController"}).when("/Resourcing/HourPlanning",{templateUrl:"MVC/Resourcing/HourPlanning",controller:"hourPlanningController"}).when("/Workhours/Transactions",{templateUrl:"MVC/Workhours/Transactions",controller:"transactionsController"}).when("/Workhours/Workhours",{templateUrl:"MVC/Workhours/Workhours",controller:"workhoursController"}).when("/Workhours/Dashboard",{templateUrl:"MVC/Workhours/Dashboard",controller:"dashboardController"}).when("/Administrating/AbsenceGeneratingSettings",{templateUrl:"MVC/Administrating/AbsenceGeneratingSettings",controller:"absenceGeneratingSettingsController"}).when("/Administrating/InformativeData",{templateUrl:"MVC/Administrating/InformativeData",controller:"informativeDataController"}).when("/Administrating/Calendars",{templateUrl:"MVC/Administrating/Calendars",controller:"calendarsController"}).when("/Administrating/BulletinManage",{templateUrl:"MVC/Administrating/BulletinManage",controller:"bulletinManageController"}).when("/Administrating/DimensionItemBarcodePrint",{templateUrl:"MVC/Administrating/DimensionItemBarcodePrint",controller:"dimensionItemBarcodePrintController"}).when("/Help/PrivacyPolicy",{templateUrl:"MVC/Help/PrivacyPolicy",controller:"privacyPolicyController"}).when("/Help/AboutPage",{templateUrl:"MVC/Help/AboutPage",controller:"aboutPageController"}).when("/Approving/AbsenceCertificate",{templateUrl:"MVC/Approving/AbsenceCertificate",controller:"absenceCertificateController"}).when("/Approving/ApprovingHours",{templateUrl:"MVC/Approving/ApprovingHours",controller:"approvingHoursController"}).when("/Approving/WorksiteAnnouncement",{templateUrl:"MVC/Approving/WorksiteAnnouncement",controller:"worksiteAnnouncementController"}).when("/ShiftPlanning",{templateUrl:"MVC/ShiftPlanning/ShiftPlanning",controller:"shiftPlanningController"}).when("/Workhours/TravelClaims",{templateUrl:"MVC/Workhours/TravelClaims",controller:"travelClaimsController"}).when("/Processing/AutomaticCorrection",{templateUrl:"MVC/Processing/AutomaticCorrection",controller:"autoCorrectionController"}).when("/Processing/ProcessingTest",{templateUrl:"MVC/Processing/ProcessingTest",controller:"processingTestController"}).when("/Config/Config",{templateUrl:"MVC/Config/Config",controller:"configController"}).when("/Login/Index",{template:"<div><\/div>",controller:"loginController"}).when("/Login/Index2FA",{template:"<div><\/div>",controller:"loginController"}).when("/Login/IndexMandatoryBulletins",{template:"<div><\/div>",controller:"loginController"}).when("/Login/IndexLogOut",{template:"<div><\/div>",controller:"loginController"}).when("/Login/IndexPasswordChange",{template:"<div><\/div>",controller:"loginController"}).when("/Login/IndexExpiredPasswordChange",{template:"<div><\/div>",controller:"loginController"}).when("/Login/SSOLoginFailed",{template:"<div><\/div>",controller:"loginController"}).when("/Login/TicketLoginFailed",{template:"<div><\/div>",controller:"loginController"}).when("/Login/TiimaTtSSO/:path*",{resolve:{leaveSpa:["$location","$window",function(n,t){var i=n.path(),r=i.substring(18);t.location.href="/Login/TiimaTtSSO/"+r}]}}).when("/Login",{template:"<div><\/div>",controller:"loginController"}).when("/Logout",{template:"<div><\/div>",controller:"logoutController"}).when("/unauthorized",{template:"<div><\/div>",controller:"logoutController"}).when("/restricted",{template:"<div><\/div>",controller:"logoutController"}).when("/node.asp",{redirectTo:"/node.aspx"}).when("/IssuerSso",{template:"<div><\/div>",controller:"issuerController"}).otherwise({redirectTo:"/Home"});t.html5Mode(!0);t.hashPrefix("!")}]).config(["$httpProvider",function(n){n.interceptors.push("securityInterceptor");n.interceptors.push("requestInterceptor");n.interceptors.push("responseInterceptor");n.interceptors.push("translationFileVersionInterceptor")}]).run(["$http","$rootScope","$location","$document","$uibModalStack",function(n,t,i,r){n.defaults.headers.common["X-Requested-With"]="XMLHttpRequest";t.$on("$routeChangeError",function(){});t.$on("$locationChangeStart",function(){});
1r.on("keydown",function(n){if(n.which===8){var t=n.target.nodeName.toLowerCase();(t!=="input"||n.target.type==="checkbox"||n.target.type==="radio")&&t!=="textarea"&&n.target.contentEditable!=="true"&&n.preventDefault()}})}]),function(n){var t={init:function(t){return this.each(function(){var r=n.extend(!0,{},{type:"text",maxlength:50,headingFormat:null,dateFormat:"d.M.yyyy"},t),f=n(this),u,i;f.data("settings",r);u=r.context={label:n("label:first",this),validators:n(".validator",this),isValid:!1,type:r.type,maxLength:r.maxlength};i=null;switch(r.type){case"text":case"integer":case"dropdown":i=n("input",this);break;case"localizedtext":i=n(":input:first",this);n(i).LocalizedText();u.languageSelector=n("select",this);break;case"date":i=n("input",this);i.datepicker({onSelect:function(n){f.EditField("validateValue",n)}});break;case"autocomplete":i=n("input",this);i.AutoCompletePicker({dataSourceUrl:r.dataSourceUrl,objectName:r.objectName,headingFormat:r.headingFormat});u.dataSourceUrl=r.dataSourceUrl;u.objectName=r.objectName;u.ID=null;break;case"listeditor":i=n("div.listEditor",this);i.ListEditor({fields:r.fields})}u.field=i;i&&i.blur(function(n){f.EditField("validateValue",n)})})},setFocus:function(){var t=n(this).data("settings"),i=t.context;ret=i.field.focus()},setSource:function(t){var i=n(this).data("settings"),r=i.context;switch(i.type){case"autocomplete":r.field.AutoCompletePicker("setSource",t)}},disable:function(){var t=n(this).data("settings"),i=t.context;switch(t.type){case"text":case"integer":case"dropdown":case"autocomplete":case"date":case"autocomplete":case"localizedtext":this.prop("disabled",!0);n("input",this).prop("disabled",!0);n("button",this).prop("disabled",!0)}},enable:function(){var t=n(this).data("settings"),i=t.context;switch(t.type){case"text":case"integer":case"dropdown":case"autocomplete":case"date":case"autocomplete":case"localizedtext":this.prop("disabled",!1);n("input",this).prop("disabled",!1);n("button",this).prop("disabled",!1)}},clearValue:function(){var i=n(this).data("settings"),t=i.context;switch(i.type){case"text":case"integer":case"dropdown":case"autocomplete":case"date":t.field.val("");break;case"autocomplete":t.field.AutoCompletePicker("selectItem",null);break;case"localizedtext":t.field.LocalizedText("clearValue");break;case"listeditor":t.field.ListEditor("setData",[])}},setValue:function(t){var r=n(this).data("settings"),i=r.context;switch(r.type){case"text":case"dropdown":i.field.val(t);break;case"integer":typeof t=="number"?i.field.val(t):i.field.val(parseInt(t));break;case"date":typeof t=="string"?i.field.val(t):typeof t=="object"&&i.field.val(n.datepicker.formatDate(r.dateFormat,t));break;case"autocomplete":i.field.AutoCompletePicker("selectItem",t);break;case"localizedtext":i.field.LocalizedText("setValue",t);break;case"listeditor":i.field.ListEditor("setData",t?t:[])}n(this).EditField("hideValidators")},getValue:function(){var r=n(this).data("settings"),i=r.context,t="";switch(r.type){case"autocomplete":t=i.field.AutoCompletePicker("getValue");break;case"text":case"dropdown":t=i.field.val();break;case"integer":t=i.field.val();typeof t!="number"&&(t=parseInt(t));break;case"date":t=i.field.datepicker("getDate");break;case"localizedtext":t=i.field.LocalizedText("getValue");break;case"listeditor":t=i.field.ListEditor("getData")}return t},isValid:function(){var t=n(this).data("settings"),i=t.context;return i.isValid},compareFields:function(t,i){var e=n(this).data("settings"),u=n("#"+t).EditField("getValue"),f=n(this).EditField("getValue"),r=!1;switch(i){case"equal":r=f==u;break;case"notequal":r=f!=u;break;case"lessthan":r=f<u;break;case"greaterthan":r=f>u;break;case"greaterthanorequal":r=f>=u;break;case"lessthanorequal":r=f<=u}return r},validateValue:function(t,i){var r=n(this).data("settings"),i=r.context,u=n(this);return i.isValid=!0,i.validators.each(function(){var s=n(this).data("validator"),f=!1,t,e,o;switch(s){case"required":t=u.EditField("getValue");f=r.type=="integer"?t!=""&&t!=null&&!isNaN(t):t!=""&&t!=null;break;case"compare":e=n(this).data("compareto");
1o=n(this).data("comparetype");f=u.EditField("compareFields",e,o)}n(this).css("display",f?"none":"block");f||(i.isValid=!1)}),i.isValid},hideValidators:function(){var i=n(this).data("settings"),t=i.context,r=n(this);t.isValid=!0;t.validators.each(function(){n(this).css("display","none")})}};n.fn.EditField=function(i){if(t[i])return t[i].apply(this,Array.prototype.slice.call(arguments,1));if(typeof i!="object"&&i)n.error("Method "+i+" does not exist on jQuery.EditField");else return t.init.apply(this,arguments)}}(jQuery),function(n){var i=function(t,i){return n(n.trim(Mustache.render(t,i)))},r,t={init:function(t){return r=n.extend({loaderUrl:"",data:{}},t),this.each(function(){var u=n(this),r=n.extend({objectName:null,dataSourceUrl:null,additionalParameters:null,source:null,alwaysReload:!1,sourceParameters:null,headingFormat:"Page {{PageIndex}}/{{PagesTotal}}, total {{RowsTotal}} rows",itemTemplate:"{{{Code}}} {{{Name}}}",searchResultTemplate:null,listItemTemplate:null,listTemplate:null,pageIndex:1,itemsTotal:10,listPageSize:10,searchPageSize:10,selectFirst:!1,noButton:!1,hierarchy:!1,noTooltip:!1,menuWidth:null,useExternalButton:!1,externalButtonClass:!1,selectOnClick:!1,acceptRawValue:!1,innerElement:null,context:{}},t),s=u.parent(),o,e,f;r.controlType="autocomplete";r.hierarchy=n.inArray(r.hierarchy,[!0,1,"true","True","TRUE"])!=-1?!0:!1;r.noButton=n.inArray(r.noButton,[!0,1,"true","True","TRUE"])!=-1?!0:!1;r.useExternalButton=n.inArray(r.useExternalButton,[!0,1,"true","True","TRUE"])!=-1?!0:!1;r.selectOnClick=n.inArray(r.selectOnClick,[!0,1,"true","True","TRUE"])!=-1?!0:!1;r.selectFirst=n.inArray(r.selectFirst,[!0,1,"true","True","TRUE"])!=-1?!0:!1;r.acceptRawValue=n.inArray(r.acceptRawValue,[!0,1,"true","True","TRUE"])!=-1?!0:!1;r.alwaysReload=n.inArray(r.alwaysReload,[!0,1,"true","True","TRUE"])!=-1?!0:!1;r.originalValue="";r.hover=!1;r.searchResultTemplate||(r.searchResultTemplate=r.itemTemplate);r.listItemTemplate||(r.listItemTemplate=r.searchResultTemplate);r.context.container=n("<div><\/div>").addClass("autocompletePicker");r.context.container.insertBefore(u);u.remove();r.context.container.append(u);r.noButton?r.useExternalButton&&r.externalButtonClass&&(e=n("."+r.externalButtonClass,s),e&&e.length&&(r.context.button=n(e[0]))):(r.context.button=n("<button><\/button>").button(),o=n("<span>").addClass("ui-icon").addClass("ui-icon-triangle-1-s"),r.context.button.append(o),r.context.container.append(r.context.button));r.context.button&&r.context.button.click(function(n){u.AutoCompletePicker("onToggleClick",n)});r.context.cache={};f=null;r.source&&!r.source.length?f=r.source:(f=n.Deferred(),f.resolve(r.source),f=f.promise());f.then(function(t){var o,e,f;if(t&&t.length){for(f=0;f<t.length;f++)o=Mustache.render(r.itemTemplate,t[f]),t[f].label=t[f].value=o,r.context.cache[t[f].IdC]=t[f];r.source=t}if(e=null,r.additionalParameters)for(e=[],f=0;f<r.additionalParameters.length;f++)e.push({Name:r.additionalParameters[f].name,Value:r.additionalParameters[f].value});u.autocomplete({source:r.dataSourceUrl||r.dataSource||r.source=="hierarchyCache"?function(t,i){var f,e,o;if(r.dataSourceUrl)n.ajax({type:"POST",url:r.dataSourceUrl,contentType:"application/json; charset=utf-8",dataType:"json",processData:!1,data:JSON.stringify({ObjectName:r.objectName,Hierarchy:r.hierarchy,SearchFilter:t.term,FirstIndex:0,PageSize:r.searchPageSize,AdditionalParameters:f}),success:function(t){var f=JSON.parse(t),e=f&&f.length&&f[0]&&f[0].Objects?f[0].Objects:[];i(n.map(e,function(n){r.context.cache[n.IdC]=n;var t=u.AutoCompletePicker("renderNoEscape",r.itemTemplate,n);return{label:t,value:t,IdC:n.IdC,item:n}}))}});else if(r.dataSource){if(f=null,r.additionalParameters)for(f=[],e=0;e<r.additionalParameters.length;e++)f[r.additionalParameters[e].name]=r.additionalParameters[e].value;o=n.extend({SearchFilter:(t.term+"").toLowerCase(),FirstIndex:0,ItemCount:r.searchPageSize},f);r.dataSource(o).then(function(t){var f=t&&t.DataList?t.DataList:[];i(n.map(f,function(n){r.context.cache[n.IdC]=n;var t=u.AutoCompletePicker("renderNoEscape",r.itemTemplate,n);return{label:t,value:t,IdC:n.IdC,item:n}}))})}else u.AutoCompletePicker("searchFromHierarchyCache",t.term).then(function(t){var f=t&&t.length?t:[];i(n.map(f,function(n){r.context.cache[n.IdC]=n;var t=u.AutoCompletePicker("renderNoEscape",r.itemTemplate,n);return{label:t,value:t,IdC:n.IdC,item:n}}))})}:r.source?r.source:[],select:function(n,t){r.IdC=t.item.IdC;u.AutoCompletePicker("raiseItemSelected",t.item.IdC,n)},change:function(t){var i,f,e;r.IdC&&(i=r.context.cache[r.IdC],f="",i&&(f=u.AutoCompletePicker("renderNoEscape",r.itemTemplate,i)),i&&f!=u.val()&&(e=r.IdC=null,r.acceptRawValue&&(e=n(this).val()),u.AutoCompletePicker("raiseItemSelected",e,t)))}
1,selectFirst:r.selectFirst,autoFocus:r.selectFirst});r.noTooltip||u.uitooltip();u.data("settings",r);r.hierarchy?r.context.listTemplate="<div class='pickerHierarchy'><\/div>":(r.context.listTemplate="<div class='pickerList'><div class='heading'><div class='leftButton'> <\/div><div class='text'>{{PageHeading}}<\/div><div class='rightButton'> <\/div><\/div><div class='rows'><\/div><\/div>",r.context.listRowTemplate="<div class='listrow'>"+r.listItemTemplate+"<\/div>");r.context.list=i(r.context.listTemplate,{});n("body").append(r.context.list);r.innerElement&&(r.innerElement.remove(),r.innerElement.appendTo(r.context.list));r.context.listVisible=!1;r.context.list.position({my:"left top",at:"left bottom",of:u,collision:"none"});r.listTemplate&&(r.context._renderMenu=n.ui.autocomplete.prototype._renderMenu,jQuery.ui.autocomplete.prototype._renderMenu=function(t,i){for(var u,e,o=this,s=[],f=0;f<r.listTemplate.length;f++)u=r.listTemplate[f],e=n("<div><\/div>").text(u.heading),u.className&&e.addClass(u.className),s.push(e);n.each(i,function(n,i){o._renderItemData(t,i)})},jQuery.ui.autocomplete.prototype._resizeMenu=function(){var t=this.menu.element,n=0;r.menuWidth?n=r.menuWidth:this.element.outerWidth();t.outerWidth(n)},r.context._renderItem=n.ui.autocomplete.prototype._renderItem,jQuery.ui.autocomplete.prototype._renderItem=function(t,i){var e=[],f;if(i.item)for(f=0;f<r.listTemplate.length;f++){var u=r.listTemplate[f],s=u.resolver?u.resolver(i.item):i.item[u.fieldName],o=n("<div><\/div>").text(s);u.className&&o.addClass(u.className);e.push(o)}return n("<li><\/li>").data("item.autocomplete",i).append(e).appendTo(t)});r.context.list.hide();r.hierarchy||(n("div.leftButton",r.context.list).click(function(n){u.AutoCompletePicker("onPreviousPageClick",n)}),n("div.rightButton",r.context.list).click(function(n){u.AutoCompletePicker("onNextPageClick",n)}));u.pageLoaded=!1;n(r.context.button).bind("blur",function(){u.AutoCompletePicker("hideList")});r.selectOnClick&&n(u).bind("click",function(t){n(t.target).select()});r.acceptRawValue&&n(u).bind("keydown",function(t){if(event.which==9){var i=n(u).val();i!=r.originalValue&&(r.originalValue=i,u.AutoCompletePicker("raiseItemSelected",i,t))}});n(r.context.list).hover(function(n){u.AutoCompletePicker("onListHover",n)},function(n){u.AutoCompletePicker("onListHoverOut",n)});n(r.context.list).click(function(n){u.AutoCompletePicker("onListAreaClick",n)});n(r.context.list).scroll(function(n){u.AutoCompletePicker("onListAreaScroll",n)})})})},setReadOnly:function(t){this.each(function(){var r=n(this),i=n(this).data("settings");t?(r.attr("readonly","readonly"),i.context.button&&i.context.button.attr("disabled","disabled")):(r.removeAttr("readonly"),i.context.button&&i.context.button.removeAttr("disabled"))})},onToggleClick:function(t){var i=n(this).data("settings");i.context.listVisible?(i.context.list.hide(),this.trigger("listClosed",t)):(this.trigger("listOpened",t),i.context.timeout&&(clearTimeout(i.context.timeout),i.context.timeout=null),(!i.pageLoaded||i.alwaysReload)&&this.AutoCompletePicker("loadPage",0),i.context.list.show(),i.context.list.position({my:"left top",at:"left bottom",of:n(this),collision:"none"}));i.context.listVisible=!i.context.listVisible;t.stopPropagation()},onListHover:function(){var t=n(this).data("settings");t.hover=!0;t.context.timeout&&(clearTimeout(t.context.timeout),t.context.timeout=null)},onListHoverOut:function(){var t=n(this).data("settings");t.hover=!1;this.AutoCompletePicker("hideList")},onListAreaClick:function(t){var i=n(this).data("settings");i.context.listVisible=!0;i.context.list.show();i.context.button&&i.context.button.focus();setTimeout(function(){i.context.timeout&&(clearTimeout(i.context.timeout),i.context.timeout=null)},0);t.stopPropagation()},onListAreaScroll:function(t){var i=n(this).data("settings");i.context.timeout&&(clearTimeout(i.context.timeout),i.context.timeout=null);t.stopPropagation()},onPreviousPageClick:function(t){t.stopPropagation();var i=n(this).data("settings");i.pageIndex!=0&&(setTimeout(function(){i.context.timeout&&(clearTimeout(i.context.timeout),i.context.timeout=null)},0),this.AutoCompletePicker("loadPage",i.pageIndex-1).then(function(){i.context.listVisible=!0;i.context.list.show();i.context.button&&i.context.button.focus()}))},onNextPageClick:function(t){t.stopPropagation();var i=n(this).data("settings");i.pageIndex>=Math.floor((i.itemsTotal-1)/i.listPageSize)||(setTimeout(function(){i.context.timeout&&(clearTimeout(i.context.timeout),i.context.timeout=null)},0),this.AutoCompletePicker("loadPage",i.pageIndex+1).then(function(){i.context.listVisible=!0;i.context.list.show();i.context.button&&i.context.button.focus()}))},onListItemClick:function(t){var r=n(this).data("settings"),u=r.hierarchy?"hierarchyrow":"listrow",i=n(t.target).closest("div."+u).data("item");i&&this.AutoCompletePicker("selectItem",i)},hideList:function(){var t=n(this).data("settings");t.hover||(t.context.timeout=setTimeout(function(){t.hover||(t.context.listVisible=!1,t.context.list.hide())},200))},setSource:function(t){var i=n(this).data("settings"),r,u;if(i.source=t,i.context.cache={},t&&t.length){for(r=0;r<t.length;r++)u=t[r],i.context.cache[u.IdC]=u;this.AutoCompletePicker("loadPage",0)}this.autocomplete("option","source",n.map(t,function(n){return{ID:n.IdC,label:n.Code+" "+n.Name,value:n.Code+" "+n.Name}}));i.context.container.prop("disabled",t&&t.length?!1:!0)},getValue:function(){var t=n(this).data("settings");return t.IdC?t.context.cache[t.IdC]:t.acceptRawValue?n(this).val():t.IdC},setValue:function(t){var i=n(this).data("settings");return this.AutoCompletePicker("selectItem",t,!0)},getItem:function(t){var i=n(this).data("settings");return i.context&&i.context.cache?i.context.cache[t]:null},renderNoEscape:function(n,t){var r=function(n){return n},u=Mustache.escape,i;return Mustache.escape=r,i=Mustache.render(n,t).trim(),Mustache.escape=u,i},selectItem:function(t,i){var r=n(this).data("settings"),f,u,o,e,s,h;if(!r)return null;
1if(f=n.Deferred(),r.noHide=!1,u=n(this),i||f.then(function(){u.AutoCompletePicker("raiseItemSelected",r.IdC)}),t&&typeof t=="object")e=t,o=u.AutoCompletePicker("renderNoEscape",r.itemTemplate,e),n(this).val(o),n(this).attr("title",o),r.IdC=e.IdC,r.context.cache[e.IdC]=e,r.acceptRawValue&&(r.originalValue=n(this).val()),this.AutoCompletePicker("hideList"),f.resolve();else if(t){if(r.context.cache[t])return e=r.context.cache[t],s=this.AutoCompletePicker("selectItem",e,i),r.acceptRawValue&&(r.originalValue=n(this).val()),s;r.source?this.AutoCompletePicker("loadFromSource",t).then(function(t){t?(r.context.cache[t.IdC]=t,n(u).AutoCompletePicker("selectItem",t,i)):(n(this).val(""),n(this).attr("title",""),r.IdC=null);r.acceptRawValue&&(r.originalValue=n(this).val());u.prop("disabled",!1);f.resolve()}):r.dataSourceUrl&&(h=n.ajax({type:"POST",url:r.dataSourceUrl,contentType:"application/json; charset=utf-8",dataType:"json",processData:!1,data:JSON.stringify({ObjectName:r.objectName,ID:t})}),u.prop("disabled",!0),h.done(function(t){var e=JSON.parse(t),o=e&&e.length&&e[0]&&e[0].Objects?e[0].Objects:[];o.length&&n(u).AutoCompletePicker("selectItem",o[0],i);u.prop("disabled",!1);r.acceptRawValue&&(r.originalValue=n(this).val());f.resolve()}))}else n(this).val(""),n(this).attr("title",""),r.IdC=null,r.acceptRawValue&&(r.originalValue=n(this).val()),f.resolve();return f.promise()},loadFromSource:function(t){var i=n.Deferred(),r=n(this).data("settings"),u;return typeof r.source=="string"&&r.sourceParameters?r.source=="hierarchyCache"&&(u=this.AutoCompletePicker("loadFromHierarchyCache"),u.then(function(r){if(t){var u=r.byID[t];u&&n(thisContext).AutoCompletePicker("selectItem",u,noEvent);thisContext.prop("disabled",!1);i.resolve(u)}else i.resolve(r)})):i.resolve(r.source),i.promise()},searchFromHierarchyCache:function(t){var i=n(this).data("settings"),r=n.Deferred();return i.sourceParameters.searchHierarchyFunction?i.sourceParameters.searchHierarchyFunction(t,i.sourceParameters.DimensionIdC).then(function(n){r.resolve(n)}):r.reject(),r.promise()},loadFromHierarchyCache:function(){var t=n(this).data("settings"),i=n.Deferred(),r;return t.sourceParameters.cache?i.resolve(t.sourceParameters.cache):t.sourceParameters.getHierarchyFunction&&(r=t.sourceParameters.getHierarchyFunction({DimensionIdC:t.sourceParameters.DimensionIdC}),r&&r.then(function(n){i.resolve(t.sourceParameters.cache=n)})),i.promise()},raiseItemSelected:function(t,i){var u=n(this).data("settings"),r=u.context.cache[t];!r&&u.acceptRawValue&&(r=t);this.trigger("valueChanged",[r,i])},loadPage:function(t){var i=n(this).data("settings"),e,u,f,r,h;if(i.pageLoaded=!0,e=n(this),u=n.Deferred(),i.source)this.AutoCompletePicker("loadFromSource").then(function(n){var h,r,o,s,f;if(n.hierarchy&&(h=n,n=n.hierarchy,i.IdC&&(r=h.byID[i.IdC],r)))while(r.Parent!=null)r.Parent._open=!0,r=r.Parent;if(i.pageIndex=t,i.itemsTotal=i.source.length,!i.hierarchy){for(o=i.listPageSize*t,s=[],f=o;f<o+i.listPageSize&&f<i.source.length;f++)s.push(n[f]);n=s}e.AutoCompletePicker("setListRows",n);u.resolve()});else{if(f=null,i.additionalParameters)for(f=[],r=0;r<i.additionalParameters.length;r++)f[i.additionalParameters[r].name]=i.additionalParameters[r].value;var o=n.Deferred(),e=n(this),s=n.extend({ObjectName:i.objectName,Hierarchy:i.hierarchy,ItemCount:i.listPageSize,FirstIndex:t*i.listPageSize},f);i.dataSource?i.dataSource(s).then(function(n){o.resolve(n)}):(h=n.ajax({type:"POST",url:i.dataSourceUrl,contentType:"application/json; charset=utf-8",dataType:"json",processData:!1,data:JSON.stringify(s)}),h.done(function(n){var t=JSON.parse(n);o.resolve(t)}));o.promise().then(function(r){var f=r&&r.DataList&&r.DataList.length?r.DataList:[];r&&(i.itemsTotal=r.TotalRows);i.pageIndex=t;n(e).AutoCompletePicker("setListRows",f);u.resolve()})}return u.promise()},setListRows:function(t){var r=n(this).data("settings"),u,f,e,o;r&&(u=n("div.rows",r.context.list),u.empty(),f=function(t){var u,o,s,e;if(r.context.cache[t.IdC]=t,u=i(r.context.listRowTemplate,t),u.data("item",t),r.hierarchy)if(o=u.children(".hierarchyItem"),t._open&&o.toggleClass("closed").toggleClass("open"),t.IdC==r.IdC&&o.addClass("selected"),angular.isUndefined(t._open
1)&&(t._open=!1),t.SubNodes&&t.SubNodes.length)for(s=n(".inner",u),e=0;e<t.SubNodes.length;e++)s.append(f(t.SubNodes[e]));else u.addClass("empty");return u},e=n(this),r.hierarchy||(o=Mustache.render(r.headingFormat,{PageIndex:r.pageIndex+1,PagesTotal:Math.ceil(r.itemsTotal/r.listPageSize),RowsTotal:r.itemsTotal}),n("div.text",r.context.list).text(o)),u.append(n.map(t,f)),r.hierarchy?(n("div.handle",u).click(function(){var i=n(this).closest(".hierarchyrow"),t=i.data("item");t&&(t._open=angular.isUndefined(t._open)||!t._open?!0:!1);n(this).parent().toggleClass("closed").toggleClass("open")}),n("div.itemText",u).mouseover(function(){n(this).addClass("ui-state-hover").addClass("corner-all")}).mouseout(function(){n(this).removeClass("ui-state-hover").removeClass("corner-all")}).click(function(t){n(this).closest(".pickerHierarchy").find(".hierarchyItem.selected").removeClass("selected");n(this).parent().addClass("selected");n(e).AutoCompletePicker("onListItemClick",t)})):n("div.listrow",u).mouseover(function(){n(this).addClass("ui-state-hover").addClass("corner-all")}).mouseout(function(){n(this).removeClass("ui-state-hover").removeClass("corner-all")}).click(function(t){n(e).AutoCompletePicker("onListItemClick",t)}))},destroy:function(){var t=n(this).data("settings");t&&(t.context.list&&t.context.list.remove(),n.removeData(n(this),"settings"));n(this).autocomplete("destroy");this.unbind();this.element=null},unbind:function(){}};n.fn.AutoCompletePicker=function(i){if(t[i]){var r=n(this).data("settings");return r?t[i].apply(this,Array.prototype.slice.call(arguments,1)):null}if(typeof i!="object"&&i)n.error("Method "+i+" does not exist on jQuery.AutoCompletePicker");else return t.init.apply(this,arguments)}}(jQuery),function(n){var i,t={init:function(t){return i=n.extend({},t),this.each(function(){var e=n(this),i=n.extend({fields:{},context:{},texts:{}},t),u=n("<div><\/div>").addClass("listEditorRow").appendTo(this),f=n("<div><\/div>").addClass("listEditorRowContainer").appendTo(this),r;for(i.context.container=f,i.context.currentData=null,r=0;r<i.fields.length;r++)n("<div><\/div>").addClass("listEditorHeader").text(i.fields[r].header).width(i.fields[r].width).appendTo(u);n(this).data("settings",i)})},onFieldClick:function(t){var f=n(this).data("settings"),r=n(t.target).closest("div.listEditorRow"),u,i;r!=f.context.editRow&&(u=n(t.target).index(),i=n("<div><\/div>").addClass("editorRow"),this.ListEditor("showRow",i),i.insertAfter(r),r.remove(),this.ListEditor("editRow",i,u))},onNewRowClick:function(){var i=n(this).data("settings"),t=n("div.emptyRow",this);this.ListEditor("editRow",t)},onEnterField:function(){var t=n(this).data("settings");t.context.exitTimeout&&clearTimeout(t.context.exitTimeout)},onExitField:function(){var t=n(this).data("settings"),i=n(this);t.context.exitTimeout=setTimeout(function(){var n=t.context.editRow.index();i.ListEditor("exitRow",t.context.editRow);n==t.context.data.length},200)},setData:function(t){var r=n(this).data("settings"),u=r.context.container,i,f;if(u.empty(),t||(t=[]),r.context.data=t,t!=null&&t.length)for(i=0;i<t.length;i++)f=n("<div><\/div>").appendTo(u),this.ListEditor("showRow",f,t[i]);this.ListEditor("addEmptyRow")},addEmptyRow:function(){var e=n(this).data("settings"),t=n("div.listEditorRowContainer",this),r=n(this),i=t.find("div.emptyRow");if(!i||!i.length)var u=n("<div><\/div>").addClass("emptyRow").appendTo(t),f=contextSettings.texts["GLOBAL.BUTTON_NEW_ROW"],o=n("<button><\/button>").text(f).button().click(function(n,t){r.ListEditor("onNewRowClick",t)}).appendTo(u)},showRow:function(t,i){var u=n(this).data("settings"),r,f,e;for(t.empty(),r=0;r<u.fields.length;r++)f=n("<div><\/div>").addClass("listEditorField").width(u.fields[r].width).appendTo(t),i?f.text(Mustache.render(u.fields[r].valueTemplate,i)):f.html(" ");e=this;i&&n("div.listEditorField",t).click(function(n){e.ListEditor("onFieldClick",n)});t.index()%2?t.removeClass("rowEven").addClass("rowOdd"):t.removeClass("rowOdd").addClass("rowEven");t.addClass("listEditorRow");t.bind("mouseover",function(){n(this).removeClass("rowEven").removeClass("rowOdd").addClass("rowHover")}).bind("mouseout",function(){n(this).removeClass("rowHover").addClass(n(this).index()%2?"rowOdd":"rowEven")})},getData:function(){var t=n(this).data("settings");return t.context.currentData&&t.context.editRow&&this.ListEditor("collectValues",t.context.editRow),t.context.data},editRow:function(t,i){var f,s,e,o,r,u,l,a,v;i||(i=0);f=n(this).data("settings");f.context.editRow&&this.ListEditor("exitRow",f.context.editRow);t.empty().removeClass("emptyRow").addClass("editorRow");f.context.finalized=!1;this.ListEditor("showRow",t);f.context.editRow=t;s=t.index();e=null;e=s<f.context.data.length?f.context.currentData=f.context.data[s]:f.context.currentData=null;var h=n.Deferred(),c=[],y=n("div.listEditorField",t);for(o=0;o<y.length;o++){if(r=f.fields&&f.fields.length&&f.fields.length>o?f.fields[o]:null,!r)break;u=null;switch(r.editorType){case"autocomplete":u={element:n("<input type='text'/>"),method:"AutoCompletePicker",parameters:r.editorParameters};break;case"text":u={element:n("<input type='text'/>")};break;case"dropdown":u={element:n("<select/>")};break;case"integer":u={element:n("<input type='text'/>"),method:"Numeric",parameters:{decimals:0,allowNegative:r.editorParameters&&r.editorParameters.allowNegative?r.editorParameters.allowNegative:!0}};break;case"number":u={element:n("<input type='text'/>"),method:"Numeric",parameters:{decimals:r.editorParameters&&r.editorParameters.decimals?r.editorParameters.decimals:1,allowNegative:r.editorParameters&&r.editorParameters.allowNegative?r.editorParameters.allowNegative:!0}};break;case"date":u={element:n("<input type='text'/>"),method:"datepicker",parameters:r.editorParameters};break;case"localizedtext":u={element:n("<input type='text'/>"),method:"LocalizedText",parameters:r.editorParameters}}u&&(u.element.width(r.elementWidth).appendTo(y[o]),u.method?(n.fn[u.method].call(u.element,u.parameters),e!=null&&(l=n.fn[u.method].call(u.element,"setValue",e[r.name]),l&&c.push(l))):e!=null&&u.element.val(e[r.name]),a=n(this),v=r.editorType=="autocomplete"?n(":input",u.element.parent()):u.element,v.focus(function(n){a.ListEditor("onEnterField",n)}),v.blur(function(n){a.ListEditor("onExitField",n)}),r.editor=u)}c.length?n.when.apply(jQuery,c).done(function(){h.resolve()}):h.resolve();n.when(h).done(function(){n("div.listEditorField:nth-child("+(i+1)+")",t).find(":input").filter(":first").focus();f.context.finalized=!0})},exitRow:function(t){var i=n(this).data("settings");this.ListEditor("collectValues",i.context.editRow);this.ListEditor("showRow",i.context.editRow,i.context.data[t.index()]);i.context.editRow.removeClass("editorRow").addClass("listEditorRow");i.context.editRow=null;i.context.currentData=null;i.context.exitTimeout&&clearTimeout(i.context.exitTimeout);this.ListEditor("raiseValueChanged");this.ListEditor("addEmptyRow")},raiseValueChanged:function(){this.trigger("valueChanged",[this.ListEditor("getData")])},collectValues:function(t){var r=n(this).data("settings"),f,a,e,i,c,s,l;if(r.context.finalized)for(f=r.context.currentData,f||r.context.data.push(r.context.currentData=f={}),a=n("div.listEditorField",t),e=0;e<a.length;e++){if(i=r.fields&&r.fields.length&&r.fields.length>e?r.fields[e]:null,!i)break;var u=i.editor,o=null,h=null;if(u.method){if(o=n.fn[u.method].call(u.element,"getValue"),h=u.element.val(),i.editorType=="autocomplete"&&i.dataMapping&&i.dataMapping.length&&(c=n.fn[u.method].call(u.element,"getItem",o),c))for(s=0;s<i.dataMapping.length;s++)l=i.dataMapping[s],f[l.target]=c[l.source]}else o=u.element.val();f[i.name]=o;h&&(f[i.name+"$text"]=h)}}};n.fn.ListEditor=function(i){if(t[i])return t[i].apply(this,Array.prototype.slice.call(arguments,1
1));if(typeof i!="object"&&i)n.error("Method "+i+" does not exist on jQuery.ListEditor");else return t.init.apply(this,arguments)}}(jQuery),function(n){var i,t={init:function(t){return i=n.extend({},t),this.each(function(){var r=n(this),i=n.extend({allowOver24h:!1,showNullAsEmpty:!1,showLeadingZero:!1,context:{}},t);i.context.toolsService||(i.context.toolsService=r.Time("getToolsService"));n(this).bind("blur",function(){n(this).Time("fixValue")});n(this).data("settings",i)})},getToolsService:function(){var n=angular.element(document.querySelector("[ng-controller]")),t=n.injector();return t.get("toolsService")},setValue:function(t){var r=n(this).data("settings"),i;!t&&r.showNullAsEmpty?this.val(""):(Object.prototype.toString.call(t)==="[object Date]"?(i=this.Time("_partitionValue",t),this.val((r.showLeadingZero&&i[0]<10?"0":"")+i[0]+":"+(i[1]<10?"0":"")+i[1])):this.val(t),this.Time("fixValue"))},getValue:function(){var t=n(this).data("settings"),i=this.Time("getFixedValue");return!i&&t.showNullAsEmpty?null:t.context.toolsService.parseTime(i,null,t.allowOver24h)},clearValue:function(){var t=n(this).data("settings");this.val("")},fixValue:function(){var t=this.Time("getFixedValue");n(this).val(t)},getFixedValue:function(){var r=n(this).data("settings"),i,u,t;return r?(i=n(this).val(),!i&&r.showNullAsEmpty?null:(u=i.indexOf(".")!=-1?".":":",i=r.context.toolsService.parseTime(i,null,r.allowOver24h),t=this.Time("_partitionValue",i),isNaN(t[0])&&(t[0]="12"),isNaN(t[1])&&(t[1]="00"),(r.showLeadingZero&&t[0]<10?"0":"")+t[0]+u+(t[1]<10?"0":"")+t[1])):null},_partitionValue:function(t){var u=n(this).data("settings"),i=t.getMinutes(),r;return u.allowOver24h?(r=Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds()),i+=Math.floor(r/36e5)*60):i+=t.getHours()*60,[Math.floor(i/60),i%60]},_isTextSelected:function(){var t=n(this)[0],r=t.selectionStart,u=t.selectionEnd,i=document.selection;return i&&i.createRange().text.length!=0?!0:!i&&t.value.substring(r,u).length!=0?!0:!1}};n.fn.Time=function(i){if(t[i])return t[i].apply(this,Array.prototype.slice.call(arguments,1));if(typeof i!="object"&&i)n.error("Method "+i+" does not exist on jQuery.Time");else return t.init.apply(this,arguments)}}(jQuery),function(n){var t={init:function(t){return this.each(function(){var i=n.extend(!0,{},{array:!1,fieldName:"Name"},t),r=n(this),e=n("<div><\/div>"),c=r.parent(),o,u,s;e.insertAfter(r);r.remove();e.append(r);i.controlType="localizedtext";r.data("settings",i);var l=i.context={value:{},currentLanguage:null,originalValue:null},f=i.context.languageSelector=n("<select><\/select>").addClass("language"),h=r.attr("name");if(r.attr("id")&&(o=r.attr("id"),e.attr("id",o+"Container"),f.attr("id",o+"Lang")),f.attr("name",h+"Lang"),i.context.languageMap={},i.context.languageIDMap={},i.languages&&i.languages.length)for(i.context.currentLanguage=null,u=0;u<i.languages.length;u++)s=n("<option><\/option>").attr("value",i.languages[u].code).text(i.languages[u].text),i.currentLanguage&&i.currentLanguage.length&&i.languages[u].code==i.currentLanguage&&s.attr("selected","selected"),f.append(s),i.context.languageMap[i.languages[u].code]=i.languages[u],i.context.languageIDMap[i.languages[u].IdC]=i.languages[u],i.context.currentLanguage||(i.context.currentLanguage=i.currentLanguage&&i.currentLanguage.length?i.currentLanguage:i.languages[u].code);e.append(f);f.change(function(n){r.LocalizedText("onLanguageChanged",n)});r.blur(function(n){r.LocalizedText("onBlur",n)})})},onLanguageChanged:function(){var t=n(this).data("settings"),r,i;t&&t.context&&(r=t.context.languageSelector,t.context.value[t.context.currentLanguage]=n(this).val(),t.context.currentLanguage=r.val(),i=t.context.value[t.context.currentLanguage],i||(i=""),n(this).val(i))},onBlur:function(){var t=n(this).data("settings"),i;t&&t.context&&(i=t.context.languageSelector,t.context.value[t.context.currentLanguage]=n(this).val(),t.onValueChanged&&t.onValueChanged.apply())},getValue:function(){var t=n(this).data("settings"),i,e,u,r,o,f;if(t.context&&t.context.value){i=null;for(r in t.context.value)t.context.value[r]&&(i=t.context.value);if(i){if(t.array){for(i=t.context.originalValue?t.context.originalValue:[],e={},u=0;u<i.length;u++)e[i[u].LanguageIdC]=i[u];for(r in t.context.value)o=t.context.languageMap[r],f=e[o.IdC],f||i.push(f={LanguageIdC:o.IdC}
1),f[t.fieldName]=t.context.value[r]}return i}return null}return n(this).val()},setValue:function(t){var i=n(this).data("settings"),u,r,f;if(i&&i.context)if(i.context.originalValue=t,t==null)this.val("");else{if(typeof t=="string")i.context.value||(i.context.value={}),i.context.value[i.context.currentLanguage]=t;else if(t instanceof Array){for(u={},r=0;r<t.length;r++)f=i.context.languageIDMap[t[r].LanguageIdC],f&&(u[f.code]=t[r][i.fieldName]);i.array=!0;i.context.value=u}else i.context.value=t;n(this).val(i.context.value[i.context.currentLanguage])}},clearValue:function(){var t=n(this).data("settings");t&&t.context&&(t.context.value={},n(this).val(""),t.languages&&t.languages.length&&t.context.languageSelector.val(t.languages[0].code))}};n.fn.LocalizedText=function(i){if(t[i])return t[i].apply(this,Array.prototype.slice.call(arguments,1));if(typeof i!="object"&&i)n.error("Method "+i+" does not exist on jQuery.LocalizedText");else return t.init.apply(this,arguments)}}(jQuery),function(n){var i,t={init:function(t){return i=n.extend({},t),this.each(function(){var r=n(this),i=n.extend({decimals:0,allowNegative:!0,showNullAsEmpty:!1,context:{}},t);n(this).data("settings",i);n(this).keydown(function(t){n(this).Numeric("onKeyDown",t)}).bind("blur",function(){n(this).Numeric("fixValue")})})},onKeyDown:function(t){var i=n(this).data("settings");if(n.inArray(t.keyCode,[110,188,190])!==-1){if(i.decimals&&n(this).val().indexOf(".")==-1&&n(this).val().indexOf(",")==-1)return;t.preventDefault()}else if(n.inArray(t.keyCode,[109,189])!==-1){if(i.allowNegative&&n(this).val()==="")return;t.preventDefault()}n.inArray(t.keyCode,[46,8,9,27,13])!==-1||t.keyCode==65&&t.ctrlKey===!0||t.keyCode>=35&&t.keyCode<=39||(t.shiftKey||(t.keyCode<48||t.keyCode>57)&&(t.keyCode<96||t.keyCode>105))&&t.preventDefault()},setValue:function(t){var i=n(this).data("settings");!t&&i.showNullAsEmpty?this.val(""):(this.val(t),this.Numeric("fixValue"))},getValue:function(){var i=n(this).data("settings"),t=n(this).val();return!t&&i.showNullAsEmpty?null:Number(t.replace(/,/g,"."))},clearValue:function(){var t=n(this).data("settings");this.val("")},fixValue:function(){var i=n(this).data("settings"),t;i&&(t=n(this).val(),t||!i.showNullAsEmpty)&&(t=Number(t.replace(/,/g,".")),isNaN(t)?n(this).val(""):n(this).val(t.toFixed(i.decimals)))}};n.fn.Numeric=function(i){if(t[i])return t[i].apply(this,Array.prototype.slice.call(arguments,1));if(typeof i!="object"&&i)n.error("Method "+i+" does not exist on jQuery.Numeric");else return t.init.apply(this,arguments)}}(jQuery),function(n){var i,t={init:function(t){return i=n.extend({},t),this.each(function(){var i=n(this),r=n.extend({context:{}},t)})}};n.fn.DimensionItemSelector=function(i){if(t[i])return t[i].apply(this,Array.prototype.slice.call(arguments,1));if(typeof i!="object"&&i)n.error("Method "+i+" does not exist on jQuery.DimensionItemSelector");else return t.init.apply(this,arguments)}}(jQuery);angular.module("TiimaApp").factory("securityInterceptor",["$location","$q",function(n,t){return{responseError:function(i){return i.status===401?n.path("unauthorized"):i.status===403&&n.path("restricted"),t.reject(i)}}}]);angular.module("TiimaApp").factory("responseInterceptor",["$rootScope","$injector",function(n,t){return{response:function(i){var u,f,e,r,o;return n.$broadcast("resetSessionNotificationTimeout"),u=i.headers()["content-type"],typeof u=="string"&&u.indexOf("text/html")==0&&i.config&&i.config.method!="GET"&&(f=t.get("settingService"),e=t.get("logoutService"),f&&e&&(r=f.getSetting("LogoutUrl"),r||(r="Login/IndexLogOut"),i.config.url.indexOf(r)==-1&&(window.location.href="/"+r))),i&&i.InfoMessage&&(o=t.get("flashService"),o.showInfoMessage(i.InfoMessage),console.log("Added info message: "+i.InfoMessage)),i}}}]);angular.module("TiimaApp").factory("requestInterceptor",["$rootScope","$injector",function(n,t){return{request:function(i){var u,r;return document.referrer.indexOf(document.location.href)<0&&(u=t.get("flashService"),u.clearAll()),n.TiimaVersion&&i.url&&(r=i.url.toLowerCase(),r.indexOf(".html")>0&&r.indexOf("?")<0&&r.indexOf("template/")<0&&(i.url=i.url+"?v="+n.TiimaVersion+".1")),i}}}]),function(){function t(t){if(t){if(n&&t!==n){var r=n.substring(0,3),u=t.substring(0,3);r===u&&(i(),location.reload())}n=t}}function i(){var n=r();u(n)}function r(){var t=[],n,i;if(!sessionStorage)return t;for(n=0;n<sessionStorage.length;n++)i=sessionStorage.key(n),i.startsWith("languageData_")&&t.push(i);return t}function u(n){if(sessionStorage&&n)for(var t=0;t<n.length;t++)sessionStorage.removeItem(n[t])}var n=null;angular.module("TiimaApp").factory("translationFileVersionInterceptor",["$location","$q",function(){return{response:function(n){var i=n.headers()["translation-file-version"];return t(i),n}}}]);$(function(){$(document).ajaxComplete(function(n,i){var r=i.getResponseHeader("translation-file-version");t(r)})})}();angular.module("TiimaApp").factory("InformativeData",["$rootScope","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);this.usedIn=t||s;h.push(this)}var h=[],s="inner";return o.prototype={setData:function(n){angular.extend(this,n);this.StartDate&&(this.StartDate=r.parseISODateTime(this.StartDate),this.StartDateF=r.getFormattedDate(this.StartDate));this.EndDate&&(this.EndDate=r.parseISODateTime(this.EndDate),this.EndDateF=r.getFormattedDate(this.EndDate))}},o.getInformativeDataItems=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Administrating/InformativeData/GetInformativeDataItems",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;h.resolve(n)},h,s,r,u),h.promise},o.getInstance=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Administrating/InformativeData/GetInformativeDataInstance",n),function(n){h.resolve(new o(n?n.Data:null,r))},h,s,r,u),h.promise},o.saveInstance=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Administrating/InformativeData/SaveInformativeDataInstance",n),function(n){h.resolve(n?new o(n.Data,r):null)},h,s,r,u),h.promise},o.getEmptyInstance=function(){return new o({IdC:null,Code:"",Name:"",Unit:"",Type:1,Ordinal:0,AbsencePlanning:!1,ReasonCodeID:null,StartDate:null,EndDate:null,EditType:0,Year:0,Info:"",ColorCode:"",AllowNegativeBalance:!1,FullDayBalance:!1,AllowPartDay:!1,DailyDuration:0,Deleted:!1,Texts:null})},o}]);
1angular.module("TiimaApp").factory("Period",["$http","$q","$window","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);s.push(this);this.usedIn=t||h}var s=[],h="inner";return o.prototype={setData:function(n){angular.extend(this,n);this.StartDate=r.parseISODateTime(this.StartDate);this.EndDate=r.parseISODateTime(this.EndDate);this.StartDateF=r.getFormattedDate(this.StartDate);this.EndDateF=r.getFormattedDate(this.EndDate)}},o.getAll=function(i,r,u,s){f.getDateWithoutTimezone(arguments);var h=t.defer();return e.handleHttpPost(n.post("MVC/API/Period/GetAllPeriods",{StartDate:i,EndDate:r}),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,u))});n.DataList=t;h.resolve(n)},h,u,s),h.promise},o.getEmployeePeriods=function(i,r,u,s,h){f.removeTimezonesFromDates(arguments);var c=t.defer();return e.handleHttpPost(n.post("MVC/API/Period/GetEmployeePeriods",{EmployeeID:i,StartDate:r,EndDate:u}),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,s))});n.DataList=t;c.resolve(n)},c,s,h),c.promise},o}]);angular.module("TiimaApp").factory("CalendarDay",["$http","$q","$window","formatService","settingService","localizationService",function(n,t,i,r){function u(n){n&&this.setData(n);f.push(this)}var f=[];return u.prototype={setData:function(n){angular.extend(this,n);this.Day&&(this.Day=r.parseISODateTime(this.Day))}},u}]);angular.module("TiimaApp").factory("ReasonCode",["$rootScope","$http","$q","$window","formatService","settingService","localizationService","tiimaEnumsService","toolsService",function(n,t,i,r,u,f,e,o,s){function h(n,t){n&&this.setData(n);c.push(this);this.usedIn=t||l}var c=[],l="inner";return h.prototype={setData:function(n){var i,t,r,f,e,s;for(angular.extend(this,n),this.StartDate=u.parseISODateTime(this.StartDate),this.EndDate=u.parseISODateTime(this.EndDate),this.StartDateF=u.getFormattedDate(this.StartDate),this.EndDateF=u.getFormattedDate(this.EndDate),this.Property={},i=[o.getEnum("ReasoncodeProperty"),o.getEnum("ReasoncodeProperty2"),o.getEnum("ReasoncodeProperty3")],t=0;t<i.length;t++){r=i[t];f="Properties";t>0&&(f+=t+1);for(e in r)s=r[e],this.Property[e]=(this[f]&s)==s}this.ReasonCodeName="";this.changeLanguage()},changeLanguage:function(){var t=e.getCurrentLanguageIdC(),n;if(this.Texts)for(n=0;n<this.Texts.length;n++)if(this.Texts[n].LanguageIdC===t){this.ReasonCodeName=this.Texts[n].Name;break}}},h.getAll=function(n,r,u,f){e.removeTimezonesFromDates(n);var o=i.defer();return r||(r="GetReasonCodes"),s.handleHttpPost(t.post("MVC/API/ReasonCode/"+r,n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new h(n,u))});n.DataList=t;o.resolve(n)},o,u,f),o.promise},h.getAllForTransactions=function(n,t,i){return this.getAll(n,"GetReasonCodesForTransactions",t,i)},h.getDefaultReasonCode=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return s.handleHttpPost(t.post("MVC/API/ReasonCode/GetDefaultReasonCode",n),function(n){n.Data=new h(n.Data,r);f.resolve(n)},f,r,u),f.promise},n.$on("changeLanguage",function(){angular.forEach(c,function(n){n.changeLanguage()})}),h}]);angular.module("TiimaApp").factory("GroupItem",["$rootScope","$http","$q","$window","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e,o){function s(n,t){n&&this.setData(n);h.push(this);this.usedIn=t||c}var h=[],c="inner";return s.prototype={setData:function(n){angular.extend(this,n);this.StartDate=u.parseISODateTime(this.StartDate);this.EndDate=u.parseISODateTime(this.EndDate);this.StartDateF=u.getFormattedDate(this.StartDate);this.EndDateF=u.getFormattedDate(this.EndDate);this.GroupItemName="";this.GroupItemCode=this.Code;this.GroupingName="";this.changeLanguage()},changeLanguage:function(){var t=e.getCurrentLanguageIdC(),n;if(this.Texts)for(n=0;n<this.Texts.length;n++)if(this.Texts[n].LanguageIdC===t){this.GroupItemName=this.Texts[n].Name;this.GroupingName=this.Texts[n].GroupingName;break}}},s.getAll=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return o.handleHttpPost(t.post("MVC/API/GroupItem/GetGroupItems",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new s(n,r))});n.DataList=t;f.resolve(n)},f,r,u),f.promise},n.$on("changeLanguage",function(){angular.forEach(h,function(n){n.changeLanguage()})}),s}]);angular.module("TiimaApp").factory("PaymentGroup",["$rootScope","$http","$q","$window","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e,o){function s(n,t){n&&this.setData(n);h.push(this);this.usedIn=t||c}var h=[],c="inner";return s.prototype={setData:function(n){angular.extend(this,n);this.StartDate=u.parseISODateTime(this.StartDate);this.EndDate=u.parseISODateTime(this.EndDate);this.StartDateF=u.getFormattedDate(this.StartDate);this.EndDateF=u.getFormattedDate(this.EndDate);this.PaymentGroupName="";this.PaymentGroupCode=this.Code;this.changeLanguage()},changeLanguage:function(){var t=e.getCurrentLanguageIdC(),n;if(this.Texts)for(n=0;n<this.Texts.length;n++)if(this.Texts[n].LanguageIdC===t){this.PaymentGroupName=this.Texts[n].Name;break}}},s.getAll=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return o.handleHttpPost(t.post("MVC/API/PaymentGroup/GetPaymentGroups",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new s(n,r))});n.DataList=t;f.resolve(n)},f,r,u),f.promise},n.$on("changeLanguage",function(){angular.forEach(h,function(n){n.changeLanguage()})}),s}]);angular.module("TiimaApp").factory("UserGroup",["$rootScope","$http","$q","$window","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e,o){function s(n,t){n&&this.setData(n);h.push(this);this.usedIn=t||c}var h=[],c="inner";return s.prototype={setData:function(n){angular.extend(this,n);this.StartDate=u.parseISODateTime(this.StartDate);this.EndDate=u.parseISODateTime(this.EndDate);this.StartDateF=u.getFormattedDate(this.StartDate);this.EndDateF=u.getFormattedDate(this.EndDate);this.UserGroupName="";this.changeLanguage()},changeLanguage:function(){var t=e.getCurrentLanguageIdC(),n;if(this.Texts)for(n=0;n<this.Texts.length;n++)if(this.Texts[n].LanguageIdC===t){this.UserGroupName=this.Texts[n].Name;break}}},s.getAll=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return o.handleHttpPost(t.post("MVC/API/UserGroup/GetUserGroups",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new s(n,r))});n.DataList=t;f.resolve(n)},f,r,u),f.promise},n.$on("changeLanguage",function(){angular.forEach(h,function(n){n.changeLanguage()})}),s}]);angular.module("TiimaApp").factory("Queue",["$http","$q","$window","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);s.push(this);this.usedIn=t||h}var s=[],h="inner";return o.prototype={setData:function(n){angular.extend(this,n);this.StartDate=r.parseISODateTime(this.StartDate);this.EndDate=r.parseISODateTime(this.EndDate);this.CreatedTime=r.parseISODateTime(this.CreatedTime);this.StartDateF=r.getFormattedDate(this.StartDate);this.EndDateF=r.getFormattedDate(this.EndDate)}},o.getInstance=function(i,r,u){f.removeTimezonesFromDates(arguments);var s=t.defer();return e.handleHttpPost(n.post("MVC/API/Queue/GetInstance",{idc:i}),function(n){n&&n.Data&&(n.Data=new o(n.Data,r));s.resolve(n)},s,r,u),s.promise},o}]);angular.module("TiimaApp").factory("TypeOfDay",["$rootScope","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);this.usedIn=t||s;h.push(this)}var h=[],s="inner";return o.prototype={setData:function(n){angular.extend(this,n);this.TypeOfDayName="";this.changeLanguage()},changeLanguage:function(){var t=f.getCurrentLanguageIdC(),n;if(this.Texts)for(n=0;n<this.Texts.length;n++)if(this.Texts[n].LanguageIdC===t){this.TypeOfDayName=this.Texts[n].Name;break}}},o.getTypesOfDays=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Administrating/Calendars/GetTypesOfDays",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;h.resolve(n)},h,s,r,u),h.promise},o.getTypesOfDay=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Administrating/TypeOfDay/GetTypesOfDay",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;h.resolve(n)},h,s,r,u),h.promise},o.getInstance=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Administrating/TypeOfDay/GetTypeOfDayInstance",n),function(n){h.resolve(new o(n?n.Data:null,r))},h,s,r,u),h.promise},o.saveInstance=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Administrating/TypeOfDay/SaveTypeOfDayInstance",n),function(n){h.resolve(n?new o(n.Data,r):null)},h,s,r,u),h.promise},o.IsCodeUnique=function(n,r,u){f.removeTimezonesFromDates(n);var o=i.defer();return e.handleHttpPost(t.post("MVC/Administrating/TypeOfDay/IsCodeUnique",n),function(n){o.resolve(n&&n.Data?n.Data.Result:null)},o,s,r,u),o.promise},o.getEmptyInstance=function(){return new o({IdC:null,Code:"",NoYearVacation:"",MidWeekHoliday:!1,Color:"",Deleted:!1})},n.$on("changeLanguage",function(){angular.forEach(h,function(n){n.changeLanguage()})}),o}]);angular.module("TiimaApp").factory("EmployeeRestrictionValue",["$rootScope","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);this.usedIn=t||h;s.push(this)}var s=[],h="inner";return o.prototype={setData:function(n){angular.extend(this,n)},changeLanguage:function(){var n=f.getCurrentLanguageIdC()}},o.getAll=function(n,r,u){f.removeTimezonesFromDates(n);var s=i.defer();return e.handleHttpPost(t.post("MVC/Workhours/Transactions/GetEmployeeRestrictionValues",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;s.resolve(n)},s,h,r,u),s.promise},n.$on("changeLanguage",function(){angular.forEach(s,function(n){n.changeLanguage()})}),o}]);angular.module("TiimaApp").factory("Employee",["$rootScope","$http","$q","formatService","settingService","toolsService","localizationService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);this.usedIn=t||s;h.push(this)}var h=[],s="inner";return o.prototype={setData:function(n){var u,i,t;if(angular.extend(this,n),r.parseISODateTimes(this),this.Commitments&&r.parseISODateTimes(this.Commitments),this.EmploymentData&&r.parseISODateTimes(this.EmploymentData),this.EmploymentDataDates&&r.parseISODateTimes(this.EmploymentDataDates),this.GroupItems&&r.parseISODateTimes(this.GroupItems),this.ResourceDimensionItems&&r.parseISODateTimes(this.ResourceDimensionItems),this.PeriodStatus&&r.parseISODateTimes(this.PeriodStatus),this.Ap
1provableHours)for(i=0;i<this.ApprovableHours.length;i++)u=this.ApprovableHours[i],u.WorkingDayDate&&(u.WorkingDayDate=r.parseISODateTime(u.WorkingDayDate));if(this.OtherEvents)for(i=0;i<this.OtherEvents.length;i++)t=this.OtherEvents[i],t.StartDate&&(t.StartDate=r.parseISODateTime(t.StartDate)),t.EndDate&&(t.EndDate=r.parseISODateTime(t.EndDate)),t.AbsenceDate&&(t.AbsenceDate=r.parseISODateTime(t.AbsenceDate)),t.SortDate&&(t.SortDate=r.parseISODateTime(t.SortDate))}},o.getAll=function(n,r,u,h,c){var a,v,l;return n.date&&!n.startDate&&(a=f.getMonthDateRange(n.date),n.startDate=a.StartDate,n.endDate=a.EndDate,n.date=null),e.removeTimezonesFromDates(n),v="Employee.getAll"+(r?r:"GetEmployees"),n.QueryIndex=f.getNewQueryIndex(v),l=i.defer(),f.handleHttpPost(t.post("MVC/API/Employee/"+(r?r:"GetEmployees"),n),function(t){var i=[];angular.forEach(t.DataList,function(n){i.push(new o(n))});t.QueryIndex={Current:n.QueryIndex,Top:f.getTopQueryIndex(v)};t.DataList=i;l.resolve(t)},l,s,u,h,c),l.promise},o.getAllForResourceDimensionItem=function(n,t,i){return o.getAll(n,"GetEmployeesForResourceDimensionItem",t,i)},o.getAllForWorkhours=function(n,t,i){return o.getAll(n,"GetEmployeesForWorkhours",t,i)},o.getAllSubstitutableEmployees=function(n,t,i){return o.getAll(n,"GetSubstitutableEmployees",t,i)},o.getApprovableEmployeesAndHours=function(n,t,i){return o.getAll(n,"GetApprovableEmployeesAndHours",t,i)},o.getApprovableEmployeeAndHours=function(n,t,i,r){return o.getAll(n,"GetApprovableEmployeeAndHours",t,i,r)},o.getEmployeeWithBasicInfo=function(n,t,i){return o.getAll(n,"GetEmployeeWithBasicInfo",t,i)},o.getInstance=function(n,t,i){return o.getAll(n,"GetEmployee",t,i)},o.getAllForTravelClaim=function(n,t,i){return o.getAll(n,"GetEmployeesForTravelClaim",t,i)},o.setUse2FAForCurrent=function(n,r,u){e.removeTimezonesFromDates(n);var h=i.defer();return f.handleHttpPost(t.post("MVC/API/Employee/UpdateUse2FAForCurrent",n),function(n){n.Data&&(n.Data=new o(n.Data));h.resolve(n)},h,s,r,u),h.promise},o.isEmploymentDataValidOnSelectedPeriod=function(n,r,u){e.removeTimezonesFromDates(n);var o=i.defer();return f.handleHttpPost(t.post("MVC/API/Employee/IsEmploymentDataValidOnSelectedPeriod",n),function(n){o.resolve(n)},o,s,r,u),o.promise},o}]);angular.module("TiimaApp").factory("Organisation",["$http","$q","$window","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);s.push(this);this.usedIn=t||h}var s=[],h="inner";return o.prototype={setData:function(n){angular.extend(this,n);this.StartDate=r.parseISODateTime(this.StartDate);this.EndDate=r.parseISODateTime(this.EndDate);this.StartDateF=r.getFormattedDate(this.StartDate);this.EndDateF=r.getFormattedDate(this.EndDate)}},o.getAll=function(i,r,u,s){f.removeTimezonesFromDates(arguments);var h=t.defer(),c=i&&r?{StartDate:i,EndDate:r}:null;return e.handleHttpPost(n.post("MVC/API/Organisation/GetOrganisations",c),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,u))});n.DataList=t;h.resolve(n)},h,u,s),h.promise},o.getAll2=function(i,r,u){f.removeTimezonesFromDates(i);var s=t.defer(),i=i?i:null;return e.handleHttpPost(n.post("MVC/API/Organisation/GetOrganisations2",i),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;s.resolve(n)},s,r,u),s.promise},o}]);angular.module("TiimaApp").factory("Transaction",["$rootScope","$window","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e,o){function s(n,t){n&&this.setData(n);this.usedIn=t||h;c.push(this)}var c=[],h="inner";return s.prototype={setData:function(n){angular.extend(this,n);this.Stamps&&_.forEach(this.Stamps,function(n){n.ChangedDate=u.parseISODateTime(n.ChangedDate);n.CreatedDate=u.parseISODateTime(n.CreatedDate);n.StartDate=u.parseISODateTime(n.StartDate);n.EndDate=u.parseISODateTime(n.EndDate);n.StartDateSave=u.parseISODateTime(n.StartDateSave);n.EndDateSave=u.parseISODateTime(n.EndDateSave);n.Stamp=u.parseISODateTime(n.Stamp);n.LastChangeData=u.parseISODateTime(n.LastChangeData)});this.Employee&&this.Employee.EmploymentData&&_.forEach(this.Employee.EmploymentData,function(n){n.StartDate=u.parseISODateTime(n.StartDate);n.EndDate=u.parseISODateTime(n.EndDate)})}},s.getAll=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/Workhours/Transactions/GetTransactions",n),function(n){n.Data=new s(n.Data,t);f.resolve(n)},f,h,t,u),f.promise},s.save=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/Workhours/Transactions/SaveTransactions",n),function(n){n.Data=new s(n.Data,t);f.resolve(n)},f,h,t,u),f.promise},s}]);
1angular.module("TiimaApp").factory("Workhour",["$rootScope","$window","$http","$q","formatService","settingService","localizationService","toolsService","Period","CalendarDay","Employee","SalaryEventSummary","ProcessingInfo","DimensionItem",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v){function y(n,t){n&&this.setData(n);p.push(this);this.usedIn=t||w}var p=[],w="inner";return y.prototype={setData:function(n){var i,r,f,e,t,o;if(angular.extend(this,n),this.Date&&(this.Date=u.parseISODateTime(this.Date)),n.WorkHours&&n.WorkHours.length)for(t=0;t<n.WorkHours.length;t++)i=n.WorkHours[t],i.StartDate=u.parseISODateTime(i.StartDate),i.EndDate=u.parseISODateTime(i.EndDate);if(n.Shifts&&n.Shifts.length)for(t=0;t<n.Shifts.length;t++)r=n.Shifts[t],r.StartTime=u.parseISODateTime(r.StartTime),r.EndTime=u.parseISODateTime(r.EndTime);if(n.StandBys&&n.StandBys.length)for(t=0;t<n.StandBys.length;t++)f=n.StandBys[t],f.StartDate=u.parseISODateTime(f.StartDate),f.EndDate=u.parseISODateTime(f.EndDate);if(n.Absences&&n.Absences.length)for(t=0;t<n.Absences.length;t++)e=n.Absences[t],e.StartDate=u.parseISODateTime(e.StartDate),e.EndDate=u.parseISODateTime(e.EndDate);if(n.TravelClaims&&n.TravelClaims.length)for(t=0;t<n.TravelClaims.length;t++)o=n.TravelClaims[t],o.StartDate=u.parseISODateTime(o.StartDate),o.EndDate=u.parseISODateTime(o.EndDate);this.ProcessingLocks=n.ProcessingLocks&&Number(n.ProcessingLocks)!=64&&Number(n.ProcessingLocks)!=128?1:0;this.ChangedDate&&(this.ChangedDate=u.parseISODateTime(this.ChangedDate));this.CreatedDate&&(this.CreatedDate=u.parseISODateTime(this.CreatedDate))}},y.getAll=function(n,t,f){e.removeTimezonesFromDates(n);var p=r.defer();return o.handleHttpPost(i.post("MVC/Workhours/Workhours/GetWorkhours",n),function(n){var f,e,r;if(n.Data){var o=[],w=[],b=[],k=[],i=n.Data;if(i.StartDate&&(i.StartDate=u.parseISODateTime(i.StartDate)),i.EndDate&&(i.EndDate=u.parseISODateTime(i.EndDate)),i.Periods&&i.Periods.length&&angular.forEach(i.Periods,function(n){o.push(new s(n,t))}),i.CalendarDays&&i.CalendarDays.length&&angular.forEach(i.CalendarDays,function(n){w.push(new h(n,t))}),i.WorkingDays&&i.WorkingDays.length&&angular.forEach(i.WorkingDays,function(n){b.push(new y(n,t))}),i.Plans&&i.Plans.length&&angular.forEach(i.Plans,function(n){n.Date=u.parseISODateTime(n.Date)}),i.Defaults&&i.Defaults.length&&angular.forEach(i.Defaults,function(n){n.StartDate&&(n.StartDate=u.parseISODateTime(n.StartDate));n.EndDate&&(n.EndDate=u.parseISODateTime(n.EndDate))}),i.DimensionItems&&i.DimensionItems.length&&angular.forEach(i.DimensionItems,function(n){k.push(new v(n,t))}),i.SalaryEventSummary&&i.SalaryEventSummary.length){for(f=[],r=0;r<i.SalaryEventSummary.length;r++)f.push(new l(i.SalaryEventSummary[r],t));i.SalaryEventSummary=f}if(i.ProcessingInfo&&i.ProcessingInfo.length){for(e=[],r=0;r<i.ProcessingInfo.length;r++)e.push(new a(i.ProcessingInfo[r],t));i.ProcessingInfo=e}if(i.EmployeeInfo&&i.EmployeeInfo.length)for(r=0;r<i.EmployeeInfo.length;r++)i.EmployeeInfo[r].MinimumLimit&&(i.EmployeeInfo[r].MinimumLimit=i.EmployeeInfo[r].MinimumLimit/60);
1i.Periods=o;i.WorkingDays=b;i.CalendarDays=w;i.DimensionItems=k;i.Employee&&(i.Employee=new c(i.Employee,t))}p.resolve(n)},p,t,f),p.promise},y.save=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/Workhours/Workhours/SaveWorkhours",n),function(n){n.Data=new y(n.Data,t);f.resolve(n)},f,t,u),f.promise},y.accept=function(n,t,u,f){e.removeTimezonesFromDates(n);var s=r.defer();return o.handleHttpPost(i.post("MVC/Workhours/Workhours/AcceptWorkingDays",{workingDays:n,cancel:t}),function(n){n.Data=new y(n.Data,u);s.resolve(n)},s,u,f),s.promise},y.lock=function(n,t,u,f){e.removeTimezonesFromDates(n);var s=r.defer();return o.handleHttpPost(i.post("MVC/Workhours/Workhours/LockWorkingDays",{workingDays:n,cancel:t}),function(n){n.Data=new y(n.Data,u);s.resolve(n)},s,u,f),s.promise},y}]);angular.module("TiimaApp").factory("WorkhourSetting",["$rootScope","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);this.usedIn=t||s;h.push(this)}var h=[],s="inner";return o.prototype={setData:function(n){angular.extend(this,n);this.changeLanguage()},changeLanguage:function(){}},o.getAll=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Workhours/Workhours/GetSettings",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;h.resolve(n)},h,s,r,u),h.promise},o.saveBatch=function(n,r,u){f.removeTimezonesFromDates(n);var o=i.defer();return e.handleHttpPost(t.post("MVC/Workhours/Workhours/SaveSettings",n),function(n){o.resolve(n)},o,s,r,u),o.promise},n.$on("changeLanguage",function(){angular.forEach(h,function(n){n.changeLanguage()})}),o}]);angular.module("TiimaApp").factory("TravelClaim",["$rootScope","$window","$http","$q","formatService","settingService","localizationService","toolsService","Period","CalendarDay","Employee","SalaryEventSummary","ProcessingInfo","DimensionItem",function(n,t,i,r,u,f,e,o){function s(n,t){n&&(angular.extend(this,n),this.setData(n));h.push(this);this.usedIn=t||c}var h=[],c="inner";return s.prototype={setData:function(n){var f,r,t,i,e,o,s,h;if(angular.extend(this,n),this.StartDate&&(this.StartDate=u.parseISODateTime(this.StartDate)),this.EndDate&&(this.EndDate=u.parseISODateTime(this.EndDate)),this.DimensionItems)for(f=0;f<this.DimensionItems.length;f++)r=this.DimensionItems[f],r.StartDate&&(r.StartDate=u.parseISODateTime(r.StartDate)),r.EndDate&&(r.EndDate=u.parseISODateTime(r.EndDate));if(this.Allowances)for(t=0;t<this.Allowances.length;t++)this.Allowances[t].Date&&(this.Allowances[t].Date=u.parseISODateTime(this.Allowances[t].Date));if(this.Days)for(t=0;t<this.Days.length;t++)if(i=this.Days[t],i.Date){if(i.Date=u.parseISODateTime(i.Date),i.KilometreAllowances)for(e=0;e<i.KilometreAllowances.length;e++)o=i.KilometreAllowances[e],o.Date&&(o.Date=u.parseISODateTime(o.Date));if(i.PostingRows)for(s=0;s<i.PostingRows.length;s++)h=i.PostingRows[s],h.PostingDate&&(h.PostingDate=u.parseISODateTime(h.PostingDate))}}},s.getAll=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/API/TravelClaim/GetTravelClaims",n),function(n){if(n.DataList){var t=[];angular.forEach(n.DataList,function(n){t.push(new s(n))});n.DataList=t}f.resolve(n)},f,t,u),f.promise},s.getTravelClaims=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/Workhours/TravelClaims/GetTravelClaims",n),function(n){if(n.Data){var i=[];angular.forEach(n.Data.TravelClaims,function(n){i.push(new s(n,t))});n.DataList=i}f.resolve(n)},f,t,u),f.promise},s.getTravelClaim=function(n,t,u){var f=r.defer();return o.handleHttpPost(i.post("MVC/API/TravelClaim/GetTravelClaim",n),function(n){f.resolve(new s(n?n.Value:null,t))},f,t,u),f.promise},s.save=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/API/TravelClaim/SaveTravelClaim",n),function(n){n.Data=new s(n.Data,t);f.resolve(n)},f,t,u),f.promise},s.saveBatch=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/API/TravelClaim/SaveTravelClaims",n),function(n){if(n.DataList){var i=[];angular.forEach(n.DataList,function(n){i.push(new s(n,t))});n.DataList=i}f.resolve(n)},f,t,u),f.promise},s.doCalculation=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/API/TravelClaim/CalculateAllowances",n),function(n){n.Data=new s(n.Data,t);f.resolve(n)},f,t,u),f.promise},s.accept=function(n,t,u,f){e.removeTimezonesFromDates(n);var h=r.defer();return o.handleHttpPost(i.post("MVC/API/TravelClaim/AcceptTravelClaims",n),function(n){n.Data=new s(n.Data,u);h.resolve(n)},h,u,f),h.promise},s.validateDateRange=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/Workhours/TravelClaims/ValidateDateRange",n),function(n){n&&n.Data?f.resolve({duplicates:n.Data.Duplicates,employmentDataValid:n.Data.EmploymentValid,periodApprovedStatus:n.Data.PeriodApprovedStatus,periodProcessedStatus:n.Data.PeriodProcessedStatus}):f.resolve(null)},f,t,u),f.promise},s.getVehicles=function(n,t){var u=r.defer();return o.handleHttpPost(i.post("MVC/API/TravelClaim/GetVehicles"),function(n){n&&n.DataList?u.resolve(n):u.resolve(null)},u,n,t),u.promise},s.getCountries=function(n,t){var u=r.defer();return o.handleHttpPost(i.post("MVC/API/TravelClaim/GetCountries"),function(n){n&&n.DataList?u.resolve(n):u.resolve(null)},u,n,t),u.promise},s}]);angular.module("TiimaApp").factory("WorkingDayLog",["$rootScope","$
1window","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e,o){function s(n,t){n&&this.setData(n);h.push(this);this.usedIn=t||c}var h=[],c="inner";return s.prototype={setData:function(n){angular.extend(this,n);this.TimeStamp&&(this.TimeStamp=u.parseISODateTime(this.TimeStamp))}},s.getAll=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/API/ChangeLog/GetWorkingDayLog",n),function(n){if(n.DataList){var i=[];angular.forEach(n.DataList,function(n){i.push(new s(n,t))});n.DataList=i}f.resolve(n)},f,t,u),f.promise},s}]);angular.module("TiimaApp").factory("Dimension",["$rootScope","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);s.push(this);this.usedIn=t||h}var s=[],h="inner";return o.prototype={setData:function(n){angular.extend(this,n);this.DimensionName="";this.changeLanguage()},changeLanguage:function(){var t=f.getCurrentLanguageIdC(),n;if(this.Texts)for(n=0;n<this.Texts.length;n++)if(this.Texts[n].LanguageIdC===t){this.DimensionName=this.Texts[n].Name;break}this.Templates&&this.Templates.length&&angular.forEach(this.Templates,function(n){o.handleTemplateTexts(n,t)})}},o.handleTemplateTexts=function(n,t){if(n.Texts)for(var i=0;i<n.Texts.length;i++)if(n.Texts[i].LanguageIdC==t){n.TemplateName=n.Texts[i].Name;break}},o.getAll=function(n,r,u){f.removeTimezonesFromDates(n);var s=i.defer();return e.handleHttpPost(t.post("MVC/API/Dimension/GetDimensions",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;s.resolve(n)},s,r,u),s.promise},o.getResourcingDimensions=function(n,r,u){f.removeTimezonesFromDates(n);var s=i.defer();return e.handleHttpPost(t.post("MVC/API/Dimension/GetResourceDimensions",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;s.resolve(n)},s,r,u),s.promise},o.checkRequiredDimensions=function(n,r,u){f.removeTimezonesFromDates(n);var o=i.defer();return e.handleHttpPost(t.post("MVC/API/Dimension/CheckRequiredDimension",n),function(n){o.resolve(n&&n.Data?n.Data:null)},o,r,u),o.promise},n.$on("changeLanguage",function(){angular.forEach(s,function(n){n.changeLanguage()})}),o}]);angular.module("TiimaApp").factory("DimensionItem",["$rootScope","$http","$q","$window","formatService","settingService","localizationService","tiimaEnumsService","toolsService",function(n,t,i,r,u,f,e,o,s){function h(n,t,i){n&&(t&&t.ResourceDimensionItem?this.setDataResourceDimensionItem(n):this.setData(n));this.usedIn=i||c;l.push(this)}var l=[],c="inner";return h.prototype={setData:function(n){angular.extend(this,n);this.StartDate=u.parseISODateTime(this.StartDate);this.EndDate=u.parseISODateTime(this.EndDate);this.StartDateF=u.getFormattedDate(this.StartDate);this.EndDateF=u.getFormattedDate(this.EndDate);this.DimensionItemName="";this.DimensionName="";this.changeLanguage()},setDataResourceDimensionItem:function(n){var c,v,a,s,r,l,f,y,i,t;if(angular.extend(this,n),this.setData(n),this.BudgetPeriods&&this.BudgetPeriods.length)for(i=0;i<this.BudgetPeriods.length;i++)t=this.BudgetPeriods[i],t.StartDate=u.parseISODateTime(t.StartDate),t.EndDate=u.parseISODateTime(t.EndDate),t.StartDateF=u.getFormattedDate(t.StartDate),t.EndDateF=u.getFormattedDate(t.EndDate);if(this.Persons&&this.Persons.length)for(i=0;i<this.Persons.length;i++){if(t=this.Persons[i],t.StartDate=u.parseISODateTime(t.StartDate),t.EndDate=u.parseISODateTime(t.EndDate),t.StartDateF=u.getFormattedDate(t.StartDate),t.EndDateF=u.getFormattedDate(t.EndDate),t.Days&&t.Days.length)for(s=0;s<t.Days.length;s++)r=t.Days[s],r.StartTime=u.parseISODateTime(r.StartTime),r.EndTime=u.parseISODateTime(r.EndTime),r.StartTimeF=u.getFormattedDate(r.StartTime),r.EndTimeF=u.getFormattedDate(r.EndTime);if(t.Periods&&t.Periods.length)for(s=0;s<t.Periods.length;s++)f=t.Periods[s],f.StartDate=u.parseISODateTime(f.StartDate),f.EndDate=u.parseISODateTime(f.EndDate),f.StartDateF=u.getFormattedDate(f.StartDate),f.EndDateF=u.getFormattedDate(f.EndDate)}if(this.Roles&&this.Roles.length)for(i=0;i<this.Roles.length;i++){if(c=this.Roles[i],c.Demands&&c.Demands.length)for(s=0;s<c.Demands.length;s++)v=c.Demands[s],a=[],a[o.getValue("ResourceDimensionItemRoleDemandType","Organisation")]="RESOURCING.ROLEDEMANDTYPE_ORGANISATION_LABEL",a[o.getValue("ResourceDimensionItemRoleDemandType","Knowhow")]="RESOURCING.ROLEDEMANDTYPE_KNOWHOW_LABEL",a[o.getValue("ResourceDimensionItemRoleDemandType","GroupItem")]=v.TypeName,v.TypeName=a[v.DemandType];if(c.Persons&&c.Persons.length)for(s=0;s<c.Persons.length;s++){if(t=c.Persons[s],t.StartDate=u.parseISODateTime(t.StartDate),t.EndDate=u.parseISODateTime(t.EndDate),t.StartDateF=u.getFormattedDate(t.StartDate),t.EndDateF=u.getFormattedDate(t.EndDate),t.Days&&t.Days.length)for(l=0;l<t.Days.length;l++)r=t.Days[l],r.StartTime=u.parseISODateTime(r.StartTime),r.EndTime=u.parseISODateTime(r.EndTime),r.StartTimeF=u.getFormattedDate(r.StartTime),r.EndTimeF=u.getFormattedDate(r.EndTime);
1if(t.Periods&&t.Periods.length)for(l=0;l<t.Periods.length;l++)f=t.Periods[l],f.StartDate=u.parseISODateTime(f.StartDate),f.EndDate=u.parseISODateTime(f.EndDate),f.StartDateF=u.getFormattedDate(f.StartDate),f.EndDateF=u.getFormattedDate(f.EndDate)}}if(this.Breaks&&this.Breaks.length)for(i=0;i<this.Breaks.length;i++)t=this.Breaks[i],t.StartDate=u.parseISODateTime(t.StartDate),t.EndDate=u.parseISODateTime(t.EndDate),t.StartDateF=u.getFormattedDate(t.StartDate),t.EndDateF=u.getFormattedDate(t.EndDate);if(this.SubItems&&this.SubItems.length)for(i=0;i<this.SubItems.length;i++)y=this.SubItems[i],this.SubItems[i]=new h(y,{ResourceDimensionItem:!0});if(this.Readiness&&this.Readiness.length)for(i=0;i<this.Readiness.length;i++)t=this.Readiness[i],t.TimeStamp=u.parseISODateTime(t.TimeStamp),t.TimeStampF=u.getFormattedDate(t.TimeStamp);if(this.Permissions&&this.Permissions.length)for(i=0;i<this.Permissions.length;i++)t=this.Permissions[i],t.TypeName=t.UserIdC?e.getText("RESOURCING.PERMISSIONTYPE_USER_LABEL"):e.getText("RESOURCING.PERMISSIONTYPE_USERGROUP_LABEL");if(this.InheritedPermissions&&this.InheritedPermissions.length)for(i=0;i<this.InheritedPermissions.length;i++)t=this.InheritedPermissions[i],t.TypeName=t.UserIdC?e.getText("RESOURCING.PERMISSIONTYPE_USER_LABEL"):e.getText("RESOURCING.PERMISSIONTYPE_USERGROUP_LABEL")},changeAutoGeneratingSettingLanguage:function(n,t){angular.forEach(n,function(n){n.GenerateDimensionItem&&e.changeInstanceLanguage(n.GenerateDimensionItem,"Texts",[{to:"DimensionItemName",from:"Name"}],t)})},changePersonLanguage:function(n,t){var i=this;angular.forEach(n,function(n){n.AutoGeneratingSettings&&i.changeAutoGeneratingSettingLanguage(n.AutoGeneratingSettings,t)})},changeLanguage:function(){var n=e.getCurrentLanguageIdC(),t=this;this.ReasonCode&&this.ReasonCode.Texts&&e.changeInstanceLanguage(this.ReasonCode,"Texts",[{to:"ReasonCodeName",from:"Name"}],n);this.Roles&&angular.forEach(this.Roles,function(i){e.changeInstanceLanguage(i,"Texts",[{to:"RoleName",from:"Name"}],n);i.AutoGeneratingSettings&&i.AutoGeneratingSettings.length&&t.changeAutoGeneratingSettingLanguage(i.AutoGeneratingSettings,n);i.Persons&&i.Persons.length&&t.changePersonLanguage(i.Persons,n)});this.Persons&&this.Persons.length&&this.changePersonLanguage(this.Persons,n);this.AllLinks&&this.AllLinks.length&&angular.forEach(this.AllLinks,function(t){e.changeInstanceLanguage(t,"Texts",[{to:"DimensionItemName",from:"Name"},{to:"DimensionName",from:"DimensionName"}],n)});this.ForwardLinks&&this.ForwardLinks.length&&angular.forEach(this.ForwardLinks,function(t){e.changeInstanceLanguage(t,"Texts",[{to:"DimensionItemName",from:"Name"},{to:"DimensionName",from:"DimensionName"}],n)});this.BackwardLinks&&this.BackwardLinks.length&&angular.forEach(this.BackwardLinks,function(t){e.changeInstanceLanguage(t,"Texts",[{to:"DimensionItemName",from:"Name"},{to:"DimensionName",from:"DimensionName"}],n)});this.ReasonCodes&&this.ReasonCodes.length&&angular.forEach(this.ReasonCodes,function(t){e.changeInstanceLanguage(t,"Texts",[{to:"ReasonCodeName",from:"Name"}],n)});this.AutoGeneratingSettings&&this.AutoGeneratingSettings.length&&this.changeAutoGeneratingSettingLanguage(this.AutoGeneratingSettings,n);this.Texts&&this.Texts.length&&e.changeInstanceLanguage(this,"Texts",[{to:"DimensionItemName",from:"Name"},{to:"DimensionItemDescription",from:"Description"},{to:"DimensionName",from:"DimensionName"}],n)}},h.getAll=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return s.handleHttpPost(t.post("MVC/API/Dimension/GetDimensionItems",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new h(n,null,r))});n.DataList=t;f.resolve(n)},f,c,r,u),f.promise},h.getHierarchy=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return s.handleHttpPost(t.post("MVC/API/Dimension/GetHierachy",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new h(n,null,r))});n.DataList=t;f.resolve(n)},f,c,r,u),f.promise},h.getFilters=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return s.handleHttpPost(t.post("MVC/API/Dimension/GetResourceDimensionFilterItems",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new h(n,null,r))});n.DataList=t;f.resolve(n)},f,c,r,u),f.promise},h.getResourceDimensionItems=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return s.handleHttpPost(t.post("MVC/API/Dimension/GetResourceDimensionItems",n),function(n){var i=[],t=n.DataList,u=n,e="DataList";!n.DataList&&n.Data&&(t=n.Data.DimensionItems,u=n.Data,e="DimensionItems");t&&(angular.forEach(t,function(n){i.push(new h(n,{ResourceDimensionItem:!0},r))}),u[e]=i,f.resolve(n))},f,c,r,u),f.promise},h.getResourceDimensionItemInstance=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return s.handleHttpPost(t.post("MVC/API/Dimension/GetResourceDimensionItemInstance",n),function(n){var t=n&&n.Data?n.Data:null;t&&(n.Data=new h(t,{ResourceDimensionItem:!0},r));f.resolve(n)},f,c,r,u),f.promise},h.getResourceDimensionItemInstanceForPrinting=function(n,r,u){var f=i.defer();return s.handleHttpPost(t.post("MVC/Resourcing/Resourcing/PrintItem",n),function(n){var t=n&&n.Data?n.Data:null;t&&(n.Data=new h(t,{ResourceDimensionItem:!0},r));f.resolve(n)},f,r,u),f.promise},h.getSaveResourceDimensionItemDeferred=function(){return h._saveResourceDimensionItemDeferred||(h._saveResourceDimensionItemDeferred=i.defer()),h._saveResourceDimensionItemDeferred.promise},h.getAllWithUrlIdC=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return s.handleHttpPost(t.post("MVC/API/Dimension/GetDimensionItemsWithUrlIdC",n),function(n){var t=[],i=n&&n.DataList?n.DataList:null;i&&angular.forEach(i,function(n){t.push(new h(n))});n.DataList=t;f.resolve(n)},f,c,r,u),f.promise},h.saveResourceDimensionItem=function(n,r,u){e.removeTimezonesFromDates(n);var f=h._saveResourceDimensionItemDeferred?h._saveResourceDimensionItemDeferred:i.defer();return h._saveResourceDimensionItemDeferred=null,s.handleHttpPost(t.post("MVC/Resourcing/Resourcing/Save",n),function(n){var t=n&&n.Data?n.Data:null;t&&(n.Data=new h(t,{ResourceDimensionItem:!0},r));f.resolve(n)},f,c,r,u),f.promise},h.saveResourceDimensionItemLink=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return s.handleHttpPost(t.post("MVC/Resourcing/Resourcing/SaveLink",n),function(n){f.resolve(n)},f,c,r,u),f.promise},h.saveResourceDimensionItemTemplate=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return s.handleHttpPost(t.post("MVC/Resourcing/Resourcing/SaveTemplate",n),function(n){f.resolve(n)},f,c,r,u),f.promise},h.getDimensionItemsOfEmployee=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return s.handleHttpPost(t.post("MVC/API/Dimension/GetDimensionItemsOfEmployee",n),function(n){var i,t;if(n&&n.DataList&&n.DataList.length){for(i=[],t=0;t<n.DataList.length;t++)i.push(new h(n.DataList[t],null,r));n.DataList=i}f.resolve(n)},f,c,r,u),f.promise},n.$on("changeLanguage",function(){angular.forEach(l,function(n){n.changeLanguage()})}),h}]);angular.module("TiimaApp").factory("ResourceDimensionItemRoleDemandValue",["$rootScope","$http","$q","$window","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e,o){function s(n,t){n&&this.setData(n);h.push(this);this.usedIn=t||c}var h=[],c="inner";return s.prototype={setData:function(n){angular.extend(this,n);this.changeLanguage()},changeLanguage:function(){this.TypeName=e.getText(this.TypeName)}},s.getAll=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return o.handleHttpPost(t.post("MVC/Resourcing/Resourcing/GetRoleDemandValues",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new s(n,r))});n.DataList=t;f.resolve(n)},f,c,r,u),f.promise},n.$on("changeLanguage",function(){angular.forEach(h,function(n){n.changeLanguage()})}),s}]);angular.module("TiimaApp").factory("ResourceDimensionPermissionValue",["$rootScope","$http","$q","$window","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e,o){function s(n,t){n&&this.setData(n);h.push(this);this.usedIn=t||c}var h=[],c="inner";return s.prototype={setData:function(n){angular.extend(this,n);this.changeLanguage()},changeLanguage:function(){this.TypeName=e.getText(this.TypeName)}},s.getAll=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return o.handleHttpPost(t.post("MVC/Resourcing/Resourcing/GetResourceDimensionPermissionValues",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new s(n,r))});n.DataList=t;f.resolve(n)},f,c,r,u),f.promise},n.$on("changeLanguage",function(){angular.forEach(h,function(n){n.changeLanguage()})}),s}]);angular.module("TiimaApp").factory("ResourceEmployee",["$rootScope","$http","$q","formatService","settingService","resourcingService","localizationService","toolsService",function(n,t,i,r,u,f,e,o){function s(n,t){n&&this.setData(n);c.push(this);this.usedIn=t||h}var c=[],h="inner";return s.prototype={setData:function(n){var f,u,i,t;if(angular.extend(this,n),this.StartDate&&(this.StartDate=r.parseISODateTime(this.StartDate),this.StartDateF=r.getFormattedDate(this.StartDate)),this.EndDate&&(this.EndDate=r.parseISODateTime(this.EndDate),this.EndDateF=r.getFormattedDate(this.EndDate)),this.ResourceDimensionItems&&this.ResourceDimensionItems.length)for(i=0;i<this.ResourceDimensionItems.length;i++)if(t=this.ResourceDimensionItems[i],t.StartDate&&(t.StartDate=r.parseISODateTime(t.StartDate),t.StartDateF=r.getFormattedDate(t.StartDate)),t.EndDate&&(t.EndDate=r.parseISODateTime(t.EndDate),t.EndDateF=r.getFormattedDate(t.EndDate)),t.Periods)for(f=0;f<t.Periods.length;f++)u=t.Periods[f],u.StartDate&&(u.StartDate=new Date(u.StartDate),u.StartDateF=r.getFormattedDate(u.StartDate)),u.EndDate&&(u.EndDate=new Date(u.EndDate),u.EndDateF=r.getFormattedDate(u.EndDate));
1if(this.Absences&&this.Absences.length)for(i=0;i<this.Absences.length;i++)t=this.Absences[i],t.StartDate&&(t.StartDate=r.parseISODateTime(t.StartDate),t.StartDateF=r.getFormattedDate(t.StartDate)),t.EndDate&&(t.EndDate=r.parseISODateTime(t.EndDate),t.EndDateF=r.getFormattedDate(t.EndDate));if(this.EmploymentData&&this.EmploymentData.length)for(i=0;i<this.EmploymentData.length;i++)t=this.EmploymentData[i],t.StartDate&&(t.StartDate=r.parseISODateTime(t.StartDate),t.StartDateF=r.getFormattedDate(t.StartDate)),t.EndDate&&(t.EndDate=r.parseISODateTime(t.EndDate),t.EndDateF=r.getFormattedDate(t.EndDate));this.changeLanguage()},changeLanguage:function(){}},s.getAll=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return o.handleHttpPost(t.post("MVC/Resourcing/Resourcing/GetEmployees",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new s(n,r))});n.DataList=t;f.resolve(n)},f,h,r,u),f.promise},s.startReport=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return o.handleHttpPost(t.post("MVC/Resourcing/Resourcing/StartReport",n),function(n){n&&(n.Data?f.resolve(n.Data):f.reject())},f,h,r,u),f.promise},n.$on("changeLanguage",function(){angular.forEach(c,function(n){n.changeLanguage()})}),s}]);angular.module("TiimaApp").factory("ResourcingSetting",["$rootScope","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);h.push(this);this.usedIn=t||s}var h=[],s="inner";return o.prototype={setData:function(n){angular.extend(this,n);this.changeLanguage()},changeLanguage:function(){}},o.getAll=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Resourcing/Resourcing/GetSettings",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;h.resolve(n)},h,s,r,u,function(){h.reject()}),h.promise},o.saveBatch=function(n,r,u){f.removeTimezonesFromDates(n);var o=i.defer();return e.handleHttpPost(t.post("MVC/Resourcing/Resourcing/SaveSettings",n),function(n){o.resolve(n)},o,s,r,u,function(){o.reject()}),o.promise},n.$on("changeLanguage",function(){angular.forEach(h,function(n){n.changeLanguage()})}),o}]);angular.module("TiimaApp").factory("ResourceDimensionItemPeriod",["$rootScope","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);h.push(this);this.usedIn=t||s}var h=[],s="inner";return o.prototype={setData:function(n){angular.extend(this,n);this.StartDate&&(this.StartDate=r.parseISODateTime(this.StartDate),this.StartDateF=r.getFormattedDate(this.StartDate));this.EndDate&&(this.EndDate=r.parseISODateTime(this.EndDate),this.EndDateF=r.getFormattedDate(this.EndDate))}},o.getAll=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Resourcing/Resourcing/GetPeriods",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;h.resolve(n)},h,s,r,u),h.promise},o}]);angular.module("TiimaApp").factory("EmployeeOfResourceDimensionItemPeriod",["$rootScope","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);h.push(this);this.usedIn=t||s}var h=[],s="inner";return o.prototype={setData:function(n){angular.extend(this,n);this.StartDate&&(this.StartDateISO=r.parseISODateTime(this.StartDate),this.StartDateF=r.getFormattedDate(this.StartDate));this.EndDate&&(this.EndDateISO=r.parseISODateTime(this.EndDate),this.EndDateF=r.getFormattedDate(this.EndDate))}},o.getAll=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Resourcing/HourPlanning/GetEmployeeOfResourceDimensionItemPeriodData",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;h.resolve(n)},h,s,r,u),h.promise},o.saveEmployeeOfResourceDimensionItemPeriodData=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Resourcing/HourPlanning/SavePeriodData",n),function(n){n.Data=new o(n.Data,r);h.resolve(n)},h,s,r,u),h.promise},o}]);
1angular.module("TiimaApp").factory("ResourcingPeriod",["$rootScope","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);h.push(this);this.usedIn=t||s}var h=[],s="inner";return o.prototype={setData:function(n){angular.extend(this,n);this.StartDate&&(this.StartDate=r.parseISODateTime(this.StartDate),this.StartDateF=r.getFormattedDate(this.StartDate));this.EndDate&&(this.EndDate=r.parseISODateTime(this.EndDate),this.EndDateF=r.getFormattedDate(this.EndDate));this.changeLanguage()},changeLanguage:function(){}},o.getAllForDimensionItems=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Resourcing/Resourcing/GetActualHours",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;h.resolve(n)},h,s,r,u),h.promise},o.getAllForEmployees=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Resourcing/Resourcing/GetActualHoursForEmployees",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;h.resolve(n)},h,s,r,u),h.promise},n.$on("changeLanguage",function(){angular.forEach(h,function(n){n.changeLanguage()})}),o}]);angular.module("TiimaApp").factory("AbsenceGeneratingSetting",["$rootScope","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);this.usedIn=t||s;this.Texts=this.Texts?this.Texts:[];this.ReasonCodes=this.ReasonCodes?this.ReasonCodes:[];this.GroupItems=this.GroupItems?this.GroupItems:[];this.PaymentGroups=this.PaymentGroups?this.PaymentGroups:[];this.UserGroups=this.UserGroups?this.UserGroups:[];h.push(this)}var h=[],s="inner";return o.prototype={setData:function(n){angular.extend(this,n)}},o.getAll=function(n,r,u){var f=i.defer();return e.handleHttpPost(t.post("MVC/Administrating/AbsenceGeneratingSettings/GetAbsenceGeneratingSettings",n),function(n){var t=[];_.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;f.resolve(n)},f,s,r,u),f.promise},o.getInstance=function(n,r,u){var f=i.defer();return e.handleHttpPost(t.post("MVC/Administrating/AbsenceGeneratingSettings/GetAbsenceGeneratingSettingInstance",n),function(n){f.resolve(new o(n?n.Data:null,r))},f,s,r,u),f.promise},o.getEmptyInstance=function(){return new o({IdC:null,Code:"",Name:"",Description:"",Type:1,Priority:0,ActionIfExistingHours:1,GenerateAsApproved:0,UseDefaultReasonCode:0,IgnoreEmployeeLock:0,UseReasonCodeDimensionItemSettings:0,UseShiftPlanResourceDimensionItems:0,SubtractLunchFromStartTime:0,Deleted:!1,CreatedByID:0,CreatedDate:new Date,ChangedByID:0,ChangedDate:new Date,Texts:[],ReasonCodes:[],GroupItems:[],PaymentGroups:[],UserGroups:[],Texts:[]})},o.saveInstance=function(n,r,u){var f=i.defer();return e.handleHttpPost(t.post("MVC/Administrating/AbsenceGeneratingSettings/SaveAbsenceGeneratingSettingInstance",n),function(n){f.resolve(n?new o(n.Data,r):null)},f,s,r,u),f.promise},o}]);angular.module("TiimaApp").factory("PrivacyPolicy",["$http","$q","toolsService",function(n,t,i){function r(n,t){n&&this.setData(n);f.push(this);this.usedIn=t||u}var f=[],u="inner";return r.prototype={setData:function(n){angular.extend(this,n)}},r.getFiles=function(f,e,o){var s=t.defer();return i.handleHttpPost(n.post("MVC/Help/PrivacyPolicy/GetPrivacyPolicyFiles",f),function(n){var t=[];_.forEach(n.DataList,function(n){t.push(new r(n,e))});n.DataList=t;s.resolve(n)},s,u,e,o),s.promise},r}]);angular.module("TiimaApp").factory("RuleSet",["$rootScope","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);s.push(this);this.usedIn=t||h}var s=[],h="inner";return o.prototype={setData:function(n){angular.extend(this,n);this.StartDate&&(this.StartDate=r.parseISODateTime(this.StartDate),this.StartDateF=r.getFormattedDate(this.StartDate));this.EndDate&&(this.EndDate=r.parseISODateTime(this.EndDate),this.EndDateF=r.getFormattedDate(this.EndDate));this.changeLanguage()},changeLanguage:function(){}},o.getAll=function(n,r,u){f.removeTimezonesFromDates(n);var s=i.defer();return e.handleHttpPost(t.post("MVC/API/Processing/GetRuleSets",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n))});n.DataList=t;s.resolve(n)},s,h,r,u),s.promise},n.$on("changeLanguage",function(){angular.forEach(s,function(n){n.changeLanguage()})}),o}]);angular.module("TiimaApp").factory("SalaryEventSummary",["$http","$q","$window","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);s.push(this);this.usedIn=t||h}var s=[],h="inner";return o.prototype={setData:function(n){if(angular.extend(this,n),this.DayItems&&this.DayItems.length)for(var t=0;t<this.DayItems.length;t++)this.DayItems[t].Date=r.parseISODateTime(this.DayItems[t].Date),this.DayItems[t].DateF=r.getFormattedDate(this.DayItems[t].Date)}},o.getForWorkhours=function(i,r,u,s){f.removeTimezonesFromDates(arguments);var h=t.defer();return e.handleHttpPost(n.post("MVC/Workhours/Workhours/GetSalaryEventSummary",{queueIdC:i,employeeIdC:r}),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,u))});n.DataList=t;h.resolve(n)},h,u,s),h.promise},o}]);angular.module("TiimaApp").factory("ProcessingInfo",["$rootScope","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);s.push(this);this.usedIn=t||h}var s=[],h="inner";return o.prototype={setData:function(n){angular.extend(this,n);this.StartTime&&(this.StartTime=r.parseISODateTime(this.StartTime),this.StartTimeF=r.getFormattedDate(this.StartTime));this.EndTime&&(this.EndTime=r.parseISODateTime(this.EndTime),this.EndTimeF=r.getFormattedDate(this.EndTime));this.changeLanguage()},changeLanguage:function(){}},o.getAll=function(n,r,u){var f=i.defer();return e.handleHttpPost(t.post("MVC/API/Processing/GetProcessingInfo",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;f.resolve(n)},f,h,r,u),f.promise},n.$on("changeLanguage",function(){angular.forEach(s,function(n){n.changeLanguage()})}),o}]);angular.module("TiimaApp").factory("ProcessingTest",["$rootScope","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function s(n,t){n&&this.setData(n);h.push(this);this.usedIn=t||o}var h=[],o="inner";return s.checkIfProcessingSetExists=function(n,r,u){var f=i.defer();return e.handleHttpPost(t.post("MVC/Processing/ProcessingTest/CheckIfProcessingSetExists",n),function(n){f.resolve(n&&n.Data?n.Data.Result:null)},f,o,r,u),f.promise},s.executeProcessingCompareTest=function(n,r,u){var f=i.defer();return e.handleHttpPost(t.post("MVC/Processing/ProcessingTest/ExecuteProcessingCompareTest",n),function(n){f.resolve(n&&n.Data?n.Data:null)},f,o,r,u),f.promise},s}]);angular.module("TiimaApp").factory("WorkHourQueueBatch",["$rootScope","$http","$q","formatService","settingService","tiimaEnumsService","localizationService","toolsService",function(n,t,i,r,u,f,e,o){function s(n,t){n&&this.setData(n);c.push(this);this.usedIn=t||h}var c=[],h="inner";return s.prototype={setData:function(n){angular.extend(this,n);this.ImportDate&&(this.ImportDate=r.parseISODateTime(this.ImportDate),this.ImportDateF=r.getFormattedDate(this.ImportDate));this.ProcessingSets&&angular.forEach(this.ProcessingSets,function(n){n.StartDate&&(n.StartDate=r.parseISODateTime(n.StartDate));n.EndDate&&(n.EndDate=r.parseISODateTime(n.EndDate))});this.Data&&angular.forEach(this.Data,function(n){n.StartDate&&(n.StartDate=r.parseISODateTime(n.StartDate));n.EndDate&&(n.EndDate=r.parseISODateTime(n.EndDate));n.Date&&(n.Date=r.parseISODateTime(n.Date))});this.changeLanguage()},changeLanguage:function(){}},s.getAll=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return o.handleHttpPost(t.post("MVC/Processing/AutomaticCorrection/GetData",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new s(n,r))});n.DataList=t;f.resolve(n)},f,h,r,u),f.promise},s.execute=function(n,r,u){e.removeTimezonesFromDates(n);var s=i.defer();return o.handleHttpPost(t.post("MVC/Processing/AutomaticCorrection/Execute",n),function(n){n.Status==f.getValue("OperationReturnValue","Success")?s.resolve(n):s.reject()},s,h,r,u),s.promise},s.cancel=function(n,r,u){e.removeTimezonesFromDates(n);var s=i.defer();return o.handleHttpPost(t.post("MVC/Processing/AutomaticCorrection/CancelData",n),function(n){n.Status==f.getValue("OperationReturnValue","Success")?s.resolve(n):s.reject()},s,h,r,u),s.promise},n.$on("changeLanguage",function(){angular.forEach(c,function(n){n.changeLanguage()})}),s}]);angular.module("TiimaApp").factory("WorkPlan",["$rootScope","$http","$q","$window","formatService","settingService","localizationService",function(n,t,i,r,u){function f(n,t){n&&this.setData(n);e.push(this);this.usedIn=t||o}var e=[],o="inner";return f.prototype={setData:function(n){angular.extend(this,n);this.StartDate=u.parseISODateTime(this.StartDate);this.EndDate=u.parseISODateTime(this.EndDate);this.StartDateF=u.getFormattedDate(this.StartDate);this.EndDateF=u.getFormattedDate(this.EndDate)}},f}]);angular.module("TiimaApp").factory("WorkPlanData",["$rootScope","$http","$q","$window","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e,o){function s(n,t){n&&this.setData(n);c.push(this);this.usedIn=t||h}var c=[],h="inner";return s.prototype={setData:function(n){angular.extend(this,n);this.StartTime=u.parseISODateTime(this.StartTime);this.EndTime=u.parseISODateTime(this.EndTime);this.StartTimeF=u.getFormattedDate(this.StartTime);this.EndTimeF=u.getFormattedDate(this.EndTime)}},s.swapOrCopy=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return o.handleHttpPost(t.post("MVC/API/WorkPlan/SwapOrCopyWorkPlanData",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new s(n,r))});n.DataList=t;f.resolve(n)},f,h,r,u),f.promise},s}]);angular.module("TiimaApp").factory("ApprovingHours",["$rootScope","$http","$q","formatService","settingService","localizationService",function(){function t(){n.push(this)}var n=[];return t}]);angular.module("TiimaApp").factory("ApprovingHoursLimit",["$rootScope","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){this.Changed=!1;this.Deleted=!1;this.IdC=null;this.HourLimitType=null;this.HourLimitMin=null;this.HourLimitMax=null;this.HourLimitDayMax=null;this.TargetGroup=null;this.PaymentGroupIdC=null;this.PaymentGroupCode="";this.PaymentGroupName="";this.GroupItemIdC=null;this.GroupItemCode="";this.GroupItemName="";this.GroupingCode="";this.GroupingName="";this.HourLimitMinComment="";this.HourLimitMaxComment="";this.HourLimitDayMaxComment="";this.Texts=[];n&&this.setData(n);this.usedIn=t||s;h.push(this)}var h=[],s="inner";return o.prototype={setData:function(n){angular.extend(this,n);this.changeLanguage()},changeLanguage:function(){}},o.getAll=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Approving/ApprovingHours/GetApprovingHoursLimits",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;h.resolve(n)},h,s,r,u),h.promise},o.getInstance=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Approving/ApprovingHours/GetApprovingHoursLimit",n),function(n){n.Data=new o(n.Data,r);h.resolve(n)},h,s,r,u),h.promise},o.saveInstance=function(n,r,u){f.removeTimezonesFromDates(n);var o=i.defer();return e.handleHttpPost(t.post("MVC/Approving/ApprovingHours/SaveApprovingHoursLimit",n),function(n){o.resolve(n)},o,s,r,u),o.promise},o.saveBatch=function(n,r,u){f.removeTimezonesFromDates(n);var o=i.defer();return e.handleHttpPost(t.post("MVC/Approving/ApprovingHours/SaveApprovingHoursLimits",n),function(n){o.resolve(n)},o,s,r,u),o.promise},n.$on("changeLanguage",function(){angular.forEach(h,function(n){n.changeLanguage()})}),o}]);angular.module("TiimaApp").factory("ApprovingHoursSetting",["$rootScope","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);this.usedIn=t||s;h.push(this)}var h=[],s="inner";return o.prototype={setData:function(n){angular.extend(this,n);this.changeLanguage()},changeLanguage:function(){}},o.getAll=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Approving/ApprovingHours/GetSettings",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;h.resolve(n)},h,s,r,u),h.promise},o.saveBatch=function(n,r,u){f.removeTimezonesFromDates(n);var o=i.defer();return e.handleHttpPost(t.post("MVC/Approving/ApprovingHours/SaveSettings",n),function(n){o.resolve(n)},o,s,r,u),o.promise},n.$on("changeLanguage",function(){angular.forEach(h,function(n){n.changeLanguage()})}),o}]);angular.module("TiimaApp").factory("WorkHour",["$rootScope","$http","$q","formatService","localizationService","toolsService",function(n,t,i,r,u,f){function e(n,t){this.setData(n);s.push(this);this.usedIn=t||o}var s=[],o="inner";return e.prototype={setData:function(n){angular.extend(this,n);r.parseISODateTimes(this);this.WorkingDayDate&&(this.WorkingDayDate=r.parseISODateTime(this.WorkingDayDate));this.StartDate&&(this.StartDate=r.parseISODateTime(this.StartDate));this.EndDate&&(this.EndDate=r.parseISODateTime(this.EndDate))}},e.getWorkHourData=function(n,r,s){u.removeTimezonesFromDates(n);var h=i.defer();return f.handleHttpPost(t.post("MVC/API/WorkHour/GetWorkHourData",n),function(n){n&&n.Data&&(n.Data=new e(n.Data,r));h.resolve(n)},h,o,r,s),h.promise},e.saveWorkHourData=function(n,r,e,s){u.removeTimezonesFromDates(n);var h=i.defer();return f.handleHttpPost(t.post("MVC/API/WorkHour/SaveWorkHourData",n),function(n){h.resolve(n)},h,o,r,e,s),h.promise},e}]);angular.module("TiimaApp").factory("WorkingHourStamp",["$rootScope","$http","$q","formatService","localizationService","toolsService",function(n,t,i,r,u,f){function e(n,t){this.setData(n);s.push(this);this.usedIn=t||o}var s=[],o="inner";return e.prototype={setData:function(n){angular.extend(this,n);r.parseISODateTimes(this);this.StartDate&&(this.StartDate=r.parseISODateTime(this.StartDate));this.EndDate&&(this.EndDate=r.parseISODateTime(this.EndDate))}},e.getWorkingHourStampData=function(n,r,s){u.removeTimezonesFromDates(n);var h=i.defer();return f.handleHttpPost(t.post("MVC/API/WorkingHourStamp/GetWorkingHourStampData",n),function(n){n&&n.Data&&(n.Data=new e(n.Data,r));h.resolve(n)},h,o,r,s),h.promise},e.saveWorkingHourStampData=function(n,r,s,h){u.removeTimezonesFromDates(n);var c=i.defer();return f.handleHttpPost(t.post("MVC/API/WorkingHourStamp/SaveWorkingHourStampData",n),function(n){n&&n.Data&&(n.Data=new e(n.Data,r));c.resolve(n)},c,o,r,s,h),c.promise},e.isOverlappingStamp=function(n,r,e){u.removeTimezonesFromDates(n);var s=i.defer();return f.handleHttpPost(t.post("MVC/API/WorkingHourStamp/IsOverlappingStamp",n),function(n){s.resolve(n&&n.Data?n.Data.Result:null)},s,o,r,e),s.promise},e}]);angular.module("TiimaApp").factory("WorkingDay",["$rootScope","$http","$q","formatService","localizationService","toolsService",function(n,t,i,r,u,f){function e(n,t){this.setData(n);s.push(this);this.usedIn=t||o}var s=[],o="inner";return e.prototype={setData:function(n){angular.extend(this,n);this.Date&&(this.Date=r.parseISODateTime(this.Date));this.CreatedDate&&(this.CreatedDate=r.parseISODateTime(this.CreatedDate));this.ChangedDate&&(this.ChangedDate=r.parseISODateTime(this.ChangedDate))}},e.getWorkingDay=function(n,r,s){u.removeTimezonesFromDates(n);var h=i.defer();return f.handleHttpPost(t.post("MVC/API/WorkHour/GetWorkingDay",n),function(n){n&&n.Data&&(n.Data=new e(n.Data,r));h.resolve(n)},h,o,r,s),h.promise},e.getPeriodStatus=function(n,r,e){u.removeTimezonesFromDates(n);var s=i.defer();return f.handleHttpPost(t.post("MVC/Workhours/TravelClaims/GetPeriodStatus",n),function(n){s.resolve(n)},s,o,r,e),s.promise},e.isPeriodApproved=function(n,r,e){u.removeTimezonesFromDates(n);var s=i.defer();return f.handleHttpPost(t.post("MVC/Work
1hours/TravelClaims/IsPeriodApproved",n),function(n){s.resolve(n)},s,o,r,e),s.promise},e.isPeriodProcessed=function(n,r,e){u.removeTimezonesFromDates(n);var s=i.defer();return f.handleHttpPost(t.post("MVC/Workhours/TravelClaims/IsPeriodProcessed",n),function(n){s.resolve(n)},s,o,r,e),s.promise},e}]);angular.module("TiimaApp").factory("PaymentGroupPeriod",["$rootScope","$http","$q","$window","formatService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);s.push(this);this.usedIn=t||h}var s=[],h="inner";return o.prototype={setData:function(n){angular.extend(this,n);this.StartDate=u.parseISODateTime(this.StartDate);this.EndDate=u.parseISODateTime(this.EndDate);this.StartDateF=u.getFormattedDate(this.StartDate);this.EndDateF=u.getFormattedDate(this.EndDate);this.changeLanguage()},changeLanguage:function(){var n=f.getCurrentLanguageIdC()}},o.getAll=function(n,r,u){f.removeTimezonesFromDates(n);var s=i.defer();return e.handleHttpPost(t.post("MVC/API/Period/GetPaymentGroupPeriods",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;s.resolve(n)},s,r,u),s.promise},o}]);angular.module("TiimaApp").factory("OrganisationPeriod",["$rootScope","$http","$q","$window","formatService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);s.push(this);this.usedIn=t||h}var s=[],h="inner";return o.prototype={setData:function(n){angular.extend(this,n);this.StartDate=u.parseISODateTime(this.StartDate);this.EndDate=u.parseISODateTime(this.EndDate);this.StartDateF=u.getFormattedDate(this.StartDate);this.EndDateF=u.getFormattedDate(this.EndDate);this.changeLanguage()},changeLanguage:function(){var n=f.getCurrentLanguageIdC()}},o.getAll=function(n,r,u){f.removeTimezonesFromDates(n);var s=i.defer();return e.handleHttpPost(t.post("MVC/API/Period/GetOrganisationPeriods",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;s.resolve(n)},s,r,u),s.promise},n.$on("changeLanguage",function(){angular.forEach(s,function(n){n.changeLanguage()})}),o}]);angular.module("TiimaApp").factory("Calendar",["$rootScope","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);this.usedIn=t||s;this.CalendarDays=this.CalendarDays?this.CalendarDays:[];h.push(this)}var h=[],s="inner";return o.prototype={setData:function(n){angular.extend(this,n)}},o.getCalendars=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Administrating/Calendars/GetCalendars",n),function(n){var t=[];angular.forEach(n.Data.Calendars,function(n){t.push(new o(n,r))});n.DataList=t;h.resolve(n)},h,s,r,u),h.promise},o.getInstance=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Administrating/Calendars/GetCalendarInstance",n),function(n){h.resolve(new o(n?n.Data:null,r))},h,s,r,u),h.promise},o.saveInstance=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Administrating/Calendars/SaveCalendarInstance",n),function(n){h.resolve(n?new o(n.Data,r):null)},h,s,r,u),h.promise},o.clearCalendarData=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Administrating/Calendars/DeleteCalendarDayData",n),function(n){h.resolve(n?new o(n.Data,r):null)},h,s,r,u),h.promise},o.getEmptyInstance=function(){return new o({IdC:null,Code:"",Name:"",Type:0,AdditionalInfo:"",Deleted:!1,HolidayCalendar:!1,TypeOfDayCalendar:!1,DeleteValidateError:!1,CalendarDays:[]})},o}]);angular.module("TiimaApp").factory("Shift",["$rootScope","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);h.push(this);this.usedIn=t||s}var h=[],s="inner";return o.prototype={setData:function(n){angular.extend(this,n);this.StartDate&&(this.StartDate=r.parseISODateTime(this.StartDate),this.StartDateF=r.getFormattedDate(this.StartDate));this.EndDate&&(this.EndDate=r.parseISODateTime(this.EndDate),this.EndDateF=r.getFormattedDate(this.EndDate));this.StartTime&&(this.StartTime=r.parseISODateTime(this.StartTime),this.StartTimeF=r.getFormattedDate(this.StartTime));this.EndTime&&(this.EndTime=r.parseISODateTime(this.EndTime),this.EndTimeF=r.getFormattedDate(this.EndTime));this.FlexTimeStart&&(this.FlexTimeStart=r.parseISODateTime(this.FlexTimeStart),this.FlexTimeStartF=r.getFormattedDate(this.FlexTimeStart));this.FlexTimeEnd&&(this.FlexTimeEnd=r.parseISODateTime(this.FlexTimeEnd),this.FlexTimeEndF=r.getFormattedDate(this.FlexTimeEnd));this.ShiftName="";this.changeLanguage()},changeLanguage:function(){var t=f.getCurrentLanguageIdC(),n;if(this.Texts)for(n=0;n<this.Texts.length;n++)if(this.Texts[n].LanguageIdC===t){this.ShiftName=this.Texts[n].Name;break}}},o.getShifts=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Shifts/ShiftPlanning/GetShifts",n),function(n){var t=[];n&&n.DataList&&angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;h.resolve(n)},h,s,r,u),h.promise},o.getInstance=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Shifts/ShiftPlanning/GetShifts",n),function(n){h.resolve(new o(n.DataList&&n.DataList[0]?n.DataList[0]:null,r))},h,s,r,u),h.promise},o.saveInstance=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Shifts/ShiftPlanning/SaveShiftInstance",n),function(t){n.Deleted?h.resolve(t&&t.Data?t.Data:null):h.resolve(t?new o(t.Data.ShiftItem,r):null)},h,s,r,u),h.promise},o.IsCodeUnique=function(n,r,u){f.removeTimezonesFromDates(n);var o=i.defer();return e.handleHttpPost(t.post("MVC/Shifts/ShiftPlanning/IsCodeUnique",n),function(n){o.resolve(n&&n.Data?n.Data.Result:null)},o,s,r,u),o.promise},o.getEmptyInstance=function(){return new o({IdC:null,Code:"",StartTime:null,EndTime:null,FlexTimeStart:null,FlexTimeEnd:null,StartDate:null,EndDate:null,Duration:0,TimeEditable:0,NoDayRest:0,NoGenerating:0,OrganisationIdC:"",ReasoncodeIdC:"",ColorCode:"",Texts:[]})},o}]);angular.module("TiimaApp").factory("TravelClaimSetting",["$rootScope","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);h.push(this);this.usedIn=t||s}var h=[],s="inner";return o.prototype={setData:function(n){angular.extend(this,n);this.changeLanguage()},changeLanguage:function(){}},o.getAll=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/WorkHours/TravelClaims/GetSettings",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new o(n,r))});n.DataList=t;h.resolve(n)},h,s,r,u),h.promise},o.saveBatch=function(n,r,u){f.removeTimezonesFromDates(n);var o=i.defer();return e.handleHttpPost(t.post("MVC/WorkHours/TravelClaims/SaveSettings",n),function(n){o.resolve(n)},o,s,r,u),o.promise},n.$on("changeLanguage",function(){angular.forEach(h,function(n){n.changeLanguage()})}),o}]);angular.module("TiimaApp").factory("DashboardData",["$rootScope","$
1window","$http","$q","formatService","settingService","localizationService","toolsService","Employee","WorkingDay","WorkingHourStamp",function(n,t,i,r,u,f,e,o,s,h,c){function l(n,t){n&&this.setData(n);v.push(this);this.usedIn=t||a}var v=[],a="inner";return l.prototype={setData:function(n){var i,t,r;if(angular.extend(this,n),n.Employee,n.WorkingDay&&n.WorkingDay.WorkingDayDate&&(n.WorkingDay.WorkingDayDate=u.parseISODateTime(n.WorkingDay.WorkingDayDate)),n.PreviousDayRawStamps&&n.PreviousDayRawStamps.length)for(t=0;t<n.PreviousDayRawStamps.length;t++)i=n.PreviousDayRawStamps[t],i.Stamp=u.parseISODateTime(i.Stamp);if(n.RawStamps&&n.RawStamps.length)for(t=0;t<n.RawStamps.length;t++)i=n.RawStamps[t],i.Stamp=u.parseISODateTime(i.Stamp);if(n.WorkingHourStamps&&n.WorkingHourStamps.length)for(t=0;t<n.WorkingHourStamps.length;t++)r=n.WorkingHourStamps[t],r.StartDate=u.parseISODateTime(r.StartDate),r.EndDate=u.parseISODateTime(shift.EndDate)}},l.getStamps=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/Workhours/Dashboard/GetStamps",n),function(n){if(n.Data){var r=[],u=[],e=[],i=n.Data;i.Employee&&(i.Employee=new s(i.Employee,t));i.WorkingDay&&(i.WorkingDay=new h(i.WorkingDay,t));i.PreviousDayRawStamps&&i.PreviousDayRawStamps.length&&angular.forEach(i.PreviousDayRawStamps,function(n){r.push(new c(n,t))});i.RawStamps&&i.RawStamps.length&&angular.forEach(i.RawStamps,function(n){u.push(new c(n,t))});i.WorkingHourStamps&&i.WorkingHourStamps.length&&angular.forEach(i.WorkingHourStamps,function(n){e.push(new c(n,t))});i.PreviousDayRawStamps=r;i.RawStamps=u;i.WorkingHourStamps=e}f.resolve(n)},f,t,u),f.promise},l.checkIn=function(n,t,i,i,r){return n.Direction=1,l.insertRawStamp(n,"CheckIn",t,i,i,r)},l.toLunch=function(n,t,i,i,r){return n.Direction=0,l.insertRawStamp(n,"ToLunch",t,i,i,r)},l.fromLunch=function(n,t,i,i,r){return n.Direction=1,l.insertRawStamp(n,"FromLunc
1h",t,i,i,r)},l.checkOut=function(n,t,i,i,r){return n.Direction=0,l.insertRawStamp(n,"CheckOut",t,i,i,r)},l.insertRawStamp=function(n,t,u,f,f,s){n.Type=1;n.Stamp=new Date;n.StartDate=new Date;n.EndDate=new Date;e.removeTimezonesFromDates(n);var h=r.defer();return o.handleHttpPost(i.post("MVC/Workhours/Dashboard/"+t,n),function(n){n.Data=new c(n.Data,u);h.resolve(n)},h,a,u,f,s),h.promise},l}]);angular.module("TiimaApp").factory("Bulletin",["$rootScope","$window","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e,o){function s(n){n&&this.setData(n);c.push(this)}var c=[],h="inner";return s.prototype={setData:function(n){angular.extend(this,n);this.StartDate&&(this.StartDate=u.parseISODateTime(this.StartDate));this.EndDate&&(this.EndDate=u.parseISODateTime(this.EndDate));this.CreatedDate&&(this.CreatedDate=u.parseISODateTime(this.CreatedDate))}},s.getBulletins=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/Administrating/BulletinManage/GetBulletins",n),function(n){if(n.Data){var t=[];angular.forEach(n.Data.Bulletins,function(n){t.push(new s(n))});n.DataList=t}f.resolve(n)},f,h,t,u),f.promise},s.getBulletin=function(n,t,u){var f=r.defer();return o.handleHttpPost(i.post("MVC/Administrating/BulletinManage/GetBulletinInstance",n),function(n){f.resolve(new s(n?n.Data:null),t)},f,h,t,u),f.promise},s.saveBulletin=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/Administrating/BulletinManage/SaveBulletin",n),function(n){n.Data.Result?f.resolve(n.Data):f.resolve(new s(n&&n.Data&&n.Data.Bulletin?n.Data.Bulletin:null))},f,h,t,u),f.promise},s.getEmptyInstance=function(n){var t=new s;return t.IdC=null,t.StartDate=null,t.EndDate=null,t.Important=!1,t.Changed=!0,t.Deleted=!1,t.Targets=[],t.DeliveryStatuses=[],n&&(t.TemplateType=1),t.Texts=null,t},s}]);angular.module("TiimaApp").factory("BulletinReceiver",["$rootScope","$window","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e,o){function s(n){n&&this.setData(n);c.push(this)}var c=[],h="inner";return s.prototype={setData:function(n){angular.extend(this,n);this.ReadingDate&&(this.ReadingDate=u.parseISODateTime(this.ReadingDate))}},s.getBulletinReceivers=function(n,t,u){var f=r.defer();return o.handleHttpPost(i.post("MVC/Administrating/BulletinManage/GetBulletinReceivers",n),function(n){if(n.Data){var t=[];angular.forEach(n.Data.BulletinReceivers,function(n){t.push(new s(n))});n.DataList=t}f.resolve(n)},f,h,t,u),f.promise},s.getBulletinReceiverCount=function(n,t,u){var f=r.defer();return o.handleHttpPost(i.post("MVC/Administrating/BulletinManage/GetBulletinReceiverCount",n),function(n){f.resolve(n)},f,h,t,u),f.promise},s}]);angular.module("TiimaApp").factory("EmployeeGroup",["$rootScope","$http","$q","$window","formatService","settingService","toolsService","localizationService",function(n,t,i,r,u,f,e,o){function s(n){n&&this.setData(n);h.push(this)}var h=[],c="inner";return s.prototype={setData:function(n){angular.extend(this,n);this.StartDate=u.parseISODateTime(this.StartDate);this.EndDate=u.parseISODateTime(this.EndDate);this.StartDateF=u.getFormattedDate(this.StartDate);this.EndDateF=u.getFormattedDate(this.EndDate);this.Name="";this.Code=this.Code;this.changeLanguage()},changeLanguage:function(){var t=o.getCurrentLanguageIdC(),n;if(this.Texts)for(n=0;n<this.Texts.length;n++)if(this.Texts[n].LanguageIdC===t){this.Name=this.Texts[n].Name;break}}},s.getAll=function(n,r,u){o.removeTimezonesFromDates(n);var f=i.defer();return e.handleHttpPost(t.post("MVC/API/EmployeeGroup/GetEmployeeGroups",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new s(n))});n.DataList=t;f.resolve(n)},f,c,r,u),f.promise},n.$on("changeLanguage",function(){angular.forEach(h,function(n){n.changeLanguage()})}),s}]);angular.module("TiimaApp").factory("PersonnelGroup",["$rootScope","$http","$q","$window","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e,o){function s(n){n&&this.setData(n);h.push(this)}var h=[],c="inner";return s.prototype={setData:function(n){angular.extend(this,n);this.StartDate=u.parseISODateTime(this.StartDate);this.EndDate=u.parseISODateTime(this.EndDate);this.StartDateF=u.getFormattedDate(this.StartDate);this.EndDateF=u.getFormattedDate(this.EndDate);this.Name="";this.Code=this.Code;this.changeLanguage()},changeLanguage:function(){var t=e.getCurrentLanguageIdC(),n;if(this.Texts)for(n=0;n<this.Texts.length;n++)if(this.Texts[n].LanguageIdC===t){this.Name=this.Texts[n].Name;break}}},s.getAll=function(n,r,u){e.removeTimezonesFromDates(n);var f=i.defer();return o.handleHttpPost(t.post("MVC/API/PersonnelGroup/GetPersonnelGroups",n),function(n){var t=[];angular.forEach(n.DataList,function(n){t.push(new s(n))});n.DataList=t;f.resolve(n)},f,c,r,u),f.promise},n.$on("changeLanguage",function(){angular.forEach(h,function(n){n.changeLanguage()})}),s}]);angular.module("TiimaApp").factory("HourPlanning",["$rootScope","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e){function o(n,t){n&&this.setData(n);this.usedIn=t||s;this.Periods=this.Periods?this.Periods:[];this.DimensionItems=this.DimensionItems?this.DimensionItems:[];h.push(this)}var h=[],s="inner";return o.prototype={setData:function(n){angular.extend(this,n)}},o.getPeriodsAndDimensionItems=function(n,r,u){f.removeTimezonesFromDates(n);var h=i.defer();return e.handleHttpPost(t.post("MVC/Resourcing/HourPlanning/RefreshHourPlanningPage",n),function(n){h.resolve(new o(n?n.Data:null,r))},h,s,r,u),h.promise},o}]);angular.module("TiimaApp").factory("WorksiteAnnouncement",["$rootScope","$
1window","$http","$q","formatService","settingService","localizationService","toolsService","tiimaEnumsService",function(n,t,i,r,u,f,e,o){function s(n){n&&this.setData(n);c.push(this)}var c=[],h="inner";return s.prototype={setData:function(n){angular.extend(this,n);this.CreatedDate&&(this.CreatedDate=u.parseISODateTime(this.CreatedDate));this.AnnouncementPeriod&&(this.AnnouncementPeriod=u.parseISODateTime(this.AnnouncementPeriod))}},s.getWorksiteAnnouncements=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/Approving/WorksiteAnnouncement/GetWorksiteAnnouncements",n),function(n){if(n.Data){var t=[];angular.forEach(n.Data.DataList,function(n){t.push(new s(n))});n.DataList=t}f.resolve(n)},f,h,t,u),f.promise},s.createWorksiteAnnouncement=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/Approving/WorksiteAnnouncement/CreateWorksiteAnnouncement",n),function(n){f.resolve(new s(n&&n.Data?n.Data.WorksiteAnnouncement:null),t)},f,h,t,u),f.promise},s.deleteWorksiteAnnouncement=function(n,t,u){var f=r.defer();return o.handleHttpPost(i.post("MVC/Approving/WorksiteAnnouncement/DeleteWorksiteAnnouncement",n),function(n){f.resolve(n.Data.Result,t)},f,h,t,u),f.promise},s.getWorksiteAnnouncement=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/Approving/WorksiteAnnouncement/GetWorksiteAnnouncementInstance",n),function(n){f.resolve(new s(n?n.Data:null),t)},f,h,t,u),f.promise},s.addTaxAnnouncementID=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/Approving/WorksiteAnnouncement/AddWorksiteAnnouncementTaxID",n),function(n){f.resolve(n.Data.Result,t)},f,h,t,u),f.promise},s}]);angular.module("TiimaApp").factory("Worksite",["$rootScope","$window","$http","$q","formatService","settingService","localizationService","toolsService","tiimaEnumsService",function(n,t,i,r,u,f,e,o){function s(n){n&&this.setData(n);h.push(this)}var h=[],c="inner";return s.prototype={setData:function(n){angular.extend(this,n)}},s.getWorksites=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/Approving/WorksiteAnnouncement/GetWorksites",n),function(n){if(n.Data){var t=[];angular.forEach(n.Data.DataList,function(n){t.push(new s(n))});n.DataList=t}f.resolve(n)},f,c,t,u),f.promise},s}]);angular.module("TiimaApp").factory("WorksiteAnnouncementError",["$rootScope","$window","$http","$q","formatService","settingService","localizationService","toolsService","tiimaEnumsService",function(n,t,i,r,u,f,e,o){function s(n){n&&this.setData(n);h.push(this)}var h=[],c="inner";return s.prototype={setData:function(n){angular.extend(this,n)}},s.getWorksiteAnnouncementErrors=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/Approving/WorksiteAnnouncement/GetWorksiteAnnouncementErrors",n),function(n){if(n.Data){var t=[];angular.forEach(n.Data.DataList,function(n){t.push(new s(n))});n.DataList=t}f.resolve(n)},f,c,t,u),f.promise},s}]);angular.module("TiimaApp").factory("WorksiteAnnouncementOrganisation",["$rootScope","$window","$http","$q","formatService","settingService","localizationService","toolsService","tiimaEnumsService",function(n,t,i,r,u,f,e,o){function s(n){n&&this.setData(n);h.push(this)}var h=[],c="inner";return s.prototype={setData:function(n){angular.extend(this,n)}},s.getWorksiteAnnouncementOrganisations=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/Approving/WorksiteAnnouncement/GetWorksiteAnnouncementOrganisations",n),function(n){if(n.Data){var t=[];angular.forEach(n.Data.DataList,function(n){t.push(new s(n))});n.DataList=t}f.resolve(n)},f,c,t,u),f.promise},s}]);angular.module("TiimaApp").factory("AbsenceCertificate",["$rootScope","$window","$http","$q","formatService","settingService","localizationService","toolsService","tiimaEnumsService",function(n,t,i,r,u,f,e,o){function s(n){n&&this.setData(n);c.push(this)}var c=[],h="inner";return s.prototype={setData:function(n){angular.extend(this,n)}},s.getAll=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/Approving/AbsenceCertificate/GetAbsenceCertificates",n),function(n){if(n.Data){var t=[];angular.forEach(n.Data.DataList,function(n){t.push(new s(n))});n.DataList=t}f.resolve(n)},f,h,t,u),f.promise},s.markAsDelivered=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/Approving/AbsenceCertificate/MarkCertificateAsDelivered",n),function(n){f.resolve(n.Data.Result,t)},f,h,t,u),f.promise},s}]);
1angular.module("TiimaApp").factory("Config",["$rootScope","$window","$http","$q","formatService","settingService","localizationService","toolsService",function(n,t,i,r,u,f,e,o){function s(n,t){n&&this.setData(n);this.usedIn=t||h;c.push(this)}var c=[],h="inner";return s.prototype={setData:function(n){angular.extend(this,n)}},s.generateSecret=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/Config/Config/GenerateSecret",n),function(n){f.resolve(n)},f,h,t,u),f.promise},s.isValidGoogleAuthenticationCodeFormat=function(n){if(!n||(n=n.replace(/\s/g,""),n.length!==6))return!1;return/^\d+$/.test(n)},s.confirmSecret=function(n){let t=r.defer();var u=s.isValidGoogleAuthenticationCodeFormat(n);return u?o.handleHttpPost(i.post("MVC/Config/Config/ConfirmSecret",{code:n}),function(n){t.resolve(n)},t):t.resolve({isValidCode:!1}),t.promise},s.generateSecretForMobile=function(n,t,u){e.removeTimezonesFromDates(n);var f=r.defer();return o.handleHttpPost(i.post("MVC/Config/Config/GenerateSecretForMobile",n),function(n){f.resolve(n)},f,h,t,u),f.promise},s}]);angular.module("TiimaApp").factory("formatService",["$window","settingService",formatService=function(n,t){function r(n,t){if(n<1||n>12)return console.log("invalid month length query: "+n),0;var r=[31,28,31,30,31,30,31,31,30,31,30,31],i=n-1;return i==1?t%4==0&&t%100!=0||t%400==0?r[i]+1:r[i]:r[i]}var i={getFormattedHours:function(n,t,i){var f,r,u,e;return!n&&n!==0?n:(typeof n=="object"&&n.getTime?n=n.getHours()+(n.getMinutes()*60+n.getSeconds())/3600:typeof n!="number"&&(n=Number(n)),f=n<0,n*=f?-1:1,r=Math.floor(n),n-=r,u=Math.abs(Math.round(n*60)),i&&r+u==0&&(r=24),e=(f?"-":"")+r,(!t||u)&&(e+=":"+(u<10?"0":"")+u),e)},getFormattedSecods:function(n){var t,i,r;return n||(n=0),t="",i=0,n>3600&&(r=Math.floor(n/3600),t+=r+":",n-=r*3600),n>60&&(i=Math.floor(n/60),n-=i*60),t&&i<10&&(t+="0"),t+=i+":",n<10&&(t+="0"),t+n},getFormattedDecimal:function(n,t){return t||t===0||(t=2),parseFloat(Math.round(n*100)/100).toFixed(t)},getFormattedPercentage:function(n,t){return i.getFormattedDecimal(n*100,t)},getFormattedDate:function(i,r,u){if(i){if(u&&typeof i=="object"&&i.getTime){var f=new Date(i);return new Date(f.getFullYear(),f.getMonth(),f.getDate()).getTime()==f.getTime()&&f.setDate(f.getDate()-1),n.moment(f).format(r?r:t.getSetting("DefaultDateFormat"))}return n.moment(i).format(r?r:t.getSetting("DefaultDateFormat"))}return i},parseISODateTimes:function(n){if(n)if(n.length)for(var t=0;t<n.length;t++)i.parseISODateTimes(n[t]);else typeof n=="object"&&(n.StartDate||n.EndDate)&&(n.StartDate&&(n.StartDate=i.parseISODateTime(n.StartDate),n.StartDateF=i.getFormattedDate(n.StartDate)),n.EndDate&&(n.EndDate=i.parseISODateTime(n.EndDate),n.EndDateF=i.getFormattedDate(n.EndDate)))},getISODate:function(n){if(n&&t.getSetting("DefaultDateFormat")==="DD.MM.YYYY"){var i=n.split(".");return i[2]+"-"+i[1]+"-"+i[0]+"T00:00Z"}return n},parseISODateTime:function(t){return n.moment(t).toDate()},parseDate:function(n){var c,u,a,p,g,w,l,o,v,b,nt,i,h,f,e,s,y,k,d;if(n){if(a=t.getSetting("SupportedDateFormats"),p=t.getSetting("DefaultDateFormat"),a&&supportedDateFormatss.length>0)for(c=0;c<a.length;c++)if(g=a[c].formatString,w=moment(n,g,!0),w.isValid())return w.format(p);if(l=new Date,o=!0,p==="DD.MM.YYYY"){for(v=n,c=0;c<a.length;c++)b=a[c].separator,b!=="."&&(v=v.replace(new RegExp(b,"g"),"."));if(nt=/[^0-9\.]/g,v=v.replace(nt,""),i=v.split(".",3),i.length>1){for(u=0;u<i.length;u++)i[u]=parseInt(i[u],10);isNaN(i[0])&&(i[0]=l.getDate());i[1]||(i[1]=l.getMonth()+1);i[2]||(i[2]=l.getFullYear());i[0]<1&&(i[0]=1);i[1]>12&&(i[1]=12);i[1]<1&&(i[1]=1);i[0]>r(i[1],i[2])&&(i[0]=r(i[1],i[2]))}if(h="",i.length>0)for(u=0;u<i.length;u++)i[u]<10&&i[u]!==""&&(i[u]="0"+i[u]),h+=i[u];y=h.length;switch(y){case 0:break;case 1:case 2:if(i[1]=l.getMonth()+1,i[2]=l.getFullYear(),f=parseInt(h,10),f>r(i[1],i[2])||f<1||isNaN(f)){o=!1;break}i[0]=f;break;case 3:case 4:if(e=parseInt(h.substr(2,y-2),10),e<1||e>12||isNaN(e)){o=!1;break}if(i[1]=e,i[2]=l.getFullYear(),f=parseInt(h.substr(0,2),10),f>r(e,i[2])||f<1||isNaN(f)){o=!1;break}i[0]=f;break;
1case 5:case 6:case 8:if(e=parseInt(h.substr(2,2),10),e<1||e>12||isNaN(e)){o=!1;break}if(i[1]=e,k=String(l.getFullYear()),s=parseInt(h.substr(4,y-4),10),isNaN(s)){o=!1;break}if(s>1900)i[2]=s;else if(s<100&&s>=30)i[2]=(parseInt(k.substr(0,2),10)-1)*100+s;else if(s<30&&s>=0)i[2]=parseInt(k.substr(0,2),10)*100+s;else{o=!1;break}if(f=parseInt(h.substr(0,2),10),f<1||f>r(e,i[2])||isNaN(f)){o=!1;break}i[0]=f;break;default:o=!1}if(d="",i.length>2)for(u=0;u<i.length;u++)i[u]<10&&(i[u]="0"+i[u]),d+=u>0?"."+i[u]:i[u];if(o)return d}}return null},parseTime:function(n,t){var f,v,s,y,p,u,r,w,e,o;if(!n||!n.length)return null;var l=/[^0-9\.\:\,]/g,i=n.replace(l,""),a=/^[0-9]+$/;if(t&&((i.indexOf(".25")>=0||i.indexOf(".5")>=0||i.indexOf(".75")>=0)&&(i.indexOf(".")===0&&(i="00"+i),i=i.replace(/\./g,",")),i.indexOf(",")>0&&(f=i.split(","),a.test(f[0])&&a.test(f[1])&&(v=parseInt(f[0]),s=parseInt(f[1]),v<24&&s<100&&(y=s<10?10:100,p=Math.round(s*60/y),i=v+":"+p)))),l=/[\.\,]/g,i=i.replace(l,":"),i.indexOf(":")<0){if(u=!1,a.test(i))if(r=parseInt(i,10),t)r<1440&&(i=r/60+":"+r%60,u=!0);else{w=i.length;u=!0;switch(w){case 1:r<24?i=i+":00":u=!1;break;case 2:i=r<24?i+":00":r/10+":0"+r%10;break;case 3:r%100<60?i=r/100+":"+r%100:r/10<24?i=r/10+":0"+r%10:u=!1;break;case 4:r/100<24&&r%100<60?i=r/100+":"+r%100:u=!1;break;default:u=!1}}if(!u)return null}var b=i.split(":"),h=b[0],c=b[1];return!$.isNumeric(h)||!$.isNumeric(c)?null:(e=parseInt(h,10),o=parseInt(c,10),e>=24||o>=60||e<0||o<0)?null:(h=(e<10?"0":"")+e,c=(o<10?"0":"")+o,h+":"+c)},getMilliSecondsToTime:function(n){var i=parseInt(n/36e5%24),t;return i=i<10?"0"+i:i,t=parseInt(n/6e4%60),t=t<10?"0"+t:t,i+":"+t}};return i}]);angular.module("TiimaApp").factory("hierarchyCacheService",["$q","localizationService","toolsService","DimensionItem","Organisation",hierarchyCacheService=function(n,t,i,r,u){var f={dimensionCache:{},getHierarchy:function(i){var e=f.dimensionCache[i],o=n.defer(),h=n.defer(),s;return e?o.resolve(e):(s=function(n){for(var c,r,u,s,h=n&&n.DataList?n.DataList:[],v=[],l={},a=0;a<h.length;a++)r=angular.copy(h[a]),l[r.IdC]=r;for(c=0;c<h.length;c++)r=l[h[c].IdC],r.searchableText="",r.Code&&typeof r.Code=="string"&&(r.searchableText+=r.Code),u=r.Name,!u&&r.Texts&&(u=t.getCurrentLanguageText(r.Texts,"Name")),u&&typeof u=="string"&&(r.searchableText!=""&&(r.searchableText+=" "),r.searchableText+=u),r.ParentIdC?(s=l[r.ParentIdC],s&&(s.SubNodes?s.SubNodes.push(r):s.SubNodes=[r])):v.push(r);f.dimensionCache[i]=e={items:v,permissions:{}};o.resolve(e)},i?r.getHierarchy({DimensionIdC:i}).then(s):u.getAll().then(s)),o.promise.then(function(n){h.resolve(f.getCopy(n))}),h.promise},searchHierarchy:function(t,i){var r=n.defer();return f.getHierarchy(i).then(function(n){n?r.resolve(f.searchRecursive(n.hierarchy,t.toLowerCase())):r.reject()}),r.promise},searchRecursive:function(n,t){var r,u,i,o,e;if(!n||!n.length)return null;for(r=[],u=0;u<n.length;u++)i=n[u],i.searchableText&&typeof i.searchableText=="string"&&(o=i.searchableText.toLowerCase().indexOf(t),o>-1&&r.push(i)),i.SubNodes&&(e=f.searchRecursive(i.SubNodes,t),e&&e.length&&(r=r.concat(e)));return r},getCopy:function(n){for(var o,e,t,u,r={hierarchy:[],byID:{}},i=0;i<n.items.length;i++)o=angular.copy(n.items[i]),r.hierarchy.push(o);for(e=f.getSubTree(r.hierarchy),i=0;i<e.length;i++)if(t=e[i],r.byID[t.IdC]=t,t.SubNodes&&t.SubNodes.length)for(u=0;u<t.SubNodes.length;u++)t.SubNodes[u].Parent=t;return r},getSubTree:function(n){var t=[],i;if(Object.prototype.toString.call(n)==="[object Array]")for(i=0;i<n.length;i++)t=t.concat(f.getSubTree(n[i]));else t.push(n),n.SubNodes&&(t=t.concat(f.getSubTree(n.SubNodes)));return t}};return f}]);angular.module("TiimaApp").factory("pageService",["$rootScope","$window","$timeout","toolsService","localizationService",pageService=function(n,t,i,r,u){var f={sessionTimeout:20,sessionTimeoutEvent:null,sessionTimeoutWarningEvent:null,sessionTimeoutMessageDialog:null,refreshSessionUrl:null,loginUrl:null,counter:0,sideBarOpen:!1,sideBarVisible:!1,setRefreshSessionUrl:function(n){f.refreshSessionUrl=n},setLoginUrl:function(n){f.loginUrl=n},resetSessionTimeout:function(){f.setSessionTimeout(f.sessionTimeout);t.DEBUG&&(t.status="session reset "+f.counter+++" times")},setSessionTimeout:function(n){f.sessionTimeoutWarningEvent&&i.cancel(f.sessionTimeoutWarningEvent);f.sessionTimeoutEvent&&i.cancel(f.sessionTimeoutEvent);f.sessionTimeout=n;n=(f.sessionTimeout-2)*6e4;var e=f;f.sessionTimeoutEvent=i(function(){e.refreshSessionUrl=null;e.sessionTimeoutMessageDialog&&$("p",e.sessionTimeoutMessageDialog).text(u.getText("GLOBAL.SESSION_TIMED_OUT"))},f.sessionTimeout*6e4);f.sessionTimeoutWarningEvent=i(function(){e.sessionTimeoutMessageDialog=r.alert([{pageID:"GLOBAL",textID:"SESSION_TIMEOUT"},{pageID:"GLOBAL",textID:"SESSION_TIMEOUT_TO_EXPIRE"}],function(){var r,n,i,u;e.refreshSessionUrl?(r=$.ajax({type:"POST",url:e.refreshSessionUrl,dataType:"json",contentType:"application/json",data:""}),r.done(function(){}),r.fail(function(){})):e.loginUrl&&(n=t.location.pathname,i=n.indexOf(".aspx")!=-1,i||n.indexOf(".asp")!=-1||(i=!0),u=e.loginUrl,i&&(u+="?ReturnUrl="+n),window.location.replace(u))},{closeCallback:function(){e.sessionTimeoutMessageDialog=null}})},n)},setSideBarVisibility:function(t){f.sideBarVisible=t;n.$broadcast("sidebar-visibility-changed",f.sideBarVisible)},getSideBarVisibility:function(){return f.sideBarVisible},setSideBarState:function(t){f.sideBarOpen=t;n.$broadcast("sidebar-state-changed",f.sideBarOpen)},getSideBarState:function(){return f.sideBarOpen}};return f}]);angular.module("TiimaApp").factory("navigationService",["$q","$http","$rootScope","$timeout","$location","$browser","$window","validationService","settingService","toolsService",navigationService=function(n,t,i,r,u,f,e,o,s,h){var a=null,c=[],l=function(t,f,c,l,y,p,w){var b=n.defer(),d=u.url(),k;return d!=="/"+t?(k=[],!w&&o.isPageDirty()&&k.push(h.pageDirtyConfirmation()),n.all(k).then(function(){i.pageLoading=!0;a=t;b.resolve();var h=null,w=!1,o=v(t),w=o.ticketProvider||o.webForms&&p;
1w&&(y||(y={}),o.webForms&&y.push({parentPage:d}),h=o.ticketProvider(t,f,c,l,y).then(function(n){if(!o.webForms){var t=s.getSetting("CustomerID");return Mustache.render(o.urlFormat,{ticket:n.replace(/^\"|\"$/g,""),customerID:t})}}));h||(h=r(function(){return t}));n.all([h]).then(function(n){var t=n?n[0]:"Home",i=t.indexOf("http")===0;i||t.indexOf(".aspx")>0?e.location.href=o.basePath+t:u.url(t)})},function(){b.reject("page-dirty")})):b.resolve(),b.promise},v=function(n){var r=s.getSetting("UrlScheme"),e=s.getSetting("TicketProviders"),i={urlType:"local",url:n,webForms:!1},u,t,f;if(!n||!r||!r.Filters||!r.Filters.length)return i;for(u=0;u<r.Filters.length;u++){t=r.Filters[u];f=!1;switch(t.FilterType){case"contains":f=n.indexOf(t.FilterValue)>=0;break;case"none":f=!0}if(f)return i.urlType=t.UrlType,t.UrlType=="ticketed"&&(i.urlFormat=t.UrlFormat,i.ticketProvider=e?e[t.TicketProvider]:null),t.FilterValue===".aspx"&&(i.webForms=!0),i.basePath=t.BasePath?t.BasePath:"",i}return i},y=function(){},p=function(){};return{getPath:function(n){var t=f.baseHref();return(t||"/")+(n||"")},gotoSubPage:function(n,t,i,r,u){return l(n,t,i,r,u,!0).then(function(){c.push({sourcePage:a,targetPage:n,selectedIdC:t,idC2:i,idC3:r,pageParameters:u})},function(){})},returnFromSubPage:function(){var i=n.defer(),t=c.pop();return t?l(t.sourcePage).then(function(){i.resolve({selectedIdC:t.selectedIdC,idC2:t.idC2,idC3:t.idC3,pageParameters:t.pageParameters})},function(n){c.push(t);i.reject(n)}):i.reject("no-parent-page"),i.promise},gotoPage:function(n,t,i,r,u,f){l(n,t,i,r,u,!1,f).then(function(){c={}},function(){})}}}]);angular.module("TiimaApp").factory("toolsService",["$q","$rootScope","$window","localizationService","tiimaEnumsService","flashService",toolsService=function(n,t,i,r,u,f){var o=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""," ","","","","","","","","","","","","","","","","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","","","","","","0","1","2","3","4","5","6","7","8","9","*","+","|","-",".","/","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","!",'"',"#","$","%","&","_","(",")","*","+","|","HYPHEN_MINUS","{","}","~","","","","","","","","","",";","=",",","-",".","/","´","","","","","","","","","","","","","","","","","","","","","","","","","","","[","\\","]","'","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],e={_idBase:0,queryCounters:{},getNewQueryIndex:function(n){return e.queryCounters[n]||(e.queryCounters[n]=0),++e.queryCounters[n]},getTopQueryIndex:function(n){return e.queryCounters[n]||(e.queryCounters[n]=0),e.queryCounters[n]},jMustache:function(n,t){return $($.trim(Mustache.render(n,t)))},showModalDialog:function(n,t,i){var u=r.resolveText(n),s="",o,f;if(typeof n=="object"&&Object.prototype.toString.call(n)==="[object Array]"&&n.length>1&&(s=u[0],u=u.slice(1,u.length).join("<br/>")),o=[],t)for(f=0;f<t.length;f++)o.push(e._createDialogButton(t[f]));var h=e.getNewID(),c=e.jMustache("<div class='{{outerCssClass}}'><div class='{{cssClass}}' id='{{innerID}}'><p>{{message}}<\/p><\/div><\/div>",{innerID:h,message:u,outerCssClass:i&&i.outerCssClass?i.outerCssClass:"",cssClass:i&&i.cssClass?i.cssClass:""}).appendTo("body").dialog({modal:!0,title:s,autoOpen:!0,width:"500px",resizable:!1,buttons:o,dialogClass:"no-close",close:function(n,t){e.removeNode($(this),{delay:100});i&&i.closeCallback&&i.closeCallback(n,t)},open:function(){var n=$(this);i&&i.autoCloseDelay&&setTimeout(function(){n.dialog("close")},i.autoCloseDelay)}});return i&&i.content&&i.content.appendTo&&i.content.appendTo($("#"+h)),c.parent().css("z-index",1e4),c},_createDialogButton:function(n){var t={};return t.click=n.callback?function(t){t.preventDefault();t.stopPropagation();n.callback();$(this).dialog("close")}:function(n){n.preventDefault();n.stopPropagation();$(this).dialog("close")},n.text&&(t.text=typeof n.text=="object"?r.getText(n.text.pageID+"."+n.text.textID,n.text.data):n.text),t},getDataMessage:function(n,t){var u="",i,f;if(n&&(i=[],n.Errors&&n.Errors.length&&(i=i.concat(n.Errors)),n.Warnings&&n.Warnings.length&&(i=i.concat(n.Warnings)),n.Messages&&n.Messages.length&&(i=i.concat(n.Messages)),i.length))for(f=0;f<i.length;f++)u+=(u!=""?"\n":"")+r.getText(i[f]);return u===""&&t&&(u=t),u},splashDataMessage:function(n,t){e.showSplash(e.getDataMessage(n,t),n.Status==1?"okMessage":"errorMessage")},formatTime:function(n){var t="0"+n.getHours(),i="0"+n.getMinutes();return t.substr(t.length-2)+":"+i.substr(i.length-2)},parseTimeRaw:function(n,t,i,r){var u={hours:0,minutes:0,hasSeparator:!1,separator:".",valid:!0,complete:!1,resultOptions:[],original:n};if(n){u.valid=!1;u.separator=r?n.indexOf(".")>0?".":",":n.indexOf(".")>0?".":":";u.hasSeparator=_.includes(n,u.separator);var o=n.split(u.separator),e=Number(o[0]),f=o.length>1?Number(o[1]):0,s=!1;if(isNaN(e)||f&&isNaN(f))return u;r||u.hasSeparator?r&&f&&(f=Math.round(Number("0."+f)*6e3)/100):t?e=Number(n):n.length===2?(u.resultOptions.push({hours:Number(n.substr(0,2)),minutes:0,complete:!1}),u.resultOptions.push({hours:0,minutes:Number(n.substr(0,2)),complete:!1}),e=Number(n.substr(0,1)),f=Number(n.substr(1,1))):n.length===3?(u.resultOptions.push({hours:Number(n.substr(0,1)),minutes:Number(n.substr(1,2)),complete:!0}),e=Number(n.substr(0,2)),f=Number(n.substr(2,1))):n.length===4&&(e=Number(n.substr(0,2)),f=Number(n.substr(2,2)),s=!0);u.resultOptions.push({hours:e,minutes:f,complete:s});_.forEach(u.resultOptions,function(n){var r=n.hours,i=n.minutes;i<60&&(t||r*60+i<=1440)&&(u.valid&&(u.complete||!n.complete)||(u.hours=r,u.minutes=i,u.complete=n.complete,u.valid=!0))})}return u},parseTime:function(n,t,i,r,u){if(!n)return new Date(1970,0,1,0,0);if(n.getTime)return new Date(t?t.getFullYear():1970,t?t.getMonth():0,t?t.getDate():1,n.getHours(),n.getMinutes(),n.getSeconds());var o=0,s=0,f=e.parseTimeRaw(n,i,r,u);return f.valid&&(o=f.hours,s=f.minutes),new Date(t?t.getFullYear():1970,t?t.getMonth():0,t?t.getDate():1,o,s,0)},getNumberOfDays:function(n,t){switch(n){case 1:case 3:case 5:case 7:case 8:case 10:case 12:return 31;case 4:case 6:case 9:case 11:return 30}return t%400==0?29:t%100==0?28:t%4==0?29:28},getDefaultDateFormat:function(){var i={format:"ddmmyyyy",separator:"."},n=$.datepicker.regional[u.getValue("LanguageCode",t.language)],r;return n&&(r=n.dateFormat,n.dateFormat.indexOf(".")>0?i.separator=".":n.dateFormat.indexOf("/")>0&&(i.separator="/"),i.format=n.dateFormat.replace(/[.\/]/g,"")),i},parseDate:function(n,t,i){var c,u,r,l,h,o,s,f;return t&&i||(c=e.getDefaultDateFormat(),t||(t=c.separator),i||(i=c.format)),i=i.toLowerCase(),i=i.replace(/yyyy/,"yy"),u=new Date,r={day:u.getDate(),month:u.getMonth()+1,year:u.getFullYear()},n.indexOf(t)==-1?isNaN(n)||(l=i.length,n.length<l?n.length<4?n.length<3?n.length>1&&Number(n)>e.getNumberOfDays(u.getMonth()+1,u.getFullYear())?(r.day=i[0]=="m"?n.substr(1,1):n.substr(0,1),r.month=i[0]=="m"?n.substr(0,1):n.substr(1,1)):r.day=n:(h=i[0]=="m"?Number(n.substr(2,1)):Number(n.substr(0,2)),o=i[0]=="m"?Number(n.substr(0,2)):Number(n.substr(2,1)),(o>12||h>e.getNumberOfDays(o,u.getFullYear()))&&(h=i[0]=="m"?Number(n.substr(1,2)):Number(n.substr(0,1)),o=i[0]=="m"?Number(n.substr(0,1)):Number(n.substr(1,2))),o<=12&&h<=e.getNumberOfDays(o,u.getFullYear())&&(r.day=h,r.month=o)):n.length==4?(r.day=n.substr(0,2),r.month=n.substr(2,2)):(s=u.getFullYear(),n.length<8&&(s=Number(n.substring(4)),s=s<=50?"20"+s:"19"+s),r={day:i[0]=="m"?n.substr(2,0):n.substr(0,2),month:i[0]=="m"?n.substr(0,2):n.substr(2,0),year:s}):r={day:i[0]=="m"?n.substr(2,2):n.substr(0,2),month:i[0]=="m"?n.substr(0,2):n.substr(2,2),year:n.substr(4,l==5?2:4)}):(f=n.split(t),f[0]&&(i[0]=="d"?r.day=f[0]:r.month=f[0]),f.length>1&&f[1]&&(i[0]=="d"?r.month=f[1]:r.day=f[1]),f.length>2&&f[2]&&(r.year=f[2])),(r.day<1||r.day>31)&&(r.day=u.getDate()),(r.month<1||r.month>12)&&(r.month=u.getMonth()+1),(r.year<1899||r.year>2100)&&(r.year=u.getFullYear()),r.day=""+r.day,r.month=""+r.month,r.year=""+r.year,i.length<6&&(r.year.length==3?r.year="0"+r.year.substr(2,1):r.year.length==4&&(r.year=r.year.substr(2,2))),i[0]=="d"?(r.day.length<2?"0":"")+r.day+t+(r.month.length<2?"0":"")+r.month+t+r.year:(r.month.length<2?"0":"")+r.month+t+(r.day.length<2?"0":"")+r.day+t+r.year},getDateFormat:function(n,t){t||(t=".");var i="d"+t+"m"+t+"yy";switch(n){case"ddmmy":i="d"+t+"m"+t+"y";break;case"mmddyy":i="m"+t+"d"+t+"yy";break;case"mmddy":i="M"+t+"d"+t+"y"}return i},validateDate:function(n,t,i){var s;i||(i="DDMMYYYY");t||(t=".");i=e.getDateFormat(i,t);var u=e.checkDateValue(n,t,i),f=u.split(t),o=f!=null?f.length:0,r=(new Date).format(i).split(t);o==0?u=r[0]+t+r[1]+t+r[2]:o==1?u+=t+r[1]+t+r[2]:o==2?(f[1]==""&&(u+=r[1]),u+=t+r[2]):o==3&&f[2]==""&&(u+=r[2]);s=null;try{s=Date.parseInvariant(u,i)}catch(h){s=new Date}return s?!0:!1},momentDate:function(n,t){var r=t||new Date;return n&&(r=i.moment(n.replace(/\"/g,"")).toDate()),r},getCursorPositionInField:function(n){if(!n)return-1;if(n.length&&(n=n[0]),"selectionStart"in n)return n.selectionStart;if(document.selection){n.focus();var t=document.selection.createRange(),i=document.selection.createRange().text.length;return t.moveStart("character",-n.value.length),t.text.length-i}},getSelectedTextLengthInField:function(n){if(!n)return 0;n.length&&(n=n[0]);var i=n.selectionStart,r=n.selectionEnd,t=document.selection;return t?t.createRange().text.length:!t&&n.value?n.value.substring(i,r).length:0},getNextInputValue:function(n,t){var r,i,u,f;
1return!n||!t||!t.keyCode?"":(r=n.length?n.val():n.value,n.length&&(n=n[0]),_.includes([9,27,13],t.keyCode)||t.keyCode==65&&t.ctrlKey===!0||t.keyCode>=35&&t.keyCode<=39)?r:(i=e.getSelection(n),u=u=i.start,i.start==i.end&&(t.keyCode===8?i.start--:t.keyCode===46&&i.end++,i.start<0&&(i.start=0),i.end>r.length&&(i.end=r.length)),i.start!=i.end&&(f=r.substr(0,i.start)+r.substr(i.end),r=f),r.substr(0,u)+o[t.keyCode]+r.substr(u))},getSelection:function(n){var u,t,i,r,f;return"selectionStart"in n?{start:n.selectionStart,end:n.selectionEnd}:(u=document.selection.createRange().getBookmark(),t=n.createTextRange(),t.moveToBookmark(u),i=n.createTextRange(),i.collapse(!0),i.setEndPoint("EndToStart",t),r=i.text.length,f=t.text.length,{start:r,end:r+f})},showSplash:function(n,t,i){if(i||(i=1e3),typeof t=="string"){var r={cssClass:t,outerCssClass:"splashScreen"};t=r}return e.showModalDialog(n,null,{autoCloseDelay:i,outerCssClass:t&&t.outerCssClass?t.outerCssClass:"",cssClass:t&&t.cssClass?t.cssClass:""})},alert:function(n,t,i){var r=[{text:"OK"}];return t&&(r[0].callback=t),e.showModalDialog(n,r,i)},confirm:function(n,t,i,u){var s=[],f,o;for((!t||!t.length||t.length<2)&&(t=[r.getText("GLOBAL.BUTTON_YES"),r.getText("GLOBAL.BUTTON_NO")]),f=0;f<t.length;f++)o={},s.push(o),f==0?o.callback=i:u&&(o.callback=u),o.text=t[f];return e.showModalDialog(n,s)},confirmWithPromise:function(t){var i=n.defer();return e.confirm(t,null,function(){i.resolve()},function(){i.reject()}),i.promise},pageDirtyConfirmation:function(){return e.confirmWithPromise("GLOBAL.CONFIRM_NAVIGATION_WHEN_DIRTY")},removeNode:function(n,t){n&&(n.jquery||(n=$(n)),n.fadeOut(t&&t.delay?t.delay:500,function(){$(this).remove()}))},elementInViewport:function(n){n.length&&(n=n[0]);for(var t=n.offsetTop,r=n.offsetLeft,u=n.offsetWidth,f=n.offsetHeight;n.offsetParent;)n=n.offsetParent,t+=n.offsetTop,r+=n.offsetLeft;return t>=i.pageYOffset&&r>=i.pageXOffset&&t+f<=i.pageYOffset+i.innerHeight&&r+u<=i.pageXOffset+i.innerWidth},getNewID:function(){return(new Date).getTime()},getToday:function(){var n=new Date,t=n.getTime(),i=t-t%864e5+n.getTimezoneOffset()*6e4;return new Date(i)},getUTCDate:function(n){return new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds()))},getDateOnly:function(n){var i=!1,t,r;return n.getTime&&(i=!0,n=n.getTime()),t=new Date(n),r=(t.getHours()*3600+t.getMinutes()*60+t.getSeconds())*1e3+t.getMilliseconds(),n-=r,i?new Date(n):n},urlEncodeBase64:function(n){return n.replace(/\+/g,".").replace(/\//,"_").replace(/=/g,"-").replace(/\*/g,"~")},getDateDifference:function(n,t){var r=864e5,f=n.getTime()+n.getTimezoneOffset()*6e4,e=t.getTime()+t.getTimezoneOffset()*6e4,u=f-e,i=u%r;return{negative:n>t,days:Math.round(u/r),hours:Math.floor(i/36e5),minutes:Math.floor(i/6e4),seconds:Math.floor(i/1e3),milliseconds:i%1e3}},getMonthDateRange:function(n){var t={};return t.StartDate=new Date(n.getFullYear(),n.getMonth(),1),t.EndDate=new Date(n.getFullYear(),n.getMonth()+1,0),t},setDatePart:function(n,t){return Object.prototype.toString.call(n)==="[object Date]"&&Object.prototype.toString.call(t)==="[object Date]"&&(n.setYear(t.getFullYear()),n.setMonth(t.getMonth()),n.setDate(t.getDate())),n},setTimePart:function(n,t){return Object.prototype.toString.call(n)==="[object Date]"&&Object.prototype.toString.call(t)==="[object Date]"&&(n.setHours(t.getHours()),n.setMinutes(t.getMinutes())),n},addDays:function(n,t){var i=new Date(n.getTime()+t*864e5),r=i.getTimezoneOffset()-n.getTimezoneOffset();return new Date(i.getTime()+r*6e4)},createMonthPeriods:function(n,t){var f=[],i,r,u;if(t>0)for(i=0;i<t;i++)r=new Date(n.getFullYear(),n.getMonth()-i,1,0,0,0,0),u=r.getMonth()+1,f.push({Name:(u<10?"0":"")+u+"/"+r.getFullYear(),Value:r});return f},getHashCode:function(n){var r=typeof n,t="",u;switch(r){case"object":if(n&&n.getTime)t+="[date:"+n.getTime()+"]";else for(u in n)t+="["+r+":"+u+JSON.stringify(n[u])+"]";break;case"function":t+="["+r+":"+n.toString()+"]";break;default:t+="["+r+":"+n+"]"}return i.MD5(t.replace(/\s/g,""))},toCamelCase:function(n,t){if(n instanceof Array)return n.map(function(n){return typeof n=="object"&&(n=e.toCamelCase(n,t)),n});var i={};return _.forOwn(n,function(n,r){var u=r;r&&r.length&&""+parseInt(r[0])!==r[0]&&(u=_.camelCase(r),(!t||t[u])&&n&&(n instanceof Array||n!==null&&n.constructor===Object)&&(n=e.toCamelCase(n,t)));angular.isUndefined(n)&&(n=null);i[u]=n}),i},compareObjects:function(n,t){return e.getHashCode(n)===e.getHashCode(t)},prepareObjectForAjax:function(n,t,i){var s={},h={},f,e,r,o,c,u;if(t)for(u=0;
1u<t.length;u++)s[t[u]]=!0;if(i)for(u=0;u<i.length;u++)h[i[u]]=!0;f=$.extend({},n);for(e in f)if(r=f[e],o=!1,typeof r=="undefined"?o=!0:typeof r=="object"&&(o=r==null),!o)if(i&&!h[e]&&delete f[e],s[e])delete f[e];else if(r instanceof Date&&(c=r.getTimezoneOffset(),f[e]=new Date(r.getTime()-c*6e4)),r instanceof Array)for(u=0;u<r.length;u++)r instanceof Object&&(r[u]=this.prepareObjectForAjax(r[u]));else r instanceof Object?f[e]=this.prepareObjectForAjax(r):typeof r=="string"&&(isNaN(r)||(f[e]=Number(r)));return f},prepareValueForAjax:function(){},isTrue:function(n){return $.inArray(n,[1,!0,"true","True","TRUE"])!=-1?!0:!1},splashResponseError:function(n){e.splashDataMessage(n&&n.data?n.data:null)},showResponseError:function(n,t){var i=_.isString(n)?n:n.status===-1?"GLOBAL_ERRORS.OPERATION_TIMED_OUT":n&&n.data&&n.data.ErrorMessages||n&&n.data&&n.data.Errors||"GLOBAL_ERRORS.UNKNOWN_ERROR";try{console.log("response error detected: "+(i instanceof Array?i.join(";"):i.toString()))}catch(r){}f.showError(i instanceof Array?i.join(";"):i.toString(),t)},handleResponseError:function(n,t,i,r){t&&t.reject(n);var u=i===!0||i===!1?i:(r||i)==="modal";e.showResponseError(n,u)},handleHttpPost:function(n,t,i,r,u,f,o,s){n.then(function(n){n.data&&n.data.Status!==0?t(n.data,n.headers):o?(o(n),s&&e.handleResponseError(n,i,r,u)):e.handleResponseError(n,i,r,u);f&&f()},function(n){o?(o(n),s&&e.handleResponseError(n,i,r,u)):e.handleResponseError(n,i,r,u);f&&f()})}};return e}]);angular.module("TiimaApp").factory("refreshSessionService",["$http","$q","toolsService",refreshSessionService=function(n,t,i){return{refreshSession:function(){var r=t.defer();return i.handleHttpPost(n.post("MVC/api/banner/refresh"),function(n){r.resolve(n)},r),r.promise}}}]);angular.module("TiimaApp").factory("settingService",["$q",settingService=function(n){var t={_settings:{},_initialized:n.defer(),initSettings:function(n){t._settings&&(t._settings=angular.extend({},t._settings,n));t._initialized.resolve()},getInitializedPromise:function(){return t._initialized.promise},setSettingValue:function(n,i){var r=t._settings;r&&(r[n]=i)},getSetting:function(n){var r=t._settings,i=r?r[n]:null;return i?angular.isUndefined(i.Value)?i:i.Value:null}};return t}]);angular.module("TiimaApp").factory("localizationService",["$http","$window","$q",localizationService=function(n,t,i){function s(){(function(n){n.datepicker.regional.fi={renderer:n.datepicker.defaultRenderer,monthNames:["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu","Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],monthNamesShort:["Tammi","Helmi","Maalis","Huhti","Touko","Kesä","Heinä","Elo","Syys","Loka","Marras","Joulu"],dayNamesShort:["Su","Ma","Ti","Ke","To","Pe","Su"],dayNames:["Sunnuntai","Maanantai","Tiistai","Keskiviikko","Torstai","Perjantai","Lauantai"],dayNamesMin:["Su","Ma","Ti","Ke","To","Pe","La"],dateFormat:"dd.mm.yy",firstDay:1,prevText:"«Edellinen",prevStatus:"",prevJumpText:"<<",prevJumpStatus:"",nextText:"Seuraava»",nextStatus:"",nextJumpText:">>",nextJumpStatus:"",currentText:"Tänään",currentStatus:"",todayText:"Tänään",todayStatus:"",clearText:"-",clearStatus:"",closeText:"Sulje",closeStatus:"",yearStatus:"",monthStatus:"",weekText:"Vk",weekHeader:"Vk",weekStatus:"",dayStatus:"DD d MM",defaultStatus:"",isRTL:!1};n.extend(n.datepicker.defaults,n.datepicker.regional.fi)})(jQuery),function(n){n.datepicker.regional.se={renderer:n.datepicker.defaultRenderer,monthNames:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNamesShort:["Sön","MÃ¥n","Tis","Ons","Tor","Fre","Lör"],dayNames:["Söndag","MÃ¥ndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"],dayNamesMin:["Sö","MÃ¥","Ti","On","To","Fr","Lö"],dateFormat:"dd.mm.yy",firstDay:1,prevText:"«Förra",prevStatus:"",prevJumpText:"<<",prevJumpStatus:"",nextText:"Nästa»",nextStatus:"",nextJumpText:">>",nextJumpStatus:"",currentText:"Idag",currentStatus:"",todayText:"Idag",todayStatus:"",clearText:"-",clearStatus:"",closeText:"Stäng",closeStatus:"",yearStatus:"",monthStatus:"",weekText:"Ve",weekHeader:"Ve",weekStatus:"",dayStatus:"DD d MM",defaultStatus:"",isRTL:!1};n.extend(n.datepicker.defaults,n.datepicker.regional.se)}(jQuery),function(n){n.datepicker.regional["en-GB"]={renderer:n.datepicker.defaultRenderer,monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Frid
1ay","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],dateFormat:"dd/mm/yy",firstDay:1,prevText:"<Prev",prevStatus:"",prevJumpText:"<<",prevJumpStatus:"",nextText:"Next>",nextStatus:"",nextJumpText:">>",nextJumpStatus:"",currentText:"Current",currentStatus:"",todayText:"Today",todayStatus:"",clearText:"Clear",clearStatus:"",closeText:"Done",closeStatus:"",yearStatus:"",monthStatus:"",weekText:"Wk",weekHeader:"Wk",weekStatus:"",dayStatus:"DD d MM",defaultStatus:"",isRTL:!1};n.extend(n.datepicker.defaults,n.datepicker.regional["en-GB"])}(jQuery),function(n){n.datepicker.regional.no={renderer:n.datepicker.defaultRenderer,monthNames:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Des"],dayNamesShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayNames:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],dayNamesMin:["Sø","Ma","Ti","On","To","Fr","Lø"],dateFormat:"dd.mm.yy",firstDay:0,prevText:"«Forrige",prevStatus:"",prevJumpText:"<<",prevJumpStatus:"",nextText:"Neste»",nextStatus:"",nextJumpText:">>",nextJumpStatus:"",currentText:"I dag",currentStatus:"",todayText:"I dag",todayStatus:"",clearText:"-",clearStatus:"",closeText:"Lukk",closeStatus:"",yearStatus:"",monthStatus:"",weekText:"Uke",weekHeader:"Uke",weekStatus:"",dayStatus:"DD d MM",defaultStatus:"",isRTL:!1};n.extend(n.datepicker.defaults,n.datepicker.regional.no)}(jQuery),function(n){n.datepicker.regional.dk={renderer:n.datepicker.defaultRenderer,monthNames:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNames:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],dayNamesShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayNamesMin:["Sø","Ma","Ti","On","To","Fr","Lø"],dateFormat:"dd.mm.yy",firstDay:1,prevText:"<Forrige",prevStatus:"",prevJumpText:"<<",prevJumpStatus:"",nextText:"Næste>",nextStatus:"",nextJumpText:">>",nextJumpStatus:"",currentText:"Idag",currentStatus:"",todayText:"Idag",todayStatus:"",clearText:"-",clearStatus:"",closeText:"Luk",closeStatus:"",yearStatus:"",monthStatus:"",weekText:"Uge",weekHeader:"Uge",weekStatus:"",dayStatus:"DD d MM",defaultStatus:"",isRTL:!1};n.extend(n.datepicker.defaults,n.datepicker.regional.dk)}(jQuery),function(n){n.datepicker.regional.de={renderer:n.datepicker.defaultRenderer,monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayNamesMin:["So","Mo","Di","Mi","Do","Fr","Sa"],dateFormat:"dd.mm.yy",firstDay:1,prevText:"<zurück",prevStatus:"",prevJumpText:"<<",prevJumpStatus:"",nextText:"Vor>",nextStatus:"",nextJumpText:">>",nextJumpStatus:"",currentText:"heute",currentStatus:"",todayText:"heute",todayStatus:"",clearText:"-",clearStatus:"",closeText:"schließen",closeStatus:"",yearStatus:"",monthStatus:"",weekText:"Wo",weekHeader:"Wo",weekStatus:"",dayStatus:"DD d MM",defaultStatus:"",isRTL:!1};n.extend(n.datepicker.defaults,n.datepicker.regional.de)}(jQuery)}s();var f=function(n,t,i,r){return n.then(function(n){if(n.data&&n.data.Status!==0)t(n.data,n.headers);else{var u=r||n.data&&n.data.ErrorMessages;i?i.reject(u):console.log(u)}},function(n){var t=r||n.data&&n.data.ErrorMessages;i?i.reject(t):console.log(t)}),n},o={},u=null,e={lastSelected:""},r={loadDefer:i.defer(),texts:null,loadingTranslations:!1,activeLanguages:null,languages:[{code:"FIN",text:"Suomi"},{code:"SWE",text:"Svenska"},{code:"ENG",text:"English"},],currentLanguage:null,getLoadDefer:function(){return r.loadDefer.promise},removeTimezonesFromDates:function(n){var i,t;if(n)if(n.length)for(t=0;t<n.length;t++)n[t]&&(n[t].getTime?n[t]=r.getDateWithoutTimezone(n[t]):typeof n[t]=="object"&&r.removeTimezonesFromDates(n[t]));else for(i in n)n[i]&&(n[i].getTime?n[i]=r.getDateWithoutTimezone(n[i]):typeof n[i]=="object"&&r.removeTimezonesFromDates(n[i]))},changeLanguage:function(n,t,i,u){n&&n.length&&i&&i.length&&angular.forEach(n,function(n){r.changeInstanceLanguage(n,t,i,u)})},changeInstanceLanguage:function(n,t,i,r){var u,f,e;if(n&&i&&i.length&&(u=n[t],u&&u.length))for(f=0;f<u.length;f++)if(u[f].LanguageIdC==r)for(e=0;e<i.length;e++)n[i[e].to]=u[f][i[e].from]},getDateWithoutTimezone:function(n){var i=t.moment(n),r=i.utcOffset();return i.add(r,"m"),i.toDate()},getAllLanguages:function(){return r.languages},getLanguageByCode:function(n){if(n)for(var t=0;t<r.languages.length;t++)if(r.languages[t].code===n)return r.languages[t]},getActiveLanguages:function(){return u?u.promise:(u=i.defer(),f(n.post("MVC/api/localization/getlanguages"),function(n){var f,t,i;if(n&&n.Data&&n.Data.languages){for(f=[],t=0;t<r.languages.length;t++)for(i=0;i<n.Data.languages.length;
1i++)r.languages[t].code===n.Data.languages[i].Code&&(r.languages[t].IdC=n.Data.languages[i].IdC,f.push(r.languages[t]));u.resolve({languages:f,defaultLanguage:n.Data.defaultLanguage})}else u.reject("Get Languages failed! Error: "+n)},u),u.promise)},getLanguageIdC:function(n){for(var i="",t=0;t<r.languages.length;t++)r.languages[t].code==n&&(i=r.languages[t].IdC);return i},setCurrentLanguage:function(n){r.currentLanguage=n},getCurrentLanguage:function(){return r.currentLanguage},getCurrentLanguageIdC:function(){return r.getLanguageIdC(r.currentLanguage)},clearCache:function(){var n,t;if(r.languages&&sessionStorage)for(n=0;n<r.languages.length;n++)t="languageData_"+r.languages[n].code,sessionStorage.removeItem(t)},getLocalization:function(n){var t=null;return r.currentLanguage=n,r.texts=r.getCachedLanguageTexts(),e.lastSelected!==n?(t=i.all([r.postLanguageCode(n),r.loadTranslationFile(n)]),e.callback=t):r.texts||(t=r.loadTranslationFile(n)),e.lastSelected=n,t&&t.then(function(){r.loadDefer.resolve()}),t},postLanguageCode:function(t){return f(n.post("MVC/api/localization/selectlocalization/"+t),angular.noop,null,"Select localization failed!")},loadTranslationFile:function(t){if(r.loadingTranslations){var u=i.defer();return u.resolve()}return r.loadingTranslations=!0,f(n.post("MVC/api/localization/getlocalization/"+t),function(n){n.Items?r.setLanguageTexts(t,n.Items):console.log("Get localization failed! Error: "+n);r.loadingTranslations=!1},null,"Get localization failed!")},setLanguageTexts:function(n,t){r.texts=t;r.cacheLanguageTexts(n,t)},cacheLanguageTexts:function(n,t){if(sessionStorage){var i=r.createSessionStorageKey(n);sessionStorage.setItem(i,JSON.stringify(t))}},getCachedLanguageTexts:function(n){if(sessionStorage){var t=r.createSessionStorageKey(n),i=sessionStorage.getItem(t);if(i)return JSON.parse(sessionStorage.getItem(t))}return null},createSessionStorageKey:function(n){return"languageData_"+n},isEmptyText:function(n,t){if(n==null||angular.isUndefined(n)||typeof n!="object"||!n.length)return!0;t||(t="Name");for(var i=0;i<n.length;i++)if(n[i]!=null&&!angular.isUndefined(n[i])&&typeof n[i]=="object"&&n[i][t]&&typeof n[i][t]=="string")return!1;return!0},resolveText:function(n){var i,t;if(typeof n=="object")if(Object.prototype.toString.call(n)==="[object Array]"&&n.length>1)for(i=n,n=[],t=0;t<i.length;t++)n.push(r.resolveText(i[t]));else n=r.getText(n.pageID+"."+n.textID,n.data);else typeof n=="string"&&n==n.toUpperCase()&&n.indexOf(".")!=-1&&(n=r.getText(n));return n},renderText:function(n,i,u){var f={},h=r.parseText(n,i),e,o,s;return _.forEach(h,function(n){f[n.name]=n.value}),e=function(n){return n},o=t.Mustache.escape,u&&(t.Mustache.escape=e),s=t.Mustache.render(n,f).trim(),t.Mustache.escape=o,s},parseText:function(n,t){for(var s=/\{\{(.*?)\}\}/g,f=[],e=null,u,i,o;e=s.exec(n);)u=null,i=e[1],i.indexOf("localized:")==0?(o=i.split(":"),u=r.getCurrentLanguageText(t,o[1])):u=t[i],f.push({name:i,value:u});return f},getCurrentLanguageText:function(n,t,i){var o=r.getCurrentLanguageIdC(),e=null,u,f;if(n&&(u=n,u.length||(u=n.Texts),u&&u.length))for(f=0;f<u.length;f++)if(u[f].LanguageIdC==o){if(t&&(!i||u[f][t]))return u[f][t];if(!t&&(!i||u[f]))return u[f]}else!e&&u[f][t]&&(e=u[f][t]);return e},getText:function(n,t,i){var u,f,e;if(r.texts){if(i&&n!=n.toUpperCase())return n;if(u=null,n&&n.indexOf("|")!=-1&&(u=n.split("|"),n=u[0],u=u.slice(1)),f=r.texts[n],!f)return o[n]||(console.log("Localization key '"+n+"' not found in texts!"),o[n]=!0),n;if(t&&(f=Mustache.render(f,t)),u)for(e=0;e<u.length;e++)f=f.replace("{"+e+"}",u[e]);return f}return null},getEmptyText:function(n){var t=null,i;if(n)for(t={},i=0;i<n.length;i++)t[n[i]]="";else t={Name:""};return[angular.extend({LanguageIdC:r.getCurrentLanguageIdC()},t)]}};return r}]);angular.module("TiimaApp").factory("menuService",["$http","$q","toolsService",menuService=function(n,t,i){return{getMenu:function(){var r=t.defer();return i.handleHttpPost(n.post("MVC/api/banner/getmenu"),function(n){r.resolve(n)},r),r.promise}}}]);angular.module("TiimaApp").factory("tiimaEnumsService",tiimaEnumsService=function(){var n={OperationReturnValue:{Warning:-1,Error:0,Success:1},PermissionLevel:{No:0,Read:2,Write:4,Remove:8,All:14,Yes:16,Any:511},LanguageCode:{FIN:"fi",SWE:"se",ENG:"en",NOR:"no",DAN:"dk",DEU:"de"},RestrictionControllerEventEnum:{PeriodsLoaded:"PERIODSLOADED",RestrictionChange:"RESTRICTIONCHANGE",DateFilterChange:"DATEFILTERCHANGE",PeriodChange:"PERIODCHANGE",RestrictionAdd:"RESTRICTIONADD",RestrictionRemove:"RESTRICTIONREMOVE",RestrictionUpdate:"RESTRICTIONUPDATE"},PeriodTypeEnum:{OrganisationPeriods:1,PaymentGroupPeriods:2,MonthPeriods:3,WeekPeriods:4},PeriodSelectionTypeEnum:{Both:0,PeriodOnly:1,DayOnly:2},AbsenceQueryParameterTypeEnum:{Organisation:1,EmployeeGroup:2,PaymentGroup:3,Acceptor:4,LastName:5,InformativeData:8,Employee:9,GroupItem:10,ResourceDimensionItem:13,WorkPlan:14,SkippedEmployee:15,NoShifts:16,Shift:1
17,DimensionItem:18},AbsenceQueryParameterValueType:{ID:1,Enum:2,String:3},GeneralQueryParameterType:{Organisation:1,EmployeeGroup:2,PaymentGroup:3,Acceptor:4,LastName:5,ReasonCode:6,Status:7,InformativeData:8,Employee:9,GroupItem:10,WorkTimeBalance:11,Balance:12,Shift:13},EmployeeControllerEventEnum:{Refresh:"REFRESH",EmployeeSelect:"EMPLOYEESELECT",EmployeeSelected:"EMPLOYEESELECTED",EmployeesUpdated:"EMPLOYEESUPDATED"},TransactionRecordingControllerEventEnum:{DateFilterBroadcast:"DATEFILTERBROADCAST",PeriodChangeBroadcast:"PERIODCHANGEBROADCAST",EmployeeSelectedBroadcast:"EMPLOYEESELECTEDBROADCAST"},WorkhoursControllerEventEnum:{ViewTypeChanging:"VIEWTYPECHANGING",ViewTypeChanged:"VIEWTYPECHANGED",ViewTypeInit:"VIEWTYPEINIT"},TransactionStatusEnum:{None:0,Accepted:1,NotAccepted:2,Transferred:3,Locked:4,Rejected:5,Deleted:6,Sent:7,Generated:8},ReasonCodeDataTypeEnum:{None:0,Hours:1,Days:2,Units:3,Euros:4,StartAndEndTime:5},ReasonCodeType:{AddHours:1,NoEffect:2,SubtractHours:3},ResourceDimensionItemRoleDemandType:{Organisation:1,Knowhow:2,GroupItem:3},ResourcingSettingProperty:{UseShiftPlanning:1,EnableAnonymousEmployees:2,ActualHoursOnlyFromReasonCodesUsedInResourcing:4,ShowResourcingPercentage:8},ShiftPlanningPeriodType:{None:0,OrganisationPeriods:1,PaymentGroupPeriods:2,MonthPeriods:3,WeekPeriods:4},WorkHoursType:{None:0,Stamps:1,Hours:2},WorkhourSettingProperty:{ShowStamps:1,ShowWeekDay:4,ShowWeekNumber:8,UseDayLocking:16,ObligatoryDescription:32,HoursInHHMMFormat:64,ShowStandBys:128,AddDefaultDimensionItemsToNewRow:256,ShowHourSum:512,ShowOvertimeOrders:1024,OwnSubordinatesOff:2048,DefaultPeriodPerPaymentGroup:4096},ApprovingHoursSettingProperty:{showPlannedHours:1,showRealizedHours:2,showStampHours:4,showWorkHours:8,showUnits:16,showEuros:32,showPlannedRealizedDiff:64,showPlannedStampsDiff:128,showPlannedWorkHoursDiff:256,showStampsWorkHoursDiff:8192,showTransactions:67108864,approveStamps:512,approveWorkHours:1024,approveRealizedHours:2048,approveTransactions:134217728,ownSubordinatesOff:4096,showWeekDay:16384,showUserGroup:32768,showEmployeeGroups:65536,showGroupings:131072,showAcceptor:262144,showPaymentGroup:524288,showPersonnelGroup:1048576,showFlextimeData:2097152,showWorktimeData:4194304,showPercentage1:8388608,showPreviousPeriod:16777216,showReasonCodeToolTip:33554432,approveUntilPreviousDay:268435456},ApprovingHoursLimitHourLimitType:{MinMax:1,DayMax:2,StampMinMax:3},ApprovingHoursLimitTargetGroup:{General:0,PaymentGroup:1,GroupItem:2},OnEmitListEventType:{ItemSelected:1},ApprovingHoursNotificationLevel:{none:0,info:1,warning:2,error:3},WorkhourViewType:{DaysVertical:1,WeekEditor:2},ReasoncodeProperty:{None:0,HourRecording:1,StampRecording:2,StarttimeCompensation:4,UserStarttime:8,EndtimeCompensation:16,UserEndtime:32,RealizedHours:64,CompensationRecording:128,AbsenceRecording:256,SystemUse:512,AutogenerateHours:1024,OutOfWorkplace:2048,UnitRecording:4096,UseDimensionId2:8192,AutogenerateLunch:16384,CloseStampAtDefaultEndTime:32768,CloseStampAtDefaultWorkTime:65536,BypassFlextime:131072,AghUseDefaultDimensionItems:262144,AghUseMainDimensionItems:524288,AbsenceStartAndEndDate:1048576,Processing:2097152,NoExport:4194304,AbsenceTime:8388608,OtherWorkTime:16777216,SingleTransactionDenied:33554432,PartTimeDeduction:67108864,GenerateHoursAnyDay:134217728,GenerateHoursWorkDays:268435456,StampOverlappingAllowed:536870912},ReasoncodeProperty2:{None:0,OvertimeOrder:1,EmergencyWork:2,Standby:4,Strength:8,StampNormal:16,StampOvertime:32,AutoAcceptExportHoursNoDim:64,AutoAcceptExportHoursWithDim:128,AutoAcceptExportHoursAlways:256,EmptyDay:512,AbsenceExport:1024,GenerateOnlyAbsenceStamps:2048,SplitStampAtFlextimeStartTime:4096,SplitStampAtDefaultStartTime:8192,SplitStampAtFlextimeEndTime:16384,SplitStampAtDefaultEndTime:32768,SplitStampAtDefaultWorkTime:65536,AllowShiftAbsenceOverlapping:131072,GenerateEmptyDaysWithEndStampReasoncode:262144,AbsenceExport2:524288,AbsenceSummaryView:1048576,NameOnAbsenceSummaryView:2097152,ColorOnAbsenceSummaryView:4194304,WorkHourRecording:8388608,ShowUnitPrice:16777216,MobileStampRecording:33554432,NoAbsenceImportIfNoBalanceDefined:67108864,NoAbsenceImportIfNotSufficientBalance:134217728,ImportAbsenceToBalanceLimit:268435456,GenerateForHolidays:536870912,SplitStampAtFlexMaxTime:1073741824}
1,ReasoncodeProperty3:{None:0,UsedInSavingTravelInfo:1,DescriptionRequiredInAbsences:2,UsedInTransactionRecording:4,GenerateHoursOnlyWorkDays:8,ExtraSaturdayAfterFriday:16,GenerateHoursWorkDaysFromWorkPlanning:32,EmptyDayGenerationNoLunch:64,EmptyDayGenerationSubtractLunchFromStart:128,EmptyDayGenerationSubtractLunchFromEnd:256,ShowSaturdaysOnActualWorkTimeReport:512,UseCheckBox:1024,DoNotSelectSaturday:2048,AllowAnnualVacationOverlapping:4096,MobileUse:8192,UsedInTimeTerminalLunch:16384,AbsenceCertificateRequired:32768,ShowUnitPriceInTransactionRecording:65536},ResourcingSettingDefaultReasonCode:{None:0,DefaultReasonCode:1,Custom:2},ResourcingPlanningUnit:{Hour:1,Day:2},QueueStatus:{None:-1,Scheduled:0,Waiting:1,Running:2,Completed:3,Error:4,Cancelled:5,Expired:6},InfoType:{None:0,Warning:1,Error:2,ProcessingError:3,Check:4},DimensionItemDisplayType:{Both:0,Code:1,Name:2},ReasonCodeLimitType:{None:0,PlannedHours:1,SubsequentDays:2,InformativeData:4,Pieces:8},ShiftViewType:{None:0,CodeOnly:1,CodeAndTimes:2},WorkingDayStatus:{None:0,Locked:1,PeriodLocked:2,Accepted:3,Processed:4,ProcessingCorrected:5,ProcessingApproved:6,ProcessingExported:7},EmployeeProcessingPeriodStatus:{Open:0,Locked:1,Accepted:2,Processed:3},ProcessingLocks:{ProcessingStarted:1,ProcessingAccepted:2,ProcessingExported:4,Processing2Started:8,Processing2Accepted:16,Processing2Exported:32,ProcessingCorrected:64,Processing2Corrected:128},WorkingHourStampType:{Modified:0,Raw:1,Overtime:2,Compensation:3,EmergencyWork:4,RawStampPair:5,RawFromModified:6,Barcode:7,Transaction:8},TravelType:{None:0,Domestic:1,Foreign:2,Kilometre:3},SalaryEventSumType:{Quantity:1,Duration:0},StampSource:{None:0,User:1,System:2,Import:3,Mobile_iPhone:4,Mobile_Android:5,Mobile_WP:6,Mobile_Unknown:7,Generated:8,TimeTerminal:9},AllowanceType:{None:0,DomesticWholeDailyAllowance:1,DomesticPartialDailyAllowance:2,ForeignWholeDailyAllowance:3,SleepingAllowance:4,MealAllowance:5,KilometreAllowance:6,TaxableKilometreAllowance:29,AdditionalPassenger:100,HeavyLoad:101,LocalTravel:999},TravelClaimSettingProperty:{ShowEmployeeID2:1,ShowEmployeeOrganisation:2,ShowDimensions:4}
1,BulletinTemplateType:{ApprovableHours:1,ApprovableAbsences:2,OvertimeLimit:3,UnrecordedWorkTimeAcceptor:4,ExceededWorkTimeBalance:5,UnlockedHours:6,UnrecordedStamps:7,UnrecordedHours:8,TotalWorkTimeTrackingAcceptor:9,TotalWorkTimeTrackingEmployee:10,FlexBalanceLimitAcceptor:11,FlexBalanceLimitEmployee:12},WorksiteAnnouncementStatus:{InProgress:0,CompletedWithErrors:1,CompletedOk:2,Rejected:3},WorksiteAnnouncementType:{Basic:0,Repair:1}},t={getValue:function(t,i){var u,r;return t&&i&&(u=n[t],u&&(r=u[i],r||r===0))?r:null},getEnum:function(t){return t?n[t]:null},getKey:function(n,i){var r=t.getEnum(n),u;if(r)for(u in r)if(r[u]==i)return u;return null}};return t});angular.module("TiimaApp").factory("validationService",["$timeout",validationService=function(n){var f=function(n){return{baseElement:n,validationErrorHolders:{},pageValidationCallback:null,elements:{},groups:{},elementsInGroup:{},groupFilters:{},allErrors:{}}},t=null,e=$("body"),o=1,i=[t=f(e)],r=function(n){if(t!=null){var i=t.groups[n];return i||(t.groups[n]=i={notificationCallback:null,elements:[],errorCollections:{}}),i}return null},h=function(){return Math.random().toString(36).substring(2,10)},u={initPage:function(){i=[t=f(e)]},initModal:function(n){i.push(t=f(n))},closeModal:function(){u.isInModal()&&i.pop();t=i[i.length-1]},isInModal:function(){return i.length>1},registerValidationErrorHolder:function(n,i,r,u){t.validationErrorHolders[(u?"g-":"")+n]={errorCallback:typeof i=="function"?i:null,okCallback:typeof r=="function"?r:null,errors:{}}},unRegisterValidationErrorHolder:function(n,i){delete t.validationErrorHolders[(i?"g-":"")+n]},registerPageValidationCallback:function(n){typeof n=="function"&&(t.pageValidationCallback=n)},setValidationError:function(i,r,u){var h=t.groupFilters[i+"|"+r],c=t.elementsInGroup[i],l=i+"|"+r,f,e,s;return(t.allErrors[l]={error:u,ID:o++},f=t.validationErrorHolders[h?"g-"+c:i],f)?(f.errors[r]||(f.errors[r]=u.message,f.errorCallback&&f.errorCallback(r,u.message,u.priority),e=t.groups[c],e&&e.notificationCallback&&(h?e.notificationCallback("group",!0):e.notificationCallback("field",!0)),s=t.elements[i],s&&s.updateErrorDisplayCallback&&n(function(){s.updateErrorDisplayCallback()})),!0):!1},removeValidationError:function(i,r,f){var c=t.groupFilters[i+"|"+r],s=t.elementsInGroup[i],l=i+"|"+r,e,o,h;return delete t.allErrors[l],e=t.validationErrorHolders[c?"g-"+s:i],e?(delete e.errors[r],e.okCallback&&e.okCallback(r),o=t.groups[s],o&&o.notificationCallback&&!f&&(c?o.notificationCallback("group",u.hasGroupErrors(s,!0),r):o.notificationCallback("field",u.hasGroupErrors(s))),h=t.elements[i],h&&h.updateErrorDisplayCallback&&n(function(){h.updateErrorDisplayCallback()}),!0):!1},getGroupScope:function(n,i){var f=t.elementsInGroup[n],u=r(f);return u?u.groupModelCollectorCallback?u.groupModelCollectorCallback(i):null:null},getGroupErrors:function(n,i){var f=t.elementsInGroup[n],u=r(f);return u?(u.errorCollections[i]||(u.errorCollections[i]={}),u.errorCollections[i]):null},setGroupErrors:function(n,i,u){var e=t.elementsInGroup[n],f=r(e);f&&(f.errorCollections[i]=u)},notifyGroupError:function(n){var i=t.groups[n];i&&i.errorFlagUpdateNotification&&i.errorFlagUpdateNotification()},clearAllErrors:function(){t!=null&&(_.forOwn(t.validationErrorHolders,function(n){n.errors={};n.okCallback()}),_.forOwn(t.groups,function(n){n.notificationCallback&&(n.notificationCallback("field",!1),n.notificationCallback("group",!1))}))},removeElement:function(n){var r=t.elementsInGroup[n],i;console.log("-removing element "+n);i=[];_.forOwn(t.allErrors,function(t,r){r.split("|"[0])===n&&i.push(r)});_.forEach(i,function(n){delete t.allErrors[n]});r&&(delete t.validationErrorHolders["g-"+r],delete t.elementsInGroup[n]);delete t.validationErrorHolders[n];delete t.elements[n]},addElementToGroup:function(n,i){if(t!=null){var u=r(i);u&&(t.elementsInGroup[n]=i,u.elements.push(n))}},addGroupFilter:function(n,i){if(t!=null){var r=t.elementsInGroup[n],u=t.groups[r];u&&(t.groupFilters[n+"|"+i]=!0)}},hasElementErrors:function(n){var i,r;return t!=null&&(i=t.validationErrorHolders[n],i)?(r=0,_.forOwn(i.errors,function(){r++}),r>0):!1}
1,hasGroupErrors:function(n,i){if(t!=null){var r=!1,f=t.groups[n];return f&&(i?_.forOwn(f.errors,function(){return r=!0,!1}):_.forEach(f.elements,function(n){if(u.hasElementErrors(n))return r=!0,!1})),r}return!1},validatePage:function(){t.pageValidationCallback&&t.pageValidationCallback()},getElementID:function(){var n=h();return t.elements[n]={validationHelpers:{},updateErrorDisplayCallback:null},console.log("-registering element "+n),n},registerValidationHelperFunction:function(n,i,r){var u=t.elements[n];u&&typeof r=="function"&&(u.validationHelpers[i]=r)},callValidationHelper:function(n,i,r,u){var e=null,o=t.elements[n],f;return o!=null&&(f=o.validationHelpers[i],f&&(e=f(r,u))),e},registerGroupNotification:function(n,t,i){var u=r(n);u&&(u.notificationCallback=t,u.errorFlagUpdateNotification=i)},registerModelScopeCollector:function(n,t){var i=r(n);i&&(i.groupModelCollectorCallback=t)},registerElementUpdateErrorDisplayCallback:function(n,i){var r=t.elements[n];r&&(r.updateErrorDisplayCallback=i)},isPageDirty:function(){var i=$("form",t.baseElement),n=!1;return _.forEach(i,function(t){if($(t).hasClass("not-dirty"))return!0;var i=angular.element(t).inheritedData("$formController");if(i&&i.$dirty&&!i.$pristine)return n=!0,!1}),n},isValid:function(){var i=$("form",t.baseElement),n=!0;return _.forEach(i,function(t){$(t).hasClass("ng-invalid")&&(n=!1)}),n},getFirstError:function(){if(t&&t.allErrors){var i=o,n=null;if(_.forOwn(t.allErrors,function(t){t.ID<i&&(i=t.ID,n=t.error)}),n)return n.message}return null}},s=e.scope();return s&&s.$on("pageInit",function(){u.initPage()}),u}]),function(){var n=function(n){var t={backdrop:!0,keyboard:!0,modalFade:!0,templateUrl:"ScriptsApp/services/modals/modalConfirmDialog.html"},i={closeButtonText:"Close",actionButtonText:"OK",headerText:"Proceed?",bodyText:"Perform this action?"};this.showModal=function(n,t){return n||(n={}),n.backdrop="static",this.show(n,t)};this.show=function(r,u){var f={},e={};return angular.extend(f,t,r),angular.extend(e,i,u),f.controller||(f.controller=function(n,t){n.modalOptions=e;n.modalOptions.ok=function(){t.close("ok")};n.modalOptions.close=function(){t.close("cancel")}},f.controller.$inject=["$scope","$modalInstance"]),n.open(f).result}};n.$inject=["$modal"];angular.module("TiimaApp").service("modalService",n)}();angular.module("TiimaApp").factory("logoutService",["$http","$q",logoutService=function(n,t){return{logOut:function(){var n=t.defer();return window.location.href="Login/IndexLogOut",n.resolve(null),n.promise}}}]);angular.module("TiimaApp").factory("initPageService",["$http","$q","$rootScope","$timeout","localizationService",initPageService=function(n,t,i,r,u){var e=null,f=null,h=function(n){var t=n.defer();return u.getActiveLanguages().then(function(n){if(i.languages=n.languages,i.language=n.defaultLanguage,$.datepicker.setDefaults(_.extend($.datepicker.regional[i.language],{$dateDefaultsInitialized:!0})),i.language){var r=_.find(i.languages,{code:i.language});r&&(i.languageId=r.IdC)}u.getLocalization(i.language).then(function(n){t.resolve(n);i.$broadcast("changeLanguage")})},function(){console.log("appController.getActiveLanguages() failed")}),t.promise}(t),o=function(){i.pageResolved&&r(function(){i.pageLoading=!1})},s=function(r,u,s){var h=t.defer();return e=null,f=t.defer(),i.$broadcast("pageInit",r),i.pageHeading=u||"GLOBAL.APPLICATION_TIIMA",i.settingFunction=s||null,n.post(r).then(function(n){o();h.resolve(n?n.data:null)},function(n){console.log("InitPage.init failed. "+n);o();h.reject()}),h.promise},c=function(n){i.settingFunction=n||null},l=function(){var i=t.defer();return n.post("MVC/StartApp/Default/InitPage").then(function(n){var t=[];n.data&&n.data.Status!==0?(_.forEach(n.data.Messages,function(n){t.push(new Message(n))}),n.data.Data.Messages=t,i.resolve(n.data.Data)):(console.log("InitPage.initMainPage failed."),i.reject())},function(n){console.log("InitPage.initMainPage failed. "+n.status);i.reject()}),i.promise},a=function(n){e=n;f&&f.resolve(n)},v=function(){if(f)return f.promise;var n=t.defer();return n.resolve(null),n.promise},y=_.memoize(s);return{promise:h,init:s,cachedInit:y,initMainPage:l,setSettingFunction:c,setFormController:a,getFormController:v}}]);angular.module("TiimaApp").factory("flashService",["$rootScope",function(n){var i=[],r=[],u=[],s=[],f=[],e=[],o=[],h=[],k;n.flashContent={flashInfoMessage:null,flashSuccessMessages:i,flashWarningMessages:r,flashErrorMessages:u,flashInfoMessages:s,modalSuccessMessages:f,modalWarningMessages:e,modalErrorMessages:o,modalInfoMessages:h};var t=function(n,t){_.includes(n,t)||n.push(t)}
1,c=function(n,i){if(n instanceof Array)for(var r=0;r<n.length;r++)i?t(o,n[r]):t(u,n[r]);else i?t(o,n):t(u,n)},l=function(n,i){if(n instanceof Array)for(var u=0;u<n.length;u++)i?t(e,n[u]):t(r,n[u]);else i?t(e,n):t(r,n)},a=function(n,i){if(n instanceof Array)for(var r=0;r<n.length;r++)i?t(h,n[r]):t(s,n[r]);else i?t(h,n):t(s,n)},v=function(n,r){if(n instanceof Array)for(var u=0;u<n.length;u++)r?t(f,n[u]):t(i,n[u]);else r?t(f,n):t(i,n)},y=function(){u&&u.splice(0,u.length);o&&o.splice(0,o.length)},p=function(){r&&r.splice(0,r.length);e&&e.splice(0,e.length)},w=function(){i&&i.splice(0,i.length);f&&f.splice(0,f.length)},d=function(){s&&s.splice(0,s.length);h&&h.splice(0,h.length)},g=function(t){u&&(u=_.reject(u,function(n){return n.indexOf(t)>=0}),n.flashContent.flashErrorMessages=u);o&&(o=_.reject(o,function(n){return n.indexOf(t)>=0}),n.flashContent.modalErrorMessages=o)},nt=function(t){r&&(r=_.reject(r,function(n){return n.indexOf(t)>=0}),n.flashContent.flashWarningMessages=r);e&&(e=_.reject(e,function(n){return n.indexOf(t)>=0}),n.flashContent.modalWarningMessages=e)},tt=function(t){i&&(i=_.reject(i,function(n){return n.indexOf(t)>=0}),n.flashContent.flashSuccessMessages=i);f&&(f=_.reject(f,function(n){return n.indexOf(t)>=0}),n.flashContent.modalSuccessMessages=f)},b=47,it=function(){var i=document.documentElement.scrollTop||document.body.scrollTop,t=document.getElementsByClassName("messages-outer-container"),n;t&&t.length&&(n=t[0],i>b&&!n.classList.contains("fixed-message-container")?n.classList.add("fixed-message-container"):i<b&&n.classList.contains("fixed-message-container")&&n.classList.remove("fixed-message-container"))};return setTimeout(function(){window.addEventListener("scroll",it,!1)},1e3),k={showInfoMessage:function(t){n.flashContent.flashInfoMessage=t.replace(/<br\s*[\/]?>/gi,"\n")},showMessage:v,showWarning:l,showError:c,showInfo:a,closeInfoMessage:function(){n.flashContent.flashInfoMessage=null},closeInfo:function(n,t){n>=0?t?h.splice(n,1):s.splice(n,1):t?h.length=0:s.length=0},closeMessage:function(n,t){n>=0?t?f.splice(n,1):i.splice(n,1):t?f.length=0:i.length=0},closeWarning:function(n,t){n>=0?t?e.splice(n,1):r.splice(n,1):t?e.length=0:r.length=0},closeError:function(n,t){n>=0?t?o.splice(n,1):u.splice(n,1):t?o.length=0:u.length=0},clearSuccessMessages:w,clearWarningMessages:p,clearErrorMessages:y,clearErrorMessagesWithTag:g,clearWarningMessagesWithTag:nt,clearSuccessMessagesWithTag:tt,disableClear:!1,clearAll:function(){k.disableClear||(w(),p(),y(),d())},showMessages:function(n){n&&n.Status===0?n.ErrorMessages&&c(n.ErrorMessages):n&&(n.Status===-1||n.Status===1)&&(n.SuccessMessages&&v(n.SuccessMessages),n.WarningMessages&&l(n.WarningMessages),n.InfoMessages&&a(n.InfoMessages))}}}]);angular.module("TiimaApp").factory("closePopupService",["$timeout",closePopupService=function(){var t=null,n=[],i=[],e=angular.noop,r=angular.noop,f=function(i){for(var r=0;r<n.length;r++)n[r](i||t)},o=function(n){$(n.target).data("toggle")==="popover"||$(n.target).parents(".popover.in").length!==0||n.target.classList.contains("clickable-disabled-button-container")||$(".clickable-disabled-button-container .popover").popover("hide")},u=function(n){t=null;f(n)};$(document).on("keyup",function(n){n.which===27&&(u("scopeApply"),r())});return $(function(){$(document).click(function(n){$(n.target).closest(".popup-object").length||$(n.target).closest(".popup-object-container").length||u("scopeApply");o(n);_.forEach(i,function(t){t(n)})})}),{addCallback:function(t){typeof t=="function"&&n.push(t)},removeCallback:function(t){typeof t=="function"&&_.remove(n,function(n){return t===n})},addListenerCallback:function(n){typeof n=="function"&&i.push(n)},removeListenerCallback:function(n){typeof n=="function"&&_.remove(i,function(t){return n===t})},addModalTrigger:function(n){typeof n=="function"&&(r=n)},removeModalTrigger:function(){r=angular.noop},closeAll:u,popupOpened:function(n){t=n;f()},resetPopup:function(){e=angular.noop}}}]);angular.module("TiimaApp").filter("datasource",["datasourceService","datasourceObjectType","$q","$injector",function(n,t){return function(i){return n.createDatasource({type:t[i]})}}]).constant("datasourceObjectType",{DimensionItem:0,Organisation:1,ReasonCode:2}).factory("datasourceService",["$q","$rootScope","localizationService",datasourceService=function(n){return{createDatasource:function(n){return n?!n.type&&!n.method?null:{type:n.type,method:n.method?n.method:null}:null},getData:function(t,i){var r=n.defer(),e,f,u;return t?(e=t.type,u=null,e?(f=$injector.get(e+"Model"),f?(u=null,u=t.method?f[t.method]:f.getData):(console.log("datasourceService: undefined datasource model detected"),r.reject("model undefined"))):u=t.method,u?u(i).then(function(n){r.resolve(n)}):(console.log("datasourceService: undefined datasource method detected"),r.reject("datasource method undefined"))):(console.log("datasourceService: undefined datasource detected"),r.reject("datasource undefined")),n.when(r,function(n){t&&t.dataLoaded&&t.dataLoaded(n)}),r.promise}}}]);angular.module("TiimaApp").factory("employeeService",[function(){var n={organisation:null,filterDateRange:{start:null,end:null},searchFilter:"",restrictionsDisabled:!1,extraArguments:{},selectEmployeeCallback:null,parameterTypeConversion:[0,1,9,2,10,13,3],setOrganisation:function(t){n.organisation=t},getOrganisation:function(){return n.organisation},setFilterDate:function(t,i){i||(i=new Date(t.getTime()));n.filterDateRange={start:t,end:i}},setSearchFilter:function(t){n.searchFilter=t},getSearchFilter:function(){return n.searchFilter?n.searchFilter:null},getFilterDate:function(){return n.filterDateRange.start},getFilterDateRange:function(){return n.filterDateRange},setExtraArguments:function(t){n.extraArguments=t},getExtraArguments:function(){return n.extraArguments?n.extraArguments:{}},disableRestrictions:function(){n.restrictionsDisabled=!0},isRestrictionsDisabled:function(){return n.restrictionsDisabled},setSelectEmployeeCallback:function(t){n.selectEmployeeCallback=t},selectEmployee:function(t){n.selectEmployeeCallback&&n.selectEmployeeCallback(t)},convertRestrictionParameterType:function(t){return(isNaN(+t)||!isFinite(t))&&(t=Number(t)),n.parameterTypeConversion.length>t&&t>0?n.parameterTypeConversion[t]:0}};return n}]);angular.module("TiimaApp").factory("restrictionService",["$q","$rootScope","toolsService",restrictionService=function(n,t,i){var r={restrictions:[],showPeriods:!1,dataSource:null,parameterTypeConversion:[0,1,9,2,10,13,3],callbacks:{},registerCallback:function(n){if(typeof n=="function"){var t=""+i.getNewID();return r.callbacks[t]=n,t}},removeCallback:function(n){delete r.callbacks[n]},notifyChange:function(n){_.forOwn(r.callbacks,function(t){t(n)})},setDataSource:function(n){r.dataSource=n},loadData:function(t){var i=n.defer();return r.dataSource?r.dataSource(t).then(function(n){i.resolve(n)}):i.resolve(null),i.promise}
1,convertRestrictionParameterType:function(n){return(isNaN(+n)||!isFinite(n))&&(n=Number(n)),r.parameterTypeConversion.length>n&&n>0?r.parameterTypeConversion[n]:0},setPeriodVisibility:function(n){r.showPeriods=n},getPeriodVisibility:function(){return r.showPeriods},addRestriction:function(n){var t=r.findRestriction(n);return t==-1?(r.restrictions.push(n),!0):!1},updateRestriction:function(n){var t=r.findRestriction(n);return t>-1?(r.restrictions[t]=n,!0):!1},removeRestriction:function(n){var t=r.findRestriction(n);return t>-1?(r.restrictions.splice(t,1),!0):!1},getRestrictions:function(){return r.restrictions},findRestriction:function(n){var t,i;if(r.restrictions&&r.restrictions.length)for(t=0;t<r.restrictions.length;t++)if(i=r.restrictions[t],i.RestrictionType==n.RestrictionType&&i.IdC==n.IdC)return t;return-1}};return t.$on("pageInit",function(){r.restrictions=[];r.showPeriods=!1;r.dataSource=null}),r}]);angular.module("TiimaApp").factory("transactionRecordingService",["$http","$rootScope","$q","employeeService","formatService","localizationService","Organisation","Period","ReasonCode","Dimension","Transaction",transactionRecordingService=function(n,t,i){var r={initDeferred:i.defer(),totalCount:0,pageSize:10,pageIndex:0,employees:[],options:{},reasonCodeCache:null,getOptionsSetDeferred:function(){return r.initDeferred.promise},setOptions:function(n){r.options=n;r.initDeferred.resolve()},getOption:function(n){return r.options[n]}};return r}]);angular.module("TiimaApp").factory("workhoursService",["$http","$rootScope","$q","$timeout","$uibModal","employeeService","workhourSettingsService","formatService","localizationService","tiimaEnumsService","toolsService","Queue","Organisation","Period","ReasonCode","Dimension","Workhour","DimensionItem","WorkPlanData",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k){var d={initDeferred:i.defer(),totalCount:0,pageSize:10,pageIndex:0,employees:[],periods:[],dimensions:[],organisation:[],organisationsByIdC:{},dimensionItemsByIdC:{},dimensionsByIdC:{},fullDimensionsByIdC:{},reasonCodes:[],reasonCodesByIdC:{},columnReasonCodes:[],otherReasonCodes:[],defaultReasonCode:null,settings:{},oldSettings:{},employeePipeline:{},loadCache:null,workhoursCache:null,temporaryDataCache:null,statusColors:{Locked:"yellow",Accepted:"green",Processed:"red"},dimensionColumnWidth:1,dimensionCellWidthStep:50,dimensionCellWidth:100,hourCellWidth:100,hourCheckboxCellWidth:120,timeRangeCellWidth:100,extraReasonCodeCellWidth:125,unitPriceWidth:50,descriptionCellWidth:125,cellWidthExtra:0,checkEmployeeLock:!1,checkPersonnelGroupReasonCode:!1,options:{},permissions:{},selectedEmployee:null,selectedPeriod:null,removedRows:null,clearChecks:!1,settingsReady:!1,controllerReady:!1,controllerName:null,preparePeriodCallbacks:{first:null,queue:[]},preparePeriodDataCallback:null,prepareInputDataCallback:null,prepareOutputDataCallback:null,prepareEmployeeDataSetCallback:null,setPristineCallback:null,setChangedCallback:null,getPristineCallback:null,getChangedCallback:null,updateScrollerWidthCallback:null,validateCallback:null,validateRowCallback:null,validateCellCallback:null,copySelectedRowsCallback:null,copySelectedDaysCallback:null,copyPreviousPeriodCallback:null,findCheckedRowsCallback:null,checkRowsCallback:null,removeSelectedRowsCallback:null,removeSelectedDaysCallback:null,refreshDataCallback:null,getPreviousPeriodDataCallback:null,resetEmployeeDataCallback:null,resetSalaryEventDataCallback:null,updateLoadSpinnerCallback:null,registerPreparePeriodListener:function(n){d.registerListener(n,d.preparePeriodCallbacks)},unRegisterPreparePeriodListener:function(n){d.unRegisterListener(n,d.preparePeriodCallbacks)},setSetPristineCallback:function(n){d.setPristineCallback=n},setSetChangedCallback:function(n){d.setChangedCallback=n},setGetPristineCallback:function(n){d.getPristineCallback=n},setGetChangedCallback:function(n){d.getChangedCallback=n},setUpdateScrollerWidthCallback:function(n){d.updateScrollerWidthCallback=n},setPreparePeriodDataCallback:function(n){d.preparePeriodDataCallback=n},setPrepareEmployeeDataSetCallback:function(n){d.prepareEmployeeDataSetCallback=n},setPrepareInputDataCallback:function(n){d.prepareInputDataCallback=n},setPrepareOutputDataCallback:function(n){d.prepareOutputDataCallback=n},setRefreshDataCallback:function(n){d.refreshDataCallback=n},setGetPreviousPeriodDataCallback:function(n){d.getPreviousPeriodDataCallback=n},setResetEmployeeDataCallback:function(n){d.resetEmployeeDataCallback=n},setResetSalaryEventDataCallback:function(n){d.resetSalaryEventDataCallback=n},setUpdateLoadSpinnerCallback:function(n){d.updateLoadSpinnerCallback=n},setValidateCallback:function(n){d.validateCallback=n},setValidateRowCallback:function(n){d.validateRowCallback=n},setValidateCellCallback:function(n){d.validateCellCallback=n},setCopySelectedRowsCallback:function(n){d.copySelectedRowsCallback=n},setCopySelectedDaysCallback:function(n){d.copySelectedDaysCallback=n},setCopyPreviousPeriodCallback:function(n){d.copyPreviousPeriodCallback=n},setFindCheckedRowsCallback:function(n){d.findCheckedRowsCallback=n},setCheckRowsCallback:function(n){d.checkRowsCallback=n},setRemoveSelectedRowsCallback:function(n){d.removeSelectedRowsCallback=n},setRemoveSelectedDaysCallback:function(n){d.removeSelectedDaysCallback=n},setCheckEmployeeLock:function(n){d.checkEmployeeLock=n},getCheckEmployeeLock:function(){return d.checkEmployeeLock},setCheckPersonnelGroupReasonCode:function(n){d.checkPersonnelGroupReasonCode=n},getCheckPersonnelGroupReasonCode:function(){return d.checkPersonnelGroupReasonCode},setCacheData:function(n){var r,u,f,i,t,o,e,h;if(d.periods=n.Periods,d.dimensions=n.Dimensions,d.organisation=n.Organisation,d.employees=n.Employees,d.reasonCodes=n.ReasonCodes,d.reasonCodesByIdC={},d.columnReasonCodes=[],d.otherReasonCodes=[],d.reasonCodes&&d.reasonCodes.length)for(i=0;i<d.reasonCodes.length;i++)r=d.reasonCodes[i],r.ReasonCodeName=s.getCurrentLanguageText(r.Texts,"Name"),r=new y(r),r.UseAsColumn?d.columnReasonCodes.push(r):d.otherReasonCodes.push(r),d.reasonCodesByIdC[r.IdC]=r;if(d.organisationsByIdC={},d.organisation&&d.organisation.length)for(i=0;i<d.organisation.length;i++)u=d.organisation[i],d.organisationsByIdC[u.IdC]=u,u.ParentIdC&&(f=d.organisationsByIdC[u.ParentIdC],f&&(u.Parent=f,f.SubItems||(f.SubItems=[]),f.SubItems.push(u)));if(d.dimensionItemsByIdC={},d.dimensionsByIdC={},d.fullDimensionsByIdC={},d.dimensions&&d.dimensions.length)for(i=0;i<d.dimensions.length;i++)if(t=d.dimensions[i],d.fullDimensionsByIdC[t.IdC]=t,d.dimensionsByIdC[t.IdC]={IdC:t.IdC,Code:t.Code,Texts:angular.copy(t.Texts),AllowDimensionItemAdding:t.AllowDimensionItemAdding,ParentIdC:t.ParentIdC,Index:i},t.Items&&t.Items.length)for(o=0;o<t.Items.length;o++)e=t.Items[o],e.Texts&&(e.DimensionItemName=s.getCurrentLanguageText(e.Texts,"Name")),h=t.IdC+"#"+e.IdC,d.dimensionItemsByIdC[h]=e},setTemporaryDataCache:function(n){d.temporaryDataCache=n},getDataFromTemporaryCache:function(n){if(d.temporaryDataCache){var t=d.temporaryDataCache[n];return t?t:null}return null},setDimensionItems:function(n,t){var u;if(n&&n.length)for(u=0;
1u<n.length;u++){var i=angular.copy(n[u]),f=d.fullDimensionsByIdC[i.DimensionIdC],e=i.DimensionIdC+"#"+i.IdC,r=d.dimensionItemsByIdC[e];f&&!r?(f.Items||(f.Items=[]),f.Items.push(i),t&&(i.StartDate=i.EndDate=null),i.Texts&&(i.DimensionItemName=s.getCurrentLanguageText(i.Texts,"Name")),d.dimensionItemsByIdC[e]=i):r&&!t&&(r.StartDate!==i.StartDate&&(r.StartDate=i.StartDate),r.EndDate!==i.EndDate&&(r.EndDate=i.EndDate))}},clearSubDimensions:function(n,t){var i,r,u,f,e;(n,t)&&(i=d.getSubDimensions(t.DimensionIdC),r={},i&&_.forEach(i,function(n){r[n.IdC]=n.ParentIdC}),u=n.dimensions?n.dimensions:n.Dimensions,f=t.SelectedItem,u&&(e=null,_.forEach(u,function(n){var i=r[n.DimensionIdC];i&&(n.SelectedItem=null,n.Deleted=!0,n.$parentItemIdC=f&&t.DimensionIdC===i?f.IdC:null)})))},getSubDimensions:function(n){var u=[],r={},t,i;if(r[n]=!0,d.dimensions)for(t=0;t<d.dimensions.length;t++)i=d.dimensions[t],r[i.ParentIdC]&&(r[i.IdC]=!0,u.push(i));return u},collectDynamicDimensionItems:function(n){var r,u,f,e,o,t,h,i,c;if(n)for(r=0;r<n.length;r++)if(u=n[r],u.WorkHours)for(f=0;f<u.WorkHours.length;f++)if(e=u.WorkHours[f],e.DimensionItems)for(o=0;o<e.DimensionItems.length;o++)t=e.DimensionItems[o],h=t.DimensionIdC+"#"+t.DimensionItemIdC,t.DimensionItemIdC&&t.Source==3&&!d.dimensionItemsByIdC[h]&&(i=d.fullDimensionsByIdC[t.DimensionIdC],i&&(c={IdC:t.DimensionItemIdC,Code:t.Code,Texts:t.Texts,DimensionItemName:s.getCurrentLanguageText(t.Texts,"Name"),Source:3},i.Items||(i.Items=[]),i.Items.push(c),d.dimensionItemsByIdC[h]=c))},setDefaultReasonCode:function(n){d.defaultReasonCode=n},getDefaultReasonCode:function(){return d.defaultReasonCode},getDefaultReasonCodeIdC:function(){var n,t;if(d.defaultReasonCode){if(d.reasonCodes){for(n=0;n<d.reasonCodes.length;n++)if(t=d.reasonCodes[n],t.Code==d.defaultReasonCode)return t.IdC;return null}return null}return null},setStatusColors:function(n){d.statusColors=angular.extend(d.statusColors,n)},getStatusColors:function(){return d.statusColors},getWorkingDayStatus:function(n){var t=h.getValue("EmployeeProcessingPeriodStatus","Open");return n&&(n.ProcessingLocks!=0&&n.ProcessingLocks!=64?t=h.getValue("EmployeeProcessingPeriodStatus","Processed"):n.AcceptorLock?t=h.getValue("EmployeeProcessingPeriodStatus","Accepted"):n.EmployeeLock&&(t=h.getValue("EmployeeProcessingPeriodStatus","Locked"))),t},setupDefaultDimensionItemDependencies:function(n){var r=n&&n.Dimensions?n.Dimensions:null,s,h,f,t,e,o,u,i;if(r||(r=n&&n.dimensions?n.dimensions:null),r)for(s={},h=[],f=r.length-1;f>=0;f--){if(t=r[f],s[t.DimensionIdC]=t,e=[],t.SelectedItem&&t.SelectedItem.DimensionItemAutoGeneratingSettings)for(o=0;o<t.SelectedItem.DimensionItemAutoGeneratingSettings.length;o++)u=t.SelectedItem.DimensionItemAutoGeneratingSettings[o],i=s[u.GenerateDimensionIdC],i&&i.SelectedItem&&i.SelectedItem.IdC==(u.GenerateDimensionItemIdC?u.GenerateDimensionItemIdC:u.GenerateOrganisationdC)&&(e.push({DimensionIdC:i.DimensionIdC,DimensionItemIdC:i.SelectedItem.IdC}),i.Locked=i.DefaultDimensionItemLock);t.DefaultDependencies=e.length?e:null}},getRowDimensions:function(n){var t=n&&n.Dimensions?n.Dimensions:null;return t||(t=n&&n.dimensions?n.dimensions:null),t},getPlaceHoldersByDimension:function(n,t){var r=d.getRowDimensions(n),u,i;if(!r||!t)return null;for(u={},i=0;i<r.length;i++)u[r[i].DimensionIdC]=r[i];return u},clearDefaultDimensions:function(n,t,i){var u,f,r;if((i||(i=d.getPlaceHoldersByDimension(n,t),i))&&t.DefaultDependencies){for(u=0;u<t.DefaultDependencies.length;u++)f=t.DefaultDependencies[u],r=i[f.DimensionIdC],r&&r.SelectedItem&&r.SelectedItem.IdC==f.DimensionItemIdC&&(r.SelectedItem=null);delete t.DefaultDependencies}},handleDefaultDimensions:function(n,t){var r=d.getPlaceHoldersByDimension(n,t),u,f,i;r&&(t.SelectedItem&&typeof t.SelectedItem=="object"&&t.SelectedItem.DefaultDimensionItems||t.DefaultDependencies)&&
1(u=d.getRowDimensions(n),t.DefaultDependencies&&d.clearDefaultDimensions(n,t,r),f={},t.SelectedItem&&typeof t.SelectedItem=="object"&&t.SelectedItem.DefaultDimensionItems&&(i=[],_.forEach(t.SelectedItem.DefaultDimensionItems,function(n){var t=r[n.DimensionIdC];t&&!t.SelectedItem&&(t.SelectedItem={IdC:n.DefaultDimensionItemIdC?n.DefaultDimensionItemIdC:n.DefaultOrganisationIdC,DimensionIdC:n.DimensionIdC,Changed:!0,Deleted:!1,Code:n.Code,Texts:angular.copy(n.Texts),DimensionItemName:s.getCurrentLanguageText(n.Texts,"Name")},f[n.DimensionIdC]=t.SelectedItem.IdC,t.DefaultDimensionItemLock&&i.push({DimensionIdC:t.DimensionIdC,DimensionItemIdC:t.SelectedItem.IdC}))}),i.length&&(t.DefaultDependencies=i)),u&&_.forEach(u,function(n){var t=d.dimensionsByIdC[n.DimensionIdC],i;t&&t.ParentIdC&&(i=f[t.ParentIdC],i&&(n.$parentItemIdC=i))}))},getSavePipeline:function(n,t,r,u,f,e,o){var y=i.defer(),s={defer:y,promise:y.promise,employeeIdC:n.IdC,startDate:t,endDate:r,periodType:u,refIdC:f,operations:[]},c=d.employeePipeline[n.IdC],a,v;c||(d.employeePipeline[n.IdC]=c={counter:0,items:{}});s.IdC=n.IdC+"#"+(c.counter+1);c.counter++;c.items[s.IdC]=s;n.loading=!0;var h={type:"save",defer:i.defer(),method:d.saveData,context:d,loadEmployee:!1,loadEmployeeAfterPolling:!0,loadProcessingData:!1,arguments:[e,o],loading:{operationLevel:"workhours",pollingLevel:"workhours"},employeesLoaded:!1,pipeline:s},p=h.defer,l=null;return e.accept?l={type:"accept",method:d.acceptData,loadEmployee:!0,loadEmployeeAfterPolling:!0,loadProcessingData:!0,loading:{operationLevel:"workhours",pollingLevel:"processingresults"}}:e.reject?h=angular.extend(h,{type:"reject",method:d.acceptData,loadEmployee:!1,loadEmployeeAfterPolling:!1,loadProcessingData:!1,loading:{operationLevel:"workhours",pollingLevel:"none"},arguments:[e,o]}):e.lock?(a=d.getPermission("processingOnLocking"),l={type:"lock",method:d.lockData,loadEmployee:a?!0:!1,loadEmployeeAfterPolling:!0,loadProcessingData:a?!0:!1,loading:{operationLevel:"workhours",pollingLevel:a?"processingresults":"workhours"}}):e.release&&(h=angular.extend(h,{type:"release",method:d.lockData,loadEmployee:!1,loadEmployeeAfterPolling:!1,loadProcessingData:!1,loading:{operationLevel:"workhours",pollingLevel:"none"},arguments:[e,o]})),s.operations.push(h),l?(angular.extend(l,{defer:i.defer(),context:d,preliminary:h.defer.promise,arguments:[e,o],employeesLoaded:!1,pipeline:s}),p=l.defer,s.operations.push(l)):(h.loadEmployee=!0,h.loadEmployeeAfterPolling=!1),p.promise.then(function(n){s.defer.resolve(n)},function(){s.defer.reject()}),v=function(){n.loading=!1;c.counter--;delete c.items[s.IdC];c.counter==0&&delete d.employeePipeline[n.IdC]},s.promise.then(v,v),s},startPipeline:function(n){var t,r;n&&(t=n.operations.shift(),t)&&(r=i.defer(),t.preliminary?t.preliminary.then(function(n){r.resolve(n)},function(){r.reject()}):r.resolve(),r.promise.then(function(r){if(r&&r.Stop)t.defer.resolve(r);else t.employeesLoaded=!1,t.loading&&(n.loading=d.updateLoadSpinner(t.loading.operationLevel,!0)),t.method.apply(t.context,t.arguments).then(function(r){var e=null,f=r&&r.Data?r.Data:null,s,o,u;r&&r.NoData?(t.loading&&(n.loading=d.updateLoadSpinner(t.loading.pollingLevel,!1)),t.defer.resolve({Stop:!0})):(f&&f.Period&&(f.Period.QueueIdC&&f.Period.QueueStatus<h.getValue("QueueStatus","Completed")?e=f.Period.QueueIdC:f.Period.CheckQueueIdC&&f.Period.CheckQueueStatus<h.getValue("QueueStatus","Completed")&&(e=f.Period.CheckQueueIdC)),s=t.loadEmployee,!e&&t.loadEmployeeAfterPolling&&(s=!0),o=i.defer(),s?d.resetEmployeeData(t.pipeline.employeeIdC,t.pipeline.startDate,t.pipeline.periodType,t.pipeline.refIdC,e?!1:!0,!0).then(function(){t.employeesLoaded=!0;o.resolve()},function(){o.reject()}):(d.refreshDataCallback&&d.refreshDataCallback(f),o.resolve()),u=i.defer(),o.promise.then(function(){t.loading&&t.loading.operationLevel!=t.loading.pollingLevel&&(n.loading=d.updateLoadSpinner(t.loading.operationLevel,!1));e?(t.loading&&t.loading.operationLevel!=t.loading.pollingLevel&&(n.loading=d.updateLoadSpinner(t.loading.pollingLevel,!0)),d.checkForProcessingData({employeeIdC:t.pipeline.employeeIdC,queueIdC:e,startDate:t.pipeline.startDate,operation:t}).then(function(){t.loadEmployeeAfterPolling?(t.employeesLoaded=!0,t.loadProcessingData?d.resetSalaryEventData(t.pipeline.employeeIdC,e).then(function(){u.resolve()},function(){u.reject()}):d.resetEmployeeData(t.pipeline.employeeIdC,t.pipeline.startDate,t.pipeline.periodType,t.pipeline.refIdC,!1,!0).then(function(n){n.valid?u.resolve():u.reject()},function(){u.reject()})):u.resolve()},function(){u.reject()})):u.resolve()}),u.promise.then(function(){t.loading&&(n.loading=d.updateLoadSpinner(t.loading.pollingLevel,!1));t.defer.resolve()},function(){t.defer.resolve({Stop:!0})}))},function(){t.defer.resolve({Stop:!0})}),n.operations&&n.operations.length&&d.startPipeline(n)}))},checkForProcessingData:function(n){if(!n.defer){var t=i.defer();n.defer=t}return r(function(){l.getInstance(n.queueIdC).then(function(t){var i=t?t.Data:null;i&&(i.Status<h.getValue("QueueStatus","Completed")?d.checkForProcessingData(n):n.defer.resolve())})},2e3),n.defer.promise},updateLoadSpinner:function(n,t){return d.updateLoadSpinnerCallback?d.updateLoadSpinnerCallback(n,t):null}
1,getLoadingStatus:function(n,t){return{workhours:n,processingResults:t}},resetEmployeeData:function(n,t,r,u,f,e){var o=i.defer();return d.resetEmployeeDataCallback?d.resetEmployeeDataCallback(n,t,r,u,f,e).then(function(n){o.resolve(n)}):o.resolve(null),o.promise},resetSalaryEventData:function(n,t){return d.resetSalaryEventDataCallback?d.resetSalaryEventDataCallback(n,t):null},addError:function(n,t,i,r,u){var f=null,a=t+"-validation",h,c,l,e,o;switch(t){case"dimension":f=d.getDimension(i);break;case"balance":case"reasoncode":f=d.getReasonCode(i);break;case"description":f=t}if(f){for(n.Errors||(n.Errors=[]),h=null,c=0;c<n.Errors.length;c++)if(l=n.Errors[c],l.source==a&&l.idc==i){h=l;break}if(h||n.Errors.push(h={error:!0,idc:i,source:a}),e=s.getText(r),f.Texts&&(e=e.replace(/\{0\}/,s.getCurrentLanguageText(f.Texts,"Name")),u&&u.length))for(o=0;o<u.length;o++)e=e.replace(new RegExp("\\{"+(o+1)+"\\}"),u[o]?u[o]:"");h.message=e;n.Valid=!1}},removeError:function(n,t,i){var e=t+"-validation",r,u,f;if(n.Errors){for(r=[],u=0;u<n.Errors.length;u++)f=n.Errors[u],(f.source!=e||f.idc!=i)&&r.push(f);r.length||(r=null);n.Errors=r}},getPreviousPeriodData:function(){var n=i.defer();return d.getPreviousPeriodDataCallback?d.getPreviousPeriodDataCallback().then(function(t){n.resolve(t)}):n.resolve(null),n.promise},setSelectedEmployee:function(n){var r=i.defer(),u,f,e,t;if(d.selectedEmployee=n,u=d.employeePipeline[n.IdC],u){n.loading=!0;n.loadingDefer=r;f=[];n.loadingStatus=d.getLoadingStatus(!1,!1);for(e in u.items)t=u.items[e],t.loading&&(n.loadingStatus.workhours=n.loadingStatus.workhours||t.loading.workhours,n.loadingStatus.processingResults=n.loadingStatus.processingResults||t.loading.processingResults),f.push(t.promise);i.all(f).then(function(){r.resolve()})}else r.resolve();return r.promise},updateEmployeeStatus:function(n,t,i){var f,h,e,s;if(n){if(t||(t=n.PeriodStatus),n.Status=0,t&&t.length){if(f=t[0],i&&i.FilterDate&&i.FilterDate.getTime)for(h=new Date(c.getDateOnly(i.FilterDate).getTime()+432e5),e=0;e<t.length;e++)if(s=t[e],s.StartDate.getTime()<h.getTime()&&h.getTime()<=s.EndDate.getTime()+432e5){f=s;break}f&&(n.Status=f.Status)}if(n.Status>0)switch(n.Status){case 1:n.statusStyle={backgroundColor:d.statusColors.Locked};n.statusLabel="WORKHOURSX.STATUS_LOCKED";break;case 2:n.statusStyle={backgroundColor:d.statusColors.Accepted};n.statusLabel="WORKHOURSX.STATUS_ACCEPTED";break;case 3:n.statusStyle={backgroundColor:d.statusColors.Processed};n.statusLabel="WORKHOURSX.STATUS_PROCESSED"}if(i&&n.EmploymentData&&n.EmploymentData.length){var l=n.EmploymentData[0],a=n.EmploymentData[n.EmploymentData.length-1],r=null,u=null;l.StartDate.getTime()>i.StartDate.getTime()&&(r=o.getFormattedDate(l.StartDate));a.EndDate.getTime()<i.EndDate.getTime()&&(u=o.getFormattedDate(a.EndDate));n.Warning=r||u?!0:!1;r&&u?n.warningLabel="WORKHOURSX.EMPLOYMENT_BEGINS_AND_ENDS|"+r+"|"+u:r?n.warningLabel="WORKHOURSX.EMPLOYMENT_BEGINS|"+r:u&&(n.warningLabel="WORKHOURSX.EMPLOYMENT_ENDS|"+u)}}},setSelectedPeriod:function(n){d.selectedPeriod=n},preparePeriodData:function(n){d.preparePeriodDataCallback&&d.preparePeriodDataCallback(n)},prepareUsages:function(n,t,i,r,u){for(var o,et,p,f,d,l,h,w,s,g={},nt={},e=n&&n.length?n[0]:null,b=-1,tt=-1,it=r,rt=r,ut={},ft={},v=0;v<u+1;v++){if(o=c.getDateOnly(c.addDays(r,v).getTime()),(!e||e.StartDate.getTime()>o||o>=e.EndDate.getTime())&&(e=null,n&&n.length))for(f=0;f<n.length;f++)if(n[f].StartDate.getTime()<=o&&o<=n[f].EndDate.getTime()){e=n[f];break}if(et=g[o]={},p=nt[o]={},e){if(b==-1&&(b=v,it=o),tt=v,rt=o,t&&t.length)for(f=0;f<t.length;f++){var a=t[f],y=!0,k=a.DimensionItemRequired;if(a.Usages&&a.Usages.length)for(y=!1,l=0;l<a.Usages.length;l++)if(s=a.Usages[l],s.OrganisationIdC&&s.OrganisationIdC!=e.OrganisationIdC||s.PersonnelGroupIdC&&s.PersonnelGroupIdC!=e.PersonnelGroupIdC||s.PaymentGroupIdC&&s.PaymentGroupIdC!=e.PaymentGroupIdC||(y=!0,k=k||s.Required?!0:!1),y)break;et[a.IdC]={ok:y,required:k};y&&(ft[a.IdC]=!0)}if(i&&i.length)for(f=0;f<i.length;f++)for(d=i[f],l=0;l<d.length;l++){if(h=d[l],p[h.IdC]=!0,h.PersonnelGroupUsages)for(w=0;w<h.PersonnelGroupUsages.length;w++)if(s=h.PersonnelGroupUsages[w],s.PersonnelGroupIdC==e.PersonnelGroupIdC){p[h.IdC]=!1;break}(p[h.IdC]&&h.TotallyDisabled||h.Promoted)&&delete h.TotallyDisabled}}else ut[o]=!0}return{perDayUsages:g,perDayReasonCodeUsages:nt,currentEmploymentData:e,firstIndex:b,lastIndex:tt,employmentStartDate:it,employmentEndDate:rt,noEmploymentDays:ut,generalUsage:ft}},filterDimensionsByUsage:function(n,t){var r=[],i;if(n&&n.length)for(i=0;i<n.length;i++)t[n[i].IdC]&&r.push(n[i]);return r},setRemovedRows:function(n){d.removedRows=n},getSelectedEmployee:function(){return d.selectedEmployee},getSelectedPeriod:function(){return d.selectedPeriod},getRemovedRows:function(){return d.removedRows},getOptionsSetDeferred:function(){return d.initDeferred.promise},setOptions:function(n){d.options=n;d.initDeferred.resolve()},getOption:function(n){return d.options[n]},setPermissions:function(n){d.permissions=n?n:{}},getPermission:function(n){return d.permissions?d.permissions[n]?!0:!1:!1}
1,validate:function(){d.validateCallback&&d.validateCallback()},validateRow:function(n){d.validateRowCallback&&d.validateRowCallback(n)},validateCell:function(n,t){d.validateCellCallback&&d.validateCellCallback(n,t)},copySelectedRows:function(){d.copySelectedRowsCallback&&d.copySelectedRowsCallback()},copySelectedDays:function(){d.copySelectedDaysCallback&&d.copySelectedDaysCallback()},copyPreviousPeriod:function(){d.copyPreviousPeriodCallback&&d.copyPreviousPeriodCallback()},findCheckedRows:function(){var n=d.clearChecks?!0:!1;return d.clearChecks=!1,d.findCheckedRowsCallback?d.findCheckedRowsCallback(n):null},checkRows:function(n){var t=null;return d.checkRowsCallback&&(t=d.checkRowsCallback(n)),t},removeSelectedRows:function(){d.removeSelectedRowsCallback&&d.removeSelectedRowsCallback()},removeSelectedDays:function(){d.removeSelectedDaysCallback&&d.removeSelectedDaysCallback()},isEmptyData:function(n,t){var f,u,e,o,i,r;if(!n)return!0;if(f=!0,u=!0,t&&(t.DataType==h.getValue("ReasonCodeDataTypeEnum","StartAndEndTime")?f=!1:u=!1),e=!1,o=n.Hours?!1:!0,u){if(i=!n.StartTime||!n.StartTime.getTime||n.StartTime.getTime&&!(n.StartTime.getTime()-(new Date).getTimezoneOffset()*6e4),r=!n.EndTime||!n.EndTime.getTime||n.EndTime.getTime&&!(n.EndTime.getTime()-(new Date).getTimezoneOffset()*6e4),!i||!r){var s=new Date(new Date(0).getTimezoneOffset()*6e4),l=i?s:c.setDatePart(new Date(n.StartTime.getTime()),new Date(0)),a=r?s:c.setDatePart(new Date(n.EndTime.getTime()),new Date(0));l.getTime()==a.getTime()&&(i=r=!0)}e=i&&r?!0:!1}return(e||!u)&&(o||!f)?!0:!1},setCellWidthExtra:function(n){d.cellWidthExtra=n},setDimensionColumnWidth:function(n){d.dimensionColumnWidth=n},getDimensionCellWidth:function(){return d.dimensionCellWidth+(d.dimensionColumnWidth-1)*d.dimensionCellWidthStep},getHourCellWidth:function(){return d.hourCellWidth+d.cellWidthExtra},getHourCheckboxCellWidth:function(){return d.hourCheckboxCellWidth+d.cellWidthExtra},getTimeRangeCellWidth:function(){return d.timeRangeCellWidth+d.cellWidthExtra},getExtraReasonCodeCellWidth:function(){return d.extraReasonCodeCellWidth+(d.dimensionColumnWidth-1)*d.dimensionCellWidthStep},getUnitPriceWidth:function(){return d.unitPriceWidth},getDescriptionCellWidth:function(){return d.descriptionCellWidth},preparePeriod:function(){return d.invoke(d.preparePeriodCallbacks,arguments)},swapShifts:function(n,t){var f,e,r,o;return d.getPermission("swapShifts")?(n&&t?(f=d.getSelectedEmployee(),e=d.getSelectedPeriod(),f&&e?(r=i.defer(),o=u.open({templateUrl:"MVC/Modals/Workhours/swapShifts.html",controller:"swapShiftsModalController",backdrop:"static",windowClass:"swapShifts",resolve:{employeeIdC:function(){return f.IdC},shift:function(){return{Date:t.Date,WorkPlanIdC:t.WorkPlanIdC}},shiftData:function(){return e.AllPeriodShifts}}}),o.result.then(function(n){n&&k.swapOrCopy(n).then(function(t){var f=n,r,i,u;if(n=[],r={},t&&t.DataList)for(i=0;i<t.DataList.length;i++)r[t.DataList[i].WorkPlanDataIdC]=!0;for(i=0;i<f.length;i++)u=f[i],r[u.WorkPlanDataIdC]&&n.push(u)});r.resolve(n)})):r.resolve(null)):r.resolve(null),r.promise):!1},findAffectedTravelClaims:function(n,t){var r,u,s,i,v,l,y;if(!n||!t)return null;var a={},e=null,o=null;for(i=0;i<t.length;i++)r=t[i],u=r.Date.getTime(),a[u]=!0,(!e||u<e)&&(e=u),(!o||u>o)&&(o=u);for(s=null,i=0;i<n.length;i++){var r=n[i],f=c.getDateOnly(r.StartDate.getTime()),h=c.getDateOnly(r.EndDate.getTime());for(f<e&&(f=e),h>o&&(h=o),f=new Date(f),h=new Date(h),v=c.getDateDifference(h,f).days,l=0;l<=v;l++)if(y=c.getDateOnly(c.getDateOnly(c.addDays(f,l))),a[y.getTime()]){s?s.push(r):s=[r];break}}return s},showTravelClaimEditor:function(n){var t=i.defer(),r=n?n.travelClaims:null,f;return r==null&&(r=d.selectedPeriod?d.selectedPeriod.TravelClaims:null),f=u.open({templateUrl:"MVC/Modals/Workhours/travelClaimAlert.html",controller:"travelClaimAlertModalController",backdrop:"static",windowClass:"travelClaimAlert",resolve:{viewOnly:function(){return n?n.viewOnly:!1},travelClaims:function(){return r}}}),f.result.then(function(n){n&&n.cancel?t.reject():t.resolve()}),t.promise},setSettings:function(n){var r=d.settings,t,i;n.length&&(console.log("setSettings -> settings.length = "+n.length),n=n[n.length-1]);n||(console.log("setSettings -> empty settings"),n={});d.oldSettings=r;d.settings=n;e.hasViewTypeChanged(r,n)&&(t=d.loadCache,t&&t.dataSet&&d.prepareOutputDataCallback&&(i=d.prepareOutputDataCallback(),t.dataSet.WorkHours=i?i.data:null),d.cacheWorkhours(t));d.settingsReady=!0;d.tryBroadcastSettings()},registerController:function(n){d.controllerName=n;d.controllerReady=!0;d.tryBroadcastSettings()},tryBroadcastSettings:function(){if(d.settingsReady&&d.controllerReady){console.log("workhoursService.tryBroadcastSettings -> broadcasting settings");var n=d.settings,i=d.oldSettings;r(function(){t.$broadcast("workhourSettingsChanged",n,i)})}else console.log("workhoursService.tryBroadcastSettings -> cannot proceed, settingsReady="+d.settingsReady+", controllerReady="+d.controllerReady)},getSettings:function(){return d.settings},isInOrganisationSubTree:function(n,t){var i,r;if(!d.organisationsByIdC||(i=d.organisationsByIdC[n],!i))return!1;if(i.IdC==t)return!0;
1if(!i.SubItems||!i.SubItems.length)return!1;for(r=0;r<i.SubItems.length;r++)if(d.isInOrganisationSubTree(i.SubItems[r].IdC,t))return!0;return!1},getDimensionItems:function(n){var t,r;return(n.DateRange&&(n.StartDate=n.DateRange.StartDate,n.EndDate=n.DateRange.EndDate),n.dimensionIdC&&(t=d.getDimension(n.dimensionIdC),t&&t.ParentIdC&&t.Index>0&&!n.parentIdC))?(r=i.defer(),r.resolve({DataList:null,TotalRows:0,Status:1}),r.promise):b.getAll(n)},getDimension:function(n){var t=d.dimensionsByIdC[n];return t?angular.copy(t):null},getDimensionItem:function(n,t){var i=d.dimensionItemsByIdC[n+"#"+t];return i?angular.copy(i):null},getOrganisation:function(n){return d.organisationsByIdC[n]},getEmployees:function(n){return n&&(n.orderByFieldName=d.getOrderByField(n,["Name","ID2"])),d.options.Cached?d.deferredFilterData(d.findEmployees(n),n):void 0},getDimensions:function(n){return n&&(n.orderByFieldName=d.getOrderByField(n,["DimensionOrder","Name","Code"]),n.orderByFieldName=="DimensionOrder"&&(n.SecondaryOrderByField="Name")),d.options.Cached?d.deferredFilterData(d.dimensions,n):void 0},getOrderByField:function(n,t){return n?(t||(t=["Code","Name"]),t[n&&n.orderByField?n.orderByField:0]):"Name"},findEmployees:function(n){var k=[],l,e,u,i,a,v,y,c,f,p,w,b,t,r;if(!n)return d.employees;if(d.employees&&d.employees.length){if(n.subordinatesOfId=null,n.SubordinatesOf&&n.SubordinatesOf.length)for(n.subordinatesOfId={},u=0;u<n.SubordinatesOf.length;u++)n.subordinatesOfId[n.SubordinatesOf[u]]=!0;if(n.Items&&n.Items.length)for(n.itemsByType={},u=0;u<n.Items.length;u++)l=h.getKey("AbsenceQueryParameterTypeEnum",n.Items[u].Type),n.itemsByType[l]||(n.itemsByType[l]=[]),n.itemsByType[l].push(n.Items[u]);for(e={StartDate:n.StartDate?n.StartDate:n.Date?n.Date:new Date,EndDate:n.EndDate?n.EndDate:n.Date?n.Date:new Date},u=0;u<d.employees.length;u++){if(i=d.employees[u],n.itemsByType){if(r=null,a=null,i.EmploymentData&&i.EmploymentData.length)for(t=0;t<i.EmploymentData.length;t++){var o=i.EmploymentData[t],g=o.StartDate?o.StartDate:n.DateRange.StartDate,nt=o.EndDate?o.EndDate:n.DateRange.EndDate;if(g<=e.EndDate&&nt>=e.StartDate){r=o;break}}if(i.ResourceDimensionItems&&i.ResourceDimensionItems.length)for(t=0;t<i.ResourceDimensionItems.length;t++){var s=i.ResourceDimensionItems[t],g=s.StartDate?s.StartDate:n.DateRange.StartDate,nt=s.EndDate?s.EndDate:n.DateRange.EndDate;if(g<=e.EndDate&&nt>=e.StartDate){a=s;break}}v=!1;for(y in n.itemsByType){c=n.itemsByType[y];f=null;switch(y){case"Organisation":f=r?r.OrganisationIdC:null;break;case"EmployeeGroup":f=r?r.EmployeeGroupIdC:null;break;case"PaymentGroup":f=r?r.PaymentGroupIdC:null;break;case"LastName":f=i.LastName;break;case"Employee":f=i.IdC;break;case"GroupItem":f=r?r.WorkHourGroupIdC:null;break;case"ResourceDimensionItem":f=a?a.IdC:null}if(!f){v=!0;break}if(p=!1,c&&c.length)for(t=0;t<c.length;t++)if(w=c[t],f===w.IdCValue){p=!0;break}else if(y=="Organisation"&&w.SubLevels&&d.isInOrganisationSubTree(w.IdCValue,f)){p=!0;break}if(!p){v=!0;break}}if(v)continue}if(b=!1,i.EmploymentData)for(t=0;t<i.EmploymentData.length;t++)if(r=i.EmploymentData[t],r.StartDate.getTime()<=e.EndDate.getTime()&&(r.EndDate?r.EndDate:new Date(2100,01,01)).getTime()>=e.StartDate.getTime())if(!n.subordinatesOfId||n.subordinatesOfId[r.AcceptorIdC]){b=!0;break}else if(n.ByUserRights){b=!0;break}b&&k.push(i)}}return k},findParentIdC:function(n,t){var i,r,u,f;if(d.dimensions&&d.dimensions.length)for(i=0;i<d.dimensions.length;i++)if(r=d.dimensions[i],r.IdC==n){if(i>0&&r.ParentIdC){if(t&&t.length)for(u=0;u<t.length;u++)if(f=t[u],f.DimensionIdC==r.ParentIdC&&f.SelectedItem)return f.SelectedItem.IdC;return null}return null}return null},findDimensionItems:function(n,t){var u=null,e,o,h,f,r,c,i,l,s;if(d.dimensions&&d.dimensions.length)for(f=0;f<d.dimensions.length;f++)if(e=d.dimensions[f],e.IdC==n){if(o=null,f>0&&e.ParentIdC){if(t&&t.length)for(i=0;i<t.length;i++)if(r=t[i],r.DimensionIdC==e.ParentIdC&&r.SelectedItem){o=r.SelectedItem.IdC;break}if(u=[],o&&(u=[],e.Items&&e.Items.length))for(i=0;i<e.Items.length;i++)r=e.Items[i],r.ParentIdC==o&&u.push(r);break}else u=e.Items;break}if(u&&organisationIdCList){for(h=[],f=0;f<u.length;f++){if(r=u[f],c=!1,r.OrganisationDimensionItems)for(i=0;i<r.OrganisationDimensionItems.length;i++)for(l=r.OrganisationDimensionItems[i].OrganisationIdC,s=0;s<organisationIdCList.length;s++)if(l==organisationIdCList[s]){c=!0;break}c||h.push(r)}u=h}return u},getReasonCode:function(n){var t=d.reasonCodesByIdC[n];return t?angular.copy(t):null},getReasonCodes:function(n){return n&&(n.orderByFieldName=d.getOrderByField(n,["Ordinal","Name","Code"]),n.orderByFieldName=="Ordinal"&&(n.SecondaryOrderByField="Name"),n.AdditionalFields=["ReasonCodeName"]),d.options.Cached?d.deferredFilterData(d.reasonCodes,n):void 0},getColumnReasonCodes:function(n){if(n&&(n.orderByFieldName=d.getOrderByField(n,["Ordinal","Name","Code"]),n.orderByFieldName=="Ordinal"&&(n.SecondaryOrderByField="Name"),n.AdditionalFields=["ReasonCodeName"]),d.options.Cached){var t=i.defer();return d.deferredFilterData(d.columnReasonCodes,n).then(function(i){t.resolve(d.checkAbsenceReasonCode(i,n.DateRange))}),t.promise}},getOtherReasonCodes:function(n){if(n&&(n.orderByFieldName=d.getOrderByField(n,["Ordinal","Name","Code"]),n.orderByFieldName=="Ordinal"&&(n.SecondaryOrderByField="Name"),n.AdditionalFields=["ReasonCodeName"]),d.options.Cached){var t=i.defer();return d.deferredFilterData(d.otherReasonCodes,n).then(function(i){t.resolve(d.checkAbsenceReasonCode(i,n.DateRange))}),t.promise}},checkAbsenceReasonCode:function(n,t){var f,r,u,e,i;if(n&&n.DataList&&t&&t.StartDate&&t.EndDate&&t.StartDate.getTime&&t.EndDate.getTime)for(f=0;f<n.DataList.length;f++)if(r=n.DataList[f],r.AbsenceReasonCode&&r.AbsenceReasonCodeDateRanges){for(u=null,e=0;e<r.AbsenceReasonCodeDateRanges.length;e++)if(i=r.AbsenceReasonCodeDateRanges[e],i&&i.StartDate&&i.EndDate&&i.StartDate.getTime&&i.EndDate.getTime&&(u==null&&(u=!1),i.StartDate.getTime()<=t.EndDate.getTime()&&i.EndDate.getTime()>t.EndDate.getTime())){u=!0;break}u!=null&&(r.AbsenceReasonCode=u)}return n},getColumnAndOtherReasonCodes:function(n){return n&&(n.orderByFieldName=d.getOrderByField(n,["Ordinal","Name","Code"]),n.orderByFieldName=="Ordinal"&&(n.SecondaryOrderByField="Name"),n.AdditionalFields=["ReasonCodeName"]),d.options.Cached?d.deferredFilterData(d.columnReasonCodes.concat(d.otherReasonCodes),n):void 0},filterData:function(n,t){var e=t&&t.SearchFilter?new RegExp(t.SearchFilter,"i"):null,o=[],i,h,c,u,f,r;if(n&&n.length)for(r=0;r<n.length;r++)(i=n[r],t&&t.DateRange&&(h=i.StartDate?i.StartDate:t.DateRange.StartDate,c=i.EndDate?i.EndDate:t.DateRange.EndDate,h>t.DateRange.EndDate||c<t.DateRange.StartDate))||(!t.Usage||t.Usage[i.IdC])&&(e&&(u="",i.Code&&i.Texts?u=i.Code+" "+s.getCurrentLanguageText(i.Texts,"Name"):i.FirstName&&i.LastName&&(u=i.LastName+" "+i.FirstName),u.search(e)==-1)||o.push(i));for(n=o,f=[],t||(t={}),t.firstIndex||(t.firstIndex=0),t.itemCount||(t.itemCount=n&&n.length?n.length:0),t.totalCount=n&&n.length?n.length:0,d.sortData(n,t),r=t.firstIndex;
1r<t.firstIndex+t.itemCount&&r<n.length;r++)t.noCopy?f.push(n[r]):f.push(angular.copy(n[r]));return f},sortData:function(n,t){if(!n||!t)return n;var i=t.sortOrder?-1:1;n.sort(function(n,r){var u,f;if(!n)return i*1;if(!r)return i*-1;if(u=n[t.orderByFieldName],f=r[t.orderByFieldName],t.orderByFieldName!="Name"||u&&typeof u=="string"&&f&&typeof f=="string"||(u&&typeof u=="string"||(u=s.getCurrentLanguageText(n.Texts,"Name")),f&&typeof f=="string"||(f=s.getCurrentLanguageText(r.Texts,"Name"))),!u)return i*1;if(!f||u<f)return i*-1;if(f<u)return i*1;if(t.SecondaryOrderByField){if(u=n[t.SecondaryOrderByField],f=r[t.SecondaryOrderByField],!u)return i*1;if(!f||u<f)return i*-1;if(f<u)return i*1}return 0})},deferredFilterData:function(n,t){var r=i.defer();return n=n?d.filterData(n,t):[],r.resolve({DataList:n,TotalRows:t.totalCount,Status:1}),r.promise},prepareDataForLockingOperation:function(n,t){for(var i,u=[],r=0;r<n.length;r++)i=n[r],u.push({IdC:i.IdC,EmployeeIdC:i.EmployeeIdC,PaymentGroupIdC:i.PaymentGroupIdC,Date:i.Date,AcceptorLock:t.accept||t.reject?i.AcceptorLock:null,EmployeeLock:t.lock||t.release?i.EmployeeLock:null});return u},buildEmploymentDataDateRanges:function(n,t){var u=[],l=null,h=null,s,e,c,i,o,f,r;if(!n)return null;if(n)for(i=0;i<n.length;i++)r=n[i],i||(l=r.StartDate),(!h||h<r.EndDate)&&(h=r.EndDate),u.push({start:r.StartDate,end:r.EndDate,removed:!1,employmentData:[],groupItems:[]});if(t)for(i=0;i<t.length;i++){var r=t[i],a=r.StartDate.getFullYear()>1899?r.StartDate:l,v=r.EndDate.getFullYear()<2100?r.EndDate:h;u.push({start:a,end:v,removed:!1,employmentData:[],groupItems:[]})}if(u.length){for(u.sort(function(n,t){return n.start.getTime()<t.start.getTime()?-1:n.start.getTime()>t.start.getTime()?1:n.end.getTime()<n.end.getTime()?-1:n.end.getTime()>t.end.getTime()?1:0}),i=0;i<u.length-1;i++)for(f=i+1;f<u.length;f++)s=u[i],e=u[f],s.start.getTime()==e.start.getTime()?s.end.getTime()==e.end.getTime()?e.removed=!0:s.end.getTime()>e.end.getTime()?e.removed=!0:e.start=new Date(s.start.getTime()+864e5):s.end.getTime()>e.end.getTime()&&(e.removed=!0);for(c=[],i=0;i<u.length;i++)u[i].removed||c.push(u[i]);for(u=c,i=0;i<u.length;i++){if(o=u[i],n)for(f=0;f<n.length;f++)r=n[f],o.start.getTime()<r.EndDate.getTime()&&o.end.getTime()>r.StartDate.getTime()&&o.employmentData.push(r);if(t)for(f=0;f<t.length;f++)r=t[f],o.start.getTime()<r.EndDate.getTime()&&o.end.getTime()>r.StartDate.getTime()&&o.groupItems.push(r)}}return u},findOrganisationIdCList:function(n,t){var i,u,f,r;if(!n||!n.EmploymentData)return null;for(i=[],u=0;u<n.EmploymentData.length;u++)if(f=n.EmploymentData[u],f.StartDate.getTime()<=t.getTime()&&t.getTime()<=f.EndDate.getTime()){i.push(f.OrganisationIdC);break}if(i.length)for(r=d.getOrganisation(i[0]);r;)r=r.Parent,r&&i.push(r.IdC);return i},cacheWorkhours:function(n){d.workhoursCache=n},getCachedWorkhours:function(){return d.workhoursCache},clearWorkhoursCache:function(){d.workhoursCache=null},initializeWorkhours:function(){var n=d.getCachedWorkhours();n&&(n.employee&&d.prepareEmployeeDataSet(n),d.clearWorkhoursCache())},prepareEmployeeDataSet:function(n,t,r,u){var f=i.defer();return d.prepareEmployeeDataSetCallback?d.prepareEmployeeDataSetCallback(n,t,r,u).then(function(n){f.resolve(n)}):f.resolve(null),f.promise},checkPeriodLocks:function(n,t,i){var e=!0,r,u,f;if(n)for(r=0;r<n.length;r++)if((u=n[r],!t||!i||(f=u.Date.getTime(),!(f<t.getTime())&&!(f>i.getTime())))&&u.ProcessingLocks){e=!1;break}return e},preparePlansByDay:function(n){var i={},t;if(n)for(t=0;t<n.length;t++)i[n[t].Date.getTime()]=n[t];return i},prepareDefaults:function(n,t,i){var a=[],o=[],f,l,h,e;if(n)for(e=0;e<n.length;e++){var s=n[e],r=s.StartDate,u=s.EndDate;if((!r||r.getTime()<t.getTime())&&(r=t),(!u||u.getTime()>i.getTime())&&(u=i),!(u.getTime()<r.getTime())){for(r=c.getDateOnly(r),u=c.getDateOnly(u),f=null,l=0;l<o.length;l++)if(h=o[l],h.GroupingNumber==Number(s.GroupingNumber)&&r.getTime()==h.StartDate.getTime()&&u.getTime()==h.EndDate.getTime()){f=h;break}f||(f={Dimensions:{},GroupingNumber:Number(s.GroupingNumber),StartDate:new Date(r.getTime()),EndDate:new Date(u.getTime())},o.push(f));f.StartDate.getTime()>r.getTime()&&(f.StartDate=new Date(r.getTime()));f.EndDate.getTime()<u.getTime()&&(f.EndDate=new Date(u.getTime()));f.Dimensions[s.DimensionIdC]=s}}for(o.sort(function(n,t){return n.GroupingNumber<t.GroupingNumber?-1:n.GroupingNumber>t.GroupingNumber?1:0}),e=0;e<o.length;e++)a.push(o[e]);return a},prepareDefaultsByDay:function(n,t,i){var r={},s,u,f,h,e,o,l;if(n)for(s=d.prepareDefaults(n,t,i),u=0;u<s.length;u++)for(f=s[u],h={start:c.getDateDifference(f.StartDate,t).days,end:c.getDateDifference(f.EndDate,t).days},e=h.start;e<h.end+1;e++)o=c.getDateOnly(c.addDays(t,e).getTime()),l=null,r[o]||(r[o]=[]),l=r[o
1],l.push(f);return r},prepareReasonCodeBalances:function(n,t,i){var u,r;if((n||i)&&t&&t.length)for(u=0;u<t.length;u++)r=t[u],i&&(r.TotallyDisabled=!0),n&&n[r.IdC]&&(r.Balance=n[r.IdC])},loadWorkhours:function(n,t,r,u,f,e,o){var c=i.defer(),s={EmployeeIdC:n,StartDate:t,EndDate:t,PeriodType:r,RefIdC:u,IncludeStamps:!0,IncludePeriod:!0,IncludeSalaryEventSummary:f};return r==h.getValue("PeriodTypeEnum","PaymentGroupPeriods")&&(s.PaymentGroupIdC=u),!o&&d.settings.DefaultPeriodPerPaymentGroup&&(s.AutoDeterminePeriodByPaymentGroup=!0),w.getAll(s).then(function(n){var i=d.loadCache={dataSet:n?n.Data:null,date:t};d.prepareEmployeeDataSet(i,r,u,e).then(function(n){c.resolve(n)})}),c.promise},prepareInputData:function(n,t){var r=i.defer();return d.prepareInputDataCallback?d.prepareInputDataCallback(n,t).then(function(i){i.selectedPeriod&&(i.selectedPeriod.LowestStatus=n.LowestStatus,i.selectedPeriod.HighestStatus=n.HighestStatus,t||d.setSelectedPeriod(i.selectedPeriod));r.resolve(i)}):r.resolve(null),r.promise},prepareOutputData:function(n){return d.prepareOutputDataCallback?d.prepareOutputDataCallback(n):null},filterOutputDataForSaving:function(n){var u,i,s,c,f,t,e,l,o,r;if(n&&n.valid&&n.data){var v=d.getPermission("allowEditAcceptedAbsences"),y=h.getValue("TransactionStatusEnum","Accepted"),p=h.getValue("TransactionStatusEnum","Transferred"),a=[];for(u=0;u<n.data.length;u++)if(i=n.data[u],!i.ReadOnly&&!i.NoEmployment){if(s=!i.IdC||i.Changed||i.Deleted,c=[],i.WorkHours)for(f=0;f<i.WorkHours.length;f++){if(t=i.WorkHours[f],t.CheckEmployeeLock=d.getCheckEmployeeLock(),t.CheckPersonnelGroupReasonCode=d.getCheckPersonnelGroupReasonCode(),e=!t.IdC||t.Changed||t.Deleted,t.ReadOnly)if(t.Absence&&t.AbsenceStatus<=y){if(!v||e)continue}else continue;if(t.DimensionItems){for(l=[],o=0;o<t.DimensionItems.length;o++)r=t.DimensionItems[o],r.CheckEmployeeLock=d.getCheckEmployeeLock(),(!r.IdC||r.Changed||r.Deleted)&&(l.push(r),e=!0);t.DimensionItems=l}e&&(c.push(t),s=!0)}i.WorkHours=c;s&&(i.Changed=!1,a.push(i))}return a}return null},saveData:function(n,t){var r=i.defer(),u,f;return d.prepareOutputDataCallback?(u=d.filterOutputDataForSaving(d.prepareOutputDataCallback(n,t),n),u?(f={workingDays:u,startCheckProcessing:n&&(n.accept||n.lock)},w.save(f).then(function(n){r.resolve(n)},function(n){r.reject(n)})):r.resolve({NoData:!0})):r.reject(),r.promise},acceptData:function(n,t){var u=i.defer(),f,r,e;return d.prepareOutputDataCallback?(f=d.filterOutputDataForSaving(d.prepareOutputDataCallback(n,t),n),f?(r=i.defer(),n.reject?r.resolve():(e=d.findAffectedTravelClaims(d.selectedPeriod.TravelClaims,f),e?d.showTravelClaimEditor({viewOnly:!1,travelClaims:e}).then(function(){r.resolve()},function(){r.reject()}):r.resolve()),r.promise.then(function(){w.accept(d.prepareDataForLockingOperation(f,n),n.reject).then(function(n){u.resolve(n)})},function(){u.resolve({Stop:!0})})):u.resolve({NoData:!0})):u.reject(),u.promise},lockData:function(n,t){var r=i.defer(),u;return d.prepareOutputDataCallback?(u=d.filterOutputDataForSaving(d.prepareOutputDataCallback(n,t),n),u?w.lock(d.prepareDataForLockingOperation(u,n),n.release).then(function(n){r.resolve(n)}):r.reject()):r.reject(),r.promise},setPristine:function(n){d.setPristineCallback&&d.setPristineCallback(n)},setChanged:function(n){d.setChangedCallback&&d.setChangedCallback(n)},getPristine:function(){return d.getPristineCallback?d.getPristineCallback():!1},getChanged:function(){if(d.getChangedCallback)return d.getChangedCallback()},clearSelections:function(){d.clearChecks=!0},findPeriod:function(n,t,i,r){var e=null,o,f,u,s;if(n&&n.length){for(o=[],f=0;f<n.length;f++)u=n[f],t.getTime()<c.getDateOnly(c.addDays(u.EndDate,1)).getTime()&&(u.StartDate.getTime()<=t.getTime()||!e)&&o.push(u);if(o.length)for(e=o[0],f=0;f<o.length;f++)if(u=o[f],t.getTime()==u.StartDate.getTime()&&(s=!1,s=i&&r?u.PeriodType&&i&&u.RefIdC==r:!0,s)){e=u;break}e||(e=n[n.length-1])}return e},setCheckedFlags:function(n,t,i,r){var v,f,u,l,a;if(!n||!t)return n;var e=r?"daysSelected":"rowsSelected",o=r?"acceptedDaysSelected":"acceptedRowsSelected",s=r?"notAcceptedDaysSelected":"notAcceptedRowsSelected",h=r?"lockedDaysSelected":"lockedRowsSelected",c=r?"notLockedDaysSelected":"notLockedRowsSelected";if(n[e]=t.Checked,t.AcceptorLock?n[o]=t.Checked:n[s]=t.Checked,t.EmployeeLock?n[h]=t.Checked:n[c]=t.Checked,!n[e]||!n[o]||!n[s]||!n[h]||!n[c]){if(i)for(v=[],f=0;f<i.length;f++){u=i[f];u!=t&&u.Checked&&(n[e]=!0,u.AcceptorLock?n[o]=!0:n[s]=!0,u.EmployeeLock?n[h]=!0:n[c]=!0);l=!0;
1for(a in n)if(a.toLowerCase().indexOf("day")!=-1&&!n[a]){l=!1;break}if(l)return n}return n}},updateScrollerWidth:function(){d.updateScrollerWidthCallback&&d.updateScrollerWidthCallback()},calculateScrollWidth:function(n,t,i,r,u){var e=0,o,f,s;if(n&&n.length){if(o=0,u)o=n.length;else for(f=0;f<n.length;f++)n[f].Hidden||o++;e+=o*d.getDimensionCellWidth()}if(t&&t.length)for(f=0;f<t.length;f++)s=t[f],e+=s.DataType==5?d.getTimeRangeCellWidth():s.Property.UseCheckBox?d.getHourCheckboxCellWidth():d.getHourCellWidth(),s.Property.ShowUnitPrice&&(e+=d.getUnitPriceWidth());return i&&(e+=d.getExtraReasonCodeCellWidth()),r&&(e+=d.getDescriptionCellWidth()),e},registerListener:function(n,t){t.first?t.queue.push(n):t.first=n},unRegisterListener:function(n,t){if(t.first==n)t.first=null,t.queue.length>0&&(t.first=t.queue.splice(0,1));else for(var i=0;i<t.queue.length;i++)if(t.queue[i]===n){t.queue.splice(i,1);return}},invoke:function(n,t){var r=this,u=[],i;if(n.first&&n.first.apply(r,t),n.queue)for(i=0;i<n.queue.length;i++)u.push(n.queue[i].apply(r,t));return u}};return d}]);angular.module("TiimaApp").factory("workhoursCacheService",["$http","$rootScope","$q","formatService",function(n,t,i,r){var u={internalCache:null,setCacheData:function(n,t){u.internalCache||(u.internalCache={});u.internalCache[t]=n;u.fixDates(n)},getCacheData:function(n){if(u.internalCache&&u.internalCache[n])return u.internalCache[n]},fixDates:function(n){var f,t,e,i;if(n&&n.length)for(f=0;f<n.length;f++)if(t=n[f],t){t.StartDate&&(t.StartDate=r.parseISODateTime(t.StartDate),t.StartDateF=r.getFormattedDate(t.StartDate));t.EndDate&&(t.EndDate=r.parseISODateTime(t.EndDate),t.EndDateF=r.getFormattedDate(t.EndDate));for(e in t)i=t[e],i&&typeof i!="string"&&i.length&&u.fixDates(i)}}};return u}]);angular.module("TiimaApp").factory("workhourSettingsService",["$q","tiimaEnumsService","WorkhourSetting",function(n,t,i){var r={loading:!1,topLevel:null,settingsParent:null,settingsCache:{},settingsParentCallbacks:{first:null,queue:[]},resolveSettings:function(n){var i,u,e,l,o,s,h,f,c;if(n.length?(console.log("resolveSettings -> settings.length="+n.length),n=n[n.length-1]):console.log("resolveSettings -> single setting instance found instead of an array"),i={ViewType:1,DimensionItemDisplayType:0},!n)return console.log("resolveSettings -> empty settings, returning defaults"),i;if(n.Next&&r.floodTopLevelProperties(n),n.Settings)for(f=0;f<n.Settings.length;f++)u=n.Settings[f],u.Name=="WORKHOURSX.DIMENSIONITEM_DISPLAYTYPE_LABEL"?i.DimensionItemDisplayType=u.Value:u.ViewType?i.ViewType=u.Value:u.Name=="WORKHOURSX.SHIFTVIEWTYPE_LABEL"?i.ShiftViewType=u.Value:i[t.getKey("WorkhourSettingProperty",u.EnumValue)]=u.Value?!0:!1;else{e=t.getEnum("WorkhourSettingProperty");l=Number(n.Properties?n.Properties:0);for(o in e)s=Number(e[o]),i[o]=(l&s)==s;i.ViewType=n.ViewType;i.ShiftViewType=n.ShiftViewType;i.DimensionItemDisplayType=n.DimensionItemDisplayType}if(n.Dimensions&&(i.Dimensions=angular.copy(n.Dimensions)),n.PaymentGroups&&(i.PaymentGroups=angular.copy(n.PaymentGroups)),n.ReasonCodes)for(i.ReasonCodes=[],h=angular.copy(n.ReasonCodes),f=0;f<h.length;f++)c=h[f],c.Selected&&i.ReasonCodes.push(c);return i},findTopLevelSettings:function(n){if(!n)return null;if(!n.Next)return n;for(var t=n.Next,i=t;t;)i=t,t=t.Next;return i},floodTopLevelProperties:function(n){var i=r.findTopLevelSettings(n),o,s,u,f;if(i){var e=[{bit:t.getValue("WorkhourSettingProperty","UseDayLocking"),value:0},{bit:t.getValue("WorkhourSettingProperty","ObligatoryDescription"),value:0},{bit:t.getValue("WorkhourSettingProperty","DefaultPeriodPerPaymentGroup"),value:0},],h=i.Dimensions,c=i.PaymentGroups,l=i.ReasonCodes;if(i.Settings)for(u=0;u<i.Settings.length;u++)for(o=i.Settings[u],s=0;s<e.length;s++)f=e[s],o.EnumValue==f.bit&&(f.value=o.Value?f.bit:0);else for(u=0;u<e.length;u++)f=e[u],f.value=i.Properties&f.bit;for(i=i.Prev;i;){if(i.Settings)for(u=0;u<i.Settings.length;u++)for(o=i.Settings[u],s=0;s<e.length;s++)f=e[s],o.EnumValue==f.bit&&(o.Value=f.value?!0:!1,o.ValueLabel=o.Value?"GLOBAL.YES":"GLOBAL.NO");else for(u=0;u<e.length;
1u++)f=e[u],i.Properties=f.value?i.Properties|f.bit:i.Properties^~f.bit;h&&(i.Dimensions=angular.copy(h));c&&(i.PaymentGroups=angular.copy(c));l&&(i.ReasonCodes=angular.copy(l));i=i.Prev}}},prepareSettings:function(n){var i={Settings:[],Next:null,IdC:n.IdC,Changed:!1,Deleted:!1},f,e,r,u,o;if(i.InheritedSettings=!0,n){n.Dimensions&&(i.Dimensions=n.Dimensions);n.PaymentGroups&&(i.PaymentGroups=n.PaymentGroups);n.ReasonCodes&&(i.ReasonCodes=n.ReasonCodes);i.InheritedSettings=n.InheritedSettings;i.InheritedSettings?i.Owner={Code:n.Code,Texts:n.Texts}:(n.OrganisationIdC&&(i.OrganisationIdC=n.OrganisationIdC),n.UserIdC&&(i.UserIdC=n.UserIdC));f=t.getEnum("WorkhourSettingProperty");e=Number(n.Properties?n.Properties:0);for(r in f)u=Number(f[r]),o={Name:"WORKHOURSX.SETTING_PROPERTY_"+r.toUpperCase(),Value:(e&u)==u?!0:!1,EnumValue:u,Type:"checkbox",ValueLabel:(e&u)==u?"GLOBAL.YES":"GLOBAL.NO",Disabled:!1},(r=="UseDayLocking"||r=="ObligatoryDescription"||r=="DefaultPeriodPerPaymentGroup")&&(o.Disabled=n.OrganisationIdC||n.UserIdC?!0:!1),i.Settings.push(o);i.Settings.push({Name:"WORKHOURSX.DIMENSIONITEM_DISPLAYTYPE_LABEL",Value:n.DimensionItemDisplayType,RuleSet:!1,ViewType:!1,Disabled:!1,Type:"radio",Options:[{Value:0,Label:"WORKHOURSX.DIMENSIONITEM_DISPLAYTYPE_BOTH"},{Value:1,Label:"WORKHOURSX.DIMENSIONITEM_DISPLAYTYPE_CODE"},{Value:2,Label:"WORKHOURSX.DIMENSIONITEM_DISPLAYTYPE_NAME"}],ValueLabel:"WORKHOURSX.DIMENSIONITEM_DISPLAYTYPE_"+t.getKey("DimensionItemDisplayType",n.DimensionItemDisplayType).toUpperCase()});i.Settings.push({Name:"WORKHOURSX.VIEWTYPE_LABEL",Value:n.ViewType,RuleSet:!1,ViewType:!0,Disabled:!1,Type:"dropdown",Options:[{Value:1,Label:"WORKHOURSX.VIEWTYPE_DAYSVERTICAL"},{Value:2,Label:"WORKHOURSX.VIEWTYPE_WEEKEDITOR"}],ValueLabel:"WORKHOURSX.VIEWTYPE_"+t.getKey("WorkhourViewType",n.ViewType).toUpperCase()});i.Settings.push({Name:"WORKHOURSX.SHIFTVIEWTYPE_LABEL",Value:n.ShiftViewType,RuleSet:!1,ViewType:!1,Disabled:!1,Type:"radio",Options:[{Value:0,Label:"WORKHOURSX.SHIFTVIEWTYPE_NONE"},{Value:1,Label:"WORKHOURSX.SHIFTVIEWTYPE_CODEONLY"},{Value:2,Label:"WORKHOURSX.SHIFTVIEWTYPE_CODEANDTIMES"}],ValueLabel:"WORKHOURSX.VIEWTYPE_"+t.getKey("WorkhourViewType",n.ViewType).toUpperCase()});i.Settings.push({Name:"WORKHOURSX.RULESET",Value:n.RuleSet,RuleSet:!0,Disabled:i.OrganisationIdC||i.UserIdC?!0:!1})}return i},updateSettingHierarhcy:function(n){if(n)for(var t=n.Prev;t&&t.InheritedSettings;)t.Settings=angular.copy(n.Settings),t=t.Prev},prepareSettingsForSaving:function(){var f=[],l,s,u,h,e,n,o,i;for(l in r.settingsCache){for(s=r.settingsCache[l],u=s;u;)(!u.InheritedSettings||u.Deleted)&&f.push(u),u=u.Next;for(u=s.Prev;u;)(!u.InheritedSettings||u.Deleted)&&f.push(u),u=u.Prev}for(h=[],e=0;e<f.length;e++)if(n=f[e],!n.IdC||n.Changed||n.Deleted){var t={IdC:n.IdC,Changed:n.IdC&&n.Changed?!0:!1,Deleted:n.Deleted},a=0,c=null,v=1,y=0,p=0;if(n.Settings&&n.Settings.length)for(o=0;o<n.Settings.length;o++)i=n.Settings[o],i.RuleSet?c=i.Value?i.Value.IdC:null:i.ViewType?v=i.Value?i.Value:1:i.Name=="WORKHOURSX.SHIFTVIEWTYPE_LABEL"?y=i.Value?i.Value:0:i.Name=="WORKHOURSX.DIMENSIONITEM_DISPLAYTYPE_LABEL"?p=i.Value?i.Value:0:a+=i.Value?Number(i.EnumValue):0;n.IdC||(n.OrganisationIdC?t.OrganisationIdC=n.OrganisationIdC:n.UserIdC&&(t.UserIdC=n.UserIdC));t.DimensionItemDisplayType=p;t.Properties=a;t.ViewType=v;t.ShiftViewType=y;n.OrganisationIdC||n.UserIdC||!c||(t.RuleSet={IdC:c});n.OrganisationIdC||n.UserIdC||(n.Dimensions&&_.forEach(n.Dimensions,function(n){n.Changed&&(n.Hidden||n.IdC)&&(t.Dimensions||(t.Dimensions=[]),t.Dimensions.push({IdC:n.IdC,DimensionIdC:n.DimensionIdC,Hidden:n.Hidden?!0:!1,Changed:n.IdC&&n.Hidden?!0:!1,Deleted:n.IdC&&!n.Hidden?!0:!1}))}),n.PaymentGroups&&_.forEach(n.PaymentGroups,function(n){n.Changed&&(n.DefaultPeriod||n.Threshold||n.IdC)&&(t.PaymentGroups||(t.PaymentGroups=[]),t.PaymentGroups.push({IdC:n.IdC,PaymentGroupIdC:n.PaymentGroupIdC,Threshold:n.Threshold||0,DefaultPeriod:n.DefaultPeriod?2:0,Changed:n.IdC&&n.DefaultPeriod?!0:!1,Deleted:n.IdC&&!n.DefaultPeriod?!0:!1}))}),n.ReasonCodes&&_.forEach(n.ReasonCodes,function(n){n.Changed&&(n.Selected||n.IdC)&&(t.ReasonCodes||(t.ReasonCodes=[]),t.ReasonCodes.push({IdC:n.IdC,ReasonCodeIdC:n.ReasonCodeIdC,Selected:n.Selected?!0:!1,Deleted:n.IdC&&!n.Selected?!0:!1}))}
1));h.push(t)}return h},saveSettings:function(t){var u=n.defer();return i.saveBatch(t).then(function(n){var e=r.getCachedSettings(),o={},t,f,i,s;if(e)for(t=e;t;)t.IdC||(o[(t.OrganisationIdC?t.OrganisationIdC:"[null]")+";"+(t.UserIdC?t.UserIdC:"[null]")]=t),t=t.Next;if(n&&n.DataList)for(f=0;f<n.DataList.length;f++)i=n.DataList[f],s=(i.OrganisationIdC?i.OrganisationIdC:"[null]")+";"+(i.UserIdC?i.UserIdC:"[null]"),o[s]&&(o[s].IdC=i.IdC);delete n.DataList;n.Data=e;u.resolve(n)},function(){u.reject()}),u.promise},clearSettingsCache:function(){r.settingsCache={}},getCachedSettings:function(){return r.settingsCache["-"]},cacheSettings:function(n){r.settingsCache["-"]=n},hasViewTypeChanged:function(n,t){var i=null;return n&&(i=n.ViewType),t&&i&&t.ViewType!=i},setSettingsParent:function(n){r.settingsParent||(r.topLevel=n);r.settingsParent=n;r.invoke(r.settingsParentCallbacks,arguments)},getSettingsParent:function(){return r.settingsParent},registerSettingsParentListener:function(n){r.registerListener(n,r.settingsParentCallbacks)},unRegisterSettingsParentListener:function(n){r.unRegisterListener(n,r.settingsParentCallbacks)},registerListener:function(n,t){t.first?t.queue.push(n):t.first=n},unRegisterListener:function(n,t){if(t.first==n)t.first=null,t.queue.length>0&&(t.first=t.queue.splice(0,1));else for(var i=0;i<t.queue.length;i++)if(t.queue[i]===n){t.queue.splice(i,1);return}},invoke:function(n,t){var r=this,i;if(n.first&&n.first.apply(r,t),n.queue)for(i=0;i<n.queue.length;i++)n.queue[i].apply(r,t)}};return r}]);angular.module("TiimaApp").factory("resourcingPrintService",["$window","$http","$rootScope",function(n,t,i){var r={images:0,addImage:function(){r.images++},imageLoaded:function(){r.images--;i.$emit("imageLoaded",r.images)},onServiceEvent:function(n,t){i.$on(n,t)}};return r}]);angular.module("TiimaApp").factory("resourcingEmployeeService",["$window","$http","$rootScope","$q","resourcingService",resourcingEmployeeService=function(n,t,i,r,u){var f={editorScope:null,itemID:null,roleID:null,searchFilter:null,filter:null,totalCount:0,firstItem:-1,pageSize:10,pageIndex:0,queryPageSize:50,employees:[],initDeferred:r.defer(),initEditor:function(n){f.editorScope=n;f.initDeferred.resolve()},showSelector:function(n){f.editorScope.$emit("initEmployeeSelector",n)},closeSelector:function(n){n?f.editorScope.$emit("ok",f.getSelectedEmployees()):f.editorScope.$emit("cancel")},onServiceEvent:function(n,t){f.initDeferred.promise.then(function(){f.editorScope.$on(n,t)})},getSelectedEmployees:function(){var t=[],n;if(f.employees&&f.employees.length)for(n=0;n<f.employees.length;n++)f.employees[n].Selected&&(delete f.employees[n].Selected,t.push(f.employees[n]));return t},loadEmployees:function(n,i,e,o){var l,s,h,c;if(o||(o=0),(n!=f.itemID||i!=f.roleID||e!=f.searchFilter)&&(f.firstItem=-1),l=r.defer(),f.itemID=n,f.roleID=i,f.searchFilter=e,s=null,f.firstItem>-1?(h=o*f.pageSize,s=h>f.firstItem+f.queryPageSize?{Page:h/f.queryPageSize,Service:!0}:h<f.firstItem-f.queryPageSize?{Page:h/f.queryPageSize,Service:!0}:{Page:o,Service:!1,FirstIndex:h}):s={Page:o,Service:!0,FirstIndex:o*f.pageSize},s.Service)t.post(u.controllerUrl+"/Employees",{ResourceDimensionItemID:n,ResourceDimensionItemRoleID:i,SearchFilter:e,FirstIndex:s.FirstIndex,ItemCount:f.queryPageSize},{transformResponse:function(n){return JSON.parse(n)}}).then(function(n){var i=[],t;if(n.length)for(f.pageIndex=o,f.firstItem=s.FirstIndex,n=n[0],f.totalCount=n.Count,f.employees=n.Data,t=0;t<f.employees.length&&t<f.pageSize;t++)i.push(f.employees[t]);l.resolve(i)});else{var a=[],v=s.FirstIndex-f.firstItem,y=v+f.pageSize;for(c=v;c<f.employees.length&&c<y;c++)a.push(f.employees[c]);f.pageIndex=o;l.resolve(a)}return l.promise},getStatistics:function(){return{totalCount:f.totalCount,pageIndex:f.pageIndex,pageCount:Math.ceil(f.totalCount/f.pageSize)}}};return f}]);angular.module("TiimaApp").factory("resourcingService",["$window","$http","$rootScope","$q","$timeout","$uibModal","toolsService","localizationService","formatService","tiimaEnumsService","Queue","DimensionItem",resourcingService=function(n,t,i,r,u,f,e,o,s,h,c){var l={generateByNames:null,generateReasonCodeByNames:null,dimensions:null,topLevelDimension:null,dimensionItems:null,dimensionItemsByID:{},dimensionsByID:{},templatesByID:{},chartData:null,controllerUrl:"MVC/Resourcing/Resourcing",holidays:{},deletedTasks:{},deletedLinks:{},selectedDimensionItemIdC:null,selectedParent:null,topLevelEditorDimension:null,ganttIDToDimensionItemID:{},employees:null,saveCallback:null,deleteCallback:null,loadingCallback:null,refreshEmployeesCallback:null,clearEmployeesCallback:null,employeeUpdate
1Callback:null,showResourceDimensionItemModalCallback:null,updateZoomLevelCallback:null,resizeChartCallback:null,enabledZoomLevels:{day:!0,week:!0,month:!0,threeMonths:!0,year:!0},resourceDimensionItemFields:["Name","Code","Description","StartDate","EndDate","StartDateEmpty","EndDateEmpty","Priority","PlannedHours","PlannedDays","DailyHours","ResourceDimensionTemplateIdC","ReasonCode","DefaultDimensionItemsInherited"],roleFields:["Name","Unit","Quantity"],personFields:["StartDate","EndDate","Percentage","Hours","Unit"],reasonCodeFields:["Value","GenerateBy"],autoGeneratingSettingFields:["GenerateBy","GenerateDimensionItem"],permissionFields:["PermissionType"],fileFields:["ReferenceType","Reference","PermissionType","Description"],demandFields:["KnowhowLevel"],dayFields:["StartTime","EndTime"],periodFields:["StartDate","EndDate","Hours","Days","Unit"],breakFields:["StartDate","EndDate"],percentageFields:["TimeStamp","Percentage"],textFields:["LanguageIdC","Description","Name"],budgetPeriodFields:["StartDate","EndDate","Hours","Days","Unit"],subCollections:[],callbacks:[],usedInDefault:"inner",setSaveCallback:function(n){l.saveCallback=n},setDeleteCallback:function(n){l.deleteCallback=n},setLoadingCallback:function(n){l.loadingCallback=n},setClearEmployeesCallback:function(n){l.clearEmployeesCallback=n},setRefreshEmployeesCallback:function(n){l.refreshEmployeesCallback=n},setEmployeeUpdateCallback:function(n){l.employeeUpdateCallback=n},setShowResourceDimensionItemModalCallback:function(n){l.showResourceDimensionItemModalCallback=n},setUpdateZoomLevelCallback:function(n){l.updateZoomLevelCallback=n},setResizeChartCallback:function(n){l.resizeChartCallback=n},getResourceDimensionItemFields:function(){return l.resourceDimensionItemFields},getRoleFields:function(){return l.roleFields},getPersonFields:function(){return l.personFields},getBudgetPeriodFields:function(){return l.budgetPeriodFields},getReasonCodeFields:function(){return l.reasonCodeFields},getAutoGeneratingSettingFields:function(){return l.autoGeneratingSettingFields},getPermissionFields:function(){return l.permissionFields},getFileFields:function(){return l.fileFields},getDemandFields:function(){return l.demandFields},getDayFields:function(){return l.dayFields},getPeriodFields:function(){return l.periodFields},getBreakFields:function(){return l.breakFields},getPercentageFields:function(){return l.percentageFields},getSubCollections:function(){return l.subCollections},getEnabledZoomLevels:function(){return l.enabledZoomLevels},clearEmployees:function(){l.clearEmployeesCallback&&l.clearEmployeesCallback()},refreshEmployees:function(n){l.setLoadingFlagValue(!0);var t=r.defer();return l.refreshEmployeesCallback?l.refreshEmployeesCallback(n).then(function(){t.resolve()}):t.resolve(),t.promise},setLoadingFlagValue:function(n){l.loadingCallback&&l.loadingCallback(n)},setEmployees:function(n){l.employees=n;var t=r.defer();return l.employeeUpdateCallback?l.employeeUpdateCallback(n).then(function(){l.setLoadingFlagValue(!1);t.resolve()}):t.resolve(),t.promise},showResourceDimensionItemModal:function(n){l.showResourceDimensionItemModalCallback&&l.showResourceDimensionItemModalCallback(n)},setZoomLevel:function(){l.updateZoomLevelCallback&&l.updateZoomLevelCallback()},resizeChart:function(){l.resizeChartCallback&&l.resizeChartCallback()},isHoliday:function(n){var t=n;return typeof n=="object"&&n.getTime&&(t=n.getTime()),l.holidays[t]?!0:!1},setTopLevelEditorDimension:function(n){l.topLevelEditorDimension=n},getTopLevelEditorDimension:function(){return l.topLevelEditorDimension},setSelectedParent:function(n){l.selectedParent=n},getSelectedParent:function(){return l.selectedParent},setSelectedDimensionItemIdC:function(n){l.selectedDimensionItemIdC=n},getSelectedDimensionItemIdC:function(){return l.selectedDimensionItemIdC},getItem:function(n){return l.dimensionItemsByID[n]},getDimension:function(n){return l.dimensionsByID[n]},getTemplate:function(n){return l.templatesByID[n]},getTemplatePreview:function(n,i,u){var f=r.defer();return e.handleHttpPost(t.post(l.controllerUrl+"/GetTemplate",n),function(n){n&&n.Data?f.resolve(n.Data):f.resolve(null)},f,l.usedInDefault,i,u),f.promise},deleteTemplate:function(n,i,u){var f=r.defer();return e.handleHttpPost(t.post(l.controllerUrl+"/DeleteTemplate",n),function(t){for(var i,r,e,u=0;u<l.dimensions.length;u++)if(i=l.dimensions[u],i.Templates&&i.Templates.length)for(r=0;r<i.Templates.length;
1r++)if(e=angular.copy(i.Templates[r]),e.IdC==n.IdC){i.Templates.splice(r,1);break}l.templatesByID[n.IdC]&&delete l.templatesByID[n.IdC];f.resolve(t)},f,l.usedInDefault,i,u),f.promise},getAllTemplates:function(){var e=[],u,n,o,t,r,f,i;if(!l.dimensions)return e;for(u=0;u<l.dimensions.length;u++)if(n=l.dimensions[u],n.Templates&&n.Templates.length){if(o={},n.Texts)for(t=0;t<n.Texts.length;t++)i=n.Texts[t],o[i.LanguageIdC]=i.Name;for(t=0;t<n.Templates.length;t++)if(r=angular.copy(n.Templates[t]),e.push(r),r.Texts)for(f=0;f<r.Texts.length;f++)i=r.Texts[f],i.DimensionName=o[i.LanguageIdC]}return e},addDeletedTask:function(n){l.deletedTasks[n]?l.deletedTasks[n].Deleted=!0:l.deletedTasks[n]={Deleted:!0}},isTaskDeleted:function(n){return!angular.isUndefined(l.deletedTasks[n])},markLinksDeleted:function(n){if(n.AllLinks&&n.AllLinks.length){for(var t=0;t<n.AllLinks.length;t++)l.deletedLinks[n.AllLinks[t].IdC]=!0;l.deletedTasks[n.IdC]={Dependencies:n.AllLinks,Deleted:!1}}},isLinkDeleted:function(n){return!angular.isUndefined(l.deletedLinks[n])},handleData:function(n){var i,t,r;if(l.chartData={},n){if(n.CalendarDays&&n.CalendarDays.length)for(l.holidays={},t=0;t<n.CalendarDays.length;t++)(i=n.CalendarDays[t],i.Holiday)&&(l.holidays[i.Day.getTime()]=!0);if(n.DimensionItems&&n.DimensionItems.length)for(t=0;t<n.DimensionItems.length;t++)r=n.DimensionItems[t],l.setItem(r.IdC,r)}},updateTotalBudget:function(n){var i,t;if(n&&(n.TotalBudgetHours=0,n.TotalBudgetDays=0,n.BudgetPeriods&&n.BudgetPeriods.length))for(i=0;i<n.BudgetPeriods.length;i++)t=n.BudgetPeriods[i],t.Hours&&(n.TotalBudgetHours+=t.Hours),t.Days&&(n.TotalBudgetDays+=t.Days)},updateZoomLevels:function(n,t){var u,f,o,s,i,r;if(l.enabledZoomLevels={day:!0,week:!0,month:!0,threeMonths:!0,year:!0},u=new Date,f=new Date,l.chartData){for(o in l.chartData)s=l.chartData[o],i=l.getItemDateRange(s,n,t),i.startDate&&i.startDate.getTime()<u.getTime()&&(u=i.startDate),i.endDate&&i.endDate.getTime()>f.getTime()&&(f=i.endDate);r=e.getDateDifference(f,u).days;r>10&&(l.enabledZoomLevels.day=!1);r>100&&(l.enabledZoomLevels.week=!1);(r>500||r<10)&&(l.enabledZoomLevels.month=!1);(r>1e3||r<100)&&(l.enabledZoomLevels.threeMonths=!1)}},getItemDateRange:function(t,i,r){var f=t.EndDate&&t.StartDate?e.getDateDifference(t.EndDate,t.StartDate).days:0,u={startDate:t.StartDate||null,endDate:t.EndDate||null};return f>1e3&&(t.StartDate.getTime()>i.getTime()?u.endDate=n.moment(t.StartDate).add(999).toDate():t.EndDate.getTime()<r.getTime()?u.startDate=n.moment(t.EndDate).add(-999).toDate():(u.startDate=new Date(i.getTime()),u.endDate=new Date(r.getTime()))),u},getDimensionItemIdC:function(n){return l.ganttIDToDimensionItemID[n]},setDimensionItemIdC:function(n,t){l.ganttIDToDimensionItemID[n]=t},setItem:function(n,t){var y=l.dimensionItemsByID[n],r,o,v,c,u,a,f,e,s,h,i;if(l.dimensionItemsByID[n]=t,r=l.dimensionsByID[t.DimensionIdC],l.chartData[n]=t,o=[],t.AllPersons=null,t.Persons&&o.push(t.Persons),t.Roles)for(i=0;i<t.Roles.length;i++)v=t.Roles[i],v.Persons&&o.push(v.Persons);for(t.TotalBudgetDaysForPeriods=0,t.TotalBudgetHoursForPeriods=0,t.TotalResourcedDaysForPeriods=0,t.TotalResourcedHoursForPeriods=0,t._valid=!0,i=0;i<o.length;i++)for(c=0;c<o[i].length;c++){if(u=o[i][c],t.AllPersons||(t.AllPersons=[]),t.AllPersons.push(u),u.TotalResourcedHours=0,u.TotalResourcedDays=0,u.Periods)for(a=0;a<u.Periods.length;a++)f=u.Periods[a],u.TotalResourcedHours+=f.Unit==1?f.Hours?f.Hours:0:0,u.TotalResourcedDays+=f.Unit==2?f.Days?f.Days:0:0;t.TotalResourcedHoursForPeriods+=u.TotalResourcedHours;t.TotalResourcedDaysForPeriods+=u.TotalResourcedDays}if(t.BudgetPeriods)for(i=0;i<t.BudgetPeriods.length;i++)e=t.BudgetPeriods[i],t.TotalBudgetHoursForPeriods+=e.Unit==1?e.Hours?e.Hours:0:0,t.TotalBudgetDaysForPeriods+=e.Unit==2?e.Days?e.Days:0:0;if(t.ResourcingPercentageHours=t.TotalBudgetHoursForPeriods!=0?100*t.TotalResourcedHoursForPeriods/t.TotalBudgetHoursForPeriods:100,t.ResourcingPercentageDays=t.TotalBudgetDaysForPeriods!=0?100*t.TotalResourcedDaysForPeriods/t.TotalBudgetDaysForPeriods:100,y){if(t.DimensionIdC&&!t.Dimension)if(t.Dimension=r,r.DimensionItems){for(h=!1,i=0;i<r.DimensionItems.length;i++)if(r.DimensionItems[i].IdC==n){r.DimensionItems[i]=t;h=!0;break}h||r.DimensionItems.push(t)}else r.DimensionItems=[t];if(t.ParentIdC&&!t.Parent&&(t.Parent=l.dimensionItemsByID[t.ParentIdC],t.Parent))if(t.Parent.SubItems){for(h=!1,i=0;i<t.Parent.SubItems.length;i++)if(t.Parent.SubItems[i].IdC==n){t.Parent.SubItems[i]=t;h=!0;break}h||t.Parent.SubItems.push(t)}else t.Parent.SubItems=[t];angular.isUndefined(t.subItemsVisible)&&(t.subItemsVisible=y.subItemsVisible)}else r&&(r.DimensionItems?r.DimensionItems.push(t):r.DimensionItems=[t],t.Dimension=r),l.dimensionItems?l.dimensionItems.push(t):l.dimensionItems=[t],l.dimensionItemsByID[t.IdC]=t,s=t.ParentIdC?l.dimensionItemsByID[t.ParentIdC]:null,
1s&&(s.SubItems?s.SubItems.push(t):s.SubItems=[t],t.Parent=s)},updateItemDateRange:function(n,t,i){var r=l.chartData[n.IdC],u;r&&(u=l.getItemDateRange(n,t,i),r.StartDate=u.startDate,r.EndDate=u.endDate)},updateTemplate:function(n){var t=l.dimensionsByID[n.DimensionIdC];t&&t.Templates.push(n)},removeItem:function(n){var t=n.ParentDimensionItem,i;if(t&&t.SubItems&&t.SubItems.length)for(i=0;i<t.SubItem.length;i++)if(t.SubItems[i].IdC==n.IdC){t.SubItem.splice(i,1);break}delete l.chartData[n.IdC];delete l.dimensionItemsByID[n.IdC]},setDimensions:function(n){var r,e,t,u,o,f,i;if(l.dimensions=n,l.topLevelDimensions=[],n&&n.length)for(r={},e=0;e<n.length;e++){if(t=n[e],u=0,t.ParentIdC?r[t.ParentIdC]&&(u=r[t.ParentIdC],r[t.IdC]=u+1):r[t.IdC]=u+1,t.Level=u,t.Level==0&&t.UsedInResourcing&&(l.topLevelDimensions.push(t),t.TopLevel=!0,t.FilterDimensions=[]),l.dimensionsByID[t.IdC]=t,t.Templates)for(o=0;o<t.Templates.length;o++)f=t.Templates[o],f.Name=f.TemplateName,l.templatesByID[f.IdC]=f;else t.Templates=[];t.ParentIdC&&(i=l.dimensionsByID[t.ParentIdC],i&&(t.ParentDimension=i,t.TopLevelParent=i.TopLevel?i:i.TopLevelParent,t.FilterDimension&&t.TopLevelParent&&t.TopLevelParent.FilterDimensions.push(t),i.SubDimensions?i.SubDimensions.push(t):i.SubDimensions=[t]))}},removeDimensionItems:function(){if(l.dimensionItems=[],l.dimensionItemsByID={},l.dimensions&&l.dimensions.length)for(var n=0;n<l.dimensions.length;n++)l.dimensions[n].DimensionItems=null},setFilters:function(n){var u,t,i,r;if(l.removeDimensionItems(),n&&n.length)for(u=0;u<n.length;u++)t=n[u],i=l.dimensionsByID[t.DimensionIdC],i&&(i.DimensionItems?i.DimensionItems.push(t):i.DimensionItems=[t],t.Dimension=i),l.dimensionItems.push(t),l.dimensionItemsByID[t.IdC]=t,r=t.ParentIdC?l.dimensionItemsByID[t.ParentIdC]:null,r&&(r.SubItems?r.SubItems.push(t):r.SubItems=[t],t.Parent=r)},setItems:function(n){var i,t,r;if(n){if(n.CalendarDays&&n.CalendarDays.length)for(l.holidays={},t=0;t<n.CalendarDays.length;t++)(i=n.CalendarDays[t],i.Holiday)&&(l.holidays[i.Day.getTime()]=!0);if(n.DimensionItems&&n.DimensionItems.length)for(t=0;t<n.DimensionItems.length;t++)r=n.DimensionItems[t],l.setItem(r.IdC,r)}},getCurrentDimension:function(){var n=null;return l.getSelectedParent()?(n=l.getSelectedParent().Dimension,n&&n.SubDimensions&&n.SubDimensions.length?n.SubDimensions[0]:null):(l.topLevelEditorDimension!=null&&(n=l.topLevelEditorDimension),n)},getEmptyItemText:function(){var n=l.getCurrentDimension();return n?o.getText("RESOURCING.NEW_LABEL")+" "+n.DimensionName.toLowerCase():"?"},prepareDataForShowing:function(n,t){var r=gantt._pull[n.IdC],tt=!1,g,c,b,k,a,e,v,y,p,u,f,d,nt,i,w;r||(r={id:n.IdC,permission_type:n.CurrentUserPermissionType},tt=!0);r._editItem=n;l.prepareOriginalValues(n,l.resourceDimensionItemFields,l.subCollections,l.subObjects);g={Read:!0,Modify:r.permission_type>=4,Remove:r.permission_type>=8};n.CurrentUserPermissions=g;c=n.Settings&&n.Settings.length?n.Settings[0]:{PeriodType:0,Properties:0};
1n.CurrentSettings={PeriodType:c.PeriodType,PlanningUnit:c.PlanningUnit,Properties:{}};b=h.getEnum("ResourcingSettingProperty");k=Number(c.Properties);for(a in b)e=Number(b[a]),n.CurrentSettings.Properties[a]={Value:(k&e)==e?!0:!1,Name:"RESOURCING.SETTING_PROPERTY_"+a.toUpperCase(),ValueLabel:(k&e)==e?"GLOBAL.YES":"GLOBAL.NO"};if(angular.isUndefined(t)||typeof t=="string"||(n.CurrentUserPermissions={Read:!0,Modify:!0,Remove:!0}),n.DimensionIdC&&(n.Dimension=l.getDimension(n.DimensionIdC)),n.StartDateEmpty&&(n.StartDate=r.start_date),n.EndDateEmpty&&(n.EndDate=r.end_date),l.selectedDimensionItemIdC=n.IdC,v=l.getParentChain(n),n.Roles)for(i=0;i<n.Roles.length;i++)n.Roles[i].RoleSaved=!0;else n.Roles=[];if(y=o.getText("RESOURCING.NO_ROLE_LABEL"),n.Roles.push({NoRole:!0,IdC:"norole",RoleName:y,Texts:[{Name:y,LanguageIdC:o.getCurrentLanguageIdC()}],Persons:n.Persons,RoleSaved:!0}),n.Notifications=[],n.AllPersons=[],n.PersonMap={},n.Roles&&n.Roles.length)for(y=o.getText("RESOURCING.NO_ROLE_LABEL"),i=0;i<n.Roles.length;i++)if(n.Roles[i].Persons&&n.Roles[i].Persons.length)for(p=0;p<n.Roles[i].Persons.length;p++)u=n.Roles[i].Persons[p],n.AllPersons.push(n.PersonMap[u.IdC]={IdC:u.IdC,EmployeeIdC:u.EmployeeIdC,Lastname:u.Lastname,Firstname:u.Firstname,Rolename:n.Roles[i].NoRole?"RESOURCING.NO_ROLE_LABEL":n.Roles[i].RoleName,RoleIdC:n.Roles[i].IdC,Anonymous:u.Anonymous});if(n.AllPersons.sort(function(n,t){return n.Lastname<t.Lastname?-1:n.Lastname>t.Lastname?1:0}),f="",v)while(v.length)d=v.pop(),nt=d.Code+" "+d.Name,f.length>0&&(f+=" > "),f+=nt;if(f.length>0&&(f+=" > "),n.PathText=f,n.Text=n.Code?n.Code+" "+n.DimensionItemName:"<"+l.getEmptyItemText()+">",angular.isUndefined(t)||typeof t=="string"||(n._ganttID=t),n.TotalActualHours=0,n.ActualHoursTitle="",n.ActualHours&&n.ActualHours.length)for(i=0;i<n.ActualHours.length;i++)w=n.ActualHours[i],n.ActualHoursTitle!=""&&(n.ActualHoursTitle+=",\n"),n.ActualHoursTitle+=o.getText("RESOURCING.ACTUALS_TYPE_"+h.getKey("WorkHoursType",w.Type).toUpperCase())+": "+s.getFormattedHours(w.Hours),n.TotalActualHours+=Number(w.Hours);l.updateTotalBudget(n);n._readinessEditor=!1;n._newReadiness=n.Completed;n._newReadinessTimeStamp=new Date},prepareOriginalValuesOfCollection:function(n,t,i){var r,u,f,e,o;if(n&&n.length)for(r=0;r<n.length;r++)if(u=n[r],u._originalValues=l.copyValues(u,t),i)for(f=0;f<i.length;f++)e=i[f],o=u[e.name],o&&l.prepareOriginalValuesOfCollection(o,e.fieldNames,e.subCollections)},prepareOriginalValues:function(n,t,i,r){var f,s,u,o,e;if(n._originalValues=l.copyValues(n,t),i)for(u=0;u<i.length;u++)f=i[u],s=n[f.name],l.prepareOriginalValuesOfCollection(s,f.fieldNames,f.subCollections,f.subObjects);if(r)for(u=0;u<r.length;u++)o=r[u],e=n[o.name],e&&(e._originalValues=l.copyValues(e,o.fieldNames))},getParentChain:function(n){var i,r,t;if(!n)return null;if(i=[],n.Parents)for(r=0;r<n.Parents.length;r++)t=n.Parents[r],t.IdC!=n.IdC&&i.push({IdC:t.IdC,Name:o.getCurrentLanguageText(t.Texts,"Name"),Code:t.Code});else if(n.Parent)for(t=n.Parent;t;)t.IdC&&i.push({IdC:t.IdC,Name:o.getCurrentLanguageText(t.Texts,"Name"),Code:t.Code}),t=t.Parent;return i},copyValues:function(n,t){for(var u,i,f,e,o,s={},h=angular.extend({},n),r=0;r<t.length;r++){if(u=t[r],i=h[u],i)if(i.getTime)i=new Date(i.getTime());else if(typeof i=="object"){i.length&&(i=null);f=[];for(e in i)o=i[e],typeof o=="string"&&f.push(e+"="+o);i=f.join("&")}s[u]=i}return s},loadPrintItem:function(n,i,u){var f=r.defer();return e.handleHttpPost(t.post(l.controllerUrl+"/PrintItem",{idc:n},{transformResponse:function(n){return JSON.parse(n)}}),function(n){l.processPrintItem(n);f.resolve(n)},f,l.usedInDefault,i,u),f.promise},processPrintItem:function(n){var u,e,s,r,c,t,i,h,f;if(n.SubItemsExist=n.SubItems&&n.SubItems.length,n.Base64EncodedID=n.UrlIdC,n.Name=n.DimensionItemName,n.Description=n.DimensionItemDescription,n.AutoGeneratingSettings&&n.AutoGeneratingSettings.length)for(t=0;t<n.AutoGeneratingSettings.length;t++)u=n.AutoGeneratingSettings[t],u.GenerateBy==3&&!n["DimensionItemCode_"+u.DimensionCode]&&u.GenerateDimensionItem&&(n["DimensionItemName_"+u.DimensionCode]=o.getCurrentLanguageText(u.GenerateDimensionItem.Texts,"Name"),n["DimensionItemCode_"+u.DimensionCode]=u.GenerateDimensionItem.Code);
1if(n.SubItems&&n.SubItems.length)for(e=0,s=!1,t=0;t<n.SubItems.length;t++)r=n.SubItems[t],r.Base64EncodedID=r.UrlIdC,r.Name=o.getCurrentLanguageText(r.Texts,"Name"),r.Description=o.getCurrentLanguageText(r.Texts,"Description"),e++,e==8?(r.AddPageBreakAfter=!0,s=!0):e>8&&(s&&(r.AddPageBreakBefore=!0,s=!1),c=e-8,c%11==0&&(r.AddPageBreakAfter=!0,s=!1));if(n.Parents&&n.Parents.length)for(t=0;t<n.Parents.length;t++)if(i=n.Parents[t],n["ParentName_"+i.DimensionCode]=o.getCurrentLanguageText(i.Texts,"Name"),n["ParentCode_"+i.DimensionCode]=i.Code,n["ParentCode2_"+i.DimensionCode]=i.Code2,i.Defaults&&i.Defaults.length)for(h=0;h<i.Defaults.length;h++)f=i.Defaults[h],n["DimensionItemCode_"+f.DimensionCode]||(n["DimensionItemName_"+f.DimensionCode]=o.getCurrentLanguageText(f.Texts,"Name"),n["DimensionItemCode_"+f.DimensionCode]=f.Code)},processResourceDimensionItem:function(n){var i=[],p=0,y,f,u,s,h,c,a,v,r,t;if(n.IdC&&typeof n.IdC=="string"&&(y=l.getItem(n.IdC),y&&!y.Texts&&n.Texts)){y.Texts=angular.copy(n.Texts);for(f in n)(u=n[f],u)&&f!="Dimension"&&f!="Texts"&&f!="SubItems"&&f!="Parent"&&(s=null,typeof u=="object"?u.getTime?s=new Date(u.getTime()):u.length||(s=angular.copy(u)):s=typeof u=="string"?""+u:u,s&&(y[f]=s))}if(n.Roles&&n.Roles.length)for(t=0;t<n.Roles.length;t++)n.Roles[t].Persons&&n.Roles[t].Persons.length&&(i=i.concat(n.Roles[t].Persons)),n.Roles[t].Unit==1&&(p+=n.Roles[t].Quantity);if(n.Persons&&n.Persons.length&&(i=i.concat(n.Persons)),n.Resourced=Math.round(p>0?i.length/p*100:0),n.Length=e.getDateDifference(n.EndDate,n.StartDate).days+1,n.Readiness&&n.Readiness.length?(n.Completed=n.Readiness[0].Percentage,n.ReadinessTimeStamp=n.Readiness[0].TimeStamp):(n.Completed=0,n.ReadinessTimeStamp=null),!n.ReasonCode&&n.Settings&&n.Settings.length)for(t=0;t<n.Settings.length;t++)h=n.Settings[t],h.DefaultReasonCodeIdC&&h.ReasonCode&&(n.ReasonCode={IdC:h.DefaultReasonCodeIdC,Code:h.ReasonCode.Code,ReasonCodeName:o.getCurrentLanguageText(h.ReasonCode.Texts,"Name")},n.Changed=!0);for(n.StartTime=n.StartDate&&n.StartDate.getTime?new Date(n.StartDate.getTime()):n.StartDate,n.EndTime=n.EndDate&&n.EndDate.getTime?new Date(n.EndDate.getTime()):n.EndDate,n.AutoGeneratingSettings=l.processSettings(n.AutoGeneratingSettings),n.InheritedAutoGeneratingSettings=l.processSettings(n.InheritedAutoGeneratingSettings),l.processReasonCodes(n.ReasonCodes),t=0;t<i.length;t++)i[t].UseDaySettings=i[t].Days&&i[t].Days.length?!0:!1,i[t].UsePeriodSettings=i[t].Periods&&i[t].Periods.length?!0:!1,i[t].StartTime=i[t].StartDate&&i[t].StartDate.getTime?new Date(i[t].StartDate.getTime()):i[t].StartDate,i[t].EndTime=i[t].EndDate&&i[t].EndDate.getTime?new Date(i[t].EndDate.getTime()):i[t].EndDate,c=n.StartDate,i[t].StartDate&&i[t].StartDate.getTime()>n.StartDate.getTime()&&(c=i[t].StartDate),a=i[t].EndDate,i[t].EndDate&&i[t].EndDate.getTime()<n.EndDate.getTime()&&(a=i[t].EndDate),c=e.getDateOnly(c),a=e.getDateOnly(a),i[t].Days=l.processDays(c,a,i[t].Days),i[t].Periods=l.processPeriods(c,a,i[t].Periods),i[t].AutoGeneratingSettings=l.processSettings(i[t].AutoGeneratingSettings,4);if(n.ForwardLinksStartToStart=[],n.ForwardLinksFinishToFinish=[],n.BackwardLinksStartToStart=[],n.BackwardLinksFinishToFinish=[],n.AllLinks=[],n.ForwardLinks&&n.ForwardLinks.length){for(v=[],t=0;t<n.ForwardLinks.length;t++){r=n.ForwardLinks[t];n.AllLinks.push(r);switch(r.LinkType){case 0:v.push(r);break;case 1:n.ForwardLinksStartToStart.push(r);break;case 2:n.ForwardLinksFinishToFinish.push(r)}}n.ForwardLinks=v}if(n.BackwardLinks&&n.BackwardLinks.length){for(v=[],t=0;t<n.BackwardLinks.length;t++){r=n.BackwardLinks[t];n.AllLinks.push(r);switch(r.LinkType){case 0:v.push(r);break;case 1:n.BackwardLinksStartToStart.push(r);break;case 2:n.BackwardLinksFinishToFinish.push(r)}}n.BackwardLinks=v}if(n.NoBackwardLinks=!n.BackwardLinks||!n.BackwardLinks.length,n.NoBackwardLinksStartToStart=!n.BackwardLinksStartToStart||!n.BackwardLinksStartToStart.length,n.NoBackwardLinksFinishToFinish=!n.BackwardLinksFinishToFinish||!n.BackwardLinksFinishToFinish.length,n.NoForwardLinks=!n.ForwardLinks||!n.ForwardLinks.length,n.NoForwardLinksStartToStart=!n.ForwardLinksStartToStart||!n.ForwardLinksStartToStart.length,n.NoForwardLinksFinishToFinish=!n.ForwardLinksFinishToFinish||!n.ForwardLinksFinishToFinish.length,n.NoLinksStartToStart=n.NoBackwardLinksStartToStart&&n.NoForwardLinksStartToStart,n.NoLinksFinishToFinish=n.NoBackwardLinksFinishToFinish&&n.NoForwardLinksFinishToFinish,n.NoLinks=n.NoForwardLinks&&n.NoBackwardLinks&&n.NoLinksStartToStart&&n.NoLinksFinishToFinish,n.PermissionType=n.Permissions&&n.Permissions.length?2:1,(!n.Permissions||!n.Permissions.length)&&(n.Permissions||(n.Permissions=[]),n.InheritedPermissions))for(t=0;t<n.InheritedPermissions.length;t++)n.Permissions.push({IdC:e.getNewID(),Name:n.InheritedPermissions[t].Name,Code:n.InheritedPermissions[t].Code,UserGroupIdC:n.InheritedPermissions[t].UserGroupIdC,UserIdC:n.InheritedPermissions[t].UserIdC,PermissionType:n.InheritedPermissions[t].PermissionType,TypeName:n.InheritedPermissions[t].TypeName,DimensionItemPermission:n.InheritedPermissions[t].DimensionItemPermission,InheritedPermission:n.InheritedPermissions[t].DimensionItemPermission,Inherited:!0})},processReasonCodes:function(n){if(l.generateReasonCodeByNames||(l.generateReasonCodeByNames=[o.getText("RESOURCING.GENERATEBY_CUSTOM_LABEL"),o.getText("RESOURCING.GENERATEBY_PLANNED_HOURS_LABEL")]
1),n)for(var t=0;t<n.length;t++)n[t].GenerateByName=l.generateReasonCodeByNames[n[t].GenerateBy]},processSettings:function(n,t){var s,h,u,i,r,f,e;if(t||(t=0),l.generateByNames||(l.generateByNames=[o.getText("RESOURCING.GENERATEBY_NONE_LABEL"),o.getText("RESOURCING.GENERATEBY_EMPLOYEEDEFAULT_LABEL"),o.getText("RESOURCING.GENERATEBY_EMPLOYEEMAIN_LABEL"),o.getText("RESOURCING.GENERATEBY_CUSTOM_LABEL"),o.getText("RESOURCING.GENERATEBY_DEFAULT_LABEL")]),s=[],h={},n)for(i=0;i<n.length;i++)h[n[i].DimensionIdC]=n[i];if(u=l.getNonResourcingDimension(),u)for(i=0;i<u.length;i++){if(r=null,f=h[u[i].IdC],r=f?{IdC:f.IdC,GenerateBy:f.GenerateBy,DimensionItemIdC:f.GenerateDimensionItem?f.GenerateDimensionItem.IdC:null,GenerateDimensionItem:f.GenerateDimensionItem}:{IdC:null,GenerateBy:t},r.GenerateByName=l.generateByNames[r.GenerateBy],r.DimensionIdC=u[i].IdC,r.Texts=[],u[i].Texts&&u[i].Texts.length)for(e=0;e<u[i].Texts.length;e++)r.Texts.push({DimensionName:u[i].Texts[e].Name,LanguageIdC:u[i].Texts[e].LanguageIdC});r.GenerateDimensionItem&&r.GenerateDimensionItem.Texts&&(r.GenerateDimensionItem.DimensionItemName=o.getCurrentLanguageText(r.GenerateDimensionItem.Texts,"Name"));r.DimensionName=o.getCurrentLanguageText(u[i].Texts,"Name");s.push(r)}return s.sort(function(n,i){return n.GenerateBy==t&&i.GenerateBy==t||n.GenerateBy!=t&&i.GenerateBy!=t?n.DimensionName<i.DimensionName?-1:1:i.GenerateBy==t?-1:1}),s},processDays:function(n,t,i){for(var s,h,f,o,c=e.getDateDifference(t,n),u=[],r=0;r<c.days+1;r++)s=e.addDays(n,r),u.push({Date:s,StartTime:new Date(s.getTime()),EndTime:new Date(s.getTime()),Selected:i==null||i.length==0});if(i){for(h={},r=0;r<i.length;r++)(i[r].Date||(i[r].Date=e.getDateOnly(i[r].StartTime)),f=e.getDateDifference(i[r].Date,n).days,f<0||f>=u.length)||(i[r].Deleted||i[r].Selected==!1?h[f]=!1:(h[f]=!0,o=u[f],o.IdC=i[r].IdC,o._personDay=i[r],o.StartTime=i[r].StartTime,o.EndTime=i[r].EndTime,o.Selected=!0));for(r=0;r<u.length;r++)h[r]||(u[r].Selected=!1)}return u},processPeriods:function(n,t,i){return i},getNonResourcingDimension:function(){var t,n;if(!l.dimensions)return null;for(t=[],n=0;n<l.dimensions.length;n++)l.dimensions[n].UsedInResourcing||t.push({IdC:l.dimensions[n].IdC,Texts:angular.copy(l.dimensions[n].Texts)});return t},setChangedFlag:function(n,t,i){var s,h,r,u,f,o;if(n.IdC&&typeof n.IdC=="string"){if(!n||!n._originalValues)return;s=e.getHashCode(n._originalValues);h=e.getHashCode(l.copyValues(n,t));n.Changed=s!=h}else n.Changed=!0;if(i)for(r=0;r<i.length;r++)if(u=i[r],f=n[u.name],f)for(o=0;o<f.length;o++)l.setChangedFlag(f[o],u.fieldNames,u.subCollections)},getDateOffset:function(n){var t,i,r;return!n.IdC||typeof n.IdC!="string"?null:!n||!n._originalValues?null:n._originalValues.StartDateEmpty||n._originalValues.EndDateEmpty?null:(t=n._originalValues.StartDate,i=n._originalValues.EndDate,!t||!t.getTime||!i||!i.getTime)?null:!n.StartDate||!n.StartDate.getTime||!n.EndDate||!n.EndDate.getTime?null:(r={start:n.StartDate.getTime()-t.getTime(),end:n.EndDate.getTime()-i.getTime()},!r.start&&!r.end)?null:r},scaleItem:function(n,t){if(!t||!t.start&&!t.end)return n;var i=-1*t.start+t.end;return i||(n.StartDate=new Date(n.StartDate.getTime()+t.start),n.EndDate=new Date(n.EndDate.getTime()+t.end)),n},saveItem:function(n,t,i){return l.saveCallback?l.saveCallback(n,t,i):!1},deleteItem:function(n){l.deleteCallback&&l.deleteCallback(n)},editSettings:function(n,t){var i=r.defer(),u=f.open({templateUrl:"MVC/modals/Resourcing/resourcingSettingsEditor.html",controller:"resourcingSettingsEditorModalController",backdrop:"static",windowClass:"resourcingSettingsEditor",resolve:{SettingParents:function(){return n},TemplatePermissions:function(){return t}}});return u.result.then(function(n){i.resolve(n)}),i.promise},prepareEditItemForSave:function(n,t,i){var r=null,h,e,f,o;if(i=="deleted"?(r={IdC:n.IdC,ItemType:"task",Deleted:!0},r.IdC||(r.IdC=l.ganttIDToDimensionItemID[t.id])):r={IdC:typeof n.IdC=="string"?n.IdC:null,Code:n.Code,StartDate:n.StartDateEmpty?null:n.StartDate,EndDate:n.EndDateEmpty?null:n.EndDate,ParentIdC:n.ParentIdC,PlannedHours:n.PlannedHours,PlannedDays:n.PlannedDays,DailyHours:n.DailyHours,Priority:n.Priority,Description:n.Description,ReasonCode:n.ReasonCode,ResourceDimensionTemplateIdC:n.ResourceDimensionTemplateIdC,DimensionIdC:n.DimensionIdC,StartDateEmpty:n.StartDateEmpty,EndDateEmpty:n.EndDateEmpty,DefaultDimensionItemsInherited:n.DefaultDimensionItemsInherited,Deleted:!1,ItemType:"task",DatesOnly:!1},h=null,n.Roles&&(h=n.Roles[n.Roles.length-1],n.Persons=h.Persons,n.Roles.splice(n.Roles.length-1,1)),l.setChangedFlag(n,l.resourceDimensionItemFields,l.subCollections),e=l.getDateOffset(n),e&&(f=l.getItem(n.IdC),f&&f.SubItems&&f.SubItems.length)){for(r.SubItems=[],o=0;o<f.SubItems.length;o++){var s=f.SubItems[o],c=l.getItem(s.IdC),u=l.scaleItem({IdC:s.IdC,StartDate:s.StartDate,EndDate:s.EndDate,DatesOnly:!0,Changed:!0},e);u.EndDate>n.EndDate&&(u.EndDate=new Date(n.EndDate.getTime()));u.StartDate<n.StartDate&&(u.StartDate=new Date(offset.StartDate.getTime()));u.StartDate>u.EndDate&&(u.StartDate=new Date(n.StartDate.getTime()),u.EndDate=new Date(n.EndDate.getTime()));r.SubItems.push(u);c.StartDate=new Date(u.StartDate.getTime());c.EndDate=new Date(u.EndDate.getTime())}t._dateOffset=e}return r.Changed=n.Changed,r.ReasonCodes=l.prepareReasonCodesForSave(n.ReasonCodes),r.Roles=l.prepareRolesForSave(n.Roles),r.Persons=l.preparePersonsForSave(n.Persons),r.Permissions=l.preparePermissionsForSave(n.Permissions,n.PermissionType),r.AutoGeneratingSettings=l.prepareAutoGeneratingSettingsForSave(n.AutoGeneratingSettings),r.Files=l.prepareFilesForSave(n.Files),r.Breaks=l.prepareBreaksForSave(n.Breaks),r.Dependencies=l.prepareDependenciesForSave(n),r.Readiness=l.prepareReadinessForSave(n.Readiness),r.BudgetPeriods=l.prepareBudgetPeriodsForSave(n.BudgetPeriods),r.Texts=l.prepareTextsForSave(n.Texts),n._readinessEditor&&(r.Readiness||(r.Readiness=[]),r.Readiness.push({IdC:null,Percentage:n._newReadiness,TimeStamp:n._newReadinessTimeStamp,Changed:!0})),r},prepareGanttTaskForSave:function(n,t){var i=null,u,r,f;return i=t=="deleted"?{IdC:n.id,ItemType:"task",Deleted:!0}
1:{IdC:typeof n.id=="string"?n.id:null,Code:n.code,StartDate:gantt.date.parseDate(n.start_date,"xml_date"),EndDate:new Date(gantt.date.parseDate(n.end_date,"xml_date").getTime()-864e5),ParentIdC:n.parent,PlannedHours:n.planned_hours,PlannedDays:n.planned_days,DailyHours:n.daily_hours,Priority:n.priority,Name:n.name,Description:n.description,ReasonCode:n.reason_code,DefaultDimensionItemsInherited:!0,Deleted:!1,Changed:!0,ItemType:"task",DatesOnly:!0},(t=="delete"||t=="deleted")&&(i.IdC||(i.IdC=l.ganttIDToDimensionItemID[n.id]),n._editItem||(u=l.getItem(i.IdC),u&&u._new&&(i._new=!0))),r=n._editItem,r?(i.Name=r.Name,i.Description=r.Description,i.StartDate=r.StartDate,i.EndDate=r.EndDate,i.ReasonCode=r.ReasonCode,i.Priority=r.Priority,i.DailyHorus=r.DailyHours,i.PlannedHours=r.PlannedHours,i.PlannedDays=r.PlannedDays,i.StartDateEmpty=r.StartDateEmpty,i.EndDateEmpty=r.EndDateEmpty,t=="insert"&&(t="update")):i.DatesOnly=!0,t=="insert"?(i.Code="",i.Priority=0,i.PlannedHours=null,i.PlannedDays=null,i.DailyHours=0):r&&(f=null,r.Roles&&(f=r.Roles[r.Roles.length-1],r.Persons=f.Persons,r.Roles.splice(r.Roles.length-1,1)),l.setChangedFlag(r,l.resourceDimensionItemFields,l.subCollections),i.Changed=r.Changed,i.ReasonCodes=l.prepareReasonCodesForSave(r.ReasonCodes),i.Roles=l.prepareRolesForSave(r.Roles),i.Persons=l.preparePersonsForSave(r.Persons),i.Permissions=l.preparePermissionsForSave(r.Permissions),i.AutoGeneratingSettings=l.prepareAutoGeneratingSettingsForSave(r.AutoGeneratingSettings),i.Files=l.prepareFilesForSave(r.Files),i.Breaks=l.prepareBreaksForSave(r.Breaks),r._readinessEditor&&(i.Readiness||(i.Readiness=[]),i.Readiness.push({IdC:null,Percentage:r._newReadiness,TimeStamp:r._newReadinessTimeStamp,Changed:!0}))),i},prepareGanttLinkForSave:function(n,t){return{IdC:typeof n.id=="string"?n.id:null,ResourceDimensionItemFromIdC:n.source,ResourceDimensionItemToIdC:n.target,Type:n.type,Changed:t!="delete"&&t!="deleted",Deleted:t=="delete"||t=="deleted",ItemType:"link"}},prepareTextsForSave:function(n){var i=null,t;if(n&&n.length)for(i=[],t=0;t<n.length;t++)i.push({LanguageIdC:n[t].LanguageIdC,Name:n[t].Name,Description:n[t].Description});return i},prepareBudgetPeriodsForSave:function(n){var i=null,t;if(n&&n.length)for(i=[],t=0;t<n.length;t++)i.push({IdC:typeof n[t].IdC=="string"?n[t].IdC:null,StartDate:n[t].StartDate,EndDate:n[t].EndDate,Hours:n[t].Hours,Days:n[t].Days,Unit:n[t].Unit,Changed:n[t].Changed?!0:!1,Deleted:n[t].Deleted?!0:!1});return i},prepareReadinessForSave:function(n){var i=null,t;if(n&&n.length)for(i=[],t=0;t<n.length;t++)(typeof n[t].IdC!="string"||n[t].Deleted)&&i.push({IdC:n[t].IdC,Percentage:n[t].Percentage,Deleted:!0});return i},prepareDependenciesForSave:function(n){var t=[],r,i,u,f;for(n.ForwardLinks&&t.push(n.ForwardLinks),n.BackwardLinks&&t.push(n.BackwardLinks),n.ForwardLinksStartToStart&&t.push(n.ForwardLinksStartToStart),n.ForwardLinksFinishToFinish&&t.push(n.ForwardLinksFinishToFinish),n.BackwardLinksStartToStart&&t.push(n.BackwardLinksStartToStart),n.BackwardLinksFinishToFinish&&t.push(n.BackwardLinksFinishToFinish),r=null,i=0;i<t.length;i++)for(!r&&t[i]&&t[i].length&&(r=[]),u=0;u<t[i].length;u++)f=t[i][u],f.Deleted&&r.push({IdC:f.IdC,Deleted:!0});return r},prepareBreaksForSave:function(n){var i=null,t;if(n&&n.length)for(i=[],t=0;t<n.length;t++)i.push({IdC:typeof n[t].IdC=="string"?n[t].IdC:null,StartDate:n[t].StartDate,EndDate:n[t].EndDate,Deleted:n[t].Deleted?!0:!1,Changed:n[t].Changed?!0:!1});return i},prepareAutoGeneratingSettingsForSave:function(n,t){var r=null,i;if(t||(t=0),n&&n.length)for(r=[],i=0;i<n.length;i++)n[i].GenerateBy!=t?r.push({IdC:typeof n[i].IdC=="string"?n[i].IdC:null,DimensionIdC:n[i].DimensionIdC,GenerateBy:n[i].GenerateBy,GenerateDimensionItem:{IdC:n[i].GenerateDimensionItem&&n[i].GenerateDimensionItem.IdC?n[i].GenerateDimensionItem.IdC:null,DimensionIdC:n[i].DimensionIdC},Deleted:n[i].Deleted?!0:!1,Changed:n[i].Changed?!0:!1}):n[i].IdC&&r.push({IdC:n[i].IdC,DimensionIdC:n[i].DimensionIdC,GenerateBy:n[i].GenerateBy,Deleted:!0});return r},prepareFilesForSave:function(n){var i=null,t;if(n&&n.length)for(i=[],t=0;t<n.length;t++)i.push({IdC:typeof n[t].IdC=="string"?n[t].IdC:null,Reference:n[t].Reference?n[t].Reference:null,ReferenceType:n[t].ReferenceType,Texts:l.prepareTextsForSave(n[t].Texts),Description:n[t].Description,Deleted:n[t].Deleted?!0:!1,Changed:n[t].NoDescription||n[t].Changed?!0:!1});return i},prepareReasonCodesForSave:function(n){var i=null,t;if(n&&n.length)for(i=[],t=0;t<n.length;t++)i.push({IdC:typeof n[t].IdC=="string"?n[t].IdC:null,ReasonCodeIdC:n[t].ReasonCodeIdC,Value:n[t].GenerateBy==0&&n[t].Value?n[t].Value:null,Value2:n[t].GenerateBy==0&&n[t].Value2?n[t].Value2:null,Deleted:n[t].Deleted?!0:!1,Changed:n[t].Changed?!0:!1,GenerateBy:n[t].GenerateBy});return i},prepareRolesForSave:function(n){var i=null,t;if(n&&n.length)for(i=[],t=0;t<n.length;t++)i.push({IdC:typeof n[t].IdC=="string"?n[t].IdC:null,Demands:l.prepareDemandsForSave(n[t].Demands),Persons:l.preparePersonsForSave(n[t].Persons),Unit:n[t].Unit,Quantity:n[t].Quantity,Texts:l.prepareTextsForSave(n[t].Texts),Deleted:n[t].Deleted?!0:!1,Changed:n[t].Changed?!0:!1});return i},preparePermissionsForSave:function(n,t){var f=null,u,i,r;if(n&&n.length)for(f=[],u=t==1,i=0;i<n.length;i++)u&&typeof n[i].IdC!="string"||(r={IdC:typeof n[i].IdC=="string"?n[i].IdC:null,UserGroupIdC:n[i].UserGroupIdC?n[i].UserGroupIdC:null,UserIdC:n[i].UserIdC?
1n[i].UserIdC:null,PermissionType:n[i].PermissionType,DimensionItemPermission:n[i].DimensionItemPermission&&!n[i].DimensionItemPermissionDeleted?!0:!1,Deleted:n[i].Deleted?!0:u,Changed:n[i].Changed?!0:!1,DimensionItemPermissionChanged:n[i].DimensionItemPermissionChanged?!0:!1,DimensionItemPermissionDeleted:n[i].DimensionItemPermissionDeleted?!0:!1,DimensionItemPermissionIdC:typeof n[i].DimensionItemPermissionIdC=="string"?n[i].DimensionItemPermissionIdC:null},f.push(r),u||(n[i].Inherited&&n[i].DimensionItemPermission&&n[i].InheritedPermission==n[i].DimensionItemPermission&&delete r.DimensionItemPermission,n[i].Inherited&&n[i].Deleted&&(r.Deleted=!1,r.Changed=!0,r.PermissionType=0,delete r.DimensionItemPermission)));return f},preparePersonsForSave:function(n){var i=null,t;if(n&&n.length)for(i=[],t=0;t<n.length;t++)i.push({IdC:typeof n[t].IdC=="string"?n[t].IdC:null,EmployeeIdC:n[t].EmployeeIdC,Anonymous:n[t].Anonymous,StartDate:n[t].StartDate,EndDate:n[t].EndDate,Hours:n[t].Hours,Percentage:n[t].Percentage,Unit:n[t].Unit,AutoGeneratingSettings:l.prepareAutoGeneratingSettingsForSave(n[t].AutoGeneratingSettings),Days:l.prepareDaySettingsForSave(n[t].Days,n[t].UseDaySettings),Periods:l.preparePeriodSettingsForSave(n[t].Periods,n[t].UsePeriodSettings),Deleted:n[t].Deleted?!0:!1,Changed:n[t].Changed?!0:!1});return i},prepareDaySettingsForSave:function(n,t){var u=null,r,i,f;if(n&&n.length)for(u=[],r=0;r<n.length;r++)i=n[r],f={IdC:typeof i.IdC=="string"?n[r].IdC:null,StartTime:i.StartTime,EndTime:i.EndTime,Changed:i.Changed?!0:!1},t||(i.Selected=!1),i.Deleted&&(i.Selected=!1),i.Selected?u.push(f):typeof i.IdC=="string"&&(f.Deleted=!0,u.push(f));return u},preparePeriodSettingsForSave:function(n){var i=null,t;if(n&&n.length)for(i=[],t=0;t<n.length;t++)i.push({IdC:typeof n[t].IdC=="string"?n[t].IdC:null,StartDate:n[t].StartDate,EndDate:n[t].EndDate,Hours:n[t].Hours,Days:n[t].Days,Unit:n[t].Unit,Changed:n[t].Changed?!0:!1,Deleted:n[t].Deleted?!0:!1});return i},prepareDemandsForSave:function(n){var i=null,t;if(n&&n.length)for(i=[],t=0;t<n.length;t++)i.push({IdC:typeof n[t].IdC=="string"?n[t].IdC:null,DemandType:n[t].DemandType,OrganisationIdC:n[t].DemandType==1?n[t].OrganisationIdC:null,KnowhowIdC:n[t].DemandType==2?n[t].KnowhowIdC:null,KnowhowLevel:n[t].DemandType==2?n[t].KnowhowLevel:null,ComparisonMethod:n[t].DemandType==2?2:null,GroupItemIdC:n[t].DemandType==3?n[t].GroupItemIdC:null,Deleted:n[t].Deleted?!0:!1,Changed:n[t].Changed?!0:!1});return i},checkForReportData:function(n){if(!n.defer){var t=r.defer();n.defer=t}return u(function(){c.getInstance(n.queueIdC).then(function(t){var i=t?t.Data:null;i&&(i.Status<h.getValue("QueueStatus","Completed")?l.checkForReportData(n):n.defer.resolve())})},2e3),n.defer.promise}};return l.subCollections=[{name:"BudgetPeriods",fieldNames:l.budgetPeriodFields,subCollections:null},{name:"Persons",fieldNames:l.personFields,subCollections:[{name:"AutoGeneratingSettings",fieldNames:l.autoGeneratingSettingFields,subCollections:null},{name:"Days",fieldNames:l.dayFields,subCollections:null},{name:"Periods",fieldNames:l.periodFields,subCollections:null}]},{name:"Roles",fieldNames:l.roleFields,subCollections:[{name:"Persons",fieldNames:l.personFields,subCollections:[{name:"AutoGeneratingSettings",fieldNames:l.autoGeneratingSettingFields,subCollections:null},{name:"Days",fieldNames:l.dayFields,subCollections:null},{name:"Periods",fieldNames:l.periodFields,subCollections:null}]},{name:"Demands",fieldNames:l.demandFields,subCollections:null}]},{name:"Files",fieldNames:l.fileFields,subCollections:null},{name:"ReasonCodes",fieldNames:l.reasonCodeFields,subCollections:null},{name:"AutoGeneratingSettings",fieldNames:l.autoGeneratingSettingFields,subCollections:null},{name:"Permissions",fieldNames:l.permissionFields,subCollections:null},{name:"Breaks",fieldNames:l.breakFields,subCollections:null},{name:"Readiness",fieldNames:l.percentageFields,subCollections:null},{name:"Texts",fieldNames:l.textFields,subCollections:null},],l}]);angular.module("TiimaApp").factory("editorService",["$window","$http","$rootScope","$q",function(n,t,i,r){var u={editorData:null,options:{},editorScope:null,initDeferred:r.defer(),updateCallback:null,closeModalCallback:null,form:null,initEditor:function(n){u.editorScope=n;u.initDeferred.resolve()},onEditorEvent:function(n,t){u.initDeferred.promise.then(function(){u.editorScope.$on(n,t)})},registerUpdateCallback:function(n){u.updateCallback=n},registerCloseEditorModalCallback:function(n){u.closeModalCallback=n},setOptions:function(n){u.options=n},getOptions:function(){return u.options},setForm:function(n){u.form=n},getForm:function(){return u.form},setScopeParameter:function(n,t){u.initDeferred.promise.then(function(){u.editorScope[n]=t})},getScopeParameter:function(n){return u.editorScope?u.editorScope[n]:null},editorValueChanged:function(n,t,i){u.editorScope.$emit("valueChanged",n,t,i)},emitEvent:function(n){u.editorScope.$emit(n,callback)},showModal:function(n,t,i){u.editorData=n.then?null:n;var r=u.editorScope.showModal(u.editorData,t,i,n.then?n:null);return u.editorScope.$emit("initEditor",n),r},updateEditorData:function(n){n&&(u.editorData=n);u.updateCallback&&u.updateCallback(n)},closeEditorModal:function(){u.closeModalCallback&&u.closeModalCallback()},getEditorData:function(){return u.editorData}};return u}]);angular.module("TiimaApp").factory("resourcingSettingsService",["$q","tiimaEnumsService","localizationService","ResourcingSetting",function(n,t,i,r){var u={loading:!1,topLevel:null,settingsParent:null,settingsCache:{},loadingCallbacks:{first:null,queue:[]},settingsParentCallbacks:{first:null,queue:[]},prepareSettings:function(n){var u={Settings:[],Next:null,IdC:n.IdC,Changed:!1,Deleted:!1},e,s,o,h,a,v,r,f;if(u.InheritedSettings=!0,n){u.InheritedSettings=n.InheritedSettings;u.InheritedSettings?u.Owner={Code:n.Code,Texts:n.Texts}:(n.DimensionIdC&&(u.DimensionIdC=n.DimensionIdC),n.DimensionItemIdC&&(u.DimensionItemIdC=n.DimensionItemIdC));e={Name:"RESOURCING.PERIODTYPE_LABEL",Options:[],Value:n.PeriodType,Type:"radio"};
1s=t.getEnum("ShiftPlanningPeriodType");for(r in s)e.Options.push({Label:"RESOURCING.PERIODTYPE_"+r.toUpperCase(),Value:s[r]}),s[r]==e.Value&&(e.ValueLabel="RESOURCING.PERIODTYPE_"+r.toUpperCase());u.Settings.push(e);o={Name:"RESOURCING.PLANNINGUNIT_LABEL",Options:[],Value:n.PlanningUnit,Type:"radio"};h=t.getEnum("ResourcingPlanningUnit");for(r in h)o.Options.push({Label:"RESOURCING.PLANNINGUNIT_"+r.toUpperCase(),Value:h[r]}),h[r]==o.Value&&(o.ValueLabel="RESOURCING.PLANNINGUNIT_"+r.toUpperCase());u.Settings.push(o);var y=n.DefaultReasonCodeIdC&&n.ReasonCode?{IdC:n.DefaultReasonCodeIdC,Code:n.ReasonCode.Code,ReasonCodeName:i.getCurrentLanguageText(n.ReasonCode.Texts,"Name"),Texts:angular.copy(n.ReasonCode.Texts)}:null,c={Name:"RESOURCING.DEFAULTREASONCODE_LABEL",Options:[],Value:n.DefaultReasonCode,Type:"radio",ReasonCode:!0,DefaultReasonCode:y},l=t.getEnum("ResourcingSettingDefaultReasonCode");for(r in l)c.Options.push({Label:"RESOURCING.DEFAULTREASONCODE_"+r.toUpperCase(),Value:l[r]}),l[r]==c.Value&&(c.ValueLabel="RESOURCING.DEFAULTREASONCODE_"+r.toUpperCase());u.Settings.push(c);n.UnderResourcedColorCode||(n.UnderResourcedColorCode="#c72828");n.OverResourcedColorCode||(n.OverResourcedColorCode="#68a611");n.UnresourcedColorCode||(n.UnresourcedColorCode="#737373");u.Settings.push({Name:"RESOURCING.UNDER_RESOURCED_THRESHOLD",Options:null,Value:n.UnderResourcedThreshold,Type:"integer"});u.Settings.push({Name:"RESOURCING.OVER_RESOURCED_THRESHOLD",Options:null,Value:n.OverResourcedThreshold,Type:"integer"});u.Settings.push({Name:"RESOURCING.UNDER_RESOURCED_COLORCODE",Options:null,Value:n.UnderResourcedColorCode,Type:"color"});u.Settings.push({Name:"RESOURCING.OVER_RESOURCED_COLORCODE",Options:null,Value:n.OverResourcedColorCode,Type:"color"});u.Settings.push({Name:"RESOURCING.UNRESOURCED_COLORCODE",Options:null,Value:n.UnresourcedColorCode,Type:"color"});a=t.getEnum("ResourcingSettingProperty");v=Number(n.Properties?n.Properties:0);for(r in a)f=Number(a[r]),u.Settings.push({Name:"RESOURCING.SETTING_PROPERTY_"+r.toUpperCase(),Value:(v&f)==f?!0:!1,EnumValue:f,Type:"checkbox",ValueLabel:(v&f)==f?"GLOBAL.YES":"GLOBAL.NO"})}return u},prepareSettingsForSaving:function(){var r=[],a,o,i,s,f,n,e,l;for(a in u.settingsCache){for(o=u.settingsCache[a],i=o;i;)i.InheritedSettings||r.push(i),i=i.Next;for(i=o.Prev;i;)i.InheritedSettings||r.push(i),i=i.Prev}for(s=[],f=0;f<r.length;f++)if(n=r[f],!n.IdC||n.Changed||n.Deleted){var t={IdC:n.IdC,Changed:n.Changed,Deleted:n.Deleted},v=0,y=1,h=0,c=null,p=0,w=0,b=0,k="",d="",g="";if(n.Settings&&n.Settings.length)for(v=n.Settings[0].Value,y=n.Settings.length>1&&n.Settings[1].Value?n.Settings[1].Value:0,h=n.Settings.length>2&&n.Settings[2].Value?n.Settings[2].Value:0,h==2&&(c=n.Settings[2].DefaultReasonCode),w=n.Settings.length>3&&n.Settings[3].Value?n.Settings[3].Value:100,b=n.Settings.length>4&&n.Settings[4].Value?n.Settings[4].Value:100,k=n.Settings.length>5&&n.Settings[5].Value?n.Settings[5].Value:"#c72828",d=n.Settings.length>6&&n.Settings[6].Value?n.Settings[6].Value:"#68a611",g=n.Settings.length>7&&n.Settings[7].Value?n.Settings[7].Value:"#737373",e=8;e<n.Settings.length;e++)l=n.Settings[e],p+=l.Value?Number(l.EnumValue):0;n.IdC||(n.DimensionIdC?t.DimensionIdC=n.DimensionIdC:n.DimensionItemIdC&&(t.DimensionItemIdC=n.DimensionItemIdC));t.PeriodType=v;t.PlanningUnit=y;t.Properties=p;t.DefaultReasonCode=h;t.DefaultReasonCodeIdC=c?c.IdC:null;t.UnderResourcedThreshold=w;t.OverResourcedThreshold=b;t.UnderResourcedColorCode=k;t.OverResourcedColorCode=d;t.UnresourcedColorCode=g;s.push(t)}return s},loadSettings:function(t){u.setLoading(!0);var i=n.defer(),f=u.getCachedSettings(t);return f?(i.resolve(f),u.setLoading(!1)):r.getAll({DimensionIdC:t.DimensionIdC,DimensionItemIdC:t.DimensionItemIdC}).then(function(n){var r=null,f,e,o;if(n&&n.DataList){for(f=n.DataList,f.length||(f=[{PeriodType:0,Properties:0,InheritedSettings:t.DimensionItemIdC?!0:!1,DimensionIdC:t.DimensionIdC}],u.topLevel&&(f[0].Code=u.topLevel.Code,f[0].Texts=u.topLevel.Texts)),e=null,o=0;o<f.length;o++)r=u.prepareSettings(f[o]),e&&(r.Next=e,e.Prev=r),e=r;r&&u.cacheSettings(r,t)}i.resolve(r);u.setLoading(!1)},function(){i.reject()}),i.promise}
1,saveSettings:function(n){return r.saveBatch(n)},clearSettingsCache:function(){u.settingsCache={}},getCachedSettings:function(n){return u.settingsCache[u.getCacheParameters(n)]},cacheSettings:function(n,t){u.settingsCache[u.getCacheParameters(t)]=n},getCacheParameters:function(n){return[n.DimensionIdC?n.DimensionIdC:"-",n.DimensionItemIdC?n.DimensionItemIdC:"-"].join(";")},setSettingsParent:function(n){u.settingsParent||(u.topLevel=n);u.settingsParent=n;u.invoke(u.settingsParentCallbacks,arguments)},getSettingsParent:function(){return u.settingsParent},setLoading:function(n){u.loading=n;u.invoke(u.loadingCallbacks,arguments)},registerLoadingListener:function(n){u.registerListener(n,u.loadingCallbacks)},unRegisterLoadingListener:function(n){u.unRegisterListener(n,u.loadingCallbacks)},registerSettingsParentListener:function(n){u.registerListener(n,u.settingsParentCallbacks)},unRegisterSettingsParentListener:function(n){u.unRegisterListener(n,u.settingsParentCallbacks)},registerListener:function(n,t){t.first?t.queue.push(n):t.first=n},unRegisterListener:function(n,t){if(t.first==n)t.first=null,t.queue.length>0&&(t.first=t.queue.splice(0,1));else for(var i=0;i<t.queue.length;i++)if(t.queue[i]===n){t.queue.splice(i,1);return}},invoke:function(n,t){var r=this,i;if(n.first&&n.first.apply(r,t),n.queue)for(i=0;i<n.queue.length;i++)n.queue[i].apply(r,t)}};return u}]);angular.module("TiimaApp").factory("approvingHoursSettingsService",["$q","tiimaEnumsService","ApprovingHoursSetting",function(n,t,i){var r={loading:!1,topLevel:null,settingsParent:null,settingsCache:{},settingsParentCallbacks:{first:null,queue:[]},resolveSettings:function(n){var i,f,u,e,h,o,s;if(n.length&&(n=n[n.length-1]),i={},!n)return i;if(n.Next&&r.floodTopLevelProperties(n),n.Settings)for(f=0;f<n.Settings.length;f++)u=n.Settings[f],u.Name=="WORKHOURSX.DIMENSIONITEM_DISPLAYTYPE_LABEL"?i.DimensionItemDisplayType=u.Value:u.ViewType?i.ViewType=u.Value:u.Name=="WORKHOURSX.SHIFTVIEWTYPE_LABEL"?i.ShiftViewType=u.Value:i[t.getKey("ApprovingHoursSettingProperty",u.EnumValue)]=u.Value?!0:!1;else{e=t.getEnum("ApprovingHoursSettingProperty");h=Number(n.Properties?n.Properties:0);for(o in e)s=Number(e[o]),i[o]=(h&s)==s;i.ViewType=n.ViewType;i.ShiftViewType=n.ShiftViewType;i.DimensionItemDisplayType=n.DimensionItemDisplayType}return i},findTopLevelSettings:function(n){if(!n)return null;if(!n.Next)return n;for(var t=n.Next,i=t;t;)i=t,t=t.Next;return i},floodTopLevelProperties:function(n){var i=r.findTopLevelSettings(n),e,o,s,u,f;if(i){if(e=[{bit:t.getValue("ApprovingHoursSettingProperty","UseDayLocking"),value:0},{bit:t.getValue("ApprovingHoursSettingProperty","ObligatoryDescription"),value:0}],i.Settings)for(u=0;u<i.Settings.length;u++)for(o=i.Settings[u],s=0;s<e.length;s++)f=e[s],o.EnumValue==f.bit&&(f.value=o.Value?f.bit:0);else for(u=0;u<e.length;u++)f=e[u],f.value=i.Properties&f.bit;for(i=i.Prev;i;){if(i.Settings)for(u=0;u<i.Settings.length;u++)for(o=i.Settings[u],s=0;s<e.length;s++)f=e[s],o.EnumValue==f.bit&&(o.Value=f.value?!0:!1,o.ValueLabel=o.Value?"GLOBAL.YES":"GLOBAL.NO");else for(u=0;u<e.length;u++)f=e[u],i.Properties=f.value?i.Properties|f.bit:i.Properties^~f.bit;i=i.Prev}}},prepareSettings:function(n,i){var u={Settings:[],Next:null,IdC:n.IdC,Changed:!1,Deleted:!1},h,e,y;if(u.InheritedSettings=!0,n){u.InheritedSettings=n.InheritedSettings;u.InheritedSettings?u.Owner={Code:n.Code,Texts:n.Texts}:(n.OrganisationIdC&&(u.OrganisationIdC=n.OrganisationIdC),n.UserIdC&&(u.UserIdC=n.UserIdC));var o=t.getEnum("ApprovingHoursSettingProperty"),c=Number(n.Properties?n.Properties:0),l=o?o.showUserGroup:0,a=o?o.showPercentage1:0,v=-1,p=-1,f=-1;for(h in o)e=Number(o[h]),y={Name:"APPROVING_HOURS.SETTING_PROPERTY_"+h.toUpperCase(),Value:(c&e)==e?!0:!1,EnumValue:e,Type:"checkbox",ValueLabel:(c&e)==e?"GLOBAL.YES":"GLOBAL.NO",Disabled:!1,SettingGroup:e>=l&&e<=a?2:1,RowIndex:e>=l&&e<=a?++p:++v},u.Settings.push(y);var s=t.getEnum("ApprovingHoursNotificationLevel"),r=[{Value:s.none,Label:"APPROVING_HOURS.NOTIFICATION_LEVEL_NONE"},{Value:s.info,Label:"APPROVING_HOURS.NOTIFICATION_LEVEL_INFO"},{Value:s.warning,Label:"APPROVING_HOURS.NOTIFICATION_LEVEL_WARNING"},{Value:s.error,Label:"APPROVING_HOURS.NOTIFICATION_LEVEL_ERROR"}];u.Settings.push({Name:"APPROVING_HOURS.STAMPS_WITH_SPECIAL_CODE_REASONCODE",Value:n.NotificLevelStampsSpecCode,Disabled:!1,Type:"dropdown",Options:i&&i.NotificLevelStampsSpecCode?r.slice(i.NotificLevelStampsSpecCode):r,ValueLabel:"APPROVING_HOURS.NOTIFICATION_LEVEL_"+t.getKey("ApprovingHoursNotificationLevel",n.NotificLevelStampsSpecCode).toUpperCase(),SettingGroup:3,RowIndex:++f});u.Settings.push({Name:"APPROVING_HOURS.WORK_HOURS_WITH_SPECIAL_CODE_REASONCODE",Value:n.NotificLevelWorkHoursSpecCode,Disabled:!1,Type:"dropdown",Options:i&&i.NotificLevelWorkHoursSpecCode?r.slice(i.NotificLevelWorkHoursSpecCode):r,ValueLabel:"APPROVING_HOURS.NOTIFICATION_LEVEL_"+t.getKey("ApprovingHoursNotificationLevel",n.NotificLevelWorkHoursSpecCode).toUpperCase(),SettingGroup:3,RowIndex:++f});u.Settings.push({Name:"APPROVING_HOURS.ABSENCES",Value:n.NotificLevelAbsence
1s,Disabled:!1,Type:"dropdown",Options:i&&i.NotificLevelAbsences?r.slice(i.NotificLevelAbsences):r,ValueLabel:"APPROVING_HOURS.NOTIFICATION_LEVEL_"+t.getKey("ApprovingHoursNotificationLevel",n.NotificLevelAbsences).toUpperCase(),SettingGroup:3,RowIndex:++f});u.Settings.push({Name:"APPROVING_HOURS.UNAPPROVED_ABSENCES",Value:n.NotificLevelAbsencesUnapproved,Disabled:!1,Type:"dropdown",Options:i&&i.NotificLevelAbsencesUnapproved?r.slice(i.NotificLevelAbsencesUnapproved):r,ValueLabel:"APPROVING_HOURS.NOTIFICATION_LEVEL_"+t.getKey("ApprovingHoursNotificationLevel",n.NotificLevelAbsencesUnapproved).toUpperCase(),SettingGroup:3,RowIndex:++f});u.Settings.push({Name:"APPROVING_HOURS.STANDBYS",Value:n.NotificLevelStandbys,Disabled:!1,Type:"dropdown",Options:i&&i.NotificLevelStandbys?r.slice(i.NotificLevelStandbys):r,ValueLabel:"APPROVING_HOURS.NOTIFICATION_LEVEL_"+t.getKey("ApprovingHoursNotificationLevel",n.NotificLevelStandbys).toUpperCase(),SettingGroup:3,RowIndex:++f});u.Settings.push({Name:"APPROVING_HOURS.UNAPPROVED_STANDBYS",Value:n.NotificLevelStandbysUnapproved,Disabled:!1,Type:"dropdown",Options:i&&i.NotificLevelStandbysUnapproved?r.slice(i.NotificLevelStandbysUnapproved):r,ValueLabel:"APPROVING_HOURS.NOTIFICATION_LEVEL_"+t.getKey("ApprovingHoursNotificationLevel",n.NotificLevelStandbysUnapproved).toUpperCase(),SettingGroup:3,RowIndex:++f});u.Settings.push({Name:"APPROVING_HOURS.OVERTIME",Value:n.NotificLevelStampsOvertime,Disabled:!1,Type:"dropdown",Options:i&&i.NotificLevelStampsOvertime?r.slice(i.NotificLevelStampsOvertime):r,ValueLabel:"APPROVING_HOURS.NOTIFICATION_LEVEL_"+t.getKey("ApprovingHoursNotificationLevel",n.NotificLevelStampsOvertime).toUpperCase(),SettingGroup:3,RowIndex:++f});u.Settings.push({Name:"APPROVING_HOURS.TRAVEL_CLAIMS",Value:n.NotificLevelTravelClaims,Disabled:!1,Type:"dropdown",Options:i&&i.NotificLevelTravelClaims?r.slice(i.NotificLevelTravelClaims):r,ValueLabel:"APPROVING_HOURS.NOTIFICATION_LEVEL_"+t.getKey("ApprovingHoursNotificationLevel",n.NotificLevelTravelClaims).toUpperCase(),SettingGroup:3,RowIndex:++f});u.Settings.push({Name:"APPROVING_HOURS.UNAPPROVED_TRAVEL_CLAIMS",Value:n.NotificLevelTravelClaimsUnapproved,Disabled:!1,Type:"dropdown",Options:i&&i.NotificLevelTravelClaimsUnapproved?r.slice(i.NotificLevelTravelClaimsUnapproved):r,ValueLabel:"APPROVING_HOURS.NOTIFICATION_LEVEL_"+t.getKey("ApprovingHoursNotificationLevel",n.NotificLevelTravelClaimsUnapproved).toUpperCase(),SettingGroup:3,RowIndex:++f});u.Settings.push({Name:"APPROVING_HOURS.HOUR_LIMIT_MIN_MAX",Value:n.NotificLevelHourLimitMinMax,Disabled:!1,Type:"dropdown",Options:i&&i.NotificLevelHourLimitMinMax?r.slice(i.NotificLevelHourLimitMinMax):r,ValueLabel:"APPROVING_HOURS.NOTIFICATION_LEVEL_"+t.getKey("ApprovingHoursNotificationLevel",n.NotificLevelHourLimitMinMax).toUpperCase(),SettingGroup:3,RowIndex:++f});u.Settings.push({Name:"APPROVING_HOURS.HOUR_LIMIT_DAY_MAX",Value:n.NotificLevelHourLimitDayMax,Disabled:!1,Type:"dropdown",Options:i&&i.NotificLevelHourLimitDayMax?r.slice(i.NotificLevelHourLimitDayMax):r,ValueLabel:"APPROVING_HOURS.NOTIFICATION_LEVEL_"+t.getKey("ApprovingHoursNotificationLevel",n.NotificLevelHourLimitDayMax).toUpperCase(),SettingGroup:3,RowIndex:++f});u.Settings.push({Name:"APPROVING_HOURS.STAMP_LIMIT_MIN_MAX",Value:n.NotificLevelStampLimitMinMax,Disabled:!1,Type:"dropdown",Options:i&&i.NotificLevelStampLimitMinMax?r.slice(i.NotificLevelStampLimitMinMax):r,ValueLabel:"APPROVING_HOURS.NOTIFICATION_LEVEL_"+t.getKey("ApprovingHoursNotificationLevel",n.NotificLevelStampLimitMinMax).toUpperCase(),SettingGroup:3,RowIndex:++f});u.Settings.push({Name:"APPROVING_HOURS.PAGE_SIZE",Value:n.PageSize,Disabled:!1,Type:"dropdown",Options:[{Value:10,Label:"10"},{Value:20,Label:"20"},{Value:30,Label:"30"}],ValueLabel:String(n.PageSize),SettingGroup:1,RowIndex:++v})}return u},updateSettingHierarhcy:function(n){if(n)for(var t=n.Prev;t&&t.InheritedSettings;)t.Settings=angular.copy(n.Settings),t=t.Prev},prepareSettingsForSaving:function(){var f=[],c,s,u,h,e,t,o,n;for(c in r.settingsCache){for(s=r.settingsCache[c],u=s;u;)(!u.InheritedSettings||u.Deleted)&&f.push(u),u=u.Next;for(u=s.Prev;u;)(!u.InheritedSettings||u.Deleted)&&f.push(u),u=u.Prev}for(h=[],e=0;e<f.length;e++)if(t=f[e],!t.IdC||t.Changed||t.Deleted){var i={IdC:t.IdC,Changed:t.IdC&&t.Changed?!0:!1,Deleted:t.Deleted},l=0,a=0,v=0,y=0,p=0,w=0,b=0,k=0,d=0,k=0,g=0,nt=0,tt=0,it=10,rt=0;if(t.Settings&&t.Settings.length)for(o=0;o<t.Settings.length;o++)n=t.Settings[o],n.Name=="APPROVING_HOURS.STAMPS_WITH_SPECIAL_CODE_REASONCODE"?l=n.Value?n.Value:0:n.Name=="APPROVING_HOURS.WORK_HOURS_WITH_SPECIAL_CODE_REASONCODE"?a=n.Value?n.Value:0:n.Name=="APPROVING_HOURS.ABSENCES"?v=n.Value?n.Value:0:n.Name=="APPROVING_HOURS.UNAPPROVED_ABSENCES"?y=n.Value?n.Value:0:n.Name=="APPROVING_HOURS.STANDBYS"?p=n.Value?n.Value:0:n.Name=="APPROVING_HOURS.UNAPPROVED_STANDBYS"?w=n.Value?n.Value:0:n.Name=="APPROVING_HOURS.OVERTIME"?b=n.Value?n.Value:0:n.Name=="APPROVING_HOURS.TRAVEL_CLAIMS"?k=n.Value?n.Value:0:n.Name=="APPROVING_HOURS.UNAPPROVED_TRAVEL_CLAIMS"?d=n.Value?n.Value:0:n.Name=="APPROVING_HOURS.HOUR_LIMIT_MIN_MAX"?g=n.Value?n.Value:0:n.Name=="APPROVING_HOURS.HOUR_LIMIT_DAY_MAX"?nt=n.Value?n.Value:0:n.Name=="APPROVING_HOURS.STAMP_LIMIT_MIN_MAX"?tt=n.
1Value?n.Value:0:n.Name=="APPROVING_HOURS.PAGE_SIZE"?it=n.Value?n.Value:10:rt+=n.Value?Number(n.EnumValue):0;t.IdC||(t.OrganisationIdC?i.OrganisationIdC=t.OrganisationIdC:t.UserIdC&&(i.UserIdC=t.UserIdC));i.Properties=rt;i.NotificLevelStampsSpecCode=l;i.NotificLevelWorkHoursSpecCode=a;i.NotificLevelAbsences=v;i.NotificLevelAbsencesUnapproved=y;i.NotificLevelStandbys=p;i.NotificLevelStandbysUnapproved=w;i.NotificLevelStampsOvertime=b;i.NotificLevelTravelClaims=k;i.NotificLevelTravelClaimsUnapproved=d;i.NotificLevelHourLimitMinMax=g;i.NotificLevelHourLimitDayMax=nt;i.NotificLevelStampLimitMinMax=tt;i.PageSize=it;h.push(i)}return h},saveSettings:function(t){var u=n.defer();return i.saveBatch(t).then(function(n){var e=r.getCachedSettings(),o={},t,f,i,s;if(e)for(t=e;t;)t.IdC||(o[(t.OrganisationIdC?t.OrganisationIdC:"[null]")+";"+(t.UserIdC?t.UserIdC:"[null]")]=t),t=t.Next;if(n&&n.DataList)for(f=0;f<n.DataList.length;f++)i=n.DataList[f],s=(i.OrganisationIdC?i.OrganisationIdC:"[null]")+";"+(i.UserIdC?i.UserIdC:"[null]"),o[s]&&(o[s].IdC=i.IdC);delete n.DataList;n.Data=e;u.resolve(n)},function(){u.reject()}),u.promise},clearSettingsCache:function(){r.settingsCache={}},getCachedSettings:function(){return r.settingsCache["-"]},cacheSettings:function(n){r.settingsCache["-"]=n},hasViewTypeChanged:function(n,t){var i=null;return n&&(i=n.ViewType),t&&i&&t.ViewType!=i},setSettingsParent:function(n){r.settingsParent||(r.topLevel=n);r.settingsParent=n;r.invoke(r.settingsParentCallbacks,arguments)},getSettingsParent:function(){return r.settingsParent},registerSettingsParentListener:function(n){r.registerListener(n,r.settingsParentCallbacks)},unRegisterSettingsParentListener:function(n){r.unRegisterListener(n,r.settingsParentCallbacks)},registerListener:function(n,t){t.first?t.queue.push(n):t.first=n},unRegisterListener:function(n,t){if(t.first==n)t.first=null,t.queue.length>0&&(t.first=t.queue.splice(0,1));else for(var i=0;i<t.queue.length;i++)if(t.queue[i]===n){t.queue.splice(i,1);return}},invoke:function(n,t){var r=this,i;if(n.first&&n.first.apply(r,t),n.queue)for(i=0;i<n.queue.length;i++)n.queue[i].apply(r,t)}};return r}]);angular.module("TiimaApp").factory("shiftPlanningService",["$window","$http","$rootScope","$q","$timeout","$uibModal","toolsService","localizationService","formatService","tiimaEnumsService","Shift",shiftPlanningService=function(n,t,i,r,u,f){return{editShiftManagement:function(n){var t=r.defer(),i=f.open({templateUrl:"MVC/modals/ShiftPlanning/shiftManagementEditor.html",controller:"shiftManagementEditorModalController",backdrop:"static",windowClass:"shiftManagementEditor",resolve:{CurrentDate:function(){return n}}});return i.result.then(function(){t.resolve()}),t.promise}}}]);angular.module("TiimaApp").factory("travelClaimSettingsService",["$q","tiimaEnumsService","TravelClaimSetting",function(n,t,i){var r={loading:!1,topLevel:null,settingsParent:null,settingsCache:{},settingsParentCallbacks:{first:null,queue:[]},resolveSettings:function(n){var i,u,f,e,h,o,s;if(n.length&&(n=n[n.length-1]),i={},!n)return i;if(n.Next&&r.floodTopLevelProperties(n),n.Settings)for(u=0;u<n.Settings.length;u++)f=n.Settings[u],i[t.getKey("TravelClaimSettingProperty",f.EnumValue)]=f.Value?!0:!1;else{e=t.getEnum("TravelClaimSettingProperty");h=Number(n.Properties?n.Properties:0);for(o in e)s=Number(e[o]),i[o]=(h&s)==s}return n.Dimensions&&(i.Dimensions=angular.copy(n.Dimensions)),i},findTopLevelSettings:function(n){if(!n)return null;if(!n.Next)return n;for(var t=n.Next,i=t;t;)i=t,t=t.Next;return i},floodTopLevelProperties:function(n){var i=r.findTopLevelSettings(n),e,h,o,s,u,f;if(i){if(e=[{bit:t.getValue("TravelClaimSettingProperty","ShowEmployeeID2"),value:0},{bit:t.getValue("TravelClaimSettingProperty","ShowEmployeeOrganisation"),value:0}],h=i.Dimensions,i.Settings)for(u=0;u<i.Settings.length;u++)for(o=i.Settings[u],s=0;s<e.length;s++)f=e[s],o.EnumValue==f.bit&&(f.value=o.Value?f.bit:0);else for(u=0;u<e.length;u++)f=e[u],f.value=i.Properties&f.bit;for(i=i.Prev;i;){if(i.Settings)for(u=0;u<i.Settings.length;u++)for(o=i.Settings[u],s=0;s<e.length;
1s++)f=e[s],o.EnumValue==f.bit&&(o.Value=f.value?!0:!1,o.ValueLabel=o.Value?"GLOBAL.YES":"GLOBAL.NO");else for(u=0;u<e.length;u++)f=e[u],i.Properties=f.value?i.Properties|f.bit:i.Properties^~f.bit;h&&(i.Dimensions=angular.copy(h));i=i.Prev}}},prepareSettings:function(n){var i={Settings:[],Next:null,IdC:n.IdC,Changed:!1,Deleted:!1},u,r,o;if(i.InheritedSettings=!0,n){n.Dimensions&&(i.Dimensions=n.Dimensions);i.InheritedSettings=n.InheritedSettings;i.InheritedSettings?i.Owner={Code:n.Code,Texts:n.Texts}:(n.OrganisationIdC&&(i.OrganisationIdC=n.OrganisationIdC),n.UserIdC&&(i.UserIdC=n.UserIdC));var f=t.getEnum("TravelClaimSettingProperty"),e=Number(n.Properties?n.Properties:0),s=-1;for(u in f)r=Number(f[u]),o={Name:"TRAVELCLAIMS.SETTING_PROPERTY_"+u.toUpperCase(),Value:(e&r)==r?!0:!1,EnumValue:r,Type:"checkbox",ValueLabel:(e&r)==r?"GLOBAL.YES":"GLOBAL.NO",Disabled:!1,RowIndex:++s},i.Settings.push(o)}return i},updateSettingHierarhcy:function(n){if(n)for(var t=n.Prev;t&&t.InheritedSettings;)t.Settings=angular.copy(n.Settings),t=t.Prev},prepareSettingsForSaving:function(){var e=[],a,s,t,h,o,n,u,c,l,f,i;for(a in r.settingsCache){for(s=r.settingsCache[a],t=s;t;)(!t.InheritedSettings||t.Deleted)&&e.push(t),t=t.Next;for(t=s.Prev;t;)(!t.InheritedSettings||t.Deleted)&&e.push(t),t=t.Prev}for(h=[],o=0;o<e.length;o++)if(n=e[o],!n.IdC||n.Changed||n.Deleted){if(u={IdC:n.IdC,Changed:n.IdC&&n.Changed?!0:!1,Deleted:n.Deleted},c=0,n.Settings&&n.Settings.length)for(f=0;f<n.Settings.length;f++)l=n.Settings[f],c+=l.Value?Number(l.EnumValue):0;if(n.IdC||(n.OrganisationIdC?u.OrganisationIdC=n.OrganisationIdC:n.UserIdC&&(u.UserIdC=n.UserIdC)),u.Properties=c,!n.OrganisationIdC&&!n.UserIdC&&n.Dimensions)for(f=0;f<n.Dimensions.length;f++)i=n.Dimensions[f],i.Changed&&(i.Visible||i.IdC)&&(u.Dimensions||(u.Dimensions=[]),u.Dimensions.push({IdC:i.IdC,DimensionIdC:i.DimensionIdC,Visible:i.Visible?!0:!1,Changed:i.IdC&&i.Visible?!0:!1,Deleted:i.IdC&&!i.Visible?!0:!1}));h.push(u)}return h},saveSettings:function(t){var u=n.defer();return i.saveBatch(t).then(function(n){var f=r.getCachedSettings(),o={},t,h,e,i,s;if(f)for(t=f;t;)t.IdC||(o[(t.OrganisationIdC?t.OrganisationIdC:"[null]")+";"+(t.UserIdC?t.UserIdC:"[null]")]=t),t=t.Next;if(h=[],n&&n.DataList)for(e=0;e<n.DataList.length;e++)i=n.DataList[e],s=(i.OrganisationIdC?i.OrganisationIdC:"[null]")+";"+(i.UserIdC?i.UserIdC:"[null]"),o[s]&&(o[s].IdC=i.IdC),i.OrganisationIdC||i.UserIdC||(f.Dimensions=i.Dimensions?i.Dimensions:[]);delete n.DataList;n.Data=f;u.resolve(n)},function(){u.reject()}),u.promise},clearSettingsCache:function(){r.settingsCache={}},getCachedSettings:function(){return r.settingsCache["-"]},cacheSettings:function(n){r.settingsCache["-"]=n},hasViewTypeChanged:function(n,t){var i=null;return n&&(i=n.ViewType),t&&i&&t.ViewType!=i},getSettingsParent:function(){return r.settingsParent},setSettingsParent:function(n){r.settingsParent||(r.topLevel=n);r.settingsParent=n;r.invoke(r.settingsParentCallbacks,arguments)},registerSettingsParentListener:function(n){r.registerListener(n,r.settingsParentCallbacks)},unRegisterSettingsParentListener:function(n){r.unRegisterListener(n,r.settingsParentCallbacks)},registerListener:function(n,t){t.first?t.queue.push(n):t.first=n},unRegisterListener:function(n,t){if(t.first==n)t.first=null,t.queue.length>0&&(t.first=t.queue.splice(0,1));else for(var i=0;i<t.queue.length;i++)if(t.queue[i]===n){t.queue.splice(i,1);return}},invoke:function(n,t){var r=this,i;if(n.first&&n.first.apply(r,t),n.queue)for(i=0;i<n.queue.length;i++)n.queue[i].apply(r,t)}};return r}]);angular.module("TiimaApp").filter("setting",["settingService",function(n){return function(t){return n.getSetting(t)}}]);angular.module("TiimaApp").filter("initialized",["settingService",function(n){return function(){var t=n.getInitializedPromise();return t?t:null}}]);angular.module("TiimaApp").filter("NotDeleted",function(){return function(n,t){var r,i;if(t||(t="Deleted"),r=[],n)for(i=0;i<n.length;i++)n[i][t]||r.push(n[i]);return r}});angular.module("TiimaApp").filter("localize",["localizationService",function(n){var t=function(t,i,r,u){return typeof t=="object"?(i||(i="Name"),n.getCurrentLanguageText(t,i,u)):n.getText(t,i,r)};
1return t.$stateful=!0,t}]);angular.module("TiimaApp").filter("localizeEnum",["localizationService","tiimaEnumsService",function(n,t){return function(i,r,u){var f=t.getKey(r,u);return f||(f="?"),n.getText(i+f.toUpperCase())}}]);angular.module("TiimaApp").filter("NonDeletedCount",function(){return function(n){var i=0,t;if(n&&n.length)for(t=0;t<n.length;t++)n[t].Deleted||i++;return i}});angular.module("TiimaApp").filter("Format",["formatService",function(n){return function(t,i,r){var u="";i||(i="decimal");switch(i){case"time":u=n.getFormattedHours(t,r?!0:!1);break;case"endtime":u=n.getFormattedHours(t,r?!0:!1,!0);break;case"enddate":u=n.getFormattedDate(t,r?r:!1,!0);break;case"seconds":u=n.getFormattedSeconds(t);break;case"decimal":u=n.getFormattedDecimal(t,Number(r?r:2));break;case"percentage":u=n.getFormattedPercentage(t,Number(r?r:2))}return u}}]);angular.module("TiimaApp").filter("listItemFormat",["localizationService","formatService",function(n){return function(t,i){var r,u,e,f,o;if(!t||(r="",i.name?r=t[i.name]:i.format&&typeof i.format=="string"&&(r=Mustache.render(i.format,t)),i&&i.dataType==1&&i.localize&&(r=t.Texts),angular.isUndefined(r)))return"";if(!i)return r;u=r;switch(i.dataType){case 0:e=2;angular.isUndefined(i.decimals)||(e=Number(i.decimals));break;case 1:u=i.localize?n.getCurrentLanguageText(r,i.name):""+r;break;case 2:f="D.M.YYYY";i.dateFormat&&(f=i.dateFormat);u=moment(r).format(f);break;case 3:o="HH:mm";i.timeFormat&&(o=i.timeFormat);break;case 4:if(i.format)try{u=i.format(r,t)}catch(s){u=r}}return u}}]);angular.module("TiimaApp").filter("notDisabledReasonCode",[function(){return function(n,t){for(var i,o,u,f=[],e=t&&t.ReasonCodeUsage?t.ReasonCodeUsage:null,r=0;r<n.length;r++)if(i=n[r],!i.ReadOnly){if(i.BalanceRequired)if(i.Balance){if(o=i.Balance.BalanceUsed?i.Balance.BalanceUsed:0,u=i.Balance.CurrentBalance?i.Balance.CurrentBalance:0,!u||!(o-u))continue}else continue;(!e||e[i.IdC])&&f.push(i)}return f}}]);angular.module("TiimaApp").directive("ngFocus",[function(){var n="ng-focused";return{restrict:"A",require:"ngModel",link:function(t,i,r,u){u.$focused=!1;i.bind("focus",function(){i.addClass(n);t.$apply(function(){u.$focused=!0})}).bind("blur",function(){i.removeClass(n);t.$apply(function(){u.$focused=!1})})}}}]);angular.module("TiimaApp").directive("uiNumeric",["uiNumericConfig","$timeout",function(n,t){return{require:"?ngModel",link:function(i,r,u,f){var h=function(){return angular.extend({},n,i.$eval(u.uiNumeric),{array:!0})},e=h(),c=function(n){var t=r.val();if($.inArray(n.keyCode,[110,188,190])!==-1){if(e.decimals&&t.indexOf(".")==-1&&t.indexOf(",")==-1)return;n.preventDefault()}else if($.inArray(n.keyCode,[109,189])!==-1){if(e.allowNegative&&t==="")return;n.preventDefault()}$.inArray(n.keyCode,[46,8,9,27,13])!==-1||n.keyCode==65&&n.ctrlKey===!0||n.keyCode>=35&&n.keyCode<=39||(n.shiftKey||(n.keyCode<48||n.keyCode>57)&&(n.keyCode<96||n.keyCode>105))&&n.preventDefault()},l=function(n){!n&&e.showNullAsEmpty?r.val(""):(r.val(n),a())},o=function(){var n=r.val();return!n&&e.showNullAsEmpty?null:Number((""+n).replace(/,/g,"."))},v=function(){r.val("")},s=function(n){if(!n&&e.showNullAsEmpty)return"";var t=Number((""+n).replace(/,/g,"."));return console.log("numeric value fixed to "+t),isNaN(t)?"":t.toFixed(e.decimals)},a=function(){var n=s(r.val());r.val(n)};r.on("keydown",c).on("blur",function(){t(function(){l(o());f.$setViewValue(o())})});f.$render=function(){var t=r.val(),n=s(f.$viewValue);return t||r.val(n),n};f.$parsers.push(function(n){return Number(n?(""+n).replace(/,/g,"."):"")})}}}]).constant("uiNumericConfig","");angular.module("TiimaApp").directive("uiDatePicker",["$timeout","$rootScope","toolsService","localizationService","formatService","tiimaEnumsService",function(n,t,i,r,u){"use strict";var f=!1,e=new Date;return{restrict:"E",require:"ngModel",templateUrl:"MVC/ScriptsApp/directives/uiDatePickerTemplate.html",controller:"validationEnabledElementController",scope:{shortPicker:"@",noPlaceholder:"@",userNullable:"@nullable",maxValue:"=?",minValue:"=?",isNullChanged:"&?",userName:"@name"},link:function(n,o,s,h){var c,a,v,y,w;n.previousModelValue=null;n.name=n.userName||"dp"+i.getNewID();n.nullable=n.userNullable=="true";n.notNull=!n.nullable;c=o.find("input[type='text']").first();a=$.datepicker._defaults;a&&a.$dateDefaultsInitialized||$.datepicker.setDefaults(_.extend($.datepicker.regional[t.language],{$dateDefaultsInitialized:!0}));o.click(function(){c.focus()});v=function(){n.noPlaceholder||c.attr("placeholder",r.getText("GLOBAL.DATEFORMAT"))};y=function(){n.noPlaceholder||c.attr("placeholder",r.getText("GLOBAL.EMPTY_DATE"))};n.notNull?v():y();n.check=function(){var t,i;n.notNull=!n.notNull;t=null;n.notNull?(t=new Date,v()):y();n.isNullChanged&&n.isNullChanged()(!n.notNull);i=t?u.getFormattedDate(t):"";c.val(i)};n.isValueEmpty=function(){};h.$formatters.push(function(t){return angular.isDefined(t)&&t!==null&&!angular.isDate(t)?undefined:(c.datepicker("setDate",t),n.notNull=t!=null,t)});h.$parsers.push(function(n){var t=b(n);return angular.isDefined(t)&&t!==null&&!angular.isDate(t)?undefined:t});h.$render=function(){var t=n.previousModelValue=h.$viewValue;if(angular.isDefined(t)&&t!==null&&!angular.isDate(t))throw new Error("ng-Model value must be a Date object - currently it is a "+typeof t+" - use ui-date-format to convert it from a string");c.datepicker("setDate",t)};var b=function(n){var t=null;return typeof n=="string"?(n[0]=='"'&&(n=n.substring(1,n.length-1)),n[n.length-1]=='"'&&(n=n.substring(0,n.length-1)),n.indexOf("-")>0||n.indexOf("Z")>0?t=u.parseISODateTime(n):(t=i.parseDate(n),t=u.getISODate(t),t=u.parseISODateTime(t))):n&&n.getTime&&(t=n),t},k=function(){var u=c.val(),i=b(c.val()),t=null,r=n.previousModelValue&&n.previousModelValue.getTime?n.previousModelValue.getTime():0;angular.isDate(i)?(c.datepicker("setDate",i),t=c.datepicker("getDate")):i?(c.datepicker("setDate",n.previousModelValue),t=c.datepicker("getDate")):(c.datepicker("setDate",null),t=c.datepicker("getDate"));t&&t.getTime&&t.getTime()!==r&&h.$setViewValue(n.previousModelValue=t)},l={},p=!1;l.onSelect=function(){n.$apply(function(){k();p=!0})};w=!1;l.beforeShow=function(n){var t,i,r;return p?(p=!1,!1):(w||(t=$(n).closest("div.modal"),t&&t.length&&(i=Number(t.css("z-index")),r=Number(c.css("z-index")),i>r&&c.css("z-index",i+1)),w=!0),f=!0)};l.onClose=function(){f=!1;
1e=new Date};n.maxValue&&(l.maxDate=n.maxValue);n.minValue&&(l.minDate=n.minValue);c.on("blur",function(){n.$apply(function(){f||k()})});c.datepicker(l);n.$watch("maxValue",function(n,t){var i=n&&n.getTime?n.getTime():0,r=t&&t.getTime?t.getTime():0;i!=r&&n&&n.getTime&&c.datepicker("option","maxDate",new Date(n.getTime()))});n.$watch("minValue",function(n,t){var i=n&&n.getTime?n.getTime():0,r=t&&t.getTime?t.getTime():0;i!=r&&n&&n.getTime&&c.datepicker("option","minDate",new Date(n.getTime()))});s.$observe("readonly",function(n){angular.isUndefined(n)||c.datepicker("option","disabled",n)});n.directiveInitializedDefer&&n.directiveInitializedDefer.resolve()}}}]).directive("uiDate",["uiDateConfig","$timeout","$rootScope","toolsService","localizationService","formatService","tiimaEnumsService",function(n,t,i,r,u,f){"use strict";var e;return e={},angular.extend(e,n),{require:"?ngModel",link:function(i,e,o,s){var h=function(){return angular.extend({},n,i.$eval(o.uiDate))},c=function(){var o=!1,a=new Date,n=h(),c,l;if(n.previousModelValue=null,n.shortPicker?e.wrap("<div class='uiDateContainer short'><\/div>"):e.wrap("<div class='uiDateContainer'><\/div>"),e.parent().click(function(){e.focus()}),n.noPlaceHolder||(c=u.getText("GLOBAL.DATEFORMAT"),e.attr("placeholder",c)),s){l=n.onSelect||angular.noop;n.onSelect=function(n,t){i.$apply(function(){o=!0;s.$setViewValue(e.datepicker("getDate"));l(n,t);e.datepicker("hide");e.blur()})};n.beforeShow=function(){o=!0};n.onClose=function(){o=!1;a=new Date};e.on("blur",function(){o||t(function(){i.$apply(function(){var t=e.val();t=r.parseDate(t);t=f.getISODate(t);t=f.parseISODateTime(t);angular.isDate(t)?(e.datepicker("setDate",t),s.$setViewValue(e.datepicker("getDate"))):t?(e.datepicker("setDate",n.previousModelValue),s.$setViewValue(e.datepicker("getDate"))):(e.datepicker("setDate",null),s.$setViewValue(e.datepicker("getDate")))})})});s.$render=function(){var t=n.previousModelValue=s.$viewValue;if(angular.isDefined(t)&&t!==null&&!angular.isDate(t)&&(t=new Date(t),angular.isDefined(t)&&t!==null&&!angular.isDate(t)&&(t=f.parseISODateTime(t),angular.isDefined(t)&&t!==null&&!angular.isDate(t))))throw new Error("ng-Model value must be a Date object - currently it is a "+typeof t+" - use ui-date-format to convert it from a string");e.datepicker("setDate",t)}}e.datepicker("destroy");e.datepicker(n);s&&s.$render()};i.$watch(h,c,!0);o.$observe("readonly",function(n){angular.isUndefined(n)||e.datepicker("option","disabled",n)});i.$on("$destroy",function(){e.parent().hasClass("uiDateContainer")&&e.unwrap()})}}}]).constant("uiDateConfig",{}).constant("uiDateFormatConfig","");angular.module("TiimaApp").directive("uiTimePicker",["uiTimePickerConfig","toolsService","localizationService","$window","$timeout",function(n,t,i){return{restrict:"E",require:"ngModel",templateUrl:"MVC/ScriptsApp/directives/uiTimePickerTemplate.html",controller:"validationEnabledElementController",scope:{shortPicker:"@",noPlaceholder:"@",classes:"@",inputClasses:"@",maxValue:"@",minValue:"@",userShowNullAsEmpty:"@showNullAsEmpty",userShowLeadingZero:"@showLeadingZero",userValueInMinutes:"@valueInMinutes",userValueInHours:"@valueInHours",userAllowOver24h:"@allowOver24h",userLooseValidation:"@looseValidation",userUseDecimals:"@useDecimals",userTimeRangeMode:"@timeRangeMode",userDate:"@date",userDisabled:"@disabled",userNgDisabled:"=ngDisabled"},link:function(r,u,f,e){var v=function(){return angular.extend({},n,{array:!0})},c,o,l;r.options=v();r.date=r.userDate?t.momentDate(r.userDate,new Date(0)):null;r.timeValue="";r.disabled=r.userDisabled=="true"||r.userNgDisabled;r.showNullAsEmpty=r.userShowNullAsEmpty=="true";r.showLeadingZero=r.userShowLeadingZero=="true";r.valueInMinutes=r.userValueInMinutes=="true";r.valueInHours=r.userValueInHours=="true";r.allowOver24h=r.userAllowOver24h=="true";r.looseValidation=r.userLooseValidation=="true";r.useDecimals=r.userUseDecimals=="true";r.timeRangeMode=r.userTimeRangeMode=="true";c=function(){return r.timeValue?!1:!0};r.isEmpty=c;o=u.find("input[type='text']").first();r.noPlaceholder||(l=i.getText("GLOBAL.TIMEFORMAT"),o.attr("placeholder",l));u.click(function(){o.focus()});var k=function(n,i){var u,r;
1return i||(i={}),!n&&i.showNullAsEmpty?null:(u=n.indexOf(".")!=-1?".":":",n=t.parseTime(n,null,i.allowOver24h),r=y(n,i.allowOver24h),isNaN(r[0])&&(r[0]="12"),isNaN(r[1])&&(r[1]="00"),i.showLeadingZero&&r[0]<10&&(r[0]="0"+r[0]),r[1]="0"+r[1],r[0]+u+r[1].substr(r[1].length-2,2))},y=function(n,t){var i=n.getMinutes(),r;return t?(r=Date.UTC(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds()),i+=Math.floor(r/36e5)*60):i+=n.getHours()*60,[Math.floor(i/60),i%60]},h=function(n,i,u){return(u||(u={}),i&&i.getTime||(i=new Date(0)),r.showNullAsEmpty&&!n)?null:u.useDecimals?new Date(Math.floor(i.getTime()+parseFloat(n.replace(/,/,"."))*36e5)):t.parseTime(n,i,u.allowOver24h,u.allowNegative,u.useDecimals)},p=function(n,i,r){var f,u,o;if(r||(r={}),i||(i=new Date(0),f=i.getTimezoneOffset(),i=new Date(i.getTime()+f*6e4)),u=null,n===null)return null;if(r.valueInMinutes||r.valueInHours){o=n;isFinite(n)||(n=parseFloat(n));isFinite(n)||(n=0);var e=r.valueInMinutes?n:n*60,s=Math.floor(e/60),h=Math.round(Math.abs(e)%60);u=new Date(i.getTime()+(s*60+h)*6e4)}else u=t.setDatePart(n,i);return u},w=function(n,t){if(t||(t={}),!n)return null;var i=n,r=n.getHours(),u=n.getMinutes();return t.allowOver24h&&(r=Math.floor(moment.duration(n.getTime()).asHours()+moment(n.getTime()).utcOffset()/60)),t.valueInMinutes?i=r*60+u:t.valueInHours&&(i=r+u/60),i},a=function(n,t){var f,e,o,u,i;return t||(t={}),f="",n&&n.getTime&&(t.useDecimals?(i=Math.floor(n.getHours()*60+n.getMinutes()*60),t.allowNegative||(i=Math.abs(minute)),u=""+Math.floor(i/60),i="0"+Math.abs(i%60),f=u+":"+i.substr(i.length-2,2)):(e=0,t.allowOver24h&&(o=Math.floor(moment.duration(n.getTime()).asHours()+moment(n.getTime()).utcOffset()/60),r.date&&(o-=Math.floor(moment.duration(r.date.getTime()).asHours()+moment(r.date.getTime()).utcOffset()/60)),e=o),u=e||n.getHours(),i="0"+n.getMinutes(),f=(t.showLeadingZero?(u<10?"0":"")+u:u)+(":"+i.substr(i.length-2,2)))),f},b=function(n){if(!r.looseValidation){var i=t.getNextInputValue(o,n),u=t.parseTimeRaw(i,r.allowOver24h,r.allowNegative,r.useDecimals);u.valid||n.preventDefault()}},s=function(){return{valueInMinutes:r.valueInMinutes,valueInHours:r.valueInHours,allowOver24h:r.allowOver24h,useDecimals:r.useDecimals,showNullAsEmpty:r.showNullAsEmpty,showLeadingZero:r.showLeadingZero}};e.$formatters.push(function(n){var t=s(),i=p(n,r.date,t);return r.timeValue=a(i,t),r.timeValue});e.$parsers.push(function(n){var t=s(),i=h(n,r.date,t);return r.previousModelValue=w(i,t)});o.on("blur",function(){var n=s();r.timeValue=a(h(o.val(),r.date,n),n);e.$setViewValue(r.timeValue)}).on("keydown",b);r.$watch("userDate",function(n,i){if(!r.date||n!=i)if(n){r.date=t.momentDate(n,new Date(0));var u=h(e.$viewValue,s());r.date&&(u=t.setDatePart(u,r.date));e.$setViewValue(u)}else r.date=null});r.directiveInitializedDefer&&r.directiveInitializedDefer.resolve()}}}]).constant("uiTimePickerConfig","").directive("uiTime",["uiTimeConfig","toolsService","localizationService","$window",function(n,t,i,r){return{require:"?ngModel",restrict:"A",link:function(t,u,f,e){var o=function(){return angular.extend({},n,t.$eval(f.uiTime),{array:!0})},s=function(){var n=o(),f,s;if(n.previousModelValue=null,n.noPlaceHolder||(f=i.getText("GLOBAL.TIMEFORMAT"),u.attr("placeholder",f)),e){n.previousModelValue=e.$modelValue;e.$setViewValue(n.previousModelValue);u.on("blur",function(){t.$apply(function(){var r,f,t;u.Time("setValue",u.Time("getValue"));r=n.previousModelValue;f=u.Time("getValue");r||!f||i.getDateWithoutTimezone(f).getTime()!=0||n.timeRangeMode?(t=!f&&n.showNullAsEmpty?null:new Date(f),t||(t=n.showNullAsEmpty?null:r?typeof r=="number"||!r.getTime?new Date(r):new Date(r.getTime()):new Date),n.previousModelValue=t?n.valueInMinutes?t.getHours()*60+t.getMinutes():n.valueInHours?t.getHours()+t.getMinutes()/60:t:null,e.$setViewValue(n.previousModelValue)):f=null})});e.$render=function(){if(n.showNullAsEmpty&&!e.$viewValue)u.Time("setValue","");else{var t="";n.valueInMinutes||n.valueInHours?(n.previousModelValue=e.$viewValue?Number(e.$viewValue):0,n.valueInHours&&(n.previousModelValue=Math.round(n.previousModelValue*60)),t=(n.previousModelValue<0?"-":"")+Math.floor(n.previousModelValue/60)+":"+(n.previousModelValue%60<10?"0":"")+n.previousModelValue%60):t=n.previousModelValue=e.$viewValue?r.moment(e.$viewValue).toDate():null;(t||!u.is(":focus"))&&u.Time("setValue",t)}}}s=$(u).data("settings");s&&u.Time("destroy");u.Time(n);e&&e.$render()};
1t.$watch(o,s,!0)}}}]).constant("uiTimeConfig","");angular.module("TiimaApp").directive("uiAutocompletePicker",["uiAutocompletePickerConfig","$timeout","$q","$window","closePopupService","datasourceService","localizationService","toolsService",function(n,t,i,r,u,f,e,o){"use strict";var s,h=new Date;return s={},angular.extend(s,n),{restrict:"E",require:"^ngModel",templateUrl:"MVC/ScriptsApp/directives/uiAutocompletePickerTemplate.html",controller:"validationEnabledElementController",scope:{classes:"@",fieldClasses:"@",userMode:"@mode",itemSource:"=?",hierarchySource:"=?",listFields:"=?",selectFirst:"@",userItemTemplate:"@itemTemplate",listItemTemplate:"@",listTemplate:"@",userListTemplateHeadings:"@listTemplateHeadings",userListTemplateClasses:"@listTemplateClasses",userSearchResultRowClass:"@searchResultRowClass",userAcceptRawValue:"@acceptRawValue",userShowButton:"@showButton",userFixedPosition:"@fixedPosition",userSourceArgs:"=?sourceArgs",userPageSize:"@pageSize",userSearchPageSize:"@searchPageSize",userMenuWidth:"@menuWidth",userSearchBox:"@searchBox",userPlaceHolder:"@placeHolder",listUpwards:"@listUpwards",listElementId:"@",hierarchyLevelField:"@",hierarchyTextField:"@",hierarchyCodeField:"@",hierarchyIdField:"@",hierarchySubNodeField:"@",hierarchyParentIdField:"@",hierarchyLanguageField:"@",inputClass:"=?",pickerDisabled:"@",focusOn:"@"},link:function(n,i,r,s){var v,l,p,w;n.listVisible=!1;n.mode=n.userMode||0;n.searchPageSize=n.userSearchPageSize||20;n.pageSize=n.userPageSize||10;n.menuWidth=n.userMenuWidth||"277px";n.itemTemplate=n.userItemTemplate||"{{Code}} {{localized:Name}}";n.showButton=n.userShowButton!=="false";n.acceptRawValue=n.userAcceptRawValue==="true";n.fixedPosition=n.userFixedPosition||!1;n.searchBox=n.userSearchBox||!1;n.placeHolder=n.userPlaceHolder||"";n.searchResultRowClass=n.userSearchResultRowClass||"";n.internalData=null;n.dataSourceArgs=angular.copy(n.userSourceArgs);n.templates={itemTemplate:n.itemTemplate||"{{Code}} {{localized:Name}}",listItemTemplate:n.listItemTemplate||"{{Code}} {{localized:Name}}",listTemplate:n.listTemplate||"{{Code}} {{localized:Name}}"};n.listTemplateHeadings=n.userListTemplateHeadings||e.getText("LIST_FIELDS.CODE")+"|"+e.getText("LIST_FIELDS.NAME");n.listTemplateClasses=n.userListTemplateClasses||"code|name";n.cache={};n.text="";n.ownId=Math.random().toString(36).substring(7);var h=$("input",i),a=null,c=null;t(function(){a=$(".ui-picker-list",i);c=$("button",i)});n.updateModel=function(t){n.internalData=t;s.$setViewValue(t);n.text=t?typeof t=="string"&&n.acceptRawValue?t:n.renderNoEscape(n.itemTemplate,t):""};s.$formatters.push(function(t){return n.text=t?n.renderNoEscape(n.itemTemplate,t):"",n.internalData=t,t});v=function(){n.listUpwards?a.position({my:"left bottom",at:"left top",of:h,collision:"none"}):a.position({my:"left top",at:"left bottom +10",of:h,collision:"none"})};n.toggleList=function(){var i=!n.listVisible;i&&(u.popupOpened(n.ownId),l(),t(function(){n.fixedPosition&&v();o.elementInViewport(a)||(n.listUpwards=!n.listUpwards,n.fixedPosition&&v())}));n.listVisible=i};n.hideList=function(i){var r=i?0:500,u=t(function(){n.listVisible=!1},r);n.hideTimeout=u};u.addCallback(n.closeList=function(t){n.listVisible&&t!==n.ownId&&n.hideList(!0)});l=function(){n.hideTimeout&&t.cancel(n.hideTimeout)};n.$on("cancel-hide-list",function(){t(function(){l()})});n.mouseOver=function(){l()};n.mouseOut=function(){n.hideTimeout=t(function(){n.hideList(!0)},300)};n.search=function(t){var i={SearchFilter:t,ItemCount:n.searchPageSize};return n.dataSourceArgs&&(i=angular.extend(i,n.dataSourceArgs)),f.getData(n.itemSource,i)};var y=function(i,r){n.listVisible&&(h.focus(),n.updateModel(r),t(function(){n.hideList(!0)}))},b=function(){l()},k={source:function(t,i){n.search(t.term).then(function(t){var r=t&&t.DataList&&t.DataList.length?t.DataList:[];i($.map(r,function(t){var i=n.renderNoEscape(n.itemTemplate,t);return{label:i,value:i,IdC:t.IdC,item:t}}))})},select:function(t,i){var r=i&&i.item&&i.item.item?i.item.item:null;n.updateModel(r)},change:function(t,i){if(i.item||!h.val())n.updateModel(i.item?i.item.item:null);else if(n.acceptRawValue){var u=n.renderNoEscape(n.itemTemplate,n.internalData||""),r=h.val();r&&r!==u&&n.updateModel(r)}}
1,selectFirst:n.selectFirst,autoFocus:n.selectFirst},d={_resizeMenu:function(){var i=this.menu.element,t=0;n.menuWidth?t=n.menuWidth:this.element.outerWidth();i.outerWidth(t)},_renderMenu:function(t,i){n.hideList();var r=this;t.addClass("table");_.forEach(i,function(n,i){var u=r._renderItemData(t,n);i%2||u.addClass("even")})},_renderItem:function(t,i){var u=[],o=n.listTemplateClasses.split("|"),f,r;return i.item&&(f=e.parseText(n.templates.listTemplate,i.item),_.forEach(f,function(n,t){var i=$("<div><\/div>").text(n.value),r=o[t];r&&i.addClass(r);u.push(i)})),r=$("<li><\/li>"),n.searchResultRowClass&&r.addClass(n.searchResultRowClass),r.data("item.autocomplete",i).append(u).appendTo(t),r}};n.change=function(){n.updateModel(n.internalData)};n.renderNoEscape=function(n,t){return e.renderText(n,t,!0)};p=function(){return n.internalData?!1:!0};n.isValueEmpty=p;w=function(n,t,i,r){n.autocomplete(t);r&&_.extend(h.data("ui-autocomplete"),r)};h.blur(function(){if(!n.$$destroyed){var t=h.val();n.text=t;t||n.updateModel(null);n.hideList()}}).focus(function(){n.hideTimeout&&t.cancel(n.hideTimeout);n.hideTimeout=null});w(h,k,n.listTemplate,d);n.$on("pagedlist-item-click",y);n.$on("hierarchy-item-click",y);n.$on("pagedlist-navigation-click",b);n.$on("ui-autocomplete-update",function(t,i,r){if(!t.defaultPrevented&&i==n.elementID){var u="ui-pagedlist-update";n.mode==1&&(u="ui-hierarchy-update");n.$broadcast(u,null,r);t.preventDefault()}});n.$watch("inputClass",function(t,i){var r,u;if(t!=i)if(typeof n.inputClass=="string")h.addClass(n.inputClass);else for(r in n.inputClass)u=n.inputClass[r],u?h.addClass(r):h.removeClass(r)});n.$watch("pickerDisabled",function(n){n&&n!=="false"?(h.prop("disabled",!0),c&&c.prop("disabled",!0)):(h.prop("disabled",!1),c&&c.prop("disabled",!1))});n.$watch("userShowButton",function(t,i){t!==i&&(n.showButton=""+(t||!1)!="false")});n.$watch("userSourceArgs",function(t,i){t!==i&&(n.dataSourceArgs=angular.copy(t))});n.directiveInitializedDefer&&n.directiveInitializedDefer.resolve()}}}]).constant("uiAutocompletePickerConfig","").directive("uiAutocomplete",["uiAutocompleteConfig","$timeout","$q","$compile","closePopupService",function(n,t,i,r,u){return{require:"?ngModel",link:function(i,f,e,o){var s=function(){return angular.extend({},n,i.$eval(e.uiAutocomplete),{array:!0})},h=function(){var n=s(),e,a,h,c,v,l;if(n.ownId=Math.random().toString(36).substring(7),e=null,n.hierarchy&&(a=n.getHierarchyFunction?n.getHierarchyFunction:"getHierarchy",h="",n.sourceParameters&&(h=angular.toJson(n.sourceParameters)),c=r("<ui-hierarchy hierarchy-source='"+a+"' source-parameters='"+h+"' hierarchy-id='"+n.ownId+"' />")(i),$("body").append(c),o.$viewValue&&t(function(){i.$broadcast("hierarchy-node-selected",o.$viewValue)}),e=c),v=$(f).data("settings"),v&&f.AutoCompletePicker("destroy"),l=angular.copy(n),l.innerElement=e,f.AutoCompletePicker(l),o){f.on("blur",function(){i.$apply(function(){f.AutoCompletePicker("setValue",f.AutoCompletePicker("getValue"));o.$setViewValue(f.AutoCompletePicker("getValue"))})});o.$render=function(){var n=o.$viewValue;f.AutoCompletePicker("setValue",n)};f.on("valueChanged",function(n,t,r){i.$emit("autoCompleteValueChanged",n,t,r);i.$broadcast("hierarchy-node-selected",t);i.$apply(function(){o.$setViewValue(t)})});n.hierarchy&&i.$on("hierarchy-node-selected",function(i,r){r&&r.hierarchyId==n.ownId&&t(function(){f.AutoCompletePicker("setValue",r.node?r.node.idC:null);o.$setViewValue(f.AutoCompletePicker("getValue"))})});n.listVisible=!1;i.closeList=function(t){n.listVisible&&t!=n.ownId&&(n.listVisible=!1,f.AutoCompletePicker("hideList"))};f.on("listOpened",function(){n.listVisible=!0;u.popupOpened(n.ownId)});f.on("listClosed",function(){n.listVisible=!1});u.addCallback(i.closeList)}o&&o.$render()};i.$watch(s,h,!0);e.$observe("readonly",function(n){var t=$(f).data("settings");t&&f.AutoCompletePicker("setReadOnly",n)});i.$on("$destroy",function(){f.AutoCompletePicker("destroy")})}}}]).constant("uiAutocompleteConfig","");angular.module("TiimaApp").directive("uiListEditor",["uiListEditorConfig",function(n){return{require:"?ngModel",link:function(t,i,r,u){var f=function(){return angular.extend({},n,t.$eval(r.uiListEditor),{array:!0})},e=function(){var t=f(),n;u&&(u.$render=function(){var n=u.$viewValue;i.ListEditor("setData",n)});n=$(i).data("settings");n&&i.ListEditor("destroy");i.ListEditor(t);i.on("valueChanged",function(n,t){u.$setViewValue(t)});u&&u.$render()};
1t.$watch(f,e,!0)}}}]).constant("uiListEditorConfig","");angular.module("TiimaApp").directive("ngModelOnblur",function(){return{restrict:"A",require:"ngModel",link:function(n,t,i,r){i.type!=="radio"&&i.type!=="checkbox"&&(t.unbind("input").unbind("keydown").unbind("change"),t.bind("blur",function(){r.$setViewValue(t.val())}))}}});angular.module("TiimaApp").directive("uiFullsize",["uiFullsizeConfig","$window","$timeout",function(n,t,i){return{require:"?ngModel",link:function(r,u,f){var o=function(){return angular.extend({x:!1,y:!1,siblingsX:!1,siblingsY:!1},n,r.$eval(f.uiFullsize),{array:!0})},s=function(){r.windowHeight=$(t).height();r.windowWidth=$(t).width();var n=$(u).offsetParent(),i=$(u).parent();r.parentSize={x:n.width(),y:n.height()};r.relativeOffset=$(u).position();r.offset=$(u).offset();r.margins={x:$(u).outerWidth()-$(u).width()+parseInt(i.css("padding-right")),y:$(u).outerHeight()-$(u).height()+parseInt(i.css("padding-bottom"))}},e=function(n){var t,i,f,e,h;n&&n.targetScope==r||(t=o(),s(),t.x&&(i=r.windowWidth-r.offset.left-r.margins.x,f=r.parentSize.x-r.relativeOffset.left-r.margins.x,$(u).width(Math.min(i,f))),t.y&&(e=r.windowHeight-r.offset.top-r.margins.y,h=r.parentSize.y-r.relativeOffset.top-r.margins.y,$(u).height(Math.min(e,h))),r.$broadcast("ui-resized"))},h=function(){angular.element(t).bind("resize",function(){e()});i(function(){e();r.$apply()})};r.$on("ui-resized",e);r.$watch(o,h,!0)}}}]).constant("uiFullsizeConfig","");angular.module("TiimaApp").directive("ngBlurFocus",function(){return{restrict:"E",require:"?ngModel",link:function(n,t,i,r){if(r){t.on("focus",function(){t.addClass("has-focus");n.$apply(function(){r.hasFocus=!0})});t.on("blur",function(){t.removeClass("has-focus");t.addClass("has-visited");n.$apply(function(){r.hasFocus=!1;r.hasVisited=!0;r.$pristine=!1})});t.closest("form").on("submit",function(){t.addClass("has-visited");n.$apply(function(){r.hasFocus=!1;r.hasVisited=!0;r.$pristine=!1})})}}}});angular.module("TiimaApp").directive("validateRow",["$timeout",function(){return{restrict:"A",require:"ngModel",controller:"validateController",link:function(n,t,i,r){var e=function(){return angular.extend({},n.$eval(i.validateController),{array:!0})},u=e(),f="tiimaValidateRow",o=u.errorMessage||"Invalid row",s=u.level||"field",h=u.priority||1e3;n.level=u.level||"field";n.type=f;n.insertErrorMessage(t,f,o,s=="group",h);n.$watch(i.ngModel,function(){var i=!0,u=r.$modelValue;angular.isUndefined(u)||(i=!1);i?n.removeError(r,t,f):n.setError(r,t,f)},!0)}}}]);angular.module("TiimaApp").directive("tiimaValidateLessThan",["tiimaValidateLessThanConfig","toolsService","$timeout",function(n){return{restrict:"A",require:"ngModel",controller:"validateController",link:function(t,i,r,u){var s=function(){return angular.extend({},n,t.$eval(r.tiimaValidateLessThan),{array:!0})},f=s(),e="tiimaValidateLessThan",h=f.errorMessage||"Value to large",c=f.level||"field",l=f.priority||1e3,o;t.level=f.level||"field";t.type=e;t.insertErrorMessage(i,e,h,c=="group",l);o=function(n){var f=s(),r=!1;return r=f.compareTo?n<=f.compareTo:!0,r?t.setError(u,i,e):t.removeError(u,i,e),r?n:undefined};u.$parsers.unshift(o);t.addBlurValidationHandler(o)}}}]).constant("tiimaValidateLessThanConfig","");angular.module("TiimaApp").directive("tiimaValidateGreaterThan",["tiimaValidateGreaterThanConfig","toolsService",function(n){return{restrict:"A",require:"ngModel",controller:"validateController",link:function(t,i,r,u){var s=function(){return angular.extend({},n,t.$eval(r.tiimaValidateGreaterThan),{array:!0})},f=s(),e="tiimaValidateGreaterThan",h=f.errorMessage||"Value too small",c=f.level||"field",l=f.priority||1e3,o;t.level=f.level||"field";t.type=e;t.insertErrorMessage(i,e,h,c=="group",l);o=function(n){var r=s(),f=!1;return f=r.compareTo?n>=r.compareTo:r.compareTo==null?n!=null:!0,f?t.setError(u,i,e):t.removeError(u,i,e),f?n:undefined};u.$parsers.unshift(o);t.addBlurValidationHandler(o)}}}]).constant("tiimaValidateGreaterThanConfig","");angular.module("TiimaApp").directive("tiimaValidateDateRange",["tiimaValidateDateRangeConfig","toolsService",function(n,t){return{restrict:"A",require:"ngModel",controller:"validateController",link:function(i,r,u,f){var h=function(){return angular.extend({},n,i.$eval(u.tiimaValidateDateRange),{array:!0})},e=h(),o="tiimaValidateDateRange",c=e.errorMessage||"Invalid date range",l=e.level||"field",a=e.priority||1e3,s;i.level=e.level||"field";i.type=o;i.insertErrorMessage(r,o,c,l=="group",a);s=function(n){var u=!1,s;return n.getTime&&(s=t.getDateOnly(n.getTime()),u=e.min&&e.max?e.min.getTime()<=s&&s<=e.max.getTime():!0),u?i.setError(f,r,o):i.removeError(f,r,o),u?n:undefined};f.$parsers.unshift(s);i.addBlurValidationHandler(s)}}}]).constant("tiimaValidateDateRangeConfig","");angular.module("TiimaApp").directive("tiimaValidateNumericRange",["tiimaValidateNumericRangeConfig",function(n){return{restrict:"A",require:"ngModel",controller:"validateController",link:function(t,i,r,u){var s=function(){return angular.extend({},n,t.$eval(r.tiimaValidateNumericRange),{array:!0})},f=s(),e="tiimaValidateNumericRange",h=f.errorMessage||"Invalid numeric range",c=f.level||"field",l=f.priority||1e3,o;t.level=f.level||"field";t.type=e;t.insertErrorMessage(i,e,h,c=="group",l);o=function(n){var r=!1;return n==null&&f.allowNull?r=!0:isNaN(n)||(r=isNaN(f.min)||isNaN(f.max)?isNaN(f.min)?isNaN(f.max)?!0:Number(n)<=f.max:f.min<=Number(n):f.min<=Number(n)&&Number(n)<=f.max),r?t.removeError(u,i,e):t.setError(u,i,e),r?n:undefined};u.$parsers.unshift(o);t.addBlurValidationHandler(o)}}}]).constant("tiimaValidateNumericRangeConfig","");angular.module("TiimaApp").directive("tiimaValidateTimeRange",["tiimaValidateTimeRangeConfig","toolsService","$window",function(n,t){return{restrict:"A",require:"ngModel",controller:"validateController",link:function(i,r,u,f){var h=function(){return angular.extend({},n,i.$eval(u.tiimaValidateTimeRange),{array:!0})},e=h(),o="tiimaValidateTimeRange",c=e.errorMessage||"Invalid time range",l=e.level||"field",a=e.priority||1e3,s;i.level=e.level||"field";i.type=o;i.insertErrorMessage(r,o,c,l=="group",a);s=function(n){var u=!1,s;return n?(n.getTime||(n=t.parseTime(n,null,e.allowOver24h)),n.getTime&&(s=(n.getTime()-n.getTimezoneOffset()*6e4)/36e5,u=e.min<=s&&s<=e.max)):u=e.allowNull?!0:!1,u?i.setError(f,r,o):i.removeError(f,r,o),u?n:undefined};f.$parsers.unshift(s);i.addBlurValidationHandler(s)}}}]).constant("tiimaValidateTimeRangeConfig","");angular.module("TiimaApp").directive("tiimaValidateRequired",["$timeout","validationService",function(n){return{restrict:"A",require:"ngModel",controller:"validateController",link:function(t,i,r,u){var a=function(){return angular.extend({},t.$eval(r.tiimaValidateRequired),{array:!0})},o=a(),f="tiimaValidateRequired",v=o.errorMessage||"Required field",y=o.level||"field",p=o.priority||1e3;t.level=o.level||"field";t.type=f;t.insertErrorMessage(i,f,v,y=="group",p);i.is(":input")&&r.$set("ngTrim","false");var h=!0,c="tiimaValidationOverride",s=parseInt(r["tiimaValidateRequiredDelay"])||0,w=parseInt(r["tiimaValidateRequiredMinLength"])||0,e=function(r){var e=!1;return e=h?!t.isEmpty(r,w):!0,e?s?n(function(){t.removeError(u,i,f)},s):t.removeError(u,i,f):s?n(function(){t.setError(u,i,f)},s):t.setError(u,i,f),r},l=_.debounce(function(){var t=r[c]!=="true",i=t!==h;h=t;i&&n(function(){e(u.$viewValue)})},100);r.$observe(c,function(){l()});l();u.$parsers.unshift(e);u.$formatters.unshift(e);t.validate=e;t.addBlurValidationHandler(e)}}}]);angular.module("TiimaApp").directive("tiimaCustomValidate",["$timeout","$q","validationService",function(n,t){return{restrict:"A",require:"ngModel",controller:"validateController",link:function(i,r,u,f){var w=function(){return angular.extend({},i.$eval(u.tiimaCustomValidate),{array:!0})},e=w(),h="tiimaCustomValidate",nt=e.errorMessage||"Unknown error",c=e.level||"field",o=e.name||h,l=!!(e.async||!1),a=e.includeGroupScope?e.includeGroupScope.split(","):null,b=function(n){var u,r;return e.validatorFunction?c=="group"&&a?(u=i.getGroupScope(a),e.validatorFunction(n,u)):e.validatorFunction(n):l?(r=t.defer(),r.resolve(null),r.promise):null},v=b,s;i.level=e.level||"field";i.type=e.name||h;s={};_.forEach(e.errorTypes,function(n){i.insertErrorMessage(r,n.type,n.errorMessage,c=="group",n.priority||1e3);s[n.type]=n});var k=parseInt(u["tiimaCustomValidateDelay"])||0,y=function(n){var t=i.getErrorSet(),u=[],e=[];_.forOwn(t,function(t,i){n[i]||e.push(i)});_.forOwn(n,function(n,i){t[i]||u.push(i)});_.forEach(u,function(n){var t=s[n];t?i.setError(f,r,t.type):i.setError(f,r,h)});_.forEach(e,function(n){var t=s[n];t?i.removeError(f,r,t.type):i.removeError(f,r,h)});i.removeError(f,r,o);i.setErrorSet(n)},p=function(n,t){var u=n||t,i=v(u),r;return i&&(r={},i.valid||_.forEach(i.errors,function(n){r[n]=!0}),y(r)),i?i.valid:!1},d=function(i,r){var u=i||r;return n(function(){var n=v(u);return n.then(function(n){var r=!1,i;return n&&(i={},n.valid||_.forEach(n.errors,function(n){i[n]=!0}),y(i),r=n.valid),r?!0:t.reject(o)},function(){t.reject(o)})})},g=_.debounce(p,k);i.validate=function(n){g(n)};i.$on("remove-error",function(n,t){var u=s[t];u&&(i.removeError(f,r,o,!0),i.removeError(f,r,u.type,!0))});l?f.$asyncValidators[o]=d:f.$validators[o]=p}}}]);angular.module("TiimaApp").directive("tiimaValidateCodeUnique",["validateCodeUniqueConfig","$http","$timeout","toolsService",function(n,t,i,r){return{restrict:"A",require:"ngModel",controller:"validateController",link:function(u,f,e,o){var a=function(){return angular.extend({},n,u.$eval(e.tiimaValidateCodeUnique),{array:!0})},h=a(),s="tiimaValidateCodeUnique",y=h.errorMessage||"Code not unique",p=h.level||"field",w=h.priority||1e3,v=parseInt(e["tiimaValidateCodeUniqueDelay"])||0,c,l;u.level=h.level||"field";u.type=s;u.previousValue=null;u.insertErrorMessage(f,s,y,p=="group",w);c=function(n){if(n===""||typeof n=="undefined")u.removeError(o,f,s);else if(u.previousValue!==n){var e=a(),h=e.args||{};h.Code=u.previousValue=n;v?i(function(){r.handleHttpPost(t.post(e.controllerUrl,h),function(n){n.Data.Result?u.removeError(o,f,s):u.setError(o,f,s)},null,"inner",!1,null)},v):r.handleHttpPost(t.post(e.controllerUrl,h),function(n){n.Data.Result?u.removeError(o,f,s):u.setError(o,f,s)},null,"inner",!1,null)}return n};l=_.debounce(c,500);o.$parsers.unshift(function(n){return l(n),n});u.addBlurValidationHandler(function(n){l.cancel();c(n)})}}}]).constant("validateCodeUniqueConfig","");angular.module("TiimaApp").directive("validateMaxLength",["validateMaxLengthConfig","toolsService",function(n){return{restrict:"A",require:"ngModel",controller:"validateController",link:function(t,i,r,u){var s=function(){return angular.extend({},n,t.$eval(r.validateMaxLength),{array:!0})},f=s(),e="validateMaxLength",h=f.errorMessage||"Value too long",c=f.level||"field",l=f.priority||1e3,o;t.level=f.level||"field";t.type=e;t.insertErrorMessage(i,e,h,c=="group",l);o=function(n){var f=s(),r=!1;return r=f.maxLength?(""+(n||"")).length<=f.maxLength:!0,r?t.setError(u,i,e):t.removeError(u,i,e),r?n:undefined};u.$parsers.unshift(o);t.addBlurValidationHandler(o)}}}]).constant("validateMaxLengthConfig","");angular.module("TiimaApp").directive("textAngularValidationEnabler",["localizationService",function(){"use strict";return{restrict:"A",require:"ngModel",controller:"validationEnabledElementController",link:function(n,t){n.getValidationElement=function(){return{elementType:"div.ta-root",inputElement:t.find("textarea.ta-bind")}};n.directiveInitializedDefer&&n.directiveInitializedDefer.resolve()}}}]);angular.module("TiimaApp").directive("tiimaAutoFocus",[function(){return{restrict:"A",link:function(n,t){var r=function(){return angular.extend({},n.$eval(attrs.tiimaAutoFocus),{array:!0})},i=r();i.disabled||(i.elementSelector?t.find(i.elementSelector).prop("autofocus",""):t.prop("autofocus",""))}}}]);angular.module("TiimaApp").directive("ensureRequired",["localizationService",function(n){return{require:"ngModel",link:function(t,i,r,u){t.$wat
1ch(r.ngModel,function(){var f=$(i).data("settings"),e=f&&f.controlType?f.controlType:null,h;angular.isUndefined(r.uiLocalizedtext)||(e="localizedtext");angular.isUndefined(r.uiAutocomplete)||(e="autocomplete");angular.isUndefined(r.uiDate)||(e="datepicker");angular.isUndefined(r.uiTime)||(e="timepicker");var t=!1,o=u.$viewValue,s=o==null||angular.isUndefined(o);switch(e){case"autocomplete":t=s;break;case"localizedtext":t=n.isEmptyText(o,f?f.fieldName:null);break;case"datepicker":h=i.val();h?s?t=!0:!o.getTime:t=!0;t=!0;break;case"timepicker":t=u.$viewValue==null||angular.isUndefined(u.$viewValue)}u.$setValidity("required",!t)})}}}]);angular.module("TiimaApp").directive("placeholderAttr",["$timeout","$parse",function(){return{restrict:"A",scope:{placeholderAttr:"@"},link:function(n,t){var i=navigator.userAgent.match(/MSIE/),r=navigator.userAgent.match(/Trident\/7\./);i||r||n.$watch("placeholderAttr",function(i){t.attr("placeholder",n.$eval(i))})}}}]).directive("uiLocalizedText",["uiLocalizedTextConfig","$filter","$timeout","localizationService",function(n,t,i,r){"use strict";var e,u;e={};angular.extend(e,n);var f=function(n,t){var r={},i;if(n&&n.length)for(i=0;i<n.length;i++)r[n[i].LanguageIdC]=n[i][t];return r},o=function(n,t){var e=[],i,r,f;if(u)for(i=0;i<u.length;i++)r=u[i].IdC,f={LanguageIdC:r},f[t]=n[r],e.push(f);return e},s=function(n,t,i){var e=f(n,i),s=f(t,i),o={},u,r;if(t)for(u=0;u<t.length;u++)o[t[u].LanguageIdC]=t[u];return r={},_.forOwn(s,function(n,t){r[t]=e[t]?n:""}),_.forOwn(e,function(n,u){if(!o[u]){var f={LanguageIdC:u};f[i]=n;t||(t=[]);t.push(f)}r[u]=e[u]}),t&&_.forEach(t,function(n){var t=n.LanguageIdC;n[i]=r[t]?r[t]:""}),t};return{restrict:"E",require:"^ngModel",templateUrl:"MVC/ScriptsApp/directives/uiLocalizedtextTemplate.html",controller:"validationEnabledElementController",scope:{fieldName:"@",userTextArea:"@textArea",userReadonly:"@readonly",placeholder:"@"},mergeValues:s,buildLocalizedText:o,buildTextObject:f,link:function(t,i,h,c){var l=function(){return angular.extend({},n,{})};t.value={currentLanguage:{IdC:r.getCurrentLanguageIdC()},currentLanguageValue:"",currentLanguageValueLong:""};t.internalValue={};t.textArea=t.userTextArea||!1;t.readonly=t.userReadonly||!1;t.setValue=function(){t.internalValue||(t.internalValue={});t.value.currentLanguage&&(t.internalValue[t.value.currentLanguage.IdC]=t.textArea?t.value.currentLanguageValueLong:t.value.currentLanguageValue);var n=c.$modelValue,i=s(o(t.internalValue,t.fieldName),n,t.fieldName);c.$setViewValue(i)};t.onBlur=function(){t.setValue()};t.onValueChanged=function(){t.setValue()};t.isValueEmpty=function(){if(!t.internalValue)return!0;var n=0;return _.forOwn(t.internalValue,function(t){t&&n++}),n===0};t.$watch("value.currentLanguage",function(n,i){n&&i&&n.IdC!=i.IdC&&(t.internalValue||(t.internalValue={}),n&&(t.textArea?t.value.currentLanguageValueLong=t.internalValue[n.IdC]||"":t.value.currentLanguageValue=t.internalValue[n.IdC]||""))});r.getActiveLanguages().then(function(n){u=t.languages=n?n.languages:null});e=l();c.$formatters.push(function(n){var i=f(n,t.fieldName);return t.value.currentLanguage&&(t.textArea?t.value.currentLanguageValueLong=i?i[t.value.currentLanguage.IdC]:null:t.value.currentLanguageValue=i?i[t.value.currentLanguage.IdC]:null),t.textArea?t.value.currentLanguageValueLong||(t.value.currentLanguageValueLong=""):t.value.currentLanguageValue||(t.value.currentLanguageValue=""),t.internalValue=i,i});t.directiveInitializedDefer&&t.directiveInitializedDefer.resolve()}}}]).constant("uiLocalizedTextConfig","").directive("uiLocalizedtextInput",["uiLocalizedtextConfig","$filter","localizationService",function(n,t,i){return{require:"?ngModel",link:function(r,u,f,e){var o=function(){return angular.extend({},n,r.$eval(f.uiLocalizedtext),{array:!0})},s=function(){var n=o(),t=i.getActiveLanguages().then(function(t){var f,o,s;if(n.languages=t?t.languages:null,f=function(n,t){var r={},i;if(n&&n.length)for(i=0;i<n.length;i++)r[n[i].LanguageIdC]=n[i][t];return r},o=function(n,t,i){var o=f(n,i),c=f(t,i),l={},e,u,s,r,h;if(t)for(r=0;r<t.length;r++)l[t[r].LanguageIdC]=t[r];e={};for(u in c)e[u]=o[u]?c[u]:"";for(u in o)l[u]||(s={LanguageIdC:u},s[i]=o[u],t||(t=[]),t.push(s)),e[u]=o[u];if(t)for(r=0;r<t.length;r++)h=t[r].LanguageIdC,t[r][i]=e[h]?e[h]:"";return t},e){u.on("blur",function(){r.$apply(function(){u.LocalizedText("setValue",u.LocalizedText("getValue"));var t=o(u.LocalizedText("getValue"),e.$viewValue,n.fieldName);e.$setViewValue(angular.copy(t))})});n.onValueChanged=function(){r.$apply(function(){u.LocalizedText("setValue",u.LocalizedText("getValue"));var t=o(u.LocalizedText("getValue"),e.$viewValue,n.fieldName);e.$setViewValue(angular.copy(t))})};e.$render=function(){var n=e.$viewValue;u.LocalizedText("setValue",n)}}s=$(u).data("settings");s&&u.LocalizedText("destroy");n.currentLanguage=i.getCurrentLanguage();
1u.LocalizedText(n);e&&e.$render()})};t("initialized")().then(function(){r.$watch(o,s,!0)})}}}]).constant("uiLocalizedtextConfig","");angular.module("TiimaApp").directive("focusOn",["$timeout",function(){return function(n,t,i){n.$on(i.focusOn,function(n,i){var r=t.length&&t[0].tagName==="INPUT"?t:t.find("input").first();r.focus();i&&r.select()})}}]);angular.module("TiimaApp").directive("imageonload",["resourcingPrintService",function(n){return{restrict:"A",link:function(t,i){n.addImage();i.bind("load",function(){n.imageLoaded()})}}}]);angular.module("TiimaApp").directive("uiGantt",["uiGanttConfig",function(n){return{require:"?ngModel",link:function(t,i,r,u){var f=function(){return angular.extend({},n,t.$eval(r.uiGantt),{array:!0})},e=function(){var n=f();u&&(u.$render=function(){});gantt.init(i);u&&u.$render()};t.$watch(f,e,!0)}}}]).constant("uiGanttConfig","");angular.module("TiimaApp").directive("ncgTiimaRequestVerificationToken",["$http",function(n){return function(t,i,r){n.defaults.headers.common.RequestVerificationToken=r.ncgTiimaRequestVerificationToken||"no request verification token"}}]);angular.module("TiimaApp").directive("employeeRestriction",["$rootScope","$timeout","tiimaEnumsService","restrictionService","toolsService",function(n,t,i,r,u){return{restrict:"E",scope:{paginate:"@",elementActive:"="},templateUrl:"MVC/ScriptsApp/directives/employee/employeeRestrictionTemplate.html",controller:["$scope","$element","$attrs",function(n){n.selectedRestrictionValue=null;n.dateFilter=new Date;n.periods=[];n.selectedPeriod=null;n.restrictions=null;n.restrictionItemTemplate="{{Code}} {{Name}} ({{TypeName}})";n.isPeriodSelectionVisible=function(){return r.getPeriodVisibility()};n.getRestrictionValue=function(n){return r.loadData(n)};n.addRestriction=function(u,f){u&&(u.RestrictionType==1&&(u.SubLevels=!0),r.addRestriction(u)&&n.emitEvent(i.getValue("RestrictionControllerEventEnum","RestrictionAdd"),u),n.selectedRestrictionValue=null,t(function(){$(".restrictionAutoComplete:first",$(f.target).parent()).focus()}),n.restrictions=r.getRestrictions())};n.removeRestriction=function(t){t&&(r.removeRestriction(t)&&n.emitEvent(i.getValue("RestrictionControllerEventEnum","RestrictionRemove"),t),n.restrictions=r.getRestrictions())};n.dateFilterChange=function(){n.emitEvent(i.getValue("RestrictionControllerEventEnum","DateFilterChange"),u.getDateOnly(n.dateFilter))};n.selectPeriod=function(t){t&&(n.SelectedPeriod=t);n.emitEvent(i.getValue("RestrictionControllerEventEnum","PeriodChange"),n.SelectedPeriod)};n.toggleSubLevels=function(t){t.SubLevels=!t.SubLevels;r.updateRestriction(t)&&n.emitEvent(i.getValue("RestrictionControllerEventEnum","RestrictionUpdate"),t)};n.emitEvent=function(t,r){n.$emit(t,r);n.$emit(i.getValue("RestrictionControllerEventEnum","RestrictionChange"),r)}}],link:function(){}}}]);angular.module("TiimaApp").directive("employeeList",["$rootScope","$q","$timeout","tiimaEnumsService","settingService","toolsService","employeeService","datasourceService","Employee",function(n,t,i,r,u,f,e,o,s){return{restrict:"E",scope:{enableFilter:"@",useRestriction:"=",restrictionOnTop:"=",employeeGetAction:"@",selectionChanged:"&",userDateChanged:"&dateChanged",listUpdated:"&",userOnlySubordinatesByDefault:"@onlySubordinatesByDefault",userPeriodSelection:"@periodSelection",periods:"=",paginate:"=",pageSize:"=",userShowWarningColumn:"@showWarningColumn",userShowStatusColumn:"@showStatusColumn"},templateUrl:"MVC/ScriptsApp/directives/employee/employeeListTemplate.html",controller:["$scope","$element","$attrs",function(n){var h,c;n.search={filter:"",dateFilter:new Date};n.employees=[];n.loading=!1;n.dateRange={start:new Date,end:new Date};n.prevRange={start:new Date,end:new Date};n.subOrdinateSettings={selectSubOrdinatesOf:!1};n.subordinatesOf=[];n.onlySubordinatesByDefault=n.userOnlySubordinatesByDefault==="true";n.periodSelection=n.userPeriodSelection==="true";n.values={selectedPeriod:null};n.showWarningColumn=n.userShowWarningColumn==="true";n.showStatusColumn=n.userShowStatusColumn==="true";n.dateChanged=n.userDateChanged&&typeof n.userDateChanged=="function"&&typeof n.userDateChanged()=="function"?n.userDateChanged:null;n.ownSubordinates=n.onlySubordinatesByDefault;n.byUserRights=!1;n.restrictionsCollapsed=!0;n.searchTimeout=null;n.restrictions=[];n.selectedEmployee=null;n.currentEmployeeIdC=u.getSetting("CurrentEmployeeIdC");n.firstRefresh=!0;n.$watch("userOnlySubordinatesByDefault",function(t,i){if(t!==i){var r=n.onlySubordinatesByDefault;n.onlySubordinatesByDefault=n.userOnlySubordinatesByDefault==="true";n.onlySubordinatesByDefault!==r&&(n.ownSubordinates=n.onlySubordinatesByDefault)}});n.employeeSelected=function(t){n.selectionChanged()&&n.selectionChanged()(t)};n.updated=function(t){n.listUpdated()&&n.listUpdated()(t&&t.DataList?t.DataList:[])};n.listFields=[{dataType:1,heading:"LIST_FIELDS.EMPLOYEENUMBER",name:"ID2","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,heading:"LIST_FIELDS.NAME",name:"Name","class":"listcellName",headingClass:"listcellName"}];h=t.defer();n.employeeDataSource=o.createDatasource({method:function(r){var u=t.defer();return h.promise.then(function(){var f=r.parameterDefer;f||(f=t.defer(),f.resolve(),f=f.promise);f.then(function(){s.getAll(r,n.employeeGetAction||null).then(function(t){i(function(){n.updated(t)});u.resolve(t)})})}),u.promise}});n.getUsers=function(i){var u=t.defer(),r;return n.loading=!0,r={},_.forEach(n.subordinatesOf,function(n){n.checked&&(r[n.IdC]=!0)}),s.getAllSubstitutableEmployees({StartDate:n.dateRange.start,EndDate:n.dateRange.end}).then(function(t){var f=t&&t.DataList?t.DataList:[];_.forEach(f,function(n){n.checked=r[n.IdC]?!0:!1});n.subordinatesOf=f;n.loading=!1;i&&i();u.resolve()}),u.promise};e.setFilterDate(n.search.dateFilter);c=function(){var t={searchFilter:n.search.filter,employmentData:!0,byUserRights:n.byUserRights,getInformationForWorkHours:n.getInformationForWorkHours,items:[]},s=null,h=null,f=null,o,a;n.values.selectedPeriod?(t.StartDate=n.values.selectedPeriod.StartDate,t.EndDate=n.values.selectedPeriod.EndDate,s=Number(n.values.selectedPeriod.ReferenceType),o=null,s<r.getValue("PeriodTypeEnum","MonthPeriods")&&(a=r.getValue("AbsenceQueryParameterTypeEnum","Organisation"),s===r.getValue("PeriodTypeEnum","OrganisationPeriods")?o=f={}:(o=h={},a=r.getValue("AbsenceQueryParameterTypeEnum","PaymentGroup")),_.forEach(n.values.selectedPeriod.References,function(n){o[n]=!0}))):t.Date=n.search.dateFilter;var c=n.restrictions,i=null,l=e.getOrganisation();!n.restrictionsCollapsed&&c&&c.length&&_.forEach(c,function(n){var u=e.convertRestrictionParameterType(n.RestrictionType),o=!1,s,c;u===r.getValue("AbsenceQueryParameterTypeEnum","Organisation")&&f?(o=!0,i||(i={}),s=[n.IdC],n.SubLevels&&l&&l.getSubNodes&&(c=l.getSubNodes(n.IdC),c&&_.forEach(c,function(n){s.push(n)})),_.forEach(s,function(n){i[n]=!0})):u===r.getValue("AbsenceQueryParameterTypeEnum","PaymentGroup")&&h&&(o=!0,i||(i={}),i[n.IdC]=!0);o||t.items.push({Type:u,DataType:r.getValue("AbsenceQueryParameterValueType","ID"),IdCValue:n.IdC,SubLevels:n.SubLevels})});var v=f?r.getValue("AbsenceQueryParameterTypeEnum","Organisation"):r.getValue("AbsenceQueryParameterTypeEnum","PaymentGroup"),y=f?f:h,p=!1;return y&&(_.forOwn(y,function(n,u){(i===null||i[u])&&(t.items.push({Type:v,DataType:r.getValue("AbsenceQueryParameterValueType","ID"),IdCValue:u,SubLevels:!1}),p=!0)}),p||t.items.push({Type:v,DataType:r.getValue("AbsenceQueryParameterValueType","ID"),IdCValue:-1,SubLevels:!1})),e.isRestrictionsDisabled()||(n.ownSubordinates&&t.items.push({Type:4,DataType:1,IdCValue:u.getSetting("CurrentEmployeeIdC")}),n.subOrdinateSettings.selectSubOrdinatesOf&&n.subordinatesOf&&_.forEach(n.subordinatesOf,function(n){n.checked&&t.items.push({Type:4,DataType:1,IdCValue:n.IdC})})),angular.extend(t,e.getExtraArguments())};n.employeeDataSource.datasourceArgs=c();var a=function(){var t=c();_.forOwn(t,function(t,i){n.employeeDataSource.datasourceArgs[i]=t});n.employeeDataSource.datasourceArgs.Date&&n.employeeDataSource.datasourceArgs.StartDate&&n.employeeDataSource.datasourceArgs.EndDate&&delete n.employeeDataSource.datasourceArgs.Date;n.$broadcast("ui-pagedlist-update")},f=_.debounce(a,500),l=function(t,i){i||(i=new Date(t.getTime()));n.dateRange={start:t,end:i};f();var u=n.dateRange.start.getTime()+"|"+n.dateRange.end.getTime(),o=n.prevRange.start.getTime()+"|"+n.prevRange.end.getTime();u!==o&&(n.prevKey=angular.copy(n.dateRange),e.setFilterDate(n.dateRange.start,n.dateRange.end),n.getUsers().then(function(){n.$emit(r.getValue("RestrictionControllerEventEnum","DateFilterChange"),n.dateRange.start,n.dateRange.end)}));n.dateChanged&&n.dateChanged()(n.dateRange)};n.$watch("restrictionsCollapsed",function(t,i){i!==t&&(t||(n.restrictions=[]),f())});n.$watch("ownSubordinates",function(n,t){t!==n&&f()});n.$watch("restrictions.length",function(n,t){t!==n&&f()});n.$watch("search.filter",function(n,t){t!==n&&f()});n.$watch("search.dateFilter",function(t,i){i!==t&&l(n.search.dateFilter)});n.deputyClick=function(n){n.stopPropagation()};n.multiSearchDateChanged=function(t){n.search.dateFilter=t};n.subordinatesChanged=function(){f()};n.getUsers(!1);
1n.periodSelection?(n.$watch("periods",function(t,i){var r=new Date;_.forEach(n.periods,function(t){if(t.StartDate<=r&&r<=t.EndDate)return n.values.selectedPeriod=t,!1});i&&i.length||h.resolve()},!0),n.$watch("values.selectedPeriod",function(t,i){t!==i&&(l(n.values.selectedPeriod.StartDate,n.values.selectedPeriod.EndDate),n.$emit("period-selected",n.values.selectedPeriod))})):i(function(){h.resolve()})}],link:function(){}}}]);angular.module("TiimaApp").directive("employeeSelector",["$rootScope","tiimaEnumsService","restrictionService","employeeService","Employee",function(n,t,i,r,u){return{restrict:"E",scope:{loadEmployeesFunction:"&",employeeGetAction:"@employeeGetAction",userPaginate:"@paginate",showRestriction:"=",showRestrictionOnTop:"=",onlySubordinatesByDefault:"=",pageSize:"="},templateUrl:"MVC/ScriptsApp/directives/employee/employeeSelectorTemplate.html",controller:["$scope","$element","$attrs",function(f){f.selectorHidden=!1;f.Employees=[];f.TotalCount=0;f.PageSize=f.pageSize;f.SelectedEmployee=null;f.Arguments={Page:0,SortOrder:0,OrderByFieldIndex:0};f.SelectedPeriod=null;f.DateFilter=new Date;f.$on(t.getValue("RestrictionControllerEventEnum","RestrictionChange"),function(n,t){t&&t.PeriodType&&(f.SelectedPeriod=t);f.Arguments&&(f.Arguments.Page=0);f.updateEmployees()});f.$on(t.getValue("EmployeeControllerEventEnum","Refresh"),function(n,t){t&&f.updateEmployees(t)});f.$on(t.getValue("EmployeeControllerEventEnum","EmployeeSelect"),function(n,i){f.SelectedEmployee!=i&&(f.SelectedEmployee=i,f.$emit(t.getValue("EmployeeControllerEventEnum","EmployeeSelected"),i))});f.updateEmployees=function(e){var v=null,l,tt,o,y,p,w,b,c,nt;e&&(f.Arguments=e);var ut=f.Arguments.Page*f.PageSize,e={FirstIndex:ut,ItemCount:f.PageSize,SortOrder:f.Arguments.SortOrder,SearchFilter:f.Arguments.SearchFilter,OrderByField:f.Arguments.OrderByFieldIndex,EmploymentData:!0,ByUserRights:f.Arguments.ByUserRights,GetInformationForWorkHours:f.Arguments.GetInformationForWorkHours,SubordinatesOf:f.Arguments.SubordinatesOf,Items:f.Arguments.Items?f.Arguments.Items:[]},k=null,d=null,a=null;if(f.Arguments.StartDate||f.Arguments.EndDate)e.StartDate=f.Arguments.StartDate?f.Arguments.StartDate:null,e.EndDate=f.Arguments.EndDate?f.Arguments.EndDate:null,e.StartDate||(e.StartDate=e.EndDate),e.EndDate||(e.EndDate=e.StartDate);else if(f.Arguments.DateFilter)e.Date=f.Arguments.DateFilter;else if(f.SelectedPeriod){if(e.StartDate=f.SelectedPeriod.StartDate,e.EndDate=f.SelectedPeriod.EndDate,k=Number(f.SelectedPeriod.ReferenceType),l=null,k<t.getValue("PeriodTypeEnum","MonthPeriods"))for(tt=t.getValue("AbsenceQueryParameterTypeEnum","Organisation"),k==t.getValue("PeriodTypeEnum","OrganisationPeriods")?l=a={}:(l=d={},tt=t.getValue("AbsenceQueryParameterTypeEnum","PaymentGroup")),o=0;o<f.SelectedPeriod.References.length;o++)l[f.SelectedPeriod.References[o]]=!0}else e.Date=f.DateFilter;var s=i.getRestrictions(),h=null,g=r.getOrganisation();if(s&&s.length)for(o=0;o<s.length;o++){if(y=r.convertRestrictionParameterType(s[o].RestrictionType),p=!1,y==t.getValue("AbsenceQueryParameterTypeEnum","Organisation")&&a){if(p=!0,h||(h={}),w=[s[o].IdC],s[o].SubLevels&&g&&g.getSubNodes&&(b=g.getSubNodes(s[o].IdC),b))for(c=0;c<b.length;c++)w.push(b[c].IdC);for(c=0;c<w.length;c++)h[w[c]]=!0}else y==t.getValue("AbsenceQueryParameterTypeEnum","PaymentGroup")&&d&&(p=!0,h||(h={}),h[s[o].IdC]=!0);p||e.Items.push({Type:y,DataType:t.getValue("AbsenceQueryParameterValueType","ID"),IdCValue:s[o].IdC,SubLevels:s[o].SubLevels})}var it=a?t.getValue("AbsenceQueryParameterTypeEnum","Organisation"):t.getValue("AbsenceQueryParameterTypeEnum","PaymentGroup"),l=a?a:d,rt=!1;if(l){for(nt in l)(h==null||h[nt])&&(e.Items.push({Type:it,DataType:t.getValue("AbsenceQueryParameterValueType","ID"),IdCValue:nt,SubLevels:!1}),rt=!0);rt||e.Items.push({Type:it,DataType:t.getValue("AbsenceQueryParameterValueType","ID"),IdCValue:-1,SubLevels:!1})}f.loadEmployeesFunction()?(e.ItemCount=0,v=f.loadEmployeesFunction()(e)):v=u.getAll(e,f.employeeGetAction?f.employeeGetAction:null);v&&v.then(function(i){var r=i.QueryIndex;r&&r.Current!=r.Top||(f.Employees=i?i.DataList:[],f.TotalCount=i?i.TotalRows:0,n.$broadcast(t.getValue("EmployeeControllerEventEnum","EmployeesUpdated"),{PageCount:Math.ceil(f.TotalCount/f.PageSize),PageIndex:f.Arguments.Page,TotalCount:f.TotalCount,Data:f.Employees}))})}}],link:function(n){n.showRestriction=n.showRestriction!=="false"}}}]);angular.module("TiimaApp").directive("workhoursEditor",["tiimaEnumsService",function(){return{restrict:"E",scope:{selectedEmployee:"=?",selectedRow:"=?",periods:"=?"},controller:["$scope","$element","$attrs","tiimaEnumsService",function(n,t,i,r){n.$on(r.getValue("TransactionRecordingControllerEventEnum","EmployeeSelectedBroadcast"),function(t,i){n.selectedEmployee=i;n.selectedRow=null});n.$on(r.getValue("TransactionRecordingControllerEventEnum","DateFilterBroadcast"),function(){});n.$on(r.getValue("TransactionRecordingControllerEventEnum","PeriodChangeBroadcast"),function(){})}],link:function(){}}}]);angular.module("TiimaApp").directive("travelclaimDimension",[function(){return{restrict:"E",require:"^ngModel",templateUrl:"MVC/ScriptsApp/directives/Workhours/travelclaimDimensionTemplate.html",scope:{ngModel:"=",viewOnly:"=",postingRow:"=",currentDate:"=",startDate:"=",endDate:"=",employeeIdc:"@"},controller:["$scope","$element","$attrs","$uibModal",function(n,t,i,r){n.dimensionItemsSelected=!1;n.dimensionItems=null;n.createShownItems=function(t){var i,r;n.dimensionItems=[];t?(i=[],n.postingRow?t&&t.length>0&&(r=angular.copy(t[0]),r.Deleted||(i=n.createDimensionItems(r.DimensionItems))):i=n.createDimensionItems(angular.copy(t)),n.dimensionItems=i&&i.length>0?i:null):n.dimensionItems=null};n.createDimensionItems=function(n){var t=null,i,r,u;if(n)for(i=0;i<n.length;i++)r=n[i],r&&(r.Deleted||(u=angular.copy(r),t||(t=[]),t.push(u)));return t};n.openDimensionSelector=function(t){var i=r.open({templateUrl:"MVC/modals/WorkHours/travelClaimDimensionEditor.html",controller:"travelClaimDimensionEditorModalController",backdrop:"static",windowClass:"travelClaimDimensionEditor",resolve:{dimensionItems:function(){return t},startDate:function(){return n.startDate},endDate:function(){return n.endDate},searchDate:function(){return n.currentDate},employeeIdC:function(){return n.employeeIdc}}});i.result.then(function(t){var e,u,s,i,r,h,f,c,l,o;if(t&&t.ok){if(n.postingRow){if(e=!0,t.dimensionItems)for(u=0;
1u<t.dimensionItems.length;u++)if(s=t.dimensionItems[u],!s.Deleted){e=!1;break}if(i=null,n.ngModel&&n.Model.length>0){if(r=n.ngModel[0],r.Deleted&&r.DimensionItems&&r.DimensionItems.length>0)for(h=r.DimensionItems,f=0;f<t.dimensionItems.length;f++)c=t.dimensionItems[f],h.push(c);else r.DimensionItems=t.dimensionItems;e?r.Deleted=!0:(r.Changed=!0,r.Deleted=!1);i=n.ngModel}else t.dimensionItems&&(l={PostingDate:n.currentDate,Percentage:100,DimensionItems:t.dimensionItems,Changed:!0},o=[],o.push(l),i=o)}else i=t.dimensionItems;i&&n.updateModel(angular.copy(i))}else t&&!t.ok&&(i=t.dimensionItems,i&&n.updateModel(angular.copy(i)))})}}],link:function(n,t,i,r){r.$formatters.push(function(t){return n.createShownItems(t),t});n.updateModel=function(t){n.ngModel=t;n.createShownItems(t);r.$setViewValue(t)}}}}]);angular.module("TiimaApp").directive("resize",["$window","$timeout",function(n,t){return function(i,r,u){var f=angular.element(n);i.$watch(function(){return{h:f.height(),w:f.width()}},function(n){i.windowHeight=n.h;i.windowWidth=n.w;i.resizeWithOffset=function(t){return i.$eval(u.notifier),{height:n.h-t+"px"}}},!0);f.bind("resize",function(){t(function(){i.$apply()})})}}]);angular.module("TiimaApp").directive("uiSlider",["uiSliderConfig",function(n){"use strict";var t;return t={},angular.extend(t,n),{require:"?ngModel",restrict:"A",link:function(t,i,r,u){var f=function(){return angular.extend({},n,t.$eval(r.uiSlider))},e=function(){var n=f();n.previousModelValue=null;u&&(n.slide=function(n,i){u.$setViewValue(i.value);t.$apply()},u.$render=function(){var t=n.previousModelValue=u.$viewValue;i.slider("value",t)});i.data("slider")&&i.slider("destroy");i.slider(n);u&&u.$render()};
1t.$watch(f,e,!0);r.$observe("readonly",function(n){angular.isUndefined(n)||i.slider("option","disabled",n)})}}}]).constant("uiSliderConfig",{});angular.module("TiimaApp").directive("uiColorPicker",["uiColorPickerConfig","$timeout","closePopupService",function(n,t,i){"use strict";var r;return r={},angular.extend(r,n),{restrict:"E",require:"^ngModel",templateUrl:"MVC/ScriptsApp/directives/uiColorPickerTemplate.html",controller:"validationEnabledElementController",scope:{ngModel:"="},link:function(r,u,f,e){var h=function(){return angular.extend({},n,r.$eval(f.uiColorPicker))},s,o;r.offset=$(u).offset();r.popupID=Math.random().toString(36).substring(7);r.chartVisible=!1;r.themeBasic=[{code:"#ffffff"},{code:"#000000"},{code:"#eeece1"},{code:"#1f497d"},{code:"#4f81bd"},{code:"#c0504d"},{code:"#9bbb59"},{code:"#8064a2"},{code:"#4bacc6"},{code:"#f79646"}];r.themeAdditional=[{code:"#f2f2f2"},{code:"#7f7f7f"},{code:"#ddd9c3"},{code:"#c6d9f0"},{code:"#dbe5f1"},{code:"#f2dcdb"},{code:"#ebf1dd"},{code:"#e5e0ec"},{code:"#dbeef3"},{code:"#fdeada"},{code:"#d8d8d8"},{code:"#595959"},{code:"#c4bd97"},{code:"#8db3e2"},{code:"#b8cce4"},{code:"#e5b9b7"},{code:"#d7e3bc"},{code:"#ccc1d9"},{code:"#b7dde8"},{code:"#fbd5b5"},{code:"#bfbfbf"},{code:"#3f3f3f"},{code:"#938953"},{code:"#548dd4"},{code:"#95b3d7"},{code:"#d99694"},{code:"#c3d69b"},{code:"#b2a2c7"},{code:"#92cddc"},{code:"#fac08f"},{code:"#a5a5a5"},{code:"#262626"},{code:"#494429"},{code:"#17365d"},{code:"#366092"},{code:"#953734"},{code:"#76923c"},{code:"#5f497a"},{code:"#31859b"},{code:"#e36c09"},{code:"#7f7f7f"},{code:"#0c0c0c"},{code:"#1d1b10"},{code:"#0f243e"},{code:"#244061"},{code:"#632423"},{code:"#4f6128"},{code:"#3f3151"},{code:"#205867"},{code:"#974806"}];r.standard=[{code:"#c00000"},{code:"#ff0000"},{code:"#ffc000"},{code:"#ffff00"},{code:"#92d050"},{code:"#00b050"},{code:"#00b0f0"},{code:"#0070c0"},{code:"#002060"},{code:"#7030a0"}];r.chart=null;r.updateModel=function(n){r.ngModel=n;e.$setViewValue(n)};r.selectColor=function(n){var i,t;if(n&&n.indexOf("rgb(")==0){for(i=n.substring(4,n.length-1).split(","),n="#",t=0;t<i.length;t++)n+=("0"+parseInt(i[t],10).toString(16)).slice(-2);r.updateModel(n);r.chartVisible=!1;r.$apply()}};r.fixValue=function(){var n,i,t,u;if(r.hideChart(),n=r.ngModel,typeof n!="string"&&(n=""),!/^#[0-9A-F]{6}$/i.test("value")){for(n.substr(0,1)!="#"&&(n="#"+n),n.length>7&&(n=n.substr(0,7)),n.length<7&&(n=(n+"000000").substr(0,7)),i="#",t=1;t<7;t++)u=n.substr(t,1),i+=/[0-9A-Fa-f]/.test(u)?u:"0";r.updateModel(i)}};r.change=function(){r.updateModel(r.ngModel)};r.showChart=function(){r.chartVisible=!0};r.hideChart=function(){t(function(){r.chartVisible=!1},200)};r.toggleChart=function(){r.chartVisible=!r.chartVisible};r.isValueEmpty=function(){};s=r;o=function(n){r.chartVisible&&n!=r.popupID&&r.hideChart()};i.addCallback(o);r.$watch("chartVisible",function(n){if(n&&!r.chart){var t=$(".ui-color-picker",u);r.offset={bottom:u.offset().bottom,height:u.offset().height,right:u.offset().right,left:u.offset().left,top:u.offset().top+t.height()+2,width:u.offset()};r.chart=$(".popup-object",u);r.chart.remove();r.chart.appendTo($("body"));$(".ui-color-picker-colorcell",r.chart).click(function(){r.selectColor($(this).css("backgroundColor"))});i.popupOpened(r.popupID)}});r.$on("$destroy",function(){r.chart&&r.chart.remove()});r.directiveInitializedDefer&&r.directiveInitializedDefer.resolve()}}}]).constant("uiColorPickerConfig",{});angular.module("TiimaApp").directive("listSelector",["$rootScope","$q","$timeout","tiimaEnumsService","localizationService","datasourceService","hierarchyCacheService","Organisation","PaymentGroup",function(n,t,i,r,u,f,e,o,s){return{restrict:"E",scope:{type:"@",size:"@",height:"@",width:"@",emit:"@",pageSize:"@",notSelected:"@",searchText:"@",placeHolder:"@"},templateUrl:"MVC/ScriptsApp/directives/approving/listSelectorTemplate.html",controller:["$scope","$element","$attrs",function(n){n.searchTimeout=null;n.searchText=n.searchText?n.searchText:"";n.pageSize=n.pageSize?n.pageSize:10;n.size=n.size?n.size:50;n.width=n.width?n.width:300;n.height=n.height?n.height:30;n.type=n.type?n.type:"";n.notSelected=n.notSelected?n.notSelected:!1;n.placeHolder=n.placeHolder?n.placeHolder:u.getText("TRANSACTIONS.SEARCH_LABEL");n.origPlaceHolder=n.placeHolder?n.placeHolder:u.getText("TRANSACTIONS.SEARCH_LABEL");n.items=[];n.totalRows=0;n.pageIndex=0;n.pageCount=0;n.resultSize=0;n.showList=!1;n.showOrganisation=!1;n.showNavigator=!1;n.dataSources={organisationDataSource:f.createDatasource({method:function(t){return n.getHierarchy(t)}})};n.firstPage=function(){n.pageIndex=0;n.getItems()};n.prevPage=function(){n.pageIndex>0&&n.pageIndex--;n.getItems()};n.nextPage=function(){n.pageIndex<n.pageCount-1&&n.pageIndex++;n.getItems()};n.lastPage=function(){n.pageIndex=n.pageCount-1;n.getItems()};n.getHierarchy=function(){var n=t.defer();return e.getHierarchy(null).then(function(t){n.resolve(t)}),n.promise};n.search=function(){var i=t.defer(),r=new Date,u=new Date,f={StartDate:r,EndDate:u,SearchFilter:n.searchText,FirstIndex:n.pageIndex*n.pageSize,ItemCount:n.pageSize,OrderByField:1};return n.type=="organisation"?e.searchHierarchy(n.searchText).then(function(n){i.resolve({DataList:n,TotalRows:n&&n.length?n.length:0})}):n.type=="paymentgroup"&&s.getAll(f).then(function(n){if(n&&n.DataList){for(var t=0;t<n.DataList.length;t++)n.DataList[t].Name=n.DataList[t].PaymentGroupName;i.resolve(n)}}),i.promise};n.showHierarchy=function(){n.showOrganisation=!n.showOrganisation;n.showOrganisation?n.bindEvents():n.unbindEvents()};n.getItems=function(t){if(t&&n.showList){n.unbindEvents();n.showList=!1;return}n.search().then(function(t){if(n.unbindEvents(),n.items.concat(t.DataList),t.DataList&&t.DataList.length)if(n.notSelected){n.items=[];n.items.push({IdC:0,Name:u.getText("GLOBAL.NOT_SELECTED"),Code:"",hover:!1});for(var i=0;i<t.DataList.length;i++)n.items.push(t.DataList[i])}else n.items=t.DataList;n.totalRows=t.TotalRows;n.pageCount=Math.ceil(t.TotalRows/n.pageSize);n.resultSize=t.DataList.length;n.showNavigator=n.totalRows>n.pageSize;n.showList=!0;n.bindEvents()})};n.bindEvents=function(){$("body").bind("keydown",r);$("body").bind("click",o)};
1n.unbindEvents=function(){$("body").unbind("keydown",r);$("body").unbind("click",o)};var r=function(t){var r,i;if(n.items.length){if(t.which==40){for(r=0,i=0;i<n.items.length;i++)n.items[i].hover&&(r=i+(i<n.items.length-1?1:0)),n.items[i].hover=!1;n.items[r].hover=!0}if(t.which==38){for(r=0,i=0;i<n.items.length;i++)n.items[i].hover&&(r=i-(i>0?1:0)),n.items[i].hover=!1;n.items[r].hover=!0}if(t.which==13)for(i=0;i<n.items.length;i++)if(n.items[i].hover){n.selectItem(n.items[i]);break}(t.which==33||t.which==37)&&n.prevPage();(t.which==34||t.which==39)&&n.nextPage();t.which==35&&n.lastPage();t.which==36&&n.firstPage();n.$apply()}},o=function(t){$(t.target).parents(".listSelector").length||$(t.target).hasClass(".ui-hierarchy-node-part")||$(t.target).parents(".ui-hierarchy-node-part").length||(t.stopPropagation(),n.showList=!1,n.showOrganisation=!1,n.unbindEvents(),n.$apply())};n.onenter=function(t){t.which==13&&n.items.length==0&&n.getItems()};n.searchTextChanged=function(){n.reset();n.searchText.length&&(i.cancel(n.searchTimeout),n.searchTimeout=i(function(){n.getItems(!1);i.cancel(n.searchTimeout)},1e3))};n.reset=function(){n.items=[];n.totalRows=0;n.pageIndex=0;n.pageCount=0;n.resultSize=0;n.showList=!1;n.showNavigator=!1};n.selectItem=function(t){n.searchText="";n.placeHolder=t.IdC?t.Name+" ("+t.Code+")":n.origPlaceHolder;n.showList=!1;n.showOrganisation=!1;n.unbindEvents();n.$emit(n.emit,{IdC:t.IdC});n.reset()};n.hover=function(n,t){n.hover=t};n.$on("hierarchy-item-click",function(t,i){i&&i.IdC&&n.selectItem({Name:i.Name,Code:i.Code,IdC:i.IdC})})}],link:function(){}}}]);angular.module("TiimaApp").directive("uiHierarchy",["$timeout","$rootScope","datasourceService","localizationService",function(n,t,i,r){"use strict";return{restrict:"E",templateUrl:"MVC/ScriptsApp/directives/uiHierarchyTemplate.html",scope:{hierarchySource:"=",sourceParameters:"=",hierarchyId:"@",userLevelField:"@levelField",userTextField:"@textField",userCodeField:"@codeField",userIdField:"@idField",userSubNodeField:"@subNodeField",userParentIdField:"@parentIdField",userLanguageField:"@languageField"},controller:["$scope","$element","$attrs","localizationService",function(n){n.hierarchy=[];n.selectedNode=null;n.maxVisibleLevel=1;n.treeSize=1;n.byIdC={};this.toggle=function(t){t.open=!t.open;n.updateTreeSize();n.$emit("cancel-hide-list")};var t=null;this.nodeClick=function(i,r){var f=null,u;i?(u=n.byIdC[i.IdC],u&&(n.selectedNode=u,f=u.IdC,n.ensureVisible(u))):n.selectedNode=null;t&&t();r&&(t=r);this.selectedIdC=f;n.$emit("hierarchy-item-click",n.selectedNode)};n.updateTreeSize=function(){var t;for(n.maxVisibleLevel=1,t=0;t<n.hierarchy.length;t++)n.updateSubTreeSize(n.hierarchy[t]);for(n.treeSize=0,t=0;t<n.hierarchy.length;t++)n.treeSize=1+n.hierarchy[t].subTreeSize};n.updateSubTreeSize=function(t){var i,r;if(t.subTreeSize=0,t.level>n.maxVisibleLevel&&(n.maxVisibleLevel=t.level),t.subNodes&&t.open)for(i=0;i<t.subNodes.length;i++)r=t.subNodes[i],n.updateSubTreeSize(r),t.subTreeSize+=r.subTreeSize+1};n.collapseAll=function(){for(var t=0;t<n.hierarchy.length;t++)n.collapseSubTree(n.hierarchy[t])};n.collapseSubTree=function(t){if(t&&(t.open=!1,t.subNodes))for(var i=0;i<t.subNodes.length;i++)n.collapseSubTree(t.subNodes[i])};n.ensureVisible=function(t){if(n.collapseAll(),t)for(var i=t.parent;i;)i.open=!0,i=i.parent;n.updateTreeSize()}}],link:function(n){var f=n.userLevelField||"HierarchyLevel",t=n.userTextField||"Texts.Name",u=n.userCodeField||"Code",c=n.userIdField||"IdC",e=n.userSubNodeField||"SubNodes",o=n.userParentIdField||"ParentIdC",s=n.userLanguageField||"LanguageIdC",l=r.getCurrentLanguageIdC(),h=function(i,r){var a={open:!1,IdC:i[c],parentIdC:i[o]?i[o]:null,subNodes:null,parent:null,topLevelNode:null,subTreeSize:0,level:r},y,v,p,w,b;return f&&i[f]&&(a.level=i[f]),u&&i[u]&&(a.code=i[u]),t!=="Texts.Name"||i.Texts||(t="Name"),y=t?t.split("."):[],t&&(v=i,_.forEach(y,function(n){var r,i,t;if(v&&v.length){for(r=null,i=0;i<v.length;i++)if(t=v[i],t&&t[s]&&t[s]==l){r=t;break}v=r}v&&v[n]&&(v=v[n])}),v&&typeof v=="string"&&(a.text=v)),e&&i[e]&&(p=i[e],p&&p.length&&(a.subNodes=[],_.forEach(p,function(n){var t=h(n);t.parent=a;a.subNodes.push(t);t.topLevelNode=r==1?a:a.topLevelNode}))),a[u]=a.code,y.length>0&&(w=a,b=_.findLast(y),_.forEach(y,function(n){w=w[n]=n==b?a.text:{}})),n.byIdC[a.IdC]=a,a};n.hierarchySource&&i.getData(n.hierarchySource,n.sourceParameters).then(function(t){var i=[];t&&t.hierarchy&&_.forEach(t.hierarchy,function(n){i.push(h(n,1))});n.hierarchy=i},function(n){console.log("hierarchy load rejected because "+n||"<no reason>")})}}}]);angular.module("TiimaApp").directive("uiDimensionPicker",["uiDimensionPickerConfig","$timeout","$q","$rootScope","localizationService","validationService","datasourceService","Dimension","DimensionItem",function(n,t,i,r,u,f,e,o){var s;return s={},angular.extend(s,n),{restrict:"E",require:"ngModel",templateUrl:"MVC/ScriptsApp/directives/uiDimensionPickerTemplate.html",scope:{hideLabel:"@",forWorkhourRecording:"@",forStamping:"@",forProcessing:"@",forResourcing:"@",forTravelclaim:"@",usageEmployeeIdc:"=",itemTemplate:"@",listTemplate:"@",searchResultTemplate:"@",searchDate:"@",usageStartDate:"=?",usageEnd
1Date:"=?",parentsOfDimensionIdc:"=?",fixedPosition:"@",pickerDisabled:"=?",validationError:"=?",validationErrorClass:"@",validationErrorShowWhen:"=?",validateOnInit:"@",userLabelClass:"@labelClass",userFieldHolderClass:"@fieldHolderClass",userErrorHolderClass:"@errorHolderClass"},link:function(i,r,u,f){var h=function(){return angular.extend({},n,i.$eval(u.uiDimensionPicker))},s;i.updateModel=function(n){i.ngModel=n;f.$setViewValue(n);t(function(){i.$apply()})};i.labelClass=(i.userLabelClass||"")+" ui-dimension-heading";i.fieldHolderClass=(i.userFieldHolderClass||"")+" ui-dimension-value";i.errorHolderClass=(i.userErrorHolderClass||"")+" ui-dimension-validation";i.dimensionsLoaded=!1;i.dimensions=[];i.validationErrorShow=!0;i.dataSources={dimensionDatasource:e.createDatasource({method:function(n){return o.getAll(n)}})};i.$watch("parentsOfDimensionIdc",function(){i.parentsOfDimensionIdc&&s()});s=function(){var n={GetForWorkHourRecording:i.forWorkhourRecording?!0:!1,GetForStamping:i.forStamping?!0:!1,GetForProcessing:i.forProcessing?!0:!1,GetForResourcing:i.forResourcing?!0:!1,GetForTravelClaim:i.forTravelclaim?!0:!1,StartDate:i.usageStartDate?i.usageStartDate:null,EndDate:i.usageEndDate?i.usageEndDate:null,EmployeeIdC:i.usageEmployeeIdc?i.usageEmployeeIdc:null,GetOnlyParentHierarchyOfDimensionIdC:i.parentsOfDimensionIdc?i.parentsOfDimensionIdc:null};e.getData(i.dataSources.dimensionDatasource,n).then(function(n){var t=n&&n.DataList?n.DataList:null;t&&t.length&&t.sort(function(n,t){return n.DimensionOrder<t.DimensionOrder?-1:t.DimensionOrder<n.DimensionOrder?1:n.Name<t.Name?-1:t.Name<n.Name?1:0});i.dimensions=t;i.dimensionsLoaded=!0})};t(s);f.$formatters.push(function(n){return i.dimensionGroupSetData?i.dimensionGroupSetData(n):i.viewValueNotSet=n,i.dimensionData=n,n});i.$on("dimension-model-update",function(n,t){i.updateModel(t)})},controller:["$scope",uiDimensionPickerController=function(n){this.getDataSources=function(){return n.dataSources};n.viewValueNotSet=null;this.connectDimensionGroup=function(t){n.dimensionGroupSetData=t;n.viewValueNotSet&&n.dimensionGroupSetData(n.viewValueNotSet)}}]}}]).constant("uiDimensionPickerConfig",{});angular.module("TiimaApp").directive("uiDimensionGroup",["$timeout","$q","$rootScope","localizationService","validationService","datasourceService","DimensionItem",function(n,t,i,r,u,f,e){"use strict";return{restrict:"E",require:"^?uiDimensionPicker",transclude:!0,templateUrl:"MVC/ScriptsApp/directives/uiDimensionGroupTemplate.html",scope:{dimensions:"=",userDimensionData:"=dimensionData",forWorkhourRecording:"@",forStamping:"@",forProcessing:"@",forResourcing:"@",forTravelclaim:"@",searchDate:"@",usageStartDate:"=?",usageEndDate:"=?",userClasses:"@classes"},link:function(n,i,r,o){n.dimensionOrder={};n.organisationDimensions={};n.valueByDimension={};n.subDimensionsOf={};n.dataSources=null;n.dimensionData=n.userDimensionData||null;n.dimensionsInitialized=!1;n.$watch("dimensions",function(t,i){var r,f;n.dimensionsInitialized&&t===i||(r=t,n.dimensionOrder={},n.subDimensionsOf={},f={},r&&r.length&&_.forEach(r,function(t,i){if(t.SelectedItem=null,t.$dimensionRequired=t.$dimensionLevelRequired=t.DimensionItemRequiredOnTravelClaim&&n.forTravelclaim||(t.UsageRequired||t.DimensionItemRequired)&&n.forWorkhourRecording,t.$pickerID=u.getElementID(),t.$level=0,f[t.IdC]=t,t.ParentIdC){var r=f[t.ParentIdC];r&&(t.$level=r.$level+1);n.subDimensionsOf[t.ParentIdC]||(n.subDimensionsOf[t.ParentIdC]=[]);n.subDimensionsOf[t.ParentIdC].push(t);t.$dimensionDisabled=!0}n.organisationDimensions[t.IdC]=t.UseOrganisationHierarchy=="1"?!0:!1;n.dimensionOrder[t.IdC]=i}),n.dimensionData?n.setData(n.dimensionData):n.dimensionData=[],n.dimensionsInitialized=!0)});n.onChangeDimensionItem=function(t,i){var r,u,f,e;i<0||i>=n.dimensions.length||(r=n.valueByDimension[t.IdC],t.SelectedItem?(r||(n.valueByDimension[t.IdC]=r={IdC:null,DimensionIdC:t.IdC,Changed:!1,Deleted:!1},n.dimensionData.push(r)),r.Deleted=!1,r.Changed=!0,t.UseOrganisationHierarchy=="1"?r.OrganisationIdC=t.SelectedItem.IdC:r.DimensionItemIdC=t.SelectedItem.IdC,r.DimensionName=t.SelectedItem.DimensionName,r.DimensionItemName=t.SelectedItem.DimensionItemName,r.DimensionItemCode=t.SelectedItem.Code,u=!1,n.forTravelclaim&&(r.SubLevelRequiredOnTravelClaim=u=t.SelectedItem.SubLevelRequiredOnTravelClaim),n.forWorkhourRecording&&(r.SubLevelRequired=t.SelectedItem.SubLevelRequired,u|=t.SelectedItem.SubLevelRequired),f=n.subDimensionsOf[t.IdC],f&&_.forEach(f,function(i){i.$dimensionRequired=!!(i.$dimensionLevelRequired||u);i.$dimensionDisabled=!1;n.clearValue(i);i.$selectedParentIdC=t.SelectedItem.IdC;n.$broadcast("ui-autocomplete-update",i.$pickerID,{parentIdC:i.$selectedParentIdC})})):n.clearValue(t),e=[],n.dimensions&&_.forEach(n.dimensions,function(t){var i=n.valueByDimension[t.IdC];i&&e.push(i)}),n.$emit("dimension-model-update",angular.copy(e)))};n.clearValue=function(t){var i,r,u;t&&(i=n.valueByDimension[t.IdC],i&&(i.IdC?(i.Deleted=!0,i.DimensionItemIdC=null,i.OrganisationIdC=null):(delete n.valueByDimension[t.IdC],r=-1,_.forEach(n.dimensionData,function(n,i){if
1(n.DimensionIdC==t.IdC)return r=i,!1}),r>-1&&n.dimensionData.splice(r,1))),t.SelectedItem=null,u=n.subDimensionsOf[t.IdC],u&&_.forEach(u,function(t){t.$dimensionRequired=t.$dimensionLevelRequired;t.$dimensionDisabled=!0;n.clearValue(t);t.$selectedParentIdC=null;n.$broadcast("ui-autocomplete-update",t.$pickerID)}))};n.setData=function(t){if(n.valueByDimension={},t&&_.forEach(t,function(t){t.Deleted||(n.valueByDimension[t.DimensionIdC]=t)}),n.dimensions){var i={},r={};_.forEach(n.dimensions,function(t){var u=n.valueByDimension[t.IdC],f,e;t.SelectedItem=u?{IdC:t.UseOrganisationHierarchy=="1"?u.OrganisationIdC:u.DimensionItemIdC,Code:u.DimensionItemCode,DimensionItemName:u.DimensionItemName}:null;u&&(f=!1,n.forTravelclaim&&(t.SelectedItem.SubLevelRequiredOnTravelClaim=f=u.SubLevelRequiredOnTravelClaim),n.forWorkhourRecording&&(t.SelectedItem.SubLevelRequired=f=u.SubLevelRequired),f&&(i[t.IdC]=!0),e=n.subDimensionsOf[t.IdC],e&&_.forEach(e,function(n){n.$dimensionDisabled=!1;n.$selectedParentIdC=t.SelectedItem.IdC;r[n.IdC]=n}));t.$dimensionRequired=t.$dimensionLevelRequired||i[t.ParentIdC]});_.forOwn(r,function(t){n.$broadcast("ui-autocomplete-update",t.$pickerID)})}};o?(n.dataSources=o.getDataSources(),o.connectDimensionGroup(function(t){n.setData(t)})):n.dataSources={};n.dataSources.dimensionItemDatasource=f.createDatasource({method:function(i){var r,u,f,o,s;return(i||(i={}),n.searchDate&&n.searchDate.getTime?(i.StartDate=new Date(n.searchDate.getTime()),i.EndDate=new Date(n.searchDate.getTime())):n.usageStartDate&&n.usageStartDate.getTime&&n.usageEndDate&&n.usageEndDate.getTime?(i.StartDate=new Date(n.usageStartDate.getTime()),i.EndDate=new Date(n.usageEndDate.getTime())):i.StartDate=i.EndDate=new Date,r=n.dimensionOrder[i.dimensionIdC],r>=0&&r<n.dimensions.length&&(u=n.dimensions[r],u&&u.ParentIdC&&r>0&&(angular.isUndefined(i.SearchFilter)||(f=n.dimensionOrder[u.ParentIdC],f>=0&&f<n.dimensions.length&&(o=n.dimensions[f],i.parentIdC=o&&o.SelectedItem?o.SelectedItem.IdC:null)),!i.parentIdC)))?(s=t.defer(),s.resolve({DataList:null,TotalRows:0,Status:1}),s.promise):i.Dimension&&(i.DimensionIdC=i.Dimension.IdC,r=n.dimensionOrder[i.DimensionIdC],r>=0&&r<n.dimensions.length&&(u=n.dimensions[r],u&&u.ParentIdC&&r>0&&(angular.isUndefined(i.SearchFilter)||(f=n.dimensionOrder[u.ParentIdC],f>=0&&f<n.dimensions.length&&(o=n.dimensions[f],i.parentIdC=o&&o.SelectedItem?o.SelectedItem.IdC:null)),!i.parentIdC)))?(s=t.defer(),s.resolve({DataList:null,TotalRows:0,Status:1}),s.promise):e.getAll(i)}})}}}]);angular.module("TiimaApp").directive("uiHierarchyNode",["$timeout","$rootScope","localizationService",function(){"use strict";return{restrict:"E",require:"^uiHierarchy",templateUrl:"MVC/ScriptsApp/directives/uiHierarchyNodeTemplate.html",scope:{ngModel:"="},controller:["$scope","$element","$attrs","localizationService",function(){}],link:function(n,t,i,r){n.toggle=function(n){r.toggle(n)};n.selected=!1;n.nodeClick=function(t){var i=!1;n.selected?n.selected=!1:(n.selected=!0,i=function(){n.selected=!1});r.nodeClick(t,i)}}}}]);angular.module("TiimaApp").directive("uiHierarchySubTree",["$timeout","$rootScope","localizationService",function(){"use strict";return{restrict:"E",require:"^uiHierarchy",templateUrl:"MVC/ScriptsApp/directives/uiHierarchySubTreeTemplate.html",scope:{hierarchy:"="},controller:["$scope","$element","$attrs","localizationService",function(){}],link:function(n){n.$watch("hierarchy",function(){})}}}]);angular.module("TiimaApp").directive("uiPagedList",["uiPagedListConfig","$timeout","$window","$q","datasourceService","localizationService","toolsService",function(n,t,i,r,u,f,e){"use strict";var o,s=new Date;return o={},angular.extend(o,n),{restrict:"E",templateUrl:"MVC/ScriptsApp/directives/uiPagedListTemplate.html",scope:{itemSource:"=",sourceArgs:"=?",userShowPagination:"@showPagination",userPaginationPosition:"@paginationPosition",userMaxPageSize:"@maxPageSize",userPageSize:"@pageSize",userEnableAutoSize:"@enableAutoSize",userEnableSort:"@enableSort",elementID:"@elementId",fields:"=",selectedItem:"=?",selectionChanged:"&?",userShowWarningColumn:"@showWarningColumn",userShowStatusColumn:"@showStatusColumn"},link:function(n,f){var h,c,s,l,p,w,a;n.pagingInfo={PageIndex:0,PageCount:1,TotalCount:0,FirstIndex:0,LastIndex:0};n.loading=!1;n.maxPageSize=Number(n.userMaxPageSize)||30;n.showPagination=n.userShowPagination==="true";n.paginationPosition=n.userPaginationPosition||"top";n.pageCache={};n.data=[];n.pagedData=[];n.enableAutoSize=n.userEnableAutoSize==="true";n.enableSort=n.userEnableSort==="true";n.showWarningColumn=n.userShowWarningColumn==="true";n.showStatusColumn=n.userShowStatusColumn==="true";n.sortOrder=0;n.orderByField=0;h=function(){var r=angular.element(f).parent().innerHeight(),i=40,t;return n.showPagination&&n.pagingInfo.PageCount>1&&(i+=30),t=Math.floor((r-i)/30),t-=t%5,t>n.maxPageSize?t=n.maxPageSize:t<5&&(t=5),t};n.pageSize=Number(n.userPageSize)||n.maxPageSize;c=function(){if(n.showStatusColumn&&n.fields.push({_status:!0,heading:"",headingClass:"statusCell","class":"statusCell"}),n.showWarningColumn&&n.fields.push({_warning:!0,heading:"",headingClass:"warningCell","class":"warningCell"}),n.enableSort){var t=0;
1_.forEach(n.fields,function(n,i){if(n.default)return t=i,!1});n.orderByField=t;n.sortOrder=0}};n.fields||(n.fields=[{dataType:1,heading:"LIST_FIELDS.CODE",name:"Code","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,heading:"LIST_FIELDS.NAME",name:"Name",localize:!0,"class":"listcellName",headingClass:"listcellName","default":!0},]);c();s=function(t){o();t.stopPropagation();n.$emit("pagedlist-navigation-click")};n.firstPage=function(t){n.pagingInfo.PageIndex=0;s(t)};n.prevPage=function(t){n.pagingInfo.PageIndex--;s(t)};n.nextPage=function(t){n.pagingInfo.PageIndex++;s(t)};n.lastPage=function(t){n.pagingInfo.PageIndex=n.pagingInfo.PageCount-1;s(t)};n.headerClick=function(t,i){if(i.target.tagName==="INPUT"){i.preventDefault();return}var r=n.fields[t];n.enableSort&&!r.disableSort&&(n.orderByField===t?n.sortOrder=Math.abs(n.sortOrder-1):(n.orderByField=t,n.sortOrder=0),o())};n.itemClick=function(t){n.selectedItem=t};l=r.defer();n.loadDataFromDatasource=function(t){var i=angular.copy(t);return(t.parameterDefer&&(i.parameterDefer=t.parameterDefer),!n.itemSource)?$.when({DataList:[],TotalRows:0}):u.getData(n.itemSource,i).then(function(i){var u,r;return n.pageCache.firstIndex=t.firstIndex,n.pageCache.data=i&&i.DataList?i.DataList:null,n.pageCache.totalCount=i?i.TotalRows:0,n.pageCache.cachedCount=n.pageCache.data?n.pageCache.data.length:0,n.pageCache.lastIndex=n.pageCache.firstIndex+n.pageCache.cachedCount-1,n.pageCache.pageSize=n.pageSize,u=t.originalArgs,delete t.originalArgs,delete t.reload,n.pageCache.cacheArgs=n.getArgumentString(t),n.pageCache.lastIndex<n.pageCache.firstIndex&&(n.pageCache.lastIndex=n.pageCache.firstIndex),r=n.cacheHit(_.extend(t,{itemCount:u.itemCount,firstIndex:u.firstIndex})),r||(r={DataList:[],TotalRows:n.pageCache.totalCount}),l.resolve(),r})};n.getArgumentString=function(n){var t=[],i=["itemCount","firstIndex","dataLoading","refreshIndex"];return _.forOwn(n,function(n,r){_.includes(i,r)||t.push(r+"="+JSON.stringify(n))}),t.join("|")};n.cacheHit=function(t){var f=null,o,u;if(n.pageCache){var i=t.itemCount,r=t.firstIndex,e=!1;i!==n.pageCache.pageSize&&(e=n.pageCache.pageSize%i==0||i%n.pageCache.pageSize==0?!1:!0);o=n.getArgumentString(t);n.pageCache.cacheArgs!==o||e?t.firstIndex=0:r>=n.pageCache.firstIndex&&r<=n.pageCache.lastIndex&&(u=r+i-1,u>n.pageCache.lastIndex&&(u=n.pageCache.lastIndex),f={DataList:_.slice(n.pageCache.data,r-n.pageCache.firstIndex,u+1-n.pageCache.firstIndex),TotalRows:n.pageCache.totalCount})}return f};n.loadData=function(t){var f=r.defer(),e=n.cacheHit(t),i,u,o,s;return e?f.resolve(e):(i=n.maxPageSize,u=i%n.pageSize,u>1&&(u/n.pageSize>.5?i+=n.pageSize-u:i-=u),o=t.firstIndex%i,s={firstIndex:t.firstIndex,itemCount:t.itemCount},n.loadDataFromDatasource(_.extend(t,{firstIndex:t.firstIndex-o,itemCount:i,originalArgs:s})).then(function(n){f.resolve(n)})),f.promise};var v=0,o=function(t){var r=n.orderByField,u=n.fields[r],i;u.sortFieldIndex&&(r=sortFieldIndex);i={itemCount:n.pageSize,firstIndex:n.pagingInfo.PageIndex*n.pageSize||0,orderByField:r,orderByFieldName:u.name,sortOrder:n.sortOrder,refreshIndex:++v};_.forEach(n.fields,function(n){n.search&&n.searchCriteriaFieldName&&n.searchCriteria&&(i[n.searchCriteriaFieldName]=n.searchCriteria)});n.sourceArgs&&(i=_.extend(i,e.toCamelCase(n.sourceArgs,i)),n.sourceArgs.dataLoading=!0);t&&(i=_.extend(i,e.toCamelCase(t,i)));n.loading=!0;n.loadData(i).then(function(t){if(i.refreshIndex===v&&t&&t.DataList){n.data=t.DataList;n.sourceArgs&&(n.sourceArgs.dataLoading=!1);var r=0;t.TotalRows&&(r=t.TotalRows);t.Data&&t.Data.TotalRows&&(r=t.Data.TotalRows);n.pagingInfo=_.extend(n.pagingInfo,{TotalCount:r,PageCount:Math.ceil(r/n.pageSize),FirstIndex:i.firstIndex+1,LastIndex:r<i.firstIndex+n.pageSize?r:i.firstIndex+n.pageSize,PageSize:n.pageSize,PageIndex:Math.floor(i.firstIndex/n.pageSize)});n.loading=!1}})},y=_.debounce(o,500);n.refresh=y;n.$on("ui-pagedlist-update",function(t,i,r){i&&i!==n.elementID||t.defaultPrevented||(t.preventDefault(),o(r))});n.$watch("fields",function(n,t){n!==t&&n&&n.length&&c()});n.$watch("selectedItem",function(t,i){if(t!==i){var r=i?i.IdC:null,u=t?t.IdC:null;r!==u&&(n.selectionChanged&&n.selectionChanged()&&n.selectionChanged()(t),n.$emit("pagedlist-item-click",t))}});n.$watch("sourceArgs",function(n,t){n!==t&&o()});p=function(t,i){var r,u;t!==i&&(r=n.pageSize=h(),t!==r&&(t=r),u=n.pagingInfo.FirstIndex,n.pagingInfo.PageIndex=Math.floor(u/t),y())};w=_.debounce(p,500);n.enableAutoSize&&angular.element(i).bind("resize",function(){var t=n.pageSize;n.pageSize=h();n.pageSize!==t&&w(n.pageSize,t);n.$digest()});a=function(t){var i=n.pagingInfo.FirstIndex;n.pageSize=h();n.pageSize!==t&&(n.pagingInfo.PageIndex=Math.floor(i/n.pageSize),o())};t(function(){if(n.enableAutoSize){a(0);var i=n.pageSize;l.promise.then(function(){t(function(){a(i)})})}else o()},500)}}}]).constant("uiPagedListConfig","");angular.module("TiimaApp").directive("uiDateRange",["$filter","$t
1imeout","localizationService",function(){"use strict";return{restrict:"E",require:"^ngModel",templateUrl:"MVC/ScriptsApp/directives/uiDateRangeTemplate.html",controller:"validationEnabledElementController",scope:{fieldName:"@",userStartDateNullable:"@startDateNullable",userEndDateNullable:"@endDateNullable"},link:function(n,t,i,r){n.range={startDate:null,endDate:null};n.startDateNullable=n.userStartDateNullable=="true";n.endDateNullable=n.userEndDateNullable=="true";r.$formatters.push(function(t){return n.range=t,t});r.$parsers.push(function(n){return n});n.startDateNullChanged=function(){n.range.startDate=null};n.endDateNullChanged=function(){n.range.endDate=null};n.directiveInitializedDefer&&n.directiveInitializedDefer.resolve()}}}]);angular.module("TiimaApp").directive("uiTimeRange",["$filter","$timeout","localizationService",function(){"use strict";return{restrict:"E",require:"^ngModel",templateUrl:"MVC/ScriptsApp/directives/uiTimeRangeTemplate.html",controller:"validationEnabledElementController",scope:{fieldName:"@"},link:function(n,t,i,r){n.range={startTime:null,endTime:null};r.$formatters.push(function(t){return n.range=t,t});r.$parsers.push(function(n){return n});n.directiveInitializedDefer&&n.directiveInitializedDefer.resolve()}}}]);angular.module("TiimaApp").directive("uiDatetimePicker",["uiDatetimePickerConfig","$filter","$timeout","localizationService","formatService","toolsService",function(n,t,i,r,u,f){"use strict";var e;return e={},angular.extend(e,n),{restrict:"E",require:"ngModel",templateUrl:"MVC/ScriptsApp/directives/uiDatetimePickerTemplate.html",controller:"validationEnabledElementController",scope:{noPlaceholder:"@",userNullable:"@nullable",userMaxValue:"=?maxValue",userMinValue:"=?minValue"},link:function(t,i,r,e){var h=function(){return angular.extend({},n,{})},s,o;t.dateTimeValue={datePart:null,timePart:null,ok:!1};s=function(n){t.dateTimeValue.datePart=new Date(n.getTime());t.dateTimeValue.timePart=new Date(n.getTime())};t.minValue=t.userMinValue||null;t.maxValue=t.userMaxValue||null;o=function(){var n=null;t.dateTimeValue.datePart&&(n=new Date(t.dateTimeValue.datePart.getTime()));n&&t.dateTimeValue.timePart&&f.setTimePart(n,t.dateTimeValue.timePart);t.dateTimeValue.timePart=n;e.$setViewValue(t.dateTimeValue.timePart)};t.$watch("userMaxValue",function(n,i){n!=i&&(t.maxValue=n||null)});t.$watch("userMinValue",function(n,i){n!=i&&(t.minValue=n||null)});e.$formatters.push(function(n){var t=n;return t&&t.getTime?s(t):t=u.parseISODateTime(t),n});e.$parsers.push(function(n){return n});t.timeChanged=function(){o()};t.dateChanged=function(){o()};t.directiveInitializedDefer&&t.directiveInitializedDefer.resolve()}}}]).constant("uiDatetimePickerConfig","");angular.module("TiimaApp").directive("uiMultisearch",["$timeout","$q","datasourceService","localizationService","restrictionService",function(n,t,i,r,u){"use strict";var f=new Date;return{restrict:"E",require:"^ngModel",templateUrl:"MVC/ScriptsApp/directives/uiMultisearchTemplate.html",scope:{dateChanged:"&",userShowDatePicker:"@showDatePicker"},link:function(t,r,f,e){t.filter={date:new Date};t.restrictions=null;t.restrictionItemTemplate="{{Code}} {{Name}} ({{TypeName}})";t.showDatePicker=t.userShowDatePicker!=="false";t.dataSources={restrictionDatasource:i.createDatasource({method:function(n){return u.loadData(n)}})};n(function(){t.input=$("input",r).first()});t.value={restrictionValue:null};t.getRestrictionValue=function(n){return u.loadData(n)};t.addRestriction=function(i){var r,u;if(i){if(i.RestrictionType==1&&(i.SubLevels=!0),r=i.RestrictionType+"|"+i.IdC,t.restrictions){if(u=!1,_.forEach(t.restrictions,function(n){if(n.$restrictionID===r)return u=!0,!1}),u)return}else t.restrictions=[];i.$restrictionID=r;t.restrictions.push(i);n(function(){t.value.restrictionValue=null;t.notifyChange()})}};t.removeRestriction=function(n){n&&t.restrictions&&(_.remove(t.restrictions,n),t.notifyChange())};t.$watch("filter.date",function(n,i){n!==i&&t.dateChanged()&&t.dateChanged()(n)});t.toggleSubLevels=function(n){n.SubLevels=!n.SubLevels;t.notifyChange(!0)};t.notifyChange=function(n){if(n){var i=_.find(t.restrictions,"empty");i?_.remove(t.restrictions,function(n){return n.empty}):t.restrictions.push({empty:!0})}e.$setViewValue(t.restrictions)};e.$formatters.push(function(n){return t.restrictions=n,n})}}}]);angular.module("TiimaApp").directive("tiimaButtonWithDisabledAction",["$filter","$t
1imeout","closePopupService",function(n,t,i){return{restrict:"E",require:"^^form",transclude:!0,scope:{},template:'<div ng-class="{\'clickable-disabled-button-container\': btnDisabled}" ng-click="disabledSubmitClick()" ng-transclude><\/div>',link:function(r,u,f,e){var o=null,c=!1,l=!1,s=function(){o&&!c&&(o.popover("hide"),l=!1)},h;i.addCallback(s);h=null;setTimeout(function(){h=r.$watch(function(){return $("form[name="+e.$name+"]").find("button.btn-primary").is(":disabled")},function(n){t(function(){r.btnDisabled=n;!n&&l&&s()},100)})},1e3);r.disabledSubmitClick=function(){var t,f;r.btnDisabled&&(t=$(".popover"),_.forEach(t,function(n){n.style.display="none"}),f=u.closest("form").find(".form-control, tiima-form-element label.btn, tiima-form-element span.btn-group, tiima-form-element input, tiima-form-element textarea, tiima-form-element select, .error-label-container"),_.forEach(f,function(n){$(n).hasClass("ng-pristine")&&($(n).removeClass("ng-pristine"),$(n).addClass("ng-dirty"))}),o=u.find("button"),o.popover({placement:"top",trigger:"manual",html:!0,content:n("localize")("GLOBAL.DISABLED_BUTTON_CLICK_MESSAGE")}),o.popover("show"),l=!0,i.popupOpened(s),c=!0,setTimeout(function(){c=!1;r.$digest()},100))};r.$on("$destroy",function(){h&&h();s();i.removeCallback(s)})}}}]);angular.module("TiimaApp").directive("tiimaFormDirtyCheck",["$location","modalService","closePopupService",function(n,t,i){return{restrict:"A",require:"^form",scope:{tiimaFormDirtyCheck:"@",modalCloseMethod:"&",tiimaSecondaryForm:"="},link:function(r,u,f,e){var c="",o="",s=!1,l=r.modalCloseMethod(),h,a,v;r.tiimaFormDirtyCheck&&(o=r.tiimaFormDirtyCheck,r.tiimaFormDirtyCheck.indexOf("::")>=0&&(h=r.tiimaFormDirtyCheck.split("::",2),h[0]&&(c=h[0]),h[1]&&(o=h[1])));l?(o||(o="GLOBAL_MESSAGES.CONFIRM_CLOSING_MODAL"),v=function(){if(!s)if(e.$dirty||r.tiimaSecondaryForm&&r.tiimaSecondaryForm.$dirty){s=!0;var n={closeButtonText:"GLOBAL_BUTTON.CANCEL",actionButtonText:"GLOBAL_BUTTON.CONTINUE",headerText:c,bodyText:o};t.showModal({},n).then(function(n){n==="ok"?l():s=!1},function(){setTimeout(function(){s=!1},1e3)})}else l()},i.addModalTrigger(v),r.$on("$destroy",function(){i.removeModalTrigger()})):(window.onbeforeunload=function(){if(e.$dirty&&!s)return s=!0,o},a=r.$on("$locationChangeStart",function(i,r){if(e.$dirty){var u={closeButtonText:"GLOBAL_BUTTON.CANCEL",actionButtonText:"GLOBAL_BUTTON.CONTINUE",headerText:c,bodyText:o};t.showModal({},u).then(function(t){t==="ok"&&(a(),s=!0,r.indexOf("://")&&(r=r.substr(r.lastIndexOf("/"))),n.path(r))});i.preventDefault()}}))}}}]);angular.module("TiimaApp").directive("tiimaFormElement",["$compile","$timeout","$q","validationService",function(n,t,i,r){return{restrict:"E",require:"?^^form",transclude:!0,scope:{label:"@",classes:"@",labelClass:"@",labelFor:"@",fieldHolderClass:"@",errorHolderClass:"@",readonlyValueClass:"@",userReadOnly:"@readOnly",readOnlyValue:"@",elementType:"@",userElementSelector:"@elementSelector",inputElementType:"@",validationFieldName:"@",userRequired:"@required",userErrorMessage:"@errorMessage",userType:"@type",userCustomValidation:"@customValidation",expectContent:"@",elementID:"@elementId"},templateUrl:"MVC/ScriptsApp/directives/form/formElementTemplate.html",link:function(u,f,e,o){var c,s,h;o&&(u.popoverContent="",u.errorMessage=u.userErrorMessage||"",u.type=u.userType||"input",u.elementSelector=u.userElementSelector||"",u.customValidation=u.userCustomValidation||!1,u.elementID=u.elementID||null,u.required=u.userRequired&&u.userRequired!="false",u.readOnly=u.userReadOnly&&u.userReadOnly!="false",u.groupID=null,u.name=e.name,u.currentElement=f,c=u.elementType==="checkbox",u.complexElement=!1,s=i.defer(),u.type.indexOf("ui")!=0?(u.complexElement=!1,t(function(){s.resolve(u.type)})):u.complexElement=!0,u.childElementInitialized=function(n){t(function(){s.resolve(n)})},s.promise.then(function(i){var e=$(i+u.elementSelector,u.currentElement),s;u.inputElement=u.complexElement?$(u.inputElementType||"input",u.currentElement):$(u.type,u.currentElement);u.updateErrorDisplay=function(){var s,t,i,n,h,f;if(u.inputElement&&u.inputElement.length){s=u.showError;t=null;e&&e.length===1?t=e:e&&e.length>1&&u.type==="label"&&(t=$(e));i=null;u.inputElement&&u.inputElement.attr("class")?i=u.inputElement:u.inputElement.length>1&&_.forEach(u.inputElement,function(n){if($(n).attr("class"))return i=$(n),!0});n={};h=[t&&t.attr("class")?t.attr("class").split(" "):"",i&&i.attr("class")?i.attr("class").split(" "):""];_.forEach(h,function(t){_.forEach(t,function(t){n[t]=!0})});var c=_.has(n,"ng-invalid")||_.has(n,"tiima-artificial-invalidate"),l=_.has(n,"ng-dirty")||_.has(n,"ng-touched"),a=!_.has(n,"ng-hide");u.showError=c&&l&&a;u.showError?console.log("showing error for "+u.elementID+" because the element is invali
1d, visited and visible"):console.log("NOT showing error for "+u.elementID+" because the element is "+[(c?"":"NOT ")+"invalid",(l?"":"NOT ")+"visited",(a?"":"NOT ")+"visible"].join(", "));u.showError!==s&&(f=u.validationFieldName||u.inputElement.attr("name"),u.showError?(u.currentElement.addClass("has-error"),console.log("'has-error' class added for element "+u.elementID),u.groupID&&r.notifyGroupError(u.groupID),o.$setValidity(f,!1)):(u.currentElement.removeClass("has-error"),console.log("'has-error' class removed from element "+u.elementID),u.groupID&&r.notifyGroupError(u.groupID),o.$setValidity(f,!0)))}};r.registerElementUpdateErrorDisplayCallback(u.elementID,u.updateErrorDisplay);u.complexElement||u.inputElement&&u.inputElement.length&&!u.inputElement.attr("popover-trigger")&&(!u.expectContent||u.inputElement.find(u.expectContent).length)&&(u.inputElement.attr("popover-trigger","focus"),u.inputElement.attr("popover-placement","right"),u.inputElement.attr("uib-popover","{{popoverContent}}"),u.inputElement.removeAttr("ng-change"),u.inputElement.removeAttr("ng-blur"),u.inputElement.removeAttr("ng-disabled"),s=u.inputElement.scope(),s||(s=u),n(u.inputElement)(s));f.bind("keyup mouseup",function(){u.updateErrorDisplay(u.inputElement&&u.inputElement.length&&u.inputElement.attr("error-message"))});u.$on("remove-error",function(){u.updateErrorDisplay(u.inputElement&&u.inputElement.length&&u.inputElement.attr("error-message"))});u.$watch(function(){return u.inputElement.attr("class")+"::"+u.inputElement.attr("error-message")},function(){u.updateErrorDisplay(u.inputElement&&u.inputElement.length&&u.inputElement.attr("error-message"))});u.type==="select"&&f.bind("change",function(){u.inputElement.blur();t(function(){u.inputElement.focus()},250)});var a=function(n){var t=n.is(":focus");n.blur();t&&n.focus()},h=!1,c=_.debounce(function(){h=!0;u.type==="select"&&t(function(){var n,r,f;if(u.inputElement.length===0&&(u.inputElement=$(u.type,u.currentElement)),u.inputElement[0]&&u.inputElement[0].options){for(n=u.inputElement[0].options;n.length&&!n[0].textContent;)n.remove(0);if(n.length&&!(n.length%2)&&(r=n[0],f=n[n.length/2],r.textContent===f.textContent&&r.value===f.value)){for(var t=-1,i=n.length-1,e=n.length/2;i>=e;)n[i]&&n[i].selected&&(t=i),n.remove(i--);t-=e;t>=0&&t<n.length&&(n[t].selected=!0)}}})},500),l=u.$watch(function(){return u.inputElement.val()},function(){h?l():c()})}),u.elementID||(u.elementID=r.getElementID()),u.$watch("userRequired",function(n,t){n!=t&&(u.required=n&&n!="false")}),u.$on("get-element-id",function(n,t){n.defaultPrevented||(typeof t=="function"&&t(u.elementID,u.type),n.preventDefault())}),h=function(n){u.groupID=n},u.$emit("get-group-id",u.elementID,h),u.$on("$destroy",function(){u.elementID&&r.removeElement(u.elementID)}))}}}]);angular.module("TiimaApp").directive("tiimaFormElementGroup",["$compile","$timeout","$q","validationService",function(n,t,i,r){return{restrict:"E",require:"?^^form",transclude:!0,scope:{userClasses:"@classes",userFormElementClass:"@formElementClass",errorHolderClass:"@",groupID:"@groupId",userErrorPriority:"@errorPriority"},templateUrl:"MVC/ScriptsApp/directives/form/formElementGroupTemplate.html",link:function(n,t,i,u){var e,o,f,s;u&&(n.errors=!1,n.showError=!1,n.fieldErrors=!1,n.classes=n.userClasses,n.formElementClass=n.userFormElementClass||"",n.errorPriority=n.userErrorPriority||"field",e=function(t,i,r){t=="group"?n.errors=i||!1:n.fieldErrors=i||!1;n.formElementClass=n.userFormElementClass||"";n.formElementClass+=n.errorPriority=="field"&&n.fieldErrors||!n.errors?" no-errors":" errors";!i&&r&&n.$broadcast("remove-error",r)},o=function(){var r=n.showError,i;n.showError=$(t).find("tiima-form-element.has-error").length>0;r!==n.showError&&(n.showError?(t.addClass("has-error"),console.log("'has-error' class added for group "+n.groupID)):(i=f(),_.forEachRight(i,function(n){n&&n.model.$modelValue!==n.model.$viewValue&&(console.log("model value updated for "+n.name),n.model.$$lastCommittedViewValue=undefined,n.model.$commitViewValue())}),t.removeClass("has-error"),console.log("'has-error' class removed from group "+n.groupID)))},n.groupID||(n.groupID=r.getElementID()),f=function(n){var i=null,r;return n&&(i={},_.forEach(n,function(n){i[n]=!0})),r=[].slice.call(t[0].querySelectorAll("[ng-model][name]"),0),r.map(function(n){var t=angular.element(n),r=t.attr("name");return!i||i[r]?{name:r,model:t.controller("ngModel")}:null})},s=function(n){if(!n)return null;var i=f(n),t={};return _.forEach(i,function(n){n&&(t[n.name]=n.model.$$rawModelValue||n.model.$viewValue)}),t},r.registerGroupNotification(n.groupID,e,o),r.registerModelScopeCollector(n.groupID,s),n.$on("get-group-id",function(t,i,u){t.defaultPrevented||(typeof u=="function"&&u(n.groupID),i&&r.addElementToGroup(i,n.groupID),t.preventDefault())}))}}}]);angular.module("TiimaApp").directive("tiimaValidationErrorHolder",["$compile","$timeout","validationService",function(n,t,i){return{restrict:"E",scope:{elementId:"@",classes:"@",userGroupLevel:"@groupLevel"},templateUrl:"MVC/ScriptsApp/directives/form/validationErrorHolderTemplate.html",link:function(n){n.ok=!0;n.errorMessage="";n.groupLevel=n.userGroupLevel&&n.userGroupLevel!=="false";var u={},r={sortedList:[],sortedAt:0},f=function(){t(function(){(new Date).getTime()>r.sortedAt+500&&(r.sortedList=[],_.forOwn(u,function(n){r.sortedList.push(n)}
1),r.sortedList.sort(function(n,t){return n.prioritized<t.prioritized?-1:n.prioritized>t.prioritized?1:0}),r.sortedAt=(new Date).getTime());n.errorMessage=r.sortedList.length?r.sortedList[0].message:""})},o=1,s=function(t,i,r){n.ok=!1;var e=u[t];e||(u[t]=e={index:o++});e.message=i;e.priority=r;f()},h=function(t){var i,r;delete u[t];i=0;for(r in u)i++;i?f():(n.ok=!0,n.errorMessage="")},e=function(t){n.elementID=t;i.registerValidationErrorHolder(t,s,h,n.groupLevel)};n.groupLevel?n.$emit("get-group-id",null,e):n.$emit("get-element-id",e)}}}]);angular.module("TiimaApp").directive("tiimaPage",["$timeout","$q","validationService","pageService","initPageService",function(n,t,i,r,u){return{restrict:"E",transclude:!0,scope:{userSideBarVisibilityDefaultValue:"@sideBarVisibilityDefaultValue",userSideBarOpenDefaultValue:"@sideBarOpenDefaultValue",userSideBarSize:"@sideBarSize",userSideBarHidden:"@sideBarHidden"},templateUrl:"MVC/ScriptsApp/directives/page/pageTemplate.html",link:function(t){var i=(t.userSideBarSize||"s").toLowerCase(),f,e;t.sideBarSize={small:i==="s",medium:i==="m",large:i==="l",xlarge:i==="xl"};t.sideBarVisibilityDefaultValue=!0;t.sideBarOpenDefaultValue=!0;f=function(n){t.sideBarOpenDefaultValue=n=="true";r.setSideBarState(t.sideBarOpenDefaultValue)};e=function(n){t.sideBarVisibilityDefaultValue=n=="true";r.setSideBarVisibility(t.sideBarVisibilityDefaultValue)};t.$watch("userSideBarOpenDefaultValue",function(n,i){n!==i&&f(t.userSideBarOpenDefaultValue)});t.$watch("userSideBarVisibilityDefaultValue",function(n,i){n!==i&&e(t.userSideBarVisibilityDefaultValue)});f(t.userSideBarOpenDefaultValue);e(t.userSideBarVisibilityDefaultValue);u.getFormController().then(function(i){t.$parent[i.$name]=i;n(function(){})})}}}]);angular.module("TiimaApp").directive("tiimaSideBar",["$timeout","$q","validationService","pageService",function(n,t,i,r){return{restrict:"E",transclude:!0,scope:!1,templateUrl:"MVC/ScriptsApp/directives/page/sideBarTemplate.html",link:function(n){n.open=r.getSideBarState();n.visible=r.getSideBarVisibility();n.$on("sidebar-state-changed",function(t,i){n.open=i});n.$on("sidebar-visibility-changed",function(t,i){n.visible=i});n.toggleSideBar=function(){n.sideBarOpen=!n.sideBarOpen;r.setSideBarState(n.sideBarOpen)}}}}]);angular.module("TiimaApp").directive("tiimaMainContent",["$timeout","$q","validationService","initPageService","pageService",function(n,t,i,r,u){return{restrict:"E",transclude:!0,scope:!1,templateUrl:"MVC/ScriptsApp/directives/page/mainContentTemplate.html",link:function(n,t){var f,i;n.sideBarOpen=u.getSideBarState();n.sideBarVisible=u.getSideBarVisibility();n.$on("sidebar-state-changed",function(t,i){n.sideBarOpen=i});n.$on("sidebar-visibility-changed",function(t,i){n.sideBarVisible=i});f=t.find("form");f&&(i=f.controller("form"),i&&(n[i.$name]=i,r.setFormController(i)))}}}]);angular.module("TiimaApp").controller("loginController",["$rootScope","$scope","$cookies","$http","$q","$location","$timeout","$window","$sce","localizationService","closePopupService","flashService","toolsService","navigationService",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v){function k(){p&&e.cancel(p);p=e(function(){t.showPassword=!1},y)}function k(){w&&e.cancel(w);w=e(function(){t.showConfirmPassword=!1},y)}var b,d,y,p,w;t.loginData={userName:"",customerIdentifier:"",language:"",password:"",passwordConfirm:"",passwordRequestToken:"",adfsLoginUrl:""};t.BaseUrl=v.getPath();t.showLanguagePopup=!1;t.showCapsLockWarning=!1;t.useSMS=!0;t.login2FA=!1;t.locked={locked:!1,until:null,minutes:0};t.passwordRequired=!1;t.userNameRequired=!1;t.customerIdentifierRequired=!1;t.showPassword=!1;t.showConfirmPassword=!1;t.bulletins=[];t.bulletin=null;t.totalBulletins=0;t.readingCount=1;t.systemInfoMessage="";t.passworChangeHeader="";t.requirements=[];t.pageLoading=!1;t.cookieConsent=i.get("cookieConsent")=="1"?!0:!1;t.setCookieConsent=function(){i.put("cookieConsent","1");t.cookieConsent=!0};t.viewingCookieInfo=!1;t.toggleCookieInfo=function(){t.viewingCookieInfo=!t.viewingCookieInfo};r.defaults.headers.common.RequestVerificationToken=undefined;b=function(){var r,u,i;t.angularInit&&(t.loginData.userName=t.angularInit.UserName,t.loginData.customerIdentifier=t.angularInit.CustomerIdentifier,t.loginData.passwordRequestToken=t.angularInit.PasswordRequestToken,t.loginData.adfsLoginUrl=t.angularInit.AdfsLoginUrl,t.loginData.jwtLoginUrl=t.angularInit.JwtLoginUrl,t.loginData.showHakaLogin=t.angularInit.ShowHakaLogin,t.systemInfoMessage=t.angularInit.SystemInfoMessage,t.passwordChangeHeader=t.angularInit.Header,t.requirements=t.angularInit.PasswordRequirements,t.login2FA=t.angularInit.Login2FA?!0:!1,r=t.angularInit.GetCode?!0:!1,u=t.angularInit.MandatoryBulletins?!0:!1,t.angularInit.LockedUntil?t.lockUntil(t.angularInit.LockedUntil):t.login2FA&&r&&t.getCode(),u&&t.getMandatoryBulletins(),e(function(){t.login2FA||t.loginData.userName?$("#Password").focus():$("#UserName").focus()},50),h.getLoadDefer().then(function(){t.angularInit.Errors&&(l.showError(t.angularInit.Errors),l.disableClear=!0);t.angularInit.SuccessMessages&&l.showMessage(t.angularInit.SuccessMessages);t.angularInit.WarningMessages&&l.showWarning(t.angularInit.WarningMessages)}),t.angularInit.Errors||t.angularInit.SuccessMessages||t.angularInit.WarningMessages||l.clearAll(),t.useSMS=t.angularInit.UseSMS?!0:!1,t.angularInit.InfoMessage&&l.showInfoMessage(t.angularInit.InfoMessage),t.languages=h.getAllLanguages(),i=t.angularInit.TiimaLang,t.language=i?h.getLanguageByCode(i):h.getLanguageByCode(t.languages[0].code),n.language=t.language.code,h.getLocalization(t.language.code).then(function(){t.loginPageResolved=!0}),t.loginData.jwtLoginUrl&&t.jwtLogin())};
1t.$watch("angularInit",b);d=function(n){t.showLanguagePopup=!1;n&&t.$apply()};t.getMandatoryBulletins=function(){t.pageLoading=!0;t.sendRequest("MVC/Main/Login/GetUnreadMandatoryBulletinsForLogin",{}).then(function(n){n.Data&&(t.bulletins=n.Data.Bulletins,t.totalBulletins==0&&(t.totalBulletins=t.bulletins.length),t.bulletins.length>0?t.bulletin=t.bulletins[0]:(t.bulletin=null,t.totalBulletins=0,t.readingCount=0));t.pageLoading=!1})};t.showSpinner=function(){t.pageLoading=!0};t.markBulletinRead=function(){t.pageLoading=!0;var n={BulletinIdC:t.bulletin.IdC};t.sendRequest("MVC/Main/Login/MarkBulletinReadForLogin",n).then(function(n){n.Data&&(t.bulletins=n.Data.Bulletins,t.bulletins.length>0&&(t.bulletin=t.bulletins[0],t.readingCount++));t.pageLoading=!1},function(){window.location.href=t.BaseUrl+"Login/IndexLogOut"})};t.adfsLogin=function(n){n.preventDefault();t.loginData.adfsLoginUrl&&(o.location.href=t.loginData.adfsLoginUrl)};t.jwtLogin=function(){t.loginData.jwtLoginUrl&&(o.location.href=t.loginData.jwtLoginUrl)};t.hakaLogin=function(n){n.preventDefault();o.location.href=n.target.href};t.lockUntil=function(n,i){var f=new Date(n),r,u;t.locked={locked:!0,until:f,minutes:Math.round((f.getTime()-(new Date).getTime())/6e4)};r={scope:t,forceSMS:i};u=function(){var n=new Date;n.getTime()>r.scope.locked.until.getTime()?(r.scope.locked.until=null,r.scope.locked.locked=!1,r.scope.locked.minutes=0,t.login2FA&&r.scope.getCode(r.forceSMS)):(r.scope.locked.minutes=Math.round((r.scope.locked.until.getTime()-n.getTime())/6e4),r.scope.locked.minutes==0&&(r.scope.locked.minutes=1),e(function(){u()},1e3))};e(function(){u()},1e3)};t.changeLanguage=function(i){f.search("LanguageCode",null);t.language=h.getLanguageByCode(i);t.loginData.language=i;h.getLocalization(i).then(function(){n.languageId=t.language.IdC;n.language=i;n.$broadcast("changeLanguage")})};t.getCode=function(n){t.pageLoading=!0;var i={SMS:n?!0:!1};t.sendRequest("MVC/Main/Login/GetCode",i).then(function(i){if(i&&i.Data){var r=i.Data;r.Status===1||r.LockedUntil?r.LockedUntil&&t.lockUntil(r.LockedUntil,n):a.showSplash("LOGIN.ERROR_GET_CODE_FAILED","errorMessage")}t.pageLoading=!1})};t.sendRequest=function(n,t){var i=u.defer(),f=$("input[name=__RequestVerificationToken]").val();return t.__RequestVerificationToken=f,a.handleHttpPost(r({method:"POST",url:n,headers:{"Content-Type":"application/x-www-form-urlencoded"},transformRequest:function(n){var t=[];for(var i in n)t.push(encodeURIComponent(i)+"="+encodeURIComponent(n[i]));return t.join("&")},data:t}),function(n){i.resolve(n)},i,function(){},function(){},function(){},function(n){i.reject(n)},!1),i.promise};t.sendAnotherCode=function(){t.getCode(!0)};t.passwordRequest=function(){var n=u.defer(),i={UserName:t.loginData.userName,Password:"",CustomerIdentifier:t.loginData.customerIdentifier,Language:t.language.code};return a.handleHttpPost(r.post("Login/SendPasswordRequest",i),function(t){n.resolve(t)},n,"inner",function(){},function(){},function(n){l.showError(n.data.Errors)},!1),n.promise};t.sendPasswordRequest=function(){(t.passwordRequired=!1,t.validateSendPassword())&&t.passwordRequest().then(function(n){n&&n.Status===0?l.showError(n.Errors):n&&n.Status===1&&l.showMessage(n.Messages)},function(n){l.showError(n.Errors)})};t.validateSendPassword=function(){return(t.passwordRequired=!1,t.userNameRequired=!0,t.customerIdentifierRequired=!0,!t.loginData.customerIdentifier)?!1:t.loginData.userName?!0:!1};t.passwordChangedSuccessfully=!1;t.changePassword=function(){t.passwordChangedSuccessfully=!1;t.setNewPassword().then(function(n){n&&n.Status===0?l.showError(n.Errors):n&&n.Status===1&&(l.showMessage(n.Messages),t.passwordChangedSuccessfully=!0)},function(n){l.showError(n.data.Errors)})};t.setNewPassword=function(){t.pageLoading=!0;var n=u.defer(),i={Password:t.loginData.password,PasswordConfirm:t.loginData.passwordConfirm,PasswordRequestToken:t.loginData.passwordRequestToken,UserName:"",CustomerIdentifier:"",Language:t.language.code};return a.handleHttpPost(r.post("Login/PasswordChange",i),function(t){n.resolve(t)},n,"inner",function(){},function(){t.pageLoading=!1},function(n){l.showError(n.data.Errors)},!1),n.promise};t.goTo=function(n){o.location.href=n};t.initForm=function(){var n=$("#loginForm");n.submit(function(n){n.preventDefault();t.validateLogin()?(t.loggingIn=!0,t.pageLoading=!0,this.submit()):t.loggingIn=!1;t.$apply()})};t.validateLogin=function(){return(t.userNameRequired=!0,t.passwordRequired=!0,t.customerIdentifierRequired=!0,!t.loginData.password)?!1:t.loginData.customerIdentifier?t.loginData.userName?!0:!1:!1};t.initMandatoryBulletinsForm=function(){var n=$("#mandatory-bulletins-form");n.submit(function(n){n.preventDefault();this.submit();t.$apply()})};t.initChangePasswordForm=function(){var n=$("#change-password-form");n.submit(function(n){n.preventDefault();this.submit();t.$apply()})};t.init2faForm=function(){var n=$("#two-fa-form");n.submit(function(n){n.preventDefault();this.submit();t.$apply()})};t.clearMessage=function(n){l.closeMessage(n)};t.clearWarning=function(n){l.closeWarning(n)};t.clearError=function(n){l.closeError(n)};t.toggleShowPassword=function(){var n=!t.showPassword;t.showPassword=n;n&&k()};y=3e4;t.toggleShowConfirmPassword=function(){var n=!t.showConfirmPassword;t.showConfirmPassword=n;n&&k()}}]);angular.module("TiimaApp").controller("logoutController",["$scope","$cookies","localizationService","flashService","navigationService",function(n,t,i,r,u){n.BaseUrl=u.getPath();n.relogin=function(){window.location.href=n.BaseUrl+"Login/IndexLogOut"};var f=function(){var r=window.location.href,e;if((r.indexOf("unauthorized")>=0||r.indexOf("restricted")>=0||r.indexOf("/Logout")>=0)&&(window.location.href=n.BaseUrl+"Login/IndexLogOut"),n.angularInit){var o=i.getAllLanguages(),u=null,f=n.angularInit.TiimaLang;f?u=i.getLanguageByCode(f):(e=t.get("TiimaLang"),u=i.getLanguageByCode(e||o[0].code));i.getLocalization(u.code,n.angularInit.Version);$("#loginLink").focus()}};n.$watch("angularInit",f)}]);angular.module("TiimaApp").controller("issuerController",["$scope","$
1window","$http","$timeout","$rootScope","$q","toolsService",function(n,t,i,r,u,f,e){n.getToken=function(){var n=f.defer();return e.handleHttpPost(i.post("MVC/API/Banner/GetSsoToken"),function(t){n.resolve(t)},n),n.promise};n.getToken().then(function(n){var t=$("#_ssoForm"),r;t.attr("action",u.ssoAuthentcationEndPoint);var f=i.defaults.headers.common.RequestVerificationToken,e=f.split(":")[0],o=$("#ssoXsrfToken");o.val(e);r=$("#ssoAuthToken");r.val(n);t.submit()})}]);angular.module("TiimaApp").controller("tiimaController",["$scope","$rootScope","$http","$q","$window","$interval","$timeout","$uibModal","$cookies","$browser","navigationService","localizationService","tiimaEnumsService","pageService","flashService","logoutService","initPageService","settingService","toolsService","validationService",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k,d){var g,nt,tt;n.pageOptions={};n.mainContentClass="body";n.ssoAuthentcationEndPoint=null;n.ssoAuthenticationEndPointXsrfToken=null;t.noscroll=!0;t.pageHeading="GLOBAL.APPLICATION_TIIMA";g=function(n){var t={};return _.forEach(n,function(n){switch(n.DataType){case 1:n.Value=n.Number1;break;case 2:n.Value=n.Text1;break;case 3:n.Value=n.Date1;break;case 4:n.Value=n.IdC1;break;case 5:n.Value=n.Boolean1?!0:!1;break;case 6:n.Value={StartDate:n.StartDate,EndDate:n.EndDate}}t[n.Code]=n}),t};t.getFirstErrorMessage=function(){return d.isValid()?null:d.getFirstError()};t.applyInitData=function(u){var l,o,f,h,e,c,v,y;t.pageResolved||(l=s.get("vtmt"),t.moreMenu=l==="1",u||u.Data||(t.activeNavigation=!0,$location.path("unauthorized")),u&&u.Data&&(o=window.location.pathname,f=o.indexOf(".aspx")!==-1,f||o.indexOf(".asp")!==-1||(f=!0),t.TiimaVersion=u.Data.Version,u.Data.SsoAuthentcationEndPoint&&(n.ssoAuthentcationEndPoint=u.Data.SsoAuthentcationEndPoint,t.ssoAuthentcationEndPoint=u.Data.SsoAuthentcationEndPoint,n.ssoAuthenticationEndPointXsrfToken=u.Data.SsoAuthenticationEndPointXsrfToken,t.ssoAuthenticationEndPointXsrfToken=u.Data.SsoAuthenticationEndPointXsrfToken),t.DebugConfiguration=!!u.Data.DebugConfiguration,h=null,h=f?{BulletinLinkUrl:"config/bulletins.aspx",TicketProviders:{Tiima:function(n,t,u,f,e){var o=r.defer();return k.handleHttpPost(i.post("MVC/API/Banner/GetTicket",{requestedUrl:n,selectedIdC:t,idC2:u,idC3:f,pageParameters:e}),function(n){o.resolve(n)},o),o.promise}},SessionRefreshUrl:"MVC/API/Banner/Refresh",LoginUrl:"Login",LogoutUrl:"/Logout"}:{BulletinLinkUrl:"todo.asp",TicketProviders:{Tiima2:"/Ticket.asp"},SessionRefreshUrl:"/Refresh.asp",LoginUrl:"/login.asp",LogoutUrl:"/logout.asp"},e={DefaultDateFormat:"DD.MM.YYYY",DefaultJQDateFormat:"dd.mm.yy",SupportedDateFormats:[{formatString:"DD.MM.YYYY",separator:"."},{formatString:"DD/MM/YYYY",separator:"."},{formatString:"YYYY-MM-DD",separator:"-"},{formatString:"DD-MM-YYYY",separator:"-"},{formatString:"D.M.YYYY",separator:"."},{formatString:"D.M.YYYY",separator:"."},{formatString:"YYYY-M-D",separator:"-"},{formatString:"D-M-YYYY",separator:"-"}]},c=u.Data.TiimaSettings,c&&(v=g(c),e=_.extend({},e,v)),$.datepicker.regional.en||($.datepicker.regional.en={}),$.datepicker.regional.en.dateFormat="dd.mm.yy",$.datepicker.regional.en.firstDay=1,$.datepicker.setDefaults(_.extend($.datepicker.regional[a.getValue("LanguageCode",t.language)],{$dateDefaultsInitialized:!0})),u.Data.LanguageCode&&n.changeLanguage(u.Data.LanguageCode),y=angular.extend(u.Data,h,e),b.initSettings(y)),t.pageResolved=!0)};nt=t.$watch("language",function(){t.language&&n.pageOptions.language!==t.language&&(n.pageOptions.language=t.language,nt())});n.changeLanguage=function(i){if(i){if($.datepicker.setDefaults(_.extend($.datepicker.regional[a.getValue("LanguageCode",i)],{$dateDefaultsInitialized:!0})),n.pageOptions.language===i)return;n.pageOptions.language=i}l.getLocalization(n.pageOptions.language).then(function(){t.language=n.pageOptions.language;t.languageId=l.getLanguageId(t.language);s.TiimaLang=n.language;b.setSettingValue("LanguageIdC",l.getLanguageIdC(n.language));t.$broadcast("changeLanguage")})};n.clearMessage=function(n){y.closeMessage(n)};n.clearWarning=function(n){y.closeWarning(n)};n.clearError=function(n){y.closeError(n)};n.openSessionNotificationModal=function(){var n=o.open({templateUrl:"MVC/Modals/modalSessionNotification.html",controller:"modalSessionNotificationController",backdrop:"static"})};tt=function(){var n=b.getSetting("SessionTimeout");return n||(n=20),n};n.startSessionNotificationTimeout=function(){var i=tt();i||(i=20);n.sessionNotificationTimeoutHandle&&f.cancel(n.sessionNotificationTimeoutHandle);n.sessionRefreshed=new Date;n.sessionNotificationTimeoutHandle=f(function(){t.sessionNotificationModalOpen=!0;f.cancel(n.sessionNotificationTimeoutHandle);n.sessionNotificationTimeoutHandle=null;n.openSessionNotificationModal()},(i-5)*6e4,1)};t.$on("resetSessionNotificationTimeout",function(){t.sessionNotificationModalOpen||n.startSessionNotificationTimeout()});n.logout=function(){var n=b.getSetting("LogoutUrl");p.logOut().then(function(){window.location.href=n},function(){window.location.href=n})};t.pageResolve||(t.pageLoading=!0,r.all([w.promise,w.cachedInit("MVC/Root/R/InitPage"),w.initMainPage()]).then(function(n){var i=n[1],r=n[2];t.applyInitData(i);e(function(){t.pageLoading=!1},500)}))}]);angular.module("TiimaApp").controller("homeController",["$scope","$
1window","$http","$timeout","$rootScope","$location",function(n){n.pageLoading=!1}]);angular.module("TiimaApp").controller("tiimaBannerController",["$scope","$rootScope","$timeout","$window","settingService","menuService","localizationService","navigationService","$cookies",tiimaBannerController=function(n,t,i,r,u,f,e,o,s){n.Menu=[];n.UserName=null;n.CustomerName=null;n.LogoutUrl=null;n.BulletinLinkUrl=null;f.getMenu().then(function(t){t&&(n.Menu={Items:t.Items,TopMenuItems:t.TopMenuItems})});u.getInitializedPromise().then(function(){n.Bulletins=u.getSetting("Bulletins");n.UserName=u.getSetting("EmployeeName");n.CustomerName=u.getSetting("CustomerName");n.LogoutUrl=u.getSetting("LogoutUrl");n.BulletinLinkUrl=u.getSetting("BulletinLinkUrl")});n.onLogOutClick=function(){n.LogoutUrl&&(r.location=n.LogoutUrl)};n.onMoreMenuClick=function(n){if(!n.isDefaultPrevented()){t.moreMenu=!t.moreMenu;var i=new Date;i.setDate(i.getDate()+1e3);s.put("vtmt",t.moreMenu?"1":"0",{expires:i})}};n.onBulletinClick=function(t){o.gotoPage(n.BulletinLinkUrl);t.preventDefault();t.stopPropagation()};var h=null;n.onMenuClick=function(n,t){n._open?h=null:(h&&n!==h&&(h._open=!1),h=n);n._open=!n._open;t.stopPropagation()};n.onMenuItemClick=function(n,t){var i=$("<div class='cloakedBackground'> <\/div>");$("body").append(i);o.gotoPage(t.Action);n.preventDefault()}}]);angular.module("TiimaApp").controller("employeeListController",["$scope","$http","$q","$timeout","localizationService","toolsService","tiimaEnumsService",employeeListController=function(n,t,i,r,u,f,e){n.pageCount=0;n.pageIndex=0;n.totalCount=0;n.orderByFieldIndex=0;n.sortOrder=0;n.employees=[];n.selectedEmployee=null;n.$on(e.getValue("EmployeeControllerEventEnum","EmployeesUpdated"),function(t,i){i&&(n.pageCount=i.PageCount,n.pageIndex=i.PageIndex,n.totalCount=i.TotalCount,n.employees=i.Data)});n.prevPage=function(){n.pageIndex--;n.refresh()};n.nextPage=function(){n.pageIndex++;n.refresh()};n.headerClick=function(t){t==n.orderByFieldIndex?n.sortOrder=++n.sortOrder%2:(n.sortOrder=0,n.orderByFieldIndex=t);n.refresh()};n.selectEmployee=function(t){n.selectedEmployee=t;n.$emit(e.getValue("EmployeeControllerEventEnum","EmployeeSelect"),t)};n.refresh=function(){var t={Page:n.pageIndex,OrderByFieldIndex:n.orderByFieldIndex,SortOrder:n.sortOrder};n.$emit(e.getValue("EmployeeControllerEventEnum","Refresh"),t)}}]);angular.module("TiimaApp").controller("employeeController",["$scope","$http","$q","$timeout","localizationService","toolsService","restrictionService","employeeService","tiimaEnumsService","Employee",function(n,t,i,r,u,f,e,o,s,h){n.Employees=[];n.ParameterTypeConversion=[0,1,9,2,10,13];n.TotalCount=0;n.PageSize=10;n.SelectedEmployee=null;n.Arguments={Page:0,SortOrder:0,OrderByFieldIndex:0};n.SelectedPeriod=null;n.DateFilter=new Date;n.$on(s.getValue("RestrictionControllerEventEnum","RestrictionChange"),function(t,i){i&&i.PeriodType&&(n.SelectedPeriod=i);n.Arguments&&(n.Arguments.Page=0);n.updateEmployees()});n.$on(s.getValue("EmployeeControllerEventEnum","Refresh"),function(t,i){i&&n.updateEmployees(i)});n.$on(s.getValue("EmployeeControllerEventEnum","EmployeeSelect"),function(t,i){n.SelectedEmployee!=i&&(n.SelectedEmployee=i,n.$emit(s.getValue("EmployeeControllerEventEnum","EmployeeSelected"),i))});n.updateEmployees=function(t){var c,g,i,a,v,y,p,f,d;t&&(n.Arguments=t);var it=n.Arguments.Page*n.PageSize,t={FirstIndex:it,ItemCount:n.PageSize,SortOrder:n.Arguments.SortOrder,OrderByFieldIndex:n.Arguments.OrderByFieldIndex,EmploymentData:!0,Items:[]},w=null,b=null,l=null;if(n.SelectedPeriod){if(t.StartDate=n.SelectedPeriod.StartDate,t.EndDate=n.SelectedPeriod.EndDate,w=Number(n.SelectedPeriod.ReferenceType),c=null,w<s.getValue("PeriodTypeEnum","MonthPeriods"))for(g=s.getValue("AbsenceQueryParameterTypeEnum","Organisation"),w==s.getValue("PeriodTypeEnum","OrganisationPeriods")?c=l={}:(c=b={},g=s.getValue("AbsenceQueryParameterTypeEnum","PaymentGroup")),i=0;i<n.SelectedPeriod.References.length;i++)c[n.SelectedPeriod.References[i]]=!0}else t.Date=n.DateFilter;var r=e.getRestrictions(),u=null,k=o.getOrganisation();if(r&&r.length)for(i=0;i<r.length;
1i++){if(a=o.convertRestrictionParameterType(r[i].RestrictionType),v=!1,a==s.getValue("AbsenceQueryParameterTypeEnum","Organisation")&&l){if(v=!0,u||(u={}),y=[r[i].IdC],r[i].SubLevels&&k&&k.getSubNodes&&(p=k.getSubNodes(r[i].IdC),p))for(f=0;f<p.length;f++)y.push(p[f].IdC);for(f=0;f<y.length;f++)u[y[f]]=!0}else a==s.getValue("AbsenceQueryParameterTypeEnum","PaymentGroup")&&b&&(v=!0,u||(u={}),u[r[i].IdC]=!0);v||t.Items.push({Type:a,DataType:s.getValue("AbsenceQueryParameterValueType","ID"),IdCValue:r[i].IdC,SubLevels:r[i].SubLevels})}var nt=l?s.getValue("AbsenceQueryParameterTypeEnum","Organisation"):s.getValue("AbsenceQueryParameterTypeEnum","PaymentGroup"),c=l?l:b,tt=!1;if(c){for(d in c)(u==null||u[d])&&(t.Items.push({Type:nt,DataType:s.getValue("AbsenceQueryParameterValueType","ID"),IdCValue:d,SubLevels:!1}),tt=!0);tt||t.Items.push({Type:nt,DataType:s.getValue("AbsenceQueryParameterValueType","ID"),IdCValue:-1,SubLevels:!1})}t=angular.extend(t,o.getExtraArguments());h.getAll(t).then(function(t){n.Employees=t?t.DataList:[];n.TotalCount=t?t.TotalRows:0;n.$broadcast(s.getValue("EmployeeControllerEventEnum","EmployeesUpdated"),{PageCount:Math.ceil(n.TotalCount/n.PageSize),PageIndex:n.Arguments.Page,TotalCount:n.TotalCount})})}}]);angular.module("TiimaApp").controller("restrictionController",["$scope","toolsService","restrictionService","tiimaEnumsService",restrictionController=function(n,t,i,r){n.SelectedRestrictionValue=null;n.DateFilter=new Date;n.SelectedPeriod=null;n.Restrictions=null;n.RestrictionItemTemplate="{{Code}} {{Name}} ({{TypeName}})";n.$on(r.getValue("RestrictionControllerEventEnum","PeriodsLoaded"),function(t,r,u){if(n.SelectedPeriod=null,r!=null)for(var f=0;f<r.length;f++)if(r[f].StartDate.getTime()<=u.getTime()&&u.getTime()<=r[f].EndDate.getTime()){n.SelectedPeriod=r[f];break}n.SelectedPeriod?n.selectPeriod():(n.DateFilter=u,n.dateFilterChange());n.Restrictions=i.getRestrictions()});n.isPeriodSelectionVisible=function(){return i.getPeriodVisibility()};n.getRestrictionValue=function(n){return i.loadData(n)};n.addRestriction=function(t){t&&(t.RestrictionType==1&&(t.SubLevels=!0),i.addRestriction(t)&&n.emitEvent(r.getValue("RestrictionControllerEventEnum","RestrictionAdd"),t),n.SelectedRestrictionValue=null)};n.removeRestriction=function(t){t&&i.removeRestriction(t)&&n.emitEvent(r.getValue("RestrictionControllerEventEnum","RestrictionRemove"),t)};n.dateFilterChange=function(){n.emitEvent(r.getValue("RestrictionControllerEventEnum","DateFilterChange"),t.getDateOnly(n.DateFilter))};n.selectPeriod=function(t){t&&(n.SelectedPeriod=t);n.emitEvent(r.getValue("RestrictionControllerEventEnum","PeriodChange"),n.SelectedPeriod)};n.toggleSubLevels=function(t){t.SubLevels=!t.SubLevels;i.updateRestriction(t)&&n.emitEvent(r.getValue("RestrictionControllerEventEnum","RestrictionUpdate"),t)};n.emitEvent=function(t,i){n.$emit(t,i);n.$emit(r.getValue("RestrictionControllerEventEnum","RestrictionChange"),i)}}]);angular.module("TiimaApp").controller("validateController",["$scope","$element","$q","$timeout","validationService",function(n,t,i,r,u){var f={},s=t.controller("ngModel"),v=function(n){return f.hasOwnProperty(n)?f[n]:n},e,o,h,c,l,a;n.level="field";n.type="";n.complexValidation=!1;n.elementID=null;n.getGroupScope=function(t){return u.getGroupScope(n.elementID,t)};e={};n.getErrorSet=function(){return n.level=="group"?u.getGroupErrors(n.elementID,n.type):e};n.setErrorSet=function(t){if(n.level=="group")return u.setGroupErrors(n.elementID,n.type,t);e=t};n.setError=function(t,i,r){console.log("setting error "+r+" for "+n.elementID||"[unknown]");t.$setValidity(r,!1);u.setValidationError(n.elementID,r,v(r))};n.removeError=function(t,i,r,f){console.log("removing error "+r+" for "+n.elementID||"[unknown]");t.$setValidity(r,!0);u.removeValidationError(n.elementID,r,f)};n.insertErrorMessage=function(t,i,e,o,s){r(function(){var r=t,f;if(t.is("input")||(f=t.prop("tagName"),r=$("input",t)),n.elementID){r.on("blur",function(){h(r.val())});o&&u.addGroupFilter(n.elementID,i)}});f[i]={message:e,priority:s}};o=[];n.addBlurValidationHandler=function(n){typeof n=="function"&&o.push(n)};h=function(n){_.forEach(o,function(t){t(n)})};c=function(n,t){return s.$isEmpty(n)||n.length<(t||-1)};n.isEmpty=function(t,i){return n.complexValidation?u.callValidationHelper(n.elementID,"isEmpty",t,i||-1):s.$isEmpty(t)||t.length<(i||-1)};n.getLength=function(t){return n.complexValidation?u.callValidationHelper(n.elementID,"getLength"):(t
1+"").length};this.validate=function(t){n.validate&&n.validate(t)};l=this;a=function(t,i){n.elementID=t;i.indexOf("ui")==0&&(n.complexValidation=!0,u.registerValidationHelperFunction(t,"isEmpty",c),u.registerValidationHelperFunction(t,"validate",l.validate))};n.$emit("get-element-id",a)}]);angular.module("TiimaApp").controller("validationEnabledElementController",["$scope","$q","$timeout","$element","validationService",function(n,t,i,r,u){var o=function(){for(var t=n.$parent;t;){if(t.childElementInitialized)return t.childElementInitialized;t=t.$parent}return null},f=o(),e;n.directiveInitializedDefer=t.defer();f&&f(r.prop("localName"));n.elementID=null;e=function(t){n.elementID=t;n.isValueEmpty&&n.registerValidationHelperFunction("isEmpty",n.isValueEmpty)};n.directiveInitializedDefer.promise.then(function(){n.$emit("get-element-id",e)});n.registerValidationHelperFunction=function(t,i){n.elementID&&typeof i=="function"&&u.registerValidationHelperFunction(n.elementID,t,i)};n.validate=function(t){return u.callValidationHelper(n.elementID,"validate",t)};i(function(){n.name||(n.name="E:"+n.elementID)});r.addClass("form-element")}]);angular.module("TiimaApp").controller("resourcingController",["$scope","$http","$q","$compile","$timeout","$location","$window","$uibModal","initPageService","datasourceService","resourcingService","editorService","tiimaEnumsService","localizationService","toolsService","formatService","restrictionService","employeeService","Dimension","DimensionItem","ResourceEmployee","ResourcingPeriod",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k,d,g){var tt,it,et,rt,ot,ut,ft;n.SelectedDimension=null;n.DimensionsByIdC={};n.DimensionItemsByIdC={};n.FilterParent=null;n.NewIdC=0;var nt=new Date,st=new Date(nt.getFullYear(),nt.getMonth()-1,nt.getDate()),ht=new Date(nt.getFullYear(),nt.getMonth()+1,nt.getDate());n.dateRange={startDate:st,endDate:ht,skipStartDateWatch:!1,skipEndDateWatch:!1};n.Filters={};n.Items=null;n.AllDimensions=null;n.TopLevelDimensionCount=0;n.filterLoading=!1;n.DataLoaded=!1;n.FilterDefers={};n.TemplateSelectorVisible=!1;n.Mode=1;n.ShowEmployees={Resourcing:1,Permissions:2};n.EmployeeModeDisabled=!0;n.enabledZoomLevels=null;n.currentSettings=null;n.dataSources={filterItemDatasource:h.createDatasource({method:function(t){return n.getFilterDimensionItems(t)}})};n.filterPopover={visible:!1};n.reportPopover={visible:!1};n.toggleFilterPopover=function(){n.filterPopover.visible=!n.filterPopover.visible};n.toggleReportPopover=function(){n.reportError=!1;n.reportPopover.visible=!n.reportPopover.visible};n.resourcingPercentage={visible:!1,view:1};n.loading=!1;n.rangeLength=0;n.ZoomLevels=[{Value:0,Label:null},{Value:1,Label:null},{Value:2,Label:null},{Value:3,Label:null}];n.ZoomLevel=2;n.zoomLevelTitle="RESOURCING.ZOOM_LEVEL_MONTH";n.maxLength=[{length:7,unit:"day",min:1},{length:1,unit:"month",min:1},{length:3,unit:"month",min:1},{length:12,unit:"month",min:5},{length:36,unit:"month",min:15}];n.controllerUrl=null;n.filterHeadingFormat=v.getText("GLOBAL.AUTOCOMPLETE_DEFAULT_BROWSING_TEXT_FORMAT");n.filterItemTemplate="{{Code}} {{DimensionItemName}}";n.periodsRequest=null;tt=new Date;n.Report={StartDate:new Date(tt.getFullYear(),tt.getMonth(),1,0,0,0,0),EndDate:new Date(tt.getFullYear(),tt.getMonth()+1,0,0,0,0,0)};n.reportLoading=!1;n.reportError=!1;n.reportReady=!1;n.reportLink=null;n.gantt=null;gantt.config.xml_date="%Y-%m-%d %H:%i";gantt.config.grid_width=390;gantt.config.drag_resize=!0;gantt.config.drag_move=!0;gantt.config.drag_progress=!1;gantt.config.show_progress=!1;gantt.config.date_grid="%d.%m.";gantt.config.date_scale="%d.%m.";gantt.config.task_date="%d.%m.%Y";gantt.config.start_on_monday=!0;gantt.config.fit_tasks=!0;gantt.config.scale_height=60;gantt.config.sort=!0;gantt.config.columns=[{name:"code",label:"",width:"150",align:"left",tree:!0,template:function(n){return n.code}},{name:"dimension",label:"",width:"*",align:"left",tree:!1,template:function(n){return n.name}},{name:"add",label:""}];n.employeeGantt=$("#employees");n.PermissionToAddResourceDimensionItems=!1;n.PermissionToTemplates={Read:!1,Write:!1,Remove:!1};s.init("MVC/Resourcing/Resourcing/InitResourcingPage","RESOURCING.HEADER").then(function(t){t&&t.Data&&(n.PermissionToAddResourceDimensionItems=t.Data.PermissionToAddResourceDimensionItems,n.PermissionToTemplates={Read:t.Data.PermissionToTemplates&a.getValue("PermissionLevel","Read")?!0:!1,Write:t.Data.PermissionToTemplates&a.getValue("PermissionLevel","Write")?!0:!1,Remove:t.Data.PermissionToTemplates&a.getValue("PermissionLevel","Remove")?!0:!1});s.setSettingFunction(function(){n.editSettings()})});n.getTaskBreaksHtml=function(n){var r="",t;if(n.breaks){var o=gantt._get_task_coord(n),s=gantt.posFromDate(n.end_date),h=y.getDateDifference(n.end_date,n.start_date).days,u=(s-o.x)/h;for(t=0;t<n.breaks.length;t++){var i=n.breaks[t],f=y.getDateDifference(i.StartDate,n.start_date).days,e=y.getDateDifference(i.EndDate,i.StartDate).days+1;e*=u;f*=u;r+="<div class='task_break' style='width:"+e+"px;left:"+f+"px;'><div> <\/div><\/div>"}}return r};gantt.templates.lightbox_header=function(n,t,i){return i.code+" "+i.name[0].Value};gantt.templates.grid_indent=function(){return"<div class='gantt_tree_indent'><\/div>"};it=function(t,i,r){var f,e,u,o;if(!r.code)return c.getEmptyItemText();if(f="",r.actual_hours||r.planned_hours){if(e=0,r.actual_hours&&r.actual_hours.length)for(u=0;
1u<r.actual_hours.length;u++)e+=Number(r.actual_hours[u].Hours);o=r.planned_hours?r.planned_hours:0;f=" ("+p.getFormattedHours(e)+" h / "+p.getFormattedHours(o)+" h)"}return n.getTaskBreaksHtml(r)+"<div class='task'>"+r.code+" "+r.name+" - "+r.progress*100+"%"+f+"<\/div>"};et=function(t,i,r){var u;if(!r.code)return c.getEmptyItemText();var e=c.getItem(r.id),o="",f="";return e&&(u=n.getResourcingPercentageInformation(e),u.unresourced?f=u.unresourcedColorCode:u.resourcingPercentage<u.underResourcedThreshold?f=u.underResourcedColorCode:u.resourcingPercentage>u.overResourcedThreshold&&(f=u.overResourcedColorCode),f&&(f="style='background-color:"+f+";'"),o=u.resourcingPercentage.toFixed(2)+"%"),n.getTaskBreaksHtml(r)+"<div class='task'"+f+">"+r.code+" "+r.name+" - "+o+"<\/div>"};gantt.templates.task_text=it;gantt.templates.date_grid=function(n){return gantt.date.date_to_str(gantt.config.task_date)(n)};gantt.templates.task_time=function(n,t){return gantt.templates.task_date(n)+" - "+gantt.templates.task_date(t)};n.$watch("resourcingPercentage.visible",function(t,i){t!=i&&(t&&(n.resourcingPercentage.view=1),gantt.templates.task_text=t?et:it,gantt.templates.tooltip_text=t?ot:rt,gantt.refreshData())});n.$watch("resourcingPercentage.view",function(t,i){var r,f;if(n.resourcingPercentage.visible&&t!=i){switch(t){case 1:n.filterItems("all");break;case 2:n.filterItems("underResourced");break;case 3:n.filterItems("overResourced")}r=n.findMiddleDate();n.prepareGanttChart();f=n.prepareGanttData(n.Items);n.clearGantData();gantt.parse(f);u(function(){gantt.showDate(r)})}});n.getResourcingPercentageInformation=function(n){var t={planningUnit:1,unresourced:!1,underResourcedThreshold:100,overResourcedThreshold:100,underResourcedColorCode:"#c72828",overResourcedColorCode:"#68a611",unresourcedColorCode:"#737373",resourcingPercentage:100,totalBudget:0,totalResourced:0},i;return n&&(n.Settings&&n.Settings.length&&(i=n.Settings[0],i.PlanningUnit&&(t.planningUnit=i.PlanningUnit),i.OverResourcedThreshold&&(t.overResourcedThreshold=i.OverResourcedThreshold),i.UnderResourcedThreshold&&(t.underResourcedThreshold=i.UnderResourcedThreshold),i.OverResourcedColorCode&&(t.overResourcedColorCode=i.OverResourcedColorCode),i.UnderResourcedColorCode&&(t.underResourcedColorCode=i.UnderResourcedColorCode),i.UnresourcedColorCode&&(t.unresourcedColorCode=i.UnresourcedColorCode)),t.unresourced=t.planningUnit==1?n.TotalBudgetHoursForPeriods==0:n.TotalBudgetDaysForPeriods==0,t.totalBudget=t.planningUnit==1?n.TotalBudgetHoursForPeriods:n.TotalBudgetDaysForPeriods,t.totalResourced=t.planningUnit==1?n.TotalResourcedHoursForPeriods:n.TotalResourcedDaysForPeriods,t.resourcingPercentage=t.unresourced?0:t.planningUnit==1?n.ResourcingPercentageHours:n.ResourcingPercentageDays),t};n.filterItems=function(t){var f=n.Items,e,i,r,u;if(f)for(e in f)if(i=f[e],i){r=n.getResourcingPercentageInformation(i);i._valid=!1;switch(t){case"underResourced":r.resourcingPercentage<r.underResourcedThreshold&&(i._valid=!0);break;case"overResourced":r.resourcingPercentage>r.overResourcedThreshold&&(i._valid=!0);break;default:i._valid=!0}if(i._valid)for(u=i.Parent;u;)u._valid=!0,u=u.Parent}};rt=function(n,t,i){var y=c.getItem(i.id),r="",s,l,h,u,f;if(y){if(s=c.getParentChain(y),s)while(s.length)l=s.pop(),f=l.Code+" "+l.Name,r.length>0&&(r+=" > <\/td><\/tr><tr><td colspan='2'>"),r+=f;r.length>0&&(r="<tr><td colspan='2'>"+r+" > ")}var w="<thead>"+r+"<tr><th colspan='2'>"+i.code+" "+i.name+"<\/th><\/tr><\/thead>",e="<tfoot>",o="<tbody><tr><td>"+v.getText("RESOURCING.COMPLETED_LABEL")+": <\/td><td style='text-align:right;'>"+p.getFormattedDecimal(i.progress*100,1)+" %<\/td><\/tr>",d=i.planned_days?2:1,b=v.getText("RESOURCING.PLANNINGUNIT_HOUR_LABEL"),k=v.getText("RESOURCING.PLANNINGUNIT_DAY_LABEL");if((i.planned_hours||i.planned_days)&&(o+=i.planned_hours?"<tr><td>"+v.getText("RESOURCING.PLANNED_HOURS_LABEL")+": <\/td><td style='text-align:right;'>"+p.getFormattedHours(i.planned_hours)+" "+b+"<\/td><\/tr>":"<tr><td>"+v.getText("RESOURCING.PLANNED_DAYS_LABEL")+": <\/td><td style='text-align:right;'>"+p.getFormattedDecimal(i.planned_days,2)+" "+k+"<\/td><\/tr>",o+="<tr><td colspan='2'> <\/td><\/tr>"),i.actual_hours){for(h=0,u=0;u<i.actual_hours.length;u++)f=v.getText("RESOURCING.ACTUALS_TYPE_"+a.getKey("WorkHoursType",i.actual_hours[u].Type).toUpperCase()),o+="<tr><td>"+(f?f:"")+": <\/td><td style='text-align:right;'>"+p.getFormattedHours(i.actual_hours[u].Hours)+" h<\/td><\/tr>",h+=Number(i.actual_hours[u].Hours);o+="<\/tbody>";i.actual_hours.length>1&&(e+="<tr><th>"+v.getText("RESOURCING.TOTAL_LABEL")+": <\/th><th style='text-align:right;'>"+p.getFormattedHours(h)+" h<\/th><\/tr>");i.planned_hours&&(e+="<tr><th>"+v.getText("RESOURCING.PERCENTAGE_OF_PLANNEDHOURS_LABEL")+":<\/th><th style='text-align:right;'>"+p.getFormattedDecimal(Number(h)/Number(i.planned_hours)*100)+" %<\/th><\/tr>")}else e+="<tr><th>"+v.getText("RESOURCING.NO_ACTUALS")+"<\/th><\/tr>";return e+="<\/tfoot>","<table>"+w+e+o};ot=function(t,i,r){var u=c.getItem(r.id),f="",b=0,k=0,d=0,s=1,l,y,g,h,a;if(u){if(l=c.getParentChain(u),l)while(l.length)y=l.pop(),g=y.Code+" "+y.Name,f.length>0&&(f+=" > <\/td><\/tr><tr><td colspan='2'>"),f+=g;f.length>0&&(f="<tr><td colspan='2'>"+f+" > ");h=n.getResourcingPercentageInformation(u);s=h.planningUnit;s||(s=1);b=h.totalBudget;k=h.totalResourced;d=h.resourcingPercentage}var w=s==1?v.getText("RESOURCING.PLANNINGUNIT_HOUR_LABEL"):v.getText("RESOURCING.PLANNINGUNIT_DAY_LABEL"),tt="<thead>"+f+"<tr><th colspan='2'>"+r.code+" "+r.name+"<\/th><\/tr><\/thead>",nt="<tfoot>",e="<tbody><tr><td>"+v.getText("RESOURCING.BUDGET_TOTAL_LABEL")+": <\/td><td style='text-align:right;'>"+p.getFormattedDecimal(b,2)+" "+w+"<\/td><\/tr>";if(e+="<tr><td>"+v.getText("RESOURCING.RESOURCED_TOTAL_LABEL")+": <\/td><td style='text-align:right;'>"+p.getFormattedDecimal(k,2)+" "+w+"<\/td><\/tr>",e+="<tr><td>"+v.getText("RESOURCING.RESOURCING_PERCENTAGE_LABEL")+": <\/td><td style='text-align:right;'>"+p.getFormattedDecimal(d,2)+" %<\/td><\/tr>",e+="<tr><td colspan='2'> <\/td><\/tr>",e+="<tr><th colspan='2'>"+v.getText("RESOURCING.PERSONS_LABEL")+"<\/th><\/tr>",u&&u.AllPersons)for(a=0;a<u.AllPersons.length;a++){var o=u.AllPersons[a],it=(o.Firstname?o.Firstname:"")+" "+(o.Lastname?o.Lastname:""),rt=s==1?o.TotalResourcedHours:o.TotalResourcedDays;e+="<tr><td>"+it+": <\/td><td style='text-align:right;'>"+p.getFormattedDecimal(rt,2)+" "+w+"<\/td><\/tr>"}return nt+="<\/tfoot>","<table>"+tt+nt+e};gantt.templates.tooltip_text=rt;gantt.templates.scale_cell_class=function(n,t){if(!t||t.unit=="day")return n.getDay()==0||c.isHoliday(n.getTime())?"holiday":void 0};gantt.templates.task_cell_class=function(n,t,i){if(!i||i.unit=="day")return t.getDay()==0||c.isHoliday(t.getTime())?"holiday":void 0};gantt.templates.grid_header_class=function(){return"gantt_header"};gantt.templates.grid_folder=function(){return""};gantt.templates.grid_file=function(){return""};gantt.templates.grid_open=function(n){return"<div class='gantt_tree_icon gantt_"+(n.$open?"close"
1:"open")+" gantt_icon_"+(n.$open?"close":"open")+"'><\/div>"};v.getLoadDefer().then(function(){n.initializeChart()});c.setLoadingCallback(n.loadingCallback=function(t){n.loading=t});c.setShowResourceDimensionItemModalCallback(n.showResourceDimensionItemModal=function(t){n.showItem(t)});n.findMiddleDate=function(){if(gantt.$task_data){var n=(document.body.clientWidth-gantt.$grid_data.clientWidth)/2+gantt.$task.scrollLeft;return gantt._date_from_pos(n)}return new Date};ut=function(t,i,r){var l,a,o,s;if(t){if(r&&n.dateRange.skipStartDateWatch){n.dateRange.skipStartDateWatch=!1;console.log("dateFilterWatch skipped for "+(r?"startDate":"endDate"));return}if(!r&&n.dateRange.skipEndDateWatch){n.dateRange.skipEndDateWatch=!1;console.log("dateFilterWatch skipped for "+(r?"startDate":"endDate"));return}if(console.log("dateFilterWatch for "+(r?"startDate":"endDate")),n.Mode==2&&n.refreshEmployees(!0),n.Mode==1&&t.getTime&&i&&(typeof i=="string"||i.getTime&&i.getTime()!==t.getTime())){var h=y.getDateDifference(r?n.dateRange.endDate:i,r?i:n.dateRange.startDate).days,u=r?t:n.dateRange.startDate,f=r?n.dateRange.endDate:t,e=n.maxLength[n.ZoomLevel],c=y.getDateDifference(f,u).days;if(c<=0&&(r?n.dateRange.endDate=u=y.addDays(u,h):n.dateRange.startDate=f=y.addD
1ays(f,-h),c=h),l=c,e.unit==="month"&&(a=f.getFullYear()-u.getFullYear(),l=a*12+(f.getMonth()-u.getMonth())),c<=0&&(r?n.dateRange.endDate=y.addDays(u,h):n.dateRange.startDate=y.addDays(f,-h)),l>e.length)if(e.unit==="month")if(r){for(o=u.getMonth()+e.length,s=u.getFullYear();o>11;)s+=1,o-=12;n.dateRange.endDate=new Date(s,o,u.getDate())}else{for(o=f.getMonth()-e.length,s=u.getFullYear();o<0;)s-=1,o+=12;n.dateRange.startDate=new Date(s,o,f.getDate())}else r?n.dateRange.endDate=y.addDays(u,e.length):n.dateRange.startDate=y.addDays(f,-e.length);else l<e.min;n.SelectedDimension=null;n.loadData()}}};n.$watch("dateRange.startDate",function(n,t){n!==t&&ut(n,t,!0)});n.$watch("dateRange.endDate",function(n,t){n!==t&&ut(n,t,!1)});n.$watch("ShowEmployees.Resourcing",function(t,i){i!=t&&n.Mode==2&&n.refreshEmployees(!0)});n.$watch("ShowEmployees.Permissions",function(t,i){i!=t&&n.Mode==2&&n.refreshEmployees(!0)});n.$watch("resourcingPercentage.visible",function(n,t){n!=t});n.$watch("resourcingPercentage.view",function(n,t){n!=t});n.resourcingModeSelected=function(){if(n.Mode=1,n.gantt){var i=0,t=$(".gantt_hor_scroll");t.length==2&&(i=t[1].scrollLeft);u(function(){n.setChartHeight();n.setZoomLevel(n.ZoomLevel).then(function(){u(function(){t.length==2&&(t[0].scrollLeft=i)})})})}};n.employeeModeSelected=function(){n.Mode=2;var i=0,t=$(".gantt_hor_scroll");t.length==2&&(i=t[0].scrollLeft);n.refreshEmployees().then(function(){u(function(){t.length==2&&(t[1].scrollLeft=i)})})};n.refreshEmployees=function(t){var i={ShowEmployees:n.ShowEmployees.Resourcing,PermissionMode:n.ShowEmployees.Permissions,StartDate:n.dateRange.startDate,EndDate:n.dateRange.endDate};return t&&(i.PageIndex=0),c.clearEmployees(),c.refreshEmployees(i)};n.initializeChart=function(){setGanttLocales(v);n.dp=new dataProcessor(n.controller+"/UrlSaveGanttData");n.dp.attachEvent("onBeforeDataSending",n.doNothing);n.dp.attachEvent("onBeforeUpdate",n.saveGanttItem);n.dp.attachEvent("onAfterUpdate",function(){});gantt.attachEvent("onGridHeaderClick",function(t){if(t=="add"){if(!n.PermissionToAddResourceDimensionItems)return!1}else n.checkAddItemPermission();return!0});gantt.attachEvent("onBeforeTaskChanged",function(n){var i=confirm(v.getText("RESOURCING.CONFIRM_DRAG")),t=gantt.isTaskExists(n)?gantt.getTask(n):null;return i?t&&t._drag_canceled&&delete t._drag_canceled:t&&(t._drag_canceled=!0),i});n.loadData()};n.editSettings=function(){var r=[],i,u,t;if(n.SelectedDimension&&(r.push({DimensionIdC:n.SelectedDimension.IdC,Texts:n.SelectedDimension.Texts,Code:n.SelectedDimension.Code}),n.SelectedDimension.FilterDimensions))for(i=0;i<n.SelectedDimension.FilterDimensions.length;i++)u=n.SelectedDimension.FilterDimensions[i],t=n.Filters[u.IdC],t&&r.push({DimensionItemIdC:t.IdC,Texts:t.Texts,Code:t.Code});c.editSettings(r,n.PermissionToTemplates).then(function(t){var i,r;if(t&&n.currentSettings)for(i=0;i<t.length;i++)if(r=t[i],r.IdC==n.currentSettings.IdC){n.setSettings(r);break}})};n.closeAll=function(){var n,t;if(gantt._pull)for(n in gantt._pull)t=gantt._pull[n],t.$open&&gantt.close(n)};n.getWidth=function(){return $(window).width()};n.getItemHtml=function(n){return n.text};n.getTopLevelDimensions=function(){return c.topLevelDimensions};n.getFilterDimensionItems=function(t){var f=t.index,o,s,r,a,h,y,c,e,p,l,w,u;if(n.filterLoading)return n.FilterDefers[f]?n.FilterDefers[f].defer.promise:(n.FilterDefers[f]={args:t,defer:i.defer()},n.FilterDefers[f].defer.promise);if(o=i.defer(),s=[],n.SelectedDimension&&(r=null,f==0?r=n.SelectedDimension.FilterDimensions[0].DimensionItems:(a=n.SelectedDimension.FilterDimensions[f-1],h=n.Filters[a.IdC],h&&(r=h.SubItems)),r&&r.length)){if(t.SearchFilter){for(y=new RegExp(t.SearchFilter,"i"),c=[],u=0;u<r.length;u++)e=r[u],p=e.Code+" "+v.getCurrentLanguageText(e.Texts,"Name"),p.search(y)>-1&&c.push(e);r=c}for(l=t.FirstIndex||t.firstIndex||t.index,w=t.itemCount||t.ItemCount,u=l;u<l+w&&u<r.length;u++)s.push(n.getItemCopy(r[u]))}return o.resolve({DataList:s,TotalRows:r?r.length:0}),o.promise};n.loadData=function(){n.loading=!0;console.log("loading loadData");k.getResourcingDimensions({StartDate:n.dateRange.startDate,EndDate:n.dateRange.endDate}).then(function(t){var i,f,r,e;if(t&&t.DataList&&(c.setDimensions(t.DataList),i=n.getTopLevelDimensions(),n.TopLevelDimensionCount=i?i.length:0,i&&i.length)){if(f=!0,n.SelectedDimension)for(r=0;r<i.length;r++)if(i[r].IdC==n.SelectedDimension.IdC){f=!1;break}(f||!n.SelectedDimension)&&(e=i[0],u(function(){n.SelectedDimension=e;n.onDimensionSelected()},500))}n.loading=!1;
1console.log("NOT loading loadData, ok")},function(){n.loading=!1;console.log("NOT loading loadData, error")})};n.loadFilterData=function(t,i){n.filterLoading=!0;n.loading=!0;console.log("loading loadFilterData");d.getFilters({StartDate:n.dateRange.startDate,EndDate:n.dateRange.endDate,ParentIdC:t}).then(function(t){var h=t&&t.DataList?t.DataList:null,f,e,l,o,r,u,s,a,v;if(c.setFilters(h),h){if(n.filterLoading=!1,i){f=!0;for(e in i)l=i[e],o=c.getItem(l.IdC),o?n.Filters[e]=o:f=!1;f?n.SelectedDimension&&n.SelectedDimension.FilterDimensions&&n.SelectedDimension.FilterDimensions.length&&(r=n.SelectedDimension.FilterDimensions[n.SelectedDimension.FilterDimensions.length-1],r&&n.Filters[r.IdC]&&n.loadItems(n.Filters[r.IdC].IdC)):gantt.clearAll()}u=n.FilterDefers;for(s in u)a=u[s].defer,v=u[s].args,n.getFilterDimensionItems(v).then(function(n){a.resolve(n)});n.FilterDefers={}}n.loading=!1;console.log("NOT loading loadFilterData, ok")},function(){n.loading=!1;console.log("NOT loading loadFilterData, error")})};n.loadItems=function(t){n.loading=!0;console.log("loading loadItems");d.getResourceDimensionItems({StartDate:n.dateRange.startDate,EndDate:n.dateRange.endDate,FilterDimensionItemIdC:t,TopLevelDimensionIdC:n.SelectedDimension.IdC}).then(function(i){var u=i&&i.Data?i.Data:null,r,f;u&&(c.handleData(u,n.dateRange.startDate,n.dateRange.endDate),r=null,t?(f=c.getItem(t),r=f.Dimension.SubDimensions[0],n.FilterParent=f):r=n.SelectedDimension.SubDimensions[0],n.initGanttChart(r,u.DimensionItems));n.loading=!1;console.log("NOT loading loadItems, ok")},function(){n.loading=!1;console.log("NOT loading loadItems, error")})};n.attachNewItems=function(t){var i,r,f,u;if(t&&t.SubItems){for(i=0;i<t.SubItems.length;i++)t.SubItems[i].subItemsVisible=!0,c.setItem(t.SubItems[i].IdC,t.SubItems[i]);r=c.getItem(t.IdC);r&&(r.subItemsVisible=!0);f=n.FilterParent;u=f.Dimension.SubDimensions[0];n.initGanttChart(u,u.DimensionItems)}};n.setZoomLevel=function(t){var r=i.defer();return n.loading=!0,console.log("loading setZoomLevel"),u(function(){var p,l,o,f,a,s,h;n.ZoomLevel=t;var u=n.findMiddleDate(),w=n.dateRange.startDate.getTime(),b=n.dateRange.endDate.getTime(),i=n.maxLength[n.ZoomLevel],e=0;if(i.unit=="month"?(p=n.dateRange.endDate.getFullYear()-n.dateRange.startDate.getFullYear(),e=p*12+(n.dateRange.endDate.getMonth()-n.dateRange.startDate.getMonth())):e=y.getDateDifference(n.dateRange.endDate,n.dateRange.startDate).days,l=!1,e>i.length||e<i.min){if(o=e>i.length?i.length:i.min,f=Math.round(o/2),i.unit=="month"){for(f=0,a=u.getFullYear(),s=u.getMonth()+Math.floor(o/2);s>11;)a++,s-=12;f=y.getDateDifference(new Date(a,s,u.getDate()),u).days;o%2==1&&(f+=15)}l=!0;n.dateRange.startDate=y.addDays(u,-f);n.dateRange.endDate=y.addDays(u,f);n.dateRange.startDate.getTime()!=w&&(n.dateRange.skipStartDateWatch=!0);n.dateRange.endDate.getTime()!=b&&(n.dateRange.skipEndDateWatch=!0)}gantt.config.start_date=new Date(n.dateRange.startDate.getTime());gantt.config.end_date=new Date(n.dateRange.endDate.getTime());h=v.getText("GLOBAL.WEEK");switch(n.ZoomLevel){case 0:gantt.config.scale_unit="day";gantt.config.date_scale="%l %d.%m.%Y";gantt.config.min_column_width=40;gantt.config.subscales=[{unit:"hour",step:1,date:"%H"}];n.zoomLevelTitle="RESOURCING.ZOOM_LEVEL_DAY";break;case 1:gantt.config.scale_unit="day";gantt.config.date_scale="%d.%m.";gantt.config.min_column_width=70;gantt.config.subscales=[{unit:"week",step:1,date:h+" %W | %F %Y"}];n.zoomLevelTitle="RESOURCING.ZOOM_LEVEL_WEEK";break;case 2:gantt.config.scale_unit="month";gantt.config.date_scale="%F %Y";gantt.config.min_column_width=40;gantt.config.subscales=[{unit:"week",step:1,date:h+" %W"},{unit:"day",step:1,date:"%d.%m."}];n.zoomLevelTitle="RESOURCING.ZOOM_LEVEL_MONTH";break;case 3:gantt.config.scale_unit="month";gantt.config.date_scale="%F %Y";gantt.config.min_column_width=70;gantt.config.subscales=[{unit:"week",step:1,date:h+" %W"}];n.zoomLevelTitle="RESOURCING.ZOOM_LEVEL_THREE_MONTHS";break;case 4:gantt.config.scale_unit="year";gantt.config.date_scale="%Y";gantt.config.min_column_width=70;gantt.config.subscales=[{unit:"month",step:1,date:"%F"}];n.zoomLevelTitle="RESOURCING.ZOOM_LEVEL_YEAR";gantt.config.start_date.getFullYear()==gantt.config.end_date.getFullYear()&&(gantt.config.end_date=new Date(gantt.config.end_date.getFullYear()+1,gantt.config.end_date.getMonth(),gantt.config.end_date.getDate()))}n.Mode==1?l||gantt.render():n.Mode==2&&c.setZoomLevel(t);n.loading=!1;console.log("NOT loading setZoomLevel");(n.dateRange.skipStartDateWatch||n.dateRange.skipEndDateWatch)&&(n.Mode==2&&n.refreshEmployees(!0),n.Mode==1&&(n.SelectedDimension=null,n.loadD
1ata()));r.resolve()}),r.promise};n.calendarClick=function(n){$("#"+n).focus()};n.findFilters=function(t){var i=[],r,u,f;if(!t.SubDimensions)return i;for(r=0;r<t.SubDimensions.length;r++)u=t.SubDimensions[r],u.FilterDimension&&i.push(u),f=n.findFilters(u),f&&f.length&&(i=i.concat(f));return i};n.searchSubItems=function(t,i){var r,u,f,e;if(t.DimensionIdC==i)return[t];if(!t.SubItems)return null;for(r=[],u=0;u<t.SubItems.length;u++)f=t.SubItems[u],f.DimensionIdC==i?r.push(f):(e=n.searchSubItems(f,i),e&&(r=r.concat(e)));return r};n.searchItems=function(t){var i;return t?(i=n.SelectedDimension.FilterDimensions[n.SelectedDimension.FilterDimensions.length-1],i.SubDimensions&&i.SubDimensions.length?n.searchSubItems(t,i.SubDimensions[0].IdC):[]):n.SelectedDimension.FilterDimensions&&n.SelectedDimension.FilterDimensions.length?(i=n.SelectedDimension.FilterDimensions[n.SelectedDimension.FilterDimensions.length-1],i.SubDimensions&&i.SubDimensions.length?i.SubDimensions[0].DimensionItems:[]):n.SelectedDimension.SubDimensions&&n.SelectedDimension.SubDimensions.length?n.SelectedDimension.SubDimensions[0].DimensionItems:[]};n.setSettings=function(t){var i,r;if(n.currentSettings=t,n.currentSettings){var f=Number(n.currentSettings.Properties?n.currentSettings.Properties:0),u=a.getEnum("ResourcingSettingProperty");for(i in u)r=Number(u[i]),n.currentSettings[i]=(f&r)==r?!0:!1}};n.onFilterSelected=function(){var t=null,i,r;for(n.DataLoaded=!1,i=n.SelectedDimension.FilterDimensions.length-1;i>=0;i--)if(r=n.SelectedDimension.FilterDimensions[i],n.Filters[r.IdC]&&(t=c.getItem(n.Filters[r.IdC].IdC),t)){t.Settings&&t.Settings.length&&n.setSettings(t.Settings[0]);break}t&&n.loadItems(t.IdC)};n.onDimensionSelected=function(t){var i=t?t:n.SelectedDimension,r;t&&(n.SelectedDimension=t);i&&(n.SelectedDimension&&n.SelectedDimension.Settings&&n.SelectedDimension.Settings.length&&n.setSettings(n.SelectedDimension.Settings[0]),r=n.Filters,n.Filters={},n.FilterParent=null,n.DataLoaded=!1,i.FilterDimensions&&i.FilterDimensions.length?n.loadFilterData(i.IdC,r):n.loadItems(null))};n.prepareGanttChart=function(){var i=n.dateRange.startDate,t=n.dateRange.endDate;n.gantt=$("#gantt");gantt.config.start_date=new Date(i.getTime());gantt.config.end_date=new Date(t.getTime());gantt.init(n.gantt.get(0),i,t);gantt._max_date.getTime()!==t.getTime()&&(n.dateRange.endDate=new Date(gantt._max_date.getTime()));n.dpInitialized||(n.dp.init(gantt),n.dp.setTransactionMode("POST",!1),n.dpInitialized=!0)};n.initGanttChart=function(t,i){var f=n.dateRange.startDate,e=n.dateRange.endDate,r;n.prepareGanttChart();n.rangeLength=y.getDateDifference(e,f).days;n.DataLoaded=!0;n.setChartHeight();c.setTopLevelEditorDimension(t);gantt.config.columns[0].label=v.getText("RESOURCING.CODE_LABEL");gantt.config.columns[1].label=v.getText("RESOURCING.NAME_LABEL");n.setGanttData(i,t.TopLevel?t:t.TopLevelParent);u(function(){gantt.showDate(new Date(n.dateRange.startDate.getTime()+Math.round((n.dateRange.endDate.getTime()-n.dateRange.startDate.getTime())/2)))});r=gantt.refreshData;gantt.refreshData=function(){r.call(gantt)};n.EmployeeModeDisabled=!1;n.checkAddItemPermission(t)};n.checkAddItemPermission=function(t){(!n.PermissionToAddResourceDimensionItems||t&&t.PermissionType<4)&&u(function(){$(".gantt_grid_head_add").remove()})};n.getDependencies=function(t){var i=[],r;if(t&&(t.Dependencies&&(i=i.concat(t.Dependencies)),t.SubItems&&t.SubItems.length))for(r=0;r<t.SubItems.length;r++)i=i.concat(n.getDependencies(t.SubItems[r]));return i};n.clearGantData=function(){gantt._selected_task&&typeof gantt._selected_task=="string"?gantt.unselectTask():gantt._selected_task=null;gantt.clearAll()};n.setGanttData=function(t,i){if(n.clearGantData(),i){n.Items=t;var r=n.prepareGanttData(t);n.EmployeeModeDisabled&&n.setZoomLevel(2);gantt.parse(r)}};n.prepareGanttData=function(t){var f={data:[],links:[]},u=[],e,i,o,s,r;if(t)for(e=null,r=0;r<t.length;r++)if(i=t[r],e||(e=i.Dimension),(i.StartDateEmpty||i.EndDateEmpty)&&(o=n.findStartAndEndDate(i),o&&(i.StartDateEmpty&&(i.StartDate=o.StartDate),i.EndDateEmpty&&(i.EndDate=o.EndDate))),i.StartDate>i.EndDate&&(i.EndDate=i.StartDate),i._valid){if(i.Dimension!=e)break;f.data.push(n.parseItem(i,!0));s=n.parseSubItems(i);s&&(f.data=f.data.concat(s));u=u.concat(n.getDependencies(i))}if(u)for(r=0;r<u.length;r++)f.links.push({id:u[r].IdC,source:u[r].ResourceDimensionItemFromIdC,target:u[r].ResourceDimensionItemToIdC,type:u[r].Type});return f};n.findStartAndEndDate=function(t){var f=new Date(2100,0,1),e=new Date(1899,11,30),i={StartDate:t.StartDateEmpty?f:t.StartDate,EndDate:t.EndDateEmpty?e:t.EndDate},u,r;if(t.SubItems)for(u=0;
1u<t.SubItems.length;u++)r=n.findStartAndEndDate(t.SubItems[u]),r.StartDate.getTime()<i.StartDate.getTime()&&(i.StartDate=r.StartDate),r.EndDate.getTime()>i.EndDate.getTime()&&(i.EndDate=r.EndDate);return i.StartDate==f&&(i.StartDate=t.StartDate),i.EndDate==e&&(i.EndDate=t.EndDate),i};n.parseSubItems=function(t){var r=null,u,i,f;if(t.SubItems&&t.SubItems.length)for(r=[],u=0;u<t.SubItems.length;u++)if(i=t.SubItems[u],r.push(n.parseItem(i)),i.SubItems&&i.SubItems.length&&(subData=n.parseSubItems(i),subData))for(f=0;f<subData.length;f++)r.push(subData[f]);return r};n.parseItem=function(t,i){var u=c.getItemDateRange(t,n.dateRange.startDate,n.dateRange.endDate),r;return u.startDate||(u.startDate=n.dateRange.startDate),u.endDate||(u.endDate=n.dateRange.endDate),r={id:t.IdC,start_date:u.startDate,end_date:new Date(u.endDate.getTime()+864e5),duration:null,open:t.subItemsVisible==!0,progress:Math.round(t.Completed)/100,text:t.Code+" "+(t.DimensionItemName?t.DimensionItemName:v.getCurrentLanguageText(t,"Name")),dimension:t.DimensionName,code:t.Code,name:t.DimensionItemName,description:t.CurrentLanguageDescription,priority:t.Priority,planned_hours:t.PlannedHours,planned_days:t.PlannedDays,daily_hours:t.DailyHours,reason_code:t.ReasonCode,reason_codes:t.ReasonCodes,actual_hours:t.ActualHours,breaks:t.Breaks},t._parsedGanttItem=r,n.updateItemBreaks(r,t),n.updateItemActuals(r,t),n.setPermissionType(r,t),i||(r.parent=t.ParentIdC),r};n.setPermissionType=function(t,i){t.permission_type=i.CurrentUserPermissionType!=null?i.CurrentUserPermissionType:i.PermissionType;var r=i.Dimension&&i.Dimension.SubDimensions&&i.Dimension.SubDimensions.length;t.add_disabled=!n.PermissionToAddResourceDimensionItems||!r||t.permission_type<4};n.updateItemBreaks=function(n,t){t.Parent&&t.Parent._parsedGanttItem&&(t.Parent._parsedGanttItem.breaks?n.breaks=n.breaks?n.breaks.concat(t.Parent._parsedGanttItem.breaks):t.Parent._parsedGanttItem.breaks:n.breaks||(n.breaks=null))};n.updateItemActuals=function(t,i){if(i.ActualHours&&i.ActualHours.length||i.SubItems&&(i.ActualHours=t.actual_hours=n.getSubItemActualHours(i)),!i.PlannedHours&&!i.PlannedDays&&i.SubItems){var r=n.getSubItemPlannedHoursAndDays(i);r&&(i.PlannedHours=t.planned_hours=r.hours,i.PlannedDays=t.planned_days=r.days)}};n.getSubItemActualHours=function(t){var r=null,u,i;if(t.SubItems&&t.SubItems.length){for(r=[],i=0;i<t.SubItems.length;i++)u=n.getSubItemActualHours(t.SubItems[i]),u&&(t.ActualHours=n.calculateActualHours(t.ActualHours,u));r=t.ActualHours}else if(t.ActualHours)for(r=[],i=0;i<t.ActualHours.length;i++)r.push(angular.copy(t.ActualHours[i]));return r};n.getSubItemPlannedHoursAndDays=function(t){var i={hours:0,days:0},r,u;if(t.SubItems&&t.SubItems.length)for(r=0;r<t.SubItems.length;r++)u=n.getSubItemPlannedHoursAndDays(t.SubItems[r]),u&&(i.hours+=Number(u.hours),i.days+=Number(u.days));else t.PlannedHours&&(i.hours=Number(t.PlannedHours)),t.PlannedDays&&(i.days=Number(t.PlannedDays));return i};n.calculateActualHours=function(n,t){for(var u,f,i,h,o,c,r={},s=[n,t],e=0;e<s.length;e++)if(u=s[e],u)for(f=0;f<u.length;f++)i=u[f],r[i.Type]?(h=r[i.Type],h.Hours+=Number(i.Hours)):r[i.Type]={Type:i.Type,Hours:Number(i.Hours)};o=[];for(c in r)o.push(r[c]);return o};n.getItem=function(t){return n.DimensionItemsByIdC[t]};n.setChartHeight=function(){var t,i;n.Mode==1?n.DataLoaded&&(t=$("#gantt"),i=t.offset().top,t.height(parseInt(document.body.offsetHeight)-i),t.width(parseInt(document.body.offsetWidth)-10),gantt.setSizes()):n.Mode==2&&(t=$("#employees"),i=t.offset().top,t.height(parseInt(document.body.offsetHeight)-i),t.width(parseInt(document.body.offsetWidth)-10),c.resizeChart())};n.getItemCopy=function(n){var t={IdC:n.IdC,Code:n.Code,StartDate:n.StartDate,EndDate:n.EndDate,ParentIdC:n.ParentIdC,PlannedHours:n.PlannedHours,DailyHours:n.DailyHours,Priority:n.Priority,ReasonCode:n.ReasonCode,ReasonCodes:n.ReasonCodes,DimensionIdC:n.Dimension.IdC,DimensionItemName:n.DimensionItemName?n.DimensionItemName:v.getCurrentLanguageText(n.Texts,"Name")};return n.Texts&&(t.Texts=angular.copy(n.Texts)),n.Dimension&&(t.Dimension={Name:n.Dimension.Name}),n.Roles&&(t.Roles=angular.copy(n.Roles)),n.Files&&(t.Files=angular.copy(n.Files)),n.Permissions&&(t.Permissions=angular.copy(n.Permissions)),t};n.copyValues=function(n,t){t||(t={});for(var i in n)t[i]=n[i];return t};n.showModal=function(t,i){var r=o.open({templateUrl:"MVC/modals/Resourcing/resourceDimensionItemEditor.html",controller:"resourceDimensionItemEditorModalController",backdrop:"static",windowClass:"resourceDimensionItemEditor",resolve:{ganttTask:function(){return t},newTask:function(){return i},startDate:function(){return n.dateRange.startDate},endDate:function(){return n.dateRange.endDate},templatePermissions:function(){return n.PermissionToTemplates}}});r.result.then(function(n){var i,t;n&&n.Cancel&&(n.NewTask?(i=c.getItem(n.IdC),i&&i._ganttID?(n._new=!0,gantt.deleteTask(n.IdC)):(t=gantt.getTask(n.IdC),t._editItem&&delete t._editItem)):typeof n.IdC=="string"&&gantt.isTaskExists(n.IdC)&&(t=gantt.getTask(n.IdC),t._editItem&&delete t._editItem))});u(function(){gantt.hideCover()})};n.prepareGanttItemForSave=function(t,i){var r=n.dp._ganttMode!="tasks";return r?c.prepareGanttLinkForSave(t,i):t._editItem?c.prepareEditItemForSave(t._editItem,t,i):c.prepareGanttTaskForSave(t,i)};n.saveNoGanttItem=function(n){var t=i.defer(),r=c.prepareEditItemForSave(n,{},"updated");return d.saveResourceDimensionItem(r).then(function(n){var i=n&&n.Data?n.Data:null;t.resolve(n);c.prepareDataForShowing(n.Data);l.updateEditorData(n.Data)}),t.promise.then(function(n){var i=n.Status!="1",t=y.getDataMessage(n,r.Deleted?"GLOBAL.SUCCESS_DELETE":"GLOBAL.SUCCESS_SAVE");y.showSplash(t,n.Status=="1"?"okMessage":"errorMessage")}),t.promise};n.saveGanttItem=function(t,r,u){var o,e,f,s,h;if(u._drag_canceled){delete u._drag_canceled;gantt.refreshTask(t,!0);return}if(o=i.defer(),e=null,typeof u=="string"&&(u=gantt.getTask(u)),f=n.prepareGanttItemForSave(u,r),f.ItemType=="task")f.DatesOnly&&(f.SubItems=[],gantt.eachTask(function(t){if(gantt.config.round_dnd_dates){var i=gantt._tasks;n.roundTaskDates(t,i.step,i.unit)}
1else n.roundTaskDates(t,gantt.config.time_step,"minute");gantt.refreshTask(t.id,!0);f.SubItems.push({IdC:t.id,StartDate:t.start_date,EndDate:t.end_date,DatesOnly:!0,Changed:!0})},t)),r!="delete"&&r!="deleted"&&(e=gantt.getTask(u.id)),r=="insert"&&!u.dimensionItem,f.IdC&&typeof f.IdC=="string"?u.parent||(h=c.getItem(f.IdC),f.ParentIdC=h.ParentIdC):(r=="deleted"&&(f.IdC=c.getDimensionItemIdC(t)),f.ParentIdC?(s=c.getItem(f.ParentIdC),f.DimensionIdC=s.Dimension.SubDimensions[0].IdC):n.FilterParent?(f.ParentIdC=n.FilterParent.IdC,f.DimensionIdC=n.FilterParent.Dimension.SubDimensions[0].IdC):(f.ParentIdC=null,f.DimensionIdC=n.SelectedDimension.SubDimensions[0].IdC)),e&&(e._privateData={SaveItem:f,defer:o});else if(r=="delete"||r=="deleted"){if(typeof t!="string"||c.isLinkDeleted(t))return!0;if(!isNaN(t))return}return f.ItemType=="task"?d.saveResourceDimensionItem(f).then(function(i){var p=i&&i.Data?i.Data:null,s,v,y,h,a,e;if(o.resolve(i),i.Status==1)if(f.IdC){if(r=="delete")c.addDeletedTask(f.IdC),c.removeItem(f.IdC);else if(s=c.getItem(f.IdC),s&&(s._new&&(delete s._new,s._ganttID&&delete s._ganttID),i.Data)){if(v={},s.SubItems&&s.SubItems.length)for(e=0;e<s.SubItems.length;e++)v[s.SubItems[e].IdC]=!0;if(y=[],i.Data.SubItems&&i.Data.SubItems.length)for(e=0;e<i.Data.SubItems.length;e++)v[i.Data.SubItems[e].IdC]||(h=i.Data.SubItems[e],y.push(h),h.PermissionType=h.Permissions&&h.Permissions.length?2:1);if(y.length&&(i.Data._newSubItems=!0),c.updateItemDateRange(i.Data,n.dateRange.startDate,n.dateRange.endDate),i.Data.ResourceDimensionTemplate&&delete i.SavedItem.ResourceDimensionTemplate,i.Data.ResourceDimensionTemplateIdC&&delete i.SavedItem.ResourceDimensionTemplateIdC,i.Data.ResourceDimensionTemplateName&&delete i.SavedItem.ResourceDimensionTemplateName,c.processResourceDimensionItem(i.Data),a=gantt.getTask(f.IdC),a.breaks=i.Data.Breaks,n.updateItemBreaks(a,i.Data),gantt.eachTask(function(t){var i=c.getItem(t.id);i&&(n.updateItemBreaks(t,i),u._dateOffset&&(t.start_date=new Date(i.StartDate.getTime()),t.end_date=new Date(i.EndDate.getTime())));gantt.refreshTask(t.id,!0)},a.id),!f.DatesOnly){if(f.Dependencies&&f.Dependencies.length)for(e=0;e<f.Dependencies.length;e++)f.Dependencies[e].Deleted&&gantt._deleteLink(f.Dependencies[e].IdC,!0);i.Data.Completed&&(a.progress=i.Data.Completed/100);c.prepareDataForShowing(i.Data);l.updateEditorData(i.Data)}gantt.refreshTask(f.IdC,!1)}}else c.setDimensionItemIdC(t,p.IdC),f.IdC=p.IdC,f._ganttID=t,f._new=!0,c.setItem(f.IdC,f),n.saveDimensionItem(f),c.processResourceDimensionItem(i.Data),c.prepareDataForShowing(i.Data,u.id),l.updateEditorData(i.Data);else f.IdC?l.updateEditorData(i.Data):(gantt._deleteTask(t,!0),gantt.refreshData(),gantt.hideCover(),l.closeEditorModal())}):d.saveResourceDimensionItemLink(f).then(function(i){var f=i&&i.Data?i.Data:null;f&&n.dp.afterUpdateCallback(t,f.IdC,r,u);o.resolve(i)}),o.promise.then(function(i){var r=i.Status!="1",s=!angular.isUndefined(f._new)||i&&i.Data&&t!=i.Data.IdC,o;(r||!s||f.ItemType=="link")&&(o=y.getDataMessage(i,f.Deleted?"GLOBAL.SUCCESS_DELETE":"GLOBAL.SUCCESS_SAVE"),y.showSplash(o,i.Status=="1"?"okMessage":"errorMessage"),r||(u._editItem&&delete u._editItem,i.Data&&i.Data.CurrentUserPermissionType&&e&&n.setPermissionType(e,i.Data),i.Data&&i.Data._newSubItems&&i.Data.SubItems&&i.Data.SubItems.length&&n.attachNewItems(i.Data)))}),!0};n.roundTaskDates=function(n,t,i){n.start_date=gantt._get_closest_date({date:n.start_date,step:t,unit:i});n.end_date=gantt._get_closest_date({date:n.end_date,step:t,unit:i})};n.scalePersonsForBreaks=function(n,t){var i=[n.StartDate,n.EndDate],f,l,h,o,r,a,e,c,u,s;if(!i[0]||!i[1]||!i[0].getTime||!i[1].getTime)return!0;if(f=null,n._previousValues?f=[n._previousValues.StartDate,n._previousValues.EndDate]:(f=[n._originalValues.StartDate,n._originalValues.EndDate],n._previousValues={}),l=f[0].getTime()!=i[0].getTime()||f[1].getTime()!=i[1].getTime(),l){for(h=0,o=0;o<t.length;o++)if(r=t[o],r.StartDate<=i[1]&&r.EndDate>=i[0])if(r.UseDaySettings=!0,h++,r.Days)for(u=0;u<r.Days.length;u++)s=r.Days[u],i[0]<=s.Date&&s.Date<=i[1]&&(s.Deleted=!0);else for(r.Days=[],a=y.getDateDifference(r.EndDate,r.StartDate)+1,u=0;u<a;u++)e=y.addDays(r.StartDate,u),c=i[0]<=e&&e<=i[1],r.Days.push({IdC:y.getNewIdC(),Date:new Date(e.getTime()),StartTime:new Date(e.getTime()),EndTime:new Date(e.getTime()),Selected:!c,Deleted:c?!0:!1});if(h)return n._previousValues.StartDate=i[0],n._previousValues.EndDate=i[1],!1}return n._previousValues.StartDate||(n._previousValues.StartDate=f[0],n._previousValues.EndDate=f[1]),!0};n.scalePersons=function(n,t){var i=[n.StartDate,n.EndDate],f,l,s,r,h,c,u;if(!i[0]||!i[1]||!i[0].getTime||!i[1].getTime)return!0;
1if(f=null,n._previousValues?f=[n._previousValues.StartDate,n._previousValues.EndDate]:(f=[n._originalValues.StartDate,n._originalValues.EndDate],n._previousValues={}),l=f[0].getTime()!=i[0].getTime()||f[1].getTime()!=i[1].getTime(),l){var e=[y.getDateDifference(f[0],i[0]).days,y.getDateDifference(f[1],i[1]).days],o=e[0]==e[1]?e[0]:null,a=0;for(s=0;s<t.length;s++){if(r=t[s],h=!1,o?h=!0:(r.StartDate.getTime()<i[0].getTime()||r.EndDate.getTime()>i[1].getTime())&&(h=!0),h)a++;else continue;if(r.StartDate=y.addDays(r.StartDate,e[0]),r.EndDate=y.addDays(r.EndDate,e[1]),r.StartDate.getTime()<i[0].getTime()&&(r.StartDate=new Date(i[0].getTime())),(r.EndDate.getTime()>i[1].getTime()||r.EndDate.getTime()<i[0].getTime())&&(r.EndDate=new Date(i[1].getTime())),r.Days)for(c=0;c<r.Days;c++)u=r.Days[c],o?(u.Date=y.addDays(u.Date,o),u.StartTime=y.addDays(u.StartTime,o),u.EndTime=y.addDays(u.EndTime,o)):(u.Date>i[1]||u.Date<i[0])&&(u.Deleted=!0)}if(a)return n._previousValues.StartDate=i[0],n._previousValues.EndDate=i[1],!1}return n._previousValues.StartDate||(n._previousValues.StartDate=f[0],n._previousValues.EndDate=f[1]),!0};n.saveDimensionItem=function(t){var o=typeof t._ganttID!="undefined"&&gantt.isTaskExists(t._ganttID),i=null,r,s,u,f,e;i=o?gantt.getTask(t._ganttID):gantt.getTask(t.IdC);t.Dimension=c.getCurrentDimension();r=!i.parent;i.parent?t.ParentIdC=i.parent:n.FilterParent&&(t.ParentIdC=n.FilterParent.IdC);t.DimensionItemName=v.getCurrentLanguageText(t.Texts,"Name");s=t.Parent!=null;t.ParentIdC&&(t.Parent=c.getItem(t.ParentIdC));u=n.parseItem(t,s);for(f in u)i[f]=u[f];r&&(i.parent=0);gantt._lightbox_id=t._ganttID;i.id=t.IdC;o?(r&&(i.parent=0),i.$new=!0,gantt._lightbox_id=t._ganttID,gantt._selected_task=null,n.dp.afterUpdateCallback(t._ganttID,t.IdC,"insert",i),e=c.getItem(t.IdC),e&&(e._ganttID=t._ganttID),gantt.refreshData()):(gantt.updateTask(i.id),gantt.refreshData())};n.locateLightBox=function(){return this._lightbox||(this._lightbox=$("#_editorModal").get(0)),this._lightbox};n.showItem=function(t){var i=null,r;if(typeof t=="object"?(r=t,t=r.IdC,i={id:t,nogantt:!0,permission_type:r.CurrentUserPermissionType!=null?r.CurrentUserPermissionType:r.PermissionType}):i=gantt.getTask(t),i&&i.permission_type==0){gantt.hideCover();return}n.showModal(i,typeof t!="string")};n.prepareNewTask=function(t){t.parent?c.setSelectedParent(c.getItem(t.parent)):c.setSelectedParent(n.FilterParent!=null?n.FilterParent:null);n.NewIdC=t.id};n.validateAdd=function(t,i){return t!="add"?!0:$(i.target).hasClass("gantt_grid_head_cell")&&n.SelectedDimension.FilterDimensions&&n.SelectedDimension.FilterDimensions.length&&!n.FilterParent?(y.alert({pageID:"RESOURCING",textID:"MESSAGE_SELECT_FILTER_DIMENSION",data:n.SelectedDimension.FilterDimensions[0]}),!1):!0};n.prepareAddingNewTask=function(t,i){if(typeof t!="string"){n.NewIdC=t;i.text=i.name="<"+c.getEmptyItemText()+">";i.code="";var r=c.getCurrentDimension();r&&(i.dimension=r.Name)}return!0};n.doNothing=function(){return!1};n.setReportStartDate=function(){n.loading||angular.isDate(n.Report.StartDate)&&n.Report.StartDate>n.Report.EndDate&&(n.Report.EndDate=n.Report.StartDate)};n.setReportEndDate=function(){n.loading||angular.isDate(n.Report.EndDate)&&n.Report.EndDate<n.Report.StartDate&&(n.Report.StartDate=n.Report.EndDate)};n.onReportStart=function(){var t,r,i;if(n.reportLoading=!0,n.reportReady=!1,n.reportPopover.visible=!1,t=w.getRestrictions(),r=[],t)for(i=0;i<t.length;i++)r.push({Type:b.convertRestrictionParameterType(t[i].RestrictionType),DataType:a.getValue("AbsenceQueryParameterValueType","ID"),IdCValue:t[i].IdC,SubLevels:t[i].SubLevels});else r={};g.startReport({OnlyResourced:n.ShowEmployees.Resourcing==1,OnlyFree:n.ShowEmployees.Resourcing==3,OnlySubOrdinates:n.ShowEmployees.Permissions==1,OnlyTeam:n.ShowEmployees.Permissions==3,StartDate:n.Report.StartDate,EndDate:n.Report.EndDate,Items:r}).then(function(t){if(t.Queue){var i=t.Queue;c.checkForReportData({queueIdC:i.IdC}).then(function(){n.reportLoading=!1;n.reportReady=!0;n.reportLink="MVC/Resourcing/Resourcing/GetReport/"+i.UrlIdC},function(){n.reportError=!0;n.reportLoading=!1})}},function(){n.reportError=!0;n.reportLoading=!1})};gantt.getLightbox=n.locateLightBox;gantt.attachEvent("onGridHeaderClick",n.validateAdd);gantt._fill_lightbox=n.doNothing;gantt._center_lightbox=n.doNothing;gantt.attachEvent("onLightbox",n.showItem);
1gantt.attachEvent("onTaskCreated",n.prepareNewTask);gantt.attachEvent("onBeforeTaskAdd",n.prepareAddingNewTask);gantt.attachEvent("onTaskDrag",function(n,t,i,r){var f=gantt.config.drag_mode,u;return t==f.move&&(u=i.start_date-r.start_date,gantt.eachTask(function(n){n.start_date=new Date(+n.start_date+u);n.end_date=new Date(+n.end_date+u);gantt.refreshTask(n.id,!0)},n)),!0});c.setSaveCallback(n.onSaveItem=function(t,i){var h=!1,f=[],u=[],c,e,o,r,s;if(t.Roles&&t.Roles.length)for(r=0;r<t.Roles.length;r++)t.Roles[r].Persons&&t.Roles[r].Persons.length&&(u=u.concat(t.Roles[r].Persons));if(t.Persons&&t.Persons.length&&(u=u.concat(t.Persons)),n.scalePersons(t,u)||(f.push(v.getText("RESOURCING.MESSAGE_PERSONS_SCALED")),h=!0),t.Breaks){for(c=!1,r=0;r<t.Breaks.length;r++)if(typeof t.Breaks[r].IdC!="string"&&(e=t.Breaks[r],e._originalValues||(e._originalValues={StartDate:new Date(1970,0,1,0,0,0),EndDate:new Date(1970,0,1,0,0,0)}),!n.scalePersonsForBreaks(e,u))){c=!0;break}c&&(f.push(v.getText("RESOURCING.MESSAGE_PERSONS_SCALED_FOR_BREAKS")),h=!0)}if(h){for(o=v.getText("RESOURCING.MESSAGE_PERSONS_SCALED_BEGIN"),r=0;r<f.length;r++)o+=" "+f[r];return o+=" "+v.getText("RESOURCING.MESSAGE_PERSONS_SCALED_END"),t.Notifications.unshift(o),!1}return s=null,t.Roles&&t.Roles.length&&(s=t.Roles[t.Roles.length-1]),i.nogantt?n.saveNoGanttItem(t):n.saveDimensionItem(t),s&&t.Roles.push(s),!0});c.setDeleteCallback(n.onDeleteItem=function(n){c.markLinksDeleted(n);gantt.deleteTask(n.IdC)});l.onEditorEvent("setReadiness",function(n,t,i){i._readinessEditor=!0});l.onEditorEvent("cancelReadiness",function(n,t,i){i._readinessEditor=!1});l.onEditorEvent("showTemplateSelector",function(t,i,r){n.TemplateSelectorVisible=!0;l.setScopeParameter("TemplateSelectorVisible",n.TemplateSelectorVisible);r.ResourceDimensionTemplateIdC&&(r.ResourceDimensionTemplate={IdC:r.ResourceDimensionTemplateIdC,Name:r.ResourceDimensionTemplateName})});l.onEditorEvent("okTemplateSelector",function(t,i,r){n.TemplateSelectorVisible=!1;l.setScopeParameter("TemplateSelectorVisible",n.TemplateSelectorVisible);var u=c.getTemplate(r.ResourceDimensionTemplateIdC);u&&(r.ResourceDimensionTemplateName=u.Name)});l.onEditorEvent("cancelTemplateSelector",function(t,i,r){n.TemplateSelectorVisible=!1;l.setScopeParameter("TemplateSelectorVisible",n.TemplateSelectorVisible);r.ResourceDimensionTemplate&&(r.ResourceDimensionTemplateIdC=r.ResourceDimensionTemplate.IdC,r.ResourceDimensionTemplateName=r.ResourceDimensionTemplate.Name)});l.onEditorEvent("saveTemplate",function(t,i,r){n.ModalInstance=o.open({backdrop:"static",keyboard:!1,templateUrl:"MVC/Modals/Resourcing/templateEditor.html",scope:n,controller:"resourcingTemplateEditor",resolve:{item:function(){return r}},windowClass:"templateEditorModal"});n.ModalInstance.result.then(function(n){n&&d.saveTemplate({Name:n.Name,ExcludeParent:n.ExcludeParent,ResourceDimensionItemIdC:r.IdC}).then(function(n){c.updateTemplate(n.Data)})});r.TemplateName=[];r.TemplateExcludeParent=!1});l.onEditorEvent("save",function(t,i,r){var c=!1,e=[],f=[],l,o,s,u,h;if(r.Roles&&r.Roles.length)for(u=0;u<r.Roles.length;u++)r.Roles[u].Persons&&r.Roles[u].Persons.length&&(f=f.concat(r.Roles[u].Persons));if(r.Persons&&r.Persons.length&&(f=f.concat(r.Persons)),n.scalePersons(r,f)||(e.push(v.getText("RESOURCING.MESSAGE_PERSONS_SCALED")),c=!0),r.Breaks){for(l=!1,u=0;u<r.Breaks.length;u++)if(typeof r.Breaks[u].IdC!="string"&&(o=r.Breaks[u],o._originalValues||(o._originalValues={StartDate:new Date(1970,0,1,0,0,0),EndDate:new Date(1970,0,1,0,0,0)}),!n.scalePersonsForBreaks(o,f))){l=!0;break}l&&(e.push(v.getText("RESOURCING.MESSAGE_PERSONS_SCALED_FOR_BREAKS")),c=!0)}if(c){for(s=v.getText("RESOURCING.MESSAGE_PERSONS_SCALED_BEGIN"),u=0;u<e.length;u++)s+=" "+e[u];return s+=" "+v.getText("RESOURCING.MESSAGE_PERSONS_SCALED_END"),r.Notifications.unshift(s),!1}return h=null,r.Roles&&r.Roles.length&&(h=r.Roles[r.Roles.length-1]),n.saveDimensionItem(r),h&&r.Roles.push(h),!0});l.onEditorEvent("ok",function(t,i,r){n.saveDimensionItem(r)});l.onEditorEvent("cancel",function(n,t,i){var u=c.getItem(i.IdC),r;u&&u._ganttID?(i._new=!0,gantt.deleteTask(i.IdC)):(r=gantt.getTask(i.IdC),r._editItem&&delete r._editItem)});l.onEditorEvent("delete",function(n,t,i){c.markLinksDeleted(i);gantt.deleteTask(i.IdC)});return l.setOptions({DeleteConfirmationHeading:{pageID:"RESOURCING",textID:"CONFIRMATION_HEADING"},DeleteConfirmationMessage:{pageID:"RESOURCING",textID:"CONFIRMATION_DELET
1E"},EmptyItemTextCallback:c.getEmptyItemText,ItemTextCallback:function(n){return n.DimensionItemName},ItemPathCallback:function(n){return n.PathText}}),l.setScopeParameter("TemplateSelectorVisible",n.TemplateSelectorVisible),ft=function(){n.setChartHeight()},$(window).bind("resize",ft),n.$on("$destroy",function(){$(window).unbind("resize",ft)}),this}]);setGanttLocales=function(n){gantt.locale={date:{month_full:[n.getText("GLOBAL.M1"),n.getText("GLOBAL.M2"),n.getText("GLOBAL.M3"),n.getText("GLOBAL.M4"),n.getText("GLOBAL.M5"),n.getText("GLOBAL.M6"),n.getText("GLOBAL.M7"),n.getText("GLOBAL.M8"),n.getText("GLOBAL.M9"),n.getText("GLOBAL.M10"),n.getText("GLOBAL.M11"),n.getText("GLOBAL.M12")],month_short:[n.getText("GLOBAL.MS1"),n.getText("GLOBAL.MS2"),n.getText("GLOBAL.MS3"),n.getText("GLOBAL.MS4"),n.getText("GLOBAL.MS5"),n.getText("GLOBAL.MS6"),n.getText("GLOBAL.MS7"),n.getText("GLOBAL.MS8"),n.getText("GLOBAL.MS9"),n.getText("GLOBAL.MS10"),n.getText("GLOBAL.MS11"),n.getText("GLOBAL.MS12")],day_full:[n.getText("GLOBAL.D7"),n.getText("GLOBAL.D1"),n.getText("GLOBAL.D2"),n.getText("GLOBAL.D3"),n.getText("GLOBAL.D4"),n.getText("GLOBAL.D5"),n.getText("GLOBAL.D6")],day_short:[n.getText("GLOBAL.DS7"),n.getText("GLOBAL.DS1"),n.getText("GLOBAL.DS2"),n.getText("GLOBAL.DS3"),n.getText("GLOBAL.DS4"),n.getText("GLOBAL.DS5"),n.getText("GLOBAL.DS6")]},labels:{dhx_cal_today_button:n.getText("GLOBAL.TODAY"),day_tab:n.getText("GLOBAL.DAY"),week_tab:n.getText("GLOBAL.WEEK"),month_tab:n.getText("GLOBAL.MONTH"),new_event:n.getText("RESOURCING.LABEL_ADD"),icon_save:n.getText("GLOBAL.BUTTON_SAVE"),icon_cancel:n.getText("GLOBAL.BUTTON_EDIT_CANCEL"),icon_details:n.getText("RESOURCING.DETAILS"),icon_edit:n.getText("GLOBAL.BUTTON_EDIT"),icon_delete:n.getText("GLOBAL.BUTTON_DELETE"),confirm_closing:"?confirm_closing?",confirm_deleting:"?confirm_deleting?",section_description:"?section_description?",section_time:"?section_time?",column_text:"?column_text?",column_start_date:"c?olumn_start_date?",column_duration:"?column_duration?",column_add:"",link:n.getText("RESOURCING.LABEL_LINK"),confirm_link_deleting:n.getText("RESOURCING.LABEL_DELETED"),link_start:n.getText("RESOURCING.LABEL_START"),link_end:n.getText("RESOURCING.LABEL_END"),minutes:"Minutes",hours:"Hours",days:"Days",weeks:"Week",months:"Months",years:"Years"}}};angular.module("TiimaApp").controller("ResourcingPrintController",["$scope","$http","$q","$timeout","$window","resourcingService","localizationService","toolsService","resourcingPrintService","DimensionItem",function(n,t,i,r,u,f,e,o,s,h){n.BarcodeUrl=null;n.Data=null;n.idc=null;n.Images=0;n.Printed=!1;n.Loader=!0;n.Ticks=(new Date).getTime();n.init=function(){};n.$watch(function(){return n.$parent.Data},function(t){t&&t.UrlIdC&&n.refreshPrintData(t.UrlIdC)});n.refreshPrintData=function(t){h.getResourceDimensionItemInstanceForPrinting({IdC:t}).then(function(t){var i=t&&t.Data?t.Data:{};f.processPrintItem(i);n.BarcodeUrl="administrating/Barcode.ashx";n.Data=i;r(function(){n.$apply()})})}}]);angular.module("TiimaApp").controller("EditorController",["$scope","$timeout","$uibModal","editorService","localizationService","toolsService",function(n,t,i,r,u,f){return n.Data={},n.ModalInstance=null,r.initEditor(n),n.showModal=function(r,u,f,e){n.Data=r;var o=e?function(){return e}:function(){return n.Data};return n.ModalInstance=f?i.open({backdrop:"static",keyboard:!1,templateUrl:u,scope:n,controller:"EditorModalController",windowClass:f,resolve:{data:o}}):i.open({backdrop:"static",keyboard:!1,templateUrl:u,scope:n,controller:"EditorModalController",resolve:{data:o}}),e&&e.then(function(i){t(function(){n.Data=i;n.$apply()})}),n.ModalInstance},n.valueChanged=function(t,i){r.editorValueChanged(t,i,n.Data)},n.getItemText=function(){var t=r.getOptions();if(t)if(!n.Data||n.Data._new){if(t.EmptyItemText)return t.EmptyItemText;if(t.EmptyItemTextCallback)return t.EmptyItemTextCallback()}else{if(t.ItemTextTemplate)return Mustache.render(t.ItemTextTemplate,n.Data);if(t.ItemTextCallback)return t.ItemTextCallback(n.Data)}return""},n.getItemPath=function(){var t=r.getOptions();if(t)if(n.Data&&n.Data.ID){if(t.ItemPathTemplate)return Mustache.render(t.ItemPathTemplate,n.Data);if(t.ItemPathCallback)return t.ItemPathCallback(n.Data)}else{if(t.EmptyItemPath)return t.EmptyItemPath;if(t.EmptyItemPathCallback)return t.EmptyItemPathCallback()}return""},n.isDeleteDisabled=function(n){return typeof n=="undefined"},n.onEvent=function(t,i,r){n.$emit(i,t,r)},n.onButtonClick=function(t,i,r,u){var f=n.$emit(i,t,r);u&&f&&n.ModalInstance.close()},n.onOK=function(t,i){n.onButtonClick(t,"ok",i,!0)},n.onCancel=function(t,i){n.onButtonClick(t,"cancel",i,!0)},n.onDelete=function(t,i){var u=r.getOptions(),o=null,e=null;o=u&&u.DeleteConfirmationHeading?u.DeleteConfirmationHeading:{pageID:"GLOBAL",textID:"DELETE_LABEL"};e=u&&u.DeleteConfirmationMessage?u.DeleteConfirmationMessage:{pageID:"GLOBAL",textID:"CONFIRM_DELETE"};e.data=i;f.confirm([o,e],[{pageID:"GLOBAL",textID:"BUTTON_YES"},{pageID:"GLOBAL",textID:"BUTTON_NO"}],function(){n.onButtonClick(t,"delete",i,!0)})},n.validateDateRange=function(n){var t,i,r,u,f;n&&(t=null,i=null,n.startField&&n.endField&&n.startDate&&n.endDate&&(t=n.startDate,i=n.endDate,t&&i&&t.getTime&&i.getTime&&(r=t<=i,n.startField.$setValidity("dateRangeInvalid",r),n.endField.$setValidity("dateRangeInvalid",r),t&&i&&n.min&&n.max&&(u=n.min<=t&&t<=n.max,f=n.min<=i&&i<=n.max,n.startField.$setValidity("validateDateRange",u),n.endField.$setValidity("validateDateRange",f)))))},n.combineDateAndTime=function(t,i,r,u,e,o){var c=f.parseTime(i.$modelValue),h,s;t.$modelValue.getTime&&(h=new Date(t.$modelValue.getTime()),s=f.setTimePart(h,c),s.getTime&&(r&&(r[u]=s),o&&(e&&(o[e]=s),n.validateDateRange(o))))},this}]);angular.module("TiimaApp").controller("resourceEmployeeController",["$scope","$q","$timeout","$window","$sce","resourcingService","localizationService","toolsService","restrictionService","tiimaEnumsService","formatService","employeeService","ResourceEmployee","ResourcingPerio
1d","EmployeeRestrictionValue",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y){return n.Employees=null,n.employeeModeReady=!1,n.restrictionVisible=!1,n.initialScrollPerformed=!1,n.Scales=null,n.LastScale=null,n.dayWidth=0,n.$style=null,n.$leftStyle=null,n.$rightStyle=null,n.$vScrollStyle=null,n.$vScrollInnerStyle=null,n.$hScrollStyle=null,n.$hScrollInnerStyle=null,n.$gridScaleStyle=null,n.$gridAreaStyle=null,n.$scaleStyle=null,n.$dataAreaStyle=null,n.$sideBannerStyle=null,n.$scaleParentStyle=null,n.Task=null,n.TaskData=null,n.GridData=null,n.BrowsingHeader="",n.PageSize=20,n.PageIndex=0,n.PageCount=0,n.TotalCount=0,n.periodsRequest=null,n.LoadArgs=null,n.DataByIdC={},n.EmployeeByIdC={},n.PeriodByIdC={},n.initTooltip=function(){$("#employees").uitooltip({track:!0,items:"img, [data-item], [data-employee], [title]",content:function(){var h=$(this),tt,r,a,g,it,et,rt,y,ft,nt,d,i,t,p;if(h.is("[data-item]")){if(tt=h.attr("id"),r=n.DataByIdC[tt],r){if(a="",g=f.getParentChain(r),g)while(g.length)it=g.pop(),et=it.Code+" "+it.Name,a.length>0&&(a+=" > <\/div><div class='floatingRowLeft'>"),a+=et;a.length>0&&(a="<div class='floatingRowLeft'>"+a+" > <\/div>");rt=a+"<div class='floatingRowLeft heading'>"+r.Code+" "+e.getCurrentLanguageText(r.Texts,"Name")+"<\/div><div class='floatingRowLeft'> <\/div>"+("<div class='floatingRowLeft heading'><div class='toolTipCell'>"+e.getText("RESOURCING.PERIOD_HEADING")+"<\/div><div class='toolTipCell numberValue plannedCell'>"+e.getText("RESOURCING.PLANNED_HEADING")+"<\/div><div class='toolTipCell numberValue'>"+e.getText("RESOURCING.ACTUALS_HEADING")+"<\/div><div class='toolTipCell numberValue'>%<\/div><\/div>");var w="",v="",y="",b=0,k=0,ot=0;if(r.Periods&&r.Periods.length)for(i=0;i<r.Periods.length;i++){var t=r.Periods[i],o=0,u=0,l=0;t.PlanningUnit&&t.PlanningUnit==2?(l=t.PlannedDays?t.PlannedDays:0,u=l&&r.DailyHours?l*r.DailyHours:0,y=e.getText("HOUR_PLANNING.DAYS_LABEL")):u=t.PlannedHours?Number(t.PlannedHours):0;t.StampHours&&(o+=Number(t.StampHours));t.WorkHours&&(o+=Number(t.WorkHours));p=u?o/u:0;v+="<div class='floatingRowLeft'><div class='toolTipCell'>"+t.Code+"<\/div><div class='toolTipCell numberValue plannedCell'>"+c.getFormattedHours(u)+" h";t.PlanningUnit&&t.PlanningUnit==2&&(v+=" ("+l+" "+y+")");v+="<\/div><div class='toolTipCell numberValue'>"+c.getFormattedHours(o)+" h<\/div><div class='toolTipCell numberValue'>"+c.getFormattedPercentage(p)+" %<\/div><\/div>";b+=o;k+=u;ot+=l}return b||k?(p=k&&b?b/k:0,y=e.getText("HOUR_PLANNING.DAYS_LABEL"),w="<div class='floatingRowLeft heading'><div class='toolTipCell'>"+e.getText("RESOURCING.TOTAL_LABEL")+":<\/div><div class='toolTipCell numberValue plannedCell'>"+c.getFormattedHours(k)+" h",t.PlanningUnit==2&&(w+=" ("+ot+" "+y+")"),w+="<\/div><div class='toolTipCell numberValue'>"+c.getFormattedHours(b)+" h<\/div><div class='toolTipCell numberValue'>"+c.getFormattedPercentage(p)+" %<\/div><\/div>"):w+="<div class='floatingRowLeft'>"+e.getText("RESOURCING.NO_ACTUALS")+"<\/div>","<div class='resourcingToolTip'>"+rt+v+w+"<\/div>"}return h.attr("title")}if(h.is("[data-employee]")){var tt=h.attr("id"),s=n.EmployeeByIdC[tt],ut="";if(s){if(ft=new Date,nt=0,s.EmploymentData)for(i=0;i<s.EmploymentData.length;i++)if(d=s.EmploymentData[i],d.StartDate.getTime()<=ft&&d.EndDate.getTime()>=ft&&d.DailyHours){nt=(d.DailyHours/60).toFixed(2);break}if(s.JoinedPeriods){var v="",rt="<div class='floatingRowLeft heading'>"+s.EmployeeNumber+" "+s.Lastname+" "+s.Firstname+"<\/div><div class='floatingRowLeft'> <\/div><div class='floatingRowLeft heading'><div class='toolTipCell'>"+e.getText("RESOURCING.PERIOD_HEADING")+"<\/div><div class='toolTipCell numberValue plannedCell'>"+e.getText("RESOURCING.PLANNED_HEADING")+"<\/div><div class='toolTipCell numberValue'>"+e.getText("RESOURCING.ACTUALS_HEADING")+"<\/div><div class='toolTipCell numberValue'>%<\/div><\/div>",y="",b=0;for(i=0;i<s.JoinedPeriods.length;i++)if(t=s.JoinedPeriods[i],t.PeriodTotalStampHours||t.PlannedHours||t.PeriodTotalWorkHours||t.PlannedDays){var u=0,l=0,o=0;t.PlanningUnit&&t.PlanningUnit==2?(y=e.getText("HOUR_PLANNING.DAYS_LABEL"),t.PlannedDays&&(l=t.PlannedDays),u=l&&nt?l*nt:0):t.PlannedHours&&(u=Number(t.PlannedHours));t.PeriodTotalStampHours&&(o+=Number(t.PeriodTotalStampHours));t.PeriodTotalWorkHours&&(o+=Number(t.PeriodTotalWorkHours));p=u&&o?o/u:0;v+="<div class='floatingRowLeft'><div class='toolTipCell'>"+t.Code+"<\/div><div class='toolTipCell numberValue plannedCell'>"+c.getFormattedHours(u)+" h";t.PlanningUnit&&t.PlanningUnit==2&&(v+=" ("+l+" "+y+")");v+="<\/div><div class='toolTipCell numberValue'>"+c.getFormattedHours(o)+" h<\/div><div class='toolTipCell numberValue'>"+c.getFormattedPercentage(p)+" %<\/div><\/div>"}ut="<div class='resourcingToolTip'>"+rt+v+"<\/div>"}else ut=e.getText("GLOBAL.WAIT_MESSAGE")}return ut}return h.is("[title]")?h.attr("title"):h.is("img")?h.attr("alt"):void 0}})},f.setClearEmployeesCallback(n.clearEmployees=function(){}),f.setRefreshEmployeesCallback(n.refreshEmployees=function(r){var e,o,h,u,s,c;if(r||(r={}),r.PageSize||(r.PageSize=n.PageSize),r.PageIndex||(r.PageIndex=n.PageIndex),r=angular.extend({},n.LoadArgs,r),n.LoadArgs){if(e=n.LoadArgs.Items,o=!1,e){for(h={},u=0;u<e.length;u++)s=e[u].Type+"#"+e[u].IdC+"#"+(e[u].SubLevels?"1":"0"),h[s]="x";if(r.Items)for(u=0;
1u<r.Items.length;u++)if(s=r.Items[u].Type+"#"+r.Items[u].IdC+"#"+(r.Items[u].SubLevels?"1":"0"),h[s])delete h[s];else{o=!0;break}if(!o)for(s in h){o=!0;break}}else r.Items&&(o=!0);o&&(n.PageIndex=r.PageIndex=0)}return n.DataByIdC={},n.PeriodByIdC={},n.EmployeeByIdC={},c=t.defer(),n.employeeModeReady=!1,a.getAll({FirstIndex:r.PageIndex*r.PageSize,ItemCount:r.PageSize,OrderByField:1,StartDate:r.StartDate,EndDate:r.EndDate,OnlyResourced:r.ShowEmployees==1,OnlyFree:r.ShowEmployees==3,OnlySubOrdinates:r.PermissionMode==1,OnlyTeam:r.PermissionMode==3,Items:r.Items}).then(function(t){n.Employees=t;var r=n;i(function(){f.setEmployees(r.Employees).then(function(){n.employeeModeReady=!0;c.resolve()})})}),n.LoadArgs=r,c.promise}),f.setEmployeeUpdateCallback(n.updateEmployees=function(i){var u=t.defer(),f,r;return n.Employees=i&&i.DataList?i.DataList:null,n.TotalCount=i&&i.TotalRows?i.TotalRows:0,n.PageCount=Math.floor(n.TotalCount/n.PageSize)||1,f=n.PageIndex*n.PageSize+1,r=(n.PageIndex+1)*n.PageSize,r>n.TotalCount&&(r=n.TotalCount),n.pagingInfo={FirstIndex:f,LastIndex:r,TotalCount:n.TotalCount},n.BrowsingHeader=["GLOBAL.DATALIST_DEFAULT_BROWSING_TEXT_FORMAT",n.Page,n.Pages,n.EmployeesTotal].join("|"),n.initGrid().then(function(){u.resolve()}),u.promise}),f.setUpdateZoomLevelCallback(n.updateScales=function(){var r=$("#employees"),t=$(".gantt_hor_scroll",r).get(0),u=t.scrollLeft,f=u/n.dayWidth;n.employeeModeReady=!1;n.initGrid().then(function(){i(function(){t.scrollLeft=n.dayWidth*f});n.employeeModeReady=!0})}),f.setResizeChartCallback(n.resizeChart=function(){n.resizeGrid()}),n.$on(h.getValue("RestrictionControllerEventEnum","RestrictionChange"),function(){var i=null,t=s.getRestrictions(),n;if(t)for(i=[],n=0;n<t.length;n++)i.push({Type:l.convertRestrictionParameterType(t[n].RestrictionType),DataType:h.getValue("AbsenceQueryParameterValueType","ID"),IdCValue:t[n].IdC,SubLevels:t[n].SubLevels});f.refreshEmployees({Items:i})}),n.toggleEmployeeOpen=function(t){t.open=t.open?!1:!0;i(function(){n.resizeGrid()})},n.firstPage=function(){n.PageIndex!==0&&(n.PageIndex=0,f.refreshEmployees())},n.lastPage=function(){n.PageIndex!==n.PageCount-1&&(n.PageIndex=n.PageCount-1,f.refreshEmployees())},n.prevPage=function(){if(n.PageIndex<=0){n.PageIndex=0;return}n.PageIndex--;f.refreshEmployees()},n.nextPage=function(){if(n.PageIndex>=n.PageCount-1){n.PageIndex=n.PageCount-1;return}n.PageIndex++;f.refreshEmployees()},n.itemDoubleClicked=function(n){f.showResourceDimensionItemModal({IdC:n.DimensionItemIdC,CurrentUserPermissionType:n.CurrentUserPermissionType})},n.toggleRestrictionVisibility=function(){n.restrictionVisible=!n.restrictionVisible},s.setDataSource(n.getRestrictionValues=function(n){var i=t.defer();return y.getAll({query:n.SearchFilter}).then(function(n){var t,r;if(n&&n.DataList){for(t=0;t<n.DataList.length;t++)r=n.DataList[t],r.TypeName.substring(0,8)=="GENERAL_"&&(r.TypeName=e.getText(r.TypeName));i.resolve(n)}else i.resolve(null)}),i.promise}),n.initGrid=function(){var i=t.defer();return n.Scales=[],n.initGridSize(),n.initScales(),n.initTooltip(),n.initData().then(function(){n.initScrolls().then(function(){i.resolve()})}),i.promise},n.initGridSize=function(){var t=$("#gantt"),u=$(".gantt_grid",t),f=$(".gantt_task",t),i=$(".gantt_ver_scroll",t),e=i.children().first(),r=$(".gantt_hor_scroll",t),o=r.children().first(),l=$(".gantt_grid_scale",t),s=$(".gantt_grid_data",t),h=$(".gantt_task_scale",t),c=$(".gantt_data_area",t);n.$style={width:t.width()+"px",height:t.height()+"px"};n.$leftStyle={width:u.width()+"px",height:u.height()+"px"};n.$rightStyle={width:f.width()+"px",height:f.height()+"px"};n.$gridScaleStyle={width:l.width()+"px"};n.$gridAreaStyle={width:s.width()+"px",height:s.height()+"px"};n.$dataAreaStyle={width:c.width()+"px",height:c.height()+"px"};n.$scaleStyle={width:h.width()+"px",height:h.height()+9+"px"};n.$sideBannerStyle={height:u.height()-18+"px"};n.$vScrollStyle={width:i.width()+"px",height:i.height()+"px",display:i.css("display"),top:i.css("top")+"px"};n.$vScrollInnerStyle={height:e.height()+"px"};n.$hScrollStyle={width:r.width()+"px",height:r.height()+"px",display:r.css("display")};n.$hScrollInnerStyle={width:o.width()+"px"};n.$scaleParentStyle={width:o.width()+"px",height:e.height()+"px"}},n.initScales=function(){var o=r.gantt._scale_helpers,u=[o.primaryScale()].concat(r.gantt.config.subscales),s,t,e;scale_height=r.gantt.config.scale_height-1;o.sortScales(u);var h=r.gantt._get_resize_options(),c=h.x?0:r.gantt.$task.offsetWidth,i=o.prepareConfigs(u,r.gantt.config.min_column_width,c,scale_height),f=r.gantt._tasks=i[i.length-1];for(n.dayWidth=0,s=!1,t=0;t<u.length;t++)if(u[t].unit=="day"){s=!0;break}if(!s)switch(f.unit){case"day":n.dayWidth=f.col_width;break;case"week":n.dayWidth=f.col_width/7;break;case"month":n.dayWidth=f.col_width/30.5}for(n.LastScale=null,t=0;t<i.length;t++)e={},n.initScale(e,i[t]),n.Scales.push(e),i[t].unit=="day"&&(n.dayWidth=i[t].col_width),n.LastScale=e},n.initScale=function(n,t){var o,s,u,i;for(n.Cells=[],n.$style={height:t.height+"px",lineHeight:t.height+"px"},o=null,s=t.css||gantt.templates.scale_cell_class,(t.template||t.date)&&(o=t.template||r.gantt.date.date_to_str(t.date)),u=0;u<t.count;u++)i={Holiday:!1,Date:new Date(t.trace_x[u])}
1,n.Cells.push(i),i.Texts=[{Heading:o.call(r.gantt,i.Date),LanguageIdC:e.getCurrentLanguageIdC()}],i.$style={width:t.width[u]+"px",left:u*t.width[u]+"px"},t.unit=="day"&&(i.Date.getDay()==0||f.isHoliday(i.Date.getTime()))&&(i.Holiday=!0)},n.initData=function(){for(var f,r,u=[],i=0;i<n.Employees.length;i++)f=n.Employees[i],u.push(n.initEmployee(f));return r=t.defer(),t.all(u).then(function(){r.resolve()}),r.promise},n.getAbsenceText=function(n){return n.ReasonCode},n.getAbsenceTitle=function(t){return n.escape(e.getCurrentLanguageText(t.Texts,"ReasonCodeName"))},n.getPeriodText=function(t){return t?n.escape(t.Code):""},n.escape=function(n){return n?n.replace(/'/g,"'").replace(/"/g,'"'):""},n.resolveStyle=function(n){var t="";for(var i in n)t+=i+":"+n[i]+";";return t},n.initPeriods=function(t){var u,r,e,t,f,i,o;if(t&&t.length)for(u=0;u<t.length;u++){var i=t[u],s="_"+i.DimensionItemIdC+"."+i.EmployeeIdC,e=n.DataByIdC[s];e&&(e.Periods||(e.Periods=[]),e.Periods.push(i));r=n.EmployeeByIdC["empIdC_"+i.EmployeeIdC];r!=null&&(r.Periods||(r.Periods=[]),r.Periods.push(i))}for(u=0;u<n.Employees.length;u++){if(r=n.Employees[u],r.JoinedPeriods=[],r.ResourceDimensionItems&&r.ResourceDimensionItems.length)for(f=0;f<r.ResourceDimensionItems.length;f++)e=r.ResourceDimensionItems[f],n.initItemPeriods(e);if(r.Periods)for(t={},f=0;f<r.Periods.length;f++)i=r.Periods[f],o=i.StartDate.getTime()+"."+i.EndDate.getTime(),t[o]?t[o].PlannedHours+=i.PlannedHours?Number(i.PlannedHours):0:r.JoinedPeriods.push(t[o]={IdC:i.IdC,EmployeeIdC:r.IdC,Code:i.Code,StartDate:i.StartDate,EndDate:i.EndDate,PeriodTotalStampHours:i.PeriodTotalStampHours,PeriodTotalWorkHours:i.PeriodTotalWorkHours,PlannedHours:i.PlannedHours,PlannedDays:i.PlannedDays,PlanningUnit:i.PlanningUnit})}},n.initItemPeriods=function(n){var i;if(n&&n.Periods&&n.Periods.length)for(i=0;i<n.Periods.length;i++){var t=n.Periods[i],u=n.$style,r=gantt.posFromDate(t.StartDate),f=gantt.posFromDate(t.EndDate);t.CombinedIdC=n.IdC+"."+t.IdC;t.$style={left:r+"px",width:f-r-2+"px",top:u.top}}},n.initEmployee=function(r){var u=t.defer();return i(function(){var p={},rt,ut,g,nt,i,ft,et,t,k,a,d,s,b,tt,it,y,c,h,e,f;if(n.EmployeeByIdC["empIdC_"+r.IdC]=r,r.Periods||(r.JoinedPeriods=[]),rt=0,r.EmploymentData)for(ut=new Date,f=0;f<r.EmploymentData.length;f++)if(g=r.EmploymentData[f],g.StartDate.getTime()<=ut&&g.EndDate.getTime()>=ut&&g.DailyHours){rt=(g.DailyHours/60).toFixed(2);break}var l=null,v=null,w=1;if(r.ResourceDimensionItems)for(nt={},f=0;f<r.ResourceDimensionItems.length;f++){var t=r.ResourceDimensionItems[f],k=o.getDateDifference(t.EndDate,t.StartDate),y=k.days;for((k.hours||k.minutes)&&y++,t.DailyHours=rt,(!l||l.getTime()>t.StartDate.getTime())&&(l=new Date(t.StartDate.getTime())),(!v||v.getTime()<t.EndDate.getTime())&&(v=o.addDays(t.EndDate,t.EndDate.getHours()>0||t.EndDate.getMinutes()>0?1:0)),n.DataByIdC["IdC_"+t.IdC]=t,n.DataByIdC["_"+t.DimensionItemIdC+"."+r.IdC]=t,a=0,d=[],s=0;s<y;s++)h=o.addDays(t.StartDate,s),e=h.getFullYear()+"-"+h.getMonth()+"-"+h.getDate(),d.push(e),p[e]?p[e]++:p[e]=1,p[e]>a+1&&(a=p[e]-1);for(a>w-1&&(w=a+1),s=0;s<d.length;s++)p[d[s]]=a+1;if(b=gantt.posFromDate(t.StartDate),tt=gantt.posFromDate(t.EndDate),t.$style={left:b+"px",width:tt-b-2+"px",top:(a+1)*30+"px"},t.Periods&&t.Periods.length)for(r.Periods||(r.Periods=[]),s=0;s<t.Periods.length;s++)i=t.Periods[s],i.CombinedIdC=t.IdC+"."+i.IdC,n.PeriodByIdC["IdC_"+i.CombinedIdC]=i,ft=gantt.posFromDate(i.StartDate),et=gantt.posFromDate(i.EndDate),i.$style={left:ft+"px",width:et-ft-2+"px",top:(a+1)*30+"px"},r.Periods.push(i),e=i.StartDate.getTime()+"."+i.EndDate.getTime(),nt[e]?i.PlanningUnit==2?nt[e].PlannedDays+=i.PlannedDays?Number(i.PlannedDays):0:nt[e].PlannedHours+=i.PlannedHours?Number(i.PlannedHours):0:r.JoinedPeriods.push(nt[e]={IdC:i.IdC,EmployeeIdC:r.IdC,Code:i.Code,StartDate:i.StartDate,EndDate:i.EndDate,PeriodTotalStampHours:i.PeriodTotalStampHours,PeriodTotalWorkHours:i.PeriodTotalWorkHours,PlannedHours:i.PlannedHours,PlannedDays:i.PlannedDays,PlanningUnit:i.PlanningUnit})}if(r.Absences)for(f=0;f<r.Absences.length;f++){for(t=r.Absences[f],(!l||l.getTime()>t.StartDate.getTime())&&(l=new Date(t.StartDate.getTime())),(!v||v.getTime()<t.EndDate.getTime())&&(v=o.addDays(t.EndDate,t.EndDate.getHours()>0||t.EndDate.getMinutes()>
10?1:0)),k=o.getDateDifference(t.EndDate,t.StartDate),y=k.days,(k.hours||k.minutes)&&y++,y<1&&(y=1),a=w,d=[],s=0;s<y;s++)h=o.addDays(t.StartDate,s),e=h.getFullYear()+"-"+h.getMonth()+"-"+h.getDate(),d.push(e),p[e]=a;b=gantt.posFromDate(t.StartDate);tt=gantt.posFromDate(t.EndDate);t.$style={left:b+"px",width:tt-b-4+"px",top:(a+1)*30+"px",height:"26px"}}if(r.Absences&&r.Absences.length&&w++,r.$style={height:w*30+"px"},r.$openStyle={height:(w+1)*30+"px"},r.$closedStyle={height:"30px"},r.$summaryRowStyle={height:"30px",top:"0px"},r.JoinedPeriods&&r.JoinedPeriods.sort(function(n,t){var i=n.StartDate.getTime(),r=t.StartDate.getTime();return i<r?-1:r<i?1:0}),it=[],l&&v){for(l=o.getDateOnly(l),v=o.getDateOnly(v),y=o.getDateDifference(v,l).days,c=null,f=0;f<y;f++)h=o.addDays(l,f),e=h.getFullYear()+"-"+h.getMonth()+"-"+h.getDate(),p[e]?(c||it.push(c={startDate:new Date(h.getTime()),$closedStyle:{height:"20px"},$openStyle:{height:w*30+20+"px"},$style:{}}),c.endDate=new Date(o.addDays(h,1))):c=null;for(f=0;f<it.length;f++){var c=it[f],b=gantt.posFromDate(c.startDate),tt=gantt.posFromDate(c.endDate);c.$style.left=c.$openStyle.left=c.$closedStyle.left=b+"px";c.$style.width=c.$openStyle.width=c.$closedStyle.width=tt-b-1+"px"}r.ranges=it}for(r.$rows=[],f=0;f<w;
1f++)r.$rows.push({$style:{top:(f+1)*30+"px"}});u.resolve()}),u.promise},n.initScrolls=function(){n.Task=$("#employees .gantt_task").get(0);n.TaskData=$("#employees .gantt_data_area").get(0);n.GridData=$("#employees .gantt_grid_data").get(0);$("#employees .gantt_hor_scroll").bind("scroll",function(t){if(!r.gantt._touch_scroll_active){var i=t.target.scrollLeft;n.scrollTo(i)}});$("#employees .gantt_ver_scroll").bind("scroll",function(t){if(!r.gantt._touch_scroll_active){var i=t.target.scrollTop;n.TaskData.scrollTop=i;n.scrollTo(null,i)}});var u=t.defer();return i(function(){n.resizeGrid(!0).then(function(){u.resolve()})}),u.promise},n.resizeGrid=function(i){var u=t.defer();return n.$apply(function(){var t=$("#employees"),y=t.get(0).clientWidth,s=t.get(0).clientHeight,g=$(".gantt_grid",t),nt=$(".gantt_task",t),tt=$(".gantt_ver_scroll",t),k=$(".gantt_hor_scroll",t),it=$(".gantt_grid_data",t),d=$(".gantt_data_area",t),p=k.get(0).offsetHeight,rt=Math.max(s-p-2,0),h=Math.max(s-(r.gantt.config.scale_height||0)-p-2,0),c=Math.max(r.gantt._get_grid_width()-1,0),w=Math.max(y-c-2,0),v,l,e,a;n.$leftStyle={width:c+"px",bottom:"0px"};n.$rightStyle={width:w-20+"px",bottom:"0px",left:c+"px"};n.$dataAreaStyle.height=n.$gridAreaStyle.height=h+"px";var b=d.get(0).offsetHeight,f=r.gantt.config.scroll_size+1,o=0;$("#employees .gantt_row").each(function(){o+=$(this).outerHeight()});v=o;o=0;$("#employees .gantt_scale_line:first-child .gantt_scale_cell").each(function(){o+=$(this).outerWidth()});l=o;$("#employees .gantt_task_scale").width(l);e=l>w;a=v>(b?b:h);e&&(n.$leftStyle.bottom=n.$rightStyle.bottom="18px",i&&(h-=18,n.$dataAreaStyle.height=n.$gridAreaStyle.height=h+"px"));n.$hScrollStyle={width:y-(a?f:2)+"px",height:(e?f:0)+"px",display:e?"block":"none"};n.$hScrollInnerStyle.width=l+c+f+2+"px";n.$vScrollStyle={width:(a?f:0)+"px",height:s-(e?f:0)-r.gantt.config.scale_height-9+"px",display:a?"block":"none",top:r.gantt.config.scale_height+9+"px"};n.$vScrollInnerStyle.height=v+"px";n.$scaleParentStyle={width:n.$hScrollInnerStyle.width,height:n.$vScrollInnerStyle.height};n.$sideBannerStyle.height=s-(e?f:0)+"px";u.resolve()}),u.promise},n.scrollTo=function(t,i){t*1==t&&(n.Task.scrollLeft=t);i*1==i&&(n.TaskData.scrollTop=i,n.GridData.scrollTop=i,n.TaskData.scrollTop>n.GridData.scrollTop&&(n.TaskData.scrollTop=n.GridData.scrollTop),n.TaskData.scrollTop<n.GridData.scrollTop&&(n.GridData.scrollTop=n.TaskData.scrollTop))},n.mergeStyle=function(n,t){return angular.extend({},n,t)},n.isEmployed=function(n,t){var f=!1,r,i,u;if(n.EmploymentData)for(r=t.Date.getTime(),i=0;i<n.EmploymentData.length;i++)if(u=n.EmploymentData[i],u.StartDate.getTime()<=r&&r<=u.EndDate.getTime()){f=!0;break}return f},this}]);angular.module("TiimaApp").controller("resourceEmployeeRestrictionController",["$scope","toolsService","restrictionService","tiimaEnumsService",function(n,t,i,r){n.SelectedRestrictionValue=null;n.Restrictions=i.getRestrictions();n.RestrictionItemTemplate="{{Code}} {{Name}} ({{TypeName}})";n.isPeriodSelectionVisible=function(){return i.getPeriodVisibility()};n.getRestrictionValue=function(n){return i.loadData(n)};n.addRestriction=function(t){t&&(t.RestrictionType==1&&(t.SubLevels=!0),i.addRestriction(t)&&n.emitEvent(r.getValue("RestrictionControllerEventEnum","RestrictionAdd"),t),n.SelectedRestrictionValue=null)};n.removeRestriction=function(t){t&&i.removeRestriction(t)&&n.emitEvent(r.getValue("RestrictionControllerEventEnum","RestrictionRemove"),t)};n.toggleSubLevels=function(t){t.SubLevels=!t.SubLevels;i.updateRestriction(t)&&n.emitEvent(r.getValue("RestrictionControllerEventEnum","RestrictionUpdate"),t)};n.emitEvent=function(t,i){n.$emit(t,i);n.$emit(r.getValue("RestrictionControllerEventEnum","RestrictionChange"),i)}}]);angular.module("TiimaApp").controller("resourcingSettingsEditorController",["$scope","localizationService","tiimaEnumsService","resourcingSettingsService","ResourcingSetting",function(n,t,i,r){return n.Settings={Settings:[],Next:null},n.SettingsStack=null,n.InheritedSettings=!0,n.customSettingsChanged=function(t){var i,u,f;t?(i=angular.copy(n.Settings),i.Next=n.Settings,n.Settings.Prev=i,i.InheritedSettings=!1,i.IdC=null,n.CustomSettings=!0,u=r.getSettingsParent(),u&&(u.DimensionIdC?i.DimensionIdC=u.DimensionIdC:u.DimensionItemIdC&&(i.DimensionItemIdC=u.DimensionItemIdC)),n.Settings=i):(f=n.Settings.Next,f||(f={Settings:[],Next:null,Prev:n.Settings,InheritedSettings:!0}),n.Settings.Deleted=!0,n.CustomSettings=!1,n.Settings=f)},n.changed=function(n){n.Changed=!0},r.registerSettingsParentListener(n.selectSettingParent=function(t){n.CustomSettings=!1;n.Settings={Settings:[],Next:null};r.loadSettings(t).then(function(t){t&&(n.CustomSettings=!t.InheritedSettings,n.Settings=t)})}),n.$on("$destroy",function(){r.unRegisterSettingsParentListener(n.selectSettingParent)}),this}]);angular.module("TiimaApp").controller("hourPlanningController",["$scope","$rootScope","$q","$timeout","$http","initPageService","EmployeeOfResourceDimensionItemPeriod","toolsService","localizationService","Period","HourPlanning",function(n,t,i,r,u,f,e,o,s,h,c){n.dimensionItems=[];n.periods=[];n.employeeOfDimensionItemPeriods=[];n.periodTypesByType=[];n.Changed=!1;n.loading=!1;n.selectedRow=null;n.arrowKeysOff=!1;n.dataCellWidth=75;n.rowHeight=28;n.employeeID=null;var l=new Date,a=new Date(l.getFullYear(),l.getMonth(),1,0,0,0,0),v=new Date(l.getFullYear(),l.getMonth()+6,0,0,0,0,0);n.dateRange={startDate:a,endDate:v};f.init("MVC/Resourcing/HourPlanning/InitHourPlanningPage","HOUR_PLANNING.HOURPLANNING_LABEL").then(function(t){t&&t.Data&&(n.periods=t.Data.Periods,n.dimensionItems=t.Data.DimensionItems,n.createParentBreadCrumb(),n.getEmployeeOfDimensionItemPeriods())});n.createDataStructureForHandling=function(){var l={},i,o,e,h,t,c,r,u,f;if(n.periods){for(i=0;i<n.periods.length;
1i++)if(n.periods[i].PeriodType&&!l["periodType"+n.periods[i].PeriodType]){for(o=[],e=0;e<n.periods.length;e++)n.periods[i].PeriodType==n.periods[e].PeriodType&&o.push(n.periods[e]);if(h=[],n.dimensionItems)for(n.dimensionItems.sort(function(n,t){return n.ParentData>t.ParentData?1:n.ParentData<t.ParentData?-1:0}),t=0;t<n.dimensionItems.length;t++)if(n.dimensionItems[t].PeriodType==n.periods[i].PeriodType){for(c=[],r=0;r<n.periods.length;r++)if(n.periods[r].PeriodType==n.periods[i].PeriodType){for(u=null,f=0;f<n.employeeOfDimensionItemPeriods.length;f++)n.employeeOfDimensionItemPeriods[f].ResourceDimensionItemIdC==n.dimensionItems[t].IdC&&n.employeeOfDimensionItemPeriods[f].StartDate==n.periods[r].StartDate&&(u=n.employeeOfDimensionItemPeriods[f],u.PlanningUnit=n.dimensionItems[t].PlanningUnit,u.InvalidPeriod=n.dimensionItems[t].EndDate<n.periods[r].StartDate||n.dimensionItems[t].StartDate>n.periods[r].EndDate,u.PlanningUnitLabelText=u.PlanningUnit==2?s.getText("HOUR_PLANNING.DAYS_LABEL"):s.getText("HOUR_PLANNING.HOURS_LABEL"),u.PeriodType=n.dimensionItems[t].PeriodType,u.period=n.periods[i]);u?c.push(u):c.push({InvalidPeriod:n.dimensionItems[t].EndDate<n.periods[r].StartDate||n.dimensionItems[t].StartDate>n.periods[r].EndDate,period:n.periods[i],EmployeeOfResourceDimensionItemIdC:n.dimensionItems[t].EmployeeOfResourceDimensionItemIdC,ResourceDimensionItemIdC:n.dimensionItems[t].IdC,StartDate:n.periods[r].StartDate,EndDate:n.periods[r].EndDate,PlanningUnit:n.dimensionItems[t].PlanningUnit,Hours:null,Days:null,PlanningUnitLabelText:n.dimensionItems[t].PlanningUnit==2?s.getText("HOUR_PLANNING.DAYS_LABEL"):s.getText("HOUR_PLANNING.HOURS_LABEL")})}n.dimensionItems[t].PeriodData=c;h.push(n.dimensionItems[t])}
1l["periodType"+n.periods[i].PeriodType]={Value:n.periods[i].PeriodType,Periods:o,DimensionItems:h,Scroll:{x:0,y:0,width:o.length*n.dataCellWidth},EditorDataHeight:h.length*n.rowHeight+40}}n.periodTypesByType=l}};n.createParentBreadCrumb=function(){var t,r,i,o;if(n.dimensionItems)for(t=0;t<n.dimensionItems.length;t++)if(r=0,n.dimensionItems[t].Parents){var u="",f=1,e=null;for(i=0;i<n.dimensionItems[t].Parents.length;i++)(n.dimensionItems[t].Parents[i].Level==1||n.dimensionItems[t].Parents[i].ParentIdC==r)&&(n.dimensionItems[t].Parents[i].Level>1&&(u+=" > "),o=n.dimensionItems[t].Parents[i].Texts,u+=s.getCurrentLanguageText(o,"Name")+" ("+n.dimensionItems[t].Parents[i].Code+")",r=n.dimensionItems[t].Parents[i].IdC,n.dimensionItems[t].Parents[i].PlanningUnit&&(f=n.dimensionItems[t].Parents[i].PlanningUnit),n.dimensionItems[t].Parents[i].PeriodType&&(e=n.dimensionItems[t].Parents[i].PeriodType));n.dimensionItems[t].ParentData=u;n.dimensionItems[t].PlanningUnit=f;n.dimensionItems[t].PeriodType=e}};n.refreshData=function(){n.loading=!0;c.getPeriodsAndDimensionItems({startDate:n.dateRange.startDate,endDate:n.dateRange.endDate}).then(function(t){t&&(n.periods=t.Periods?t.Periods:null,n.dimensionItems=t.DimensionItems?t.DimensionItems:null,n.createParentBreadCrumb(),n.getEmployeeOfDimensionItemPeriods(),n.loading=!1)})};n.getEmployeeOfDimensionItemPeriods=function(){n.loading=!0;var t=new Date;e.getAll({startDate:n.dateRange.startDate,endDate:n.dateRange.endDate}).then(function(t){t&&t.DataList&&(n.employeeOfDimensionItemPeriods=t.DataList,n.createDataStructureForHandling(),r(function(){$(".editorDataArea.middlePart").on("scroll",function(t){var u=t.target.scrollLeft,r=t.target.classList[2],i;n.periodTypesByType[r].Scroll.x=u;$(".editorDataHeading.middlePart."+r)[0].scrollLeft=u;t.target.scrollTop!=n.periodTypesByType[r].Scroll.y&&(i=n.periodTypesByType[r].Scroll.y=t.target.scrollTop,i<5&&(i=0,$(".editorDataArea.middlePart")[0].scrollTop=i),$(".editorDataArea.leftPart")[0].scrollTop=i,$(".editorDataArea.rightPart")[0].scrollTop=i)})}));n.loading=!1},function(){n.loading=!1})};n.$watch("dateRange.startDate",function(t,i){i!=t&&n.refreshData()});n.$watch("dateRange.endDate",function(t,i){i!=t&&n.refreshData()});n.onSaveClick=function(){n.loading=!0;var t=n.saveData();t.then(function(){n.loading=!1;n.refreshData()})};n.saveData=function(){var c=i.defer(),s=[],t,l,r,h,u,f;if(n.dimensionItems)for(t=0;t<n.dimensionItems.length;t++)if(l=n.dimensionItems[t],l&&l.PeriodData)for(r=0;r<n.dimensionItems[t].PeriodData.length;r++)n.dimensionItems[t].PeriodData[r].Changed&&(n.dimensionItems[t].PeriodData[r].IdC?(h=null,u=new Date(n.dimensionItems[t].PeriodData[r].StartDate),u.setHours(0,0,0,0),f=new Date(n.dimensionItems[t].PeriodData[r].EndDate),f.setHours(0,0,0,0),h={EmployeeOfResourceDimensionItemPeriodIdC:n.dimensionItems[t].PeriodData[r].IdC,EmployeeOfResourceDimensionItemIdC:n.dimensionItems[t].PeriodData[r].EmployeeOfResourceDimensionItemIdC,StartDate:u,EndDate:f,Hours:n.dimensionItems[t].PeriodData[r].PlanningUnit==1?n.dimensionItems[t].PeriodData[r].Hours:null,Days:n.dimensionItems[t].PeriodData[r].PlanningUnit==2?n.dimensionItems[t].PeriodData[r].Days:null,Unit:n.dimensionItems[t].PeriodData[r].PlanningUnit==2?2:1,Changed:n.dimensionItems[t].PeriodData[r].Changed?!0:!1,Deleted:n.dimensionItems[t].PeriodData[r].Deleted?!0:!1},h.IdC=n.dimensionItems[t].PeriodData[r].IdC,s.push(h)):(u=new Date(n.dimensionItems[t].PeriodData[r].StartDate),u.setHours(0,0,0,0),f=new Date(n.dimensionItems[t].PeriodData[r].EndDate),f.setHours(0,0,0,0),s.push({ResourceDimensionItemIdC:n.dimensionItems[t].PeriodData[r].ResourceDimensionItemIdC,EmployeeOfResourceDimensionItemIdC:n.dimensionItems[t].PeriodData[r].EmployeeOfResourceDimensionItemIdC,StartDate:u,EndDate:f,Hours:n.dimensionItems[t].PeriodData[r].PlanningUnit==1?n.dimensionItems[t].PeriodData[r].Hours:null,Days:n.dimensionItems[t].PeriodData[r].PlanningUnit==2?n.dimensionItems[t].PeriodData[r].Days:null,Unit:n.dimensionItems[t].PeriodData[r].PlanningUnit==2?2:1})));return s&&e.saveEmployeeOfResourceDimensionItemPeriodData(s).then(function(n){var t=n.DataList;c.resolve(n)}),c.promise.then(function(t){var r=t.Status!="1",i;n.selectedRow=null;i="";i=r?o.getDataMessage(t,"GLOBAL.ERROR_SAVE"):o.getDataMessage(t,"GLOBAL.SUCCESS_SAVE");o.showSplash(i,t.Status=="1"?"okMessage":"errorMessage")}),c.promise};n.onDimensionItemPeriodSelected=function(t,i,r){var u=0;if(r&&r.target&&r.target.tagName&&r.target.tagName=="INPUT"){r.stopPropagation();return}t&&i&&r&&(r.stopPropagation(),i!=null&&(u=n.findCellIndex(r.target)));n.activateRow(i,u)};n.findCellIndex=function(n){var t=jQuery(n).closest(".editorDataCell.dimensionCell");return t?t.index():0};n.activateRow=function(t,i){n.selectedRow&&($(".editorDataCell input[type=text]").off("keyup"),$(".editorDataCell.invisibleCell > input").off("focus"));n.selectedRow=t;var u=n;r(function(){if(i>=0){var t=n.setFocusToCell(i);t.then(function(){r(function(){$(".editorDataCell input[type=text]").off("keyup").on("keyup",u.cellKeyUp);$(".editorDataCell.invisibleCell > input").off("focus").on("focus",u.cellFocus)},0)})}})};n.cellKeyUp=function(t){var i=n.findCellIndex(t.target);switch(t.which){case 9:n.arrowKeysOff=!1;break;case 38:n.arrowKeysOff||n.moveUp(i);break;case 40:n.arrowKeysOff||n.moveDown(i);break;case 39:t.target.value?n.arrowKeysOff=!0:n.setFocusToCell(i+1);break;case 37:t.target.value?n.arrowKeysOff=!0:n.setFocusToCell(i-1);break;case 13:n.arrowKeysOff=!1;break;case 27:n.arrowKeysOff=!1;break;default:n.arrowKeysOff=!0}};n.cellFocus=function(t){$(t.target).hasClass("lastCell")?n.lastCellFocused(t):n.firstCellFocused(t)};n.setFocusToCell=function(u,f){var e=i.defer();return n.arrowKeysOff=!1,r(function(){t.$broadcast("dimension-cell-click-"+u,f);e.resolve(u)},20),e.promise};n.firstCellFocused=function(){$(".editorDataArea.middlePart",$element)[0].scrollLeft=2e3;$(".editorDataHeading.middlePart",$element)[0].scrollLeft=2e3;n.moveUp(n.cellsTotal+1)};n.lastCellFocused=function(){$(".editorDataArea.middlePart",$element)[0].scrollLeft=0;$(".editorDataHeading.middlePart",$element)[0].scrollLeft=0;n.moveDown(1)};n.moveDown=function(t){if(n.selectedRow){var r=null,i=n.findRowIndex(n.selectedRow);typeof i=="number"&&i>=0&&n.dimensionItems&&n.dimensionItems.length>i&&(r=i<n.dimensionItems.length-1?n.dimensionItems[i+1]:n.dimensionItems[0]);r&&n.activateRow(r,t)}};n.moveUp=function(t){if(n.selectedRow){var r=null,i=n.findRowIndex(n.selectedRow);typeof i=="number"&&i>=0&&n.dimensionItems&&n.dimensionItems.length>i&&(r=i>0?n.dimensionItems[i-1]:n.dimensionItems[n.dimensionItems.length-1]);r&&n.activateRow(r,t)}};n.onChangeDimensionItem=function(t){t||(cell.Hours=null,cell.Days=null);t.Changed=!0;t.Deleted=!1;(t.PlanningUnit!=1||t.Hours)&&(t.PlanningUnit!=2||t.Days)||(t.Deleted=!0);n.Changed=!0};n.findRowIndex=function(t){var r=null,i,u;if(n.dimensionItems&&n.dimensionItems.length)for(i=0;i<n.dimensionItems.length;i++)if(u=n.dimensionItems[i],u==t){r=i;break}return r}}]);angular.module("TiimaApp").controller("transactionsRecordingController",["$scope","$rootScope","$q","$timeout","transactionRecordingService","employeeService","restrictionService","toolsService","tiimaEnumsService","initPageService","Period","Organisation","formatService",function(n,t,i,r,u,f,e,o,s,h,c,l,a){n.Perio
1ds=[];n.Options={AutoApprove:!1,ViewCurrentMonth:!1,ReversePeriods:!1,PeriodSelection:s.getValue("PeriodSelectionTypeEnum","Both")};h.init("MVC/Workhours/Transactions/InitTransactionsRecordingPage").then(function(i){if(i&&i.Data){n.Options.PeriodSelection=i.Data.PeriodSelection;e.setPeriodVisibility(n.Options.PeriodSelection!=s.getValue("PeriodSelectionTypeEnum","DayOnly"));n.Options.ApprovePermission=i.Data.ApprovePermission;n.Options.AutoApprove=i.Data.AutoApprove;n.Options.ReversePeriods=i.Data.ReversePeriods;n.Options.ViewCurrentMonth=i.Data.ViewCurrentMonth;u.setOptions(n.Options);var f=o.getDateOnly(new Date);n.Options.PeriodSelection!=s.getValue("PeriodSelectionTypeEnum","DayOnly")?n.getPeriods({EmployeeIdC:null,StartDate:new Date(f.getFullYear()-1,f.getMonth(),f.getDate(),0,0,0),EndDate:new Date(f.getFullYear()+1,f.getMonth(),f.getDate(),0,0,0)}).then(function(i){n.Periods=i;n.Periods!=null&&(n.Options.ReversePeriods&&n.Periods.reverse(),n.Options.ViewCurrentMonth||f.setMonth(f.getMonth()-1),t.$broadcast(s.getValue("RestrictionControllerEventEnum","PeriodsLoaded"),n.Periods,f))}):r(function(){t.$broadcast(s.getValue("RestrictionControllerEventEnum","PeriodsLoaded"),null,f);n.$broadcast(s.getValue("TransactionRecordingControllerEventEnum","DateFilterBroadcast"),f)},0)}});n.clearFlash=function(){flashService.clearAll()};n.init=function(){};n.getPeriods=function(n){var t=i.defer(),r=!n.EmployeeIdC;return i.all([r?c.getAll(n.StartDate,n.EndDate):c.getEmployeePeriods(n.EmployeeIdC,n.StartDate,n.EndDate),l.getAll(n.StartDate,n.EndDate)]).then(function(i){var u=i[0],s=i[1],l,o,h,c,v,r,e;for(u=u&&u.DataList&&u.DataList.length?u.DataList:[],s=s&&s.DataList&&s.DataList.length?s.DataList:[],u.sort(function(n,t){return n.StartDate<t.StartDate?-1:t.StartDate<n.StartDate?1:0}),r=0;r<u.length;r++)u[r].Name=a.getFormattedDate(u[r].StartDate)+" - "+a.getFormattedDate(u[r].EndDate);if(!n.EmployeeIdC){for(l=[],o=null,r=0;r<u.length;r++)h=u[r],o&&(o.StartDate.getTime()==h.StartDate.getTime()||o.EndDate.getTime()==h.EndDate.getTime())?o.References.push(h.RefIdC):(l.push(o=angular.copy(h)),o.ReferenceType=o.PeriodType,o.References=[o.RefIdC]);u=l}for(c={},v=[],r=0;r<s.length;r++)e={ID:s[r].IdC,ParentID:s[r].ParentIdC},e.ParentID?(e.Parent=c[e.ParentID],e.Parent&&(e.Parent.SubItems?e.Parent.SubItems.push(e):e.Parent.SubItems=[e])):v.push(e),c[e.ID]=e;f.setOrganisation({TopLevel:v,NodesByID:c,getSubNodes:function(n){var t=null,i=typeof n=="string"?c[n]:n,r,u;if(i&&i.SubItems)for(t=[],r=0;r<i.SubItems.length;r++)t.push(i.SubItems[r]),u=this.getSubNodes(i.SubItems[r]),u&&(t=t.concat(u));return t}});t.resolve(u)}),t.promise};n.$on(s.getValue("EmployeeControllerEventEnum","EmployeeSelected"),function(t,i){n.$broadcast(s.getValue("TransactionRecordingControllerEventEnum","EmployeeSelectedBroadcast"),i)});n.$on(s.getValue("RestrictionControllerEventEnum","DateFilterChange"),function(t,i){n.$broadcast(s.getValue("TransactionRecordingControllerEventEnum","DateFilterBroadcast"),i)});n.$on(s.getValue("RestrictionControllerEventEnum","PeriodChange"),function(t,i){n.$broadcast(s.getValue("TransactionRecordingControllerEventEnum","PeriodChangeBroadcast"),i)})}]);angular.module("TiimaApp").controller("transactionsController",["$scope","$rootScope","$window","$http","$q","$timeout","localizationService","toolsService","transactionRecordingService","tiimaEnumsService","restrictionService","datasourceService","formatService","hierarchyCacheService","initPageService","Transaction","ReasonCode","EmployeeRestrictionValue","Employee","Period","Organisation",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k,d,g){n.ReasonCodes=[];n.DataRows=[];n.SelectedRow=null;n.settings={dateType:h.getValue("PeriodSelectionTypeEnum","PeriodOnly"),selectedDate:o.getDateOnly(new Date)};n.restrictions=null;n.SelectedPeriod=null;n.SelectedEmployee=null;n.WorkingDay=null;n.ReasonCodeOrder={};n.ReasonCodeCache=null;n.Changed=!1;n.Valid=!1;n.ApprovePermission=!1;n.AutoApprove=!1;n.ShowDateSelection=!0;n.ShowDateTypeSelection=!1;n.CheckOptions={On:!1};n.ValidationErrors=[];n.TotalCount=0;n.PageSize=10;n.SelectedEmployee=null;n.Arguments={firstIndex:0,SortOrder:0,OrderByFieldIndex:0};n.restrictionArguments={};n.listFields=[{dataType:1,heading:"LIST_FIELDS.EMPLOYEENUMBER",name:"ID2","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,heading:"LIST_FIELDS.NAME",name:"Name","class":"listcellName",headingClass:"listcellName"},];n.loading=!1;n.data={periods:[]};n.organisation=null;n.Options={AutoApprove:!1,ViewCurrentMonth:!1,ReversePeriods:!1,PeriodSelection:h.getValue("PeriodSelectionTypeEnum","Both")};y.init("MVC/Workhours/Transactions/InitTransactionsRecordingPage","TRANSACTIONS.HEADER").then(function(i){if(i&&i.Data){n.Options.PeriodSelection=i.Data.PeriodSelection;c.setPeriodVisibility(n.Options.PeriodSelection!=h.getValue("PeriodSelectionTypeEnum","DayOnly"));n.Options.ApprovePermission=i.Data.ApprovePermission;n.Options.AutoApprove=i.Data.AutoApprove;n.Options.ReversePeriods=i.Data.ReversePeriods;n.Options.ViewCurrentMonth=i.Data.ViewCurrentMonth;s.setOptions(n.Options);var r=o.getDateOnly(new Date);n.Options.PeriodSelection!=h.getValue("PeriodSelectionTypeEnum","DayOnly")?n.getPeriods({EmployeeIdC:null,StartDate:new Date(r.getFullYear()-1,r.getMonth(),r.getDate(),0,0,0),EndDate:new Date(r.getFullYear()+1,r.getMonth(),r.getDate(),0,0,0)}).then(function(i){n.data.periods=i;n.data.periods!=null&&(n.Options.ReversePeriods&&n.data.periods.reverse(),n.Options.ViewCurrentMonth||r.setMonth(r.getMonth()-1),t.$broadcast(h.getValue("RestrictionControllerEventEnum","PeriodsLoaded"),n.data.periods,r),f(function(){var t=$("select.datePicker");t.length>0&&t.find("option").each(function(t,i){var r=$(i);r.attr("title",n.data.periods[t]?n.data.periods[t].Code:"")})},100))}):f(function(){t.$broadcast(h.getValue("RestrictionControllerEventEnum","PeriodsLoaded"),null,r);n.$broadcast(h.getValue("TransactionRecordingControllerEventEnum","DateFilterBroadcast"),r)},0)}});n.getPeriods=function(t){var i=u.defer(),r=!t.EmployeeIdC;return u.all([r?d.getAll(t.StartDate,t.EndDate):d.getEmployeePeriods(t.EmployeeIdC,t.StartDate,t.EndDate),g.getAll(t.StartDate,t.EndDate)]).then(function(r){var f=r[0],s=r[1],l,e,h,c,v,u,o;for(f=f&&f.DataList&&f.DataList.length?f.DataList:[],s=s&&s.DataList&&s.DataList.length?s.DataList:[],f.sort(function(n,t){return n.StartDate<t.StartDate?-1:t.StartDate<n.StartDate?1:0}),u=0;u<f.length;u++)f[u].Name=a.getFormattedDate(f[u].StartDate)+" - "+a.getFormattedDate(f[u].EndDate);if(!t.EmployeeIdC){for(l=[],e=null,u=0;u<f.length;u++)h=f[u],e&&e.StartDate.getTime()==h.StartDate.getTime()&&e.EndDate.getTime()==h.EndDate.getTime()?(e.References.push(h.RefIdC),h.Code&&(e.Code=e.Code?e.Code+", "+h.Code:h.Code)):(l.push(e=angular.copy(h)),e.ReferenceType=e.PeriodType,e.References=[e.RefIdC]);f=l}for(c={},v=[],u=0;u<s.length;u++)o={ID:s[u].IdC,ParentID:s[u].ParentIdC},o.ParentID?(o.Parent=c[o.ParentID],o.Parent&&(o.Parent.SubItems?o.Parent.SubItems.push(o):o.Parent.SubItems=[o])):v.push(o),c[o.ID]=o;n.organisation={TopLevel:v,NodesByID:c,getSubNodes:function(n){var t=null,i=typeof n=="string"?c[n]:n,r,u;if(i&&i.SubItems)for(t=[],r=0;r<i.SubItems.length;r++)t.push(i.SubItems[r]),u=this.getSubNodes(i.SubItems[r]),u&&(t=t.concat(u));return t}};i.resolve(f)}),i.promise};n.getRestrictionValues=function(n){var t=u.defer();return b.getAll({query:n.SearchFilter}).then(function(n){var i,r;if(n&&n.DataList){for(i=0;i<n.DataList.length;i++)r=n.DataList[i],r.TypeName.substring(0,8)=="GENERAL_"&&(r.TypeName=e.getText(r.TypeName));t.resolve(n)}else t.resolve(null)}),t.promise};var nt=function(t){var r,a,f,l;t&&(n.Arguments=t);var p=n.Arguments.firstIndex,t={FirstIndex:p,ItemCount:n.PageSize,SortOrder:n.Arguments.SortOrder,OrderByFieldIndex:n.Arguments.OrderByFieldIndex,EmploymentData:!0,Items:[]},e=null,o=null,u=null;if(n.SelectedPeriod){if(t.StartDate=n.SelectedPeriod.StartDate,t.EndDate=n.SelectedPeriod.EndDate,e=Number(n.SelectedPeriod.ReferenceType),r=null,e<h.getValue("PeriodTypeEnum","MonthPeriods"))for(a=h.getValue("AbsenceQueryParameterTypeEnum","Organisation"),e==h.getValue("PeriodTypeEnum","OrganisationPeriods")?r=u={}:(r=o={},a=h.getValue("AbsenceQueryParameterTypeEnum","PaymentGroup")),f=0;f<n.SelectedPeriod.References.length;f++)r[n.SelectedPeriod.References[f]]=!0}else t.Date=n.settings.selectedDate;var w=n.restrictions,i=null,s=n.organisation;_.forEach(w,function(n){var l=c.convertRestrictionParameterType(n.RestrictionType),a=!1,f,e,r;if(l==h.getValue("AbsenceQueryParameterTypeEnum","Organisation")&&u){if(a=!0,i||(i={}),f=[n.IdC],n.SubLevels&&s&&s.getSubNodes&&(e=s.getSubNodes(n.IdC),e))for(r=0;r<e.length;r++)f.push(e[r].IdC);for(r=0;r<f.length;r++)i[f[r]]=!0}else l==h.getValue("AbsenceQueryParameterTypeEnum","PaymentGroup")&&o&&(a=!0,i||(i={}),i[n.IdC]=!0);a||t.Items.push({Type:l,DataType:h.getValue("AbsenceQueryParameterValueType","ID"),IdCValue:n.IdC,SubLevels:n.SubLevels})});var v=u?h.getValue("AbsenceQueryParameterTypeEnum","Organisation"):h.getValue("AbsenceQueryParameterTypeEnum","PaymentGroup"),r=u?u:o,y=!1;if(r){for(l in r)(i==null||i[l])&&(t.Items.push({Type:v,DataType:h.getValue("AbsenceQueryParameterValueType","ID"),IdCValue:l,SubLevels:!1}),y=!0);y||t.Items.push({Type:v,DataType:h.getValue("AbsenceQueryParameterValueType","ID"),IdCValue:-1,SubLevels:!1})}return k.getAll(t)};n.employeeDataSource=l.createDatasource({method:function(n){return nt(n)}});c.setDataSource(n.getRestrictionValues);n.callbackToken=c.registerCallback(n.restrictionsChanged=function(t){n.settings.selectedDate=t.date;n.restrictions=t.restrictions;n.restrictionArguments.Items=angular.copy(n.restrictions);n.$broadcast("ui-pagedlist-update")});n.$on("period-selected",function(t,i){n.SelectedPeriod=i;n.SelectedPeriod&&n.updateTransactionsForPeriod(n.SelectedPeriod)});n.employeeSelected=function(t){var i,r,u;n.SelectedEmployee=t;n.setEmploymentData(t);
1i=n.settings.selectedDate;n.settings.dateType==h.getValue("PeriodSelectionTypeEnum","PeriodOnly")&&n.SelectedPeriod&&n.SelectedPeriod.StartDate.getTime()!=i.getTime()&&(i=new Date(n.SelectedPeriod.StartDate.getTime()),t.EmploymentData&&t.EmploymentData.length>0&&(r=t.EmploymentData[0],u=o.getDateDifference(r.StartDate,n.SelectedPeriod.StartDate),u&&u.negative&&(i=new Date(r.StartDate.getTime()))));n.getTransactions(i,i,n.SelectedEmployee.IdC)};n.selectEmploymentData=function(t){if(n.SelectedEmploymentData=t,n.SelectedPeriod){var i=n.SelectedPeriod.StartDate,r=n.SelectedPeriod.EndDate;n.SelectedEmploymentData.StartDate&&n.SelectedEmploymentData.StartDate>i&&(i=n.SelectedEmploymentData.StartDate);r||(r=i);n.updateTransactionsForPeriod({StartDate:i,EndDate:r})}};n.updateTransactionsForPeriod=function(t){var i=t.StartDate,r=t.EndDate;r||(r=i);n.settings.selectedDate=new Date(i.getTime());i&&n.SelectedEmployee!=null&&n.getTransactions(i,r,n.SelectedEmployee.IdC)};n.setEmploymentData=function(t){var u=n.SelectedEmploymentData,r,i;if(n.SelectedEmploymentData=null,t&&t.EmploymentData&&t.EmploymentData.length){var f=t.EmploymentData[0],e=null,o=[];for(r=0;r<t.EmploymentData.length;r++)i=t.EmploymentData[r],i.StartDate&&(i.StartDate=a.parseISODateTime(i.StartDate)),i.EndDate&&(i.EndDate=a.parseISODateTime(i.EndDate)),e!=i.PersonnelGroupIdC&&o.push(i),u&&u.StartDate.getTime()==i.StartDate.getTime()&&(f=i),e=i.PersonnelGroupIdC;t.EmploymentData=o;n.SelectedEmploymentData=f}};n.$watch("settings.dateType",function(t,i){t!==i&&n.changeDateType(n.settings.dateType)});n.$watch("settings.selectedDate",function(t,i){t!==i&&n.changeDate(n.settings.selectedDate)});n.changeDateType=function(t){var i=null,r=null;t==h.getValue("PeriodSelectionTypeEnum","PeriodOnly")?n.SelectedPeriod&&(i=n.SelectedPeriod.StartDate,r=n.SelectedPeriod.EndDate):i=n.settings.selectedDate;r||(r=i);i&&n.SelectedEmployee&&n.getTransactions(i,r,n.SelectedEmployee.IdC)};n.changeDate=function(t){t&&t.getTime&&n.SelectedEmployee&&n.getTransactions(t,t,n.SelectedEmployee.IdC)};n.valueChanged=function(t){var r=Number(t.Value),i=r!=Number(t.OriginalValue);t.Changed=i;t.ValueChanged=i;i&&(n.Changed=!0)};n.percentageChanged=function(t){t.Changed=!0;n.Changed=!0};n.save=function(t){n.loading=!0;f(function(){var u,f,e,s,r,o,c;if(n.Valid=n.validate(),!n.Valid){n.loading=!1;return}if(u=t?n.getSaveArgs(h.getValue("TransactionStatusEnum","Accepted")):n.getSaveArgs(),n.DataRows&&n.DataRows.length)for(r=0;r<n.DataRows.length;r++)if(f=n.DataRows[r],f.Changed){if(e={IdC:typeof f.IdC=="string"?f.IdC:null,ReasonCodeIdC:f.ReasonCodeIdC,Deleted:!1,Changed:!0},n.ReasonCodes&&n.ReasonCodes.length)for(r=0;r<n.ReasonCodes.length;r++)if(s=n.ReasonCodes[r],s.IdC==f.ReasonCodeIdC){e.ReasonCodeDataType=s.DataType;break}e.Hours=Number(f.Value);e.Hours||(e.Deleted=!0);u.Stamps.push(e)}if(u.Stamps&&u.Stamps.length)for(r=0;r<u.Stamps.length;r++)o=u.Stamps[r],o.StartDate=new Date(u.StartDate.getTime()),c=i.moment(u.StartDate.getTime()),c.add(o.Hours,"h"),o.EndDate=c.toDate();n._saveData(u)},0)};n.saveAndApprove=function(){n.save(!0)};n.approve=function(){n._saveData(n.getSaveArgs(h.getValue("TransactionStatusEnum","Accepted")))};n.cancel=function(){var t=u.defer();o.confirm([{pageID:"TRANSACTIONS",textID:"CONFIRMATION_HEADING_CANCEL_APPROVE"},{pageID:"TRANSACTIONS",textID:"CONFIRMATION_MESSAGE_CANCEL_APPROVE"}],null,function(){t.resolve()},function(){t.reject()});t.promise.then(function(){n._saveData(n.getSaveArgs(h.getValue("TransactionStatusEnum","NotAccepted")))})};n.getTransactions=function(t,i,r){n.loading=!0;p.getAll({StartDate:t,EndDate:i,EmployeeIdC:r}).then(function(i){var u=i&&i.Data?i.Data:null;u.Employee&&u.Employee.EmploymentData?(n.SelectedEmployee.Disabled=!1,n.SelectedEmployee.EmploymentData=angular.copy(u.Employee.EmploymentData),n.setEmploymentData(n.SelectedEmployee),n.SelectedEmploymentData!=null&&n.SelectedEmploymentData.StartDate&&n.SelectedEmploymentData.StartDate>t&&(t=n.SelectedEmploymentData.StartDate)):(n.SelectedEmployee.Disabled=!0,i=null);n.getReasonCodes(r,t).then(function(){n.setData(u);n.mainForm.$setPristine()});n.loading=!1})};n.getReasonCodes=function(t,i){var r=u.defer();return n.ReasonCodeCache&&t==n.ReasonCodeCache.employeeIdC&&i.getTime()==n.ReasonCodeCache.date?(r.resolve(n.ReasonCodeCache.data),r.promise):(n.ReasonCodeCache={employeeIdC:t,date:i.getTime(),data:null},w.getAllForTransactions({StartDate:i,EndDate:i,EmployeeIdC:t}).then(function(t){var e=n.ReasonCodeCache.data=t&&t.DataList?t.DataList:[],f,u,i;if(e&&e.length)for(i=0;i<e.length;i++)f=e[i],u=[f.Ordinal,f.ReasonCodeName],f.Ordinal>0?(u[0]="000000000"+u[0],u[0]=u[0].substring(u[0].length-10)):u[0]="z",Number(f.DataType)==h.getValue("ReasonCodeDataTypeEnum","None")&&(f.DataType=h.getValue("ReasonCodeDataTypeEnum","Hours")),f._orderField=u.join("_");if(n.ReasonCodes=e.sort(function(n,t){return n._orderField<t._orderField?-1:n._orderField>t._orderField?1:0}),n.ReasonCodeOrder={},n.ReasonCodes&&n.ReasonCodes.length)for(i=0;i<n.ReasonCodes.length;i++)n.ReasonCodes[i].UnitName=n.getReasonCodeDataTypeLabel(n.ReasonCodes[i].DataType),n.ReasonCodeOrder[
1n.ReasonCodes[i].IdC]=i;r.resolve(e)}),r.promise)};n.initData=function(){var t;if(n.DataRows=[],n.WorkingDay=null,n.ReasonCodes&&n.ReasonCodes.length)for(t=0;t<n.ReasonCodes.length;t++){var u={IdC:o.getNewID(),ReasonCodeIdC:n.ReasonCodes[t].IdC,ReasonCodeCode:n.ReasonCodes[t].Code,ReasonCodeName:n.ReasonCodes[t].ReasonCodeName,ReasonCodeUnit:n.ReasonCodes[t].UnitName,ReasonCodeDataType:n.ReasonCodes[t].DataType,Value:0,OriginalValue:0,Valid:!0,Changed:!1,ValueChanged:!1,FieldName:"field_"+t},i=null,f=(n.SelectedPeriod?o.getDateDifference(n.SelectedPeriod.EndDate,n.SelectedPeriod.StartDate):{days:1}).days,r={None:h.getValue("ReasonCodeDataTypeEnum","None"),Hours:h.getValue("ReasonCodeDataTypeEnum","Hours"),Days:h.getValue("ReasonCodeDataTypeEnum","Days"),Units:h.getValue("ReasonCodeDataTypeEnum","Units"),Euros:h.getValue("ReasonCodeDataTypeEnum","Euros")};switch(Number(n.ReasonCodes[t].DataType)){case r.None:case r.Hours:i={min:0,max:f*24};break;case r.Days:i={min:0,max:f};break;case r.Units:i={min:0,max:1e4};break;case r.Euros:i={min:0,max:1e4}}i&&(u.MinValue=i.min,u.MaxValue=i.max);n.DataRows.push(u)}n.Changed=!1};n.setData=function(t){var e,r,u,f,i;if(n.initData(),t&&(t.Processed=t.ProcessingLocks&&t.ProcessingLocks!=64||t.StampProcessingLocks&&t.StampProcessingLocks!=64,n.WorkingDay=t,n.WorkingDay.Stamps))for(e={},r=0;r<n.WorkingDay.Stamps.length;r++)(u=n.WorkingDay.Stamps[r],f=n.ReasonCodeOrder[u.ReasonCodeIdC],angular.isUndefined(f))||(i=n.DataRows[f],i)&&(i.Value+=u.Hours,i.OriginalValue=i.Value,i.Changed=!1,i.ValueChanged=!1,angular.isNumber(i.IdC)&&(i.IdC=u.IdC))};n.validate=function(){var i=!0,t,c,u,f,r,l,s;if(n.ValidationErrors=[],t=[],c={},n.CheckOptions.On)for(u=1;u<=3;u++)f=n.CheckOptions["ReasonCode"+u],f&&(c[f]=t.length,t.push(0));if(n.CheckOptions.On&&(r=!0,t.length==3?r=t[0]-n.CheckOptions.Constant>t[1]+t[2]:t.length==2&&(r=t[0]-n.CheckOptions.Constant>t[1]),r||n.ValidationErrors.push(n.CheckOptions.ErrorMessage),i=i&&r),n.settings.dateType==h.getValue("PeriodSelectionTypeEnum","DayOnly")&&n.SelectedEmployee.EmploymentData&&n.SelectedEmployee.EmploymentData.length>0)if(l=n.SelectedEmployee.EmploymentData[0],s=o.getDateDifference(l.StartDate,n.settings.selectedDate),s&&s.negative)n.ValidationErrors.push(e.getText("TRANSACTIONS.VALIDATION_ERROR_DATE")),i=!1;else if(n.SelectedEmployee.EmploymentData.length>0){var v=n.SelectedEmployee.EmploymentData.length-1,y=n.SelectedEmployee.EmploymentData[v],a=o.getDateDifference(n.settings.selectedDate,y.EndDate);a&&a.negative&&(n.ValidationErrors.push(e.getText("TRANSACTIONS.VALIDATION_ERROR_DATE")),i=!1)}return i};n.getSaveArgs=function(t){var u=n.settings.dateType==h.getValue("PeriodSelectionTypeEnum","DayOnly")?n.settings.selectedDate:n.SelectedPeriod.StartDate,f,e,i,r;return n.settings.dateType==h.getValue("PeriodSelectionTypeEnum","PeriodOnly")&&n.SelectedEmployee.EmploymentData&&n.SelectedEmployee.EmploymentData.length>0&&(f=n.SelectedEmployee.EmploymentData[0],e=o.getDateDifference(f.StartDate,u),e&&e.negative&&(u=new Date(f.StartDate.getTime()))),i={EmployeeIdC:n.SelectedEmployee.IdC,StartDate:u,EndDate:n.settings.dateType==h.getValue("PeriodSelectionTypeEnum","DayOnly")?n.settings.selectedDate:n.SelectedPeriod.EndDate,Stamps:[]},angular.isUndefined(t)||(i.Status=t),n.SelectedEmployee&&n.SelectedEmploymentData&&(r=n.SelectedEmploymentData.StartDate,r&&r.getTime()>i.StartDate.getTime()&&(i.StartDate=r)),i};n.getReasonCodeDataTypeLabel=function(n){var t="REASONCODE_",i=h.getEnum("ReasonCodeDataTypeEnum");for(var r in i)if(i[r]==n){t+=String(r).toUpperCase();break}return e.getText("TRANSACTIONS."+t)};n._saveData=function(t){p.save(t).then(function(t){if(t){t.Status==h.getValue("OperationReturnValue","Success")&&(n.setData(t.Data),t.Messages||(t.Messages=e.getText("GLOBAL.SUCCESS_SAVE")));var i=t.Status==h.getValue("OperationReturnValue","Success");o.showSplash(t.Messages,i?"okMessage":"errorMessage");i&&f(function(){n.mainForm.$setPristine()});n.loading=!1}else n.loading=!1})};n.$on("$destroy",function(){c.removeCallback(n.callbackToken)})}]);angular.module("TiimaApp").controller("workhoursController",["$scope","$rootScope","$q","$http","$timeout","$uibModal","workhoursService","workhourSettingsService","workhoursCacheService","employeeService","restrictionService","toolsService","localizationService","tiimaEnumsService","initPageService","settingService","Period","Employee","Organisation","EmployeeRestrictionValue","formatService",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k,d,g){n.periods=[];n.dimensions=[];n.employees=[];n.reasonCodes=[];n.paginateEmployees=!0;n.readOnly=!0;n.allowRemove=!1;n.storageKeys={settings:"$Tiima.WorkhoursX.Settings"};n.viewTypes=[{number:1,template:"MVC/ScriptsApp/directives/workhours/workhoursDaysVerticalTemplate.html"},{number:2,template:"MVC/ScriptsApp/directives/workhours/workhoursWeekEditorTemplate.html"}];n.selectedViewType=0;n.selectedEmployee=null;n.permissions={generalSettingsPermission:!1,userSettingsPermission:!1,employeeInformation:!1,processingInformation:!1};n.settings={};n.options={Cached:!1};n.visibilityOptions={Restrictions:!0,EmployeeSelection:!1,EmployeeInformation:!1,TablePriority:0,ShowBalance:!0,HideProcessingResultsSum:!1,HideProcessingResultsRoundedSum:!1,ShowHiddenDimensions:!1,columnWidth:1};n.enablePreviousPeriodSelection=!0;var nt=i.defer();h.setExtraArguments({GetInformationForWorkHours:!0,parameterDefer:nt.promise});n.$watch("visibilityOptions.columnWidth",function(t,i){i!=t&&(n.storeSettings(),u(function(){n.$apply(function(){e.setDimensionColumnWidth(t);e.updateScrollerWidth()})}))});n.getWorkHoursTemplate=function(){return n.viewTypes[n.selectedViewType].template};n.editSettings=function(t){var r=i.defer(),u=f.open({templateUrl:"MVC/Modals/Workhours/workhourSettingsEditor.html",controller:"workhourSettingsEditorModalController",backdrop:"static",windowClass:"workhourSettingsEditor",resolve:{date:function(){return t?t:new Date},permissions:function(){return{user:n.permissions.userSettingsPermission,general:n.permissions.generalSettingsPermission}}}});return u.result.then(function(t){t&&(n.settings=o.resolveSettings(t),e.setSettings(n.settings),r.resolve(t))}),r.promise};
1y.init("MVC/Workhours/Workhours/InitWorkhoursPage","WORKHOURSX.HEADER").then(function(t){if(t&&t.Data){n.options.Cached=t.Data.Cache?!0:!1;t.Data.Permissions&&(n.permissions={generalSettingsPermission:t.Data.Permissions.GeneralSettings||!1,userSettingsPermission:t.Data.Permissions.UserSettings||!1,acceptPermission:t.Data.Permissions.Accept||!1,employeeInformation:t.Data.Permissions.EmployeeInformation||!1,processingInformation:t.Data.Permissions.ProcessingInformation||!1,otherEmployeeWorkhours:t.Data.Permissions.OtherEmployeeWorkhours||!1,otherEmployeeWorkhoursWrite:t.Data.Permissions.OtherEmployeeWorkhoursWrite||!1,otherEmployeeWorkhoursRemove:t.Data.Permissions.OtherEmployeeWorkhoursRemove||!1,workhoursWrite:t.Data.Permissions.WorkhoursWrite||!1,workhoursRemove:t.Data.Permissions.WorkhoursRemove||!1,processingOnLocking:t.Data.Permissions.ProcessingOnLocking||!1,swapShifts:t.Data.Permissions.SwapShifts||!1,acceptTravelClaims:t.Data.Permissions.AcceptTravelClaims||!1,allowEditAcceptedAbsences:t.Data.Permissions.AllowEditAcceptedAbsences||!1});n.permissions.$acceptPermission=n.permissions.acceptPermission;n.retrieveSettings();(n.permissions.generalSettingsPermission||n.permissions.userSettingsPermission)&&y.setSettingFunction(function(){n.editSettings()});t.Data.GeneralSettings&&(t.Data.GeneralSettings.StatusColors&&e.setStatusColors(t.Data.GeneralSettings.StatusColors),n.visibilityOptions.ShowBalance=t.Data.GeneralSettings.ShowBalance||!1,n.visibilityOptions.HideProcessingResultsSum=t.Data.GeneralSettings.HideProcessingResultsSum||!1,n.visibilityOptions.HideProcessingResultsVacationYear=!(p.getSetting("PROC_TRANSF_VAC_YEAR")||!1),n.visibilityOptions.HideProcessingResultsRoundedSum=t.Data.GeneralSettings.HideProcessingResultsRoundedSum||!1,n.visibilityOptions.EmployeeSelection=n.permissions.otherEmployeeWorkhours||!1,t.Data.GeneralSettings.DefaultReasonCode&&e.setDefaultReasonCode(t.Data.GeneralSettings.DefaultReasonCode));e.setPermissions(n.permissions);e.setOptions(n.options);e.setCheckEmployeeLock(!0);e.setCheckPersonnelGroupReasonCode(!0);var i=l.getDateOnly(new Date);t.Data.Settings&&(console.log("InitWorkhoursPage -> settings found"),n.settings=o.resolveSettings(t.Data.Settings),e.setSettings(n.settings),n.selectedViewType=Number(n.settings.ViewType)-1,(n.selectedViewType<0||n.selectedViewType>=n.viewTypes.length)&&(n.selectedViewType=0));t.Data.Cache&&n.setCacheData(t.Data.Cache);u(function(){nt.resolve()})}});n.clearFlash=function(){flashService.clearAll()};n.storeSettings=function(){var t={visibilityOptions:{columnWidth:n.visibilityOptions.columnWidth}};angular.isUndefined(localStorage)||localStorage.setItem(n.storageKeys.settings,JSON.stringify(t))};n.retrieveSettings=function(){var t=null,i;angular.isUndefined(localStorage)||(i=localStorage.getItem(n.storageKeys.settings),t=JSON.parse(i));t&&t.visibilityOptions&&(n.visibilityOptions.columnWidth=t.visibilityOptions.columnWidth?t.visibilityOptions.columnWidth:1)};c.setDataSource(n.getRestrictionValues=function(n){var t=i.defer();return d.getAll({query:n.SearchFilter}).then(function(n){var i,r;if(n&&n.DataList){for(i=0;i<n.DataList.length;i++)r=n.DataList[i],r.TypeName.substring(0,8)=="GENERAL_"&&(r.TypeName=a.getText(r.TypeName));t.resolve(n)}else t.resolve(null)}),t.promise});n.refreshCacheData=function(t){var u=i.defer();return l.handleHttpPost(r.post("MVC/Workhours/Workhours/RefreshCache",t),function(t){t.Data&&t.Data.Cache&&n.setCacheData(t.Data.Cache);u.resolve()},u),u.promise};n.setCacheData=function(t){var r,i,u;if(e.setCacheData(t),n.periods=t.Periods,n.dimensions=t.Dimensions,n.reasonCodes=t.ReasonCodes,n.periods&&n.periods.length)for(r=0;r<n.periods.length;r++)i=n.periods[r],i.StartDate&&(i.StartDate=g.parseISODateTime(i.StartDate)),i.EndDate&&(i.EndDate=g.parseISODateTime(i.EndDate));n.columnReasonCodes=[];n.otherReasonCodes=[];s.setCacheData(n.dimensions,"dimensions");s.setCacheData(n.reasonCodes,"reasonCodes");
1u=n.periods&&n.periods.length?n.periods[0]:{StartDate:new Date,EndDate:new Date};n.selectedPeriod=e.preparePeriod(u);n.permissions.otherEmployeeWorkhours||h.disableRestrictions()};n.getDimensions=function(n){return e.getDimensions(n)};n.getPeriods=function(n){var t=i.defer(),r=n.EmployeeID!=null&&!angular.isUndefined(n.EmployeeID);return i.all([r?w.getAll(n.StartDate,n.EndDate):w.getEmployeePeriods(n.EmployeeID,n.StartDate,n.EndDate),k.getAll(n.StartDate,n.EndDate)]).then(function(i){var u=i[0],o=i[1],l,e,s,c,a,r,f;for(u=u&&u.DataList&&u.DataList.length?u.DataList:[],o=o&&o.DataList&&o.DataList.length?o.DataList:[],u.sort(function(n,t){return n.StartDate<t.StartDate?-1:t.StartDate<n.StartDate?1:0}),r=0;r<u.length;r++)u[r].Name=g.getFormattedDate(u[r].StartDate)+" - "+g.getFormattedDate(u[r].EndDate);if(!n.EmployeeID){for(l=[],e=null,r=0;r<u.length;r++)s=u[r],e&&(e.StartDate.getTime()==s.StartDate.getTime()||e.EndDate.getTime()==s.EndDate.getTime())?e.References.push(s.RefID):(l.push(e=angular.copy(s)),e.ReferenceType=e.PeriodType,e.References=[e.RefID]);u=l}for(c={},a=[],r=0;r<o.length;r++)f={ID:o[r].IdC,ParentID:o[r].ParentIdC},f.ParentID?(f.Parent=c[f.ParentID],f.Parent&&(f.Parent.SubItems?f.Parent.SubItems.push(f):f.Parent.SubItems=[f])):a.push(f),c[f.ID]=f;h.setOrganisation({TopLevel:a,NodesByID:c,getSubNodes:function(n){var t=null,i=typeof n=="string"?c[n]:n,r,u;if(i&&i.SubItems)for(t=[],r=0;r<i.SubItems.length;r++)t.push(i.SubItems[r]),u=this.getSubNodes(i.SubItems[r]),u&&(t=t.concat(u));return t}});t.resolve(u)}),t.promise};n.$on("workhourSettingsChanged",function(t,i,r){if(console.log("workhoursController.workhourSettingsChanged"),o.hasViewTypeChanged(r,i)){var f=Number(i.ViewType);u(function(){n.selectedViewType=f-1;n.$apply()})}});n.employeeListUpdated=function(t){if(t){var i=h.getFilterDate(),r=l.getMonthDateRange(i);r.FilterDate=i;_.forEach(t,function(n){e.updateEmployeeStatus(n,null,r)});t.length&&!n.permissions.otherEmployeeWorkhours&&n.employeeSelected(t[0])}};n.employeeSelected=function(t){n.selectedEmployee=t;e.setSelectedEmployee(t).then(function(){n.permissions.acceptPermission=t.CurrentEmployee?!1:n.permissions.$acceptPermission;var i=n.periods&&n.periods.length?n.periods[0]:{StartDate:new Date,EndDate:new Date};n.selectedPeriod=e.preparePeriod(i);n.readOnly=!(t.CurrentEmployee?n.permissions.workhoursWrite:n.permissions.otherEmployeeWorkhoursWrite);n.allowRemove=t.CurrentEmployee?n.permissions.workhoursRemove:n.permissions.otherEmployeeWorkhoursRemove;u(function(){n.$broadcast(v.getValue("TransactionRecordingControllerEventEnum","EmployeeSelectedBroadcast"),t)})})};n.dateChanged=function(t){var i,r,u;t&&t.start&&(i=t.start,r=new Date(i.getTime()),r.setDate(i.getDate()+1),u=(new Date).getTime(),n.enablePreviousPeriodSelection=i.getTime()<=u&&u<=r.getTime())}}]);angular.module("TiimaApp").constant("WORKHOURS_CACHE_DATASETS",{COLUMN_REASONCODES:"$_ColumnReasonCodes",OTHER_REASONCODES:"$_OtherReasonCodes",COLUMN_AND_OTHER_REASONCODES:"$_ColumnAndOtherReasonCodes",DIMENSIONS:"$_Dimensions",HOLIDAYS:"$_Holidays",PLANS:"$_Plans",DEFAULTS:"$_Defaults",BALANCES:"$_Balances",PERIODS:"$_Periods",SETTINGS:"$_Settings",SELECTIONFLAGS:"$_SelectionFlags",REMOVED_ROWS:"$_RemovedRows",OPERATION_DIRECTIONS:"$_OperationDirectionx",SCROLL:"$_Scroll"}).controller("workhoursDataController",["$scope","$element","$rootScope","$window","$q","$timeout","workhoursService","workhoursCacheService","employeeService","restrictionService","toolsService","localizationService","tiimaEnumsService","initPageService","workhourSettingsService","formatService","datasourceService","WORKHOURS_CACHE_DATASETS","Period","Workhour","Organisation","SalaryEventSummary","ProcessingInfo",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k,d,g,nt){n.scroll={x:0,y:0,width:0};n.specialCellIndexes={description:9999};n.windowWidth=0;n.windowHeight=0;n.buttons={showMore:!1,index:0,offset:0,invisibleItems:null,visibleItems:null};n.dimensions=[];n.columnReasonCodes=[];n.otherReasonCodes=[];n.hiddenDimensions=!1;n.columnAndOtherReasonCodes=[];n.selectedEmployee=null;n.employmentEndDate=null;n.balances=null;n.selectedPeriod={Text:"",SelectedWeek:-1};
1n.processingPeriod=null;n.processingData=null;n.processingDataColumns=null;n.defaults=null;n.plans=null;n.holidays={};n.periods=[];n.employmentData=null;n.loading=!1;n.saving=!1;n.processingDataLoading=!1;n.pristine=!0;n.arrowKeysOff=!1;n.employeeInfo=null;n.employeeInformationFields=null;n.employeeInformationRows=null;n.Changed=!1;n.removedRows=[];n.settings={};n.dimensionItemTemplate="{{Code}} {{{localized:Name}}";n.dimensionItemSearchResultTemplate="<div class='listcellCode'>{{Code}}<\/div><div class='listcellName'>{{DimensionItemName}}<\/div>";n.autoCompeleteMenuWidth="auto";n.dimensionItemListTemplate="{{Code}} {{localized:Name}}";n.reasonCodeTemplate="{{Code}} {{localized:Name}} {{BalanceText}}";n.reasonCodeSearchResultTemplate="<div class='listcellCode'>{{Code}}<\/div><div class='listcellName'>{{ReasonCodeName}} {{BalanceText}}<\/div>";n.reasonCodeListTemplate="{{Code}} {{localized:Name}}";n.listFields=[{dataType:1,heading:"LIST_FIELDS.CODE",name:"Code","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,"default":!0,heading:"LIST_FIELDS.NAME",name:"Name",localize:!0,"class":"listcellName",headingClass:"listcellName"}];n.reasonCodeListFields=[{dataType:1,heading:"LIST_FIELDS.CODE",name:"Code","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,"default":!0,heading:"LIST_FIELDS.NAME",name:"Name",localize:!0,"class":"listcellShortName",headingClass:"listcellShortName"},{dataType:1,heading:"LIST_FIELDS.BALANCE",name:"BalanceText","class":"listcellLongCode",headingClass:"listcellLongCode"}];n.autoSaveTimeout=null;n.processingResultTimeout=null;n.operationDirections={days:!1,rows:!1};n.selectionFlags={rowsSelected:!1,notAcceptedRowsSelected:!1,acceptedRowsSelected:!1,notLockedRowsSelected:!1,lockedRowsSelected:!1,daysSelected:!1,notAcceptedDaysSelected:!1,acceptedDaysSelected:!1,notLockedDaysSelected:!1,lockedDaysSelected:!1};n.processingDataScroll={x:0,y:0,width:0};n.initialize=function(){console.log("workhoursDataController.initialize");var t=e.getDataFromTemporaryCache(b.SETTINGS);t&&(console.log("workhoursDataController.initialize -> applying settings"),n.applySettings(t))};var tt=function(t,i){t!=i&&n.updateButtonVisibility()};n.$watch("windowWidth",tt);n.$watch("selectionFlags.rowsSelected",tt);n.$watch("selectionFlags.daysSelected",tt);n.toggleButtonArea=function(){var t;if(n.buttons.showMore){if(n.buttons.index=1-n.buttons.index,n.buttons.invisibleItems)for(t=0;t<n.buttons.invisibleItems.length;t++)n.buttons.index?n.buttons.invisibleItems[t].css("display","block"):n.buttons.invisibleItems[t].css("display","none");if(n.buttons.visibleItems)for(t=0;t<n.buttons.visibleItems.length;t++)n.buttons.index?n.buttons.visibleItems[t].css("display","none"):n.buttons.visibleItems[t].css("display","block");f(function(){n.$apply()})}};e.setSetPristineCallback(n.setPristine=function(t){n.pristine=t});e.setGetPristineCallback(n.getPristine=function(){return n.pristine});e.setSetChangedCallback(n.setChanged=function(t){n.Changed=t});e.setGetChangedCallback(n.getChanged=function(){return n.Changed});n.preserveTemporaryCache=function(){var t={};t[b.COLUMN_REASONCODES]=n.columnReasonCodes;t[b.OTHER_REASONCODES]=n.otherReasonCodes;t[b.COLUMN_AND_OTHER_REASONCODES]=n.columnAndOtherReasonCodes;t[b.DIMENSIONS]=n.dimensions;t[b.HOLIDAYS]=n.holidays;t[b.PLANS]=n.plans;t[b.DEFAULTS]=n.defaults;t[b.BALANCES]=n.balances;t[b.PERIODS]=n.periods;t[b.SETTINGS]=n.settings;t[b.SELECTIONFLAGS]=n.selectionFlags;t[b.REMOVED_ROWS]=n.removedRows;t[b.OPERATION_DIRECTIONS]=n.operationDirections;t[b.SCROLL]=n.scroll;e.setTemporaryDataCache(t)};n.clearTemporaryCache=function(){var t={};t[b.COLUMN_REASONCODES]=n.columnReasonCodes;t[b.OTHER_REASONCODES]=n.otherReasonCodes;t[b.COLUMN_AND_OTHER_REASONCODES]=n.columnAndOtherReasonCodes;t[b.DIMENSIONS]=n.dimensions;t[b.SETTINGS]=n.settings;t[b.OPERATION_DIRECTIONS]=n.operationDirections;t[b.SCROLL]=n.scroll;e.setTemporaryDataCache(t)};n.toggleHiddenDimensions=function(){n.visibilityOptions.ShowHiddenDimensions=!n.visibilityOptions.ShowHiddenDimensions;e.updateScrollerWidth()};n.updateButtonVisibility=function(){f(function(){var r=$(".buttons"),o,t,l;if(r.length){var v=r.height(),u=!1,h=r.children(),f=0,c=r.innerWidth(),a=$(".moreButton",r),i=[],e=[],s=0;for(o=0;o<h.length-1;o++)(t=$(h.get(o)),t.hasClass("ng-hide"))||(t.css("display",""),t.show(),l=f,f+=t.outerWidth(!0),f>c?(s||(s=l),u=!0,i.push(t),t.hide()):e.push(t));u&&i.length==1&&f<=c+a.outerWidth()&&(u=!1,i=[]);i.length||(i=null);e.length||(e=null);n.buttons.invisibleItems=i;n.buttons.visibleItems=e;n.buttons.showMore=u;n.buttons.index=0;n.buttons.offset=s}n.$apply()})};n.getDimensionItems=function(t){var r=t.selectedRow&&t.selectedRow.Date?new Date(t.selectedRow.Date.getTime()):new Date(n.selectedPeriod.StartDate.getTime()),i;return t.selectedRow&&t.selectedRow.Date?t.DateRange={StartDate:new Date(t.selectedRow.Date.getTime()),EndDate:new Date(t.selectedRow.Date.getTime()+86399e3)}:n.selectedPeriod&&(angular.isNumber(n.selectedPeriod.SelectedWeek)&&n.selectedPeriod.weeks&&(i=n.selectedPeriod.weeks[n.selectedPeriod.SelectedWeek],i&&(t.DateRange={StartDate:new Date(i.startDate.getTime()),EndDate:new Date(i.endDate.getTime())})),t.DateRange||(t.DateRange={StartDate:new Date(n.selectedPeriod.StartDate.getTime()),EndDate:new Date(n.selectedPeriod.EndDate.getTime())})),t.OrganisationIdCList=e.findOrganisationIdCList(n.selectedEmployee,r),t.GetDefaultDimensionItems=!0,delete t.selectedRow,e.getDimensionItems(t)};n.getReasonCodes=function(t){var i,r;return n.selectedPeriod&&(n.selectedPeriod.SelectedWeek&&n.selectedPeriod.weeks?(i=n.selectedPeriod.weeks[n.selectedPeriod.SelectedWeek],i?(i.reasonCodeUsage&&(t.Usage=i.reasonCodeUsage),t.DateRange={StartDate:i.startDate,EndDate:i.endDate}):t.DateRange={StartDate:n.selectedPeriod.StartDate,EndDate:n.selectedPeriod.EndDate}):t.DateRange={StartDate:n.selectedPeriod.StartDate,EndDate:n.selectedPeriod.EndDate}),r=u.defer(),e.getReasonCodes(t).then(function(n){r.resolve(e.checkAbsenceReasonCode(n,t.DateRange))}),r.promise};n.getOtherReasonCodes=function(t){var o=u.defer(),s=[],f,r,i;if(n.otherReasonCodes)for(f=t&&t.day&&t.day.ReasonCodeUsage?t.day.ReasonCodeUsage:null,r=0;r<n.otherReasonCodes.length;r++)if(i=n.otherReasonCodes[r],!i.ReadOnly){if(i.BalanceRequired)if(i.Balance){var l=i.Balance.BalanceUsed?i.Balance.BalanceUsed:0,h=i.Balance.CurrentBalance?i.Balance.CurrentBalance:0,c=i.Balance.MinimumLimit?i.Balance.MinimumLimit:0;
1if(h==c||h-l<=c)continue;i.BalanceText=i.Balance.Text}else continue;(!f||f[i.IdC])&&s.push(i)}return e.deferredFilterData(s,t).then(function(n){o.resolve(e.checkAbsenceReasonCode(n,t.DateRange))}),o.promise};n.getColumnAndOtherReasonCodes=function(t){var l=u.defer(),h=[],r,f,o,i,c,s;if(n.columnAndOtherReasonCodes)for(r=t&&t.day&&t.day.ReasonCodeUsage?t.day.ReasonCodeUsage:null,!r&&t&&n.selectedPeriod&&n.selectedPeriod.weeks&&!angular.isUndefined(t.week)&&n.selectedPeriod.weeks.length&&n.selectedPeriod.weeks.length>t.week&&(f=n.selectedPeriod.weeks[t.week],f&&f.reasonCodeUsage&&(r=f.reasonCodeUsage)),o=0;o<n.columnAndOtherReasonCodes.length;o++)if(i=n.columnAndOtherReasonCodes[o],!i.ReadOnly){if(i.BalanceRequired)if(i.Balance){if(c=i.Balance.BalanceUsed?i.Balance.BalanceUsed:0,s=i.Balance.CurrentBalance?i.Balance.CurrentBalance:0,!s||s-c<=0)continue;i.BalanceText=i.Balance.Text}else continue;(!r||r[i.IdC])&&h.push(i)}return e.deferredFilterData(h,t)};n.dataSources={otherReasoncodeDatasource:w.createDatasource({method:function(t){return n.getOtherReasonCodes(t)}}),dimensionItemDatasource:w.createDatasource({method:function(t){return n.getDimensionItems(t)}}),columnAndOtherReasoncodeDatasource:w.createDatasource({method:function(t){return n.getColumnAndOtherReasonCodes(t)}})};n.$on(a.getValue("TransactionRecordingControllerEventEnum","EmployeeSelectedBroadcast"),function(t,i){n.clearTemporaryCache();i&&(i.loading&&(n.loading=!0,i.loadingDefer&&i.loadingDefer.promise.then(function(){})),n.selectEmployee(i))});n.$on("workhourSettingsChanged",function(t,i){console.log("workhoursDataController.workhourSettingsChanged");n.applySettings(i)});n.applySettings=function(t){n.settings=t;switch(t.DimensionItemDisplayType){case 0:n.dimensionItemTemplate="{{Code}} {{localized:Name}}";break;case 1:n.dimensionItemTemplate="{{Code}}";break;case 2:n.dimensionItemTemplate="{{localized:Name}}"}n.updateDimensionSettings();n.preserveTemporaryCache()};n.getBalance=function(t){if(!n.balances)return null;var i=n.balances[t];return i?i:null};n.updateBalanceText=function(n){if(n){var t=n.WorkTimeBalance?p.getFormattedHours(n.CurrentBalance-n.BalanceUsed-n.MinimumLimit):p.getFormattedHours(n.BalanceUsed)+"/"+p.getFormattedHours(n.CurrentBalance);n.Text=t;n.TitleText=l.getText(n.WorkTimeBalance?"WORKHOURSX.CURRENT_BALANCE":"WORKHOURSX.BALANCE_USED")+" "+t}};n.updateDimensionSettings=function(){var r,t,i;if(n.hiddenDimensions=!1,n.settings&&n.settings.Dimensions&&n.dimensions){for(r={},t=0;t<n.dimensions.length;t++)i=n.dimensions[t],r[i.IdC]=i;for(t=0;t<n.settings.Dimensions.length;t++)i=n.settings.Dimensions[t],r[i.DimensionIdC]&&(r[i.DimensionIdC].Hidden=i.Hidden?!0:!1,i.Hidden&&(n.hiddenDimensions=!0))}};n.showToolTip=function(t,i){n.toolTip&&(n.toolTip=null);n.toolTipStyle={top:t.clientY-90};n.toolTip={Errors:i.Errors}};n.hideToolTip=function(){n.toolTip&&(n.toolTip=null)};e.setGetPreviousPeriodDataCallback(n.getPreviousPeriodData=function(){var o=c.getDateOnly(c.addDays(n.selectedPeriod?n.selectedPeriod.StartDate:n.startDate,-1)),t=null,i,r,f;return n.selectedPeriod&&n.periods&&n.selectedPeriod.previousPeriod&&n.selectedPeriod.index&&n.selectedPeriod.index<n.periods.length-1&&(t=n.periods[n.selectedPeriod.index-1]),i=a.getValue("PeriodTypeEnum","MonthPeriods"),r=null,t?(i=t.PeriodType,r=t.RefIdc):n.selectedPeriod&&(i=n.selectedPeriod.PeriodType,r=n.selectedPeriod.RefIdc),f=u.defer(),n.selectedEmployee?e.loadWorkhours(n.selectedEmployee.IdC,o,i,r,!0,!0).then(function(n){f.resolve(n)}):f.resolve(null),f.promise});n.loadSalaryEventData=function(n,t){var i=u.defer();return nt.getForWorkhours(t,n).then(function(n){i.resolve(n)}),i.promise};n.selectEmployee=function(t){n.clearAutoSave();e.clearSelections();n.selectedEmployee=t;n.balances=null;var i=s.getFilterDate();i||(i=new Date);n.resetEmployeePeriod(t.IdC,i,null,null,!0,!1)};e.setUpdateLoadSpinnerCallback(n.updateLoadSpinner=function(t,i){switch(t){case"workhours":n.loading=i;break;case"processingresults":n.processingDataLoading=i}return e.getLoadingStatus(n.loading,n.processingDataLoading)});
1e.setResetSalaryEventDataCallback(n.resetSalaryEventData=function(t,i){var r=u.defer();return n.processingData=null,n.processingDataColumns=null,n.loadSalaryEventData(t,i).then(function(i){if(n.selectedEmployee&&n.selectedEmployee.IdC==t){var u=i&&i.DataList?i.DataList:null;n.prepareProcessingData(u);r.resolve()}else r.resolve()}),r.promise});e.setResetEmployeeDataCallback(n.resetEmployeeData=function(t,i,r,f,o,s){var h=u.defer();return n.clearTemporaryCache(),n.processingData=null,n.processingDataColumns=null,n.enablePreviousPeriodSelection||(s=!0),e.loadWorkhours(t,i,r,f,o,!1,s).then(function(n){ret={valid:n.Valid,QueueIdC:n.QueueIdC};h.resolve(ret)}),h.promise});e.setPrepareEmployeeDataSetCallback(n.prepareEmployeeDataSet=function(t,i,r,o){var yt=u.defer(),s=t.dataSet,w=t.date,h,k,it,ft,et,c,ot,rt,b,ut,y,st,ht,d,l,a,nt,v,tt,vt,p;if(t.employee&&!o?n.selectedEmployee=t.employee:t.employee=n.selectedEmployee,angular.isUndefined(t.Changed)?t.Changed=n.Changed:n.Changed=t.Changed,h={periodData:null,periods:s&&s.Periods?s.Periods:null,calendarDays:s&&s.CalendarDays?s.CalendarDays:null,balance:s&&s.CurrentBalance?s.CurrentBalance:{CurrentBalance:0},plans:s&&s.Plans?s.Plans:null,defaults:s&&s.Defaults?s.Defaults:null,employee:s&&s.Employee?s.Employee:null,processingPeriod:s?s.ProcessingPeriod:null,processingData:s?s.SalaryEventSummary:null,processingInfo:s?s.ProcessingInfo:null,periodStatus:s&&s.Employee?s.Employee.PeriodStatus:null,employeeInfo:s?s.EmployeeInfo:null,startDate:s?s.StartDate:null,endDate:s?s.endDate:null},o||(n.originalDataSet=s?s:null,n.dataSetDate=w=h.startDate?h.startDate:w,n.selectionFlags.rowsSelected=!1,n.selectionFlags.notAcceptedRowsSelected=!1,n.selectionFlags.acceptedRowsSelected=!1,n.selectionFlags.notLockedRowsSelected=!1,n.selectionFlags.lockedRowsSelected=!1),k=s&&s.WorkingDays?s.WorkingDays:null,it=s&&s.WorkHours?s.WorkHours:null,k&&e.collectDynamicDimensionItems(k),ft=s?s.DimensionItems:null,ft!=null&&e.setDimensionItems(ft),h.defaults){for(et=[],l=0;l<h.defaults.length;l++){if(c=h.defaults[l],ot=[],c.Texts)for(v=0;v<c.Texts.length;v++)rt=c.Texts[v],ot.push({LanguageIdC:rt.LanguageIdC,Name:c.DimensionItemIdC?rt.DimensionItemName:rt.OrganisationName});et.push({IdC:c.DimensionItemIdC?c.DimensionItemIdC:c.OrganisationIdC,Code:c.DimensionItemIdC?c.DimensionItemCode:c.OrganisationCode,DimensionIdC:c.DimensionIdC,StartDate:c.StartDate&&c.StartDate.getTime?new Date(c.StartDate.getTime()):null,EndDate:c.EndDate&&c.EndDate.getTime?new Date(c.EndDate.getTime()):null,Texts:ot})}e.setDimensionItems(et,!0)}if(h.periods&&h.periods.length||(h.periods=[{StartDate:new Date(w.getFullYear(),w.getMonth(),1),EndDate:new Date(w.getFullYear(),w.getMonth()+1,0),Code:w.getMonth()+1+"/"+w.getFullYear()}]),b=e.findPeriod(h.periods,w,i,r),!o){if(n.processingData=h.processingData,n.processingPeriod=h.processingPeriod,n.employeeInfo=h.employeeInfo,ut={},h.employeeInfo&&h.employeeInfo.length)for(l=0;l<h.employeeInfo.length;l++)y=h.employeeInfo[l],ut[y.ReasonCodeIdC]=y,y.$calculated||(st=y.BalanceUsed,ht=y.CurrentBalance,y.Type==1&&(st/=60,ht/=60),y.CurrentBalance=ht,y.BalanceUsed=st,y.$calculated=!0),n.updateBalanceText(y);n.balances=ut;n.employmentEndDate=null}var wt=o?null:e.findCheckedRows(),ct=100,lt=0,at={};if(it)for(l=0;l<it.length;l++)d=it[l],d.Date&&d.Date.getTime&&d.WorkHours&&(at[d.Date.getTime()]=d.WorkHours);if(k)for(l=0;l<k.length;l++)if(a=k[l],a.Date&&a.Date.getTime&&a.Date.getTime()>=b.StartDate.getTime()&&a.Date.getTime()<=b.EndDate.getTime()&&(nt=e.getWorkingDayStatus(a),nt<ct&&(ct=nt),nt>lt&&(lt=nt),a.AcceptorLock&&(h.processingPeriod.Locked=!1),at[a.Date.getTime()])){var pt=at[a.Date.getTime()],g={},vt=0;for(v=0;v<pt.length;v++)p=pt[v],p.IdC?g[p.IdC]=p:g[--vt]=p;if(a.WorkHours)for(v=0;v<a.WorkHours.length;v++)p=a.WorkHours[v],tt=g[p.IdC],tt&&((tt.Changed||tt.Deleted)&&(a.WorkHours[v]=tt),delete g[p.IdC]);for(vt in g)p=g[vt],a.WorkHours||(a.WorkHours=[]),a.WorkHours.push(p)}return e.prepareInputData({StartDate:b.StartDate,EndDate:b.EndDate,Plans:h.plans,Defaults:h.defaults,Balances:ut,WorkingDays:k,EmployeeInfo:h.employeeInfo,Code:b.Code,PeriodType:b.PeriodType,RefIdC:b.RefIdC,Accepted:h.processingPerio
1d&&h.processingPeriod.Accepted?!0:!1,Locked:h.processingPeriod&&h.processingPeriod.Locked?!0:!1,LowestStatus:ct,HighestStatus:lt,EmploymentData:h.employee&&h.employee.EmploymentData?h.employee.EmploymentData:null},o).then(function(t){h.periodData=t;t.selectedPeriod&&t.selectedPeriod.Absences&&(t.selectedPeriod.GeneralErrors||(t.selectedPeriod.GeneralErrors=[]),t.selectedPeriod.GeneralErrors.push({type:"error",message:"WORKHOURSX.ERROR_NOT_ACCEPTED_ABSENCES_EXIST"}));t.selectedPeriod&&t.selectedPeriod.TravelClaims&&(t.selectedPeriod.GeneralErrors||(t.selectedPeriod.GeneralErrors=[]),t.selectedPeriod.GeneralErrors.push({type:"warning",message:"WORKHOURSX.ERROR_NOT_ACCEPTED_TRAVELCLAIMS_EXIST",editTravelClaims:!0}));t.selectedPeriod&&t.selectedPeriod.EmploymentEndDate&&(n.employmentEndDate=t.selectedPeriod.EmploymentEndDate);var i=n.setPeriodInformation(h,wt,o);i&&(h.Valid=i.valid,h.QueueIdC=i.QueueIdC);f(function(){n.initScrolls()});yt.resolve(h)}),yt.promise});n.setPeriodInformation=function(t,i,r){var d=t&&t.periods?t.periods:null,g=t&&t.calendarDays?t.calendarDays:null,tt=t&&t.balance?t.balance:{CurrentBalance:0},ot=t&&t.employee?t.employee.EmploymentData:null,it=t&&t.employee?t.employee.GroupItems:null,h=t&&t.processingPeriod?t.processingPeriod:null,st=t&&t.processingData?t.processingData:null,ht=t&&t.processingInfo?t.processingInfo:null,nt={valid:!0},rt,ct,lt,b,f,v,y,o,p,w,k,ut,ft,u,et;if(d&&d.length||(d=[{StartDate:new Date(refDate.getFullYear(),refDate.getMonth(),1),EndDate:new Date(refDate.getFullYear(),refDate.getMonth()+1,0),Code:refDate.getMonth()+1+"/"+refDate.getFullYear()}]),rt=t&&t.periodData&&t.periodData.selectedPeriod?t.periodData.selectedPeriod:null,!r){if(n.prepareProcessingData(st),h&&(h.QueueIdC&&h.QueueStatus<a.getValue("QueueStatus","Completed")?nt.QueueIdC=h.QueueIdC:h.CheckQueueIdC&&h.CheckQueueStatus<a.getValue("QueueStatus","Completed")&&(nt.QueueIdC=h.CheckQueueIdC)),tt&&(n.selectedEmployee.BalanceValue=(tt.CurrentBalance?tt.CurrentBalance:0)/60),n.selectedEmployee.BalanceDisabled=!1,n.employeeInformationFields=[],n.employeeInformationRows=[],ct=null,lt=null,it&&it.sort(function(n,t){if(n.GroupingOrderNumber<t.GroupingOrderNumber)return-1;if(n.GroupingOrderNumber>t.GroupingOrderNumber)return 1;var i=l.getCurrentLanguageText(n.Texts,"GroupItemName"),r=l.getCurrentLanguageText(t.Texts,"GroupItemName");return i<r?-1:i>r?1:0}),b=e.buildEmploymentDataDateRanges(ot,it),b)for(u=0;u<b.length;u++){if(f=b[u],v={startDate:f.start,endDate:f.end,showHeading:b.length>1,fields:[],showEndDate:f.end.getFullYear()<2100},n.employeeInformationRows.push(v),f.employmentData)for(o=0;o<f.employmentData.length;o++)y=f.employmentData[o],v.fields.push({label:"WORKHOURSX.EMPLOYEEINFO_ACCEPTOR",value:y.AcceptorName,type:"text",groupItem:!1}),v.fields.push({label:"WORKHOURSX.EMPLOYEEINFO_WEEKHOURS",value:Number(y.WeekHours)/60,type:"hours",groupItem:!1}),v.fields.push({label:"WORKHOURSX.EMPLOYEEINFO_DAILYHOURS",value:Number(y.DailyHours)/60,type:"hours",groupItem:!1}),v.fields.push({label:"WORKHOURSX.EMPLOYEEINFO_PERCENTAGE1",value:y.Percentage1/100,type:"percent",groupItem:!1}),y.BalanceDisabled&&(n.selectedEmployee.BalanceDisabled=!0);if(f.groupItems)for(o=0;o<f.groupItems.length;o++)p=f.groupItems[o],w={Texts:p.Texts,groupItem:!0},p.NumberValue?(w.value=p.NumberValue,w.type="number"):p.TextValue&&(w.value=p.TextValue,w.type="text"),v.fields.push(w)}if(n.holidays={},g&&g.length)for(u=0;u<g.length;u++)k=g[u],n.holidays[k.Day.getFullYear()+"/"+k.Day.getMonth()+"/"+k.Day.getDate()]=k.Holiday;if(n.periods=d,n.plans=t&&t.plans?t.plans:null,n.defaults=t&&t.defaults?t.defaults:null,n.dimensions=t&&t.periodData?t.periodData.dimensions:null,n.columnReasonCodes=t&&t.periodData?t.periodData.columnReasonCodes:null,n.otherReasonCodes=t&&t.periodData?t.periodData.otherReasonCodes:null,n.columnAndOtherReasonCodes=t&&t.periodData?t.periodData.reasonCodes:null,n.selectedPeriod=rt,n.hiddenDimensions=!1,n.dimensions)for(u=0;u<n.dimensions.length;u++)if(n.dimensions[u].Hidden){n.hiddenDimensions=!0;break}if(n.updateDimensionSettings(),n.selectedPeriod&&n.selectedPeriod.StartDate<=s.getFilterDate()&&s.getFilterDate()<=n.selectedPeriod.EndDate&&(ut
1=s.getFilterDate(),ft=c.getMonthDateRange(ut),ft.FilterDate=ut,e.updateEmployeeStatus(n.selectedEmployee,t.periodStatus,ft)),n.selectionFlags=e.checkRows(i),n.selectedPeriod)for(u=0;u<n.periods.length;u++)if(et=n.periods[u],et.StartDate.getTime()==n.selectedPeriod.StartDate.getTime()&&et.EndDate.getTime()&&n.selectedPeriod.EndDate.getTime()){n.selectedPeriod.index=u;n.selectedPeriod.nextPeriod=u<n.periods.length-1;n.selectedPeriod.previousPeriod=u>0;break}nt.valid=n.showProcessingInfo(ht);n.selectedPeriod.Symbols=0}return e.preparePeriodData(rt),r||(n.preserveTemporaryCache(),e.updateScrollerWidth()),nt};n.nextPeriod=function(t){(t||(t=n.selectedPeriod),t&&(t.index||t.index==0))&&(!n.periods||t.index>=n.periods.length-1||n.selectPeriod(n.periods[t.index+1]))};n.previousPeriod=function(t){(t||(t=n.selectedPeriod),t&&t.index)&&n.periods&&n.selectPeriod(n.periods[t.index-1])};n.selectPeriod=function(t){n.resetEmployeePeriod(n.selectedEmployee.IdC,t.StartDate,t.PeriodType,t.RefIdC,!0,!0)};n.saveData=function(t,i){var r=u.defer(),f=e.getSavePipeline(n.selectedEmployee,n.selectedPeriod.StartDate,n.selectedPeriod.EndDate,n.selectedPeriod.PeriodType,n.selectedPeriod.RefIdC,t,i);return e.startPipeline(f),f.promise.then(function(){r.resolve();n.loading=n.processingDataLoading=!1;n.mainForm.$setPristine()},function(){r.resolve()}),r.promise};n.acceptPeriod=function(t){$(t.target).parent().hasClass("disabled")||n.saveData({accept:!0},!1)};n.rejectPeriod=function(t){$(t.target).parent().hasClass("disabled")||n.saveData({reject:!0},!1)};n.lockPeriod=function(t){$(t.target).parent().hasClass("disabled")||n.saveData({lock:!0},!1)};n.releasePeriod=function(t){$(t.target).parent().hasClass("disabled")||n.saveData({release:!0},!1)};n.acceptSelectedRows=function(t){$(t.target).parent().hasClass("disabled")||n.saveData({accept:!0},!0)};n.rejectSelectedRows=function(t){$(t.target).parent().hasClass("disabled")||n.saveData({reject:!0},!0)};n.lockSelectedRows=function(t){$(t.target).parent().hasClass("disabled")||n.saveData({lock:!0},!0)};n.releaseSelectedRows=function(t){$(t.target).parent().hasClass("disabled")||n.saveData({release:!0},!0)};n.acceptWeek=function(t){$(t.target).parent().hasClass("disabled")||n.saveData({accept:!0,days:n.getDaysOfSelectedWeek()},!0)};n.rejectWeek=function(t){$(t.target).parent().hasClass("disabled")||n.saveData({reject:!0,days:n.getDaysOfSelectedWeek()},!0)};n.lockWeek=function(t){$(t.target).parent().hasClass("disabled")||n.saveData({lock:!0,days:n.getDaysOfSelectedWeek()},!0)};n.releaseWeek=function(t){$(t.target).parent().hasClass("disabled")||n.saveData({release:!0,days:n.getDaysOfSelectedWeek()},!0)};n.showTravelClaims=function(){e.showTravelClaimEditor({viewOnly:!0})};n.getDaysOfSelectedWeek=function(){var r=[],t=e.getSelectedPeriod(),n,i;if(t&&!isNaN(t.SelectedWeek)&&(n=t.weeks[t.SelectedWeek],n&&n.days))for(i=0;i<n.days.length;i++)r.push(new Date(n.days[i].date.getTime()));return r};n.scrollToCurrent=function(){var r=$("#periodMenu"),t;if(!r.is(":visible")&&(t=e.getDataFromTemporaryCache(b.PERIODS),t)){var n=e.getSelectedPeriod(),o=(n?n.StartDate:new Date).getTime(),i=-1,s=n?n.PeriodType:a.getValue("PeriodTypeEnum","MonthPeriods"),h=n?n.RefIdC:null,u=e.findPeriod(t,new Date(o),s,h);u&&_.forEach(t,function(n,t){if(n==u)return i=t,!1});i<0&&(i=t.length-1);f(function(){var n=$("#period"+i).addClass("selected").position(),t=r.scrollTop();r.scrollTop(t+n.top)})}};n.toggleDropdownButton=function(n,t,i,r){var u=r||"$showButton";n.relatedTarget&&(n.relatedTarget.tagName==="BUTTON"||n.relatedTarget.tagName==="SPAN")&&n.type==="mouseout"&&(i=!0);t[u]=i};n.toggleEmployeeInformationVisibility=function(){n.visibilityOptions.EmployeeInformation=!n.visibilityOptions.EmployeeInformation;n.visibilityOptions.EmployeeInformation?f(function(){n.visibilityOptions.TopAreaMargin=$(".employeeTable").height()+10}):n.visibilityOptions.TopAreaMargin=40};n.toggleProcessingResultsVisibility=function(){n.visibilityOptions.TablePriority=n.visibilityOptions.TablePriority==1?0:1;n.updateProcessingDataDimensions()};n.updateProcessingDataDimensions=function(){if(n.visibilityOptions.TablePriority){var t=n.processingData?n.processingData.length:0;n.visibilityOptions.ProcessingResultsHeight=56+t*16;n.visibilityOptions.ProcessingResultsMargin=10+n.visibilityOptions.ProcessingResultsHeight;n.visibilityOptions.BottomAreaMargin=n.visibilityOptions.ProcessingResultsMargin+35}else n.visibilityOptions.ProcessingResultsHeight=null,n.visibilityOptions.ProcessingResultsMargin=null,n.visibilityOptions.BottomAreaMargin=null};n.resetEmployeePeriod=function(t,r,u,e,o,s){n.loading=!0;n.processingResultTimeout&&(f.cancel(n.processingResultTimeout),n.processingResultTimeout=null,n.processingDataLoading=!1);n.selectedRow=null;n.selectedPeriod=null;n.processingData=null;n.processingDataColumns=null;n.defaults=null;n.plans=null;n.removedRows=[];n.Changed=!1;n.pristine=!0;
1i.$broadcast("resetEmployeePeriod",t,r,u,e);n.resetEmployeeData(t,r,u,e,!0,s).then(function(){n.selectedEmployee?n.selectedEmployee.loading?n.selectedEmployee.loadingStatus&&(n.loading=n.selectedEmployee.loadingStatus.workhours,n.processingDataLoading=n.selectedEmployee.loadingStatus.processingResults):(n.loading=!1,n.processingDataLoading=!1):n.loading=!1;n.mainForm.$setPristine()})};n.prepareProcessingData=function(t){var s,o,e,h,i,u,f,c;if(n.processingData=t,t){for(n.processingDataColumns=[],s={},o=[],i=0;i<t.length;i++)if(u=t[i],u.DayItems)for(f=0;f<u.DayItems.length;f++)(e=u.DayItems[f],h=e.Date.getTime(),s[h])||(n.processingDataColumns.push({header:r.moment(e.Date).format("dd D.M."),date:e.Date}),s[h]={date:e.Date,index:-1},o.push(h));for(o.sort(),n.processingDataColumns.sort(function(n,t){return n.date<t.date?-1:n.date>t.date?1:0}),i=0;i<o.length;i++)s[o[i]].index=i;for(i=0;i<t.length;i++){for(u=t[i],u.cells=[],f=0;f<o.length;f++)u.cells.push({empty:!0});if(u.DayItems)for(f=0;f<u.DayItems.length;f++){var e=u.DayItems[f],h=e.Date.getTime(),l=s[h].index;l>-1&&(c=u.cells[l],c.empty=!1,c.item=e)}}}n.updateProcessingDataDimensions()};n.showProcessingInfo=function(t){var o,s,h,l,p,w,u,i,v,f,b,y,r,e,k;if(!t||!t.length)return!0;if(o={},t)for(s=0;s<t.length;s++)(h=t[s],h.StartTime)&&(u=c.getDateOnly(h.StartTime).getTime()+"",l=o[u],l||(o[u]=l=[]),l.push(h));p=!1;w=n.getDayItemsMappedWithDate();for(u in w){if(i=w[u],v=!0,i.Errors){for(f=[],r=0;r<i.errors.length;r++)b=i.errors[r],b.source!="processing"&&f.push(b);i.Errors=f.length?f:null;v=!f.length}if(y=o[u],y){for(r=0;r<y.length;r++)e=y[r],k={source:"processing",idc:e.IdC,message:e.Message,error:!0},e.Type==a.getValue("InfoType","Error")||e.Type==a.getValue("InfoType","ProcessingError")?(v=!1,p=!0):k.error=!1,i.Errors||(i.Errors=[]),i.Errors.push(k);n.pristine=!1;i.Valid=v;i.Warning=i.Valid}}return!p};n.getDayItemsMappedWithDate=function(){var f={},e,u,o,t,i,r;if(n.selectedPeriod&&n.selectedPeriod.weeks)for(t=0;t<n.selectedPeriod.weeks.length;t++)for(e=n.selectedPeriod.weeks[t],u=0;u<e.days.length;u++)i=e.days[u],r=i.date.getTime()+"",f[r]=i;if(n.selectedPeriod&&n.selectedPeriod.WorkingDays)for(o=null,t=0;t<n.selectedPeriod.WorkingDays.length;t++)(i=n.selectedPeriod.WorkingDays[t],r=i.Date.getTime()+"",o!=r)&&(o=r,f[r]=i);return f};n.onSaveClick=function(){n.saving||(n.saving=!0,n.saveData(!1,!1).then(function(){n.saving=!1}))};n.onClickField=function(n){n&&n.target&&n.target&&n.target.tagName=="INPUT"&&$(n.target).select()};n.autoSave=function(){n.selectedEmployee;n.autoSaveTimeout=f(function(){n.autoSave()},12e4)};n.clearAutoSave=function(){n.autoSaveTimeout&&f.cancel(n.autoSaveTimeout);n.autoSaveTimeout=f(function(){n.autoSave()},12e4);!n.selectedEmployee};n.copySelectedRows=function(){e.copySelectedRows()};n.copySelectedDays=function(){e.copySelectedDays()};n.copyPreviousPeriod=function(){e.copyPreviousPeriod()};n.removeSelectedRows=function(){e.removeSelectedRows()};n.removeSelectedDays=function(){e.removeSelectedDays()};$(window).bind("keydown",function(t){if((t.ctrlKey||t.metaKey)&&String.fromCharCode(t.which).toLowerCase()=="s"){t.preventDefault();var i=t.target;$("#saveButton").focus();f(function(){n.onSaveClick();i.focus()})}});n.evenScrolls=function(){n.scroll.dataMiddleElement||(n.scroll.dataMiddleElement=$(".editorDataArea.middlePart",t)[0]);n.scroll.dataLeftElement||(n.scroll.dataLeftElement=$(".editorDataArea.leftPart",t)[0]);n.scroll.dataRightElement||(n.scroll.dataRightElement=$(".editorDataArea.rightPart",t)[0]);var i=n.scroll.dataMiddleElement.scrollTop;n.scroll.dataLeftElement.scrollTop=i;n.scroll.dataRightElement.scrollTop=i};$(".buttons > button").bind("focus",function(){n.evenScrolls()});n.activateRow=function(t,i,r){n.selectedRow&&($(".editorDataCell.invisibleCell > input").off("focus"),n.selectedRow!=t&&(n.selectedExtraReasonCode&&n.selectedExtraReasonCode.Data&&(n.selectedExtraReasonCode.Data.Hours||n.selectedExtraReasonCode.Data.StartTime||n.selectedExtraReasonCode.Data.EndTime)&&n.promoteOtherReasonCode(n.selectedRow,n.selectedExtraReasonCode),n.selectedExtraReasonCode=null));n.selectedRow=t;var u=n;f(function(){if(i){var t=n.setFocusToCell(i,!0,r);t.then(function(){f(function(){$(".editorDataCell.invisibleCell > input").off("focus").on("focus",n.cellFocus)},0)})}})};n.focusToInvisibleCell=function(){var n=$(".editorDataArea.leftPart .editorDataRow.selectedRow input[type=checkbox]");n&&n.length&&n.focus()};n.cellKeyUp=function(t){var i=$(t.target);if(i.is(":input")){var r=n.findCellIndex(t.target),u=i.is(":data(uiAutocomplete)"),o=i.is("input"),e=t.target.tagName=="SELECT"||u;switch(t.which){case 9:n.arrowKeysOff=!1;o&&f(function(){i.select()});break;case 13:n.arrowKeysOff=!1;break;case 38:t.stopPropagation();e&&t.target.value||(n.arrowKeysOff=!1);n.arrowKeysOff||n.moveUp(r);break;case 40:t.stopPropagation();e&&t.target.value||(n.arrowKeysOff=!1);n.arrowKeysOff||n.moveDown(r);break;case 39:t.target.value?n.arrowKeysOff=!0:n.moveRight(r);break;case 37:t.target.value?n.arrowKeysOff=!0:n.moveLeft(r);break;case 13:n.arrowKeysOff=!1;break;case 27:n.arrowKeysOff=!1;break;default:u&&(n.arrowKeysOff=!0)}}};$("body").off("keyup").on("keyup",n.cellKeyUp);return n.findNextCellIndex=function(t,i){var a=i==="right",v=t-1,h,o,c,l,s;if(t==0&&console.log("zero cell index!"),h=n.selectedPeriod.SelectedWeek&&n.selectedPeriod.weeks,o=e.getDataFromTemporaryCache(b.DIMENSIONS),o){var u=[],y=null,r=null,f=[];return _.forEach(o,function(n){var t={dimension:y=n,next:o.length,prev:r?r.available?r.index:r.prev:-1,available:!n.Hidden&&!n.DefaultDimensionItemLock,index:u.length};u.push(t);n.Hidden||n.DefaultDimensionItemLock?f.push(r):(r&&(r.next=t.index),r=t,_.forEach(f,function(n){n.next=t.index}),f=[])}),c=o.length+n.columnReasonCodes.length,r=u.length?u[u.length-1]:null,r&&!r.available&&(l=u[r.prev],l.next=r.next),h||(_.forEach(n.columnReasonCodes,function(){var n={dimension:null,next:c,prev:r?r.available?r.index:r.prev:-1,available:!0,index:u.length};r&&(r.next=u.length);f.length&&(_.forEach(f,function(t){t.next=n.index}),f=[]);u.push(n);r=n}),u.push({dimension:null,next:0,prev:r?r.available?r.index:r.prev:-1,available:!0,index:u.length})),s=u[v],s?(a?s.next:s.prev)+1:t}return t},n.moveRight=function(t){var i=n.findNextCellIndex(t,"right");n.setFocusToCell(i,!0)},n.moveLeft=function(t){var i=n.findNextCellIndex(t,"left");n.setFocusToCell(i,!0)},n.cellFocus=function(t){n.$broadcast("cellFocus",t)},n.moveUp=function(t){n.$broadcast("moveUp",t)},n.moveDown=function(t){n.$broadcast("moveDown",t)},n.findCellIndex=function(t){var i=jQuery(t).closest(".editorDataCell.dimensionCell");return(i&&i.length!=0||(i=jQuery(t).closest(".editorDataCell.reasonCodeCell")),(!i||i.length==0)&&(i=jQuery(t).closest(".editorDataCell.descriptionCell"),i&&i.length))?Number(n.specialCellIndexes.description)+1:i&&i.length?i.index():0},n.setFocusToCell=function(t,r,e){var o=u.defer();return n.arrowKeysOff=!1,e||(e=0),f(function(){e||(e="");console.log("broadcasting: dimension-cell-click"+e+"-"+(t-1));i.$broadcast("dimension-cell-click"+e+"-"+(t-1),r,e);o.resolve(t)},20),o.promise},n.initScrolls=function(){n.processingDataScroll={x:0,y:0};n.processingDataScroll.headingScrollElement=null;n.processingDataScroll.dataScrollElement=null;n.scroll.dataMiddleElement=null;n.scroll.dataLeftElement=null;n.scroll.dataRightElement=null;n.scroll.headingMiddleElement=null;$(".processingDataArea.rightPart",t).bind("scroll",function(i){var u=n.processingDataScroll.x=i.target.scrollLeft,r=n.processingDataScroll.y=i.target.scrollTop;n.processingDataScroll.headingScrollElement||(n.processingDataScroll.headingScrollElement=$(".dataHeading.rightPart",t)[0]);n.processingDataScroll.dataScrollElement||(n.processingDataScroll.dataScrollElement=$(".processingDataArea.leftPart",t)[0]);n.processingDataScroll.headingScrollElement.scrollLeft=u;i.target.scrollTop=r;n.processingDataScroll.dataScrollElement.scrollTop=r});var i=function(){n.scroll.headingMiddleElement||(n.scroll.headingMiddleElement=$(".editorDataHeading.middlePart",t)[0]);n.scroll.dataMiddleElement||(n.scroll.dataMiddleElement=$(".editorDataArea.middlePart",t)[0]);n.scroll.dataLeftElement||(n.scroll.dataLeftElement=$(".editorDataArea.leftPart",t)[0]);n.scroll.dataRightElement||(n.scroll.dataRightElement=$(".editorDataArea.rightPart",t)[0]);n.scroll.footerMiddleElement||(n.scroll.footerMiddleElement=$(".editorFooter.middlePart",t)[0])};$(".editorFooter.middlePart",t).bind("scroll",function(t){var r=n.scroll.x=t.target.scrollLeft;n.scroll.headingMiddleElement&&n.scroll.headingMiddleElement.scrollLeft==r||(i(),n.scroll.headingMiddleElement.scrollLeft=r,n.scroll.dataMiddleElement.scrollLeft=r)});$(".editorDataArea.middlePart",t).bind("scroll",function(t){var r=n.scroll.x=t.target.scrollLeft,u=n.scroll.y=t.target.scrollTop;n.scroll.headingMiddleElement&&n.scroll.dataRightElement&&n.scroll.headingMiddleElement.scrollLeft==r&&n.scroll.dataRightElement.scrollTop==u||(i(),n.scroll.headingMiddleElement.scrollLeft=r,n.scroll.footerMiddleElement.scrollLeft=r,n.scroll.dataRightElement.scrollTop=u,n.scroll.dataLeftElement.scrollTop=u)});$(".editorDataArea.rightPart",t).bind("scroll",function(i){var r=n.scroll.y=i.target.scrollTop;n.scroll.dataMiddleElement||(n.scroll.dataMiddleElement=$(".editorDataArea.middlePart",t)[0]);n.scroll.dataLeftElement||(n.scroll.dataLeftElement=$(".editorDataArea.leftPart",t)[0]);n.scroll.dataRightElement||(n.scroll.dataRightElement=$(".editorDataArea.rightPart",t)[0]);n.scroll.dataMiddleElement.scrollTop=r;r=n.scroll.dataMiddleElement.scrollTop;n.scroll.dataLeftElement.scrollTop=r;n.scroll.dataRightElement.scrollTop!=r&&(n.scroll.dataRightElement.scrollTop=r)})},n.preserveTemporaryCache(),n.initialize(),this}]);angular.module("TiimaApp").controller("workhoursDaysVerticalEditor",["$scope","$element","$rootScope","$
1window","$q","$timeout","$uibModal","workhoursService","workhoursCacheService","employeeService","restrictionService","toolsService","localizationService","tiimaEnumsService","initPageService","workhourSettingsService","formatService","WORKHOURS_CACHE_DATASETS","Period","Workhour","Organisation","SalaryEventSummary","ProcessingInfo",function(n,t,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k){return n.blurEvent=null,n.selectedRow=null,n.totalHoursPerReasonCode={},n.totalStampHours=0,n.visibleDimensions=0,n.focusHandling={tabClicked:!1,selected:!1,shiftKey:!1,eventsOff:!1},n.initialize=function(){var t,i;console.log("workhoursDaysVerticalEditorController.initialize");s.initializeWorkhours();s.setCellWidthExtra(0);t=s.getDataFromTemporaryCache(k.OPERATION_DIRECTIONS);t&&(t.rows=!0,t.days=!1,t.weeks=!1);i=s.getDataFromTemporaryCache(k.SETTINGS);i&&(console.log("workhoursDaysVerticalEditorController.initialize -> applying settings"),n.applyDimensionSettings());s.registerController("workhoursDaysVerticalEditorController")},n.$on("workhourSettingsChanged",function(){console.log("workhoursDaysVerticalEditorController.workhourSettingsChanged");n.applyDimensionSettings()}),n.$on("autoCompleteValueChanged",function(t,i,r,u){u&&(n.focusHandling.tabClicked=u.key=="Tab",n.focusHandling.shiftKey=u.shiftKey,e(function(){n.focusHandling.tabClicked=!1;n.focusHandling.shiftKey=!1}))}),n.applyDimensionSettings=function(){var u,f,e,t,r,o,i;if(n.visibleDimensions=0,u={},f=s.getDataFromTemporaryCache(k.DIMENSIONS),f){for(t=0;t<f.length;t++)i=f[t],i.Hidden||n.visibleDimensions++,u[i.IdC]=i;if(e=s.getSelectedPeriod(),e)for(t=0;t<e.WorkingDays.length;t++)if(r=e.WorkingDays[t],r.Dimensions&&r.Dimensions.length)for(o=0;o<r.Dimensions.length;o++)i=r.Dimensions[o],u[i.DimensionIdC]&&(i.Hidden=u[i.DimensionIdC].Hidden)}n.updateScrollerWidth()},s.setRefreshDataCallback(n.refreshData=function(n){var i,f,t,r,u;if(n&&n.Result&&n.Result.length&&(i=s.getSelectedPeriod(),i&&i.WorkingDays)){for(f={},t=0;t<n.Result.length;t++)f[b.parseISODateTime(n.Result[t].Date).getTime()]=n.Result[t];for(t=0;t<i.WorkingDays.length;t++)r=i.WorkingDays[t],r.WorkingDayIdC||(u=f[r.Date.getTime()],u&&u.IdC&&(r.WorkingDayIdC=u.IdC))}}),s.setPrepareOutputDataCallback(n.prepareDataForSaving=function(t,i){var b=s.getSelectedPeriod(),ot,rt,st,ut,at,v,r,l,nt,tt,vt,w,yt,it,d,p,u,f,gt,e,ft,lt,g,c,pt,ct,o,h,et,ni,ti;if(!b||!b.WorkingDays)return null;if(ot={},l=s.getDataFromTemporaryCache(k.REMOVED_ROWS),l&&l.length)for(v=0;v<l.length;v++)(rt=l[v],rt.IdC)&&(st=ot[rt.Date.getTime()],st||(ot[rt.Date.getTime()]=st=[]),st.push(rt));s.validate();s.setPristine(!1);var ht=null,wt={},bt={},kt={},dt={};if(t||i)for(i&&(ht={}),v=0;v<b.WorkingDays.length;v++)r=b.WorkingDays[v],i&&r.Checked&&(ht[r.Date.getTime()]=!0),t&&(t.accept&&r.AcceptorLock?wt[r.Date.getTime()]=!0:t.reject&&!r.AcceptorLock?bt[r.Date.getTime()]=!0:t.lock&&r.EmployeeLock?kt[r.Date.getTime()]=!0:t.release&&!r.EmployeeLock&&(dt[r.Date.getTime()]=!0));for(ut={},at=!0,v=0;v<b.WorkingDays.length;v++)if(r=b.WorkingDays[v],!ht||ht[r.Date.getTime()]){if(l=ot[r.Date.getTime()],r.IdC&&l&&l.length&&(r.Changed=!0),nt=!1,t&&(t.accept&&!wt[r.Date.getTime()]?r.Changed=nt=!0:t.reject&&!bt[r.Date.getTime()]?r.Changed=nt=!0:t.lock&&!kt[r.Date.getTime()]?r.Changed=nt=!0:t.release&&!dt[r.Date.getTime()]&&(r.Changed=nt=!0)),r.DescriptionChanged&&(r.Changed=!0),r.IdC&&!r.Deleted){if(tt=r.Changed,!tt&&r.Dimensions&&r.Dimensions.length)for(u=0;u<r.Dimensions.length;u++)if(r.Dimensions[u].Changed||!r.Dimensions[u].IdC){tt=!0;break}if(!tt)for(u=0;u<r.ReasonCodes.length;u++)if(r.ReasonCodes[u].Data&&(r.ReasonCodes[u].Data.Changed||!r.ReasonCodes[u].Data.IdC)){tt=!0;break}r.Changed=tt}if(!r.Deleted){for(vt=!0,u=0;u<r.ReasonCodes.length;u++)if(f=r.ReasonCodes[u].Data,f){vt=!1;break}vt||t&&(t.reject||t.release)||(r.Valid&&s.validateRow(r),r.Valid||(at=!1))}if(w=ut[r.Date.getTime()],w||(yt=s.getSelectedEmployee(),yt&&(ut[r.Date.getTime()]=w={IdC:r.WorkingDayIdC,WorkHours:[],EmployeeIdC:yt.IdC,PaymentGroupIdC:r.PaymentGroupIdC,Date:new Date(r.Date.getTime()),NoEmployment:r.NoEmployment?!0:!1,Changed:nt,Deleted:!1,Valid:r.Valid},t&&(t.accept&&!r.AcceptorLock?w.AcceptorLock=1:t.reject&&r.AcceptorLock?w.AcceptorLock=0:t.lock&&!r.EmployeeLock?w.EmployeeLock=1:t.release&&r.EmployeeLock&&(w.EmployeeLock=0)))),l&&l.length)for(u=0;
1u<l.length;u++)w.WorkHours.push({IdC:l[u].IdC,Deleted:!0});if(r.ReasonCodes&&r.ReasonCodes.length){if(it=null,d=null,r.Dimensions&&r.Dimensions.length)for(u=0;u<r.Dimensions.length;u++)(p=r.Dimensions[u],p.SelectedItem&&(d||(d={}),d[p.DimensionIdC]=p),p.IdC&&!p.SelectedItem&&(p.Deleted=!0),p.Deleted||p.SelectedItem)&&(it||(it={}),it[p.DimensionIdC]=p);for(u=0;u<r.ReasonCodes.length;u++)if(f=r.ReasonCodes[u].Data,f&&r.ReasonCodes[u].Disabled&&(f.IdC?f.Deleted=!0:f=null),f){if(s.isEmptyData(f,r.ReasonCodes[u]))if(f.IdC)f.Deleted=!0;else continue;if(gt=r.ReasonCodes[u].DataType==y.getValue("ReasonCodeDataTypeEnum","Hours")?60:1,e={IdC:f.IdC,WorkHours:f.Hours?r.ReasonCodes[u].UseCheckBox?f.Hours:f.Hours*gt:null,ReasonCodeIdC:r.ReasonCodes[u].ReasonCodeIdC,StartDate:f.StartTime?f.StartTime:null,EndDate:f.EndTime?f.EndTime:null,Changed:f.Changed?!0:!1,Deleted:f.Deleted?!0:!1,Description:r.Description,ReadOnly:f.ReadOnly},f.Absence&&(e.Absence=!0,e.AbsenceStatus=f.AbsenceStatus),f.IdC&&r.DescriptionChanged&&(e.Changed=!0,e.Description||(e.Description=" ")),r.ReasonCodes[u].ShowUnitPrice&&f.UnitPrice&&(e.UnitPrice=f.UnitPrice),e.IdC){if(it){if(ft=angular.copy(it),f.DimensionItems&&f.DimensionItems.length)for(lt=0;lt<f.DimensionItems.length;lt++)if(g=f.DimensionItems[lt],c=ft[g.DimensionIdC],c){if(e.DimensionItems||(e.DimensionItems=[]),pt=null,c.SelectedItem&&(pt=c.SelectedItem.Dynamic?null:c.SelectedItem.IdC),h={IdC:g.WorkDimensionItemIdC?g.WorkDimensionItemIdC:g.IdC,DimensionItemIdC:pt,Changed:c.Changed?!0:!1,Deleted:c.Deleted?!0:!1,DimensionIdC:g.DimensionIdC},c&&c.SelectedItem&&c.SelectedItem.Dynamic&&(h.NewText=c.SelectedItem.Code?c.SelectedItem.Code:c.SelectedItem.DimensionItemName),delete ft[g.DimensionIdC],!h.DimensionItemIdC&&(!c.SelectedItem||!c.SelectedItem.Dynamic))if(h.IdC)h.Deleted=!0;else continue;e.DimensionItems.push(h)}for(ct in ft)o=ft[ct],e.DimensionItems||(e.DimensionItems=[]),h={Changed:o.Changed?!0:!1,Deleted:o.Deleted?!0:!1,DimensionIdC:o.DimensionIdC},o.SelectedItem&&(o.SelectedItem.Dynamic?(h.DimensionItemIdC=null,h.NewText=o.SelectedItem.Code?o.SelectedItem.Code:o.SelectedItem.DimensionItemName):h.DimensionItemIdC=o.SelectedItem.IdC),e.DimensionItems.push(h)}}else{if(!e.WorkHours){if(!e.StartDate&&!e.EndDate)continue;e.StartDate?e.EndDate=a.getDateOnly(e.StartDate):e.StartDate=a.getDateOnly(e.EndDate)}if(d)for(ct in d){if(o=d[ct],e.DimensionItems||(e.DimensionItems=[]),h={Changed:o.Changed?!0:!1,Deleted:o.Deleted?!0:!1,DimensionIdC:o.DimensionIdC},o.SelectedItem)if(o.SelectedItem.Dynamic)h.DimensionItemIdC=null,h.NewText=o.SelectedItem.Code?o.SelectedItem.Code:o.SelectedItem.DimensionItemName;else if(h.DimensionItemIdC=o.SelectedItem.IdC,!h.DimensionItemIdC)continue;e.DimensionItems.push(h)}}w.WorkHours.push(e)}}}n.checkSymbols(b);et=[];for(ni in ut)ti=ut[ni],et.push(ti);return et.length||(et=null),{valid:at,data:et}}),n.checkSymbols=function(n){var r,t,i;if(n&&n.WorkingDays)for(r=0;r<n.WorkingDays.length;r++)t=n.WorkingDays[r],i=0,(t.AcceptorLock==1||t.EmployeeLock==1)&&i++,(!t.Valid||t.Warning)&&i++,i>n.Symbols&&(n.Symbols=i)},s.setPreparePeriodDataCallback(n.preparePeriodData=function(t){var r,i,u,f;if(n.checkSymbols(t),t&&t.WorkingDays)for(r=0;r<t.WorkingDays.length;r++){if(i=t.WorkingDays[r],i.Dimensions&&i.Dimensions.length)for(u=0;u<i.Dimensions.length;u++)f=i.Dimensions[u],n.checkDimensionReasonCodes(i,f);n.getReasonCodeTotalHours()}}),s.setPrepareInputDataCallback(n.prepareData=function(t,i){var c=f.defer(),r={selectedPeriod:{StartDate:t.StartDate,EndDate:t.EndDate,EmploymentEndDate:null,Text:t.Code,WorkingDays:[],Accepted:!1,Locked:!1,PeriodType:t.PeriodType,RefIdC:t.RefIdC},Balances:t.Balances,dimensions:[],columnReasonCodes:[],otherReasonCodes:[]},l=n.employmentData=t.EmploymentData,e=t.StartDate,o=t.EndDate,h=a.getDateDifference(o,e);return f.all([s.getDimensions({DateRange:{StartDate:t.StartDate,EndDate:t.EndDate},firstIndex:0,itemCount:1e5,noCopy:!0}),s.getColumnReasonCodes({DateRange:{StartDate:t.StartDate,EndDate:t.EndDate},firstIndex:0,itemCount:1e5}),s.getOtherReasonCodes({DateRange:{StartDate:t.StartDate,EndDate:t.EndDate},firstIndex:0,itemCount:1e5,orderByField:1})]).then(function(f){var dt,ui,gt,di,ni,li,gi,ai,ti,nr,tt,fi,yi,v,pi,nt,ct,ur,ei,fr,vt,yt,st,oi,it,hr,ht,hi,wt,d,ci,pt,at,rt,g,ft,w,bt;r.dimensions=f[0]&&f[0].DataList?f[0].DataList:null;r.columnReasonCodes=f[1]&&f[1].DataList?f[1].DataList:null;r.otherReasonCodes=f[2]&&f[2].DataList?f[2].DataList:null;dt=s.getDataFromTemporaryCache(k.SETTINGS);t.Accepted&&(r.selectedPeriod.Accepted=!0);t.Locked&&(r.selectedPeriod.Locked=!0);t.Processed&&(r.selectedPeriod.Processed=!0);var ar=s.getPermission("allowEditAcceptedAbsences"),vr=y.getValue("TransactionStatusEnum","Accepted"),ki=y.getValue("TransactionStatusEnum","Transferred");if(r.selectedPeriod.NoProcessingLocks=s.checkPeriodLocks(t.WorkingDays,e,o),r.selectedPeriod.AllPerio
1dShifts=[],r.selectedPeriod.Absences=!1,r.selectedPeriod.TravelClaims=null,ui={},n.visibleDimensions=0,dt&&dt.Dimensions)for(nt=0;nt<dt.Dimensions.length;nt++)st=dt.Dimensions[nt],ui[st.DimensionIdC]=st.Hidden,st.Hidden||n.visibleDimensions++;if(t.WorkingDays){for(gt={},nt=0;nt<t.WorkingDays.length;nt++){if(v=t.WorkingDays[nt],v.Date.getTime()>=e.getTime()&&v.Date.getTime()<=o.getTime()){if(v.Shifts)for(w=0;w<v.Shifts.length;w++)di=v.Shifts[w],r.selectedPeriod.AllPeriodShifts.push(angular.copy(di));v.Absences&&v.Absences.length&&(r.selectedPeriod.Absences=!0)}if(v.TravelClaims)for(w=0;w<v.TravelClaims.length;w++)ni=v.TravelClaims[w],a.getDateOnly(ni.StartDate).getTime()<=o.getTime()&&a.getDateOnly(ni.EndDate).getTime()>=e.getTime()&&(gt[ni.IdC]=ni)}for(li in gt)r.selectedPeriod.TravelClaims?r.selectedPeriod.TravelClaims.push(gt[li]):r.selectedPeriod.TravelClaims=[gt[li]]}if(gi=t.Plans?s.preparePlansByDay(t.Plans):{},ai=t.Plans&&t.Defaults?s.prepareDefaultsByDay(t.Defaults,e,o):{},i||(n.defaultsByDay=ai),s.prepareReasonCodeBalances(r.Balances,r.otherReasonCodes,!1),r.otherReasonCodes||(r.otherReasonCodes=[]),r.columnReasonCodes||(r.columnReasonCodes=[]),n.promoteOtherReasonCodes(t,r.otherReasonCodes,r.columnReasonCodes,e,o),s.prepareReasonCodeBalances(r.Balances,r.columnReasonCodes,!0),ti={},nr=r.dimensions&&r.dimensions.length?r.dimensions.length:0,r.dimensions&&r.dimensions.length)for(nt=0;nt<r.dimensions.length;nt++)tt=r.dimensions[nt],ti[tt.IdC]=nt+1;fi=[];r.columnReasonCodes&&r.columnReasonCodes.length&&fi.push(r.columnReasonCodes);r.otherReasonCodes&&r.otherReasonCodes.length&&fi.push(r.otherReasonCodes);var et=s.prepareUsages(l,r.dimensions,fi,e,h.days),tr=et?et.perDayUsages:{},ir=et?et.perDayReasonCodeUsages:{},br=et?et.currentEmploymentData:null,vi=et?et.lastIndex:-1,yr=et?et.employmentEndDate:e,pr=et?et.noEmploymentDays:{},wr=et?et.generalUsage:{};for(vi<h.days&&(h.days=vi,vi>-1?r.selectedPeriod.EmploymentEndDate=new Date(yr):r.selectedPeriod.NoEmployment=!0),nt=r.columnReasonCodes.length-1;nt>=0;nt--)r.columnReasonCodes[nt].TotallyDisabled&&r.columnReasonCodes.splice(nt,1);if(yi={},t.WorkingDays)for(nt=0;nt<t.WorkingDays.length;nt++)v=t.WorkingDays[nt],yi[v.Date.getTime()]=v,ft=tr[v.Date.getTime()],pi=ir[v.Date.getTime()],v.DimensionUsage=ft?ft:{},v.ReasonCodeUsage=pi?pi:{};for(r.dimensions=s.filterDimensionsByUsage(r.dimensions,wr),nt=0;nt<h.days+1;nt++){var ii=a.getDateOnly(a.addDays(e,nt)),rr={},p=yi[ii.getTime()],v={Date:ii,StampHours:p?p.StampsSum:0,Rows:[],DimensionUsage:tr[ii.getTime()],ReasonCodeUsage:ir[ii.getTime()],Plan:gi[ii.getTime()]?!0:!1,Shifts:null,ShiftsShort:null,StandBy:null,WorkPlan:!1,OvertimeOrder:null};if(p){if(v.DimensionUsage=angular.copy(p.DimensionUsage),v.ReasonCodeUsage=angular.copy(p.ReasonCodeUsage),p.Shifts&&n.updateShiftsForDay(v,p.Shifts),p.StandBys)for(v.StandBy||(v.StandBy=""),w=0;w<p.StandBys.length;w++)ct=p.StandBys[w],ur=b.getFormattedDate(ct.StartDate)+" "+b.getFormattedHours(ct.StartDate,!0)+" - "+b.getFormattedDate(ct.EndDate)+" "+b.getFormattedHours(ct.EndDate,!0)+" ("+ct.ReasonCode+" "+ct.Description+")",v.StandBy&&(v.StandBy+=", "),v.StandBy+=ur;if(p.OvertimeOrders)for(v.OvertimeOrder||(v.OvertimeOrder=""),w=0;w<p.OvertimeOrders.length;w++)ei=p.OvertimeOrders[w],fr=b.getFormattedDate(ei.StartDate)+" - "+b.getFormattedDate(ei.EndDate)+" ("+ei.Description+")",v.OvertimeOrder&&(v.OvertimeOrder+=", "),v.OvertimeOrder+=fr}if(p&&p.WorkHours){for(w=0;w<p.WorkHours.length;w++){var d=p.WorkHours[w],er=[],or=[];if(d.DimensionItems&&d.DimensionItems.length)for(it=0;it<d.DimensionItems.length;it++)vt=d.DimensionItems[it],vt.DimensionItemIdC&&(yt=ti[vt.DimensionIdC],yt||(yt=++nr,ti[vt.DimensionIdC]=yt),er[yt]=vt.DimensionItemIdC,or[yt]=vt);d.KeyData=er;d.KeyValues=or}for(w=0;w<p.WorkHours.length;w++){var d=p.WorkHours[w],wi=d.KeyData.join(";"),ri=rr[wi],ot=null;if(ri){for(it=0;it<ri.length;it++)for(st=ri[it],oi=0;oi<st.ReasonCodes.length;oi++)if(g=st.ReasonCodes[oi],g.ReasonCodeIdC==d.ReasonCodeIdC){g.Data||(ot=st);break}}else rr[wi]=ri=[];if(ot)d.Description&&!ot.Description&&(ot.Description=d.Description);else{if(ri.push(ot={IdC:d.IdC,Checked:!1,Index:v.Rows.length,Dimensions:[],ReasonCodes:[],PaymentGroupIdC:p.PaymentGroupIdC,WorkingDayIdC:p.IdC,AcceptorLock:p.AcceptorLock,EmployeeLock:p.EmployeeLock,ProcessingLocks:p.ProcessingLocks,ReasonCodeUsage:v.ReasonCodeUsage,DimensionUsage:v.DimensionUsage,RowKey:wi,Description:d.Description,DateRangeAbsence:d.DateRangeAbsence,AbsenceStatus:d.AbsenceStatus,Status:d.Status,Shifts:v.Shifts,ShiftsShort:v.ShiftsShort,ShiftItems:p.Shifts,WorkPlan:v.WorkPlan,StandBy:v.StandBy,OvertimeOrder:v.OvertimeOrder,StampHours:v.Rows.length===0?v.StampHours:0,Valid:angular.isUndefined(p.Valid)?!0:p.Valid}),v.Rows.push(ot),pt={},r.dimensions&&r.dimensions.length)for(it=0;it<r.dimensions.length;it++){var tt=r.dimensions[it],ft=v.DimensionUsage[tt.IdC],ut=d.KeyValues[ti[tt.IdC]],sr=ut&&ut.IdC?ut.IdC:null,si=null;tt.ParentIdC&&(si=pt[tt.ParentIdC]||null);ut&&(rt=s.getDimensionItem(tt.IdC,ut.DimensionItemIdC),rt&&(ut.ReasonCodes=rt.ReasonCodes,ut.DimensionItemAutoGeneratingSettings=rt.DimensionItemAutoGeneratingSettings,ut.DimensionItemName=rt.DimensionItemName,ut.Source=rt.Source,ut.StartDate=rt.StartDate&&rt.StartDate.getTime?rt.StartDate:null,ut.EndDate=rt.EndDate&&rt.EndDate.getTime?rt.EndDate:null,ut.SubLevelRequired=rt.SubLevelRequired,pt[tt.IdC]=ut.DimensionItemIdC),ut.IdC=ut.DimensionItemIdC,ut.WorkDimensionItemIdC=sr);ot.Dimensions.push({DimensionIdC:tt.IdC,Disabled:!ft||!ft.ok?!0:!1,AllowDimensionItemAdding:tt.AllowDimensionItemAdding,Required:ft&&ft.required?!0:!1,Hidden:ui[tt.IdC]?!0:!1,DefaultDimensionItemLock:tt.DefaultDimensionItemLock,$showButton:!1,SelectedItem:ut?ut:null,IdC:sr,$parentItemIdC:si})}if(r.columnReasonCodes&&r.columnReasonCodes.length)for(it=0;it<r.columnReasonCodes.length;it++)g=r.columnReasonCodes[it],ft=v.ReasonCodeUsage[g.IdC],ot.ReasonCodes.push({ReasonCodeIdC:g.IdC,ReadOnly:g.ReadOnly,UsageDisabled:ft?!1:!0,Data:null,DataType:g.DataType,UseCheckBox:g.Property.UseCheckBox,ShowUnitPrice:g.Property.ShowUnitPrice,AbsenceReasonCode:g.AbsenceReasonCode,BalanceRequired:g.BalanceRequired,DimensionItemRequired:g.DimensionItemRequired})}for(it=0;it<ot.ReasonCodes.length;it++)if(g=ot.ReasonCodes[it],g.ReasonCodeIdC==d.ReasonCodeIdC){g.IdC=d.IdC;ft=v.ReasonCodeUsage[d.ReasonCodeIdC];hr=g.DataType==y.getValue("ReasonCodeDataTypeEnum","Hours")?60:1;(d.DateRangeAbsence||d.AbsenceStatus==ki||d.Status==ki)&&(g.ReadOnly=!0);d.AbsenceStatus!=vr||ar||(g.ReadOnly=!0);g.Data={Hours:g.UseCheckBox?d.WorkHours:d.WorkHours/hr,ReadOnly:g.ReadOnly,Invalid:!1,StartTime:d.StartDate,EndTime:d.EndDate,IdC:d.IdC,DimensionItems:d.DimensionItems,Absence:d.Absence,AbsenceStatus:d.AbsenceStatus};g.Data.OriginalValue=g.Data.Hours;g.ShowUnitPrice&&d.UnitPrice&&(g.Data.UnitPrice=d.UnitPrice);break}}}if(!v.Rows.length)for(ht=ai[v.Date.getTime()],hi=v.Plan&&ht&&ht.length?ht.length:1,hi||(hi=1),wt=0;wt<hi;wt++){if(d={Dimensions:[],ReasonCodes:[],Checked:!1,NoEmployment:!1,Index:0,WorkingDayIdC:p?p.IdC:null,PaymentGroupIdC:p?p.PaymentGroupIdC:null,AcceptorLock:p?p.AcceptorLock:null,EmployeeLock:p?p.EmployeeLock:null,ProcessingLocks:p?p.ProcessingLocks:null,ReasonCodeUsage:v.ReasonCodeUsage,DimensionUsage:v.DimensionUsage,Description:"",DateRangeAbsence:!1,AbsenceStatus:null,Status:0,Shifts:v.Shifts,ShiftsShort:v.ShiftsShort,WorkPlan:v.WorkPlan,ShiftItems:p?p.Shifts:null,Stand
1By:v.StandBy,OvertimeOrder:v.OvertimeOrder,StampHours:wt===0?v.StampHours:0,Valid:p==null||angular.isUndefined(p.Valid)?!0:p.Valid},v.Rows.push(d),ci=v.Plan&&ht&&ht.length&&ht.length>wt?ht[wt]:null,r.dimensions&&r.dimensions.length)for(pt={},w=0;w<r.dimensions.length;w++){var tt=r.dimensions[w],lt=null,si=null;tt.ParentIdC&&(si=pt[tt.ParentIdC]||null);v.Plan&&ci&&ci.Dimensions&&(at=ci.Dimensions[tt.IdC],at&&(lt={IdC:at.DimensionItemIdC,Changed:!1,Deleted:!1,Code:at.DimensionItemCode,DimensionIdC:tt.IdC,DimensionItemIdC:at.DimensionItemIdC,SubLevelRequired:at.SubLevelRequired},rt=s.getDimensionItem(tt.IdC,at.DimensionItemIdC),rt&&(lt.ReasonCodes=rt.ReasonCodes,lt.DimensionItemAutoGeneratingSettings=rt.DimensionItemAutoGeneratingSettings,lt.DimensionItemName=rt.DimensionItemName,lt.Texts=angular.copy(rt.Texts),pt[tt.IdC]=lt.DimensionItemIdC)));ft=v.DimensionUsage[tt.IdC];d.Dimensions.push({DimensionIdC:tt.IdC,SelectedItem:lt,$parentItemIdC:si,Disabled:!ft||!ft.ok?!0:!1,AllowDimensionItemAdding:tt.AllowDimensionItemAdding,Required:ft&&ft.required?!0:!1,Hidden:ui[tt.IdC]?!0:!1,DefaultDimensionItemLock:tt.DefaultDimensionItemLock,$showButton:!1})}if(r.columnReasonCodes&&r.columnReasonCodes.length)for(w=0;w<r.columnReasonCodes.length;w++)g=r.columnReasonCodes[w],ft=v.ReasonCodeUsage[g.IdC],d.ReasonCodes.push({ReasonCodeIdC:g.IdC,Data:null,ReadOnly:g.ReadOnly,UsageDisabled:ft?!1:!0,DataType:g.DataType,UseCheckBox:g.Property.UseCheckBox,ShowUnitPrice:g.Property.ShowUnitPrice,AbsenceReasonCode:g.AbsenceReasonCode,BalanceRequired:g.BalanceRequired,DimensionItemRequired:g.DimensionItemRequired})}for(w=0;w<v.Rows.length;w++)bt=v.Rows[w],r.selectedPeriod.WorkingDays.push(bt),bt.ShowDate=w==0,bt.Date=a.getDateOnly(v.Date),bt.DateKey=v.Date.getFullYear()+"/"+v.Date.getMonth()+"/"+v.Date.getDate(),bt.Plan=v.Plan}if(r&&r.selectedPeriod&&r.selectedPeriod.WorkingDays){var cr=0,bi=!1,lr=[],kt=null;_.forEach(r.selectedPeriod.WorkingDays,function(n){pr[n.Date.getTime()]?(kt||lr.push(kt={list:[],nextDate:null}),kt.list.push(n),n.NoEmployment=!0,bi||(n.showNoEmploymentMessage=!0),bi=!0):(bi=!1,kt&&(kt.nextDate=new Date(n.Date.getTime()),kt=null));var t=u.moment(n.Date).format("W");t!==cr&&(n.WeekNumber=t);cr=t;s.setupDefaultDimensionItemDependencies(n)});_.forEach(lr,function(n){_.forEach(n.list,function(t){t.nextDate=n.nextDate})})}r.selectedPeriod.SelectedWeek=-1;c.resolve(r)}),c.promise}),s.setUpdateScrollerWidthCallback(n.updateScrollerWidth=function(){var t=s.getDataFromTemporaryCache(k.DIMENSIONS),i=s.getDataFromTemporaryCache(k.COLUMN_REASONCODES),r=0,u;if(t)if(n.visibilityOptions.ShowHiddenDimensions)r=t?t.length:0;else for(u=0;u<t.length;u++)t[u].Hidden||r++;n.visibleDimensions=r;n.cellsTotal=r+(i&&i.length?i.length:0);n.scroll.width=s.calculateScrollWidth(t,i,!0,!0,n.visibilityOptions.ShowHiddenDimensions)}),s.setFindCheckedRowsCallback(n.findCheckedRows=function(n){var r={},i,u,e,f,o,t;if(!n&&(i=s.getSelectedPeriod(),i&&i.WorkingDays))for(u=0,e=null,f=0;f<i.WorkingDays.length;f++)o=i.WorkingDays[f],t=o.Date.getTime(),t!=e?u=0:u++,e=t,o.Checked&&(r[t]||(r[t]=[]),r[t].push(u));return{days:r}}),s.setCheckRowsCallback(n.checkRows=function(n){var t={rowsSelected:!1,notAcceptedRowsSelected:!1,acceptedRowsSelected:!1,notLockedRowsSelected:!1,lockedRowsSelected:!1},i,f,c,e,r,h,u,o;if(n&&n.days&&(n=n.days),n&&(i=s.getSelectedPeriod(),i&&i.WorkingDays))for(f=0,c=null,e=0;e<i.WorkingDays.length;e++)if(r=i.WorkingDays[e],h=r.Date.getTime(),h!=c?f=0:f++,u=n[h],u&&u.length)for(o=0;o<u.length;o++)if(u[o]==f){r.Checked=!0;t.rowsSelected=!0;r.AcceptorLock?t.acceptedRowsSelected=!0:t.notAcceptedRowsSelected=!0;r.EmployeeLock?t.lockedRowsSelected=!0:t.notLockedRowsSelected=!0;break}return t}),n.onReasonCodeCheck=function(n,t){var c=t.currentTarget.checked,h=[],f=-1,o=s.getSelectedPeriod(),r,e,u,i;if(o&&o.WorkingDays)for(u=0;u<o.WorkingDays.length;u++)if((r=o.WorkingDays[u],!r.AcceptorLock)&&!r.EmployeeLock&&r.Plan&&r.ReasonCodes){if(f==-1)for(f=-2,e=0;e<r.ReasonCodes.length;e++)if(i=r.ReasonCodes[e],i.ReasonCodeIdC==n.IdC){f=e;break}f>=0&&f<r.ReasonCodes.length&&h.push(r.ReasonCodes[f])}for(u=0;
1u<h.length;u++)i=h[u],c?i.Data||(i.Data={Invalid:!1}):i.Data&&!i.Data.IdC&&delete i.Data,i.Data&&(i.Data.Hours=c?1:0,i.Data.Changed=!0)},n.onRowChecked=function(n){if(n.ProcessingLocks){n.Checked=!1;return}var t=s.getSelectedPeriod(),i=s.getDataFromTemporaryCache(k.SELECTIONFLAGS);i&&s.setCheckedFlags(i,n,t?t.WorkingDays:null,!1)},n.onRowClick=function(t,i){var e=0,r,u;if(i&&i.target&&i.target.tagName){var f=i.target.tagName,r=$(i.target),o=f==="INPUT"||f==="BUTTON";if(f==="SPAN"&&(o=r.parent().prop("tagName")==="BUTTON"),o){i.stopPropagation();return}}t&&t.ProcessingLocks||t&&t.AcceptorLock||t&&t.EmployeeLock||n.readOnly||(r=$(i.target),u=0,r.hasClass("endTime")?u=1:(r.parent().hasClass("unitPrice")||r.parent().parent().hasClass("unitPrice"))&&(u=2),t&&i&&(i.stopPropagation(),t!=null&&(e=n.findCellIndex(i.target))),n.activateRow(t,e,u))},n.onChangeDimensionItem=function(t,i,r){var e,u,f,o;if(i){if(e=!1,u="",i.SelectedItem&&(typeof i.SelectedItem=="string"&&i.AllowDimensionItemAdding?(u=i.SelectedItem.trim(),u.length>0?e=!0:i.SelectedItem=null):i.SelectedItem.IdC?e=!0:i.SelectedItem=null),f=!1,e){if(typeof i.SelectedItem=="string"&&i.AllowDimensionItemAdding){if(i.SelectedItem={IdC:0,DimensionItemIdC:0,DimensionIdC:i.DimensionIdC,Changed:!0,Deleted:!1,Dynamic:!0,Source:3},o=s.getDataFromTemporaryCache(k.SETTINGS),o)switch(o.DimensionItemDisplayType){case 0:case 1:i.SelectedItem.Code=u;break;case 2:i.SelectedItem.DimensionItemName=u}f=!0}else s.clearSubDimensions(t,i),s.handleDefaultDimensions(t,i);i.Changed=!0;i.Deleted&&delete i.Deleted;n.checkDimensionReasonCodes(t,i)}else i.Deleted=!0,t.Dimensions&&(s.clearSubDimensions(t,i),s.clearDefaultDimensions(t,i));s.setChanged(!0);s.validateRow(t);n.focusHandling.tabClicked&&(n.focusHandling.shiftKey?r--:r++,f=!1);f||n.activateRow(t,r+1,f)}},n.onOtherReasonCodeChanged=function(t,i){if(i){n.selectedExtraReasonCode={ReasonCodeIdC:i.IdC,Data:null,ReadOnly:i.ReadOnly,DataType:i.DataType,UseCheckBox:i.Property.UseCheckBox,ShowUnitPrice:i.Property.ShowUnitPrice,AbsenceReasonCode:i.AbsenceReasonCode,BalanceRequired:i.BalanceRequired,DimensionItemRequired:i.DimensionItemRequired};n.onOtherReasonCodeBlur(t,i.IdC);t.SelectedExtraReasonCode=null}},n.onOtherReasonCodeBlur=function(t,i){var f=n.findOtherReasonCode(i),o=s.getDataFromTemporaryCache(k.COLUMN_REASONCODES),v=s.getDataFromTemporaryCache(k.OTHER_REASONCODES),c=s.getDataFromTemporaryCache(k.DIMENSIONS),l,r,u,h,a;if(o!=null&&f&&f.index!=-1&&f.reasonCode){if(l=o.length+(c?c.length:0),v.splice(f.index,1),r=f.reasonCode,o.push(r),u=s.getSelectedPeriod(),u&&u.WorkingDays&&u.WorkingDays.length)for(h=0;h<u.WorkingDays.length;h++)a=u.WorkingDays[h],a.ReasonCodes.push({ReasonCodeIdC:r.IdC,Data:null,ReadOnly:r.ReadOnly,DataType:r.DataType,UseCheckBox:r.Property.UseCheckBox,ShowUnitPrice:r.Property.ShowUnitPrice,AbsenceReasonCode:r.AbsenceReasonCode,BalanceRequired:r.BalanceRequired,DimensionItemRequired:r.DimensionItemRequired});n.scroll.width=s.calculateScrollWidth(c,o,!0,!0,n.visibilityOptions.ShowHiddenDimensions);e(function(){n.setFocusToCell(l+1,!0)})}},n.getReasonCodeTotalHours=function(){var o,u,h,r,c,t,i,l,f,a,e;if((n.totalHoursPerReasonCode={},o=0,u=s.getSelectedPeriod(),u&&u.WorkingDays)&&u&&u.WorkingDays){for(h=0;h<u.WorkingDays.length;h++)if(r=u.WorkingDays[h],r&&r.StampHours&&(o=o+r.StampHours),r.ReasonCodes&&r.ReasonCodes.length)for(c=0;c<r.ReasonCodes.length;c++)t=r.ReasonCodes[c],t&&t.ReasonCodeIdC&&t.DataType&&(i=n.totalHoursPerReasonCode[t.ReasonCodeIdC],l=t.DataType==y.getValue("ReasonCodeDataTypeEnum","StartAndEndTime")?60:1,i?(f=0,t.Data?(a=0,t.Data.Hours>0&&(a=parseFloat(t.Data.Hours/l)),f=parseFloat(i.TotalHours)+parseFloat(a),t.ShowUnitPrice&&t.Data.UnitPrice&&(e=0,e=parseFloat(i.TotalUnitPrice)+parseFloat(t.Data.UnitPrice),i.TotalUnitPrice=e,i.ShowTotalUnitPrice=!1)):f=i.TotalHours,i.TotalHours=f):(f=0,e=0,t.Data&&(t.Data.Hours>0&&(f=parseFloat(t.Data.Hours/l)),t.ShowUnitPrice&&t.Data.UnitPrice&&(e=parseFloat(t.Data.UnitPrice))),i={IdC:t.ReasonCodeIdC,TotalHours:f,ShowTotalUnitPrice:!1,TotalUnitPrice:e,DataType:t.DataType}),n.totalHoursPerReasonCode[t.ReasonCodeIdC]=i);n.totalStampHours=o}},n.onDataChanged=function(t,i){var r,u;if(i&&i.Data){var e=!i.Data.StartTime||i.Data.StartTime.getHours()==0&&i.Data.StartTime.getMinutes()==0,o=!i.Data.EndTime||i.Data.EndTime.getHours()==0&&i.Data.EndTime.getMinutes()==0,f=!1;!i.Data.Hours&&e&&o?f=!0:i.DataType==y.getValue("ReasonCodeDataTypeEnum","StartAndEndTime")?(r=i.Data.StartTime&&i.Data.StartTime.getTime?new Date(i.Data.StartTime.getTime()):null,u=i.Data.EndTime&&i.Data.EndTime.getTime?new Date(i.Data.EndTime.getTime()):null,(r||u)&&(r||(r=i.Data.StartTime=new Date(t.Date.getTime())),u||(u=i.Data.EndTime=new Date(t.Date.getTime())),r=(r.getTime()-r.getTimezoneOffset()*6e4)%864e5,u=(u.getTime()-u.getTimezoneOffset()*6e4)%864e5,i.Data.Hours=(u-r)/6e4,f=e&&o)):i.DataType==y.getValue("ReasonCodeDataTypeEnum","Hours")&&i.Data.Hours>23+59/60&&(i.Data.Hours=23+59/60);f&&(i.Data.IdC?(i.Data.Hours=i.Data.StartTime=i.Data.EndTime=null,i.Data.Deleted=!0,t.Changed=!0):i.Data=null);n.getReasonCodeTotalHours()}i&&i.Data&&i.Data.IdC&&(i.Data.Changed=!0);t&&t.IdC&&(t.Changed=!0);t.Deleted&&delete t.Deleted;s.setChanged(!0);n.validateCell(t,i);n.validateRow(t)},s.setValidateCellCallback(n.validateCell=function(t,i){var r=i.Data,h,u,f;if((n.pristine=!1,!t||!t.AcceptorLock)&&(h=s.getReasonCode(i.ReasonCodeIdC),u=n.getBalance(i.ReasonCodeIdC),u&&r)){f=r.Hours;r.StartTime&&r.EndTime&&(f=a.getDateDifference(r.EndTime,r.StartTime).hours);var e=r.OriginalValue?r.OriginalValue:0,c=u.CurrentBalance-u.BalanceUsed+e-u.MinimumLimit,o=u.BalanceUsed-e+Number(f);u.BalanceUsed=o;r.OriginalValue=Number(f);n.updateBalanceText(u);i.Data.BalanceTitleText=u.TitleText;r.Invalid=!1;u.AllowNegativeBalance||(u.CurrentBalance-o<u.MinimumLimit?(r.Invalid=!0,s.addError(t,"balance",i.ReasonCodeIdC,"WORKHOURSX.BALANCE_INSUFFICIENT",[""+c])):(r.Invalid=!1,s.removeError(t,"balance",i.ReasonCodeIdC)))}}),s.setValidateRowCallback(n.validateRow=function(t){var i,o,u,r;if(t&&!t.AcceptorLock){n.pristine=!1;t.Valid=!1;var f=!0,h=!1,c=!1,e=null;if(t.ReasonCodes)for(r=0;r<t.ReasonCodes.length;r++)if(i=t.ReasonCodes[r],i.Data&&(i.DimensionItemRequired&&(h=!0,e||(e=i.ReasonCodeIdC)),i.Data.Invalid)){f=!1;break}if(o=!1,t.Dimensions)for(u=null,r=0;r<t.Dimensions.length;r++){var i=t.Dimensions[r],l=i.Required,a=u&&u.SubLevelRequired;a&&(l=!0);i.SelectedItem&&(c=!0);l&&!i.SelectedItem?(i.Invalid=!0,f=!1,i.Hidden&&(o=!0),a?s.addError(t,"dimension",i.DimensionIdC,"WORKHOURSX.DIMENSION_ITEM_IS_CONDITIONALLY_REQUIRED",[u.Code,v.getCurrentLanguageText(u.Texts,"Name")]):s.addError(t,"dimension",i.DimensionIdC,"WORKHOURSX.DIMENSION_ITEM_IS_REQUIRED")):(i.Invalid=!1,s.removeError(t,"dimension",i.DimensionIdC));u=i.SelectedItem?i.SelectedItem:null}h&&!c?(s.addError(t,"reasoncode",e,"WORKHOURSX.DIMENSION_ITEM_SELECTION_IS_REQUIRED"),f=!1):s.removeError(t,"reasoncode",e);o&&(n.visibilityOptions.ShowHiddenDimensions=!0,n.updateScrollerWidth());t.Valid=f}}),s.setValidateCallback(n.validate=function(){var c=s.getSelectedPeriod(),e,l,a,o,f,h,u,t,r,v,p,i;if(c&&c.WorkingDays){for(e={},u=0;u<c.WorkingDays.length;u++)if(t=c.WorkingDays[u],t){for(l=!0,r=0;r<t.ReasonCodes.length;r++)if(a=t.ReasonCodes[r].Data,a)if(s.isEmptyData(a,t.ReasonCodes[r]))continue;else{l=!1;break}l||(t.Valid=!0,n.isDescriptionObligatory(t)&&!t.Description&&s.addError(t,"description",0,"WORKHOURSX.DESCRIPTION_IS_REQUIRED"),o=t.Date.getTime(),e[o
1]||(e[o]=[]),e[o].push(t))}for(o in e)if(f=e[o],f){for(h={},u=0;u<f.length;u++)if((t=f[u],t.ReasonCodes)&&!t.AcceptorLock)for(r=0;r<t.ReasonCodes.length;r++)(i=t.ReasonCodes[r],i.Data)&&i.Data.Hours&&(h[i.ReasonCodeIdC]||(h[i.ReasonCodeIdC]=0),h[i.ReasonCodeIdC]+=Number(i.Data.Hours));for(v in h)p=h[v],i=s.getReasonCode(v),(i.LimitType&y.getValue("ReasonCodeLimitType","Pieces"))!=0&&(i.HourLimit<p?s.addError(f[f.length-1],"reasoncode",i.IdC,"WORKHOURSX.REASONCODE_MAX_LIMIT_EXCEEDED",[i.HourLimit]):s.removeError(f[f.length-1],"reasoncode",i.IdC))}n.checkSymbols(c)}}),n.updateShiftsForDay=function(n,t){var r;for(n.Shifts="",n.ShiftsShort="",r=0;r<t.length;r++){var i=t[r],u=i.ShiftCode,f=i.ShiftCode+" "+b.getFormattedHours(i.StartTime,!0)+"-"+b.getFormattedHours(i.EndTime,!0);n.Shifts&&(n.Shifts+=", ");n.ShiftsShort&&(n.ShiftsShort+=", ");n.Shifts+=f;n.ShiftsShort+=u;i.WorkPlanIdC&&(n.WorkPlan=!0)}},n.findOtherReasonCode=function(n){var i=s.getDataFromTemporaryCache(k.OTHER_REASONCODES),t;if(i&&i.length)for(t=0;t<i.length;t++)if(i[t].IdC==n)return{reasonCode:i[t],index:t};return null},n.isDescriptionObligatory=function(n){var u=s.getDataFromTemporaryCache(k.SETTINGS),t,i,r;if(u&&u.ObligatoryDescription)return!0;if(!n||!n.ReasonCodes)return!1;for(t=0;t<n.ReasonCodes.length;t++)if(i=n.ReasonCodes[t],i.Data&&(r=s.getReasonCode(i.ReasonCodeIdC),r&&r.ObligatoryDescription))return!0;return!1},n.checkDimensionReasonCodes=function(n,t){var u,i,f,r;if(t.SelectedItem){if(u={},t.SelectedItem.ReasonCodes&&t.SelectedItem.ReasonCodes.length)for(i=0;i<t.SelectedItem.ReasonCodes.length;i++)u[t.SelectedItem.ReasonCodes[i].ReasonCodeIdC]=!0;if(n&&n.ReasonCodes&&n.ReasonCodes.length)for(i=0;i<n.ReasonCodes.length;i++)if(u[n.ReasonCodes[i].ReasonCodeIdC])if(n.ReasonCodes[i].Disabled){if(f=!1,n.ReasonCodes[i].Disabled.Dimensions&&n.ReasonCodes[i].Disabled.Dimensions.length){for(r=0;r<n.ReasonCodes[i].Disabled.Dimensions.length;r++)if(n.ReasonCodes[i].Disabled.Dimensions[r]==t.DimensionIdC){f=!0;break}}else n.ReasonCodes[i].Disabled.Dimensions=[];f||n.ReasonCodes[i].Disabled.Dimensions.push(t.DimensionIdC)}else n.ReasonCodes[i].Disabled={Disabled:!0,Dimensions:[t.DimensionIdC]};else if(n.ReasonCodes[i].Disabled){if(n.ReasonCodes[i].Disabled.Dimensions&&n.ReasonCodes[i].Disabled.Dimensions.length)for(r=0;r<n.ReasonCodes[i].Disabled.Dimensions.length;r++)if(n.ReasonCodes[i].Disabled.Dimensions[r]==t.DimensionIdC){n.ReasonCodes[i].Disabled.Dimensions.splice(r,1);break}n.ReasonCodes[i].Disabled.Dimensions&&n.ReasonCodes[i].Disabled.Dimensions.length||delete n.ReasonCodes[i].Disabled}}},s.setRemoveSelectedRowsCallback(n.removeSelectedRows=function(){var r=s.getSelectedPeriod(),f=s.getDataFromTemporaryCache(k.SELECTIONFLAGS),i,u,t;if(f&&f.rowsSelected&&r&&r.WorkingDays&&n.allowRemove){for(i=[],t=0;t<r.WorkingDays.length;t++)(u=r.WorkingDays[t],u.AcceptorLock)||u.Checked&&i.push(u);if(i&&i.length)for(t=i.length-1;t>=0;t--)n.removeRow(i[t],!1)}}),n.copyRows=function(t,i,r,u,e){var p=t,w=i?i:null,h=r?r:s.getDataFromTemporaryCache(k.COLUMN_REASONCODES),a=[],c,l,v;return _.forEach(h,function(n){n.AbsenceReasonCode||a.push(angular.copy(n))}),h=u?u:s.getDataFromTemporaryCache(k.OTHER_REASONCODES),c=[],_.forEach(h,function(n){n.AbsenceReasonCode||c.push(angular.copy(n))}),l=f.defer(),v=o.open({templateUrl:"MVC/Modals/Workhours/copyWorkhour.html",controller:"copyWorkhourModalController",backdrop:"static",windowClass:"copyWorkhourModal",resolve:{workhourViewType:function(){return y.getValue("WorkhourViewType","DaysVertical")},selectedPeriod:function(){return s.getSelectedPeriod()},sourceData:function(){return p},dimensions:function(){return s.getDataFromTemporaryCache(k.DIMENSIONS)},columnReasonCodes:function(){return a},otherReasonCodes:function(){return c},holidays:function(){return s.getDataFromTemporaryCache(k.HOLIDAYS)},targetRange:function(){return w},employmentData:function(){return e||n.employmentData}}}),v.result.then(function(t){var c,e;if(t){var i={},f=[],r=s.getSelectedPeriod();if(r&&r.WorkingDays){var u=s.getDataFromTemporaryCache(k.COLUMN_REASONCODES),o={},h=0;u&&(_.forEach(u,function(n,t){o[n.IdC]=t}),h=u.length);_.forEach(r.WorkingDays,function(t){var r=t.Date.getTime();i[r]||(i[r]=[],f.push(r));i[r].length&&n.isEmptyRow(t)||i[r].push(t)});r.WorkingDays=[];_.forEach(t,function(t){var c=t.Date.getTime(),e=null,v,y,p,w,s,r,b,a,l;if(i[c]?(v=i[c],e=v.length?v[0]:null,e&&(t.WorkingDayIdC=e.WorkingDayIdC)):(i[c]=[],f.push(c)),t.ReasonCodes)for(y=[],p=t.ReasonCodes.length-1,p<0&&(p=0),w=h,_.forEach(t.ReasonCodes,function(n){var t=o[n.ReasonCodeIdC];angular.isUndefined(t)&&(o[n.ReasonCodeIdC]=t=w++);y[t]=n}),t.ReasonCodes=y,s=0;s<h;s++)t.ReasonCodes[s]||(r=u[s],b=e&&e.ReasonCodeUsage?e.ReasonCodeUsage[r.IdC]:!0,t.ReasonCodes[s]={ReasonCodeIdC:r.IdC,ReadOnly:r.ReadOnly,UsageDisabled:b?!1:!0,Data:null,DataType:r.DataType,UseCheckBox:r.Property.UseCheckBox,ShowUnitPrice:r.Property.ShowUnitPrice,AbsenceReasonCode:r.AbsenceReasonCode,BalanceRequired:r.BalanceRequired,DimensionItemRequired:r.DimensionItemRequired});a=i[c];l=a[a.length-1];t.ReasonCodeUsage=angular.copy(e.ReasonCodeUsage);n.isEmptyRow(l)?(l.Dimensions=t.Dimensions,l.ReasonCodes=t.ReasonCodes,t.Description&&(l.Description=t.Description)):a.push(t)});f.sort();_.forEach(f,function(n){var t=i[n],u;t&&t.length&&(u=null,_.forEach(t,function(n){n.ShowDate=u!==n.Date.getTime();u=n.Date.getTime();n.Valid=!0;r.WorkingDays.push(n)}))});c=s.getDataFromTemporaryCache(k.OTHER_REASONCODES);e=n.promoteOtherReasonCodes(r,c,u);e&&e.length&&(n.applyReasonCodePromotion(r,e),n.updateScrollerWidth());l.resolve(t)}}}),l.promise},s.setCopySelectedRowsCallback(n.copySelectedRows=function(){var f=s.getDataFromTemporaryCache(k.SELECTIONFLAGS),t,i,r,u;if(f&&f.rowsSelected&&(t=s.getSelectedPeriod(),t&&t.WorkingDays)){for(i=[],r=0;r<t.WorkingDays.length;r++)u=t.WorkingDays[r],u.Checked&&i.push(u);return!i||!i.length?void 0:n.copyRows(i)}}),s.setCopySelectedDaysCallback(null),s.setCopyPreviousPeriodCallback(n.copyPreviousPeriod=function(){var t=s.getSelectedPeriod(),i;t.Accepted||(i=n.employmentData,s.getPreviousPeriodData().then(function(r){if(t&&r&&r.periodData&&r.periodData.selectedPeriod&&r.periodData.selectedPeriod.WorkingDays){var f=r.periodData.selectedPeriod.WorkingDays,u=[],e=a.getDateDifference(t.StartDate,r.periodData.selectedPeriod.StartDate);_.forEach(f,function(n){n.Date=a.getDateOnly(a.addDays(n.Date,e.days));n.Date<=t.EndDate&&u.push(n)});n.copyRows(u,{StartDate:t.StartDate,EndDate:t.EndDate},r.periodData.columnReasonCodes,r.periodData.otherReasonCodes,i)}}))}),n.isEmptyRow=function(n){if(!n||!n.ReasonCodes)return!0;for(var t=0;t<n.ReasonCodes.length;t++)if(n.ReasonCodes[t].Data)return!1;return!0},n.findRowIndex=function(n){var r=null,t=s.getSelectedPeriod(),i,u;if(t&&t.WorkingDays&&t.WorkingDays.length)for(i=0;i<t.WorkingDays.length;i++)if(u=t.WorkingDays[i],u==n){r=i;break}return r},n.addNewRow=function(t){var w=n.findRowIndex(t),nt=s.getDataFromTemporaryCache(k.SETTINGS),c,b,e,l,g,p,f,v,o,u,a;if(typeof w=="number"){if(c=[],nt&&nt.AddDefaultDimensionItemsToNewRow&&n.defaultsByDay&&n.defaultsByDay[t.Date.getTime()])for(b=n.defaultsByDay[t.Date.getTime()],e=0;e<b.length;e++)c.push({defaults:b[e].Dimensions});else c.push({defaults:null});for(e=0;e<c.length;e++){var tt=c[e],h={Date:t.Date,IdC:null,WorkingDayIdC:t.WorkingDayIdC,Checked:!1,Index:++w,Dimensions:[],ReasonCodes:[],DimensionUsage:angular.copy(t.DimensionUsage),ReasonCodeUsage:angular.copy(t.ReasonCodeUsage),RowKey:null,ShowDate:!1,Valid:t?t.Valid:!0}
1,d=s.getSelectedPeriod();if(d&&d.WorkingDays){if(l=s.getDataFromTemporaryCache(k.DIMENSIONS),l&&l.length)for(g={},o=0;o<l.length;o++){var r=l[o],y=null,i=null,it=null;r.ParentIdC&&(it=g[r.ParentIdC]||null);tt.defaults&&(p=tt.defaults[r.IdC],y=p?p.DimensionItemIdC:null,y&&(f=s.getDimensionItem(r.IdC,y),i={SubLevelRequired:p.SubLevelRequired},f&&(i.Code=f.Code,i.DimensionItemIdC=f.IdC,i.ReasonCodes=f.ReasonCodes,i.DimensionItemAutoGeneratingSettings=f.DimensionItemAutoGeneratingSettings,i.DimensionItemName=f.DimensionItemName,i.Source=f.Source,i.Texts=angular.copy(f.Texts),g[r.IdC]=i.DimensionItemIdC),i.IdC=y));a=h.DimensionUsage[r.IdC];h.Dimensions.push({DimensionIdC:r.IdC,SelectedItem:i,$showButton:!1,AllowDimensionItemAdding:r.AllowDimensionItemAdding,Required:a&&a.required?!0:!1,DefaultDimensionItemLock:r.DefaultDimensionItemLock?!0:!1,Hidden:r.Hidden?!0:!1,$parentItemIdC:it})}if(v=s.getDataFromTemporaryCache(k.COLUMN_REASONCODES),v&&v.length)for(o=0;o<v.length;o++)u=v[o],a=h.ReasonCodeUsage[u.IdC],h.ReasonCodes.push({ReasonCodeIdC:u.IdC,Data:null,UsageDisabled:a?!1:!0,ReadOnly:u.ReadOnly,DataType:u.DataType,UseCheckBox:u.Property.UseCheckBox,ShowUnitPrice:u.Property.ShowUnitPrice,AbsenceReasonCode:u.AbsenceReasonCode,BalanceRequired:u.BalanceRequired,DimensionItemRequired:u.DimensionItemRequired});d.WorkingDays.splice(w,0,h);n.activateRow(h,1)}}}},n.removeRow=function(t,i){var u,o,f,r;!i;var h=s.getDataFromTemporaryCache(k.REMOVED_ROWS),e=s.getSelectedPeriod(),c=!1;if(h&&e&&e.WorkingDays){if(t.ReasonCodes&&t.ReasonCodes.length)for(r=0;r<t.ReasonCodes.length;r++)if(u=t.ReasonCodes[r],u&&u.Data){if(u.Data.IdC){if(u.UsageDisabled||u.ReadOnly){c=!0;continue}u.Data.Date=t.Date;h.push(u.Data)}u.Data=null}if(o=n.findRowIndex(t),typeof o=="number"&&(f=n.findRowsForDate(t.Date),!c))if(f.length==1){if(t.Dimensions&&t.Dimensions.length)for(r=0;r<t.Dimensions.length;r++)t.Dimensions[r].SelectedItem=null,t.Dimensions[r].Invalid&&delete t.Dimensions[r].Invalid;t.Deleted=!0}else{for(r=0;r<f.length;r++)if(f[r]!=t){f[r].ShowDate=!0;break}e.WorkingDays.splice(o,1)}}t.Valid=!0},n.findRowsForDate=function(n){var u=[],t=s.getSelectedPeriod(),i,r;if(t&&t.WorkingDays&&t.WorkingDays.length)for(i=0;i<t.WorkingDays.length;i++)r=t.WorkingDays[i],r.Date.getTime()==n.getTime()&&u.push(r);return u},n.setPeriodData=function(){},n.openPeriodSelection=function(){},n.firstCellFocused=function(){n.scroll.headingMiddleElement||(n.scroll.headingMiddleElement=$(".editorDataHeading.middlePart",t)[0]);n.scroll.dataMiddleElement||(n.scroll.dataMiddleElement=$(".editorDataArea.middlePart",t)[0]);n.scroll.dataMiddleElement.scrollLeft=2e3;n.scroll.headingMiddleElement.scrollLeft=2e3;n.moveUp(n.cellsTotal+1)},n.lastCellFocused=function(){n.scroll.headingMiddleElement||(n.scroll.headingMiddleElement=$(".editorDataHeading.middlePart",t)[0]);n.scroll.dataMiddleElement||(n.scroll.dataMiddleElement=$(".editorDataArea.middlePart",t)[0]);n.scroll.dataMiddleElement.scrollLeft=0;n.scroll.headingMiddleElement.scrollLeft=0;n.moveDown(1)},n.cellFocus=function(t){if(n.focusHandling.eventsOff){t.stopPropagation();return}$(t.target).hasClass("lastCell")?n.lastCellFocused(t):n.firstCellFocused(t)},n.$on("cellFocus",function(t,i){n.cellFocus(i)}),n.moveDown=function(t){if(n.selectedRow){n.focusHandling.eventsOff=!0;n.focusToInvisibleCell();e(function(){n.focusHandling.eventsOff=!1});var u=null,r=n.findRowIndex(n.selectedRow),i=s.getSelectedPeriod();i&&typeof r=="number"&&r>=0&&i&&i.WorkingDays&&i.WorkingDays.length>r&&(u=r<i.WorkingDays.length-1?i.WorkingDays[r+1]:i.WorkingDays[0]);u&&n.activateRow(u,t)}},n.$on("moveDown",function(t,i){n.moveDown(i)}),n.moveUp=function(t){if(n.selectedRow){n.focusHandling.eventsOff=!0;n.focusToInvisibleCell();e(function(){n.focusHandling.eventsOff=!1});var u=null,r=n.findRowIndex(n.selectedRow),i=s.getSelectedPeriod();i&&typeof r=="number"&&r>=0&&i&&i.WorkingDays&&i.WorkingDays.length>r&&(u=r>0?i.WorkingDays[r-1]:i.WorkingDays[i.WorkingDays.length-1]);u&&n.activateRow(u,t)}},n.$on("moveUp",function(t,i){n.moveUp(i)}),n.activateRow=function(t,i,r){n.$parent.activateRow(t,i,r);n.selectedRow=t},n.swapShifts=function(t){var r=null,i;t.EmployeeLock||t.AcceptorLock||t.ProcessingLocks||(t.ShiftItems&&t.ShiftItems.length&&(r=t.ShiftItems[0].WorkPlanIdC),r)&&(i=s.get
1SelectedPeriod(),i)&&s.swapShifts(i.AllPeriodShifts,{Date:t.Date,WorkPlanIdC:r}).then(function(t){var v,h,c,l,f,e,o,r,u,s;if(t&&t.length&&(v=t[0].Operation==2,!v)){for(h=i.AllPeriodShifts,c={},r=0;r<t.length;r++)c[t[r].WorkPlanDataIdC]=!0;for(l=[],f={},r=0;r<h.length;r++)e=h[r],c[e.WorkPlanDataIdC]||(l.push(e),u=a.getDateOnly(e.StartTime),o=f[u.getTime()],o||(f[u.getTime()]=o=[]),o.push(e));for(i.AllPeriodShifts=l,r=0;r<i.WorkingDays.length;r++)u=i.WorkingDays[r],s=f[u.Date.getTime()],s||(s=[]),n.updateShiftsForDay(u,s),f[u.Date.getTime()]=null}})},n.promoteOtherReasonCodes=function(n,t,i,r,u){var f=[],e={},o,s;return t&&t.length&&_.forEach(t,function(n){e[n.IdC]=n}),o={},t&&t.length&&n.WorkingDays&&(_.forEach(n.WorkingDays,function(n){var i,t;r&&u&&(i=n.Date.getTime(),i<r.getTime()||i>u.getTime())||(t=n.WorkHours&&n.WorkHours.length?n.WorkHours:n.ReasonCodes,t&&t.length&&_.forEach(t,function(n){var t=n.ReasonCodeIdC;e[t]&&(o[t]=e[t])}))}),s=[],_.forEach(t,function(n,t){o[n.IdC]&&(n.Promoted=!0,s.push(t),f.push(n))}),_.forEachRight(s,function(n){t.splice(n,1)}),f.reverse(),_.forEach(f,function(n){i.push(n)})),f},n.applyReasonCodePromotion=function(n,t){n&&n.WorkingDays&&t&&_.forEach(n.WorkingDays,function(n){var i={};n.ReasonCodes&&_.forEach(n.ReasonCodes,function(n){i[n.ReasonCodeIdC]=!0});_.forEach(t,function(t){i[t.IdC]||n.ReasonCodes.push({ReasonCodeIdC:t.IdC,Data:null,DataType:t.DataType,ReadOnly:t.ReadOnly,UseCheckBox:t.Property.UseCheckBox,ShowUnitPrice:t.Property.ShowUnitPrice,AbsenceReasonCode:t.AbsenceReasonCode,BalanceRequired:t.BalanceRequired,DimensionItemRequired:t.DimensionItemRequired})})})},n.promoteOtherReasonCode=function(t,r){var u=null,f=s.getDataFromTemporaryCache(k.OTHER_REASONCODES),e=s.getDataFromTemporaryCache(k.COLUMN_REASONCODES),o=s.getSelectedPeriod();f&&e&&o&&(_.forEach(f,function(n){if(n.IdC===r.ReasonCodeIdC)return f.splice(i,1),u=n,!1}),u&&(e.push(u),n.applyReasonCodePromotion(o,[u]),t.ReasonCodes&&_.forEach(t.ReasonCodes,function(n){if(n.ReasonCodeIdC==r.ReasonCodeIdC)return n.Data=r.Data,!1})))},n.initialize(),this}]);angular.module("TiimaApp").controller("workhoursWeekEditor",["$scope","$element","$rootScope","$window","$q","$timeout","$uibModal","workhoursService","workhoursCacheService","employeeService","restrictionService","toolsService","localizationService","tiimaEnumsService","initPageService","workhourSettingsService","formatService","WORKHOURS_CACHE_DATASETS","Period","Workhour","Organisation","SalaryEventSummary","ProcessingInfo",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b){return n.dayCount=0,n.selectedRow=null,n.selectedWeek=-1,n.commentEditor={day:null,row:null,visible:!1,style:{left:0,top:0}},n.perDayReasonCodeUsages=null,n.defaultRows=null,n.footerHeight=null,n.totalHoursPerRow={},n.totalHours=0,n.totalStampHours=0,n.totalDifference=0,n.visibleDimensions=0,n.hiddenDimensionCount=0,n.hourReducingReasonCodes={},n.cellWidths={hourCell:125,"hourCell unitPriceCell":175,"hourCheckBoxCell hourCell":145,"hourCheckBoxCell hourCell unitPriceCell":175,timeRangeCell:125,"timeRangeCell unitPriceCell":175},n.editorCellClass="hourCell",n.initialize=function(){var t,i;console.log("workhourWeekEditorController.initialize");o.initializeWorkhours();o.setCellWidthExtra(25);t=o.getDataFromTemporaryCache(b.OPERATION_DIRECTIONS);t&&(t.rows=!1,t.days=!0,t.weeks=!0);i=o.getDataFromTemporaryCache(b.SETTINGS);i&&(console.log("workhourWeekEditorController.initialize -> applying settings"),n.applySettings(i));o.registerController("workhourWeekEditorController")},n.$on("workhourSettingsChanged",function(t,i){console.log("workhourWeekEditorController.workhourSettingsChanged");n.applySettings(i)}),n.$on("resetEmployeePeriod",function(){n.selectedWeek=-1}),n.$watch("selectedPeriod.SelectedWeek",function(t,i){t!=i&&(n.selectedWeek=angular.isUndefined(t)?-1:t)}),n.applySettings=function(t){switch(t.DimensionItemDisplayType){case 0:n.dimensionItemTemplate="{{Code}} {{localized:Name}}";break;case 1:n.dimensionItemTemplate="{{Code}}";break;case 2:n.dimensionItemTemplate="{{localized:Name}}"}var i=1;t.ShowStamps&&(i+=2);t.ShiftViewType&&i++;t.ShowStandBys&&i++;t.ShowOvertimeOrders&&i++;n.applyDimensionSettings();n.applyReasonCodeSettings(t.ReasonCodes);n.footerHeight=i*23+18+"px"},n.$on("autoCompleteValueChanged",function(){}),n.applyDimensionSettings=function(){var e,s,r,t,u,h,f,c,i;if(n.visibleDimensions=0,n.hiddenDimensionCount=0,e={},s=o.getDataFromTemporaryCache(b.DIMENSIONS),s){for(t=0;t<s.length;t++)i=s[t],i.Hidden?n.hiddenDimensionCount++:n.visibleDimensions++,e[i.IdC]=i;if(r=o.getSelectedPeriod(),r&&r.weeks)for(t=0;t<r.weeks.length;t++)if(u=r.weeks[t],u.rows&&u.rows.length)for(h=0;h<u.rows.length;h++)if(f=u.rows[h],f.dimensions&&f.dimensions.length)for(c=0;c<f.dimensions.length;c++)i=f.dimensions[c],e[i.DimensionIdC]&&(i.Hidden=e[i.DimensionIdC].Hidden)}n.updateScrollerWidth()},n.applyReasonCodeSettings=function(t){var i,r;if(n.hourReducingReasonCodes={},t)for(i=0;i<t.length;i++)r=t[i],n.hourReducingReasonCodes[r.ReasonCodeIdC]=!0},o.setPrepareOutputDataCallback(n.prepareDataForSaving=function(t,i){var w=o.getSelectedPeriod(),g,nt,rt,et,tt,c,y,u,lt,ni,p,r,it,k,f,ti,at,vt,a,e,d,yt,st,s,pt,wt,h,ht;if(!w||!w.weeks||!w.weeks.length)return null;if(g={},k=o.getDataFromTemporaryCache(b.REMOVED_ROWS),k&&k.length)for(h=0;h<k.length;h++)(nt=k[h],nt.IdC)&&(rt=g[nt.Date.getTime()],rt||(g[nt.Date.getTime()]=rt=[]),rt.push(nt));o.validate();o.setPristine(!1);var ut=null,bt={},kt={},dt={},gt={},ft=-1;if(t||i){if(i&&(ut={}),et=null,t.days)for(et={},h=0;h<t.days.length;h++)et[t.days[h].getTime()]=!0;for(h=0;h<w.weeks.length;h++){if(c=w.weeks[h],tt=et,!tt&&(tt={},c.days&&c.days.length))for(y=0;y<c.days.length;y++)r=c.days[y],r.Checked&&(tt[r.date.getTime()]=!0);if(c.rows&&c.rows.length)for(y=0;y<c.rows.length;y++)if(u=c.rows[y],u.days&&u.days.length)for(p=0;p<u.days.length;p++)r=u.days[p],i&&tt[r.date.getTime()]&&(ut[r.date.getTime()]=!0),t&&(t.accept&&r.AcceptorLock?bt[r.date.getTime()]=!0:t.reject&&!r.AcceptorLock?kt[r.date.getTime()]=!0:t.lock&&r.EmployeeLock?dt[r.date.getTime()]=!0:t.release&&!r.EmployeeLock&&(gt[r.date.getTime()]=!0))}}var ct=!0,ot={},ii=o.getSelectedEmployee();for(h=0;h<w.weeks.length;h++)if(c=w.weeks[h],c.rows&&c.rows.length)for(c.Valid=!0,y=0;y<c.rows.length;y++){if(u=c.rows[y],!u.Deleted){if(lt=!0,u.days&&u.days.length)for(p=0;p<u.days.length;p++)if(ni=u.days[p].Data,ni){lt=!1;break}lt||t&&(t.reject||t.release)||(u.Valid&&o.validateRow(u),u.Valid||(ft==-1&&(ft=h),ct=c.Valid=!1))}if(u.days&&u.days.length)for(p=0;p<u.days.length;
1p++)if(r=u.days[p],!ut||ut[r.date.getTime()]){if(s=ot[r.date.getTime()],s||(ot[r.date.getTime()]=s={IdC:r.workingDayIdC,WorkHours:[],EmployeeIdC:ii.IdC,PaymentGroupIdC:r.PaymentGroupIdC,Date:new Date(r.date.getTime()),NoEmployment:r.noEmployment?!0:!1,Changed:!1,Deleted:!1}),it=!1,t&&(t.accept&&!bt[r.date.getTime()]?(s.Changed=it=!0,s.AcceptorLock=1):t.reject&&!kt[r.date.getTime()]?(s.Changed=it=!0,s.AcceptorLock=0):t.lock&&!dt[r.date.getTime()]?(s.Changed=it=!0,s.EmployeeLock=1):t.release&&!gt[r.date.getTime()]&&(s.Changed=it=!0,s.EmployeeLock=0)),k=g[r.date.getTime()],k&&(s.Changed=!0,g[r.date.getTime()]=null),r.changed&&(s.Changed=!0),r.DescriptionChanged&&(s.Changed=!0),k&&k.length)for(a=0;a<k.length;a++)s.WorkHours.push({IdC:k[a].IdC,Deleted:!0});if(f=null,r.Data){if(o.isEmptyData(r.Data,u.ReasonCode))if(r.Data.IdC)r.Data.Deleted=!0;else continue;if(ti=u.ReasonCode&&u.ReasonCode.DataType==v.getValue("ReasonCodeDataTypeEnum","Hours")?60:1,f={IdC:r.Data.IdC,WorkHours:r.Data.Hours?u.ReasonCode&&u.ReasonCode.UseCheckBox?r.Data.Hours:r.Data.Hours*ti:null,ReasonCodeIdC:u.ReasonCode?u.ReasonCode.IdC:null,StartDate:r.Data.StartTime?r.Data.StartTime:null,EndDate:r.Data.EndTime?r.Data.EndTime:null,Changed:r.Data.Changed?!0:!1,Deleted:r.Data.Deleted?!0:!1,Description:r.Data.Description,DimensionItems:[],ReadOnly:r.readOnly},r.Data.Absence&&(f.Absence=!0,f.AbsenceStatus=r.Data.AbsenceStatus),!f.WorkHours&&f.StartDate&&f.StartDate.getTime&&f.EndDate&&f.EndDate.getTime&&f.StartDate.getTime()==f.EndDate.getTime()==0&&(f.Deleted=!0,!f.IdC))continue;if(f.IdC&&r.DescriptionChanged&&(f.Changed=!0,f.Description||(f.Description=" ")),u.ReasonCode&&u.ReasonCode.ShowUnitPrice&&r.Data.UnitPrice&&(f.UnitPrice=r.Data.UnitPrice),f.IdC){if(vt={},r.Data.WorkHour&&r.Data.WorkHour.DimensionItems)for(a=0;a<r.Data.WorkHour.DimensionItems.length;a++)e=r.Data.WorkHour.DimensionItems[a],vt[e.DimensionIdC]={IdC:e.IdC,DimensionIdC:e.DimensionIdC,DimensionItemIdC:e.DimensionItemIdC,Changed:!1,Deleted:!1};if(u.dimensions&&u.dimensions.length)for(a=0;a<u.dimensions.length;a++)e=u.dimensions[a],d=vt[e.DimensionIdC],d?e.SelectedItem&&e.SelectedItem.IdC!=d.DimensionItemIdC?d.Changed=!0:e.SelectedItem==null&&(d.Deleted=!0):e.SelectedItem&&(d={IdC:null,DimensionIdC:e.DimensionIdC,Changed:!1,Deleted:!1}),d&&e.SelectedItem&&(e.SelectedItem.Dynamic?(d.NewText=e.SelectedItem.Code?e.SelectedItem.Code:e.SelectedItem.DimensionItemName,d.DimensionItemIdC=null):d.DimensionItemIdC=e.SelectedItem.IdC,f.DimensionItems.push(d))}else{if(!f.WorkHours){if(!f.StartDate&&!f.EndDate)continue;f.StartDate?f.EndDate=l.getDateOnly(f.StartDate):f.StartDate=l.getDateOnly(f.EndDate)}if(u.dimensions&&u.dimensions.length)for(a=0;a<u.dimensions.length;a++)e=u.dimensions[a],e.SelectedItem&&(at={IdC:null,DimensionIdC:e.DimensionIdC,DimensionItemIdC:e.SelectedItem.IdC||null},f.DimensionItems.push(at),e.SelectedItem.Dynamic&&(at.NewText=e.SelectedItem.Code?e.SelectedItem.Code:e.SelectedItem.DimensionItemName))}s.WorkHours.push(f)}}}n.checkSymbols(w);yt=[];for(st in ot){if(s=ot[st],s)if(st<w.StartDate.getTime()||st>w.EndDate.getTime())s.ReadOnly=!0;else if(s.WorkHours&&s.WorkHours.length){for(pt=!0,wt=!1,h=0;h<s.WorkHours.length;h++)ht=s.WorkHours[h],ht.ReadOnly||(pt=!1),(ht.Changed||ht.Deleted)&&(wt=!0);wt&&(s.ReadOnly=pt)}yt.push(s)}return ct||ft==-1||(w.SelectedWeek=ft),{valid:ct,data:yt}}),n.checkSymbols=function(n){var s,t,e,r,u,f,h,i,o,c,a,l;if(n.Symbols=0,n&&n.weeks)for(s=0;s<n.weeks.length;s++)if(t=n.weeks[s],t.Symbols=0,t.rows){for(e={},r=0;r<t.days.length;r++)i=t.days[r],e[i.date.getTime()]={symbols:0,day:i};for(r=0;r<t.rows.length;r++)for(u=t.rows[r],f=0,(u.AcceptorLock==1||u.EmployeeLock==1)&&f++,(!u.Valid||u.Warning)&&f++,f>t.Symbols&&(t.Symbols=f),f>n.Symbols&&(n.Symbols=f),h=0;h<u.days.length;h++)i=u.days[h],o=0,(i.AcceptorLock==1||i.EmployeeLock==1)&&o++,(!i.Valid||i.Warning)&&o++,c=e[i.date.getTime()],c&&o>c.symbols&&(c.symbols=o);for(a in e)l=e[a],l.day.Symbols=l.symbols}},o.setPreparePeriodDataCallback(n.preparePeriodData=function(t){n.checkSymbols(t);t&&t.weeks&&n.getTotalHoursPerRow()}),o.setPrepareInputDataCallback(n.prepareData=function(t,i){var h=u.defer(),f={selectedPeriod:{StartDate:t.StartDate,EndDate:t.EndDate,EmploymentEndDate:null,Text:t.Code,WorkingDays:[],Accepted:!1,Locked:!1,PeriodType:t.PeriodType,RefIdC:t.RefIdC},Balances:t.Balances,dimensions:[],columnReasonCodes:[],otherReasonCodes:[]}
1,c=n.employmentData=t.EmploymentData,e=t.StartDate,s=t.EndDate;return u.all([o.getDimensions({DateRange:{StartDate:t.StartDate,EndDate:t.EndDate},FirstIndex:0,ItemCount:1e5,noCopy:!0}),o.getColumnAndOtherReasonCodes({DateRange:{StartDate:t.StartDate,EndDate:t.EndDate},FirstIndex:0,ItemCount:1e5}),]).then(function(u){var bt,yi,ui,oi,iu,si,hr,cr,wi,bi,uu,ou,su,di,cu,lu,nr,d,li,tr,nt,ni,au,ir,vu,yt,lr,at,ti,rr,yu,ar,ai,vr,yr,ur,ut,et,ot,pr,pt,fr,er,g,ii,wr,ei,fi,wt,tt,y,ft,gr,a,p,rt,or,k,bu;f.dimensions=u[0]&&u[0].DataList?u[0].DataList:null;f.reasonCodes=u[1]&&u[1].DataList?u[1].DataList:null;var vi=o.getDataFromTemporaryCache(b.SETTINGS),sr=0,nu=new Date,ku=o.getPermission("allowEditAcceptedAbsences"),du=v.getValue("TransactionStatusEnum","Accepted"),tu=v.getValue("TransactionStatusEnum","Transferred"),lt=new Date(t.StartDate.getTime()),ri=new Date(t.EndDate.getTime());if(lt=new Date(lt.setDate(lt.getDate()-(lt.getDay()?lt.getDay()-1:6))),ri=new Date(ri.setDate(ri.getDate()-(ri.getDay()?ri.getDay()-7:0))),bt={},n.visibleDimensions=0,n.hiddenDimensionCount=0,vi&&vi.Dimensions)for(g=0;g<vi.Dimensions.length;g++)yi=vi.Dimensions[g],bt[yi.DimensionIdC]=yi.Hidden,yi.Hidden?n.hiddenDimensionCount++:n.visibleDimensions++;if(ui={},t.Accepted&&(f.selectedPeriod.Accepted=!0),t.Locked&&(f.selectedPeriod.Locked=!0),t.Processed&&(f.selectedPeriod.Processed=!0),f.selectedPeriod.NoProcessingLocks=o.checkPeriodLocks(t.WorkingDays,e,s),f.selectedPeriod.AllPeriodShifts=[],f.selectedPeriod.Absences=!1,f.selectedPeriod.TravelClaims=null,o.prepareReasonCodeBalances(f.Balances,f.reasonCodes,!1),t.WorkingDays){for(oi={},g=0;g<t.WorkingDays.length;g++){if(p=t.WorkingDays[g],p.Date.getTime()>=e.getTime()&&p.Date.getTime()<=s.getTime()){if(p.Shifts)for(tt=0;tt<p.Shifts.length;tt++)iu=p.Shifts[tt],f.selectedPeriod.AllPeriodShifts.push(angular.copy(iu));p.Absences&&p.Absences.length&&(f.selectedPeriod.Absences=!0)}if(p.TravelClaims)for(tt=0;tt<p.TravelClaims.length;tt++)si=p.TravelClaims[tt],l.getDateOnly(si.StartDate).getTime()<=s.getTime()&&l.getDateOnly(si.EndDate).getTime()>=e.getTime()&&(oi[si.IdC]=si)}for(hr in oi)f.selectedPeriod.TravelClaims?f.selectedPeriod.TravelClaims.push(oi[hr]):f.selectedPeriod.TravelClaims=[oi[hr]]}if(cr={},f.reasonCodes&&f.reasonCodes.length)for(g=0;g<f.reasonCodes.length;g++)ft=f.reasonCodes[g],cr[ft.IdC]=g+1;var kt=l.getDateDifference(ri,lt),it=o.prepareUsages(c,f.dimensions,[f.reasonCodes],lt,kt.days),ff=it?it.perDayUsages:{},pi=it?it.perDayReasonCodeUsages:{},ef=it?it.currentEmploymentData:null,hi=it?it.lastIndex:-1,ru=it?it.firstIndex:0,gu=it?new Date(it.employmentStartDate):e,nf=it?new Date(it.employmentEndDate):e,tf=it?it.noEmploymentDays:{},rf=it?it.generalUsage:{};if(n.perDayReasonCodeUsages=pi,ru>0&&(wi=7*Math.floor(ru/7),kt.days-=wi,hi>-1&&(hi-=wi),lt=l.getDateOnly(l.addDays(lt,wi)),kt.days>0?f.EmploymentStartDate=new Date(gu.getTime()):f.selectedPeriod.NoEmployment=!0),hi<kt.days&&(kt.days=hi,hi>-1?f.selectedPeriod.EmploymentEndDate=new Date(nf.getTime()):f.selectedPeriod.NoEmployment=!0),f.dimensions=o.filterDimensionsByUsage(f.dimensions,rf),bi={},f.dimensions&&f.dimensions.length)for(g=0;g<f.dimensions.length;g++)uu=f.dimensions[g],ui[uu.IdC]=g+1,bi[f.dimensions[g].IdC]=!0;var ci=f.dimensions&&f.dimensions.length?f.dimensions.length:0,dt="#def#",fu={},vt=[],eu={},ki=0;for(g=0;g<=kt.days;g++)nt=l.getDateOnly(l.addDays(lt,g)),d=vt.length>0?vt[vt.length-1]:null,ki||(vt.push(d={days:[],rows:[],startDate:new Date(nt.getTime()),endDate:new Date(l.getDateOnly(l.addDays(nt,6)).getTime()),noEmployment:!0,employmentStartDate:null,employmentEndDate:null,workingDays:null,Valid:!0,Locked:!1,Accepted:!1}),ou=r.moment(nt).format("W"),d.weekNumber=ou,d.weekIndex=vt.length-1,d.startDate.getTime()<=nu.getTime()&&nu.getTime()<new Date(l.getDateOnly(l.addDays(d.endDate,1)).getTime()).getTime()&&(sr=vt.length-1)),su=nt.getTime()<e.getTime()||nt.getTime()>s.getTime(),di={date:new Date(nt.getTime()),disabled:su,noEmployment:tf[nt.getTime()]?!0:!1,workingDay:null,week:d,dateKey:nt.getFullYear()+"/"+nt.getMonth()+"/"+nt.getDate(),dateID:nt.getTime(),stampHours:0,totalHours:0,shifts:null,
1shiftsShort:null,shiftItems:null,workPlan:!1,standBy:null,Valid:!0},di.noEmployment||(d.noEmployment&&ki>0&&(d.employmentStartDate=new Date(nt.getTime())),d.noEmployment=!1),g==kt.days&&f.EmploymentEndDate&&(d.employmentEndDate=new Date(f.EmploymentEndDate.getTime())),d.days.push(di),eu[nt.getTime()]=d,fu[nt.getTime()]=di,ki=++ki%7;f.selectedPeriod.weeks=vt;var hu={},ht={},uf=0,gt=0,gi=o.prepareDefaults(t.Defaults,e,s);if(i||(n.defaultRows=gi),gi&&gi.length&&f.dimensions&&f.dimensions.length&&_.forEach(gi,function(n){var t=[],i=[],r,u;n.Dimensions&&(r={},_.forEach(f.dimensions,function(u){var h=u.IdC,c,s,l,f,e,a;bi[h]&&(c=n.Dimensions[h],s=c?c.DimensionItemIdC:null,s||(s=null),l=null,u.ParentIdC&&(l=r[u.ParentIdC]||null),t.push(s),f=null,s&&(e=o.getDimensionItem(h,s),f={SubLevelRequired:c.SubLevelRequired},e&&(f.Code=e.Code,f.DimensionItemIdC=e.IdC,f.ReasonCodes=e.ReasonCodes,f.DimensionItemAutoGeneratingSettings=e.DimensionItemAutoGeneratingSettings,f.DimensionItemName=e.DimensionItemName,f.Source=e.Source,f.Texts=angular.copy(e.Texts),r[u.IdC]=f.DimensionItemIdC),f.IdC=f.DimensionItemIdC),a=ui[h],i[ui[h]-1]={DimensionIdC:h,DimensionItemIdC:s,SelectedItem:f,$parentItemIdC:l,Required:u.DimensionItemRequired,DefaultDimensionItemLock:u.DefaultDimensionItemLock,$showButton:!1,Hidden:bt[u.IdC]?!0:!1,AllowDimensionItemAdding:u.AllowDimensionItemAdding})}));t.push("@"+dt);t.push("#nostatus#");n.rowKey=t.join(";");_.forEach(f.dimensions,function(n,t){i[t]||(i[t]={DimensionIdC:f.dimensions[t].IdC,DimensionItemIdC:null,Required:f.dimensions[t].DimensionItemRequired,DefaultDimensionItemLock:f.dimensions[t].DefaultDimensionItemLock,$showButton:!1,Hidden:bt[f.dimensions[t].IdC]?!0:!1,AllowDimensionItemAdding:f.dimensions[t].AllowDimensionItemAdding})});u={};dt&&(u[dt]=[]);ht[n.rowKey]||(ht[n.rowKey]={index:gt++,originalIndex:gt,reasonCodes:u,dimensions:i})}),t.WorkingDays&&t.WorkingDays.length)for(g=0;g<t.WorkingDays.length;g++)p=t.WorkingDays[g],d=eu[p.Date.getTime()],d&&(d.workingDays?d.workingDays.push(p):d.workingDays=[p]);for(cu=ht,lu=gt,nr=0;nr<vt.length;nr++){if(d=vt[nr],ht=angular.copy(cu),gt=lu,li={},d.reasonCodeUsage={},d.Locked=d.workingDays&&d.workingDays.length?!0:!1,d.Accepted=d.workingDays&&d.workingDays.length?!0:!1,d.workingDays&&d.workingDays.length)for(g=0;g<d.workingDays.length;g++){if(p=d.workingDays[g],tr=pi[p.Date.getTime()],tr)for(fi in tr)d.reasonCodeUsage[fi]=tr[fi];if(nt=fu[p.Date.getTime()],nt){if(nt.disabled||(p.EmployeeLock||(d.Locked=!1),p.AcceptorLock||(d.Accepted=!1)),nt.workingDay=p,nt.ProcessingLocks=p.ProcessingLocks,nt.AcceptorLock=p.AcceptorLock,nt.EmployeeLock=p.EmployeeLock,nt.stampHours=p.StampsSum,nt.Valid=angular.isUndefined(p.Valid)?!0:p.Valid,p.Shifts&&n.updateShiftsForDay(nt,p.Shifts
1),p.StandBys)for(nt.standBy||(nt.standBy=""),tt=0;tt<p.StandBys.length;tt++)ni=p.StandBys[tt],au=w.getFormattedDate(ni.StartDate)+" "+w.getFormattedHours(ni.StartDate,!0)+" - "+w.getFormattedDate(ni.EndDate)+" "+w.getFormattedHours(ni.EndDate,!0)+" ("+ni.ReasonCode+" "+ni.Description+")",nt.standBy&&(nt.standBy+=", "),nt.standBy+=au;if(p.OvertimeOrders)for(nt.overtimeOrder||(nt.overtimeOrder=""),tt=0;tt<p.OvertimeOrders.length;tt++)ir=p.OvertimeOrders[tt],vu=w.getFormattedDate(ir.StartDate)+" - "+w.getFormattedDate(ir.EndDate)+" ("+ir.Description+")",nt.overtimeOrder&&(nt.overtimeOrder+=", "),nt.overtimeOrder+=vu}if(p&&p.WorkHours)for(yt=0,p.EmployeeLock&&(yt=1),p.AcceptorLock&&(yt=2),p.ProcessingLocks&&(yt=3),tt=0;tt<p.WorkHours.length;tt++){var k=p.WorkHours[tt],ct=[],st=[];if(k.ReasonCodeIdC&&(ft=o.getReasonCode(k.ReasonCodeIdC),ft&&ft.ReasonCodeType==v.getValue("ReasonCodeType","AddHours")&&(lr=1,n.hourReducingReasonCodes[k.ReasonCodeIdC]&&(lr=-1),nt.totalHours+=k.WorkHours*lr)),k.DimensionItems&&k.DimensionItems.length)for(a=0;a<k.DimensionItems.length;a++)(at=k.DimensionItems[a],bi[at.DimensionIdC])&&at.DimensionItemIdC&&(ti=ui[at.DimensionIdC],ti||(ti=++ci,ui[at.DimensionIdC]=ti),ct[ti-1]=at.DimensionItemIdC,st[ti-1]={DimensionIdC:at.DimensionIdC,DimensionItemIdC:at.DimensionItemIdC,DefaultDimensionItemLock:at.DefaultDimensionItemLock,$showButton:!1,AllowDimensionItemAdding:at.AllowDimensionItemAdding});if(ct.length<ci)for(rr=ct.length;rr<ci;rr++)ct[rr]=null;for(yu=ct.join(";")+";@"+dt+";#nostatus#",ct[ci]="@"+k.ReasonCodeIdC,ar=ct.join(";")+";#nostatus#",ct[ci+1]=yt,k.plainDimensionRowKey=ct.join(";"),k.dimensionRowKey=ct.join(";"),ai=k.dimensionRowKey+";D"+p.Date.getTime(),li[ai]?(vr="#"+li[ai],ct.push(vr),k.dimensionRowKey+=";"+vr,li[ai]++):li[ai]=1,yr={},a=0;a<f.dimensions.length;a++)ur=null,f.dimensions[a].ParentIdC&&(ur=yr[f.dimensions[a].ParentIdC]||null),st[a]?(ut=o.getDimensionItem(st[a].DimensionIdC,st[a].DimensionItemIdC),et={},ut&&(et.Code=ut.Code,et.DimensionItemIdC=ut.IdC,et.ReasonCodes=ut.ReasonCodes,et.DimensionItemAutoGeneratingSettings=ut.DimensionItemAutoGeneratingSettings,et.DimensionItemName=ut.DimensionItemName,et.Source=ut.Source,et.Texts=angular.copy(ut.Texts),et.StartDate=ut.StartDate&&ut.StartDate.getTime?ut.StartDate:null,et.EndDate=ut.EndDate&&ut.EndDate.getTime?ut.EndDate:null,et.SubLevelRequired=ut.SubLevelRequired,yr[f.dimensions[a].IdC]=et.DimensionItemIdC),et.IdC=et.DimensionItemIdC,st[a].SelectedItem=et,st[a].Required=f.dimensions[a].DimensionItemRequired,st[a].Hidden=bt[f.dimensions[a].IdC]?!0:!1,st[a].DefaultDimensionItemLock=f.dimensions[a].DefaultDimensionItemLock,st[a].AllowDimensionItemAdding=f.dimensions[a].AllowDimensionItemAdding,st[a].$showButton=!1,st[a].$parentItemIdC=ur):st[a]={DimensionIdC:f.dimensions[a].IdC,DimensionItemIdC:null,$parentItemIdC:ur,Required:f.dimensions[a].DimensionItemRequired,DefaultDimensionItemLock:f.dimensions[a].DefaultDimensionItemLock,$showButton:!1,Hidden:bt[f.dimensions[a].IdC]?!0:!1,AllowDimensionItemAdding:f.dimensions[a].AllowDimensionItemAdding};k.dimensionRowKey||(k.dimensionRowKey=";");k.rowKey=ct.join(";");ot=hu[k.rowKey];ot||(hu[k.rowKey]=ot={index:0,originalIndex:uf++,workHours:[]});ot.workHours.push(k);ot=ht[k.dimensionRowKey];ot||(ot=ht[ar],ot||(pr=ht[yu],pr&&(pr.Removed=!0)),ot?(delete ht[ar],ht[k.dimensionRowKey]=ot):(ht[k.dimensionRowKey]=ot={index:gt,originalIndex:gt,reasonCodes:{},dimensions:st,EmployeeLock:yt==1,AcceptorLock:yt==2,ProcessingLocks:yt==3},gt++));ft=ot.reasonCodes[k.ReasonCodeIdC];ft||(ot.reasonCodes[k.ReasonCodeIdC]=ft=[]);ft.push(k);ot.plainDimensionRowKey=k.plainDimensionRowKey}}pt=[];for(fr in ht)y=ht[fr],pt[y.index]=y,y.rowKey=fr,y.plainDimensionRowKey||(y.plainDimensionRowKey=fr);for(er=[],g=0;g<pt.length;g++)y=pt[g],y.Removed||(y.index=er.length,er.push(y));for(pt=er,pt.sort(function(n,t){return n.rowKey<t.rowKey?-1:t.rowKey<n.rowKey?1:0}),ii=n.findDefaultReasonCodes(f.reasonCodes,pi,d.startDate,d.endDate),tt=0;tt<pt.length;tt++){if(y=pt[tt],wr=!1,y.reasonCodes){ei=[];for(fi in y.reasonCodes){if(wt=[],fi==dt&&ii)for(a=0;a<ii.length;a++)wt.push(ii[a].IdC);else wt.push(fi);for(a=0;a<wt.length;a++){var ti=cr[wt[a]],pu=y.rowKey.replace(/#def#/,wt[a]),wu=y.plainDimensionRowKey.replace(/#def#/,wt[a]);
1ei.push({index:ti,days:[],reasonCodeIdC:wt[a],rowKey:pu==";"?"":pu,plainDimensionRowKey:wu==";"?"":wu,dimensions:angular.copy(y.dimensions),Valid:!0,EmployeeLock:y.EmployeeLock,AcceptorLock:y.AcceptorLock,ProcessingLocks:y.ProcessingLocks,$showReasonCodeButton:!1})}}if(ei.length)for(wr=!0,ei.sort(function(n,t){return n.index<t.index?-1:n.index>t.index?1:0}),a=0;a<ei.length;a++)d.rows.push(ei[a])}wr||d.rows.push({index:0,days:null,reasonCodeIdC:null,workingDay:null,rowKey:y.rowKey==";"?"":y.rowKey,plainDimensionRowKey:y.plainDimensionRowKey==";"?"":y.plainDimensionRowKey,Valid:!0,dimensions:y.dimensions?angular.copy(y.dimensions):null,EmployeeLock:y.EmployeeLock,AcceptorLock:y.AcceptorLock,ProcessingLocks:y.ProcessingLocks,$showReasonCodeButton:!1})}if((!d.rows||!d.rows.length)&&ii)for(a=0;a<ii.length;a++)d.rows=[{index:0,reasonCodeIdC:dt,ReasonCode:ii[a],rowKey:"",plainDimensionRowKey:"",workingDay:null,days:null,Valid:!0,EmployeeLock:f.selectedPeriod.Locked?1:0,AcceptorLock:f.selectedPeriod.Accepted?1:0,ProcessingLocks:f.selectedPeriod.Processed?1:0,$showReasonCodeButton:!1}];for(tt=0;tt<d.rows.length;tt++){if(y=d.rows[tt],y.reasonCodeIdC&&(y.reasonCodeIdC==dt&&(y.reasonCodeIdC=y.ReasonCode?y.ReasonCode.IdC:null),ft=o.getReasonCode(y.reasonCodeIdC),ft&&(y.ReasonCode=angular.copy(ft),y.ReasonCode.UseCheckBox=ft.Property.UseCheckBox,y.ReasonCode.ShowUnitPrice=ft.Property.ShowUnitPrice,n.setReasonCodeClass(ft))),y.dimensions||(y.dimensions=[]),f.dimensions)for(a=0;a<f.dimensions.length;a++)y.dimensions[a]||(y.dimensions[a]={DimensionIdC:f.dimensions[a].IdC,DimensionItemIdC:null,Required:f.dimensions[a].DimensionItemRequired,DefaultDimensionItemLock:f.dimensions[a].DefaultDimensionItemLock,$showButton:!1,Hidden:bt[f.dimensions[a].IdC]?!0:!1,AllowDimensionItemAdding:f.dimensions[a].AllowDimensionItemAdding});var br=0,kr=0,dr=0;for(d.days.length&&(br=1,kr=1,dr=1),gr=!1,a=0;a<d.days.length;a++)if(p=d.days[a],rt=n.getNewDayFromTemplate(p),y.days||(y.days=[]),y.days.push(rt),rt.reasonCodeUsage=pi[rt.date.getTime()],p.workingDay&&(rt.ProcessingLocks||(br=0),rt.AcceptorLock||(kr=0),rt.EmployeeLock||(dr=0),gr=!0),rt.reasonCodeUsage&&(!y.ReasonCode||rt.reasonCodeUsage[y.ReasonCode.IdC])||(rt.readOnly=!0),p.workingDay&&p.workingDay.WorkHours)for(or=0;or<p.workingDay.WorkHours.length;or++)k=p.workingDay.WorkHours[or],k.rowKey==y.rowKey&&k.ReasonCodeIdC==y.reasonCodeIdC&&(rt.workhours.push(k),(k.DateRangeAbsence||k.Status==tu||k.AbsenceStatus==tu)&&(rt.readOnly=!0),k.AbsenceStatus!=du||ku||(rt.readOnly=!0),y.ReasonCode?(bu=y.ReasonCode.DataType==v.getValue("ReasonCodeDataTypeEnum","Hours")?60:1,rt.Data={Hours:y.ReasonCode.UseCheckBox?k.WorkHours:k.WorkHours/bu,WorkHour:k,Invalid:!1,StartTime:k.StartDate,EndTime:k.EndDate,IdC:k.IdC,Absence:k.Absence,AbsenceStatus:k.AbsenceStatus,Description:k.Description,ReadOnly:rt.readOnly},y.ReasonCode.ShowUnitPrice&&k.UnitPrice&&(rt.Data.UnitPrice=k.UnitPrice)):rt.Data={Hours:k.WorkHours,Description:k.Description});gr||(y.ProcessingLocks||(y.ProcessingLocks=br),y.AcceptorLock||(y.AcceptorLock=kr),y.EmployeeLock||(y.EmployeeLock=dr));o.setupDefaultDimensionItemDependencies(y)}}i||(n.selectedWeek==-1&&sr>0&&(n.selectedWeek=sr),f.selectedPeriod.SelectedWeek=!isNaN(n.selectedWeek)&&n.selectedWeek!=-1?n.selectedWeek:0,n.selectedWeek=f.selectedPeriod.SelectedWeek,n.dayCount=f.selectedPeriod.weeks&&f.selectedPeriod.weeks.length>f.selectedPeriod.SelectedWeek&&f.selectedPeriod.weeks[f.selectedPeriod.SelectedWeek].days?f.selectedPeriod.weeks[f.selectedPeriod.SelectedWeek].days.length:0);h.resolve(f)}),h.promise}),n.findDefaultReasonCodes=function(n,t,i,r){var c,u,y,a,s,f;if(!n||!t||!i||!r)return null;var p=l.getDateDifference(r,i),v=[],h=o.getDefaultReasonCodeIdC(),e=[];for(h&&e.push(o.getReasonCode(h)),u=0;u<n.length;u++)f=n[u],f.IdC!=h&&e.push(f);for(c={},u=0;u<=p.days;u++)if(y=l.getDateOnly(l.addDays(i,u)),a=t[y.getTime()],a)for(s=0;s<e.length;s++)if(f=e[s],a[f.IdC]){c[f.IdC]||(c[f.IdC]=!0,v.push(f));break}return v},o.setUpdateScrollerWidthCallback(n.updateScrollerWidth=function(){var t=o.getDataFromTemporaryCache(b.DIMENSIONS),i=0,f=0,r,u;if(t)if(n.visibilityOptions.ShowHiddenDimensions)i=t?t.length:0;else for(r=0;r<t.length;r++)t[r].Hidden?f++:i++;n.visibleDimensions=i;n.hiddenDimensionCount=f;n.cellsTotal=i+1+n.dayCount;u=n.cellWidths[n.editorCellClass];u||(u=100);n.scroll.width=o.calculateScrollWidth(t,[],!0,!1,n.visibilityOptions.ShowHiddenDimensions)+n.dayCount*u}),o.setFindCheckedRowsCallback(n.findCheckedRows=function(n){var u={rows:{},days:{}},r,t,f,i,e;if(!n&&(r=o.getSelectedPeriod(),r&&r.weeks&&!isNaN(r.SelectedWeek))){if(t=r.weeks[r.SelectedWeek],t&&t.days)for(i=0;i<t.days.length;i++)f=t.days[i],f.Checked&&(u.days[f.date.getTime()]=[0]);if(t&&t.rows)for(i=0;i<t.rows.length;i++)e=t.rows[i],e.Checked&&(u.rows["row_"+i]=[0])}return u}),o.setCheckRowsCallback(n.checkRows=function(n){var r={rowsSelected:!1,daysSelected:!1,notAcceptedDaysSelected:!1,acceptedDaysSelected:!1,notLockedDaysSelected:!1,lockedDaysSelected:!1},u,t,f,i,e;if(n&&(u=o.getSelectedPeriod(),u&&u.weeks&&!isNaN(u.SelectedWeek))){if(t=u.weeks[u.SelectedWeek],t&&t.days)for(i=0;i<t.days.length;i++)f=t.days[i],n.days&&n.days[f.date.getTime()]&&(f.Checked=!0,r.daysSelected=!0,f.AcceptorLock?r.acceptedDaysSelected=!0:r.notAcceptedDaysSelected=!0,f.EmployeeLock?r.lockedDaysSelected=!0:r.notLockedDaysSelected=!0);if(t&&t.rows)for(i=0;i<t.rows.length;i++)e=t.rows[i],n.rows&&n.rows["row_"+i]&&(e.Checked=!0,r.rowsSelected=!0)}return r}),n.onWeekSelected=function(t){var i=o.getSelectedPeriod();i&&(i.Symbols=t.Symbols,i.SelectedWeek=t.weekIndex,n.dayCount=t.days?t.days.length:0);n.updateScrollerWidth();n.getTotalHoursPerRow()},n.onRowChecked=function(n){if(n.ProcessingLocks){n.Checked=!1;return}var t=o.getSelectedPeriod(),i=o.getDataFromTemporaryCache(b.SELECTIONFLAGS);i&&o.setCheckedFlags(i,n,t?t.rows:null,!1)},n.onDayChecked=function(n,t){var i=o.getDataFromTemporaryCache(b.SELECTIONFLAGS);i&&o.setCheckedFlags(i,t,n?n.days:null,!0)},n.onRowClick=function(t,i){var e=0,r,u;if(i&&i.target&&i.target.tagName){var f=i.target.tagName,r=$(i.target),o=f==="INPUT"||f==="BUTTON";if(f==="SPAN"&&(o=r.parent().prop("tagName")==="BUTTON"),o){n.commentEditor.visible=!1;i.stopPropagation();return}}($(i.target).hasClass("commentIcon")||$(i.target).parent().hasClass("commentIcon")||(n.commentEditor.visible=!1),t&&t.ProcessingLocks)||t&&t.AcceptorLock||t&&t.EmployeeLock||n.readOnly||(r=$(i.target),u=0,r.hasClass("endTime")?u=1:(r.parent().hasClass("unitPrice")||r.parent().parent().hasClass("unitPrice"))&&(u=2),t&&i&&(i.stopPropagation(),t!=null&&(e=n.findCellIndex(i.target))),n.activateRow(t,e,u))},n.onChangeDimensionItem=function(t,i,r){var f,u,e;if(i){if(f=!1,u="",i.SelectedItem&&(typeof i.SelectedItem=="string"&&i.AllowDimensionItemAdding?(u=i.SelectedItem.trim(),u.length>0?f=!0:i.SelectedItem=null):i.SelectedItem.IdC?f=!0:i.SelectedItem=null),f){if(typeof i.SelectedItem=="string"&&i.AllowDimensionItemAdding){if(i.SelectedItem={IdC:0,DimensionItemIdC:0,DimensionIdC:i.DimensionIdC,Changed:!0,Deleted:!1,Dynamic:!0,Source:3},e=o.getDataFromTemporaryCache(b.SETTINGS),e)switch(e.DimensionItemDisplayType){case 0:case 1:i.SelectedItem.Code=u;break;case 2:i.SelectedItem.DimensionItemName=u}}else o.clearSubDimensions(t,i),o.handleDefaultDimensions(t,i);i.Changed=!0;i.Deleted&&delete i.Deleted}else i.Deleted=!0,t.dimensions&&(o.clearSubDimensions(t,i),o.clearDefaultDimensions(t,i));o.setChanged(!0);o.validateRow(t);n.activateRow(t,r+1)}},n.onChangeReasonCode=function(t,i){var r,u;if(n.setReasonCodeClass(i),t&&t.days)for(r=0;r<t.days.length;r++)u=t.days[r],u.Data&&u.Data.IdC&&(u.Data.Changed=!0);i&&(t.ReasonCode=angular.copy(i),t.ReasonCode.UseCheckBox=i.Property.UseCheckBox,t.ReasonCode.ShowUnitPrice=i.Property.ShowUnitPrice);n.updateScrollerWidth()},n.onDescriptionChanged=function(t,i){i.Data&&i.Data.IdC&&(i.Data.Changed=!0,i.DescriptionChanged=!0);o.setChanged(!0);n.validateCell(t,i);n.validateRow(t)},n.onDataChanged=function(t,i,r){var s,h,u,f,e;if(i&&i.Data){if(s=!i.Data.StartTime||i.Data.StartTime.getTime&&!(i.Data.StartTime.getTime()-(new Date).getTimezoneOffset()*6e4),h=!i.Data.EndTime||i.Data.EndTime.getTime&&!(i.Data.EndTime.getTime()-(new Date).getTimezoneOffset()*6e4),!i.Data.Hours&&s&&h){if(i.Data.IdC?(i.Data.Hours=i.Data.StartTime=i.Data.EndTime=null,i.Data.Deleted=!0,t.Changed=!0):i.Data=null,!t.Errors||!t.Errors.length)return}else t.ReasonCode&&t.ReasonCode.DataType==v.getValue("ReasonCodeDataTypeEnum","StartAndEndTime")?(u=i.Data.StartTime&&i.Data.StartTime.getTime?new Date(i.Data.StartTime.getTime()):null,f=i.Data.EndTime&&i.Data.EndTime.getTime?new Date(i.Data.EndTime.getTime()):null,u&&f&&(e=new Date(i.date.getTime()),u.getTime()<1728e5&&(u=l.setDatePart(u,e)),f.getTime()<1728e5&&(f=l.setDatePart(f,e)),u=(u.getTime()-(new Date).getTimezoneOffset()*6e4)%864e5,f=(f.getTime()-(new Date).getTimezoneOffset()*6e4)%864e5,i.Data.Hours=(f-u)/6e4)):t.ReasonCode&&t.ReasonCode.DataType==v.getValue("ReasonCodeDataTypeEnum","Hours")&&i.Data.Hours>23+59/60&&(i.Data.Hours=23+59/60);t.ReasonCode&&t.ReasonCode.ReasonCodeType==v.getValue("ReasonCodeType","AddHours")&&(n.recalculateTotalHours(r,new Date(i.date.getTime())),n.getTotalHoursPerRow())}i.Data&&i.Data.IdC&&(i.Data.Changed=!0);o.setChanged(!0);n.validateCell(t,i);n.validateRow(t)},n.getTotalHoursPerRow=function(){var f,l,e,i,y,s,p,r,t;n.totalHoursPerRow={};var a=0,h=0,c=0,u=o.getSelectedPeriod();if(u&&u.weeks&&!isNaN(u.SelectedWeek)&&u&&u.weeks){if(f=u.weeks[u.SelectedWeek],f){for(l=f.rows,e=0;e<l.length;e++)if(i=l[e],i.ReasonCode){for(y=i.ReasonCode.DataType==v.getValue("ReasonCodeDataTypeEnum","StartAndEndTime")?60:1,s=0,r=0;r<i.days.length;r++)t=i.days[r],t.Data&&t.Data.Hours&&(s+=parseFloat(t.Data.Hours/y));p={IdC:i.rowKey,TotalHours:s,DataType:i.ReasonCode.DataType};n.totalHoursPerRow[i.rowKey]=p;a+=s}if(f.days)for(r=0;r<f.days.length;r++)t=f.days[r],t&&t.stampHours&&(h=h+t.stampHours),t.totalHours&&(c=c+(t.totalHours/60-t.stampHours))}n.totalHours=a;n.totalStampHours=h;n.totalDifference=c}},n.recalculateTotalHours=function(t,i){var s,c,u,e,y,a,h,r,l,f;if(!t){if(s=o.getSelectedPeriod(),!s||!s.weeks||isNaN(s.SelectedWeek))return;t=s.weeks[s.SelectedWeek]}if(t&&t.days&&t.rows){for(c={},r=0;r<t.rows.length;r++)if(u=t.rows[r],u.ReasonCode&&u.ReasonCode.ReasonCodeType==v.getValue("ReasonCodeType","AddHours")&&u.days)for(f=0;f<u.days.length;f++)e=u.days[f],e.Data&&e.Data.Hours&&(c[e.date.getTime()]||(c[e.date.getTime()]=[]),y=u.ReasonCode.DataType==v.getValue("ReasonCodeDataTypeEnum","Hours")?60:1,a=1,n.hourReducingReasonCodes[u.ReasonCode.IdC]&&
1(a=-1),c[e.date.getTime()].push({Hours:e.Data.Hours*y*a}));for(h=null,r=0;r<t.days.length;r++)if(!i||t.days[r].date.getTime()==i.getTime()){if(h=t.days[r],h&&(h.totalHours=0,l=c[h.date.getTime()],l))for(f=0;f<l.length;f++)h.totalHours+=l[f].Hours;if(i)break}}},o.setValidateCellCallback(n.validateCell=function(t,i){var r=i.Data,h,u,f;if((n.pristine=!1,(!t||!t.AcceptorLock)&&(!i||!i.AcceptorLock))&&(h=t.ReasonCode?o.getReasonCode(t.ReasonCode.IdC):null,u=t.ReasonCode?n.getBalance(t.ReasonCode.IdC):null,u&&r)){f=r.Hours;r.StartTime&&r.EndTime&&(f=l.getDateDifference(r.EndTime,r.StartTime).hours);var e=r.OriginalValue?r.OriginalValue:0,c=u.CurrentBalance-u.BalanceUsed+e-u.MinimumLimit,s=u.BalanceUsed-e+Number(f);u.BalanceUsed=s;r.OriginalValue=Number(f);n.updateBalanceText(u);i.Data.BalanceTitleText=u.TitleText;r.Invalid=!1;u.AllowNegativeBalance||(u.CurrentBalance-s<u.MinimumLimit?(r.Invalid=!0,o.addError(t,"balance",reasonCode.ReasonCodeIdC,"WORKHOURSX.BALANCE_INSUFFICIENT",[""+c])):(r.Invalid=!1,o.removeError(t,"balance",reasonCode.ReasonCodeIdC)))}}),o.setValidateRowCallback(n.validateRow=function(t){var i,e,s,h,u,r;if(t&&!t.AcceptorLock){n.pristine=!1;t.Valid=!1;var f=!0,c=!0,l=!1;if(t.days)for(r=0;r<t.days.length;r++)if((i=t.days[r],!i.readOnly)&&(l=!0,i.Data&&!o.isEmptyData(i.Data,t.ReasonCode))&&(c=!1,i.Data&&i.Data.Invalid)){f=!1;break}if(e=!1,s=!1,t.ReasonCode&&(e=t.ReasonCode.DimensionItemRequired?!0:!1),l||!f){if(h=!1,t.dimensions)for(u=null,r=0;r<t.dimensions.length;r++){var i=t.dimensions[r],v=i.Required,y=u&&u.SubLevelRequired;y&&(v=!0);i.SelectedItem&&(s=!0);c||!v||i.SelectedItem?(i.Invalid=!1,o.removeError(t,"dimension",i.DimensionIdC)):(i.Invalid=!0,f=!1,i.Hidden&&(h=!0),y?o.addError(t,"dimension",i.DimensionIdC,"WORKHOURSX.DIMENSION_ITEM_IS_CONDITIONALLY_REQUIRED",[u.Code,a.getCurrentLanguageText(u.Texts,"Name")]):o.addError(t,"dimension",i.DimensionIdC,"WORKHOURSX.DIMENSION_ITEM_IS_REQUIRED"),e=!1);u=i.SelectedItem?i.SelectedItem:null}e&&!s?(o.addError(t,"reasoncode",t.ReasonCode.IdC,"WORKHOURSX.DIMENSION_ITEM_SELECTION_IS_REQUIRED"),f=!1):o.removeError(t,"reasoncode",t.ReasonCode.IdC);h&&(n.visibilityOptions.ShowHiddenDimensions=!0,n.updateScrollerWidth())}t.Valid=f}}),o.setValidateCallback(n.validate=function(){var f=o.getSelectedPeriod(),e,h,a,y,c,l,p,r,b,s,i,w,k,u,t;if(f&&f.weeks&&!isNaN(f.SelectedWeek)&&(e=f.weeks[f.SelectedWeek],e)){for(h={},i=0;i<e.days.length;i++)a=e.days[i],h[a.date.getTime()]={empty:!0,rows:[],day:a};for(y={},i=0;i<e.rows.length;i++)if(t=e.rows[i],t.days)for(c=0;c<t.days.length;c++)(r=t.days[c],l=h[r.date.getTime()],l)&&(o.isEmptyData(r.Data,t.ReasonCode)||t.AcceptorLock||(l.empty=!1,l.rows.push({day:r,reasonCode:t.ReasonCode}),y[t.ReasonCode.IdC+"#"+r.date.getTime()]=t,t.Valid&&n.isDescriptionObligatory(t)&&!r.Data.Description&&o.addError(t,"description",0,"WORKHOURSX.DESCRIPTION_IS_REQUIRED")));for(p in h)if(r=h[p],b=!1,r.empty)b=!0;else{for(s={},i=0;i<r.rows.length;i++)(t=r.rows[i],t.reasonCode)&&t.day&&(t.day.AcceptorLock||t.day.Data.Hours&&(s[t.reasonCode.IdC]||(s[t.reasonCode.IdC]=0),s[t.reasonCode.IdC]+=Number(t.day.Data.Hours)));for(w in s)k=s[w],u=o.getReasonCode(w),(u.LimitType&v.getValue("ReasonCodeLimitType","Pieces"))!=0&&(t=y[u.IdC+"#"+p],t&&(u.HourLimit<k?o.addError(t,"reasoncode",u.IdC,"WORKHOURSX.REASONCODE_MAX_LIMIT_EXCEEDED",[u.HourLimit]):o.removeError(t,"reasoncode",u.IdC)))}n.checkSymbols(f)}}),n.setReasonCodeClass=function(t){var r,i,u,f;if(t){r=n.editorCellClass.indexOf(" unitPriceCell")>-1;r&&(n.editorCellClass=n.editorCellClass.split(" ")[0]);i=0;switch(n.editorCellClass){case"hourCell":i=0;break;case"hourCheckBoxCell":i=1;break;case"timeRangeCell":i=2}u=0;t.UseCheckBox?u=1:t.DataType==5&&(u=2);!r&&t.Property&&t.Property.ShowUnitPrice&&(r=!0);u>i&&(i=u);f=["hourCell","hourCheckBoxCell hourCell","timeRangeCell"][i];r&&(f+=" unitPriceCell");n.editorCellClass=f}},n.isDescriptionObligatory=function(n){var u=o.getDataFromTemporaryCache(b.SETTINGS),i,t,r;if(u&&u.ObligatoryDescription)return!0;if(!n||!n.ReasonCode||!n.days)return!1;for(i=!0,t=0;t<n.days.length;t++)if(r=n.days[t],r&&r.Data){i=!1;break}return i?!1:n.ReasonCode.ObligatoryDescription?!0:!1},o.setRemoveSelectedRowsCallback(n.removeSelectedRows=function(){var r=o.getSelectedPeriod(),e=o.getDataFromTemporaryCache(b.SELECTIONFLAGS),u=r&&r.weeks&&!isNaN(r.SelectedWeek)?r.weeks[r.SelectedWeek]:null,i,f,t;if(e&&e.rowsSelected&&u&&u.rows&&n.allowRemove){for(i=[],t=0;t<u.rows.length;t++)(f=u.rows[t],f.AcceptorLock)||f.Checked&&i.push(f);if(i&&i.length)for(t=i.length-1;t>=0;t--)n.removeRow(i[t],!1)}}),o.setRemoveSelectedDaysCallback(n.removeSelectedDays=function(){var r=o.getSelectedPeriod(),e=o.getDataFromTemporaryCache(b.SELECTIONFLAGS),u=r&&r.weeks&&!isNaN(r.SelectedWeek)?r.weeks[r.SelectedWeek]:null,i,f,t;if(e&&e.daysSelected&&u&&u.rows&&u.days&&n.allowRemove){for(i=[],t=0;t<u.days.length;t++)(f=u.days[t],f.AcceptorLock)||f.Checked&&i.push(f);if(i&&i.length)for(t=i.length-1;t>=0;t--)n.removeDay(i[t],!1)}}),n.copyRows=function(t,i){var f=t,s=i?i:null,r=u.defer(),h=e.open({templateUrl:"MVC/Modals/Workhours/copyWorkhour.html",controller:"copyWorkhourModalController",backdrop:"static",windowClass:"copyWorkhourModal",resolve:{workhourViewType:function(){return v.getValue("WorkhourViewType","WeekEditor")},selectedPeriod:function(){return o.getSelectedPeriod()},sourceData:function(){return f},dimensions:function(){return o.getDataFromTemporaryCache(b.DIMENSIONS)},columnReasonCodes:function(){return o.getDataFromTemporaryCache(b.COLUMN_REASONCODES)},otherReasonCodes:function(){return o.getDataFromTemporaryCache(b.OTHER_REASONCODES)},holidays:function(){return o.getDataFromTemporaryCache(b.HOLIDAYS)},targetRange:function(){return s},employmentData:function(){return n.employmentData}}});return h.result.then(function(t){n.addCopyResults(t);r.resolve(t)}),r.promise}
1,n.copyDays=function(t,i){var f=t,s=i?i:null,r=u.defer(),h=e.open({templateUrl:"MVC/Modals/Workhours/copyWorkhour.html",controller:"copyWorkhourModalController",backdrop:"static",windowClass:"copyWorkhourModal",resolve:{workhourViewType:function(){return v.getValue("WorkhourViewType","WeekEditor")},selectedPeriod:function(){return o.getSelectedPeriod()},sourceData:function(){return f},dimensions:function(){return o.getDataFromTemporaryCache(b.DIMENSIONS)},columnReasonCodes:function(){return o.getDataFromTemporaryCache(b.COLUMN_REASONCODES)},otherReasonCodes:function(){return o.getDataFromTemporaryCache(b.OTHER_REASONCODES)},holidays:function(){return o.getDataFromTemporaryCache(b.HOLIDAYS)},targetRange:function(){return s},employmentData:function(){return n.employmentData}}});return h.result.then(function(t){n.addCopyResults(t);r.resolve(t)}),r.promise},n.addCopyResults=function(t){var i,f,s;if(t){var e={},r={},u=o.getSelectedPeriod(),h={};u&&u.weeks&&(i={},_.forEach(u.weeks,function(n){n.days&&_.forEach(n.days,function(t){h[t.date.getTime()]=n});n.rows&&_.forEach(n.rows,function(t){_.forEach(t.days,function(u){var o=e[u.date.getTime()],s,f;o||(e[u.date.getTime()]=o=[]);o.push({day:u,row:t,week:n});s=t.rowKey+";D"+u.date.getTime();f=t.plainDimensionRowKey+";D"+u.date.getTime();i[f]?i[f].index++:i[f]={index:0};r[s]={day:u,row:t,week:n}})})}),f=o.getDataFromTemporaryCache(b.DIMENSIONS),s=f&&f.length?f.length:0,_.forEach(t,function(n){n.ReasonCodes&&_.forEach(n.ReasonCodes,function(t){var g,f,k,d,y,p,o;if(t&&t.Data){g=[];n.Dimensions&&(g=angular.copy(n.Dimensions));var c=null,w={},l=h[n.Date.getTime()];if(l){f=[];_.forEach(g,function(n,t){f[t]=n.DimensionItemIdC});f[s]="@"+t.IdC;f[s+1]=0;var a=f.join(";"),v=a+";D"+n.Date.getTime(),u=r[v],b="";if(u&&u.day&&u.day.Data){if(i[v]){for(k=i[v].index,d=null,y=0;y<k;y++)if(p=r[a+";#"+(y+1)+";D"+n.Date.getTime()],p&&p.day&&!p.day.Data){d=p;b="#"+(y+1);break}d||(i[v].index=k+1,b="#"+(k+1),u=null);u=d}else i[v]={index:1},b="#1",u=null;f.push(b);a=f.join(";")}(u?c=u.row:(o={index:0,days:[],reasonCodeIdC:t.IdC,ReasonCode:angular.copy(t),rowKey:a,dimensions:angular.copy(n.Dimensions),$showReasonCodeButton:!1,Valid:!0,EmployeeLock:!1,AcceptorLock:!1,ProcessingLocks:!1},l.rows.push(o),_.forEach(l.days,function(t){var i={Data:null,date:new Date(t.date.getTime()),readOnly:t.disabled};t.date.getTime()===n.Date.getTime()&&(e[n.Date.getTime()]=u=[{day:i,row:o,week:l}]);r[o.rowKey+";D"+t.date.getTime()]={day:i,row:o,week:l};o.days.push(i)}),_.forEach(u,function(n){if(n.row.rowKey===a)return c=n.row,!0})),c&&c.days)&&(_.forEach(c.days,function(t){if(t.date.getTime()===n.Date.getTime())return w=t,!0}),w&&!w.Data)&&(t.Data.WorkHour=null,w.Data=angular.copy(t.Data))}}})}),_.forEach(u.weeks,function(t){n.recalculateTotalHours(t)}))}},n.commentEditorToggle=function(t,i,r){if(n.commentEditor.day!=i){var u=$(".editorDataArea.middlePart .innerPart"),e=u.position(),o=u.offset();n.commentEditor.row=r;n.commentEditor.day=i;n.commentEditor.style.top=t.clientY+5+"px";n.commentEditor.style.left=t.clientX-90+"px";n.commentEditor.visible=!0;f(function(){$(".commentEditor textarea").focus()})}else n.commentEditor.visible=!n.commentEditor.visible,f(function(){n.commentEditor.visible&&$(".commentEditor textarea").focus()});n.commentEditor.visible&&$("body").click(function(t){var i=$(t.target).closest(".commentEditor");i.length?t.stopPropagation():(n.commentEditor.visible=!1,n.$apply())})},o.setCopySelectedRowsCallback(n.copySelectedRows=function(){var s=o.getDataFromTemporaryCache(b.SELECTIONFLAGS),t,r,u,f,i,e,h;if(s&&s.rowsSelected&&(t=o.getSelectedPeriod(),t&&t.weeks&&!isNaN(t.SelectedWeek))){if(r=t.weeks[t.SelectedWeek],u=[],r&&r.rows)for(f=0;f<r.rows.length;f++)if(i=r.rows[f],i.Checked&&i.days)for(e=0;e<i.days.length;e++)h=i.days[e],u.push({row:i,day:h});return!u||!u.length?void 0:n.copyRows(u)}}),o.setCopySelectedDaysCallback(n.copySelectedDays=function(){var c=o.getDataFromTemporaryCache(b.SELECTIONFLAGS),u,t,f,s,i,r,e,h;if(c&&c.daysSelected&&(u=o.getSelectedPeriod(),u&&u.weeks&&!isNaN(u.SelectedWeek))){if(t=u.weeks[u.SelectedWeek],f=[],t&&t.rows&&t.days){for(s={},i=0;i<t.days.length;i++)r=t.days[i],r.Checked&&(s[r.date.getTime()]=!0);for(i=0;i<t.rows.length;i++)if(r=t.rows[i],r.days)for(e=0;e<r.days.length;e++)h=r.days[e],s[h.date.getTime()]&&f.push({row:r,day:h})}return!f||!f.length?void 0:n.copyDays(f)}}),o.setCopyPreviousPeriodCallback(n.copyPreviousPeriod=function(){}),n.isEmptyRow=function(n){if(!n||!n.days)return!0;for(var t=0;t<n.days.length;t++)if(n.days[t].Data)return!1;return!0},n.isEmptyDay=function(n,t){var e,r,i,u,f;if(!n||!t||!n.rows)return!0;for(e=t.date.getTime(),r=0;r<n.rows.length;r++)if(i=n.rows[r],i&&i.days)for(u=0;
1u<i.days.length;u++)if(f=i.days[u],f&&f.date.getTime()==e&&!o.isEmptyData(f.Data,i.ReasonCode))return!1;return!0},n.findRowIndex=function(n){var u=null,t=o.getSelectedPeriod(),r,i,f;if(t&&t.weeks&&!isNaN(t.SelectedWeek)&&(r=t.weeks[t.SelectedWeek],r))for(i=0;i<r.rows.length;i++)if(f=r.rows[i],f==n){u=i;break}return u},n.updateShiftsForDay=function(n,t){var r;if(n.shifts="",n.shiftsShort="",t)for(n.shiftItems=t,r=0;r<t.length;r++){var i=t[r],u=i.ShiftCode,f=i.ShiftCode+" "+w.getFormattedHours(i.StartTime,!0)+"-"+w.getFormattedHours(i.EndTime,!0);n.shifts&&(n.shifts+=", ");n.shiftsShort&&(n.shiftsShort+=", ");n.shifts+=f;n.shiftsShort+=u;i.WorkPlanIdC&&(n.workPlan=!0)}},n.getNewDayFromTemplate=function(n){var t={date:new Date(n.date.getTime()),readOnly:n.disabled,noEmployment:n.noEmployment,workingDayIdC:n.workingDay?n.workingDay.IdC:null,paymentGroupIdC:n.workingDay?n.workingDay.PaymentGroupIdC:null,workingDay:n.workingDay,workhours:[],Data:null,dateKey:n.dateKey,dateID:n.date.getTime()};return n.workingDay&&(t.ProcessingLocks=n.ProcessingLocks,t.AcceptorLock=n.AcceptorLock,t.EmployeeLock=n.EmployeeLock),t},n.addNewRow=function(t,i){var k=n.findRowIndex(i),h=o.getDataFromTemporaryCache(b.SETTINGS),d=o.getDataFromTemporaryCache(b.DIMENSIONS),lt=o.getDataFromTemporaryCache(b.COLUMN_AND_OTHER_REASONCODES),ut,g,c,nt,l,tt,r,it,v,rt,p,e,w,s;if(typeof k=="number"){if(ut={},h.Dimensions)for(r=0;r<h.Dimensions.length;r++)g=h.Dimensions[r],ut[g.DimensionIdC]=g.Hidden;if(c=[],h&&h.AddDefaultDimensionItemsToNewRow&&n.defaultRows&&n.defaultRows.length)for(nt={},r=0;r<n.defaultRows.length;r++)l=n.defaultRows[r],l.StartDate.getTime()<t.endDate.getTime()&&l.EndDate.getTime()>=t.startDate.getTime()&&!nt[l.rowKey]&&(c.push({defaults:n.defaultRows[r].Dimensions}),nt[l.rowKey]=!0);else c.push({defaults:null});for(tt=n.findDefaultReasonCodes(lt,n.perDayReasonCodeUsages,t.startDate,t.endDate),r=0;r<c.length;r++)for(it=c[r],v=0;v<tt.length;v++){var ft=tt[v],et=ft.IdC,y={index:++k,dimensions:[],days:[],reasonCodeIdC:et,ReasonCode:ft,workingDay:null,$showReasonCodeButton:!1,rowKey:"",Valid:!0};if(t){if(d)for(rt={},s=0;s<d.length;s++){var f=d[s],a=null,u=null,ot=null;f.ParentIdC&&(ot=rt[f.ParentIdC]||null);it.defaults&&(p=it.defaults[f.IdC],a=p?p.DimensionItemIdC:null,a&&(e=o.getDimensionItem(f.IdC,a),u={SubLevelRequired:p.SubLevelRequired},e&&(u.Code=e.Code,u.DimensionItemIdC=e.IdC,u.ReasonCodes=e.ReasonCodes,u.DimensionItemAutoGeneratingSettings=e.DimensionItemAutoGeneratingSettings,u.DimensionItemName=e.DimensionItemName,u.Source=e.Source,u.Texts=angular.copy(e.Texts),rt[f.IdC]=u.DimensionItemIdC),u.IdC=a));y.dimensions.push({DimensionIdC:f.IdC,DimensionItemIdC:a,SelectedItem:u,Required:f.DimensionItemRequired,DefaultDimensionItemLock:f.DefaultDimensionItemLock?!0:!1,$showButton:!1,Hidden:f.Hidden?!0:!1,AllowDimensionItemAdding:f.AllowDimensionItemAdding,$parentItemIdC:ot})}if(w=t.days,w)for(s=0;s<w.length;s++){var st=w[s],ht=n.getNewDayFromTemplate(st),ct=n.perDayReasonCodeUsages[st.date.getTime()];ct&&!ct[et]&&(ht.readOnly=!0);y.days.push(ht)}t.rows.splice(k,0,y);n.activateRow(y,1)}}}},n.removeRow=function(t,i){var s,h,u,r;!i;var c=o.getDataFromTemporaryCache(b.REMOVED_ROWS),f=o.getSelectedPeriod(),e=f&&f.weeks&&!isNaN(f.SelectedWeek)?f.weeks[f.SelectedWeek]:null;if(c&&e&&e.rows){if(s=!1,t.days&&t.days.length)for(u=0;u<t.days.length;u++){if(r=t.days[u],r.AcceptorLock||r.ProcessingLocks||r.EmployeeLock){s=!0;continue}r.Data&&r.Data.IdC&&(r.Data.Date=new Date(r.date.getTime()),c.push(r.Data));r.Data=null}if(!s&&(h=n.findRowIndex(t),typeof h=="number"))if(e.rows.length==1){if(t.dimensions&&t.dimensions.length)for(u=0;u<t.dimensions.length;u++)r=t.dimensions[u],r.SelectedItem=null,r.DimensionItemIdC=null;t.ReasonCode=null}else e.rows.splice(h,1);n.recalculateTotalHours(e)}},n.removeDay=function(n,t){var e,u,s,i;!t;var h=o.getDataFromTemporaryCache(b.REMOVED_ROWS),r=o.getSelectedPeriod(),f=r&&r.weeks&&!isNaN(r.SelectedWeek)?r.weeks[r.SelectedWeek]:null;if(h&&f&&f.rows){for(e=0;e<f.rows.length;e++)if(u=f.rows[e],u.days&&u.days.length)for(s=0;s<u.days.length;s++)(i=u.days[s],i.date.getTime()==n.date.getTime())&&(i.Data&&i.Data.IdC&&(i.Data.Date=new Date(i.date.getTime()),h.push(i.Data)),i.Data=null);n.totalHours=0}},n.firstCellFocused=function(){n.scroll.headingMiddleElement||(n.scroll.headingMiddleElement=$(".editorDataHeading.middlePart",t)[0]);n.scroll.dataMiddleElement||(n.scroll.dataMiddleElement=$(".editorDataArea.middlePart",t)[0]);n.scroll.dataMiddleElement.scrollLeft=2e3;n.scroll.headingMiddleElement.scrollLeft=2e3;n.moveUp(n.cellsTotal+1)},n.lastCellFocused=function(){n.scroll.headingMiddleElement||(n.scroll.headingMiddleElement=$(".editorDataHeading.middlePart",t)[0]);n.scroll.dataMiddleElement||(n.scroll.dataMiddleElement=$(".editorDataArea.middlePart",t)[0]);n.scroll.dataMiddleElement.scrollLeft=0;n.scroll.headingMiddleElement.scrollLeft=0;n.moveDown(1)},n.cellFocus=function(t){$(t.target).hasClass("lastCell")?n.lastCellFocused(t):n.firstCellFocused(t)},n.moveDown=function(t){var i;if(n.selectedRow){var f=null,r=n.findRowIndex(n.selectedRow),u=o.getSelectedPeriod();u&&(i=u.weeks&&!isNaN(u.SelectedWeek)?u.weeks[u.SelectedWeek]:null,i&&typeof r=="number"&&r>=0&&i.rows&&i.rows.length>r&&(f=r<i.rows.length-1?i.rows[r+1]:i.WorkingDays[0]));f&&n.activateRow(f,t)}},n.$on("moveDown",function(t,i){n.moveDown(i)}),n.moveUp=function(t){var i;if(n.selectedRow){var f=null,r=n.findRowIndex(n.selectedRow),u=o.getSelectedPeriod();u&&(i=u.weeks&&!isNaN(u.SelectedWeek)?u.weeks[u.SelectedWeek]:null,i&&typeof r=="number"&&r>=0&&i.rows&&i.rows.length>r&&(f=r>0?i.rows[r+1]:i.WorkingDays[i.rows.length-1]));f&&n.activateRow(f,t)}},n.$on("moveUp",function(t,i){n.moveUp(i)}),n.activateRow=function(t,i,r){n.$parent.activateRow(t,i,r);n.selectedRow=t},n.swapShifts=function(t){var r=null,i;t.EmployeeLock||t.AcceptorLock||t.ProcessingLocks||(t.shiftItems&&t.shiftItems.length&&(r=t.shiftItems[0].WorkPlanIdC),r)&&(i=o.getSelectedPeriod(),i)&&o.swapShifts(i.AllPerio
1dShifts,{Date:t.date,WorkPlanIdC:r}).then(function(t){var p,a,v,y,f,e,s,r,o,h,u,c;if(t&&t.length&&(p=t[0].Operation==2,!p)){for(a=i.AllPeriodShifts,v={},r=0;r<t.length;r++)v[t[r].WorkPlanDataIdC]=!0;for(y=[],f={},r=0;r<a.length;r++)e=a[r],v[e.WorkPlanDataIdC]||(y.push(e),u=l.getDateOnly(e.StartTime),s=f[u.getTime()],s||(f[u.getTime()]=s=[]),s.push(e));for(i.AllPeriodShifts=y,r=0;r<i.weeks.length;r++)if(o=i.weeks[r],o.days&&o.days.length)for(h=0;h<o.days.length;h++)u=o.days[h],c=f[u.date.getTime()],c||(c=[]),n.updateShiftsForDay(u,c),f[u.date.getTime()]=null}})},n.initialize(),this}]);angular.module("TiimaApp").controller("workhourSettingsEditorController",["$scope","localizationService","tiimaEnumsService","datasourceService","workhourSettingsService","WorkhourSetting","RuleSet",function(n,t,i,r,u,f,e){n.settings={Settings:[],Next:null,Prev:null};n.settingsStack=null;n.inheritedSettings=!0;n.customSettings=!1;n.rulesetTemplate="{{Code}} {{Name}}";n.listFields=[{dataType:1,heading:"LIST_FIELDS.CODE",name:"Code","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,"default":!0,heading:"LIST_FIELDS.NAME",name:"Name","class":"listcellName",headingClass:"listcellName"}];var o=function(n){return e.getAll(n)};return n.dataSources={ruleSetDatasource:r.createDatasource({method:function(n){return o(n)}})},n.customSettingsChanged=function(t){var r,h,o,e,s,f;if(t){for(r={IdC:n.settings.Deleted?n.settings.IdC:null,InheritedSettings:!1,Changed:n.settings.Deleted?!0:!1,Deleted:!1,Settings:angular.copy(n.settings.Settings)},r.Next=n.settings.Next,r.Prev=n.settings.Prev,r.Owner=null,e=u.getSettingsParent(),f=n.settings.Prev;f;)f.InheritedSettings?(f.Settings=r.Settings,f.Owner=e,f=f.Prev):f=null;if(r.Next&&(r.Next.Prev=r),r.Prev&&(r.Prev.Next=r),n.customSettings=!0,e&&(e.OrganisationIdC?r.OrganisationIdC=e.OrganisationIdC:e.UserIdC&&(r.UserIdC=e.UserIdC),e.Settings=r),r.Prev||u.cacheSettings(r),r.OrganisationIdC||r.UserIdC)for(h=0;h<r.Settings.length;h++)o=r.Settings[h],(o.RuleSet||o.EnumValue==i.getValue("WorkhourSettingProperty","UseDayLocking")||o.EnumValue==i.getValue("WorkhourSettingProperty","ObligatoryDescription"))&&(o.Disabled=!0);n.settings=r}else{for(e=u.getSettingsParent(),n.settings.InheritedSettings=!0,s=n.settings.Next,s&&(n.settings.Settings=s.Settings,n.settings.Owner=s.InheritedSettings?s.Owner:e&&e.Parent?e.Parent:null),f=n.settings.Prev;f;)f.InheritedSettings?(f.Settings=n.settings.Settings,f.Owner=n.settings.Owner,f=f.Prev):f=null;n.settings.IdC&&(n.settings.Deleted=!0);n.customSettings=!1;e&&(e.Settings=n.settings)}n.$emit("changed")},n.changed=function(t){t&&(t.Changed=!0,u.updateSettingHierarhcy(t),n.$emit("changed"))},u.registerSettingsParentListener(n.selectSettingParent=function(t){var u,r;if(n.settings=t.Settings,n.customSettings=!n.settings.InheritedSettings,n.settings.Settings&&n.settings.Settings.length)for(u=0;u<n.settings.Settings.length;u++)r=n.settings.Settings[u],r.ValueLabel=r.Name=="WORKHOURSX.DIMENSIONITEM_DISPLAYTYPE_LABEL"?"WORKHOURSX.DIMENSIONITEM_DISPLAYTYPE_"+i.getKey("DimensionItemDisplayType",r.Value).toUpperCase():r.Name=="WORKHOURSX.VIEWTYPE_LABEL"?"WORKHOURSX.VIEWTYPE_"+i.getKey("WorkhourViewType",r.Value).toUpperCase():r.Value?"GLOBAL.YES":"GLOBAL.NO"}),n.$on("$destroy",function(){u.unRegisterSettingsParentListener(n.selectSettingParent)}),this}]);angular.module("TiimaApp").controller("dashboardController",["$scope","$rootScope","$window","$q","$timeout","$uibModal","$http","initPageService","localizationService","toolsService","tiimaEnumsService","formatService","datasourceService","DashboardData","Employee","ReasonCode","WorkingHourStamp",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p){n.pendingOperation=!0;n.currentEmployee={};n.balance={};n.employee={};n.previousDayRawStamps=[];n.rawStamps=[];n.workingHourStamps=[];n.workingDay={};n.currentReasonCode={};n.defaultReasonCode={};n.lunchReasonCode={};n.inDisabled=!0;n.toLunchDisabled=!0;n.fromLunchDisabled=!0;n.outDisabled=!0;o.init("MVC/Workhours/Dashboard/InitDashboardPage","DASHBOARD.HEADER").then(function(t){n.pendingOperation=!1;t&&t.Data&&t.Data.currentEmployee&&(n.currentEmployee=t.Data.currentEmployee);n.getData()});n.getData=function(){n.pendingOperation=!0;v.getStamps({employeeIdC:n.currentEmployee.IdC,workingDayDate:new Date}).then(function(t){if(t&&t.Data){var i=t.Data;n.employee=i.Employee;n.balance=i.Balance;n.previousDayRawStamps=i.PreviousDayRawStamps;n.rawStamps=i.RawStamps;n.workingHourStamps=i.WorkingHourStamps;n.workingDay=i.WorkingDay;n.workingDay.StampProcessingLock=n.workingDay.StampProcessingLocks>0&&n.workingDay.StampProcessingLocks<64;n.workingDay.Locked=n.workingDay.StampAcceptorLock||n.workingDay.StampProcessingLock?!0:!1;n.defaultReasonCode=i.DefaultReasonCode;
1n.currentReasonCode=n.currentReasonCode.IdC?n.currentReasonCode:i.DefaultReasonCode;n.lunchReasonCode=i.LunchReasonCode}n.resetStampingButtons();n.pendingOperation=!1})};n.dataSources={reasonCodeDataSource:a.createDatasource({method:function(t){return t.StartDate=n.workingDay.Date,t.EndDate=n.workingDay.Date,t.EmployeeIdC=n.currentEmployee.IdC,t.OrderByField2=1,t.Property=2,p.getAll(t)}})};n.validateReasonCode=function(t){var i=[];return t?n.currentReasonCode=t:i.push("reasonCodeRequired"),{valid:t?!0:!1,errors:i}};n.checkIn=function(){n.disableStampingButtons();v.checkIn({EmployeeIdC:n.employee.IdC,ReasonCodeIdC:n.currentReasonCode.IdC}).then(function(){n.getData()})};n.toLunch=function(){n.disableStampingButtons();v.toLunch({EmployeeIdC:n.employee.IdC,ReasonCodeIdC:n.lunchReasonCode.IdC}).then(function(){n.getData()})};n.fromLunch=function(){n.disableStampingButtons();v.fromLunch({EmployeeIdC:n.employee.IdC,ReasonCodeIdC:n.lunchReasonCode.IdC}).then(function(){n.getData()})};n.checkOut=function(){n.disableStampingButtons();v.checkOut({EmployeeIdC:n.employee.IdC,ReasonCodeIdC:n.currentReasonCode.IdC}).then(function(){n.getData()})};n.disableStampingButtons=function(){n.inDisabled=!0;n.toLunchDisabled=!0;n.fromLunchDisabled=!0;n.outDisabled=!0;n.pendingOperation=!0};n.resetStampingButtons=function(){var t,i;(n.disableStampingButtons(),n.workingDay.Locked)||(t=null,n.rawStamps.length==0?n.previousDayRawStamps.length&&(t=n.previousDayRawStamps[n.previousDayRawStamps.length-1],t.Direction==1&&(t.showDate=!0,n.rawStamps.push(t))):t=n.rawStamps[n.rawStamps.length-1],i=n.lunchReasonCode.IdC,t==null?n.inDisabled=!1:t.Direction==1?t.ReasonCodeIdC==i?n.outDisabled=!1:(n.toLunchDisabled=!1,n.outDisabled=!1):t.ReasonCodeIdC==i?n.fromLunchDisabled=!1:n.inDisabled=!1)}}]);angular.module("TiimaApp").controller("absenceGeneratingSettingsController",["$scope","$rootScope","$window","$http","$q","$timeout","$uibModal","localizationService","settingService","toolsService","initPageService","AbsenceGeneratingSetting",function(n,t,i,r,u,f,e,o,s,h,c,l){n.absenceGeneratingSettings=[];n.absenceGeneratingSetting=null;n.listIndex=0;n.languageIdC=s.getSetting("LanguageID");n.modalInstance=null;n.SubItemTypes={reasonCode:1,groupItem:2,paymentGroup:3,userGroup:4};n.Permissions={read:!1,write:!1,remove:!1};n.pendingOperation=!1;n.typeOptions=[];n.actionOptions=[];c.init("MVC/Administrating/AbsenceGeneratingSettings/InitAbsenceGeneratingSettingPage","ABSENCE_GENERATING_SETTINGS.HEADER").then(function(t){t&&t.Data&&(n.Permissions.read=t.Data.readPermission,n.Permissions.write=t.Data.writePermission,n.Permissions.remove=t.Data.deletePermission);n.typeOptions=[{Value:1,Name:o.getText("ABSENCE_GENERATING_SETTINGS.TYPE_STAMPS")},{Value:2,Name:o.getText("ABSENCE_GENERATING_SETTINGS.TYPE_WORK_HOURS")},{Value:3,Name:o.getText("ABSENCE_GENERATING_SETTINGS.TYPE_BOTH")}];n.actionOptions=[{Value:0,Name:o.getText("ABSENCE_GENERATING_SETTINGS.LEAVE_EXSISTING_HOURS_DO_NOT_GENERATE")},{Value:1,Name:o.getText("ABSENCE_GENERATING_SETTINGS.LEAVE_EXSISTING_HOURS_AND_GENERATE")},{Value:2,Name:o.getText("ABSENCE_GENERATING_SETTINGS.DELETE_EXSISTING_HOURS_AND_GENERATE")},{Value:3,Name:o.getText("ABSENCE_GENERATING_SETTINGS.DELETE_EXSISTING_HOURS_WITH_SAME_REASONCODE_AND_GENERATE")},{Value:4,Name:o.getText("ABSENCE_GENERATING_SETTINGS.DELETE_EXSISTING_HOURS_WITH_SAME_TYPE_OF_REASONCODE_AND_GENERATE")},{Value:5,Name:o.getText("ABSENCE_GENERATING_SETTINGS.DELETE_EXSISTING_GENERATED_HOURS_AND_GENERATE")}];f(function(){n.$apply()})});n.hasReasonCodes=function(){if(n.absenceGeneratingSetting&&n.absenceGeneratingSetting.ReasonCodes)for(var t=0;t<n.absenceGeneratingSetting.ReasonCodes.length;t++)if(!n.absenceGeneratingSetting.ReasonCodes[t].Deleted)return!0;return!1};n.hasGroupItems=function(){if(n.absenceGeneratingSetting&&n.absenceGeneratingSetting.GroupItems)for(var t=0;t<n.absenceGeneratingSetting.GroupItems.length;t++)if(!n.absenceGeneratingSetting.GroupItems[t].Deleted)return!0;return!1};n.hasPaymentGroups=function(){if(n.absenceGeneratingSetting&&n.absenceGeneratingSetting.PaymentGroups)for(var t=0;t<n.absenceGeneratingSetting.PaymentGroups.length;t++)if(!n.absenceGeneratingSetting.PaymentGroups[t].Deleted)return!0;return!1};n.hasUserGroups=function(){if(n.absenceGeneratingSetting&&n.absenceGeneratingSetting.UserGroups)for(var t=0;t<n.absenceGeneratingSetting.UserGroups.length;t++)if(!n.absenceGeneratingSetting.UserGroups[t].Deleted)return!0;return!1};n.initForm=function(t){n.mainForm=t;n.mainForm.$setPristine()};n.saveSuccessful=!1;n.addSubItem=function(t,i){n.pendingOperation=!0;n.modalInstance==null&&(n.modalInstance=e.open({templateUrl:"MVC/modals/Administrating/absenceGeneratingSettingModal.html",controller:"absenceGeneratingSettingModalController",backdrop:"static",windowClass:"subItemEditor",resolve:{selectedSubItems:function(){return t},subItemType:function(){return i}}}),n.modalInstance.result.then(function(t){t!=null&&n.mergeSelectedSubItems(t,i);n.modalInstance=null;n.pendingOperation=!1}))};n.mergeSelectedSubItems=function(t,i){var o,s,e,r,f,u;if(n.pendingOperation=!1,i==n.SubItemTypes.reasonCode){if(n.absenceGeneratingSetting&&n.absenceGeneratingSetting.ReasonCodes){for(o=n.absenceGeneratingSetting.ReasonCodes,r=0;r<t.length;r++){for(f=!1,u=0;u<o.length;u++)if(o[u].ReasonCodeIdC==t[r].ReasonCodeIdC){f=!0;break}f||o.push(t[r])}o.sort(function(n,t){return n.ReasonCodeName.toLowerCase()>t.ReasonCodeName.toLowerCase()&&n.Ordinal==t.Ordinal||n.Ordinal>t.Ordinal?1:n.ReasonCodeName.toLowerCase()<t.ReasonCodeName.toLowerCase()&&n.Ordinal==t.Ordinal||n.Ordinal<t.Ordinal?-1:0})}}else if(i==n.SubItemTypes.groupItem){if(n.absenceGeneratingSetting&&n.absenceGeneratingSetting.GroupItems){for(s=n.absenceGeneratingSetting.GroupItems,r=0;r<t.length;r++){for(f=!1,u=0;u<s.length;u++)if(s[u].GroupItemIdC==t[r].GroupItemIdC){f=!0;break}f||s.push(t[r])}s.sort(function(n,t){var u="********************".substring(String(n.OrderNumber).length,20)+String(n.OrderNumber),f="********************".substring(String(t.Order
1Number).length,20)+String(t.OrderNumber),i=n.GroupingCode.toLowerCase()+"_"+u+"_"+n.GroupItemName.toLowerCase(),r=t.GroupingCode.toLowerCase()+"_"+f+"_"+t.GroupItemName.toLowerCase();return i>r?1:i<r?-1:0})}}else if(i==n.SubItemTypes.paymentGroup){if(n.absenceGeneratingSetting&&n.absenceGeneratingSetting.PaymentGroups){for(e=n.absenceGeneratingSetting.PaymentGroups,r=0;r<t.length;r++){for(f=!1,u=0;u<e.length;u++)if(e[u].PaymentGroupIdC==t[r].PaymentGroupIdC){f=!0;break}f||e.push(t[r])}e.sort(function(n,t){return n.PaymentGroupName.toLowerCase()>t.PaymentGroupName.toLowerCase()?1:n.PaymentGroupName.toLowerCase()<t.PaymentGroupName.toLowerCase()?-1:0})}}else if(i==n.SubItemTypes.userGroup&&n.absenceGeneratingSetting&&n.absenceGeneratingSetting.UserGroups){for(e=n.absenceGeneratingSetting.UserGroups,r=0;r<t.length;r++){for(f=!1,u=0;u<e.length;u++)if(e[u].UserGroupIdC==t[r].UserGroupIdC){f=!0;break}f||e.push(t[r])}e.sort(function(n,t){return n.UserGroupName.toLowerCase()>t.UserGroupName.toLowerCase()?1:n.UserGroupName.toLowerCase()<t.UserGroupName.toLowerCase()?-1:0})}};n.deleteReasonCode=function(t){var r,i;for(n.pendingOperation=!0,r=n.absenceGeneratingSetting?n.absenceGeneratingSetting.ReasonCodes?n.absenceGeneratingSetting.ReasonCodes:[]:[],i=0;i<r.length;i++)if(r[i].ReasonCodeIdC==t.ReasonCodeIdC){r.splice(i,1);break}n.pendingOperation=!1};n.deleteGroupItem=function(t){var r,i;for(n.pendingOperation=!0,r=n.absenceGeneratingSetting?n.absenceGeneratingSetting.GroupItems?n.absenceGeneratingSetting.GroupItems:[]:[],i=0;i<r.length;i++)if(r[i].GroupItemIdC==t.GroupItemIdC){r.splice(i,1);break}n.pendingOperation=!1};n.deletePaymentGroup=function(t){var r,i;for(n.pendingOperation=!0,r=n.absenceGeneratingSetting?n.absenceGeneratingSetting.PaymentGroups?n.absenceGeneratingSetting.PaymentGroups:[]:[],i=0;i<r.length;i++)if(r[i].PaymentGroupIdC==t.PaymentGroupIdC){r.splice(i,1);break}n.pendingOperation=!1};n.deleteUserGroup=function(t){var r,i;for(n.pendingOperation=!0,r=n.absenceGeneratingSetting?n.absenceGeneratingSetting.UserGroups?n.absenceGeneratingSetting.UserGroups:[]:[],i=0;i<r.length;i++)if(r[i].UserGroupIdC==t.UserGroupIdC){r.splice(i,1);break}n.pendingOperation=!1};n.getInstance=function(t){n.pendingOperation=!0;l.getInstance({IdC:t}).then(function(t){n.absenceGeneratingSetting=t;n.pendingOperation=!1;n.mainForm.$setPristine()})};n.getEmptyInstance=function(){n.absenceGeneratingSetting=l.getEmptyInstance()};n.saveInstance=function(t){n.pendingOperation=!0;l.saveInstance(t).then(function(t){n.absenceGeneratingSetting=t;n.getAll();n.pendingOperation=!1;n.saveSuccessful=!0;f(function(){n.saveSuccessful=!1},3e3);var i=h.getDataMessage(t,t?"GLOBAL.SUCCESS_SAVE":"GLOBAL.ERROR_SAVE");h.showSplash(i,t?"okMessage":"errorMessage");t&&n.mainForm.$setPristine()})};n.deleteInstance=function(t,i){i.stopPropagation();var r=u.defer();h.confirm([{pageID:"ABSENCE_GENERATING_SETTINGS",textID:"CONFIRM_HEADING_DELETE_ABSENCE_GENERATING_SETTINGS"},{pageID:"ABSENCE_GENERATING_SETTINGS",textID:"CONFIRM_MESSAGE_DELETE_ABSENCE_GENERATING_SETTINGS"}],null,function(){r.resolve()},function(){r.reject()});f(function(){r.promise.then(function(){t.Deleted=!0;n.pendingOperation=!0;l.saveInstance(t).then(function(t){var i=t.IdC;n.absenceGeneratingSetting=null;n.getAll().then(function(){n.getInstance(i)});n.pendingOperation=!1})})})};n.getAll=function(){n.pendingOperation=!0;n.absenceGeneratingSettings=null;l.getAll().then(function(t){t&&t.DataList&&(n.absenceGeneratingSettings=t.DataList,n.absenceGeneratingSettings.length&&(n.absenceGeneratingSettings.sort(function(n,t){return n.Name.toLowerCase()>t.Name.toLowerCase()?1:n.Name.toLowerCase()<t.Name.toLowerCase()?-1:0}),n.absenceGeneratingSetting||n.getInstance(n.absenceGeneratingSettings[0].IdC)));n.absenceGeneratingSettings&&n.absenceGeneratingSettings.length||n.getEmptyInstance();n.pendingOperation=!1})};n.getAll()}]);angular.module("TiimaApp").controller("privacyPolicyController",["$scope","$rootScope","$timeout","localizationService","initPageService","PrivacyPolicy",function(n,t,i,r,u,f){n.privacyPolicyFiles=[];n.pendingOperation=!0;u.init("MVC/Help/PrivacyPolicy/InitPrivacyPolicyPage","MENU.PRIVACY_POLICY").then(function(){});n.getFiles=function(){n.pendingOperation=!0;f.getFiles().then(function(t){t&&t.DataList&&(n.privacyPolicyFiles=t.DataList,n.privacyPolicyFiles.sort(function(n,t){return n.fileName.toLowerCase()>t.fileName.toLowerCase()?1:n.fileName.toLowerCase()<t.fileName.toLowerCase()?-1:0}))})};i(function(){n.getFiles()},100)}]);angular.module("TiimaApp").controller("informativeDataController",["$scope","$rootScope","$q","$timeout","$http","initPageService","localizationService","toolsService","datasourceService","tiimaEnumsService","InformativeData","ReasonCode",function(n,t,i,r,u,f,e,o,s,h,c,l){var a,v,w,b,y,p,k;n.pendingOperation=!1;n.informativeDataItems=[];n.reasonCodeItems=[];n.Permissions={read:!1,write:!1,remove:!1};n.Restrictions={ShowRestrictions:2,searchFilter:null};a=new Date;v=new Date(a.getFullYear(),a.getMonth(),a.getDate(),0,0,0,0);n.SearchPeriod={StartDate:v,EndDate:v};n.TotalCount=0;n.PageSize=10;n.Arguments={firstIndex:0,SortOrder:0,OrderByFieldIndex:0};n.SelectedInformativeData=null;n.previousSearchFilter="";n.searchTimeout=null;
1n.dateRange={startDate:null,endDate:null};n.listFields=[{dataType:1,heading:"LIST_FIELDS.CODE",name:"Code","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,heading:"LIST_FIELDS.NAME",name:"Name","class":"listcellName",headingClass:"listcellName"},];n.typeOptions=[{Value:1,Name:e.getText("INFORMATIVE_DATA.HOURS_LABEL")},{Value:2,Name:e.getText("INFORMATIVE_DATA.DAYS_LABEL")},{Value:3,Name:e.getText("INFORMATIVE_DATA.UNITS_LABEL")},{Value:4,Name:e.getText("INFORMATIVE_DATA.EUROS_LABEL")}];n.usedConsecutiveDaysOptions=[];n.reasonCodeItemTemplate="{{Code}} {{ReasonCodeName}}";n.reasonCodeSearchResultTemplate="<div class='listcellCode'>{{Code}}<\/div><div class='listcellName'>{{ReasonCodeName}}<\/div>";w=function(t){n.pendingOperation=!0;var r=i.defer();return c.getInformativeDataItems(t).then(function(t){if(n.pendingOperation=!1,t&&t.DataList){if(!n.SelectedInformativeData)if(t.DataList.length)n.onSelectInformativeData(t.DataList[0]);else n.getEmptyInstance();r.resolve(t)}else r.resolve(null)}),r.promise};n.dataSources={reasonCodeDataSource:s.createDatasource({method:function(t){return n.getReasonCodes(t)}}),informativeDataDataSource:s.createDatasource({method:function(n){return w(n)}}),informativeDataDataSourceArgs:{startDate:n.SearchPeriod.StartDate,endDate:n.SearchPeriod.EndDate,searchFilter:n.Restrictions.searchFilter},reasonCodeArgs:{StartDate:n.dateRange.startDate,EndDate:n.dateRange.endDate}};f.init("MVC/Administrating/InformativeData/InitInformativeDataPage","INFORMATIVE_DATA.HEADER").then(function(t){t&&t.Data&&(n.reasonCodeItems=t.Data.ReasonCodeItems,n.Permissions.read=t.Data.ReadPermission,n.Permissions.write=t.Data.WritePermission,n.Permissions.remove=t.Data.DeletePermission)});b=function(){n.dataSources.informativeDataDataSourceArgs.startDate=n.SearchPeriod.StartDate;n.dataSources.informativeDataDataSourceArgs.endDate=n.SearchPeriod.EndDate;n.dataSources.informativeDataDataSourceArgs.searchFilter=n.Restrictions.searchFilter;r(function(){n.$broadcast("ui-pagedlist-update","informativeDataList")})};y=_.debounce(b,500);n.$watch("Restrictions.ShowRestrictions",function(t,i){if(i!=t){var u=null,f=null,r=new Date;switch(t){case 2:u=new Date(r.getFullYear(),r.getMonth(),r.getDate(),0,0,0,0);f=new Date(r.getFullYear(),r.getMonth(),r.getDate(),0,0,0,0);break;case 3:r=new Date((new Date).getTime()+864e5);u=new Date(r.getFullYear(),r.getMonth(),r.getDate(),0,0,0,0);break;case 4:f=new Date(r.getFullYear(),r.getMonth(),r.getDate(),0,0,0,0)}n.SearchPeriod={StartDate:u,EndDate:f};y()}});n.searchFilterBlurred=function(t){n.Restrictions.searchFilter=$(t.target).val()};n.$watch("Restrictions.searchFilter",function(n,t){t!=n&&y()});n.$watch("dateRange.startDate",function(n,t){t!=n&&p()});n.$watch("dateRange.endDate",function(n,t){t!=n&&p()});p=function(){r(function(){var t={StartDate:n.dateRange.startDate,EndDate:n.dateRange.endDate};n.dataSources.reasonCodeArgs=t})};n.getReasonCodes=function(n){return l.getAll(n)};k=function(t){var i,r;if(t){for(t&&t.DailyDuration&&(t.DailyDurationHours=t.DailyDuration/60),n.SelectedInformativeData=t,n.SelectedInformativeData.NotificationRequired=!1,i=n.SelectedInformativeData.Texts,r=0;r<(i?i.length:0);r++)if(i[r].Notification){n.SelectedInformativeData.NotificationRequired=!0;break}n.dateRange={startDate:n.SelectedInformativeData.StartDate,endDate:n.SelectedInformativeData.EndDate};n.SelectedInformativeData.TypeValue=n.SelectedInformativeData.Type;n.selectReasonCode()}n.pendingOperation=!1;n.mainForm.$setPristine()};n.onSelectInformativeData=function(t){n.pendingOperation=!0;var r=null;r=t&&t.IdC?c.getInstance({IdC:t.IdC}):i.when(t);r.then(k)};n.selectReasonCode=function(){if(n.SelectedInformativeData.ReasonCodeIdC&&n.reasonCodeItems)for(var t=0;t<n.reasonCodeItems.length;t++)if(n.SelectedInformativeData.ReasonCodeIdC==n.reasonCodeItems[t].IdC){n.SelectedInformativeData.ReasonCode=n.reasonCodeItems[t];n.SelectedInformativeData.ReasonCode.ReasonCodeName=e.getCurrentLanguageText(n.reasonCodeItems[t].Texts,"Name");break}};n.saveInstance=function(t){var i,r;if(n.pendingOperation=!0,t.Name=e.getCurrentLanguageText(t.Texts,"Name"),t.ReasonCode&&(t.ReasonCodeIdC=t.ReasonCode.IdC),n.SelectedInformativeData.FullDayBalance?n.SelectedInformativeData.DailyDuration=n.SelectedInformativeData.DailyDurationHours?n.SelectedInformativeData.DailyDurationHours*60:0:(n.SelectedInformativeData.DailyDuration=0,n.SelectedInformativeData.AllowPartDay=!1),n.SelectedInformativeData.UsedConsecutiveDays||(n.SelectedInformativeData.UsedConsecutiveDays=null,n.SelectedInformativeData.IncludeWeekdayHoliday=null,n.SelectedInformativeData.IncludeSunday=null),!n.SelectedInformativeData.NotificationRequired)for(i=n.SelectedInformativeData.Texts,r=0;r<(i?i.length:0);r++)i[r].Notification=null;t.StartDate=n.dateRange.startDate;t.EndDate=n.dateRange.endDate;c.saveInstance(t).then(function(t){if(t){t.DailyDuration&&(t.DailyDurationHours=n.SelectedInformativeData.DailyDuration/60);n.onSelectInformativeData(t)}n.$broadcast("ui-pagedlist-update","informativeDataList",{reload:!0});var i=o.getDataMessage(t,t?"GLOBAL.SUCCESS_SAVE":"GLOBAL.ERROR_SAVE");o.showSplash(i,t?"okMessage":"errorMessage")})};n.deleteInstance=function(t,i){i.stopPropagation();o.confirm([{pageID:"INFORMATIVE_DATA",textID:"CONFIRM_HEADING_DELETE_INFORMATIVE_DATA"},{pageID:"INFORMATIVE_DATA",textID:"CONFIRM_MESSAGE_DELETE_INFORMATIVE_DATA"}],null,function(){n.SelectedInformativeData.Deleted=!0;n.pendingOperation=!0;c.saveInstance(n.SelectedInformativeData).then(function(t){n.SelectedInformativeData=t?t:null;t.DeleteValidateError||n.$broadcast("ui-pagedlist-update","informativeDataList",{reload:!0});var i=o.getDataMessage(t,t.IdC?t.DeleteValidateError?"INFORMATIVE_DATA.ERROR_DELETE":"GLOBAL.ERROR_SAVE":"GLOBAL.SUCCESS_DELETE");o.showSplash(i,t.IdC?"errorMessage":"okMessage")});n.pendingOperation=!1})};n.getEmptyInstance=function(){n.onSelectInformativeData(c.getEmptyInstance())}}]);angular.module("TiimaApp").controller("approvingHoursController",["$scope","$rootScope","$
1window","$http","$q","$timeout","$uibModal","localizationService","formatService","settingService","toolsService","initPageService","tiimaEnumsService","employeeService","restrictionService","EmployeeRestrictionValue","Employee","Organisation","PaymentGroupPeriod","OrganisationPeriod","ApprovingHoursLimit",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k,d){function ut(n,t){if(n.SortDate&&t.SortDate){var i=c.getDateDifference(n.SortDate,t.SortDate);if(n.SortDate>t.SortDate)return tt?1:-1;if(n.SortDate<t.SortDate)return tt?-1:1;if(i.days==0)return n.TypeTextAbbr>t.TypeTextAbbr?1:n.TypeTextAbbr<t.TypeTextAbbr?-1:0}else{if(n.StartDate>t.StartDate)return tt?1:-1;if(n.StartDate<t.StartDate)return tt?-1:1;if(n.StartDate==t.StartDate)return n.TypeTextAbbr>t.TypeTextAbbr?1:n.TypeTextAbbr<t.TypeTextAbbr?-1:0}return 0}function ct(n,t){if(n.TypeTextAbbr>t.TypeTextAbbr)return ft?1:-1;if(n.TypeTextAbbr<t.TypeTextAbbr)return ft?-1:1;if(n.TypeTextAbbr==t.TypeTextAbbr){if(n.SortDate&&t.SortDate){if(n.SortDate>t.SortDate)return 1;if(n.SortDate<t.SortDate)return-1}else{if(n.StartDate>t.StartDate)return 1;if(n.StartDate<t.StartDate)return-1}return 0}return 0}function ei(n){n=new Date(n);n.setHours(0,0,0,0);var t=n.getDay();return n.setDate(n.getDate()-t+(t==0?-6:1)),n}var lt,g,nt,it,st,at,ht,ot;n.pageCount=0;n.pageIndex=0;n.pageSize=10;n.totalCount=0;n.orderByFieldIndex=0;n.sortOrder=0;n.searchFilter="";n.employees=[];n.mapEmployees=[];n.selectedEmployees=[];n.loading=!1;n.date=new Date;n.pagingInfo={FirstIndex:0,LastIndex:0,TotalCount:0};n.filterPopover={visible:!1,ownSubordinates:!0,subordinatesOf:[],byUserRights:!1,date:new Date,restrictions:[]};n.approvalPopover={visible:!1,workHours:!1,stamps:!1,realizedHours:!0,transactions:!1,approveUntilPreviousDay:!1,approveWholePeriod:!1,approvalText:"",errorText:"",type:1,pendingOperation:!1,disabled:!1};n.searchTimeout=null;n.permissions={read:0,write:0,remove:0,settingsGen:0,settingsUsr:0,showLog:0,showEmplInfo:0};n.pendingOperation=!1;n.generalSettings={};n.approvingHoursLimitsMap=[];n.processingCheckInUse=0;n.approvedByDefault={stamps:!1,workHours:!1,realizedHours:!1};n.workingDays=[];n.rowHeight=19;n.showData={plannedHours:!0,realizedHours:!0,stampHours:!1,workHours:!1,units:!1,euros:!1,transactions:!1,plannedRealizedDiff:!0,plannedStampsDiff:!1,plannedWorkHoursDiff:!1,stampsWorkHoursDiff:!1,reasonCodeToolTip:!1};n.dataRowHeight=n.rowHeight*((n.showData.plannedHours?1:0)+(n.showData.realizedHours?1:0)+(n.showData.stampHours?1:0)+(n.showData.workHours?1:0)+(n.showData.units?1:0)+(n.showData.euros?1:0)+(n.showData.transactions?1:0)+(n.showData.plannedRealizedDiff?1:0)+(n.showData.plannedStampsDiff?1:0)+(n.showData.plannedWorkHoursDiff?1:0)+(n.showData.stampsWorkHoursDiff?1:0)+(n.permissions.showLog?1:0));n.employeeInfoPopover={visible:!1,employee:{},showUserGroup:!1,showEmployeeGroups:!1,showGroupings:!1,showAcceptor:!1,showPaymentGroup:!1,showPersonnelGroup:!1,showFlextimeData:!1,showWorktimeData:!1,showPercentage1:!1,showSomeEmpDataDetails:!1};n.openEmployeeInfoPopover=function(t,i){n.reasonCodeToolTip.visible=!1;i.stopPropagation();n.employeeInfoPopover.visible=!0;n.employeeInfoPopover.showAllEmployeeGroups=!1;n.employeeInfoPopover.showAllGroupings=!1;var r=n.getSelectedPeriod();w.getEmployeeWithBasicInfo({EmployeeIdC:t,StartDate:r.startDate,EndDate:r.endDate}).then(function(t){t&&t.Data?(n.employeeInfoPopover.employee=t.Data,n.arrangeData()):n.employeeInfoPopover.employee={}});$("body").bind("click",lt)};n.arrangeData=function(){var u,f,r,i,t;if(n.employeeInfoPopover.employee.EmploymentDatas)for(u=n.employeeInfoPopover.employee.EmploymentDatas,f=!1,r=0;r<u.length;r++)if((n.employeeInfoPopover.showSomeEmpDataDetails||u[r].Groupings.length&&n.employeeInfoPopover.showGroupings)&&(u[r].hasDetails=!0,r==0&&(u[r].showDetail
1s=!0)),u[r].StartDate<"1"&&(u[r].StartDate=""),u[r].EndDate<"1"&&(u[r].EndDate=""),u[r].Groupings)for(i=u[r].Groupings,t=0;t<i.length;t++)i[t].StartDate<"1"&&(i[t].StartDate=""),i[t].EndDate<"1"&&(i[t].EndDate="");if(n.employeeInfoPopover.employee.Groupings)for(i=n.employeeInfoPopover.employee.Groupings,t=0;t<i.length;t++)i[t].StartDate<"1"&&(i[t].StartDate=""),i[t].EndDate<"1"&&(i[t].EndDate="");if(n.employeeInfoPopover.employee.EmployeeGroups)for(i=n.employeeInfoPopover.employee.EmployeeGroups,t=0;t<i.length;t++)i[t].StartDate<"1"&&(i[t].StartDate=""),i[t].EndDate<"1"&&(i[t].EndDate="")};n.closeEmployeeInfoPopover=function(){n.employeeInfoPopover.visible=!1;$("body").unbind("click",lt)};lt=function(t){$(t.target).parents(".employee-info-popover").length||(n.closeEmployeeInfoPopover(),n.$apply())};n.otherEventType={stampsSpecCode:1,workhoursSpecCode:2,absences:3,absencesUnapproved:31,standbys:4,standbysUnapproved:41,stampsOvertime:5,travelClaims:6,travelClaimsUnapproved:61,invalidEmployment:7,hourLimit:8,hourLimitDayMax:9,hourLimitMinMax:10,hourLimitMinUnder:11,hourLimitMaxOver:12,stampLimit:13,stampLimitMinMax:14,stampLimitMinOver:15,stampLimitMaxUnder:16,workingHourStamps:17,employeeUnlockedDays:99};g=[];nt=[];n.approvalLevel={notApproved:0,employeeLock:1,acceptorLock:2,periodLock:3,processingStarted:4,processingAccepted:5,processingExported:6,processingCorrected:7};n.approvalLevelColor=[];it=[];n.paymentGroupIdC=0;n.organisationIdC=0;n.$on("paymentgroupSelected",function(t,i){n.paymentGroupIdC=i.IdC;n.itemSelected()});n.$on("organisationSelected",function(t,i){n.organisationIdC=i.IdC;n.itemSelected()});n.itemSelected=function(){var r=new Date,i,t;if(r.setHours(0,0,0,0),n.selectedPeriodStartTime=r.getTime(),n.selectPeriod(n.selectedPeriodStartTime,n.viewCurrentPeriod),n.pageIndex=0,y.restrictions){for(i=[],t=0;t<y.restrictions.length;t++)(n.paymentGroupIdC!=0&&y.restrictions[t].RestrictionType==6||n.organisationIdC!=0&&y.restrictions[t].RestrictionType==1)&&i.push(y.restrictions[t]);for(t=0;t<i.length;t++)y.removeRestriction(i[t])}};n.notificationLevel={none:0,info:1,warning:2,error:3};n.eventNotificationLevel={stampsSpecCode:n.notificationLevel.error,workhoursSpecCode:n.notificationLevel.error,absences:n.notificationLevel.warning,absencesUnapproved:n.notificationLevel.error,standbys:n.notificationLevel.info,stampsOvertime:n.notificationLevel.warning,travelClaims:n.notificationLevel.info,travelClaimsUnapproved:n.notificationLevel.error,hourLimitMinMax:n.notificationLevel.none,hourLimitDayMax:n.notificationLevel.none,invalidEmployment:n.notificationLevel.info,stampLimitMinMax:n.notificationLevel.none,employeeUnlockedDays:n.notificationLevel.error};n.periods=[];n.periodTypes={organisation:1,paymentgroup:2,month:3,week:4};n.selectedPeriodType=n.periodTypes.month;n.viewCurrentPeriod=!0;st=new Date;st.setHours(0,0,0,0);st.setDate(1);n.selectedPeriodStartTime=st.getTime();n.selectedPeriodOrganisationName="";n.selectedPeriodOrganisationCode="";n.itemsInPeriodSelect=13;n.setPeriods=function(t,r,f){var y=f?f:u.defer(),p=f?!0:!1,s,w,b,nt,e,l,v,a,h,g;if(n.selectedPeriodType!=n.periodTypes.organisation||p||(n.organisationIdC?(e=new Date,e.setTime(t),e.setHours(0,0,0,0),e.setYear(e.getFullYear()-1),s=new Date,s.setTime(t),s.setHours(0,0,0,0),s.setYear(s.getFullYear()+1),w={organisationIdC:n.organisationIdC,StartDate:e,EndDate:s},d.getAll(w).then(function(t){var u,f,i,e,s,h;if(t&&t.DataList){for(u=t.DataList,f=0,n.periods=[],i=0;i<u.length;i++)e=new Date(u[i].StartDate).getTime(),s=new Date(u[i].EndDate).getTime(),n.selectedPeriodStartTime>=e&&n.selectedPeriodStartTime<=s&&(f=i),n.periods.push({startTime:e,endTime:s,code:u[i].Code,organisationName:u[i].OrganisationName,organisationCode:" ("+u[i].OrganisationCode+")"});!r&&f>0&&f--;u.length?(n.selectedPeriodStartTime=n.periods[f].startTime,n.selectedPeriodOrganisationName=n.periods[f].organisationName,n.selectedPeriodOrganisationCode=n.periods[f].organisationCode,y.resolve(!0)):(h=c.getDataMessage(!1,o.getText("APPROVING_HOURS.NO_ORGANISATION_PERIODS")),c.showSplash(h,"errorMessage",3e3))}})):p=!0),n.selectedPeriodType!=n.periodTypes.paymentgroup||p||(n.paymentGroupIdC?(e=new Date,e.setTime(t),e.setHours(0,0,0,0),e.setYear(e.getFullYear()-1),s=new Date,s.setTime(t),s.setHours(0,0,0,0),s.setYear(s.getFullYear()+1),w={paymentGroupIdC:n.paymentGroupIdC,StartDate:e,EndDate:s},k.getAll(w).then(function(t){var f,u,i,e,s,h;if(t&&t.DataList){for(f=0,u=t.DataList,n.periods=[],i=0;i<u.length;i++)e=new Date(u[i].StartDate).getTime(),s=new Date(u[i].EndDate).getTime(),n.selectedPeriodStartTime>=e&&n.selectedPeriodStartTime<=s&&(f=i),n.periods.push({startTime:e,endTime:s,code:u[i].Code});!r&&f>0&&f--;
1u.length?(n.selectedPeriodStartTime=n.periods[f].startTime,y.resolve(!0)):(h=c.getDataMessage(!1,o.getText("APPROVING_HOURS.NO_PAYMENT_GROUP_PERIODS")),c.showSplash(h,"errorMessage",3e3))}})):p=!0),n.selectedPeriodType==n.periodTypes.month||p){for(n.periods=[],e=new Date,e.setTime(t),e.setHours(0,0,0,0),e.setDate(1),e.setMonth(e.getMonth()-Math.floor(n.itemsInPeriodSelect/2)),l=0,v=0;v<n.itemsInPeriodSelect;v++)a=new Date(e),h=new Date(e),h.setMonth(h.getMonth()+1),h.setDate(0),n.selectedPeriodStartTime>=a.getTime()&&n.selectedPeriodStartTime<=h.getTime()&&(l=v),b=a.getMonth()+1,nt=(b<10?"0"+b:b)+"/"+a.getFullYear(),n.periods.push({startTime:a.getTime(),endTime:h.getTime(),code:nt}),e.setMonth(e.getMonth()+1);!r&&l>0&&l--;n.selectedPeriodStartTime=n.periods[l].startTime;y.resolve(!0)}else if(n.selectedPeriodType==n.periodTypes.week){for(n.periods=[],e=new Date,e.setTime(t),e.setHours(0,0,0,0),e=ei(e),e.setDate(e.getDate()-Math.floor(n.itemsInPeriodSelect/2)*7),l=0,v=0;v<n.itemsInPeriodSelect;v++)a=new Date(e),h=new Date(e),h.setDate(h.getDate()+6),n.selectedPeriodStartTime>=a.getTime()&&n.selectedPeriodStartTime<=h.getTime()&&(l=v),g=i.moment(a).format("W"),weekCode=(g<10?"0"+g:g)+"/"+a.getFullYear(),n.periods.push({startTime:a.getTime(),endTime:h.getTime(),code:weekCode}),e.setDate(e.getDate()+7);!r&&l>0&&l--;n.selectedPeriodStartTime=n.periods[l].startTime;y.resolve(!0)}return y.promise};n.selectPeriod=function(t,i){n.setPeriods(t,i).then(function(){n.getUsers();n.selectedEmployees=[];n.allApprovableEmployees=null;n.refresh()})};n.periodChange=function(){n.selectPeriod(n.selectedPeriodStartTime,!0)};n.firstPeriod=function(){n.selectedPeriodStartTime=n.periods[0].startTime;n.selectPeriod(n.selectedPeriodStartTime,!0)};n.nextPeriod=function(){var t=document.getElementById("periodSelect");t.selectedIndex=t.selectedIndex+1;n.selectedPeriodStartTime=n.periods[t.selectedIndex].startTime;n.selectPeriod(n.selectedPeriodStartTime,!0)};n.prevPeriod=function(){var t=document.getElementById("periodSelect");t.selectedIndex=t.selectedIndex-1;n.selectedPeriodStartTime=n.periods[t.selectedIndex].startTime;n.selectPeriod(n.selectedPeriodStartTime,!0)};n.lastPeriod=function(){n.selectedPeriodStartTime=n.periods[n.periods.length-1].startTime;n.selectPeriod(n.selectedPeriodStartTime,!0)};n.settingProperty=a.getEnum("ApprovingHoursSettingProperty");n.approvingHoursLimitType=a.getEnum("ApprovingHoursLimitHourLimitType");l.init("MVC/Approving/ApprovingHours/InitApprovingHoursPage","APPROVING_HOURS.PAGE_HEADER").then(function(t){var f,i,r;if(t&&t.Data&&(n.processingCheckInUse=h.getSetting("APPR_PROC_IN_USE")||!1,t.Data.Permissions&&(n.permissions=t.Data.Permissions),t.Data.PeriodTypes&&(n.selectedPeriodType=t.Data.PeriodTypes.usePayGroupPeriods?n.periodTypes.paymentgroup:t.Data.PeriodTypes.periodType?t.Data.PeriodTypes.periodType:n.periodTypes.month,n.viewCurrentPeriod=t.Data.PeriodTypes.viewCurrentPeriod),t.Data.Colors&&(n.approvalLevelColor[n.approvalLevel.notApproved]=t.Data.Colors.colorNotApproved,n.approvalLevelColor[n.approvalLevel.employeeLock]=t.Data.Colors.colorEmployeeLocked,n.approvalLevelColor[n.approvalLevel.acceptorLock]=t.Data.Colors.colorApproved,n.approvalLevelColor[n.approvalLevel.periodLock]=t.Data.Colors.colorPeriodLocked,n.approvalLevelColor[n.approvalLevel.processingStarted]=t.Data.Colors.colorProcessingStarted,n.approvalLevelColor[n.approvalLevel.processingAccepted]=t.Data.Colors.colorProcessingAccepted,n.approvalLevelColor[n.approvalLevel.processingExported]=t.Data.Colors.colorProcessingExported),t.Data.Settings&&n.applySettings(t.Data.Settings),t.Data.GeneralSettings&&(n.generalSettings=t.Data.GeneralSettings),t.Data.ApprovingHoursLimits))for(f=t.Data.ApprovingHoursLimits,i=0;i<f.length;i++)n.approvingHoursLimitsMap[f[i].IdC]=f[i];n.selectedPeriodType==n.periodTypes.week&&(r=ei(new Date),n.selectedPeriodStartTime=r.getTime());r=u.defer();o.getLoadDefer().then(function(){g[n.otherEventType.stampsSpecCode]=o.getText("APPROVING_HOURS.STAMPS_WITH_SPECIAL_CODE_REASONCODE");g[n.otherEventType.workhoursSpecCode]=o.getText("APPROVING_HOURS.WORK_HOURS_WITH_SPECIAL_CODE_REASONCODE");g[n.otherEventType.absences]=o.getText("APPROVING_HOURS.ABSENCES");g[n.otherEventType.absencesUnapproved]=o.getText("APPROVING_HOURS.UNAPPROVED_ABSENCES");g[n.otherEventType.standbys]=o.getText("APPROVING_HOURS.STANDBYS");g[n.otherEventType.standbysUnapproved]=o.getText("APPROVING_HOURS.UNAPPROVED_STANDBYS");g[n.otherEventType.stampsOvertime]=o.getText("APPROVING_HOURS.OVERTIME");g[n.otherEventType.travelClaims]=o.getText("APPROVING_HOURS.TRAVEL_CLAIMS");g[n.otherEventType.travelClaimsUnapproved]=o.getText("APPROVING_HOURS.UNAPPROVED_TRAVEL_CLAIMS");g[n.otherEventType.hourLimitMinMax]=o.getText("APPROVING_HOURS.HOUR_LIMIT_MIN_MAX");g[n.otherEventType.hourLimitMinUnder]=o.getText("APPROVING_HOURS.HOUR_LIMIT_MIN_UNDER");g[n.otherEventType.hourLimitMaxOver]=o.getText("APPROVING_HOURS.HOUR_LIMIT_MAX_OVER");g[n.otherEventType.hourLimitDayMax]=o.getText("APPROVING_HOURS.HOUR_LIMIT_DAY_MAX");g[n.otherEventType.stampLimitMinMax]=o.getText("APPROVING_HOURS.STAMP_LIMIT_MIN_MAX");g[n.otherEventType.stampLimitMinOver]=o.getText("APPROVING_HOURS.STAMP_LIMIT_MIN_OVER");g[n.otherEventType.stampLimitMaxUnder]=o.getText("APPROVING_HOURS.STAMP_LIMIT_MAX_UNDER");g[n.otherEventType.invalidEmployment]=o.getText("APPROVING_HOURS.INVALID_EMPLOYMENTDATA");g[n.otherEventType.employeeUnlockedDays]=o.getText("APPROVING_HOURS.EMPLOYEE_UNLOCKED_DAYS");nt[n.otherEventType.stampsSpecCode]=o.getText("APPROVING_HOURS.STAMPS_ABBR");nt[n.otherEventType.workhoursSpecCode]=o.getText("APPROVING_HOURS.WORK_HOURS_ABBR");nt[n.otherEventType.absences]=o.getText("APPROVING_HOURS.ABSENCES_ABBR");nt[n.otherEventType.absencesUnapproved]=o.getText("APPROVING_HOURS.ABSENCES_ABBR");nt[n.otherEventType.standbys]=o.getText("APPROVING_HOURS.STANDBYS_ABBR");nt[n.otherEventType.standbysUnapproved]=o.getText("APPROVING_HOURS.STANDBYS_ABBR");nt[n.otherEventType.stampsOvertime]=o.getText("APPROVING_HOURS.OVERTIME_ABBR");nt[n.otherEventType.travelClaims]=o.getText("APPROVING_HOURS.TRAVEL_CLAIMS_ABBR");nt[n.otherEventType.travelClaimsUnapproved]=o.getText("APPROVING_HOURS.TRAVEL_CLAIMS_ABBR");nt[n.otherEventType.invalidEmployment]=o.getText("APPROVING_HOURS.INVALID_EMPLOYMENTDATA");nt[n.otherEventType.hourLimitMinMax]=o.getText("APPROVING_HOURS.HOUR_LIMIT_MIN_MAX_ABBR");nt[n.otherEventType.hourLimitMinUnder]=o.getText("APPROVING_HOURS.HOUR_LIMIT_MIN_UNDER_ABBR");nt[n.otherEventType.hourLimitMaxOver]=o.getText("APPROVING_HOURS.HOUR_LIMIT_MAX_OVER_ABBR");nt[n.otherEventType.hourLimitDayMax]=o.getText("APPROVING_HOURS.HOUR_LIMIT_DAY_MAX_ABBR");nt[n.otherEventType.stampLimitMinMax]=o.getText("APPROVING_HOURS.STAMP_LIMIT_MIN_MAX_ABBR");nt[n.otherEventType.stampLimitMinOver]=o.getText("APPROVING_HOURS.STAMP_LIMIT_MIN_OVER_ABBR");nt[n.otherEventType.stampLimitMaxUnder]=o.getText("APPROVING_HOURS.STAMP_LIMIT_MAX_UNDER_ABBR");nt[n.otherEventType.employeeUnlockedDays]=o.getText("APPROVING_HOURS.EMPLOYEE_UNLOCKED_DAYS_ABBR");it[n.approvalLevel.notApproved]=o.getText("APPROVING_HOURS.STATUS_NOT_APPROVED");it[n.approvalLevel.employeeLock]=o.getText("APPROVING_HOURS.STATUS_EMPLOYEE_LOCKED");it[n.approvalLevel.acceptorLock]=o.getText("APPROVING_HOURS.STATUS_APPROVED");it[n.approvalLevel.periodLock]=o.getText("APPROVING_HOURS.STATUS_PERIOD_LOCK");it[n.approvalLevel.processingStarted]=o.getText("APPROVING_HOURS.STATUS_PROC_STARTED");it[n.approvalLevel.processingAccepted]=o.getText("APPROVING_HOURS.STATUS_PROC_APPROVED");it[n.approvalLevel.processingExported]=o.getText("APPROVING_HOURS.STATUS_PROC_EXPORTED");it[n.approvalLevel.processingCorrected]=o.getText("APPROVING_HOURS.STATUS_PROC_CORRECTED");h.getInitializedPromise().then(function(){n.currentEmployeeIdC=h.getSetting("CurrentEmployeeIdC");r.resolve()})});r.promise.then(function(){n.selectPeriod(n.selectedPeriodStartTime,n.viewCurrentPeriod)});(n.permissions.settingsGen||n.permissions.settingsUsr)&&l.setSettingFunction(function(){n.hideInfoPopover();n.openSettings()})});n.approvingNrOfEmployeesText="";n.allApprovableEmployees=null;n.getAllApprovableEmployees=function(t){for(var e,o=u.defer(),s=n.getFilterPopoverItems(),r=new Date,f=new Date,i=0;i<n.periods.length;i++)n.selectedPeriodStartTime==n.periods[i].startTime&&(r=new Date(n.periods[i].startTime),f=new Date(n.periods[i].endTime));return e=null,e=t?angular.extend({ReturnOnlyEmployeeData:1,FirstIndex:0,ItemCount:9999999,OrderByField:0,SortOrder:0,StartDate:r,EndDate:f,SearchFilter:v.getSearchFilter(),ByUserRights:n.filterPopover.byUserRights,Items:s},v.getExtraArguments()):angular.extend({FirstIndex:0,ItemCount:9999999,OrderByField:0,SortOrder:0,StartDate:r,EndDate:f,SearchFilter:v.getSearchFilter(),ByUserRights:n.filterPopover.byUserRights,Items:s},v.getExtraArguments()),w.getApprovableEmployeesAndHours(e).then(function(n){n&&n.DataList&&o.resolve(n)}),o.promise};n.selectedPeriod={approvableEmployees:!1,unApprovableEmployees:!1};n.openApprovalMenu=function(){n.reasonCodeToolTip.visible=!1;n.filterPopover.visible=!1;n.checkEmployeeSelected();n.approvalPopover.pendingOperation=!0;n.allApprovableEmployees==null?n.getAllApprovableEmployees().then(function(t){n.allApprovableEmployees=t.DataList;n.checkAllApprovableEmployees();n.approvalPopover.pendingOperation=!1}):(n.checkAllApprovableEmployees(),n.approvalPopover.pendingOperation=!1)};var rt=1,et=3;n.checkAllApprovableEmployees=function(){n.selectedPeriod.approvableEmployees=!1;n.selectedPeriod.unApprovableEmployees=!1;for(var t=0;t<n.allApprovableEmployees.length;t++)n.parseEmployeeData(n.allApprovableEmployees[t]),n.allApprovableEmployees[t].errors=[],n.allApprovableEmployees[t].hasErrors=!1,n.allApprovableEmployees[t].NotificationLevel==n.notificationLevel.error&&(n.allApprovableEmployees[t].hasErrors=!0),n.allApprovableEmployees[t].hasErrors||(n.allApprovableEmployees[t].PeriodAcceptorLock==0||n.allApprovableEmployees[t].PeriodAcceptorLock==2||n.allApprovableEmployees[t].PeriodStampAcceptorLock==0||n.allApprovableEmployees[t].PeriodStampAcceptorLock==2)&&(n.selectedPeriod.approvableEmployees=!0),(n.allApprovableEmployees[t].PeriodAcceptorLock==1||n.allApprovableEmployees[t].PeriodAcceptorLock==2||n.allApprovableEmployees[t].PeriodStampAcceptorLock==1||n.allApprovableEmployees[t].PeriodStampAcceptorLock==2)&&(n.selectedPeriod.unApprovableEmployees=!0)};n.currentApprovalType=null;n.confirmApproval=function(t,i,r){var a,u,e,s,w,v,h,c,b,tt,k,f,d,y;if(!r){t=t?t:n.currentApprovalType;n.currentApprovalType=t;var nt=[],p=0,l=0;for(n.approvalPopover.errorText="",i&&i.stopPropagation(),a=0;a<n.allApprovableEmployees.length;a++)if(u=n.allApprovableEmployees[a],u.allOtherEventsAreInTheFuture=!1,t!=n.approvalTypes.approveSelected&&t!=n.approvalTypes.unApproveSelected||n.selectedEmployees[u.IdC]){if(e=u.Per
1iodAcceptorLock,s=u.PeriodStampAcceptorLock,n.approvalPopover.approveUntilPreviousDay&&!n.approvalPopover.approveWholePeriod)for(f=new Date,f.setHours(0,0,0,0),u.allOtherEventsAreInTheFuture=!0,w=u.ApprovableEvents.concat(u.NotApprovableEvents),v=0;v<w.length;v++)h=w[v],h.AbsenceDate&&h.AbsenceDate<f&&(u.allOtherEventsAreInTheFuture=!1),h.StartDate&&h.StartDate<f&&(u.allOtherEventsAreInTheFuture=!1);if(n.selectedEmployees[u.IdC]=!1,(t<=n.approvalTypes.approveAll&&(e==0||s==0||e==2||s==2)||t>=n.approvalTypes.unApproveSelected&&(e==1||s==1||e==2||s==2))&&(n.selectedEmployees[u.IdC]=!0,t<=n.approvalTypes.approveAll&&!u.allOtherEventsAreInTheFuture)){for(otherEventType in u.notificationLevelText[n.notificationLevel.error])nt[g[otherEventType]]=!0;u.hasErrors&&(p+=1,n.selectedEmployees[u.IdC]=!1)}n.selectedEmployees[u.IdC]&&l++}if(n.employeeChecked(!1),n.approvalPopover.type=t,n.approvalPopover.errorText="",n.approvalPopover.errorText2="",n.approvalPopover.approvalText="",p){c=o.getText("APPROVING_HOURS.UNABLE_TO_"+(t==n.approvalTypes.unApproveAll?"UN":"")+"APPROVE_NR_OF_EMPLOYEES");c=c.replace("{0}",p);b=!0;for(error in nt)c+=(b?": ":", ")+error,b=!1;n.approvalPopover.errorText=c}l?(tt=t<=n.approvalTypes.approveAll?o.getText("APPROVING_HOURS.APPROVE_NR_OF_EMPLOYEES"):o.getText("APPROVING_HOURS.UNAPPROVE_NR_OF_EMPLOYEES"),n.approvalPopover.approvalText=tt.replace("{0}",l),n.approvalPopover.disabled=!1):(n.approvalPopover.disabled=!0,n.approvalPopover.approveWholePeriod=!1);t<=n.approvalTypes.approveAll&&l&&n.workingDays.length&&(k=new Date(n.workingDays[n.workingDays.length-1].Date),k.setHours(0,0,0,0),f=new Date,f.setHours(0,0,0,0),f.getTime()<=k.getTime()&&(n.approvalPopover.errorText2=o.getText("APPROVING_HOURS.WARNING_APPROVING_BEFORE_END_OF_PERIOD"),n.approvalPopover.approveUntilPreviousDay&&!n.approvalPopover.approveWholePeriod&&(n.approvalPopover.errorText2=o.getText("APPROVING_HOURS.SETTING_PROPERTY_APPROVEUNTILPREVIOUSDAY"))));n.approvalPopover.visible=!0;d=$("#confirmApprovalPopover");y=null;y=function(t){d.get(0)!=t.target&&($.contains(d.get(0),t.target)||(n.approvalPopover.visible&&(n.approvalPopover.visible=!1),$("body").unbind("click",y),n.$apply()))};n.approvalPopover.visible&&$("body").bind("click",y)}};n.closeApprovalPopover=function(){n.approvalPopover.visible=!1;n.approvalPopover.approveWholePeriod=!1};n.approvalChanged=function(){};n.selectedEmployee=null;n.employeeSelected=!1;n.employeeChecked=function(t){t&&t.stopPropagation();f(function(){for(var i=!0,t=0;t<n.employees.length;t++)if(!n.selectedEmployees[n.employees[t].IdC]){i=!1;break}n.allEmployeesSelected=i;n.checkEmployeeSelected()})};n.allEmployeesSelected=!1;n.selectAllEmployees=function(t){t&&t.stopPropagation();f(function(){var i,t;if(n.allEmployeesSelected)for(i in n.selectedEmployees)n.selectedEmployees[i]=!1;for(t=0;t<n.employees.length;t++)n.currentEmployeeIdC!=n.employees[t].IdC&&(n.selectedEmployees[n.employees[t].IdC]=n.allEmployeesSelected)});n.checkEmployeeSelected()};n.checkEmployeeSelected=function(){n.employeeSelected=!1;for(var t in n.selectedEmployees)if(n.selectedEmployees[t]){n.employeeSelected=!0;break}};n.getApprovingNrOfEmployees=function(){var t=0,i,r;for(i in n.selectedEmployees)n.selectedEmployees[i]&&t++;return r=n.approvalPopover.type<3?o.getText("APPROVING_HOURS.APPROVE_NR_OF_EMPLOYEES"):o.getText("APPROVING_HOURS.UNAPPROVE_NR_OF_EMPLOYEES"),r.replace("{0}",t)};n.doApproval=function(n){o.removeTimezonesFromDates(n);var t=u.defer();return c.handleHttpPost(r.post("MVC/Approving/ApprovingHours/ApproveHours",n),function(n){t.resolve(n)},t),t.promise};n.getFilterPopoverItems=function(){var i=[],r,t;if(i.push({Type:15,DataType:1,IdCValue:n.currentEmployeeIdC}),n.paymentGroupIdC&&i.push({Type:3,DataType:1,IdCValue:n.paymentGroupIdC}),n.organisationIdC&&i.push({Type:1,DataType:1,IdCValue:n.organisationIdC}),!v.isRestrictionsDisabled()){if(n.filterPopover.ownSubordinates&&i.push({Type:4,DataType:1,IdCValue:n.currentEmployeeIdC}),n.filterPopover.subordinatesOf)for(t=0;t<n.filterPopover.subordinatesOf.length;t++)r=n.filterPopover.subordinatesOf[t],r.checked&&i.push({Type:4,DataType:1,IdCValue:r.IdC});if(y.restrictions.length)for(t=0;t<y.restrictions.length;t++)(n.paymentGroupIdC==0||y.restrictions[t].RestrictionType!=3)&&(n.organisationIdC==0||y.restrictions[t].RestrictionType!=1)&&i.push({Type:v.convertRestrictionParameterType(y.restrictions[t].RestrictionType),DataType:1,IdCValue:y.restrictions[t].IdC,SubLevels:y.restrictions[t].SubLevels})}return i.length||(i=null),i};n.approvalTypes={approveSelected:1,approveAll:2,unApproveSelected:3,unApproveAll:4};n.approveHours=function(){var i,t;if(n.pendingOperation=!0,i=[],n.allApprovableEmployees)for(t=0;t<n.allApprovableEmployees.length;t++)n.selectedEmployees[n.allApprovableEmployees[t].IdC]&&n.currentEmployeeIdC!=n.allApprovableEmployees[t].IdC&&i.push({IdC:n.allApprovableEmployees[t].IdC,ID2:n.allApprovableEmployees[t].ID2,LastName:n.allApprovableEmployees[t].LastName,FirstName:n.allApprovableEmployees[t].FirstName,StartDate:new Date(n.workingDays[0].Date),EndDate:new Date(n.workingDays[n.workingDays.length-1].Date),ApproveTypeOfHours:(n.approvalPopover.stamps?n.settingProperty.approveStamps:0)+(n.approvalPopover.workHours?n.settingProperty.approveWorkHours:0)+(n.approvalPopover.realizedHours?n.settingProperty.approveRealizedHours:0)+(n.approvalPopover.transactions?n.settingProperty.approveTransactions:0),RemoveApproval:n.approvalPopover.type>=n.approvalTypes.unApproveSelected?1:0,PaymentGroupIdC:n.paymentGroupIdC?n.paymentGroupIdC:"",OrganisationIdC:n.organisationIdC?n.organisationIdC:"",ApproveWholePeriod:n.approvalPopover.approveWholePeriod?1:0});i.length?n.doApprovalAndShowResults(i,1e3):n.pendingOperation=!1;n.selectedEmployees=[];n.checkEmployeeSelected();n.allApprovableEmployees=null};n.doApprovalAndShowResults=function(t,i){t.length?(n.pendingOperation=!0,n.approvalPopover.approveWholePeriod=!1,n.doApproval(t).then(function(){n.approvalPopover.visible=!1;n.allApprovableEmployees=null;n.refresh(i)})):n.pendingOperation=!1};n.currentEmployeeIdC=h.getSetting("CurrentEmployeeIdC");n.approvingHoursEditor=null;n.employeesForHoursEditor=null;n.openHoursEditor=function(t,i){if(i==null){var r=n.getSelectedPeriod(),i=new Date;i.setHours(0,0,0,0);r&&r.startDate&&r.endDate&&(i<r.startDate||i>r.endDate)&&(i=r.startDate)}n.pendingOperation=!0;n.employeesForHoursEditor==null?n.getAllApprovableEmployees(!0).then(function(r){n.employeesForHoursEditor=r.DataList;n.openHoursEditorWithEmployeeList(t,i);n.pendingOperation=!1}
1):(n.openHoursEditorWithEmployeeList(t,i),n.pendingOperation=!1)};n.openHoursEditorWithEmployeeList=function(t,i){n.approvingHoursEditor==null&&(n.approvingHoursEditor=e.open({templateUrl:"MVC/modals/Approving/approvingHoursEditor.html",controller:"approvingHoursEditorController",backdrop:"static",windowClass:"approvingHoursEditor",resolve:{employeeIdC:function(){return new String(t)},workingDayDate:function(){return dt=new Date(i),dt.setHours(0,0,0,0),dt},permissions:function(){return n.permissions},generalSettings:function(){return n.generalSettings},queryItems:function(){return n.getFilterPopoverItems()},currentPeriod:function(){return n.getSelectedPeriod()},employees:function(){return n.employeesForHoursEditor},approvedByDefault:function(){return n.approvedByDefault}}}),n.approvingHoursEditor.result.then(function(t){n.approvingHoursEditor=null;t&&(n.refresh(),n.employeesForHoursEditor=null)}))};n.getSelectedPeriod=function(){for(var i=new Date,r=new Date,t=0;t<n.periods.length;t++)n.selectedPeriodStartTime==n.periods[t].startTime&&(i=new Date(n.periods[t].startTime),r=new Date(n.periods[t].endTime));return{startDate:i,endDate:r}};n.modalInstance=null;n.openSettings=function(){n.modalInstance==null&&(n.modalInstance=e.open({templateUrl:"MVC/modals/Approving/approvingHoursSettings.html",controller:"approvingHoursSettingsController",backdrop:"static",windowClass:"approvingHoursSettings",resolve:{date:function(){var t=new Date;return isNaN(n.selectedPeriodStartTime)||(t=new Date(parseInt(n.selectedPeriodStartTime,10))),t},permissions:function(){return{general:n.permissions.settingsGen,user:n.permissions.settingsUsr}}}}),n.modalInstance.result.then(function(t){n.pendingOperation=!0;t!=null&&n.applySettings(t);n.modalInstance=null;n.pendingOperation=!1}))};n.applySettings=function(t){var u=0,f=!1,e,i,r,o,s;if(t.Settings&&t.Settings.length)for(e=0;e<t.Settings.length;e++)i=t.Settings[e],i.Name=="APPROVING_HOURS.STAMPS_WITH_SPECIAL_CODE_REASONCODE"?(r=i.Value?i.Value:0,n.eventNotificationLevel.stampsSpecCode!=r&&(f=!0),n.eventNotificationLevel.stampsSpecCode=r):i.Name=="APPROVING_HOURS.WORK_HOURS_WITH_SPECIAL_CODE_REASONCODE"?(r=i.Value?i.Value:0,n.eventNotificationLevel.workhoursSpecCode!=r&&(f=!0),n.eventNotificationLevel.workhoursSpecCode=r):i.Name=="APPROVING_HOURS.ABSENCES"?(r=i.Value?i.Value:0,n.eventNotificationLevel.absences!=r&&(f=!0),n.eventNotificationLevel.absences=r):i.Name=="APPROVING_HOURS.UNAPPROVED_ABSENCES"?(r=i.Value?i.Value:0,n.eventNotificationLevel.absencesUnapproved!=r&&(f=!0),n.eventNotificationLevel.absencesUnapproved=r):i.Name=="APPROVING_HOURS.STANDBYS"?(r=i.Value?i.Value:0,n.eventNotificationLevel.standbys!=r&&(f=!0),n.eventNotificationLevel.standbys=r):i.Name=="APPROVING_HOURS.UNAPPROVED_STANDBYS"?(r=i.Value?i.Value:0,n.eventNotificationLevel.standbysUnapproved!=r&&(f=!0),n.eventNotificationLevel.standbysUnapproved=r):i.Name=="APPROVING_HOURS.OVERTIME"?(r=i.Value?i.Value:0,n.eventNotificationLevel.stampsOvertime!=r&&(f=!0),n.eventNotificationLevel.stampsOvertime=r):i.Name=="APPROVING_HOURS.TRAVEL_CLAIMS"?(r=i.Value?i.Value:0,n.eventNotificationLevel.travelClaims!=r&&(f=!0),n.eventNotificationLevel.travelClaims=r):i.Name=="APPROVING_HOURS.UNAPPROVED_TRAVEL_CLAIMS"?(r=i.Value?i.Value:0,n.eventNotificationLevel.travelClaimsUnapproved!=r&&(f=!0),n.eventNotificationLevel.travelClaimsUnapproved=r):i.Name=="APPROVING_HOURS.HOUR_LIMIT_MIN_MAX"?(r=i.Value?i.Value:0,n.eventNotificationLevel.hourLimitMinMax!=r&&(f=!0),n.eventNotificationLevel.hourLimitMinMax=r):i.Name=="APPROVING_HOURS.HOUR_LIMIT_DAY_MAX"?(r=i.Value?i.Value:0,n.eventNotificationLevel.hourLimitDayMax!=r&&(f=!0),n.eventNotificationLevel.hourLimitDayMax=r):i.Name=="APPROVING_HOURS.STAMP_LIMIT_MIN_MAX"?(r=i.Value?i.Value:0,n.eventNotificationLevel.stampLimitMinMax!=r&&(f=!0),n.eventNotificationLevel.stampLimitMinMax=r):i.Name=="APPROVING_HOURS.PAGE_SIZE"?n.pageSize=i.Value?i.Value:10:u+=i.Value?Number(i.EnumValue):0;else n.eventNotificationLevel.stampsSpecCode=t.NotificLevelStampsSpecCode,n.eventNotificationLevel.workhoursSpecCode=t.NotificLevelWorkHoursSpecCode,n.eventNotificationLevel.absences=t.NotificLevelAbsence
1s,n.eventNotificationLevel.absencesUnapproved=t.NotificLevelAbsencesUnapproved,n.eventNotificationLevel.standbys=t.NotificLevelStandbys,n.eventNotificationLevel.standbysUnapproved=t.NotificLevelStandbysUnapproved,n.eventNotificationLevel.stampsOvertime=t.NotificLevelStampsOvertime,n.eventNotificationLevel.travelClaims=t.NotificLevelTravelClaims,n.eventNotificationLevel.travelClaimsUnapproved=t.NotificLevelTravelClaimsUnapproved,n.eventNotificationLevel.hourLimitMinMax=t.NotificLevelHourLimitMinMax,n.eventNotificationLevel.hourLimitDayMax=t.NotificLevelHourLimitDayMax,n.eventNotificationLevel.stampLimitMinMax=t.NotificLevelStampLimitMinMax,n.pageSize=t.PageSize?t.PageSize:10,u=t.Properties;n.showData.plannedHours=(u&n.settingProperty.showPlannedHours)>0;n.showData.realizedHours=(u&n.settingProperty.showRealizedHours)>0;n.showData.stampHours=(u&n.settingProperty.showStampHours)>0;n.showData.workHours=(u&n.settingProperty.showWorkHours)>0;n.showData.units=(u&n.settingProperty.showUnits)>0;n.showData.euros=(u&n.settingProperty.showEuros)>0;n.showData.transactions=(u&n.settingProperty.showTransactions)>0;n.showData.plannedRealizedDiff=(u&n.settingProperty.showPlannedRealizedDiff)>0;n.showData.plannedStampsDiff=(u&n.settingProperty.showPlannedStampsDiff)>0;n.showData.plannedWorkHoursDiff=(u&n.settingProperty.showPlannedWorkHoursDiff)>0;n.showData.stampsWorkHoursDiff=(u&n.settingProperty.showStampsWorkHoursDiff)>0;n.showData.weekDay=(u&n.settingProperty.showWeekDay)>0;n.showData.reasonCodeToolTip=(u&n.settingProperty.showReasonCodeToolTip)>0;n.viewCurrentPeriod=!((u&n.settingProperty.showPreviousPeriod)>0);n.approvalPopover.stamps=u&n.settingProperty.approveStamps?!0:!1;n.approvalPopover.workHours=u&n.settingProperty.approveWorkHours?!0:!1;n.approvalPopover.realizedHours=u&n.settingProperty.approveRealizedHours?!0:!1;n.approvalPopover.transactions=u&n.settingProperty.approveTransactions?!0:!1;n.approvalPopover.approveUntilPreviousDay=u&n.settingProperty.approveUntilPreviousDay?!0:!1;n.approvedByDefault.stamps=u&n.settingProperty.approveStamps?!0:!1;n.approvedByDefault.workHours=u&n.settingProperty.approveWorkHours?!0:!1;n.approvedByDefault.realizedHours=u&n.settingProperty.approveRealizedHours?!0:!1;n.approvedByDefault.transactions=u&n.settingProperty.approveTransactions?!0:!1;n.filterPopover.ownSubordinates=u&n.settingProperty.ownSubordinatesOff?!1:!0;n.employeeInfoPopover.showUserGroup=(u&n.settingProperty.showUserGroup)>0;n.employeeInfoPopover.showEmployeeGroups=(u&n.settingProperty.showEmployeeGroups)>0;n.employeeInfoPopover.showGroupings=(u&n.settingProperty.showGroupings)>0;n.employeeInfoPopover.showAcceptor=(u&n.settingProperty.showAcceptor)>0;n.employeeInfoPopover.showPaymentGroup=(u&n.settingProperty.showPaymentGroup)>0;n.employeeInfoPopover.showPersonnelGroup=(u&n.settingProperty.showPersonnelGroup)>0;n.employeeInfoPopover.showFlextimeData=(u&n.settingProperty.showFlextimeData)>0;n.employeeInfoPopover.showWorktimeData=(u&n.settingProperty.showWorktimeData)>0;n.employeeInfoPopover.showPercentage1=(u&n.settingProperty.showPercentage1)>0;n.employeeInfoPopover.showSomeEmpDataDetails=n.employeeInfoPopover.showAcceptor||n.employeeInfoPopover.showPaymentGroup||n.employeeInfoPopover.showPersonnelGroup||n.employeeInfoPopover.showFlextimeData||n.employeeInfoPopover.showWorktimeData||n.employeeInfoPopover.showPercentage1;n.reCalculateRowHeigth();o=!0;for(s in n.showData)if(n.showData[s]){o=!1;break}o&&n.showInfoPopover(n.infoPopover.typeMissingSettings);f&&n.refresh()};n.getUsers=function(t){var e=u.defer(),r,i,f;for(n.loading=!0,r={},i=0;i<n.filterPopover.subordinatesOf.length;i++)f=n.filterPopover.subordinatesOf[i],f.checked&&(r[f.IdC]=!0);var o=new Date,s=new Date,h={StartDate:o,EndDate:s};return w.getAllSubstitutableEmployees(h).then(function(i){for(var o,u=i&&i.DataList?i.DataList:[],f=0;f<u.length;f++)o=u[f],o.checked=r[o.IdC]?!0:!1;n.filterPopover.subordinatesOf=u;n.loading=!1;t&&n.refresh();e.resolve()}),e.promise};n.firstPage=function(){n.pageIndex=0;n.refresh()};n.prevPage=function(){n.pageIndex--;n.refresh()};n.nextPage=function(){n.pageIndex++;n.refresh()};n.lastPage=function(){n.pageIndex=n.pageCount-1;n.refresh()};n.headerClick=function(t){t==n.orderByFieldIndex?n.sortOrder=++n.sortOrder%2:(n.sortOrder=0,n.orderByFieldIndex=t);n.refresh()};n.reCalculateRowHeigth=function(){n.dataRowHeight=n.rowHeight*Math.max((n.showData.plannedHours?1:0)+(n.showData.realizedHours?1:0)+(n.showData.stampH
1ours?1:0)+(n.showData.workHours?1:0)+(n.showData.units?1:0)+(n.showData.euros?1:0)+(n.showData.transactions?1:0)+(n.showData.plannedRealizedDiff?1:0)+(n.showData.plannedStampsDiff?1:0)+(n.showData.plannedWorkHoursDiff?1:0)+(n.showData.stampsWorkHoursDiff?1:0)+(n.permissions.showLog?1:0),3)};n.verticalScrollbarWidth=0;n.horizontalScrollbarWidth=0;$(function(){n.dhScroll=document.getElementById("dayHeaderScroll");$("#hourListScroll").on("scroll",function(t){var i=t.target.scrollLeft;n.dhScroll.scrollLeft=i})});$(function(){n.elScroll=document.getElementById("employeeListScroll");n.hlScroll=document.getElementById("hourListScroll");n.hlScroll.onscroll=function(t){n.elScroll.scrollTop=t.target.scrollTop}});$(function(){$("#hourListScroll").on("mousedown",function(){n.filterPopover.visible=!1;n.otherEventsPopover.visible=!1;n.$apply()})});$(function(){$("#employeeListScroll").on("mousedown",function(){n.filterPopover.visible=!1;n.otherEventsPopover.visible=!1;n.$apply()})});y.setDataSource(n.getRestrictionValues=function(t){var i=u.defer();return p.getAll({query:t.SearchFilter}).then(function(t){var f,u,r;if(t&&t.DataList){for(f=[],u=0;u<t.DataList.length;u++)r=t.DataList[u],r.TypeName.substring(0,8)=="GENERAL_"&&(r.TypeName=o.getText(r.TypeName)),(n.paymentGroupIdC==0||r.RestrictionType!=6)&&(n.organisationIdC==0||r.RestrictionType!=1)&&f.push(r);t.DataList=f;i.resolve(t)}else i.resolve(null)}),i.promise});v.setFilterDate(n.date);n.$watch("searchFilter",function(t,i){t!=i&&n.search(i)});n.search=function(t,i){if(!n.searchTimeout){f.cancel(n.searchTimeout);i||(i=500);var r=t;n.searchTimeout=f(function(){var t=v.getSearchFilter();n.searchFilter!=t&&(n.pageIndex=0,v.setSearchFilter(n.searchFilter),n.refresh());n.searchTimeout=null},i)}};n.$on(a.getValue("RestrictionControllerEventEnum","RestrictionAdd"),function(){n.restrictionChanged()});n.$on(a.getValue("RestrictionControllerEventEnum","RestrictionRemove"),function(){n.restrictionChanged()});n.$on(a.getValue("RestrictionControllerEventEnum","RestrictionUpdate"),function(){n.restrictionChanged()});n.$on(a.getValue("RestrictionControllerEventEnum","RestrictionChange"),function(){n.restrictionChanged()});at=function(t){$(t.target).parents(".info-popover").length||n.hideInfoPopover()};n.infoPopover={visible:!1,selectedType:1,typeNone:0,typeMissingSettings:1,typeUnused:-999};n.showInfoPopover=function(t){n.infoPopover.visible=!0;n.infoPopover.selectedType=t;$("body").bind("click",at);n.$apply()};n.hideInfoPopover=function(){n.infoPopover.visible=!1;n.infoPopover.selectedType=0;$("body").unbind("click",at)};n.restrictionChanged=function(){n.pageIndex=0;n.selectedEmployees=[];n.allApprovableEmployees=null;n.refresh()};n.toggleFilterPopover=function(t){n.reasonCodeToolTip.visible=!1;n.filterPopover.visible=!n.filterPopover.visible;n.reasonCodeToolTip.visible=!1;t.stopPropagation();var i=null;i=function(t){if(!$(t.target).parent(".ui-autocomplete").length&&!$(t.target).hasClass("ui-menu-item-wrapper")&&!$(t.target).hasClass("restrictionButton")&&!$(t.target).parent(".ui-datepicker").length&&!$(t.target).parent().hasClass("ui-datepicker-prev")&&!$(t.target).parent().hasClass("ui-datepicker-next")){var r=$(".employeeFilterPopover");r.get(0)!=t.target&&($.contains(r.get(0),t.target)||(n.filterPopover.visible&&(n.filterPopover.visible=!1),$("body").unbind("click",i),n.$apply()))}};n.filterPopover.visible&&$("body").bind("click",i)};n.selectErrorTab=function(){n.warningTabActive=!1;n.infoTabActive=!1;n.errorTabActive=!0};n.selectWarningTab=function(){n.errorTabActive=!1;n.infoTabActive=!1;n.warningTabActive=!0};n.selectInfoTab=function(){n.errorTabActive=!1;n.warningTabActive=!1;n.infoTabActive=!0};n.errorTabActive=!1;n.warningTabActive=!1;n.infoTabActive=!1;n.reasonCodeToolTip={visible:!1,viewId:-1,whType:-1,style:{top:10,left:10,"z-index":1e4},arrowStyle:{left:20},displayedReasonCodes:[],reasoncodes:{1:[],2:[],3:[],4:[],5:[],6:[]}};n.openReasonCodeToolTip=function(t,i,r){var e;if(n.employeeInfoPopover.visible=!1,t.stopPropagation(),n.reasonCodeToolTip.viewId==i&&n.reasonCodeToolTip.whType==r){ht();return}n.reasonCodeToolTip.viewId=i;n.reasonCodeToolTip.whType=r;var o=$("body").outerWidth(),u=$(".legend-tooltip-box").outerWidth(),f=t.clientX-25;if(u+f>o?(n.reasonCodeToolTip.style.left=f-u+50+"px",n.reasonCodeToolTip.arrowStyle.left=u-25+"px"):(n.reasonCodeToolTip.style.left=t.clientX-30+"px",n.reasonCodeToolTip.arrowStyle.left="30px"),n.reasonCodeToolTip.style.top=t.clientY-123+"px",e=n.reasonCodeToolTip.reasoncodes[r][i]?n.reasonCodeToolTip.reasoncodes[r][i]:[],n.reasonCodeToolTip.displayedReasonCodes=e.slice().reverse(),n.reasonCodeToolTip.visible=!0,n.reasonCodeToolTip.visible)$("body").on("click",ht)};ht=function(){n.reasonCodeToolTip.viewId=-1;n.reasonCodeToolTip.whType=-1;n.reasonCodeToolTip.visible=!1;
1$("body").off("click",ht);n.$apply()};n.otherEventsPopover={visible:!1,employee:[],employeeName:""};n.closeOtherEventsPopover=function(){n.otherEventsPopover.visible=!n.otherEventsPopover.visible};n.showHideOtherEvents=function(t,i){var r,c,u,e,f;n.reasonCodeToolTip.visible=!1;n.employeeInfoPopover.visible=!1;n.allOtherWHSEventsSelected=!1;n.noOtherWHSEventsSelected=!0;n.allOtherWHEventsSelected=!1;n.noOtherWHEventsSelected=!0;var s=n.otherEventsPopover.employee.StampsSpecCode?n.otherEventsPopover.employee.StampsSpecCode:[],h=n.otherEventsPopover.employee.WorkhoursSpecCode?n.otherEventsPopover.employee.WorkhoursSpecCode:[],o=s.concat(h);for(r=0;r<o.length;r++)o[r].selected=!1;i.stopPropagation();c=$(i.currentTarget||i.srcElement).offset();n.otherEventsPopover.employee=[];n.mapEmployees[t]&&(n.otherEventsPopover.employee=n.mapEmployees[t],n.otherEventsPopover.employee.NotificationLevel==n.notificationLevel.error&&n.selectErrorTab(),n.otherEventsPopover.employee.NotificationLevel==n.notificationLevel.warning&&n.selectWarningTab(),n.otherEventsPopover.employee.NotificationLevel==n.notificationLevel.info&&n.selectInfoTab(),u=n.otherEventsPopover.employee.LastName+" "+n.otherEventsPopover.employee.FirstName,n.otherEventsPopover.employeeName=u.length>17?u.substring(0,17)+"..":u);n.otherEventsPopover.visible=!n.otherEventsPopover.visible;e=$("#otherEventsPopover");f=null;f=function(t){e.get(0)!=t.target&&typeof $(".workingHourStampEditor").get(0)=="undefined"&&typeof $(".workHoursEditor").get(0)=="undefined"&&($.contains(e.get(0),t.target)||(n.otherEventsPopover.visible&&(n.otherEventsPopover.visible=!1),$("body").unbind("click",f),n.$apply()))};n.otherEventsPopover.visible&&$("body").bind("click",f)};var tt=!0,vt=!1,yt=!1,pt=!1,wt=!1;n.sortByDate=function(t){t==1&&n.otherEventsPopover.employee.ApprovableEvents.length?(tt=vt,n.otherEventsPopover.employee.ApprovableEvents.sort(ut),vt=!vt):t==2&&n.otherEventsPopover.employee.NotApprovableEvents.length?(tt=yt,n.otherEventsPopover.employee.NotApprovableEvents.sort(ut),yt=!yt):t==3&&n.otherEventsPopover.employee.WarningItems.length?(tt=pt,n.otherEventsPopover.employee.WarningItems.sort(ut),pt=!pt):t==4&&n.otherEventsPopover.employee.InfoItems.length&&(tt=wt,n.otherEventsPopover.employee.InfoItems.sort(ut),wt=!wt);ft=!1};var ft=!0,bt=!0,kt=!0,gt=!0,ni=!0;n.sortByType=function(t){t==1&&n.otherEventsPopover.employee.ApprovableEvents.length?(ft=bt,n.otherEventsPopover.employee.ApprovableEvents.sort(ct),bt=!bt):t==2&&n.otherEventsPopover.employee.NotApprovableEvents.length?(ft=kt,n.otherEventsPopover.employee.NotApprovableEvents.sort(ct),kt=!kt):t==3&&n.otherEventsPopover.employee.WarningItems.length?(ft=gt,n.otherEventsPopover.employee.WarningItems.sort(ct),gt=!gt):t==4&&n.otherEventsPopover.employee.InfoItems.length&&(ft=ni,n.otherEventsPopover.employee.InfoItems.sort(ct),ni=!ni);tt=!1};n.allOtherWHEventsSelected=!1;n.noOtherWHEventsSelected=!0;n.allOtherWHSEventsSelected=!1;n.noOtherWHSEventsSelected=!0;n.allOtherEventsSelected=!1;n.noOtherEventsSelected=!0;n.selectAllOtherEvents=function(){n.allOtherEventsSelected=!n.allOtherEventsSelected;var t=n.otherEventsPopover.employee.ApprovableEvents?n.otherEventsPopover.employee.ApprovableEvents:[];f(function(){for(var i=0;i<t.length;i++)t[i].Status!=rt&&(t[i].selected=n.allOtherEventsSelected,n.noOtherEventsSelected=!n.allOtherEventsSelected)})};n.selectOneOtherEvent=function(t){t.stopPropagation();f(function(){var t=[],i;for(n.otherEventsPopover.employee.ApprovableEvents&&n.otherEventsPopover.employee.ApprovableEvents.length>0?t=n.otherEventsPopover.employee.ApprovableEvents?n.otherEventsPopover.employee.ApprovableEvents:[]:n.otherEventsPopover.employee.HourLimitMinMax&&n.otherEventsPopover.employee.HourLimitMinMax.length>0&&(t=n.otherEventsPopover.employee.HourLimitMinMax?n.otherEventsPopover.employee.HourLimitMinMax:[]),n.allOtherEventsSelected=!0,n.noOtherEventsSelected=!0,i=0;i<t.length;i++)t[i].selected?n.noOtherEventsSelected=!1:n.allOtherEventsSelected=!1})};n.approveSelectedOtherEvents=function(t){var r=[],e,o,i,y;for(r=t?n.otherEventsPopover.employee.HourLimitMinMax?n.otherEventsPopover.employee.HourLimitMinMax:[]:n.otherEventsPopover.employee.ApprovableEvents?n.otherEventsPopover.employee.ApprovableEvents:[],e=!0,o=[],i=0;i<r.length;i++){if(r[i].selected){var u=new Date(n.workingDays[0].Date),f=new Date(n.workingDays[n.workingDays.length-1].Date),s=null,c=null,l=null,a=null,v=null,h=!1;if(r[i].StartDate&&(u=new Date(r[i].StartDate)),r[i].EndDate&&(f=ne
1w Date(r[i].EndDate)),r[i].Type==n.otherEventType.absences)a=r[i].EventIdC,r[i].AbsenceDate&&(u=new Date(r[i].AbsenceDate),f=new Date(r[i].AbsenceDate)),h=!0;else if(r[i].Type==n.otherEventType.standbys)v=r[i].EventIdC,h=!0;else if(r[i].Type==n.otherEventType.stampsSpecCode)c=r[i].EventIdC;else if(r[i].Type==n.otherEventType.workhoursSpecCode)l=r[i].EventIdC;else if(r[i].Type==n.otherEventType.hourLimit||r[i].Type==n.otherEventType.stampLimit)r[i].WorkHoursType==1?s=n.settingProperty.approveStamps:r[i].WorkHoursType==2&&(s=n.settingProperty.approveWorkHours),r[i].WorkingDayDate&&(u=new Date(r[i].WorkingDayDate),f=new Date(r[i].WorkingDayDate));else continue;u.setHours(0,0,0,0);f.setHours(0,0,0,0);y={IdC:n.otherEventsPopover.employee.IdC,ID2:n.otherEventsPopover.employee.ID2,LastName:n.otherEventsPopover.employee.LastName,FirstName:n.otherEventsPopover.employee.FirstName,StartDate:u,EndDate:f,ApproveTypeOfHours:s,RemoveApproval:0,PaymentGroupIdC:"",OrganisationIdC:"",WorkingHourStampIdC:c,WorkHourIdC:l,AbsenceIdC:a,StandbyIdC:v,ApproveWholePeriod:h?1:0};r[i].Status=rt;r[i].selected=!1;o.push(y)}r[i].Status!=rt&&(e=!1)}n.allOtherEventsSelected=!1;n.noOtherEventsSelected=!0;n.doApprovalAndShowResults(o,2e3);e&&(n.otherEventsPopover.visible=!1)};ot="";n.workHoursEditor=null;n.openWorkHoursEditor=function(t,i){ot=t;n.workHoursEditor==null&&(n.workHoursEditor=e.open({templateUrl:"MVC/modals/Approving/workHoursEditor.html",controller:"workHoursEditorController",backdrop:"static",windowClass:"workHoursEditor",resolve:{workHourIdC:function(){return t},employeeIdC:function(){return n.otherEventsPopover.employee.IdC},workingDayDate:function(){return new Date(i)},permissions:function(){return n.permissions.editWorkHour}}}),n.workHoursEditor.result.then(function(t){var i;if(t){var r=n.otherEventsPopover.employee.WorkhoursSpecCode?n.otherEventsPopover.employee.WorkhoursSpecCode:[],f=!0,u=-1;for(t.IdC||(t.IdC=ot,t.ReasonCodeSpecialCode=0),i=0;i<r.length;i++)t.IdC==r[i].EventIdC&&(t.ReasonCodeSpecialCode==0&&(r[i].Status=1,u=i),r[i].StartDate=t.StartDate,r[i].EndDate=t.EndDate,r[i].ReasonCodeName=t.ReasonCodeName,r[i].Duration=t.WorkHours),(r[i].Status==0||r[i].Status==2)&&(f=!1),r[i].selected=!1;u>-1&&r.splice(u,1);f&&(n.otherEventsPopover.visible=!1);n.allOtherWHEventsSelected=!1;n.noOtherWHEventsSelected=!0;n.allOtherWHSEventsSelected=!1;n.noOtherWHSEventsSelected=!0;n.refresh()}n.workHoursEditor=null}))};n.workingHourStampEditor=null;n.openWorkingHourStampEditor=function(t,i){ot=t;n.workingHourStampEditor==null&&(n.workingHourStampEditor=e.open({templateUrl:"MVC/modals/Approving/workingHourStampEditor.html",controller:"workingHourStampEditorController",backdrop:"static",windowClass:"workingHourStampEditor",resolve:{workingHourStampIdC:function(){return t},workingHourStampType:function(){return 0},employeeIdC:function(){return n.otherEventsPopover.employee.IdC},workingDayDate:function(){return new Date(i)},permissions:function(){return n.permissions.editStamp}}}),n.workingHourStampEditor.result.then(function(t){var i;if(t){var r=n.otherEventsPopover.employee.StampsSpecCode?n.otherEventsPopover.employee.StampsSpecCode:[],f=!0,u=-1;for(t.IdC||(t.IdC=ot,t.ReasonCodeSpecialCode=0),i=0;i<r.length;i++)t.IdC==r[i].EventIdC&&(t.ReasonCodeSpecialCode==0&&(r[i].Status=1,u=i),r[i].StartDate=t.StartDate,r[i].EndDate=t.EndDate,r[i].ReasonCodeName=t.ReasonCodeName),(r[i].Status==0||r[i].Status==2)&&(f=!1),r[i].selected=!1;u>-1&&r.splice(u,1);f&&(n.otherEventsPopover.visible=!1);n.allOtherWHEventsSelected=!1;n.noOtherWHEventsSelected=!0;n.allOtherWHSEventsSelected=!1;n.noOtherWHSEventsSelected=!0;n.refresh(1e3)}n.workingHourStampEditor=null}))};n.showLog=function(t,i,r){n.reasonCodeToolTip.visible=!1;r.stopPropagation();var u=e.open({templateUrl:"MVC/modals/Approving/workingDayLog.html",controller:"workingDayLogController",backdrop:"static",windowClass:"workingDayLogModal",resolve:{date:function(){return new Date(i.WorkingDayDate)},employee:function(){return t}}})};n.rcDataTypeNone=0;n.rcDataTypeHours=1;n.rcDataTypeDays=2;n.rcDataTypeUnits=3;n.rcDataTypeEuros=4;n.rcDataTypeStartAndEndTime=5;var ti=1,ii=2,ri=4,ui=64,fi=128;n.refresh=function(t){var i,r,u,s;n.pendingOperation=!0;n.allEmployeesSelected=!1;n.checkEmployeeSelected();var h=n.getFilterPopoverItems(),e=new Date,o=new Date;for(i=0;i<n.periods.length;i++)n.selectedPeriodStartTime==n.periods[i].startTime&&(e=new Date(n.periods[i].startTime),o=new Date(n.periods[i].endTime));for(n.workingDays=[],r=new Date(e);r<=o;)u=new Date(r),n.workingDays.push({Date:u,WeekDay:u.getDay(),Weekend:u.getDay()==0||u.getDay()==6,WeekdayHoliday:0}),r.setDate(r.getDate()+1);n.buttonRowTop=0;s=angular.extend({FirstIndex:n.pageIndex*n.pageSize,ItemCount:n.pageSize,OrderByField:n.orderByFieldIndex,SortOrder:n.sortOrder,StartDate:e,EndDate:o,SearchFilter:v.getSearchFilter(),ByUserRights:n.filterPopover.byUserRights,Items:h},v.getExtraArguments());w.getApprovableEmployeesAndHours(s).then(function(i){var e,o,r,u,s,h;if(i){for(n.totalCount=i.TotalRows,n.pageCount=Math.ceil(n.totalCount/n.pageSize),n.employees=i.DataList,e=0,o=0;o<n.employees.length;o++)for(r=n.employees[o],n.mapEmployees[r.IdC]=r,n.parseEmployeeData(r),u=0;u<r.ApprovableHours.length;u++)n.reasonCodeToolTip.reasoncodes[6][e]=r.ApprovableHours[u].TransactionReasonCodes.reverse(),n.reasonCodeToolTip.reasoncodes[5][e]=r.ApprovableHours[u].EuroReasonCodes.reverse(),n.reasonCodeToolTip.reasoncodes[4][e]=r.ApprovableHours[u].UnitReasonCodes.reverse(),n.reasonCodeToolTip.reasoncodes[3][e]=r.ApprovableHours[u].WorkHourReasonCodes.reverse(),n.reasonCodeToolTip.reasoncodes[2][e]=r.ApprovableHours[u].StampReasonCodes.reverse(),n.reasonCodeToolTip.reasoncodes[1][e]=r.ApprovableHours[u].RealizedHoursReasonCodes.reverse(),r.ApprovableHours[u].ViewID=e++;n.pagingInfo={FirstIndex:n.pageIndex*n.pageSize+1,LastIndex:n.pageSize*(n.pageIndex+1),TotalCount:n.totalCount};n.pagingInfo.LastIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.LastIndex=n.pagingInfo.TotalCount);n.pagingInfo.FirstIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.FirstIndex=n.pagingInfo.TotalCount);n.employees&&n.employees.length===1&&v.isRestrictionsDisabled()&&v.selectEmployee(n.employees[0]);n.reCalculateRowHeigth();n.buttonRowTop=Math.min(n.employees.length*n.dataRowHeight,600)+120}s=n.searchFilter;h=v.getSearchFilter();s||(s="");h||(h="");s!=h;f(function(){n.verticalScrollbarWidth=n.hlScroll.offsetWidth-n.hlScroll.clientWidth},1);f(function(){n.horizontalScrollbarWidth=n.hlScroll.offsetHeight-n.hlScroll.clientHeight},1);f(function(){n.pendingOperation=!1},t?t:0)})};n.parseEmployeeData=function(t){var i,y,s,e,at,vt,u,pt,wt,h,f,p,c,v,w,r,st,b,k,d,ft,ot,ht,ct,l,lt;for(t.PlannedHours=0,t.RealizedHours=0,t.WorkHours=0,t.StampHours=0,t.Units=0,t.Euros=0,t.PlannedRealizedDiff=0,t.PlannedStampsDiff=0,t.PlannedWorkHoursDiff=0,t.StampsWorkHoursDiff=0,t.StampApprovalLevel=0,t.WorkHourApprovalLevel=0,t.RealizedHoursApprovalLevel=0,t.StampApprovalLevelText="",t.WorkHourApprovalLevelText="",t.RealizedHoursApprovalLevelText="",t.InvalidEmploymentDates=[],t.ApprovingHoursLimits=[],t.showApprovalButton=!1,t.ApprovableHours.length&&(t.WorkHourApprovalLevel=n.approvalLevel.processingExported,t.StampApprovalLevel=n.approvalLevel.processingExported,t.RealizedHoursApprovalLevel=n.approvalLevel.processingExported),t.PeriodIsNotCompletelyEmployeeLocked=!1,t.Per
1iodAcceptorLock=0,t.PeriodStampAcceptorLock=0,i=0;i<t.ApprovableHours.length;i++){for(t.PlannedHours+=t.ApprovableHours[i].PlannedHours,t.ApprovableHours[i].RealizedHours=t.ApprovableHours[i].WorkHoursType==1?t.ApprovableHours[i].StampHours:t.ApprovableHours[i].WorkHours,t.RealizedHours+=t.ApprovableHours[i].RealizedHours,t.WorkHours+=t.ApprovableHours[i].WorkHours,t.StampHours+=t.ApprovableHours[i].StampHours,t.Units+=t.ApprovableHours[i].Units,t.Euros+=t.ApprovableHours[i].Euros,t.ApprovableHours[i].PlannedRealizedDiff=t.ApprovableHours[i].RealizedHours-t.ApprovableHours[i].PlannedHours,t.ApprovableHours[i].PlannedStampsDiff=t.ApprovableHours[i].StampHours-t.ApprovableHours[i].PlannedHours,t.ApprovableHours[i].PlannedWorkHoursDiff=t.ApprovableHours[i].WorkHours-t.ApprovableHours[i].PlannedHours,t.ApprovableHours[i].StampsWorkHoursDiff=t.ApprovableHours[i].WorkHours-t.ApprovableHours[i].StampHours,y=new Date(t.ApprovableHours[i].WorkingDayDate).getDay(),t.ApprovableHours[i].WeekDay=y,t.ApprovableHours[i].Weekend=!t.ApprovableHours[i].WeekDayHoliday&&(y==0||y==6),n.workingDays[i]&&t.ApprovableHours[i].WeekDayHoliday&&(n.workingDays[i].WeekDayHoliday=t.ApprovableHours[i].WeekDayHoliday,n.workingDays[i].Weekend=!1),t.ApprovableHours[i].realizedHoursApprovalLevel=0,t.ApprovableHours[i].workHoursApprovalLevel=0,t.ApprovableHours[i].stampHoursApprovalLevel=0,t.ApprovableHours[i].realizedHoursApprovalLevelTooltip="",t.ApprovableHours[i].workHoursApprovalLevelTooltip="",t.ApprovableHours[i].stampHoursApprovalLevelTooltip="",s=t.ApprovableHours[i].WorkHourReasonCodes?t.ApprovableHours[i].WorkHourReasonCodes:[],t.ApprovableHours[i].WorkHourReasonCodes=[],t.ApprovableHours[i].EuroReasonCodes=[],t.ApprovableHours[i].UnitReasonCodes=[],e=0;e<s.length;e++)s[e].ReasonCodeDataType<=n.rcDataTypeHours||s[e].ReasonCodeDataType==n.rcDataTypeStartAndEndTime?t.ApprovableHours[i].WorkHourReasonCodes.push(s[e]):s[e].ReasonCodeDataType==n.rcDataTypeEuros?t.ApprovableHours[i].EuroReasonCodes.push(s[e]):s[e].ReasonCodeDataType==n.rcDataTypeUnits&&t.ApprovableHours[i].UnitReasonCodes.push(s[e]);if(t.ApprovableHours[i].StampReasonCodes=t.ApprovableHours[i].StampReasonCodes?t.ApprovableHours[i].StampReasonCodes:[],t.ApprovableHours[i].RealizedHoursReasonCodes=t.ApprovableHours[i].WorkHoursType==1?t.ApprovableHours[i].StampReasonCodes:t.ApprovableHours[i].WorkHourReasonCodes,t.ApprovableHours[i].TransactionReasonCodes=t.ApprovableHours[i].TransactionReasonCodes?t.ApprovableHours[i].TransactionReasonCodes:[],t.ApprovableHours[i].AcceptorLock?i==0?t.PeriodAcceptorLock=1:t.PeriodAcceptorLock==0&&(t.PeriodAcceptorLock=2):i==0?t.PeriodAcceptorLock=0:t.PeriodAcceptorLock==1&&(t.PeriodAcceptorLock=2),t.ApprovableHours[i].StampAcceptorLock?i==0?t.PeriodStampAcceptorLock=1:t.PeriodStampAcceptorLock==0&&(t.PeriodStampAcceptorLock=2):i==0?t.PeriodStampAcceptorLock=0:t.PeriodStampAcceptorLock==1&&(t.PeriodStampAcceptorLock=2),t.ApprovableHours[i].EmploymentDataValid&&(n.organisationIdC==t.ApprovableHours[i].OrganisationIdC||n.organisationIdC==0)&&(n.paymentGroupIdC==t.ApprovableHours[i].PaymentGroupIdC||n.paymentGroupIdC==0)&&(t.ApprovableHours[i].workHoursApprovalLevel=t.ApprovableHours[i].ProcessingLocks&ri?n.approvalLevel.processingExported:t.ApprovableHours[i].ProcessingLocks&ii?n.approvalLevel.processingAccepted:t.ApprovableHours[i].ProcessingLocks&ti?n.approvalLevel.processingStarted:t.ApprovableHours[i].PeriodLock?n.approvalLevel.periodLock:t.ApprovableHours[i].AcceptorLock?n.approvalLevel.acceptorLock:t.ApprovableHours[i].EmployeeLock?n.approvalLevel.employeeLock:n.approvalLevel.notApproved,t.ApprovableHours[i].stampHoursApprovalLevel=t.ApprovableHours[i].StampProcessingLocks&ri?n.approvalLevel.processingExported:t.ApprovableHours[i].StampProcessingLocks&ii?n.approvalLevel.processingAccepted:t.ApprovableHours[i].StampProcessingLocks&ti?n.approvalLevel.processingStarted:t.ApprovableHours[i].StampPeriodLock?n.approvalLevel.periodLock:t.ApprovableHours[i].StampAcceptorLock?n.approvalLevel.acceptorLock:t.ApprovableHours[i].StampEmployeeLock?n.approvalLevel.employeeLock:n.approvalLevel.notApproved,t.ApprovableHours[i].realizedHoursApprovalLevel=t.ApprovableHours[i].WorkHoursType==1?t.ApprovableHours[i].stampHoursApprovalLevel:t.ApprovableHours[i].workHoursApprovalLevel,t.ApprovableHours[i].realizedHoursApprovalLevelTooltip=it[t.ApprovableHours[i].realizedHoursApprovalLevel],t.ApprovableHours[i].workHoursApprovalLevelTooltip=it[t.ApprovableHours[i].workHoursApprovalLevel],t.ApprovableHours[i].stampHoursApprovalLevelTooltip=it[t.ApprovableHours[i].stampHoursApprovalLevel],at=t.ApprovableHours[i].StampProcessingLocks==ui||t.ApprovableHours[i].StampProcessingLocks==fi,at&&(t.ApprovableHours[i].stampHoursApprovalLevelTooltip=it[n.approvalLevel.processingCorrected]+" ("+t.ApprovableHours[i].stampHoursApprovalLevelTooltip+")",t.ApprovableHours[i].WorkHoursType==1&&(t.ApprovableHours[i].realizedHoursApprovalLevelTooltip=t.ApprovableHours[i].stampHoursApprovalLevelTooltip)),vt=t.ApprovableHours[i].ProcessingLocks==ui||t.ApprovableHours[i].ProcessingLocks==fi,vt&&(t.ApprovableHours[i].workHoursApprovalLevelTooltip=it[n.approvalLevel.processingCorrected]+" ("+t.ApprovableHours[i].workHoursApprovalLevelTooltip+")",t.ApprovableHours[i].WorkHoursType!=1&&(t.ApprovableHours[i].realizedHoursApprovalLevelTooltip=t.ApprovableHours[i].workHoursApprovalLevelTooltip))),t.ApprovableHours[i].EmploymentDataValid||t.InvalidEmploymentDates.push(new Date(t.ApprovableHours[i].WorkingDayDate)),t.OtherEvents||(t.OtherEvents=[]),!n.permissions.apprNoEmplLock){var bt=n.approvedByDefault.stamps||n.approvedByDefault.realizedHours&&t.ApprovableHours[i].WorkHoursType==1,kt=n.approvedByDefault.workHours||n.approvedByDefault.realizedHours&&t.ApprovableHours[i].WorkHoursType!=1,yt=(!t.ApprovableHours[i].EmployeeLock&&kt?1:0)+(!t.ApprovableHours[i].StampEmployeeLock&&bt?2:0);yt&&(f={EventIdC:t.ApprovableHours[i].WorkingDayIdC,WorkingDayDate:t.ApprovableHours[i].WorkingDayDate,Status:0,Type:n.otherEventType.employeeUnlockedDays,UnlockedTypes:yt,SortDate:t.ApprovableHours[i].WorkingDayDate}
1,t.OtherEvents.push(f),t.PeriodIsNotCompletelyEmployeeLocked=!0)}if(t.ApprovableHours[i].IsSubordinate&&t.ApprovableHours[i].realizedHoursApprovalLevel<n.approvalLevel.acceptorLock&&(t.ApprovableHours[i].HourLimitMax!=null&&t.ApprovableHours[i].RealizedHours-t.ApprovableHours[i].PlannedHours>t.ApprovableHours[i].HourLimitMax&&(t.ApprovableHours[i].HourLimitMaxOver=t.ApprovableHours[i].RealizedHours-t.ApprovableHours[i].PlannedHours,f={EventIdC:t.ApprovableHours[i].WorkingDayIdC,WorkingDayDate:t.ApprovableHours[i].WorkingDayDate,Status:0,Type:n.otherEventType.hourLimit,WorkHoursType:t.ApprovableHours[i].WorkHoursType,HourLimitMinMaxIdC:t.ApprovableHours[i].HourLimitMinMaxIdC,HourLimitDayMaxIdC:t.ApprovableHours[i].HourLimitDayMaxIdC,HourLimitMaxOver:t.ApprovableHours[i].HourLimitMaxOver,SortDate:t.ApprovableHours[i].WorkingDayDate},t.ApprovableHours[i].WorkingDayDate<=new Date&&t.OtherEvents.push(f)),t.ApprovableHours[i].HourLimitMin!=null&&t.ApprovableHours[i].PlannedHours-t.ApprovableHours[i].RealizedHours>t.ApprovableHours[i].HourLimitMin&&(t.ApprovableHours[i].HourLimitMinUnder=t.ApprovableHours[i].PlannedHours-t.ApprovableHours[i].RealizedHours,f={EventIdC:t.ApprovableHours[i].WorkingDayIdC,WorkingDayDate:t.ApprovableHours[i].WorkingDayDate,Status:0,Type:n.otherEventType.hourLimit,WorkHoursType:t.ApprovableHours[i].WorkHoursType,HourLimitMinMaxIdC:t.ApprovableHours[i].HourLimitMinMaxIdC,HourLimitDayMaxIdC:t.ApprovableHours[i].HourLimitDayMaxIdC,HourLimitMinUnder:t.ApprovableHours[i].HourLimitMinUnder,SortDate:t.ApprovableHours[i].WorkingDayDate},t.ApprovableHours[i].WorkingDayDate<=new Date&&t.OtherEvents.push(f)),t.ApprovableHours[i].HourLimitDayMax!=null&&t.ApprovableHours[i].RealizedHours>t.ApprovableHours[i].HourLimitDayMax&&(t.ApprovableHours[i].HourLimitDayMaxOver=t.ApprovableHours[i].RealizedHours-t.ApprovableHours[i].HourLimitDayMax,f={EventIdC:t.ApprovableHours[i].WorkingDayIdC,WorkingDayDate:t.ApprovableHours[i].WorkingDayDate,Status:0,Type:n.otherEventType.hourLimit,WorkHoursType:t.ApprovableHours[i].WorkHoursType,HourLimitMinMaxIdC:t.ApprovableHours[i].HourLimitMinMaxIdC,HourLimitDayMaxIdC:t.ApprovableHours[i].HourLimitDayMaxIdC,HourLimitDayMaxOver:t.ApprovableHours[i].HourLimitDayMaxOver,SortDate:t.ApprovableHours[i].WorkingDayDate},t.OtherEvents.push(f)),t.ApprovableHours[i].StampLimitMin!=null||t.ApprovableHours[i].StampLimitMax!=null))for(r=0;r<t.OtherEvents.length;r++)u=t.OtherEvents[r],u.Type==n.otherEventType.workingHourStamps&&(u.StartDate&&u.StartDate.getYear()==t.ApprovableHours[i].WorkingDayDate.getYear()&&u.StartDate.getMonth()==t.ApprovableHours[i].WorkingDayDate.getMonth()&&u.StartDate.getDate()==t.ApprovableHours[i].WorkingDayDate.getDate()&&t.ApprovableHours[i].StampLimitMin!=null&&(pt=u.StartDate.getHours()*60+u.StartDate.getMinutes(),h=pt-t.ApprovableHours[i].StampLimitMin,h>0&&(t.ApprovableHours[i].StampLimitMinOver=h,f={EventIdC:u.EventIdC,WorkingDayDate:t.ApprovableHours[i].WorkingDayDate,Status:u.Status,Type:n.otherEventType.stampLimit,StampTime:u.StartDate,StampLimitMinOver:t.ApprovableHours[i].StampLimitMinOver,StampLimitMinMaxIdC:t.ApprovableHours[i].StampLimitMinMaxIdC,SortDate:t.ApprovableHours[i].WorkingDayDate,WorkHoursType:t.ApprovableHours[i].WorkHoursType},t.OtherEvents.push(f))),u.EndDate&&u.EndDate.getYear()==t.ApprovableHours[i].WorkingDayDate.getYear()&&u.EndDate.getMonth()==t.ApprovableHours[i].WorkingDayDate.getMonth()&&u.EndDate.getDate()==t.ApprovableHours[i].WorkingDayDate.getDate()&&u.EndDate&&u.EndDate.getYear()==t.ApprovableHours[i].WorkingDayDate.getYear()&&u.EndDate.getMonth()==t.ApprovableHours[i].WorkingDayDate.getMonth()&&u.EndDate.getDate()==t.ApprovableHours[i].WorkingDayDate.getDate()&&t.ApprovableHours[i].StampLimitMax!=null&&(wt=u.EndDate.getHours()*60+u.EndDate.getMinutes(),h=t.ApprovableHours[i].StampLimitMax-wt,h>0&&(t.ApprovableHours[i].StampLimitMaxUnder=h,f={EventIdC:u.EventIdC,WorkingDayDate:t.ApprovableHours[i].WorkingDayDate,Status:u.Status,Type:n.otherEventType.stampLimit,StampTime:u.EndDate,StampLimitMaxUnder:t.ApprovableHours[i].StampLimitMaxUnder,StampLimitMinMaxIdC:t.ApprovableHours[i].StampLimitMinMaxIdC,SortDate:t.ApprovableHours[i].WorkingDayDate,WorkHoursType:t.ApprovableHours[i].WorkHoursType},t.OtherEvents.push(f))))}if(t.PlannedRealizedDiff=t.RealizedHours-t.PlannedHours,t.PlannedStampsDiff=t.StampHours-t.PlannedHours,t.PlannedWorkHoursDiff=t.WorkHours-t.PlannedHours,t.StampsWorkHoursDiff=t.WorkHours-t.StampHours,t.OtherEvents||(t.OtherEvents=[]),t.StampsSpecCode=[],t.WorkhoursSpecCode=[],t.InvalidEmploymentPeriods=[],t.ApprovableEvents=[],t.NotApprovableEvents=[],t.WarningItems=[],t.InfoItems=[],t.HourLimitMinMax=[],t.StampLimitMinMax=[],t.NotificationLevel=n.notificationLevel.none,t.NotificationText="",t.notificationLevelText=[],t.notificationLevelText[n.notificationLevel.none]=[],t.notificationLevelText[n.notificationLevel.info]=[],t.notificationLevelText[n.notificationLevel.warning]=[],t.notificationLevelText[n.notificationLevel.error]=[],t.InvalidEmploymentDates.length)for(n.eventNotificationLevel.invali
1dEmployment=n.notificationLevel.info,t.NotificationLevel=n.notificationLevel.info,t.notificationLevelText[n.eventNotificationLevel.invalidEmployment][n.otherEventType.invalidEmployment]=!0,t.InvalidEmploymentPeriods=[],r=0;r<t.InvalidEmploymentDates.length;r++){for(p=new Date(t.InvalidEmploymentDates[r]),p.setHours(0,0,0,0),c={},c.StartDate=new Date(p),c.EndDate=new Date(p),v=r+1;v<t.InvalidEmploymentDates.length;v++)if(w=new Date(t.InvalidEmploymentDates[v]),w.setHours(0,0,0,0),w.getTime()-c.EndDate.getTime()==864e5)c.EndDate=new Date(w),r=v;else break;t.InvalidEmploymentPeriods.push(c)}if(t.OtherEvents.length){for(r=0;r<t.OtherEvents.length;r++)t.OtherEvents[r].TypeTextAbbr=nt[t.OtherEvents[r].Type]?nt[t.OtherEvents[r].Type]:t.OtherEvents[r].Type,(t.OtherEvents[r].Type==n.otherEventType.hourLimit||t.OtherEvents[r].Type==n.otherEventType.stampLimit)&&t.OtherEvents[r].Status!=rt&&(t.OtherEvents[r].selected=!1,t.OtherEvents[r].StartDate=new Date(t.OtherEvents[r].WorkingDayDate),t.OtherEvents[r].EmptyAbsenceDate=!0,t.OtherEvents[r].TypeTextAbbr="",t.OtherEvents[r].TypeText="",t.OtherEvents[r].DescriptionText="",st=!1,(t.OtherEvents[r].HourLimitMaxOver||t.OtherEvents[r].HourLimitMinUnder)&&(t.NotificationLevel=Math.max(t.NotificationLevel,n.eventNotificationLevel.hourLimitMinMax),b="",k="",n.approvingHoursLimitsMap[t.OtherEvents[r].HourLimitMinMaxIdC]&&(b=n.approvingHoursLimitsMap[t.OtherEvents[r].HourLimitMinMaxIdC].HourLimitMinComment?n.approvingHoursLimitsMap[t.OtherEvents[r].HourLimitMinMaxIdC].HourLimitMinComment:"",k=n.approvingHoursLimitsMap[t.OtherEvents[r].HourLimitMinMaxIdC].HourLimitMaxComment?n.approvingHoursLimitsMap[t.OtherEvents[r].HourLimitMinMaxIdC].HourLimitMaxComment:""),d="",n.approvingHoursLimitsMap[t.OtherEvents[r].HourLimitDayMaxIdC]&&(d=n.approvingHoursLimitsMap[t.OtherEvents[r].HourLimitDayMaxIdC].HourLimitDayMaxComment?n.approvingHoursLimitsMap[t.OtherEvents[r].HourLimitDayMaxIdC].HourLimitDayMaxComment:""),t.OtherEvents[r].HourLimitMinUnder&&(t.notificationLevelText[n.eventNotificationLevel.hourLimitMinMax][n.otherEventType.hourLimitMinUnder]=!0,t.OtherEvents[r].TypeTextAbbr=nt[n.otherEventType.hourLimitMinUnder]?nt[n.otherEventType.hourLimitMinUnder]:"",t.OtherEvents[r].TypeText=g[n.otherEventType.hourLimitMinUnder]?g[n.otherEventType.hourLimitMinUnder]:"",t.OtherEvents[r].DescriptionText=b?b:t.OtherEvents[r].TypeText,st=!0),t.OtherEvents[r].HourLimitMaxOver&&(t.notificationLevelText[n.eventNotificationLevel.hourLimitMinMax][n.otherEventType.hourLimitMaxOver]=!0,t.OtherEvents[r].TypeTextAbbr=nt[n.otherEventType.hourLimitMaxOver]?nt[n.otherEventType.hourLimitMaxOver]:"",t.OtherEvents[r].TypeText=g[n.otherEventType.hourLimitMaxOver]?g[n.otherEventType.hourLimitMaxOver]:"",t.OtherEvents[r].DescriptionText=k?k:t.OtherEvents[r].TypeText,st=!0)),t.OtherEvents[r].HourLimitDayMaxOver&&(t.NotificationLevel=Math.max(t.NotificationLevel,n.eventNotificationLevel.hourLimitDayMax),t.notificationLevelText[n.eventNotificationLevel.hourLimitDayMax][n.otherEventType.hourLimitDayMax]=!0,t.OtherEvents[r].TypeTextAbbr=nt[n.otherEventType.hourLimitDayMax]?nt[n.otherEventType.hourLimitDayMax]:"",t.OtherEvents[r].TypeText=g[n.otherEventType.hourLimitDayMax]?g[n.otherEventType.hourLimitDayMax]:"",t.OtherEvents[r].DescriptionText=d?d:t.OtherEvents[r].TypeText),(t.OtherEvents[r].StampLimitMaxUnder||t.OtherEvents[r].StampLimitMinOver)&&t.OtherEvents[r].Status!=rt&&t.OtherEvents[r].Status!=et&&(t.NotificationLevel=Math.max(t.NotificationLevel,n.eventNotificationLevel.stampLimitMinMax),ft="",ot="",n.approvingHoursLimitsMap[t.OtherEvents[r].StampLimitMinMaxIdC]&&(ft=n.approvingHoursLimitsMap[t.OtherEvents[r].StampLimitMinMaxIdC].HourLimitMinComment?n.approvingHoursLimitsMap[t.OtherEvents[r].StampLimitMinMaxIdC].HourLimitMinComment:"",ot=n.approvingHoursLimitsMap[t.OtherEvents[r].StampLimitMinMaxIdC].HourLimitMaxComment?n.approvingHoursLimitsMap[t.OtherEvents[r].StampLimitMinMaxIdC].HourLimitMaxComment:""),t.OtherEvents[r].StampLimitMinOver&&(t.notificationLevelText[n.eventNotificationLevel.stampLimitMinMax][n.otherEventType.stampLimitMinOver]=!0,t.OtherEvents[r].TypeTextAbbr=nt[n.otherEventType.stampLimitMinOver]?nt[n.otherEventType.stampLimitMinOver]:"",t.OtherEvents[r].DescriptionText=ft?ft:g[n.otherEventType.stampLimitMinOver]?g[n.otherEventType.stampLimitMinOver]:"",t.OtherEvents[r].TypeText=g[n.otherEventType.stampLimitMinOver]?g[n.otherEventType.stampLimitMinOver]:""),t.OtherEvents[r].StampLimitMaxUnder&&(t.notificationLevelText[n.eventNotificationLevel.stampLimitMinMax][n.otherEventType.stampLimitMaxUnder]=!0,t.OtherEvents[r].TypeTextAbbr=nt[n.otherEventType.stampLimitMaxUnder]?nt[n.otherEventType.stampLimitMaxUnder]:"",t.OtherEvents[r].DescriptionText=ot?ot:g[n.otherEventType.stampLimitMaxUnder]?g[n.otherEventType.stampLimitMaxUnder]:"",t.OtherEvents[r].TypeText=g[n.otherEventType.stampLimitMaxUnder]?g[n.otherEventType.stampLimitMaxUnder]:"")),(t.OtherEvents[r].HourLimitDayMaxOver&&n.eventNotificationLevel.hourLimitDayMax==n.notificationLevel.error||(t.OtherEvents[r].HourLimitMaxOver||t.OtherEvents[r].HourLimitMinUnder)&&n.eventNotificationLevel.hourLimitMinMax==n.notificationLevel.error||(t.OtherEvents[r].StampLimitMaxUnder||t.OtherEvents[r].StampLimitMinOver)&&n.eventNotificationLevel.stampLimitMinMax==n.notificationLevel.error)&&(t.ApprovableEvents.push(t.OtherEvents[r]),t.showApprovalButton=!0),(t.OtherEvents[r].HourLimitDayMaxOver&&n.eventNotificationLevel.hourLimitDayMax==n.notificationLevel.warning||(t.OtherEvents[r].HourLimitMaxOver||t.OtherEvents[r].HourLimitMinUnder)&&n.eventNotificationLevel.hourLimitMinMax==n.notificationLevel.warning||(t.OtherEvents[r].StampLimitMaxUnder||t.OtherEvents[r].StampLimitMinOver)&&n.eventNotificationLevel.stampLimitMinMax==n.notificationLevel.warning)&&t.WarningItems.push(t.OtherEvents[r]),(t.OtherEvents[r].HourLimitDayMaxOver&&n.eventNotificationLevel.hourLimitDayMax==n.notificationLevel.info||(t.OtherEvents[r].HourLimitMaxOver||t.OtherEvents[r].HourLimitMinUnder)&&n.eventNotificationLevel.hourLimitMinMax==n.notificationLevel.info||(t.OtherEvents[r].StampLimitMaxUnder||t.OtherEvents[r].StampLimitMinOver)&&n.eventNotificationLevel.stampLimitMinMax==n.notificationLevel.info)&&t.InfoItems.push(t.OtherEvents[r])),t.OtherEvents[r].Type==n.otherEventType.employeeUnlockedDays&&(t.NotificationLevel=Math.max(t.NotificationLevel,n.eventNotificationLevel.employeeUnlockedDays),t.notificationLevelText[n.eventNotificationLevel.employeeUnlockedDays][n.otherEventType.employeeUnlockedDays]=!0,ht=o.getText("APPROVING_HOURS.WORK_HOURS_ABBR"),ct=o.getText("APPROVING_HOURS.STAMPS_ABBR"),t
1ypes=t.OtherEvents[r].UnlockedTypes==1?" ("+ht+")":t.OtherEvents[r].UnlockedTypes==2?" ("+ct+")":" ("+ct+","+ht+")",t.OtherEvents[r].TypeTextAbbr=(nt[n.otherEventType.employeeUnlockedDays]?nt[n.otherEventType.employeeUnlockedDays]:"")+types,t.OtherEvents[r].DescriptionText=(g[n.otherEventType.employeeUnlockedDays]?g[n.otherEventType.employeeUnlockedDays]:"")+types,t.OtherEvents[r].TypeText=(g[n.otherEventType.employeeUnlockedDays]?g[n.otherEventType.employeeUnlockedDays]:"")+types,n.eventNotificationLevel.employeeUnlockedDays==n.notificationLevel.error?t.NotApprovableEvents.push(t.OtherEvents[r]):n.eventNotificationLevel.employeeUnlockedDays==n.notificationLevel.warning?t.WarningItems.push(t.OtherEvents[r]):n.eventNotificationLevel.employeeUnlockedDays==n.notificationLevel.info&&t.InfoItems.push(t.OtherEvents[r])),t.OtherEvents[r].Type==n.otherEventType.stampsSpecCode&&t.OtherEvents[r].Status!=rt&&t.OtherEvents[r].Status!=et&&(t.OtherEvents[r].selected=!1,t.StampsSpecCode.push(t.OtherEvents[r]),t.NotificationLevel=Math.max(t.NotificationLevel,n.eventNotificationLevel.stampsSpecCode),t.notificationLevelText[n.eventNotificationLevel.stampsSpecCode][n.otherEventType.stampsSpecCode]=!0,n.eventNotificationLevel.stampsSpecCode==n.notificationLevel.error?(t.ApprovableEvents.push(t.OtherEvents[r]),t.showApprovalButton=!0):n.eventNotificationLevel.stampsSpecCode==n.notificationLevel.warning?t.WarningItems.push(t.OtherEvents[r]):n.eventNotificationLevel.stampsSpecCode==n.notificationLevel.info&&t.InfoItems.push(t.OtherEvents[r])),t.OtherEvents[r].Type==n.otherEventType.workhoursSpecCode&&t.OtherEvents[r].Status!=rt&&t.OtherEvents[r].Status!=et&&(t.OtherEvents[r].selected=!1,t.WorkhoursSpecCode.push(t.OtherEvents[r]),t.NotificationLevel=Math.max(t.NotificationLevel,n.eventNotificationLevel.workhoursSpecCode),t.notificationLevelText[n.eventNotificationLevel.workhoursSpecCode][n.otherEventType.workhoursSpecCode]=!0,n.eventNotificationLevel.workhoursSpecCode==n.notificationLevel.error?(t.ApprovableEvents.push(t.OtherEvents[r]),t.showApprovalButton=!0):n.eventNotificationLevel.workhoursSpecCode==n.notificationLevel.warning?t.WarningItems.push(t.OtherEvents[r]):n.eventNotificationLevel.workhoursSpecCode==n.notificationLevel.info&&t.InfoItems.push(t.OtherEvents[r])),t.OtherEvents[r].Type==n.otherEventType.absences&&(t.NotificationLevel=Math.max(t.NotificationLevel,n.eventNotificationLevel.absences),t.notificationLevelText[n.eventNotificationLevel.absences][n.otherEventType.absences]=!0,l=a.getKey("TransactionStatusEnum",t.OtherEvents[r].Status),t.OtherEvents[r].StatusText=o.getText("ENUMERATIONS.WORK_HOUR_STATUS_"+l.toUpperCase()),t.OtherEvents[r].Status!=rt&&t.OtherEvents[r].Status!=et?(t.NotificationLevel=Math.max(t.NotificationLevel,n.eventNotificationLevel.absencesUnapproved),t.notificationLevelText[n.eventNotificationLevel.absencesUnapproved][n.otherEventType.absencesUnapproved]=!0,n.eventNotificationLevel.absencesUnapproved==n.notificationLevel.error?(t.ApprovableEvents.push(t.OtherEvents[r]),t.showApprovalButton=!0):n.eventNotificationLevel.absencesUnapproved==n.notificationLevel.warning?t.WarningItems.push(t.OtherEvents[r]):n.eventNotificationLevel.absencesUnapproved==n.notificationLevel.info&&t.InfoItems.push(t.OtherEvents[r])):n.eventNotificationLevel.absences==n.notificationLevel.error?t.NotApprovableEvents.push(t.OtherEvents[r]):n.eventNotificationLevel.absences==n.notificationLevel.warning?t.WarningItems.push(t.OtherEvents[r]):n.eventNotificationLevel.absences==n.notificationLevel.info&&t.InfoItems.push(t.OtherEvents[r])),t.OtherEvents[r].Type==n.otherEventType.standbys&&(t.NotificationLevel=Math.max(t.NotificationLevel,n.eventNotificationLevel.standbys),t.notificationLevelText[n.eventNotificationLevel.standbys][n.otherEventType.standbys]=!0,l=a.getKey("TransactionStatusEnum",t.OtherEvents[r].Status),t.OtherEvents[r].StatusText=o.getText("ENUMERATIONS.WORK_HOUR_STATUS_"+l.toUpperCase()),t.OtherEvents[r].TypeTextAbbr=nt[n.otherEventType.standbys]?nt[n.otherEventType.standbys]:"",t.OtherEvents[r].DescriptionText=t.OtherEvents[r].Description?t.OtherEvents[r].Description:g[n.otherEventType.standbys]?g[n.otherEventType.standbys]:"",t.OtherEvents[r].TypeText=g[n.otherEventType.standbys]?g[n.otherEventType.standbys]:"",t.OtherEvents[r].Status!=rt&&t.OtherEvents[r].Status!=et?(t.NotificationLevel=Math.max(t.NotificationLevel,n.eventNotificationLevel.standbysUnapproved),t.notificationLevelText[n.eventNotificationLevel.standbysUnapproved][n.otherEventType.standbysUnapproved]=!0,n.eventNotificationLevel.standbysUnapproved==n.notificationLevel.error?(t.ApprovableEvents.push(t.OtherEvents[r]),t.showApprovalButton=!0):n.eventNotificationLevel.standbysUnapproved==n.notificationLevel.warning?t.WarningItems.push(t.OtherEvents[r]):n.eventNotificationLevel.standbysUnapproved==n.notificationLevel.info&&t.InfoItems.push(t.OtherEvents[r])):n.eventNotificationLevel.standbys==n.notificationLevel.error?t.NotApprovableEvents.push(t.OtherEvents[r]):n.eventNotificationLevel.standbys==n.notificationLevel.warning?t.WarningItems.push(t.OtherEvents[r]):n.eventNotificationLevel.standbys==n.notificationLevel.info&&t.InfoItems.push(t.OtherEvents[r])),t.OtherEvents[r].Type==n.otherEventType.stampsOvertime&&(t.NotificationLevel=Math.max(t.NotificationLevel,n.eventNotificationLevel.stampsOvertime),t.notificationLevelText[n.eventNotificationLevel.stampsOvertime][n.otherEventType.stampsOvertime]=!0,t.OtherEvents[r].TypeTextAbbr=nt[n.otherEventType.stampsOvertime]?nt[n.otherEventType.stampsOvertime]:"",t.OtherEvents[r].DescriptionText=t.OtherEvents[r].Description?t.OtherEvents[r].Description:g[n.otherEventType.stampsOvertime]?g[n.otherEventType.stampsOvertime]:"",t.OtherEvents[r].TypeText=g[n.otherEventType.stampsOvertime]?g[n.otherEventType.stampsOvertime]:"",n.eventNotificationLevel.stampsOvertime==n.notificationLevel.error?t.NotApprovableEvents.push(t.OtherEvents[r]):n.eventNotificationLevel.stampsOvertime==n.notificationLevel.warning?t.WarningItems.push(t.OtherEvents[r]):n.eventNotificationLevel.stampsOvertime==n.notificationLevel.info&&t.InfoItems.push(t.OtherEvents[r])),t.OtherEvents[r].Type==n.otherEventType.travelClaims&&
1(t.OtherEvents[r].TravelType==3&&(l=a.getKey("TravelType",t.OtherEvents[r].TravelType),t.OtherEvents[r].TravelTypeText=o.getText("ENUMERATIONS.M2_TRAVELTYPE_"+l.toUpperCase())),t.NotificationLevel=Math.max(t.NotificationLevel,n.eventNotificationLevel.travelClaims),t.notificationLevelText[n.eventNotificationLevel.travelClaims][n.otherEventType.travelClaims]=!0,t.OtherEvents[r].Status!=1?(t.OtherEvents[r].Type=n.otherEventType.travelClaimsUnapproved,t.NotificationLevel=Math.max(t.NotificationLevel,n.eventNotificationLevel.travelClaimsUnapproved),t.notificationLevelText[n.eventNotificationLevel.travelClaimsUnapproved][n.otherEventType.travelClaimsUnapproved]=!0,n.eventNotificationLevel.travelClaimsUnapproved==n.notificationLevel.error?t.NotApprovableEvents.push(t.OtherEvents[r]):n.eventNotificationLevel.travelClaimsUnapproved==n.notificationLevel.warning?t.WarningItems.push(t.OtherEvents[r]):n.eventNotificationLevel.travelClaimsUnapproved==n.notificationLevel.info&&t.InfoItems.push(t.OtherEvents[r])):n.eventNotificationLevel.travelClaims==n.notificationLevel.error?t.NotApprovableEvents.push(t.OtherEvents[r]):n.eventNotificationLevel.travelClaims==n.notificationLevel.warning?t.WarningItems.push(t.OtherEvents[r]):n.eventNotificationLevel.travelClaims==n.notificationLevel.info&&t.InfoItems.push(t.OtherEvents[r]));t.ApprovableEvents.length&&(tt=!0,t.ApprovableEvents.sort(ut),tt=!tt,n.allOtherEventsSelected=!1,n.noOtherEventsSelected=!0);t.NotApprovableEvents.length&&(tt=!0,t.NotApprovableEvents.sort(ut),tt=!tt);t.WarningItems.length&&(tt=!0,t.WarningItems.sort(ut),tt=!tt);t.InfoItems.length&&(tt=!0,t.InfoItems.sort(ut),tt=!tt)}lt=!1;for(otherEventType in t.notificationLevelText[t.NotificationLevel])t.NotificationText+=(lt?", ":"")+g[otherEventType],lt=!0;t.notificationLevelEmpty=[];for(notificationLevel in t.notificationLevelText){t.notificationLevelEmpty[notificationLevel]=!0;for(otherEventType in t.notificationLevelText[notificationLevel]){t.notificationLevelEmpty[notificationLevel]=!1;break}}}}]);angular.module("TiimaApp").controller("autoCorrectionController",["$scope","$rootScope","$q","$http","$timeout","$uibModal","initPageService","toolsService","datasourceService","tiimaEnumsService","WorkHourQueueBatch","Queue",function(n,t,i,r,u,f,e,o,s,h,c,l){n.files=[];n.data=[];n.processingSets=[];n.settings={firstDataLoading:!0,dataLoading:!1};n.executionProgress=null;n.selectionType=0;n.pageSize=10;n.pageCount=0;n.pageIndex=0;n.totalCount=0;n.pagingInfo={FirstIndex:0,LastIndex:0,TotalCount:0};n.orderByFieldIndex=0;n.sortOrder=0;n.fileOrderByFieldIndex=0;n.fileSortOrder=0;n.searchFilter={text:""};n.currentPage=null;n.fileListPageSize=10;n.fileListPagingInfo={PageIndex:0,PageCount:1,TotalCount:0,FirstIndex:1,LastIndex:0};e.init("MVC/Processing/AutomaticCorrection/InitAutoCorrectionPage","PROCESSING_AUTOMATIC_CORRECTION.HEADER").then(function(t){t&&t.Data;n.refreshData()});n.$watch("selectionType",function(t,i){t!==i&&n.refreshData()});n.$watch("searchFilter.text",function(t,i){t!==i&&n.refreshData()});n.headerClick=function(t){n.fileOrderByFieldIndex==t&&(n.fileSortOrder=1-n.fileSortOrder);n.fileOrderByFieldIndex=t;n.refreshData()};n.dataHeaderClick=function(t){n.orderByFieldIndex==t&&(n.sortOrder=1-n.sortOrder);n.orderByFieldIndex=t;n.refreshData()};n.toggleFile=function(t,i){if(n.selectionType!=0&&t){var r=$(i.target);(r.hasClass("simpleListRow")||r.hasClass("simpleListCell"))&&(t.Checked=!t.Checked);n.refreshData()}};n.onStartClick=function(){if(!n.validateContinuous()){o.alert([{pageID:"PROCESSING_AUTOMATIC_CORRECTION",textID:"ERROR_FILE_SELECTION"},{pageID:"PROCESSING_AUTOMATIC_CORRECTION",textID:"NONCONTINUOUS_RANGE_NOT_ALLOWED"}]);return}var t=n.getSelectedFiles();t&&t.length&&o.confirm([{pageID:"GLOBAL",textID:"DELETE_LABEL"},{pageID:"PROCESSING_AUTOMATIC_CORRECTION",textID:n.selectionType==1?"CONFIRM_EXECUTE_SELECTED":"CONFIRM_EXECUTE_ALL"}],[{pageID:"GLOBAL",textID:"BUTTON_YES"},{pageID:"GLOBAL",textID:"BUTTON_NO"}],function(){c.execute(t).then(function(t){if(t&&t.Data){n.executionProgress={loading:!0};var r=f.open({templateUrl:"MVC/Modals/Processing/progress.html",controller:"progressModalController",backdrop:"static",windowClass:"autoCorrectionProgressInfo",resolve:{executionProgress:function(){return n.executionProgress}}}),u=i.defer();n.checkForExecutionStatus({queueIdC:t.Data.IdC}).then(function(){n.executionProgress.loading=!1});r.result.then(function(){n.executionProgress=null;n.refreshData()})}else o.showSplash("PROCESSING_AUTOMATIC_CORRECTION.EXECUTE_FAILED","errorMessage")},function(){o.showSplash("PROCESSING_AUTOMATIC_CORRECTION.EXECUTE_FAILED","errorMessage")})})};n.onCancelClick=function(){var t=n.getSelectedFiles();t&&t.length&&o.confirm([{pageID:"GLOBAL",textID:"DELETE_LABEL"},{pageID:"PROCESSING_AUTOMATIC_CORRECTION",textID:n.selectionType==1?"CONFIRM_CANCEL_SELECTED":"CONFIRM_CANCEL_ALL"}],[{pageID:"GLOBAL",textID:"BUTTON_YES"},{pageID:"GLOBAL",textID:"BUTTON_NO"}],function(){c.cancel(t).then(function(){o.showSplash("PROCESSING_AUTOMATIC_CORRECTION.CANCEL_SUCCEEDED","okMessage");n.refreshData()},function(){o.showSplash("PROCESSING_AUTOMATIC_CORRECTION.CANCEL_FAILED","errorMessage")})})};n.validateContinuous=function(){var i=!1,r,t,u;if(n.files&&n.files.length){if(i=!0,n.selectionType==0)return i;if(!n.files[0].Checked)return!1;for(r=0,t=1;t<n.files.length;t++)if(u=n.files[t],u.Checked){if(r!=t-1)return!1;r=t}}return i};n.checkForExecutionStatus=function(t){if(!t.defer){var r=i.defer();t.defer=r}return u(function(){l.getInstance(t.queueIdC).then(function(i){var r=i?i.Data:null,u;if(r){if(r.Parameters){var e=0,f=0,o="";for(u=0;
1u<r.Parameters.length;u++)r.Parameters[u].Name=="_ProgressMax"?f=r.Parameters[u].NumberValue:r.Parameters[u].Name=="_ProgressValue"?e=r.Parameters[u].NumberValue:r.Parameters[u].Name=="_ProgressLabel"&&(o=r.Parameters[u].StringValue);n.executionProgress.total=f?f:100;n.executionProgress.progress=e?e:0;n.executionProgress.status=f?!0:!1;n.executionProgress.statusLabel=o;n.executionProgress.queueIdC=r.UrlIdC}r.Status<h.getValue("QueueStatus","Completed")?n.checkForExecutionStatus(t):t.defer.resolve()}})},2e3),t.defer.promise};n.getSelectedFiles=function(){var i=[],t,r;if(n.files)for(t=0;t<n.files.length;t++)r=n.files[t],(n.selectionType==0||r.Checked)&&i.push(r);return i.length?i:null};n.firstPage=function(){n.pageIndex=0;n.refreshData()};n.prevPage=function(){n.pageIndex--;n.refreshData()};n.nextPage=function(){n.pageIndex++;n.refreshData()};n.lastPage=function(){n.pageIndex=n.pageCount-1;n.refreshData()};n.getCurrentFilePage=function(){var i=n.fileListPagingInfo.PageIndex*n.fileListPageSize,t=i+n.fileListPageSize;t>n.fileListPagingInfo.TotalCount&&(t=n.fileListPagingInfo.TotalCount);n.fileListPagingInfo.FirstIndex=i+1;n.fileListPagingInfo.LastIndex=t;n.currentPage=n.files.slice(i,t)};n.firstFilePage=function(){n.fileListPagingInfo.PageIndex=0;n.getCurrentFilePage()};n.prevFilePage=function(){n.fileListPagingInfo.PageIndex--;n.getCurrentFilePage()};n.nextFilePage=function(){n.fileListPagingInfo.PageIndex++;n.getCurrentFilePage()};n.lastFilePage=function(){n.fileListPagingInfo.PageIndex=n.fileListPagingInfo.PageCount-1;n.getCurrentFilePage()};n.refreshData=function(t){var u=i.defer(),f,r;return n.settings.firsDataLoading||(n.settings.dataLoading=!0),t||(t={}),f=null,n.selectionType==1&&(r=[],angular.forEach(n.files,function(n){n.Checked&&r.push(n.IdC)}),f=r.length?r.join(","):" "),t=angular.extend(t,{FileOrderByField:n.fileOrderByFieldIndex,FileSortOrder:n.fileSortOrder,OrderByField:n.orderByFieldIndex,SortOrder:n.sortOrder,FirstIndex:n.pageIndex*n.pageSize,ItemCount:n.pageSize,QueueIdCList:f,SearchFilter:n.searchFilter.text}),c.getAll(t).then(function(t){var c={},h,f,i,r;if(n.files&&angular.forEach(n.files,function(n){n.Checked&&(c[n.IdC]=!0)}),n.files=[],n.data=[],n.processingSets=[],n.totalCount=t?t.TotalRows:0,n.pageCount=t?Math.ceil(n.totalCount/n.pageSize):0,n.pagingInfo={FirstIndex:n.pageIndex*n.pageSize+1,LastIndex:n.pageSize*(n.pageIndex+1),TotalCount:n.totalCount},n.pagingInfo.LastIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.LastIndex=n.pagingInfo.TotalCount),n.pagingInfo.FirstIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.FirstIndex=n.pagingInfo.TotalCount),t&&t.DataList){for(h={},f=0;f<t.DataList.length;f++){if(i=t.DataList[f],i.ProcessingSets){for(r=0;r<i.ProcessingSets.length;r++)h[i.ProcessingSets[r].ProcessingSetNumber]||n.processingSets.push(i.ProcessingSets[r]),h[i.ProcessingSets[r].ProcessingSetNumber]=!0;delete i.ProcessingSets}if(i.Data){for(r=0;r<i.Data.length;r++)n.data.push(i.Data[r]);delete i.Data}c[i.IdC]&&(i.Checked=!0);n.files.push(i)}n.data&&n.data.sort(function(n,t){return n.Row<t.Row?-1:t.Row<n.Row?1:0})}var a=n.fileListPagingInfo.PageIndex,v=n.fileListPagingInfo.FirstIndex,e=n.files?n.files.length:0,l=n.files?Math.ceil(e/n.fileListPageSize):0,o=a,s=v;o>=l?(o=0,s=1):s>e&&(s=e);n.fileListPagingInfo={PageIndex:o,PageCount:l,TotalCount:e,FirstIndex:s,LastIndex:n.fileListPageSize*(o+1)};n.fileListPagingInfo.LastIndex>n.fileListPagingInfo.TotalCount&&(n.fileListPagingInfo.LastIndex=n.fileListPagingInfo.TotalCount);n.fileListPagingInfo.FirstIndex>n.fileListPagingInfo.TotalCount&&(n.fileListPagingInfo.FirstIndex=n.fileListPagingInfo.TotalCount);n.getCurrentFilePage();n.settings.firstDataLoading=!1;n.settings.dataLoading=!1;u.resolve(t)},function(){n.settings.firstDataLoading=!1;n.settings.dataLoading=!1;u.resolve(null)}),u.promise}}]);angular.module("TiimaApp").controller("processingTestController",["$scope","$rootScope","$window","$q","$timeout","$uibModal","$http","initPageService","tiimaEnumsService","localizationService","toolsService","ProcessingTest",function(n,t,i,r,u,f,e,o,s,h,c,l){var a,v,y;n.settings={ProcessingSet1:null,ProcessingSet2:null};n.testResultsReady=!1;n.testResultsError=!1;n.resultsLink="";n.pendingOperation=!1;n.validateTimeout=null;n.previousValue="";a=null;o.init("MVC/Processing/ProcessingTest/InitProcessingTestPage","TEST_PROCESSING.HEADER").then(function(n){n&&n.Data});n.executeTest=function(){n.pendingOperation=!0;n.testResultsError=!1;n.testResultsReady=!1;n.resultsLink="";
1l.executeProcessingCompareTest({ProcessingSetID1:n.settings.ProcessingSet1,ProcessingSetID2:n.settings.ProcessingSet2}).then(function(t){t&&t.FileName&&(n.testResultsReady=!0,n.testResultsError=!1,n.resultsLink="MVC/Processing/ProcessingTest/GetResultsFile/"+t.FileName);n.mainForm.$setPristine();n.pendingOperation=!1},function(){n.testResultsError=!0;n.testResultsReady=!1;n.resultsLink="";n.mainForm.$setPristine();n.pendingOperation=!1})};v=function(n){l.checkIfProcessingSetExists({id:n}).then(function(n){var t=[],i;n||t.push("errorProcessingSetDoesNotExist");i={valid:!t.length,errors:t};a.resolve(i);a=null})};y=_.debounce(v,500);n.checkIfProcessingSetExists=function(n){return a||(a=r.defer()),y(n),a.promise};n.$watch("settings.ProcessingSet1",function(t,i){t!=i&&(n.testResultsError=!1,n.testResultsReady=!1,n.resultsLink="")});n.$watch("settings.ProcessingSet2",function(t,i){t!=i&&(n.testResultsError=!1,n.testResultsReady=!1,n.resultsLink="")})}]);angular.module("TiimaApp").controller("calendarsController",["$scope","$rootScope","$window","$q","$timeout","$http","$uibModal","initPageService","localizationService","toolsService","datasourceService","Calendar","TypeOfDay",function(n,t,i,r,u,f,e,o,s,h,c,l,a){n.settings={pendingOperation:!1};n.calendars=[];n.selectedItem=null;n.months={};n.futureDays=[];n.unsavedCalendarDaysOutsideThePeriod=[];n.Changed=!1;n.selectedRow=null;n.arrowKeysOff=!1;n.visibilityOptions={CalendarListVisible:!0};n.Permissions={read:!1,write:!1,remove:!1};n.TypeOfDayPermissions={read:!1,write:!1,remove:!1};n.settings={viewOnly:!1};n.pagingInfo={FirstIndex:0,LastIndex:0,TotalCount:0};n.pageCount=0;n.pageIndex=0;n.totalCount=0;n.pageSize=20;n.paginate=!0;n.orderByFieldIndex=1;n.sortOrder=0;n.Restrictions={searchFilter:""};n.previousSearchFilter="";n.searchTimeout=null;n.languageIdC="";n.typeOfDayHeadingFormat=s.getText("GLOBAL.AUTOCOMPLETE_DEFAULT_BROWSING_TEXT_FORMAT");n.typeOfDayItemTemplate="{{Code}} {{TypeOfDayName}}";n.typeOfDaySearchResultTemplate="<div class='listcellCode'>{{Code}}<\/div><div class='listcellName'>{{TypeOfDayName}}<\/div>";var v=new Date,y=new Date(v.getFullYear(),v.getMonth(),1,0,0,0,0),p=new Date(v.getFullYear(),v.getMonth()+4,0,0,0,0,0);n.dateRange={startDate:y,endDate:p};n.dataSources={typeOfDayDataSource:c.createDatasource({method:function(t){return n.getTypesOfDays(t)}})};n.listFields=[{dataType:1,heading:"LIST_FIELDS.CODE",name:"Code","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,heading:"LIST_FIELDS.NAME",name:"Name",localize:!0,"class":"listcellName",headingClass:"listcellName"},];n.addTypeOfDayPopover={calendarDay:null,visible:!1,style:{left:0,top:0}};n.copyMonthPopover={month:null,monthCount:null,visible:!1,style:{left:0,top:0}};n.copyWeekPopover={week:null,weekCount:null,visible:!1,style:{left:0,top:0}};n.toggleAddTypeOfDayPopover=function(t,i){var o,s,r;if(n.copyMonthPopover.visible=!1,n.copyWeekPopover.visible=!1,n.addTypeOfDayPopover.calendarDay!=i){var f=$(".calendarDaysEditor .calendars"),h=f.position(),e=f.offset();n.addTypeOfDayPopover.calendarDay=i;o=e.top;s=e.left;n.addTypeOfDayPopover.style.top=t.clientY-o+h.top+190+"px";n.addTypeOfDayPopover.style.left=t.clientX-s-50+"px";n.addTypeOfDayPopover.visible=!0}else n.addTypeOfDayPopover.visible=!n.addTypeOfDayPopover.visible;n.addTypeOfDayPopover.visible&&u(function(){$(".typeOfDaySelector div.ui-autocomplete-picker input").focus()},120);r=null;r=function(t){if(!$(t.target).parent(".ui-autocomplete").length){var i=$(".typeOfDayPopover");i.length!==0&&i.get(0)!=t.target&&($.contains(i.get(0),t.target)||(n.addTypeOfDayPopover.visible&&(n.addTypeOfDayPopover.visible=!1),$("body").unbind("click",r),n.$apply()))}};n.addTypeOfDayPopover.visible&&$("body").bind("click",r);t.stopPropagation()};n.toggleCopyMonthPopover=function(t,i){var f,u,e,o,r;n.copyWeekPopover.visible=!1;n.addTypeOfDayPopover.visible=!1;n.copyMonthPopover.month!=i?(f=$(".calendarDaysEditor .calendars"),u=f.offset(),n.copyMonthPopover.month=i,n.copyMonthPopover.monthCount=1,e=u.top,o=u.left,n.copyMonthPopover.style.top=t.clientY-e+10+"px",n.copyMonthPopover.style.left=t.clientX-o-10+"px",n.copyMonthPopover.visible=!0):n.copyMonthPopover.visible=!n.copyMonthPopover.visible;r=null;r=function(t){if(!$(t.target).parent(".ui-autocomplete").length){var i=$(".copyMonthPopover");i.get(0)!=t.target&&($.contains(i.get(0),t.target)||(n.copyMonthPopover.visible&&(n.copyMonthPopover.visible=!1),$("body").unbind("click",r),n.$apply()))}};n.copyMonthPopover.visible&&$("body").bind("click",r);t.stopPropagation()};n.toggleCopyWeekPopover=function(t,i){var u,r,l,a,f;if(n.copyMonthPopover.visible=!1,n.addTypeOfDayPopover.visible=!1,n.copyWeekPopover.week!=i){var e=$
1(".calendarDaysEditor .calendars"),v=e.position(),o=e.offset();for(n.copyWeekPopover.week=i,u=0;u<i.Days.length;u++)if(r=i.Days[u],r.Date&&r.Date.getDay()>=2){var s=new Date(r.Date.getFullYear(),r.Date.getMonth(),1,0,0,0,0),h=new Date(s.getFullYear(),s.getMonth()+1,0,0,0,0,0),b=r.Date,c=[0,1,2,3,4],y=c[0|r.Date.getDate()/7],k=h,c=[0,1,2,3,4],p=c[0|h.getDate()/7],w=p-y;n.copyWeekPopover.weekCount=w;break}l=o.top;a=o.left;n.copyWeekPopover.style.top=t.clientY-l+v.top+190+"px";n.copyWeekPopover.style.left=t.clientX-a-20+"px";n.copyWeekPopover.visible=!0}else n.copyWeekPopover.visible=!n.copyWeekPopover.visible;f=null;f=function(t){if(!$(t.target).parent(".ui-autocomplete").length){var i=$(".copyWeekPopover");i.get(0)!=t.target&&($.contains(i.get(0),t.target)||(n.copyWeekPopover.visible&&(n.copyWeekPopover.visible=!1),$("body").unbind("click",f),n.$apply()))}};n.copyWeekPopover.visible&&$("body").bind("click",f);t.stopPropagation()};o.init("MVC/Administrating/Calendars/InitCalendarsPage","CALENDARS.HEADER").then(function(t){if(t&&t.Data){if(n.languageIdC=s.getCurrentLanguageIdC(),n.calendars=t.Data.Calendars,n.calendars&&n.calendars[0]){var i=n.calendars[0];i&&i.IdC&&n.getInstance(i.IdC)}n.Permissions.read=t.Data.ReadPermission;n.Permissions.write=t.Data.WritePermission;n.Permissions.remove=t.Data.DeletePermission;n.settings.viewOnly=!n.Permissions.write;n.TypeOfDayPermissions.read=t.Data.typeOfDayRead;n.TypeOfDayPermissions.write=t.Data.typeOfDayWrite;n.TypeOfDayPermissions.remove=t.Data.typeOfDayDelete;n.totalCount=t.Data.TotalRows;n.pagingInfo={FirstIndex:n.pageIndex*n.pageSize+1,LastIndex:n.pageSize*(n.pageIndex+1),TotalCount:n.totalCount};n.pageCount=Math.ceil(n.totalCount/n.pageSize);n.pagingInfo.LastIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.LastIndex=n.pagingInfo.TotalCount);n.pagingInfo.FirstIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.FirstIndex=n.pagingInfo.TotalCount)}n.TypeOfDayPermissions.write&&o.setSettingFunction(function(){n.openTypeOfDayEditor()})});n.initForm=function(t){n.mainForm=t;n.mainForm.$setPristine()};n.openTypeOfDayEditor=function(){var t=e.open({templateUrl:"MVC/modals/Administrating/typeOfDayEditor.html",controller:"typeOfDayEditorModalController",backdrop:"static",windowClass:"typeOfDayEditor",resolve:{permissions:function(){return n.TypeOfDayPermissions}}})};n.getCalendars=function(t){n.settings.pendingOperation=!0;l.getCalendars(t).then(function(t){t&&t.DataList&&(n.calendars=t.DataList,n.pagingInfo={FirstIndex:n.pageIndex*n.pageSize+1,LastIndex:n.pageSize*(n.pageIndex+1),TotalCount:t.Data.TotalRows},n.totalCount=t.Data.TotalRows,n.pageCount=Math.ceil(n.totalCount/n.pageSize),n.pagingInfo.LastIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.LastIndex=n.pagingInfo.TotalCount),n.pagingInfo.FirstIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.FirstIndex=n.pagingInfo.TotalCount),n.createCalendarDays());n.settings.pendingOperation=!1},function(){n.settings.pendingOperation=!1})};n.openCalendar=function(t){var i=!1;t!=n.selectedItem.IdC&&n.Changed&&(i=!0);i?h.confirm([{pageID:"CALENDARS",textID:"CONFIRM_UNSAVED_DATA_HEADER"},{pageID:"CALENDARS",textID:"CONFIRM_UNSAVED_DATA"}],null,function(){n.getInstance(t)}):n.getInstance(t)};n.getInstance=function(t){t&&(n.settings.pendingOperation=!0,n.selectedItem&&n.selectedItem.IdC&&t!=n.selectedItem.IdC&&(n.Changed=!1,n.unsavedCalendarDaysOutsideThePeriod=[],n.months={}),l.getInstance({IdC:t,StartDate:n.dateRange.startDate,EndDate:n.dateRange.endDate}).then(function(t){n.selectedItem=t;n.createCalendarDays();n.settings.pendingOperation=!1;n.mainForm.$setPristine()}))};n.checkFutureDays=function(t,i,r){n.selectedItem&&n.selectedItem.IdC?(n.settings.pendingOperation=!0,l.getInstance({IdC:n.selectedItem.IdC,StartDate:t,EndDate:i}).then(function(t){n.settings.pendingOperation=!1;n.futureDays=t.CalendarDays;r.resolve()})):(n.futureDays=[],r.resolve())};n.getEmptyInstance=function(){n.settings.pendingOperation=!0;n.selectedItem=l.getEmptyInstance();n.createCalendarDays();n.settings.pendingOperation=!1};n.getTypesOfDays=function(n){return n.orderByField||(n.orderByField=1),a.getTypesOfDays(n)};n.$watch("Restrictions.searchFilter",function(t,i){t!=i&&n.search(i)});n.search=function(t,i){if(!n.searchTimeout){i||(i=120);var r=t;n.searchTimeout=u(function(){var t=n.previousSearchFilter;n.Restrictions.searchFilter!=t&&(n.pageIndex=0,n.previousSearchFilter=n.Restrictions.searchFilter,n.refresh());n.searchTimeout=null},i)}};n.refresh=function(){var t={FirstIndex:n.pageIndex*n.pageSize,ItemCount:n.pageSize,OrderByField:n.orderByFieldIndex,SortOrder:n.sortOrder,SearchFilter:n.Restrictions.searchFilter,StartDate:n.dateRange.startDate,EndDate:n.dateRange.endDate};n.getCalendars(t)};n.onDataChanged=function(t){var r,i,u;if(t){if(t.Deleted=!1,t.Changed=!0,n.selectedItem.HolidayCalendar||n.selectedItem.TypeOfDayCalendar?!n.selectedItem.HolidayCalendar||n.selectedItem.TypeOfDayCalendar||t.Holiday||(t.Deleted=!0):n.selectedItem.Type!=0||t.DurationHours&&t.DurationHours!=0?n.selectedItem.Type!=1||t.WorkDay||(t.Deleted=!0):t.Deleted=!0,!t.Deleted){if(t.Empty=!1,n.selectedItem.HolidayCalendar&&(t.Duration=t.Holiday?60:0),n.selectedItem.TypeOfDayCalendar&&(n.selectedItem.HolidayCalendar||(t.Duration=0),t.TypeOfDay)){if
1(n.addTypeOfDayPopover.visible=!1,r=!1,t.TypesOfDay){if(t.TypesOfDay.length>0)for(i=0;i<t.TypesOfDay.length;i++)t.TypesOfDay[i].TypeOfDayIdC==t.TypeOfDay.IdC&&(r=!0)}else t.TypesOfDay=[];r||(u={IdC:null,TypeOfDayIdC:t.TypeOfDay.IdC,Color:t.TypeOfDay.Color,Code:t.TypeOfDay.Code,Name:t.TypeOfDay.TypeOfDayName,$showDeleteButton:!1,Changed:!0},t.TypesOfDay.push(u))}n.selectedItem.HolidayCalendar||n.selectedItem.TypeOfDayCalendar||(n.selectedItem.Type==0?t.DurationHours&&(t.Duration=t.DurationHours*60):n.selectedItem.Type==1&&t.WorkDay&&(t.Duration=1440))}t.Deleted&&(t.IdC||(t.Changed=!1,t.Deleted=!1));n.Changed=!0}};n.saveInstance=function(){n.settings.pendingOperation=!0;var t=n.getUnsavedCalendarDays();n.selectedItem.CalendarDays=t;l.saveInstance({Calendar:n.selectedItem,StartDate:n.dateRange.startDate,EndDate:n.dateRange.endDate}).then(function(t){n.selectedItem=t;n.refresh();n.settings.pendingOperation=!1;n.Changed=!1;n.unsavedCalendarDaysOutsideThePeriod=[];n.months={};n.createCalendarDays();var i=h.getDataMessage(t,t?"GLOBAL.SUCCESS_SAVE":"GLOBAL.ERROR_SAVE");h.showSplash(i,t?"okMessage":"errorMessage");t&&n.mainForm.$setPristine()},function(t){h.splashResponseError(t);n.settings.pendingOperation=!1})};n.getUnsavedCalendarDays=function(){var l=[],u,e,f,o,t,i,h,c,r;if(n.unsavedCalendarDaysOutsideThePeriod&&n.unsavedCalendarDaysOutsideThePeriod.length>0&&(l=n.unsavedCalendarDaysOutsideThePeriod),n.months)for(m=0;m<n.months.length;m++)if(u=n.months[m],u&&u.Weeks)for(e=0;e<u.Weeks.length;e++)if(f=u.Weeks[e],f&&f.Days)for(o=0;o<f.Days.length;o++)if(t=f.Days[o],t&&t.CalendarDay&&!t.CalendarDay.Empty){if(i=[],n.selectedItem.TypeOfDayCalendar&&t.CalendarDay.TypesOfDay)for(h=0;h<t.CalendarDay.TypesOfDay.length;h++)c=t.CalendarDay.TypesOfDay[h],(c.Changed||c.Deleted)&&i.push(c);(t.CalendarDay.Changed||t.CalendarDay.Deleted||i&&i.length>0)&&(r={Day:s.getDateWithoutTimezone(t.CalendarDay.Day),Holiday:t.CalendarDay.Holiday?!0:!1,Duration:t.CalendarDay.Duration,Deleted:t.CalendarDay.Deleted?!0:!1,Changed:t.CalendarDay.Changed?!0:!1},n.selectedItem.HolidayCalendar||n.selectedItem.TypeOfDayCalendar||n.selectedItem.Type!=1||(r.WorkDay=r.Duration&&r.Duration>0?!0:!1),i&&i.length>0&&(r.TypesOfDay=i),t.CalendarDay&&t.CalendarDay.IdC&&(r.IdC=t.CalendarDay.IdC),l.push(r))}return l};n.onTypeOfDayDelete=function(t,i){var u,r;if(i.IdC)t.Changed=!0,t.TypesOfDay&&t.TypesOfDay.length==1&&(n.selectedItem.HolidayCalendar&&t.Holiday||(t.Deleted=!0)),i.Deleted=!0,i.Changed=!0,n.Changed=!0;else if(t.TypesOfDay)if(t.TypesOfDay.length>1||n.selectedItem.HolidayCalendar&&t.Holiday){for(u=[],r=0;r<t.TypesOfDay.length;r++)i.TypeOfDayIdC!=t.TypesOfDay[r].TypeOfDayIdC&&u.push(t.TypesOfDay[r]);t.TypesOfDay=[];t.TypesOfDay=u}else t.Changed=!1,t.TypesOfDay=[]};n.deleteInstance=function(t){t.stopPropagation();h.confirm([{pageID:"CALENDARS",textID:"CONFIRM_HEADING_DELETE_CALENDAR"},{pageID:"CALENDARS",textID:"CONFIRM_MESSAGE_DELETE_CALENDAR"}],null,function(){n.selectedItem.Deleted=!0;n.settings.pendingOperation=!0;l.saveInstance({Calendar:n.selectedItem,StartDate:n.dateRange.startDate,EndDate:n.dateRange.endDate}).then(function(t){var i,r;n.refresh();i=n.calendars[0];i&&i.IdC&&n.getInstance(i.IdC);n.Changed=!1;n.unsavedCalendarDaysOutsideThePeriod=[];n.months={};n.createCalendarDays();r=h.getDataMessage(t,"CALENDARS.SUCCESS_DELETE");h.showSplash(r,"okMessage")},function(n){var t=h.getDataMessage(n,"CALENDARS.ERROR_DELETE");h.showSplash(t,"errorMessage")});n.settings.pendingOperation=!1})};n.onClearMonthClick=function(t,i){i&&(t.stopPropagation(),h.confirm([{pageID:"CALENDARS",textID:"CONFIRM_HEADING_CLEARMONTH"},{pageID:"CALENDARS",textID:"CONFIRM_MESSAGE_CLEARMONTH"}],null,function(){var t,r;n.settings.pendingOperation=!0;t=new Date(i.Year,i.MonthNumber,1,0,0,0,0);t&&(r=new Date(t.getFullYear(),t.getMonth()+1,0,0,0,0,0),n.clearCalendarData(t,r))}))};n.onCopyWeekClick=function(t,i,r){n.copyWeekPopover.visible=!1;t.stopPropagation();h.confirm([{pageID:"CALENDARS",textID:"CONFIRM_HEADING_COPY_WEEK"},{pageID:"CALENDARS",textID:"CONFIRM_MESSAGE_COPY_WEEK"}],null,function(){n.copyWeeks(i,r)})};n.copyWeeks=function(t,i){var c=!1,f,o,h,l,a;if(t&&t.Days){for(f=6;f>=0;f--)if(!c&&t.Days[f].CalendarDay&&t.Days[f].CalendarDay.Day){c=!0;var e=s.getDateWithoutTimezone(t.Days[f].CalendarDay.Day),v=i*7,y=new Date(e.getFullYear(),e.getMonth(),e.getDate()+1,0,0,0,0),u=new Date(e.getFullYear(),e.getMonth(),e.getDate()+v,0,0,0,0,0);n.settings.pendingOperation=!0;o=r.defer();h=[];u.getFullYear()>n.dateRange.endDate.getFullYear()||u.getFullYear()==n.dateRange.endDate.getFullYear()&&u.getMonth()>n.dateRange.endDate.getMonth()||u.getFullYear()==n.dateRange.endDate.getFullYear()&&u.getMonth()==n.dateRange.endDate.getMonth()&&u.getDate()>n.dateRange.endDate.getDate()?(l=new Date(n.dateRange.endDate.getFullYear(),n.dateRange.endDate.getMonth(),n.dateRange.endDate.getDate()+1,0,0,0),a=u,n.checkFutureDays(l,a,o)):o.resolve();o.promise.then(function(){h=n.futureDays;n.futureDays=[];n.settings.pendingOperation=!0;n.doCopyWeek(y,u,t,h)})}}else n.settings.pendingOperation=!1};n.doCopyWeek=function(t,i,r,u){for(var v=[],b=!1,y=!1,o=t,k,e,h,w,f,l,d,a,g,p,nt,c;o<=i;){if(b=!1,(o.getFullYear()>n.dateRange.endDate.getFullYear()||o.getFullYear()==n.dateRange.endDate.getFullYear()&&o.getMonth()>n.dateRange.endDate.getMonth()||o.getFullYear()==n.dateRange.endDate.getFullYear()&&o.getMonth()==n.dateRange.endDate.getMonth()&&o.getDate()>
1n.dateRange.endDate.getDate())&&(y=!0),k=0,k=o.getDay()==0?6:o.getDay()-1,e=null,y){if(u&&u.length>0)for(h=0;h<u.length;h++)if(w=s.getDateWithoutTimezone(u[h].Day),w.getFullYear()==o.getFullYear()&&w.getMonth()==o.getMonth()&&w.getDate()==o.getDate()){e=u[h];break}}else if(n.selectedItem.CalendarDays)for(h=0;h<n.selectedItem.CalendarDays.length;h++)if(c=s.getDateWithoutTimezone(n.selectedItem.CalendarDays[h].Day),c.getFullYear()==o.getFullYear()&&c.getMonth()==o.getMonth()&&c.getDate()==o.getDate()){e=n.selectedItem.CalendarDays[h];break}if(f=r.Days[k],f&&f.CalendarDay&&!f.CalendarDay.Empty&&!f.CalendarDay.Deleted){if(l={Day:s.getDateWithoutTimezone(o),Holiday:f.CalendarDay.Holiday,Duration:f.CalendarDay.Duration,DurationHours:f.CalendarDay.DurationHours,Deleted:!1,Changed:!0,Empty:!1},n.selectedItem.HolidayCalendar||n.selectedItem.TypeOfDayCalendar||n.selectedItem.Type!=1||(l.WorkDay=l.Duration&&l.Duration>0?!0:!1),e&&e.IdC&&(l.IdC=e.IdC),f.CalendarDay.TypesOfDay){for(d=[],a=0;a<f.CalendarDay.TypesOfDay.length;a++)if(!f.CalendarDay.TypesOfDay[a].Deleted){if(g=!1,e&&e.TypesOfDay)for(p=0;p<e.TypesOfDay.length;p++)e.TypesOfDay[p].Deleted||e.TypesOfDay[p].TypeOfDayIdC==f.CalendarDay.TypesOfDay[a].TypeOfDayIdC&&(g=!0);nt={IdC:null,TypeOfDayIdC:f.CalendarDay.TypesOfDay[a].TypeOfDayIdC,Color:f.CalendarDay.TypesOfDay[a].Color,Code:f.CalendarDay.TypesOfDay[a].Code,Deleted:!1,Changed:g?!1:!0};d.push(nt)}l.TypesOfDay=d}y?n.addToUnsavedOutsideThePeriod(l):v.push(l);b=!0}f.CalendarDay&&!f.CalendarDay.Empty&&(f.CalendarDay.Added||(f.CalendarDay.Deleted||f.CalendarDay.Changed)&&(c=s.getDateWithoutTimezone(f.CalendarDay.Day),f.CalendarDay.Day=c,y?n.addToUnsavedOutsideThePeriod(f.CalendarDay):v.push(f.CalendarDay),f.CalendarDay.Added=!0));b||e&&(e.Deleted=!0,e.Changed=!0,e.Holiday=!1,e.WorkDay=!1,e.Duration=0,e.DurationHours=0,e.TypesOfDay=null,c=s.getDateWithoutTimezone(e.Day),e.Day=c,y?n.addToUnsavedOutsideThePeriod(e):v.push(e));o=new Date(o.getFullYear(),o.getMonth(),o.getDate()+1,0,0,0,0)}n.selectedItem&&v&&v.length>0?n.addDaysToMonth(v):n.unsavedCalendarDaysOutsideThePeriod||n.clearCalendarData(t,i);n.Changed=!0;n.settings.pendingOperation=!1};n.onCopyMonthClick=function(t,i,r){n.copyMonthPopover.visible=!1;t.stopPropagation();h.confirm([{pageID:"CALENDARS",textID:"CONFIRM_HEADING_COPY_MONTH"},{pageID:"CALENDARS",textID:"CONFIRM_MESSAGE_COPY_MONTH"}],null,function(){n.copyMonths(i,r)})};n.addToUnsavedOutsideThePeriod=function(t){var i={Day:s.getDateWithoutTimezone(t.Day),Holiday:t.Holiday?!0:!1,Duration:t.Duration,Deleted:t.Deleted?!0:!1,Changed:t.Changed?!0:!1},o,r,u,e,f;if(n.selectedItem.HolidayCalendar||n.selectedItem.TypeOfDayCalendar||n.selectedItem.Type!=1||(i.WorkDay=i.Duration&&i.Duration>0?!0:!1),o=[],n.selectedItem.TypeOfDayCalendar&&t.TypesOfDay&&(i.TypesOfDay=t.TypesOfDay),t.IdC&&(i.IdC=t.IdC),n.unsavedCalendarDaysOutsideThePeriod&&n.unsavedCalendarDaysOutsideThePeriod.length>0)for(r=s.getDateWithoutTimezone(n.unsavedCalendarDaysOutsideThePeriod.Day),u=0;u<n.unsavedCalendarDaysOutsideThePeriod.length;u++)e=n.unsavedCalendarDaysOutsideThePeriod[u],f=s.getDateWithoutTimezone(e.Day),r.getFullYear()==f.getFullYear()&&r.getMonth()==f.getMonth()&&r.getDate()==f.getDate()&&(e=i);else n.unsavedCalendarDaysOutsideThePeriod=[];!1||n.unsavedCalendarDaysOutsideThePeriod.push(i)};n.copyMonths=function(t,i){var l=!1,a=new Date,u=new Date,s,e,h,f,o,c,v,y;if(t.Weeks[0])for(s=t.Weeks[0],e=0;e<s.Days.length;e++)l||(h=s.Days[e],h.Date&&(l=!0,f=h.Date,a=new Date(f.getFullYear(),f.getMonth()+1,1,0,0,0,0),u=new Date(f.getFullYear(),f.getMonth()+i+1,0,0,0,0,0),o=r.defer(),c=[],u.getFullYear()>n.dateRange.endDate.getFullYear()||u.getFullYear()==n.dateRange.endDate.getFullYear()&&u.getMonth()>n.dateRange.endDate.getMonth()||u.getFullYear()==n.dateRange.endDate.getFullYear()&&u.getMonth()==n.dateRange.endDate.getMonth()&&u.getDate()>n.dateRange.endDate.getDate()?(v=new Date(n.dateRange.endDate.getFullYear(),n.dateRange.endDate.getMonth(),n.dateRange.endDate.getDate()+1,0,0,0),y=u,n.checkFutureDays(v,y,o)):o.resolve(),o.promise.then(function(){c=n.futureDays;n.futureDays=[];n.settings.pendingOperation=!0;n.doCopyMonth(a,u,t,c)})));else n.settings.pendingOperation=!1};n.doCopyMonth=function(t,i,r,u){var v=[],b=!1,p=!1,d,w,o,e,c,g,y,a,nt,tt,ft,et,it,rt,l;if(r&&r.Weeks){for(var f=t,ot=f,h=[0,1,2,3,4][0|ot.getDate()/7],k=f.getMonth(),ut=n.lastWeekIndexOfMonth(f.getFullYear(),k);f<=i;){if(b=!1,(f.getFullYear()>n.dateRange.endDate.getFullYear()||f.getFullYear()==n.dateRange.endDate.getFullYear()&&f.getMonth()>n.dateRange.endDate.getMonth()||f.getFullYear()==n.dateRange.endDate.getFullYear()&&f.getMonth()==n.dateRange.endDate.getMonth()&&f.getDate()>
1n.dateRange.endDate.getDate())&&(p=!0),d=r.Weeks[h],d&&d.Days&&(w=f.getDay()==0?6:f.getDay()-1,o=d.Days[w],o)){if(e=null,p){if(u&&u.length>0)for(c=0;c<u.length;c++)if(g=s.getDateWithoutTimezone(u[c].Day),g.getFullYear()==f.getFullYear()&&g.getMonth()==f.getMonth()&&g.getDate()==f.getDate()){e=u[c];break}}else if(n.selectedItem.CalendarDays)for(c=0;c<n.selectedItem.CalendarDays.length;c++)if(l=s.getDateWithoutTimezone(n.selectedItem.CalendarDays[c].Day),l.getFullYear()==f.getFullYear()&&l.getMonth()==f.getMonth()&&l.getDate()==f.getDate()){e=n.selectedItem.CalendarDays[c];break}o.Date||(h==0||h==ut)&&(y={},a={},h==0?(nt=r.Weeks[h+1],tt=r.Weeks[h+2],y=nt.Days[w],a=tt.Days[w]):h==ut&&(nt=r.Weeks[h-1],tt=r.Weeks[h-2],y=nt.Days[w],a=tt.Days[w]),ft=y&&y.CalendarDay&&!y.CalendarDay.Empty&&!y.CalendarDay.Deleted,et=a&&a.CalendarDay&&!a.CalendarDay.Empty&&!a.CalendarDay.Deleted,(ft&&et||!ft&&et)&&(it=n.getNewCopyOfCalendarDay(f,a.CalendarDay,e),e&&e.IdC&&(it.IdC=e.IdC),p?n.addToUnsavedOutsideThePeriod(it):v.push(it),b=!0));o&&o.CalendarDay&&!o.CalendarDay.Empty&&!o.CalendarDay.Deleted&&(rt=n.getNewCopyOfCalendarDay(f,o.CalendarDay,e),e&&e.IdC&&(rt.IdC=e.IdC),p?n.addToUnsavedOutsideThePeriod(rt):v.push(rt),b=!0);b||e&&(e.Deleted=!0,e.Changed=!0,e.Holiday=!1,e.WorkDay=!1,e.Duration=0,e.DurationHours=0,e.TypesOfDay=null,l=s.getDateWithoutTimezone(e.Day),e.Day=l,p?n.addToUnsavedOutsideThePeriod(e):v.push(e));o&&o.CalendarDay&&!o.CalendarDay.Empty&&(o.CalendarDay.Added||(o.CalendarDay.Deleted||o.CalendarDay.Changed)&&(l=s.getDateWithoutTimezone(o.CalendarDay.Day),o.CalendarDay.Day=l,p?n.addToUnsavedOutsideThePeriod(o.CalendarDay):v.push(o.CalendarDay),o.CalendarDay.Added=!0))}f=new Date(f.getFullYear(),f.getMonth(),f.getDate()+1,0,0,0,0);k!=f.getMonth()?(k=f.getMonth(),h=0,ut=n.lastWeekIndexOfMonth(f.getFullYear(),k)):f.getDay()==1&&h++}n.selectedItem&&v&&v.length>0?n.addDaysToMonth(v):n.unsavedCalendarDaysOutsideThePeriod||n.clearCalendarData(t,i);n.Changed=!0}n.settings.pendingOperation=!1};n.lastWeekIndexOfMonth=function(n,t){var i=new Date(n,t-1,1),r=new Date(n,t,0),u=i.getDay()+r.getDate();return Math.ceil(u/7)-1};n.getNewCopyOfCalendarDay=function(t,i,r){var f={Day:s.getDateWithoutTimezone(t),Holiday:i.Holiday,Duration:i.Duration,DurationHours:i.DurationHours,Deleted:!1,Changed:!0,Empty:!1},o,u,h,e,c;if(n.selectedItem.HolidayCalendar||n.selectedItem.TypeOfDayCalendar||n.selectedItem.Type!=1||(f.WorkDay=f.Duration&&f.Duration>0?!0:!1),i.TypesOfDay){for(o=[],u=0;u<i.TypesOfDay.length;u++)if(!i.TypesOfDay[u].Deleted){if(h=!1,r&&r.TypesOfDay)for(e=0;e<r.TypesOfDay.length;e++)r.TypesOfDay[e].Deleted||r.TypesOfDay[e].TypeOfDayIdC==i.TypesOfDay[u].TypeOfDayIdC&&(h=!0);c={IdC:null,TypeOfDayIdC:i.TypesOfDay[u].TypeOfDayIdC,Color:i.TypesOfDay[u].Color,Code:i.TypesOfDay[u].Code,Name:i.TypesOfDay[u].TypeOfDayName,$showDeleteButton:!1,Changed:h?!1:!0};o.push(c)}f.TypesOfDay=o}return f};n.createCalendarDays=function(){var w=n.getUnsavedCalendarDays(),l,c,ut,f,p,r,it,t,rt,k,e,d,a,u;for(n.months={},l=[],c=n.dateRange.startDate;c<=n.dateRange.endDate;)l.push(c),ut=new Date(c.getFullYear(),c.getMonth(),c.getDate()+1,0,0,0,0),c=ut;var g=[],o=n.dateRange.startDate.getMonth(),nt=o+1,v=n.dateRange.startDate.getFullYear(),tt=s.getText("GLOBAL.M"+nt)+" "+v,y=[],h=[],b=i.moment(n.dateRange.startDate).format("W");if(l){if(f=n.dateRange.startDate.getDay(),f==0&&(f=7),f>1)for(u=1;u<f;u++)h.push({Date:null,DayNumber:null,DayOfWeek:u,CalendarDay:null});for(p=0;p<l.length;p++){if(r=l[p],it=i.moment(r).format("W"),f=r.getDay(),f==0&&(f=7),b!=it||o!=r.getMonth()){if(o!=r.getMonth()&&f>1)for(u=f;u<=7;u++)h.push({Date:null,DayNumber:null,DayOfWeek:u,CalendarDay:null});y.push({WeekNumber:b,Days:h});h=[]}if(o!=r.getMonth()){if(f>1)for(u=1;u<f;u++)h.push({Date:null,DayNumber:null,DayOfWeek:u,CalendarDay:null});g.push({MonthName:tt,MonthNumber:o,Year:v,Weeks:y});y=[];o=r.getMonth();nt=o+1;v=r.getFullYear();tt=s.getText("GLOBAL.M"+nt)+" "+v}if(b=it,t=null,w&&w.length>0)for(e=0;e<w.length;e++)if(rt=w[e],k=s.getDateWithoutTimezone(rt.Day),k.getFullYear()==r.getFullYear()&&k.getMonth()==r.getMonth()&&k.getDate()==r.getDate()){t=rt;break}if(!t&&n.selectedItem.CalendarDays)for(e=0;e<n.selectedItem.CalendarDays.length;e++)if(d=s.getDateWithoutTimezone(n.selectedItem.CalendarDays[e].Day),d.getFullYear()==r.getFullYear()&&d.getMonth()==r.getMonth()&&d.getDate()==r.getDate()){t=n.selectedItem.CalendarDays[e];break}if(t&&t.Duration&&(t.DurationHours=t.Duration/60),t&&(n.selectedItem.HolidayCalendar||n.selectedItem.TypeOfDayCalendar||n.selectedItem.Type!=1||(t.WorkDay=t.Duration&&t.Duration>0?!0:!1),n.selectedItem.TypeOfDayCalendar&&t.TypesOfDay))for(a=0;a<t.TypesOfDay.length;a++)t.TypesOfDay[a].$showDeleteButton=!1,t.TypesOfDay[a].Name=s.getCurrentLanguageText(t.TypesOfDay[a].Texts,"Name");if(t||(t={Day:r,Holiday:!1,Duration:0,DurationHours:null,Deleted:!1,Changed:!1,Empty:!0,TypesOfDay:null}),h.push({Date:r,DayNumber:r.getDate(),DayOfWeek:f,CalendarDay:t}),p==l.length-1){if(f>1)for(u=f;u<7;u++)h.push({Date:null,DayNumber:null,DayOfWeek:u,CalendarDay:null});y.push({WeekNumber:b,Days:h});g.push({MonthName:tt,Year:v,MonthNumber:o,Weeks:y})}}n.months=g}};n.addDaysToMonth=function(t){var o,r,l,s,u,h,f,c,e;if(t&&n.months)for(o=0;o<t.length;o++)for(r=t[o],l=i.moment(r.Day).format("W"),s=0;s<n.months.length;s++)if(u=n.months[s],u.Year==r.Day.getFullYear()&&u.MonthNumber==r.Day.getMonth()&&u.Weeks)for(h=0;h<u.Weeks.length;h++)if(f=u.Weeks[h],l==f.WeekNumber&&f.Days)for(c=0;c<f.Days.length;c++)if(e=f.Days[c],e&&e.DayNumber&&e.DayNumber==r.Day.getDate()){e.CalendarDay=r;break}n.$$phase||n.$apply();n.settings.pendingOperation=!1};n.clearCalendarData=function(t,r){var f=new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0),w=new Date(r.getFullYear(),r.getMonth(),r.getDate(),0,0,0),o=[],y,c,s,p,l,e,a,h,v,u;if(n.months){while(f<=w)o.push(f),y=new Date(f.getFullYear(),f.getMonth(),f.getDate()+1,0,0,0,0),f=y;if(o&&o.length>0)for(c=0;c<o.length;c++)for(s=o[c],p=i.moment(s).format("W"),l=0;l<n.months.length;l++)if(e=n.months[l],e.Year==s.getFullYear()&&e.MonthNumber==s.getMonth()&&e.Weeks)for(a=0;a<e.Weeks.length;a++)if(h=e.Weeks[a],p==h.WeekNumber&&h.Days)for(v=0;v<h.Days.length;v++)u=h.Days[v],u&&u.DayNumber&&u.DayNumber==s.getDate()&&u.CalendarDay&&(u.CalendarDay.Holiday=!1,u.CalendarDay.WorkDay=!1,u.CalendarDay.Duration=0,u.CalendarDay.DurationHours=0,u.CalendarDay.Deleted=!0,u.CalendarDay.Changed=!0,u.CalendarDay.TypesOfDay=null);n.Changed=!0}n.settings.pendingOperation=!1;n.$$phase||n.$apply()};n.setPeriod=function(){n.loading||n.dateRange.startDate&&angular.isDate(n.dateRange.startDate)&&n.dateRange.endDate&&angular.isDate(n.dateRange.endDate)&&(n.selectedItem.IdC?n.getInstance(n.selectedItem.IdC):n.createCalendarDays())};n.$watch("dateRange.startDate",function(t,i){i!=t&&n.setPeriod()});n.$watch("dateRange.endDate",function(t,i){i!=t&&n.setPeriod()});n.firstPage=function(){n.pageIndex=0;n.refresh()};n.prevPage=function(){n.pageIndex--;n.refresh()};n.nextPage=function(){n.pageIndex++;n.refresh()};n.lastPage=function(){n.pageIndex=n.pageCount-1;n.refresh()};n.headerClick=function(t){t==n.orderByFieldIndex?n.sortOrder=++n.sortOrder%2:(n.sortOrder=0,n.orderByFieldIndex=t);n.refresh()}}]);angular.module("TiimaApp").controller("shiftPlanningController",["$scope","$rootScope","$
1window","$q","$timeout","$uibModal","$http","initPageService","tiimaEnumsService","localizationService","toolsService","shiftPlanningService",function(n,t,i,r,u,f,e,o){n.shiftSettings={shiftSettings:!1,shiftManagement:!1};var s=new Date;n.currentDate=new Date(s.getFullYear(),s.getMonth(),s.getDate(),0,0,0,0);n.Permissions={ShiftPlanningRead:!1,ShiftPlanningWrite:!1,ShiftPlanningDelete:!1,ShiftListRead:!1,ShiftListWrite:!1,ShiftListDelete:!1};o.init("MVC/ShiftPlanning/ShiftPlanning/InitShiftPlanningPage").then(function(t){t&&t.Data&&(n.Permissions.ShiftPlanningRead=t.Data.ShiftPlanningReadPermission,n.Permissions.ShiftPlanningWrite=t.Data.ShiftPlanningWritePermission,n.Permissions.ShiftPlanningDelete=t.Data.ShiftPlanningDeletePermission,n.Permissions.ShiftListRead=t.Data.ShiftListRead,n.Permissions.ShiftListWrite=t.Data.ShiftListWrite,n.Permissions.ShiftListDelete=t.Data.ShiftListDelete)});n.openSettings=function(){};n.editShiftManagement=function(){var t=f.open({templateUrl:"MVC/modals/ShiftPlanning/shiftManagementEditor.html",controller:"shiftManagementEditorModalController",backdrop:"static",windowClass:"shiftManagementEditor",resolve:{permissions:function(){return n.Permissions}}})}}]);angular.module("TiimaApp").controller("travelClaimsController",["$scope","$rootScope","$window","$q","$timeout","$uibModal","$http","initPageService","localizationService","toolsService","tiimaEnumsService","formatService","travelClaimSettingsService","TravelClaim",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v){n.pendingOperation=!1;n.travelClaims=[];n.errorNothingSelected=!1;var y=new Date,p=new Date(y.getFullYear(),y.getMonth(),1,0,0,0,0),w=new Date(y.getFullYear(),y.getMonth()+1,0,0,0,0,0);n.date=y;n.Period={StartDate:p,EndDate:w};n.defaultVehicleCode=null;n.showData={employeeID2:!1,employeeOrganisation:!1,dimensions:!1};n.settingProperty=c.getEnum("TravelClaimSettingProperty");n.Permissions={accept:!1,readOthers:!1,writeOthers:!1,deleteOthers:!1,settingsGeneral:!1,settingsUser:!1};n.pagingInfo={FirstIndex:0,LastIndex:0,TotalCount:0};n.pageCount=0;n.pageIndex=0;n.totalCount=0;n.pageSize=15;n.paginate=!0;n.listWidth=0;n.orderByFieldIndex=0;n.sortOrder=0;n.searchFilter="";n.previousSearchFilter="";n.searchTimeout=null;n.searchPlaceHolderText={Text:""};n.searchTimeout=null;n.status={none:0,accepted:1,notAccepted:2,transferred:3,locked:4,rejected:5,sent:7};n.statusColor=[];n.statusTexts=[];n.approveList=[];n.removeApprovalList=[];n.allChecked={selected:!1};n.dimensions=[];o.init("MVC/Workhours/TravelClaims/InitTravelClaimsPage","TRAVELCLAIMS.HEADER").then(function(t){if(t&&t.Data){if(n.Permissions.accept=t.Data.Accept,n.Permissions.readOthers=t.Data.ReadOthers,n.Permissions.writeOthers=t.Data.WriteOthers,n.Permissions.deleteOthers=t.Data.DeleteOthers,n.Permissions.settingsGeneral=t.Data.SettingsGeneral,n.Permissions.settingsUser=t.Data.SettingsUser,t.Data.Settings&&n.resolveSettings(t.Data.Settings),n.searchPlaceHolderText.Text=n.Permissions.readOthers?s.getText("TRAVELCLAIMS.EMPL_SEARCH_LABEL"):s.getText("TRAVELCLAIMS.SEARCH_LABEL"),n.statusColor[n.status.none]=t.Data.colorNotAccepted,n.statusColor[n.status.accepted]=t.Data.colorAccepted,n.statusColor[n.status.notAccepted]=t.Data.colorNotAccepted,n.statusColor[n.status.transferred]=t.Data.colorTransferred,n.statusColor[n.status.locked]=t.Data.colorLocked,n.statusColor[n.status.rejected]=t.Data.colorRejected,n.statusColor[n.status.sent]=t.Data.colorSent,n.statusTexts[n.status.none]=s.getText("ENUMERATIONS.WORK_HOUR_STATUS_NONE"),n.statusTexts[n.status.accepted]=s.getText("ENUMERATIONS.WORK_HOUR_STATUS_ACCEPTED"),n.statusTexts[n.status.notAccepted]=s.getText("ENUMERATIONS.WORK_HOUR_STATUS_NOTACCEPTED"),n.statusTexts[n.status.transferred]=s.getText("ENUMERATIONS.WORK_HOUR_STATUS_TRANSFERRED"),n.statusTexts[n.status.locked]=s.getText("ENUMERATIONS.WORK_HOUR_STATUS_LOCKED"),n.statusTexts[n.status.rejected]=s.getText("ENUMERATIONS.WORK_HOUR_STATUS_REJECTED"),n.statusTexts[n.status.sent]=s.getText("ENUMERATIONS.WORK_HOUR_STATUS_SENT"),t.Data.defaultVehicle&&t.Data.defaultVehicle[0]){var i=t.Data.defaultVehicle[0];
1n.defaultVehicleCode=i.AllowanceTypeIDText}n.pagingInfo={FirstIndex:1,LastIndex:n.pageSize*(n.pageIndex+1),TotalCount:0};n.createTravelClaimsList(t.Data.TravelClaims);n.pageIndex>0&&(n.pagingInfo.FirstIndex=n.pageIndex*n.pageSize+1);n.pagingInfo.LastIndex=n.pageSize*(n.pageIndex+1);n.pagingInfo.TotalCount=t.Data.TotalRows;n.totalCount=t.Data.TotalRows;n.pageCount=Math.ceil(n.totalCount/n.pageSize);n.pagingInfo.LastIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.LastIndex=n.pagingInfo.TotalCount);n.pagingInfo.FirstIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.FirstIndex=n.pagingInfo.TotalCount);n.calculateListWidth()}(n.Permissions.settingsGeneral||n.Permissions.settingsUser)&&o.setSettingFunction(function(){n.editSettings()})});n.calculateListWidth=function(){if(n.showData.dimensions){n.listWidth=25;n.listWidth+=n.showData.employeeID2?100:0;n.listWidth+=n.Permissions.readOthers?250:0;n.listWidth+=n.showData.employeeOrganisation?130:0;n.listWidth+=130;n.listWidth+=100;n.listWidth+=100;n.listWidth+=100;n.listWidth+=30;n.listWidth+=200;for(var t=0;t<n.dimensions.length;t++)n.dimensions[t].Visible&&(n.listWidth+=130);n.listWidth+=20;n.listWidth+=100}else n.listWidth="100%"};n.resolveSettings=function(t){var r,e,i,u,f;if(angular.isUndefined(t.Properties)){if(t.Settings&&t.Settings.length){for(e=0;e<t.Settings.length;e++)i=t.Settings[e],i&&(i.EnumValue==n.settingProperty.ShowEmployeeID2&&(n.showData.employeeID2=i.Value),i.EnumValue==n.settingProperty.ShowEmployeeOrganisation&&(n.showData.employeeOrganisation=i.Value),i.EnumValue==n.settingProperty.ShowDimensions&&(n.showData.dimensions=i.Value));if(t.Dimensions.length)for(u=0;u<t.Dimensions.length;u++)for(f=0;f<n.dimensions.length;f++)t.Dimensions[u].DimensionIdC==n.dimensions[f].DimensionIdC&&(n.dimensions[f].Visible=t.Dimensions[u].Visible)}}else r=0,r=t.Properties,n.showData.employeeID2=(r&n.settingProperty.ShowEmployeeID2)>0,n.showData.employeeOrganisation=(r&n.settingProperty.ShowEmployeeOrganisation)>0,n.showData.dimensions=(r&n.settingProperty.ShowDimensions)>0,n.dimensions=t.Dimensions?t.Dimensions:n.dimensions;n.calculateListWidth()};n.createTravelClaimsList=function(t){var o,u,i,h,e,r;for(n.travelClaims=[],o=[],u=0;u<t.length;u++){if(i=t[u],h=c.getKey("TravelType",i.TravelTypeID),i.TravelTypeText=s.getText("ENUMERATIONS.M2_TRAVELTYPE_"+h.toUpperCase()),i.StatusColor=n.statusColor[i.Status],i.StatusText=n.statusTexts[i.Status],i.Checked=!1,i.TravelType=i.TravelTypeID,i.EmploymentDatas){var f="",l={},a=0;for(e=0;e<i.EmploymentDatas.length;e++)r=i.EmploymentDatas[e],l[r.OrganisationIdC]||(a++,l[r.OrganisationIdC]=r.OrganisationName+" ("+r.OrganisationCode+")",f.length>0&&(f+=", "),f+=r.OrganisationName+" ("+r.OrganisationCode+")");i.MultipleOrganisations=a>1?!0:!1;i.OrganisationText=f}o.push(i)}n.travelClaims=o};n.$watch("searchFilter",function(t,i){i!=t&&n.search(t)});n.$watch("showData",function(t,i){i!=t&&n.$apply()});n.setPeriod=function(t){var i,r;n.loading||angular.isDate(n.Period.StartDate)&&angular.isDate(n.Period.EndDate)&&(i=h.getDateDifference(n.Period.StartDate,n.Period.EndDate),i.negative&&(t?n.Period.EndDate=n.Period.StartDate:n.Period.StartDate=n.Period.EndDate),r={FirstIndex:0,ItemCount:n.pageSize,OrderByField:n.orderByFieldIndex,StartDate:n.Period.StartDate,EndDate:n.Period.EndDate,SearchFilter:n.searchFilter},n.getData(r))};n.search=function(t,i){n.searchTimeout||(i||(i=120),n.searchTimeout=u(function(){if(n.searchFilter!=n.previousSearchFilter){n.pageIndex=0;n.previousSearchFilter=n.searchFilter;var t={FirstIndex:0,ItemCount:n.pageSize,OrderByField:n.orderByFieldIndex,StartDate:n.Period.StartDate,EndDate:n.Period.EndDate,SearchFilter:n.searchFilter};n.getData(t)}n.searchTimeout=null},i))};n.getData=function(t){v.getTravelClaims(t).then(function(t){t&&t.DataList&&(n.createTravelClaimsList(t.DataList),n.pagingInfo.FirstIndex=n.pageIndex*n.pageSize+1,n.pagingInfo.LastIndex=n.pageSize*(n.pageIndex+1),n.pagingInfo.TotalCount=t.Data.TotalRows,n.totalCount=t.Data.TotalRows,n.pageCount=Math.ceil(n.totalCount/n.pageSize),n.pagingInfo.LastIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.LastIndex=n.pagingInfo.TotalCount),n.pagingInfo.FirstIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.FirstIndex=n.pagingInfo.TotalCount))})};n.refresh=function(){var t,i;n.allChecked.selected=!1;t=0;t=n.pageIndex>0?n.pageIndex*n.pageSize:0;i={FirstIndex:t,ItemCount:n.pageSize,OrderByField:n.orderByFieldIndex,SortOrder:n.sortOrder,StartDate:n.Period.StartDate,EndDate:n.Period.EndDate,SearchFilter:n.searchFilter};n.getData(i);n.calculateListWidth()};n.onRowChecked=function(t){var u,f,i,r;if(t.Checked)u={IdC:t.IdC,Status:t.Status==0?1:0},u.Status==0?n.removeApprovalList.push(u):u.Status==1&&n.approveList.push(u);else if(f=[],t.Status==0){for(i=0;i<n.approveList.length;i++)r=n.approveList[i],r.IdC!=t.IdC&&f.push(r);n.approveList=f}else if(t.Status==1){for(i=0;i<n.removeApprovalList.length;i++)r=n.removeApprovalList[i],r.IdC!=t.IdC&&f.push(r);n.removeApprovalList=f}};n.onAllChecked=function(){var i,t,r;if(n.allChecked.selected){if(n.travelClaims)for(n.approveList=[],n.removeApprovalList=[],i=0;i<n.travelClaims.length;i++)t=n.travelClaims[i],t.PersonalTravelClaimOfCurrentUser||!n.Permissions.writeOthers||!n.Permissions.accept||t.IsProcessed||t.IsAccepted&&t.Status!=0&&t.Status!=2||(r={IdC:t.IdC,Status:t.Status==0?1:0},r.Status==0?n.removeApprovalList.push(r):r.Status==1&&n.approveList.push(r),t.Checked=!0)}else for(n.approveList=[],n.removeApprovalList=[],i=0;i<n.travelClaims.length;i++)t=n.travelClaims[i],t.Checked=!1}
1;n.approveTravelClaims=function(){n.approveList&&n.approveList.length>0?n.saveTravelClaims(n.approveList,1):(n.errorNothingSelected=!0,u(function(){n.errorNothingSelected=!1},3e3))};n.removeApprovalFromTravelClaims=function(){n.removeApprovalList&&n.removeApprovalList.length>0?n.saveTravelClaims(n.removeApprovalList,0):(n.errorNothingSelected=!0,u(function(){n.errorNothingSelected=!1},3e3))};n.saveTravelClaims=function(t){n.pendingOperation=!0;v.saveBatch(t).then(function(t){n.refresh();n.pendingOperation=!1;n.removeApprovalList=[];n.approveList=[];n.allChecked.selected=!1;var i=h.getDataMessage(t,t&&t.Status==1?"GLOBAL.SUCCESS_SAVE":"GLOBAL.ERROR_SAVE");h.showSplash(i,t&&t.Status==1?"okMessage":"errorMessage")})};n.deleteTravelClaim=function(t,i){i.stopPropagation();h.confirm([{pageID:"TRAVELCLAIMS",textID:"CONFIRM_HEADING_DELETE_TC"},{pageID:"TRAVELCLAIMS",textID:"CONFIRM_MESSAGE_DELETE_TC"}],null,function(){n.pendingOperation=!0;var i=angular.copy(t);i.Deleted=!0;i.TravelClaimIdC=t.IdC;v.save(i).then(function(t){t&&n.refresh();var i=h.getDataMessage(t,t?"GLOBAL.SUCCESS_DELETE":"SHIFT_MANAGEMENT.ERROR_DELETE");h.showSplash(i,t?"okMessage":"errorMessage")});n.pendingOperation=!1})};n.addNewTravelClaim=function(t){if(n.Permissions.writeOthers){var i=f.open({templateUrl:"MVC/modals/WorkHours/travelClaimEmployeeSelector.html",controller:"travelClaimEmployeeSelectorModalController",backdrop:"static",windowClass:"travelClaimEmployeeSelector"});i.result.then(function(i){n.Permissions.writeOthers&&i.ok?n.openTravelClaimEditor(i.employeeIdC,i.employeeName,t):n.refresh()})}else n.openTravelClaimEditor(null,null,t)};n.openTravelClaimEditor=function(t,i,r){var u=f.open({templateUrl:"MVC/modals/WorkHours/travelClaimEditor.html",controller:"travelClaimEditorModalController",backdrop:"static",windowClass:"travelClaimEditor",resolve:{viewOnly:function(){return!1},option:function(){return r},travelClaimIdC:function(){return null},employeeName:function(){return i},employeeIdC:function(){return t},settings:function(){return n.showData},defaultVehicleCode:function(){return n.defaultVehicleCode},dimensions:function(){return n.dimensions}}});u.result.then(function(){n.refresh()})};n.viewTravelClaim=function(t){var i=!1,r,u;i=t.PersonalTravelClaimOfCurrentUser?!t.Status==1&&!t.IsAccepted&&!t.IsProcessed?!0:!1:n.Permissions.writeOthers&&!t.Status==1&&!t.IsAccepted&&!t.IsProcessed?!0:!1;r=t.TravelTypeID?t.TravelTypeID:3;u=f.open({templateUrl:"MVC/modals/WorkHours/travelClaimEditor.html",controller:"travelClaimEditorModalController",backdrop:"static",windowClass:"travelClaimEditor",resolve:{viewOnly:function(){return!i},option:function(){return r},travelClaimIdC:function(){return t.IdC},employeeName:function(){return null},employeeIdC:function(){return null},settings:function(){return n.showData},defaultVehicleCode:function(){return n.defaultVehicleCode},dimensions:function(){return n.dimensions}}});u.result.then(function(){n.refresh()})};n.editSettings=function(){var t=r.defer(),i=f.open({templateUrl:"MVC/Modals/Workhours/travelClaimSettings.html",controller:"travelClaimSettingsController",backdrop:"static",windowClass:"travelClaimSettingsEditor",resolve:{date:function(){return n.date?n.date:new Date},permissions:function(){return{user:n.Permissions.settingsUser,general:n.Permissions.settingsGeneral}}}});return i.result.then(function(t){t&&(n.resolveSettings(t),n.modalInstance=null,n.pendingOperation=!1)}),t.promise};n.settingProperty=c.getEnum("TravelClaimSettingProperty");n.firstPage=function(){n.pageIndex=0;n.refresh()};n.prevPage=function(){n.pageIndex--;n.refresh()};n.nextPage=function(){n.pageIndex++;n.refresh()};n.lastPage=function(){n.pageIndex=n.pageCount-1;n.refresh()};n.headerClick=function(t){t==n.orderByFieldIndex?n.sortOrder=++n.sortOrder%2:(n.sortOrder=0,n.orderByFieldIndex=t);n.refresh()}}]);angular.module("TiimaApp").controller("configController",["$scope","$http","$q","$timeout","$uibModal","initPageService","localizationService","toolsService","Employee","Config",function(n,t,i,r,u,f,e,o,s){n.loading=!0;n.settings={phoneNumber:null};n.allowMobile=!1;n.showImage=!1;n.secretConfirmed=!1;n.isForced2Fa=!1;n.show2FaSection=!1;n.use2Fa=!1;n.useGoogle2Fa=!1;n.google2FaInitiallyEnabled=!1;n.showGenerateNewSecret=!1;f.init("MVC/Config/Config/InitConfigPage","CONFIG.2FA_SETTINGS_HEADING").then(function(t){if(t&&t.Data){var i=t.Data.Mode,r=t.Data.Use2FAType,u=r===2;n.show2FaSection=r!==0;n.isForced2Fa=u;n.allowMobile=t.Data.AllowMobile;n.loading=!1;n.settings.phoneNumber=t.Data.PhoneNumber;n.use2Fa=i===1||i===2||u;n.useGoogle2Fa=i===2;n.google2FaInitiallyEnabled=n.useGoogle2Fa;n.secretConfirmed=n.useGoogle2Fa}});n.generateSecretForMobile=function(n){var t=i.defer();n?t.resolve():o.confirm([{pageID:"CONFIG",textID:"CONFIRM_LABEL_GENERATE_NEW_SECRET"},{pageID:"CONFIG",textID:"CONFIRM_GENERATE_NEW_SECRET"}],null,function(){t.resolve()},function(){t.reject()});t.promise.then(function(){var n=u.open({templateUrl:"MVC/Modals/Config/configMobileQRCodeModal.html",controller:"configMobileQRCodeModalController",backdrop:"static",windowClass:"configMobileQRCodeEditor"});n.result.then(function(){})},function(){})};n.generateNewSecret=function(){n.openConfirmSecretWindow()};n.use2FaChange=function(){n.forced2Fa&&(n.use2Fa=!0)};n.useGAuth2faClick=function(){n.useGoogle2Fa?n.useGoogle2Fa=!1:n.secretConfirmed?n.useGoogle2Fa=!0:n.openConfirmSecretWindow()};n.openConfirmSecretWindow=function(){var t=u.open({templateUrl:"MVC/Modals/Config/confirmSecretModal.html",controller:"confirmSecretModalController",backdrop:"static"});t.result.then(function(t){n.secretConfirmed=t;n.useGoogle2Fa=!0;n.save()},function(){n.secretConfirmed=!1})};n.getMode=function(){return n.use2Fa?n.useGoogle2Fa?2:1:n.forced2Fa?1:0};n.save=function(){var t=n.getMode();s.setUse2FAForCurrent({mode:t,phoneNumber:n.settings.phoneNumber}).then(function(n){var t=n.Status!="1",i="";i=t?o.getDataMessage(n,"GLOBAL.ERROR_SAVE"):o.getDataMessage(n,"GLOBAL.SUCCESS_SAVE");o.showSplash(i,t?"errorMessage":"okMessage")})}}]);angular.module("TiimaApp").controller("bulletinManageController",["$scope","$rootScope","$
1window","$q","$timeout","$uibModal","$http","initPageService","localizationService","toolsService","tiimaEnumsService","formatService","Bulletin",function(n,t,i,r,u,f,e,o,s,h,c,l,a){n.pendingOperation=!1;n.bulletins=[];var v=new Date,y=new Date(v.getFullYear(),v.getMonth(),1,0,0,0,0),p=new Date(v.getFullYear(),v.getMonth()+1,0,0,0,0,0);n.date=v;n.Period={StartDate:y,EndDate:p};n.typeFilters={allSelected:!0,bulletins:!0,messages:!0,templates:!0};n.allTypeFiltersSelected=!0;n.dateSearchType=0;n.Permissions={viewOnly:!1,write:!1,remove:!1};n.pagingInfo={FirstIndex:0,LastIndex:0,TotalCount:0};n.pageCount=0;n.pageIndex=0;n.totalCount=0;n.pageSize=15;n.paginate=!0;n.orderByFieldIndex=3;n.sortOrder=1;n.searchFilter="";n.contentSearchFilter="";n.personSearchFilter="";n.previousContentSearchFilter="";n.previousPersonSearchFilter="";n.searchTimeout=null;n.typeFilterPopover={visible:!1};n.toggleTypeFilterPopover=function(t){n.typeFilterPopover.visible=!n.typeFilterPopover.visible;var i=null;i=function(t){var r=$(".typeFilterPopover");r.get(0)!=t.target&&($.contains(r.get(0),t.target)||(n.typeFilterPopover.visible&&(n.typeFilterPopover.visible=!1),$("body").unbind("click",i),n.$apply()))};n.typeFilterPopover.visible&&$("body").bind("click",i);t.stopPropagation()};o.init("MVC/Administrating/BulletinManage/InitBulletinPage","BULLETIN_MANAGE.BULLETIN_MANAGE_TITLE").then(function(t){t&&t.Data&&(n.bulletins=t.Data.Bulletins,n.Permissions.viewOnly=t.Data.ReadPermission,n.Permissions.write=t.Data.WritePermission,n.Permissions.remove=t.Data.DeletePermission,n.pagingInfo={FirstIndex:1,LastIndex:n.pageSize*(n.pageIndex+1),TotalCount:0},n.pageIndex>0&&(n.pagingInfo.FirstIndex=n.pageIndex*n.pageSize+1),n.pagingInfo.LastIndex=n.pageSize*(n.pageIndex+1),n.pagingInfo.TotalCount=t.Data.TotalRows,n.totalCount=t.Data.TotalRows,n.pageCount=Math.ceil(n.totalCount/n.pageSize),n.pagingInfo.LastIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.LastIndex=n.pagingInfo.TotalCount),n.pagingInfo.FirstIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.FirstIndex=n.pagingInfo.TotalCount))});n.onDateChanged=function(t){if(n.Period.StartDate&&n.Period.EndDate&&angular.isDate(n.Period.StartDate)&&angular.isDate(n.Period.EndDate)){var i=h.getDateDifference(n.Period.StartDate,n.Period.EndDate);i&&i.negative&&(t?n.Period.EndDate=n.Period.StartDate:n.Period.StartDate=n.Period.EndDate)}n.refresh()};n.refresh=function(){n.pagingInfo={FirstIndex:n.pageIndex*n.pageSize+1,LastIndex:n.pageSize*(n.pageIndex+1),TotalCount:n.totalCount};var t={StartDate:n.Period.StartDate,EndDate:n.Period.EndDate,FirstIndex:n.pagingInfo.FirstIndex-1,ItemCount:n.pageSize,OrderByField:n.orderByFieldIndex,SortOrder:n.sortOrder,LanguageIdC:n.languageIdC,ContentSearchFilter:n.contentSearchFilter,PersonSearchFilter:n.personSearchFilter,DateSearchType:n.dateSearchType,UserBulletin:n.typeFilters.bulletins?1:null,MessageBulletin:n.typeFilters.messages?1:null,TemplateBulletin:n.typeFilters.templates?1:null};n.getData(t)};n.getData=function(t){n.loading=!0;a.getBulletins(t).then(function(t){t&&t.DataList&&(n.bulletins=t.DataList,n.pagingInfo={FirstIndex:n.pageIndex*n.pageSize+1,LastIndex:n.pageSize*(n.pageIndex+1),TotalCount:t.Data.TotalRows},n.totalCount=t.Data.TotalRows,n.pageCount=Math.ceil(n.totalCount/n.pageSize),n.pagingInfo.LastIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.LastIndex=n.pagingInfo.TotalCount),n.pagingInfo.FirstIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.FirstIndex=n.pagingInfo.TotalCount),n.loading=!1)})};n.deleteBulletin=function(t,i){i.stopPropagation();h.confirm([{pageID:"BULLETIN_MANAGE",textID:"CONFIRM_HEADING"},{pageID:"BULLETIN_MANAGE",textID:"CONFIRM_CONTENT"}],null,function(){n.pendingOperation=!0;var i=angular.copy(t);i.Deleted=!0;a.saveBulletin(i).then(function(t){t&&n.refresh();var i=h.getDataMessage(t,t&&t.Result>0?"GLOBAL.SUCCESS_DELETE":"BULLETIN_MANAGE.ERROR_DELETE");h.showSplash(i,t&&t.Result>0?"okMessage":"errorMessage")});n.pendingOperation=!1})};n.selectOrClearAll=function(){n.typeFilters.allSelected?(n.typeFilters.bulletins=!0,n.typeFilters.messages=!0,n.typeFilters.templates=!0,n.allTypeFiltersSelected=!0):(n.typeFilters.bulletins=!1,n.typeFilters.messages=!1,n.typeFilters.templates=!1,n.allTypeFiltersSelected=!1);n.refresh()};n.selectTypeFilter=function(){n.typeFilters.bulletins&&n.typeFilters.messages&&n.typeFilters.templates?(n.typeFilters.allSelected=!0,n.allTypeFiltersSelected=!0):(n.typeFilters.allSelected=!1,n.allTypeFiltersSelected=!1);n.refresh()};n.viewBulletin=function(t,i){var r=null,u;t&&(r=t.IdC);u=f.open({templateUrl:"MVC/modals/Administrating/bulletinManageEditorModal.html",controller:"bulletinManageEditorModalController",backdrop:"static",windowClass:"bulletinManageEditor",resolve:{bulletinIdC:function(){return r},newTemplate:function(){return i},permissions:function(){return n.Permissions}}});u.result.then(function(){n.refresh()})};n.firstPage=function(){n.pageIndex=0;n.refresh()};n.prevPage=function(){n.pageIndex--;n.refresh()};n.nextPage=function(){n.pageIndex++;n.refresh()};n.lastPage=function(){n.pageIndex=n.pageCount-1;n.refresh()};n.headerClick=function(t){t==n.orderByFieldIndex?n.sortOrder=++n.sortOrder%2:(n.sortOrder=0,n.orderByFieldIndex=t);n.refresh()};n.$watch("contentSearchFilter",function(t,i){t!=i&&n.search(null,i)});n.$watch("personSearchFilter",function(t,i){t!=i&&n.search(i,null)});n.$watch("dateSearchType",function(t,i){t!=i&&(n.pageIndex=0,n.refresh())});n.search=function(t,i,r){n.searchTimeout||(r||(r=120),n.searchTimeout=u(function(){var r=!1;t&&n.personSearchFilter!=n.previousPersonSearchFilter&&(n.previousPersonSearchFilter=n.personSearchFilter,r=!0);i&&n.contentSearchFilter!=n.previousContentSearchFilter&&(n.previousContentSearchFilter=n.contentSearchFilter,r=!0);r&&(n.pageIndex=0,n.refresh());n.searchTimeout=null},r))}}]);angular.module("TiimaApp").controller("dimensionItemBarcodePrintController",["$scope","$rootScope","$q","$timeout","$http","$window","initPageService","localizationService","toolsService","datasourceService","Dimension","DimensionItem",function(n,t,i,r,u,f,e,o,s,h,c,l){n.loading=!1;n.printablesLoading=!1;n.selected={};n.selected.dimension={};n.dimensionItems=[];n.printableBarCodes=null;n.parentsOfDimensionIdC=null;n.selected.selectedDimensionItems=[];n.selectedParentIdC=null;n.selectedParentPeriod={StartDate:null,EndDate:null};
1n.selectedParentDimensions=o.getText("DIM_ITEM_BC_PRINT.PARENT_SELECTORS");n.dimensionItemPathStyles=[];var a=new Date,v=new Date(a.getFullYear(),a.getMonth(),a.getDate(),0,0,0,0);n.dateRange={startDate:v,endDate:v};n.dimensionItemHeadingFormat=o.getText("GLOBAL.AUTOCOMPLETE_DEFAULT_BROWSING_TEXT_FORMAT");n.dimensionItemTemplate="{{Code}} {{DimensionItemName}}";n.dimensionItemSearchResultTemplate="<div class='listcellCode'>{{Code}}<\/div><div class='listcellName'>{{DimensionItemName}}<\/div>";n.dimItemTemplate="{{Code}} {{DimensionItemName}}{{Name}}";n.dimItemSearchResultTemplate="<div class='listcellCode'>{{Code}}<\/div><div class='listcellName'>{{DimensionItemName}}<\/div>";n.dimensionHeadingFormat=o.getText("GLOBAL.AUTOCOMPLETE_DEFAULT_BROWSING_TEXT_FORMAT");n.dimensionTemplate="{{Code}} {{DimensionName}}";n.dimensionSearchResultTemplate="<div class='listcellCode'>{{Code}}<\/div><div class='listcellName'>{{DimensionName}}<\/div>";n.parentSelectorPopover={visible:!1};n.pagingInfo={FirstIndex:0,LastIndex:0,TotalCount:0};n.pageCount=0;n.pageIndex=0;n.totalCount=0;n.pageSize=13;n.paginate=!0;n.orderByFieldIndex=1;n.sortOrder=0;n.searchFilter="";n.previousSearchFilter="";n.searchTimeout=null;n.dataSources={dimensionDataSource:h.createDatasource({method:function(t){return n.getDimensions(t)}})};n.listFields=[{dataType:1,heading:"LIST_FIELDS.CODE",name:"Code","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,heading:"LIST_FIELDS.NAME",name:"Name",localize:!0,"class":"listcellName",headingClass:"listcellName"},];e.init("MVC/Administrating/DimensionItemBarcodePrint/InitDimensionItemBarcodePrintPage","DIM_ITEM_BC_PRINT.HEADER").then(function(n){n&&n.Data});n.toggleParentSelectorPopover=function(t){n.parentSelectorPopover.visible=!n.parentSelectorPopover.visible;var i=null;i=function(t){if(!$(t.target).parent(".ui-autocomplete").length&&!$(t.target).parent(".listrow").length){var r=$(".parentSelectorPopover");r.get(0)!=t.target&&($.contains(r.get(0),t.target)||(n.parentSelectorPopover.visible&&(n.parentSelectorPopover.visible=!1),$("body").unbind("click",i),n.$apply()))}};n.parentSelectorPopover.visible&&$("body").bind("click",i);t.stopPropagation()};n.getDimensions=function(n){return n.orderByField||(n.orderByField=1),c.getAll(n)};n.getParentDimensionItems=function(n){return n.orderByField||(n.orderByField=1),l.getAll(n)};n.onDimensionSelected=function(){n.parentSelectorPopover.visible=!1;n.parentsOfDimensionIdC=n.selected&&n.selected.dimension&&n.selected.dimension.IdC?n.selected.dimension.IdC:null;n.selectedParentIdC=null;n.selectedParentPeriod={StartDate:null,EndDate:null};n.selected.dimension.ParentIdC&&(n.selected.selectedDimensionItems=[]);n.selected.dimension.ParentIdC||n.refreshDimensionItems()};n.$watch("selected.selectedDimensionItems",function(){var i,t;if(n.selectedParentIdC=null,n.selectedParentDimensions="",n.selected.selectedDimensionItems&&n.selected.selectedDimensionItems.length>0)for(i=0;i<n.selected.selectedDimensionItems.length;i++)t=n.selected.selectedDimensionItems[i],n.selectedParentDimensions.length>0&&(n.selectedParentDimensions+=" / "),n.selectedParentDimensions+=t.DimensionItemName+" ("+t.DimensionItemCode+")",t&&t.DimensionIdC==n.selected.dimension.ParentIdC&&(n.selectedParentIdC=t.DimensionItemIdC,n.selectedParentPeriod.StartDate=t.StartDate,n.selectedParentPeriod.EndDate=t.EndDate);n.selectedParentDimensions.length==0&&(n.selectedParentDimensions=o.getText("DIM_ITEM_BC_PRINT.PARENT_SELECTORS"));n.pageIndex=0;n.pagingInfo={FirstIndex:1,LastIndex:n.pageSize,TotalCount:0};n.refreshDimensionItems()});n.checkParentValidity=function(){var r,u,f,t,i;if(n.selected.selectedDimensionItems&&n.selected.selectedDimensionItems.length>0){for(r=!0,u=[],f=0;f<n.selected.selectedDimensionItems.length;f++)t=angular.copy(n.selected.selectedDimensionItems[f]),r&&(t.StartDate&&angular.isDate(t.StartDate)&&n.dateRange.endDate&&angular.isDate(n.dateRange.endDate)&&(i=s.getDateDifference(t.StartDate,n.dateRange.endDate),i&&i.negative&&(r=!1,n.selectedParentIdC&&t.DimensionItemIdC==n.selectedParentIdC&&(n.selectedParentIdC=null,n.selectedParentPeriod={StartDate:null,EndDate:null}))),t.EndDate&&angular.isDate(t.EndDate)&&n.dateRange.startDate&&angular.isDate(n.dateRange.startDate)&&(i=s.getDateDifference(n.dateRange.startDate,t.EndDate),i&&i.negative&&(r=!1,n.selectedParentIdC&&t.DimensionItemIdC==n.selectedParentIdC&&(n.selectedParentIdC=null,n.selectedParentPeriod={StartDate:null,EndDate:null}))),r&&u.push(t));n.selectedDimensionItems=u.length>0?u:null}};n.$watch("dateRange.startDate",function(){if(n.dateRange.startDate&&angular.isDate(n.dateRange.startDate)){var t=s.getDateDifference(n.dateRange.startDate,n.dateRange.endDate);t&&t.negative?n.dateRange.endDate=n.dateRange.startDate:n.updateAfterDateRangeChanged()}else n.dateRange.startDate=null,n.updateAfterDateRangeChanged()});n.$watch("dateRange.endDate",function(){if(n.dateRange.endDate&&angular.isDate(n.dateRange.endDate)){var t=s.getDateDifference(n.dateRange.startDate,n.dateRange.endDate);t&&t.negative?n.dateRange.startDate=n.dateRange.endDate:n.updateAfterDateRangeChanged()}else n.dateRange.endDate=null,n.updateAfterDateRangeChanged()});n.updateAfterDateRangeChanged=function(){n.checkParentValidity();n.pageIndex=0;n.pagingInfo={FirstIndex:1,LastIndex:n.pageSize,TotalCount:0};n.refreshDimensionItems()};n.refreshDimensionItems=function(){var t,i;n.loading=!0;t=0;t=n.pageIndex>0?n.pageIndex*n.pageSize:0;n.selected.dimension&&n.selected.dimension.IdC&&(i={FirstIndex:t,ItemCount:n.pageSize,OrderByField:n.orderByFieldIndex,SortOrder:n.sortOrder,StartDate:n.dateRange.startDate,EndDate:n.dateRange.endDate,DimensionIdC:n.selected.dimension&&n.selected.dimension.IdC?n.selected.dimension.IdC:null,GetParentPath:!0,ParentIdC:n.selectedParentIdC?n.selectedParentIdC:null},n.getDimensionItems(i))};n.getDimensionItems=function(t){n.loading=!0;l.getAllWithUrlIdC(t).then(function(t){t&&t.DataList&&(n.dimensionItems=t.DataList,n.createParentPath(),n.pagingInfo={FirstIndex:n.pageIndex*n.pageSize+1,LastIndex:n.pageSize*(n.pageIndex+1),TotalCount:t.TotalRows},n.totalCount=t.TotalRows,n.pageCount=Math.ceil(n.totalCount/n.pageSize),n.pagingInfo.LastIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.LastIndex=n.pagingInfo.TotalCount),n.pagingInfo.FirstIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.FirstIndex=n.pagingInfo.TotalCount),n.loading=!1)})};n.createParentPath=function(){var r,i;if(n.dimensionItems&&n.dimensionItems.length>0)for(r=0;r<n.dimensionItems.length;r++){var t=n.dimensionItems[r],u="",f="";if(t&&t.Parents)for(i=0;i<t.Parents.length;i++)t.Parents[i].Code&&(u+=t.Parents[i].Name+" ("+t.Parents[i].Code+")",i<t.Parents.length-1&&(u+=" / "),f+=t.Parents[i].Name+" ("+t.Parents[i].Code+") / ");f+=o.getCurrentLanguageText(t.Texts,"Name")+" ("+t.Code+")";t.parentPath=u;t.printPath=f}};n.$watch("dimensionItems",function(){n.dimensionItemPathStyles=[];r(function(){var t,i;if(n.dimensionItems&&n.dimensionItems.length>0&&n.selected.dimension&&n.selected.dimension.IdC&&n.selected.dimension.ParentIdC&&(t=$(".longNameField.dimensionItemNameField"),t&&t.length>0&&n.dimensionItems.length==t.length))for(i=0;i<t.length;i++){var r=t[i],f=$(r).width(),e=$(r).children(".parentNameDiv"),o=e[0],s=$(o).width(),h=$(r).children(".parentPathDiv"),c=h[0],l=$(c).width(),u=f-s-5;l>u&&(n.dimensionItemPathStyles[i]={width:u+"px"})}n.loading=!1},300)});n.removeAll=function(){n.printableBarCodes=null};n.deleteBarCodeItem=function(t){var r,i,u;if(n.loading=!0,r=[],n.printableBarCodes&&n.printableBarCodes.length>0)if(n.printableBarCodes.length>1){for(i=0;i<n.printableBarCodes.length;i++)u=n.printableBarCodes[i],u.IdC!=t.IdC&&r.push(u);n.printableBarCodes=r}else n.printableBarCodes.length==1&&(n.printableBarCodes=null);n.loading=!1};n.addAll=function(){var t,i;if(n.dimensionItems&&n.dimensionItems.length>0)for(t=0;t<n.dimensionItems.length;t++)i=n.dimensionItems[t],n.addInstance(i)};n.addInstance=function(t){var u,i,f,r;
1if(n.printablesLoading=!0,t&&t.UrlIdC){if(u=!0,n.printableBarCodes)for(i=0;i<n.printableBarCodes.length;i++)r=n.printableBarCodes[i],r.IdC==t.IdC&&(u=!1);else n.printableBarCodes=[];u&&(f=(n.printableBarCodes.length+1)%7==0,r={IdC:t.IdC,UrlText:"administrating/BarCode.ashx?id="+t.UrlIdC,Texts:t.Texts,DimensionPath:t.printPath,Code:t.Code,AddPageBreak:f?!0:!1},n.printableBarCodes.push(r))}n.printablesLoading=!1};n.printBarCodes=function(){f.print()};n.firstPage=function(){n.loading=!0;n.pageIndex=0;n.refreshDimensionItems()};n.prevPage=function(){n.loading=!0;n.pageIndex--;n.refreshDimensionItems()};n.nextPage=function(){n.loading=!0;n.pageIndex++;n.refreshDimensionItems()};n.lastPage=function(){n.loading=!0;n.pageIndex=n.pageCount-1;n.refreshDimensionItems()};n.headerClick=function(t){n.loading=!0;t==n.orderByFieldIndex?n.sortOrder=++n.sortOrder%2:(n.sortOrder=0,n.orderByFieldIndex=t);n.refreshDimensionItems()}}]);angular.module("TiimaApp").controller("worksiteAnnouncementController",["$scope","$rootScope","$window","$q","$timeout","$uibModal","$http","initPageService","localizationService","toolsService","tiimaEnumsService","formatService","WorksiteAnnouncement",function(n,t,i,r,u,f,e,o,s,h,c,l,a){n.pendingOperation=!1;n.worksiteAnnouncements=[];n.defaultDimension=null;n.selectedPeriod=null;n.Periods=[];n.pagingInfo={FirstIndex:0,LastIndex:0,TotalCount:0};
1n.Period={StartDate:null,EndDate:null};n.pageCount=0;n.pageIndex=0;n.totalCount=0;n.pageSize=15;n.paginate=!0;n.listWidth=0;n.orderByFieldIndex=0;n.sortOrder=1;n.searchFilter="";n.previousSearchFilter="";n.searchTimeout=null;o.init("MVC/Administrating/WorksiteAnnouncement/InitWorksiteAnnouncementPage","WORKSITE_ANNOUNCEMENT.HEADER").then(function(t){t&&t.Data&&(n.defaultDimension=t.Data.DefaultDimension,n.totalCount=t.Data.TotalRows,n.createWorksiteAnnouncementList(t.Data.WorksiteAnnouncements),n.Periods=h.createMonthPeriods(new Date,13),n.selectedPeriod=n.Periods[1],n.Period.StartDate=n.selectedPeriod.Value,n.Period.EndDate=new Date(n.selectedPeriod.Value.getFullYear(),n.selectedPeriod.Value.getMonth()+1,0,0,0,0))});n.createWorksiteAnnouncementList=function(t){var u,i,o,h,f,e,r;if(n.worksiteAnnouncements=[],t){for(u=0;u<t.length;u++){if(i=t[u],o=c.getKey("WorksiteAnnouncementType",i.AnnouncementType),i.AnnouncementTypeText=s.getText("ENUMERATIONS.WS_ANNOUNCEMENT_TYPE_"+o.toUpperCase()),h=c.getKey("WorksiteAnnouncementStatus",i.Status),i.StatusText=s.getText("ENUMERATIONS.WS_ANNOUNCEMENT_STATUS_"+h.toUpperCase()),i.FileLink="MVC/Approving/WorksiteAnnouncement/GetFile/"+i.CRParameter,f="",e="",i.Worksites){for(r=0;r<i.Worksites.length;r++)r>0&&(f+=", "),f+=i.Worksites[r].WorksiteName;e=i.Worksites.length==1?i.Worksites[0].WorksiteName:s.getText("WORKSITE_ANNOUNCEMENT.WORKSITES")}i.WorksiteText=e;i.WorksiteNames=f;n.worksiteAnnouncements.push(i)}n.pagingInfo={FirstIndex:1,LastIndex:n.pageSize*(n.pageIndex+1),TotalCount:0};n.pageIndex>0&&(n.pagingInfo.FirstIndex=n.pageIndex*n.pageSize+1);n.pagingInfo.LastIndex=n.pageSize*(n.pageIndex+1);n.pagingInfo.TotalCount=n.totalCount;n.pageCount=Math.ceil(n.totalCount/n.pageSize);n.pagingInfo.LastIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.LastIndex=n.pagingInfo.TotalCount);n.pagingInfo.FirstIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.FirstIndex=n.pagingInfo.TotalCount);n.loading=!1}};n.openWorksiteAnnouncementPopup=function(t){var i=null,r;t&&t.IdC&&(i=t.IdC);r=f.open({templateUrl:"MVC/modals/Approving/worksiteAnnouncementEditor.html",controller:"worksiteAnnouncementEditorController",backdrop:"static",windowClass:"worksiteAnnouncementEditor",resolve:{worksiteAnnouncementIdC:function(){return i},defaultDimensionIdC:function(){return n.defaultDimension?n.defaultDimension.IdC:null}}});r.result.then(function(){n.refresh()})};n.onFileSelected=function(n){n.stopPropagation()};n.getPeriod=function(t){n.loading||angular.isDate(t.Value)&&(n.selectedPeriod=t,n.Period.StartDate=t.Value,n.Period.EndDate=new Date(t.Value.getFullYear(),t.Value.getMonth()+1,0,0,0,0),n.refresh())};n.getData=function(t){n.loading=!0;a.getWorksiteAnnouncements(t).then(function(t){t&&t.DataList&&(n.totalCount=t.TotalRows,n.createWorksiteAnnouncementList(t.DataList))})};n.refresh=function(){var t=0,i;t=n.pageIndex>0?n.pageIndex*n.pageSize:0;i={FirstIndex:t,ItemCount:n.pageSize,OrderByField:n.orderByFieldIndex,SortOrder:n.sortOrder,StartDate:n.Period.StartDate,EndDate:n.Period.EndDate,SearchFilter:n.searchFilter};n.getData(i)};n.$watch("searchFilter",function(t,i){i!=t&&n.search(t)});n.search=function(t,i){n.searchTimeout||(i||(i=120),n.searchTimeout=u(function(){if(n.searchFilter!=n.previousSearchFilter){n.pageIndex=0;n.previousSearchFilter=n.searchFilter;var t={FirstIndex:0,ItemCount:n.pageSize,OrderByField:n.orderByFieldIndex,StartDate:n.Period.StartDate,EndDate:n.Period.EndDate,SearchFilter:n.searchFilter};n.getData(t)}n.searchTimeout=null},i))};n.headerClick=function(t){t==n.orderByFieldIndex?n.sortOrder=++n.sortOrder%2:(n.sortOrder=0,n.orderByFieldIndex=t);n.refresh()};n.firstPage=function(){n.pageIndex=0;n.refresh()};n.prevPage=function(){n.pageIndex--;n.refresh()};n.nextPage=function(){n.pageIndex++;n.refresh()};n.lastPage=function(){n.pageIndex=n.pageCount-1;n.refresh()}}]);angular.module("TiimaApp").controller("absenceCertificateController",["$scope","$rootScope","$window","$q","$timeout","$uibModal","$http","$routeParams","initPageService","localizationService","toolsService","tiimaEnumsService","formatService","navigationService","datasourceService","PaymentGroup","AbsenceCertificate",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w){n.absenceQueryId=o.queryId;var b=new Date,k=new Date(b.getFullYear(),b.getMonth()-2,1,0,0,0,0),d=new Date(b.getFullYear(),b.getMonth()+1,0,0,0,0,0);n.pageSize=50;n.selectedQueryParameters={StartDate:k,EndDate:d,PaymentGroup:null,CertificateStatus:0,SearchCounter:0};n.listFields=[{dataType:1,heading:"LIST_FIELDS.EMPLOYEE",name:"EmployeeNameAndCode","class":"listcellSearchableName",headingClass:"listcellSearchableName",search:!0,searchCriteriaFieldName:"SearchFilter"},{dataType:1,heading:"LIST_FIELDS.ABSENCE",name:"AbsenceName","class":"listcellName",headingClass:"listcellName"},{dataType:2,heading:"LIST_FIELDS.START_DATE",name:"StartDate","class":"listcellDate",headingClass:"listcellDate"},{dataType:2,heading:"LIST_FIELDS.END_DATE",name:"EndDate","class":"listcellDate",headingClass:"listcellDate"},{dataType:0,heading:"LIST_FIELDS.CALENDAR_DAYS",name:"AbsenceDuration","class":"listcellNumber",headingClass:"listcellNumber",disableSort:!0},{dataType:4,heading:"LIST_FIELDS.ABSENCE_CERTIFICATE",name:"AbsenceCertificate","class":"listcellNameShort",headingClass:"listcellNameShort",disableSort:!0,format:function(n){return h.getText("ABSENCE_CERTIFICATE."+(n?"DELIVERED":"NOT_DELIVERED"))}},{dataType:4,heading:"",name:"AbsenceCertificate","class":"listcellNameShort",headingClass:"listcellNameShort",disableSort:!0,link:!0,format:function(n){return h.getText("ABSENCE_CERTIFICATE."+(n?"MARK_AS_NOT_DELIVERED":"MARK_AS_DELIVERED"))},linkCallback:function(t){return n.markAsDelivered(t)}}];n.paymentGroupListFields=[{dataType:1,heading:"LIST_FIELDS.CODE",name:"Code","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,"default":!0,heading:"LIST_FIELDS.NAME",name:"Name",localize:!0,"class":"listcellNameLong",headingClass:"listcellNameLong"}];n.paymentGroupTemplate="{{Code}} {{localized:Name}}";n.paymentGroupListTemplate="{{Code}} {{localized:Name}}";n.dataSources={absenceDataSource:y.createDatasource({method:function(n){var t=r.defer();return n.startDate&&n.endDate&&n.paymentGroupIdC?w.getAll(n).then(function(n){t.resolve(n)}):t.resolve(null),t.promise}}),paymentGroupDatasource:y.createDatasource({method:function(t){t.StartDate=n.selectedQueryParameters.StartDate;t.EndDate=n.selectedQueryParameters.EndDate;var i=r.defer();return p.getAll(t).then(function(n){i.resolve(n)}),i.promise}})};s.init("MVC/Approving/AbsenceCertificate/InitAbsenceCertificatePage","ABSENCE_CERTIFICATE.HEADER").then(function(n){n&&n.Data});n.workflowTabClicked=function(t){t!==n.selectedQueryParameters.CertificateStatus&&(n.selectedQueryParameters.CertificateStatus=t,n.refresh())};n.refresh=function(){n.dataSources.absenceDataSource.datasourceArgs={PaymentGroupIdC:n.selectedQueryParameters.PaymentGroup?n.selectedQueryParameters.PaymentGroup.IdC:null,StartDate:n.selectedQueryParameters.StartDate,EndDate:n.selectedQueryParameters.EndDate,CertificateStatus:n.selectedQueryParameters.CertificateStatus,SearchCounter:n.selectedQueryParameters.SearchCounter++}};n.markAsDelivered=function(t){var i=r.defer();return w.markAsDelivered(t).then(function(t){i.resolve(t);n.refresh()}),i.promise};n.goBack=function(){v.gotoPage("approving/absence.aspx?queryId="+n.absenceQueryId)}}]);angular.module("TiimaApp").controller("aboutPageController",["$scope","initPageService",function(n,t){t.init("MVC/Help/AboutPage/InitAboutPage","MENU.ABOUT_PAGE").then(function(){})}]);angular.module("TiimaApp").controller("baseModalController",["$scope","$q","$uibModalInstance","validationService",function(n,t,i,r){var u=null;i.opened.then(function(){var t=$(".modal.ng-scope");t.each(function(){var t=angular.element(this).scope();if(t.$id===n.$id)return u=this,!1});u&&r.initModal(u)}
1);i.result.then(function(){r.closeModal(u)});n.exit=function(n,u){var f=t.defer();!u&&r.isPageDirty()?toolsService.pageDirtyConfirmation().then(function(){f.resolve()},function(){f.reject()}):f.resolve();f.promise.then(function(){i.close(n)})}}]);angular.module("TiimaApp").controller("modalSessionNotificationController",["$rootScope","$scope","$uibModalInstance","$window","$interval","refreshSessionService","settingService","localizationService","navigationService",function(n,t,i,r,u,f,e,o,s){t.sessionTimeoutCounter=5;t.sessionInfoMessage="GLOBAL.SESSION_ENDING_WARNING";t.sessionTimedOut=!1;t.sessionTimeoutHandle=u(function(){t.sessionTimeoutCounter--;t.checkSessionTimeout()},6e4,t.sessionTimeoutCounter);t.checkSessionTimeout=function(){t.sessionTimeoutCounter<=0?(n.sessionTimedOut=t.sessionTimedOut=!0,u.cancel(t.sessionTimeoutHandle),t.sessionInfoMessage="GLOBAL.SESSION_ENDED_WARNING"):t.sessionInfoMessage="GLOBAL.SESSION_ENDING_WARNING"};t.ok=function(){n.sessionTimedOut?s.gotoPage(e.getSetting("LogoutUrl"),null,null,null,null,!0):(u.cancel(t.sessionTimeoutHandle),f.refreshSession(),n.sessionNotificationModalOpen=!1,n.$broadcast("resetSessionTimeout"),i.dismiss())}}]);angular.module("TiimaApp").controller("RoleController",["$scope","$q","$timeout","$uibModal","resourcingService","editorService","localizationService","toolsService","tiimaEnumsService","datasourceService","ResourceDimensionItemRoleDemandValue",function(n,t,i,r,u,f,e,o,s,h,c){return n.EditorScope=n.$parent,n.Roles=null,n.SelectedRole=null,n.SelectedDemandValue=null,n.SelectedPerson=null,n.Dialog=null,n.AddPersonsContext={Item:null,Role:null},n.useShifts=!1,n.DemandValueItemTemplate="{{Code}} {{Name}} ({{TypeName}})",n.UnregisterNameWatcher=null,n.dataSources={roleDemandDatasource:h.createDatasource({method:function(t){return n.getResourcingDimensionItemRoleDemandValues(t)}})},n.$watch(function(){return n.$parent.Data},function(t){var i,r,u;t&&(n.Roles=t.Roles?t.Roles:t.Roles=[],i=t.Settings,i&&i.length&&(r=i[0],r&&(u=s.getValue("ResourcingSettingProperty","UseShiftPlanning"),n.useShifts=(r.Properties&u)==u)))}),n.onEditorUpdated=function(t){var r,i;if(n.SelectedRole){if(r=null,t.Roles)for(i=0;i<t.Roles.length;i++)if(n.SelectedRole.NoRole?t.Roles[i].NoRole&&(r=t.Roles[i]):n.SelectedRole.IdC==t.Roles[i].IdC&&(r=t.Roles[i]),r)break;n.SelectedRole=r}n.Roles=t.Roles},n.getResourcingDimensionItemRoleDemandValues=function(n){var i=t.defer();return c.getAll(n).then(function(n){i.resolve(n)}),i.promise},n.selectRole=function(t,i){var u,r;if(i&&i.stopPropagation(),n.UnregisterNameWatcher&&(n.UnregisterNameWatcher(),n.UnregisterNameWatcher=null),n.SelectedRole==t&&(t=null),n.SelectedRole&&(n.SelectedRole._error&&delete n.SelectedRole._error,n.SelectedRole.Persons&&n.SelectedRole.Persons.length)){for(u=[],r=0;r<n.SelectedRole.Persons.length;r++)n.SelectedRole.Persons[r]._error&&u.push(n.SelectedRole.Persons[r]._error);u.length&&(n.SelectedRole._error=!0)}n.SelectedRole=t;t&&(t.Texts||(t.Texts=e.getEmptyText(["Name"])),n.UnregisterNameWatcher=n.$watch("SelectedRole.Texts",function(){var t=e.getCurrentLanguageText(n.SelectedRole.Texts);n.SelectedRole.RoleName=t&&t.Name?t.Name:""},!0))},n.addRole=function(t){t.stopPropagation();n.Roles||(n.Roles=n.$parent.Data.Roles=[]);var i={IdC:o.getNewID(),Quantity:0,Unit:1,Persons:[],Demands:[]};n.Roles.splice(n.Roles.length-1,0,i);n.selectRole(i)},n.removeRole=function(r,u){u.stopPropagation();var f=t.defer();typeof r.IdC=="string"||r.Persons&&r.Persons.length?o.confirm([{pageID:"RESOURCING",textID:"CONFIRMATION_ROLE_HEADING"},{pageID:"RESOURCING",textID:"CONFIRMATION_ROLE_DELETE",data:r}],null,function(){f.resolve()},function(){f.reject()}):f.resolve();i(function(){f.promise.then(function(){if(r.Deleted=!0,typeof r.IdC!="string")for(var t=0;t<n.Roles.length;t++)r==n.Roles[t]&&n.Roles.splice(t,1)})})},n.addDemand=function(t,i){var u,s,f,r;if(t&&i){t.Demands||(t.Demands=[]);t.RoleSaved=!1;u="";s="";switch(i.Type){case 1:u="OrganisationIdC";s=e.getText("RESOURCING.ROLEDEMANDTYPE_ORGANISATION_LABEL");break;case 2:u="KnowhowIdC";s=e.getText("RESOURCING.ROLEDEMANDTYPE_KNOWHOW_LABEL");break;case 3:u="GroupItemIdC";s=i.TypeName}for(f=0;f<t.Demands.length;f++)if(!t.Demands[f].Deleted&&t.Demands[f].DemandType==i.Type&&t.Demands[f][u]==i.IdC)return;r={IdC:o.getNewID(),DemandType:i.Type,Code:i.Code,Name:i.Name,TypeName:s};r[u]=i.IdC;t.Demands.push(r);
1i.Type=="2"&&(r.KnowhowValues=i.Knowhows,r.KnowhowValues&&r.KnowhowValues.length?r.KnowhowLevel=r.KnowhowValues[0].Value:(r.KnowhowValues=[{Value:1,Name:"1"},{Value:2,Name:"2"},{Value:3,Name:"3"},{Value:4,Name:"4"},{Value:5,Name:"5"}],r.KnowhowLevel=1));n.SelectedDemandValue=null}},n.removeDemand=function(i,r){if(i&&r&&i.Demands){i.RoleSaved=!1;var u=t.defer();typeof r.IdC=="string"?o.confirm([{pageID:"RESOURCING",textID:"CONFIRMATION_DEMAND_HEADING"},{pageID:"RESOURCING",textID:"CONFIRMATION_DEMAND_DELETE",data:r}],null,function(){u.resolve();n.$apply()},function(){u.reject()}):u.resolve();u.promise.then(function(){if(typeof r.IdC=="string")r.Deleted=!0;else for(var n=0;n<i.Demands.length;n++)if(i.Demands[n].IdC==r.IdC){i.Demands.splice(n,1);return}})}},n.selectPerson=function(t){var o,s,c,r,h,u,i;if(t==n.SelectedPerson&&(t=null),n.SelectedPerson){if(o=f.getForm(),n.SelectedPerson._error&&delete n.SelectedPerson._error,s=[],o)for(c=[o.personStartDate,o.personEndDate],r=[{name:"required",messageID:["RESOURCING.ERROR_MESSAGE_PERSON_DATERANGE_MISSING"],message:null},{name:"validateDateRange",messageID:["RESOURCING.ERROR_MESSAGE_PERSON_DATERANGE_INVALID"],message:null},{name:"dateRangeInvalid",messageID:["RESOURCING.ERROR_MESSAGE_STARTDATE_GREATER_THAN_ENDDATE"],message:null}],h=0;h<c.length;h++)if(u=c[h],u&&u.$invalid&&u.$error)for(i=0;i<r.length;i++)u.$error[r[i].name]&&(r[i].message||(r[i].message=e.getText(r[i].messageID)),s.push(r[i].message));s.length&&(n.SelectedPerson._error=s[0])}n.SelectedPerson=t},n.addAnonymous=function(n,t,i){i.stopPropagation();var r=n;t&&(r=t);r.Persons||(r.Persons=[]);n.AllPersons.push({IdC:null,EmployeeIdC:null,Lastname:"*",Firstname:null,Anonymous:!0,Rolename:t?t.RoleName:"-",RoleIdC:t?t.IdC:"norole"});r.Persons.push({IdC:null,Anonymous:!0,EmployeeIdC:null,Lastname:"*",StartDate:n.StartDate,EndDate:n.EndDate,Hours:0,Unit:1,Percentage:100});n.AllPersons.sort(function(n,t){return n.Lastname<t.Lastname?-1:n.Lastname>t.Lastname?1:0})},n.addPersons=function(t,i,u){u.stopPropagation();n.AddPersonsContext={Item:t,Role:i};n.ModalInstance=r.open({backdrop:"static",keyboard:!1,templateUrl:"MVC/Modals/Resourcing/employeeSearch.html",scope:n,controller:"employeeSelectorController",resolve:{item:function(){return n.AddPersonsContext.Item},role:function(){return n.AddPersonsContext.Role}},windowClass:"employeeSelectorModal"});n.ModalInstance.result.then(function(t){var r,f,e,u,i;if(t&&n.AddPersonsContext){if(r=n.AddPersonsContext.Item,f=n.AddPersonsContext.Item,n.AddPersonsContext.Role&&(f=n.AddPersonsContext.Role),f.Persons||(f.Persons=[]),e={},r.AllPersons)for(u=0;u<r.AllPersons.length;u++)e[r.AllPersons[u].IdC]=!0;for(u=0;u<t.length;u++)i=t[u],r.PersonMap[i.IdC]||r.AllPersons.push(r.PersonMap[i.IdC]={IdC:null,EmployeeIdC:i.IdC,Lastname:i.Lastname,Firstname:i.Firstname,Rolename:n.AddPersonsContext.Role?n.AddPersonsContext.Role.RoleName:"-",RoleIdC:n.AddPersonsContext.Role?n.AddPersonsContext.Role.IdC:"norole"}),f.Persons.push({IdC:null,Anonymous:!1,EmployeeIdC:i.IdC,Firstname:i.Firstname,Lastname:i.Lastname,StartDate:i.StartDate,EndDate:i.EndDate,Hours:0,Unit:1,Percentage:100});r.AllPersons.sort(function(n,t){return n.Lastname<t.Lastname?-1:n.Lastname>t.Lastname?1:0})}})},n.removePerson=function(n,r,u,f){var s,h;f.stopPropagation();s=t.defer();typeof u.IdC=="string"?(h=u.EmployeeIdC?{Name:u.Lastname+" "+u.Firstname}:{Name:e.getText("RESOURCING.ANONYMOUS_LABEL")},o.confirm([{pageID:"RESOURCING",textID:"CONFIRMATION_PERSON_HEADING"},{pageID:"RESOURCING",textID:"CONFIRMATION_PERSON_DELETE",data:h}],null,function(){s.resolve()},function(){s.reject()})):s.resolve();i(function(){s.promise.then(function(){var i,t;for(u.Deleted=!0,i=r?r.Persons:n.Persons,delete n.PersonMap[u.EmployeeIdC],t=0;t<n.AllPersons.length;t++)if(n.AllPersons[t].IdC==u.IdC){n.AllPersons.splice(t,1);break}if(typeof u.IdC!="string")for(t=0;t<i.length;t++)u==i[t]&&i.splice(t,1)})})},n.showPerson=function(t,i,r){var u;r.stopPropagation();var o=i.RoleIdC,e=null,f=null;if(n.SelectedRole&&n.SelectedRole.IdC==o)f=n.SelectedRole;else for(u=0;u<t.Roles.length;u++)if(t.Roles[u].IdC==o){f=t.Roles[u];n.selectRole(f);break}if(f&&f.Persons&&f.Persons.length)for(u=0;
1u<f.Persons.length;u++)if(f.Persons[u].IdC==i.IdC){e=f.Persons[u];break}e&&i.IdC!=n.SelectedPerson&&n.selectPerson(e)},n.showSettingEditor=function(t,i,u,f){f.stopPropagation();n.ModalInstance=r.open({backdrop:"static",keyboard:!1,templateUrl:"MVC/Modals/Resourcing/autoGeneratingSettingEditor.html",scope:n,controller:"autoGeneratingSettingEditor",resolve:{person:function(){return n.SelectedPerson}},windowClass:"autoGeneratingSettingEditorModal"});n.ModalInstance.result.then(function(t){t&&n.SelectedPerson})},n.showDayEditor=function(t,i,u,f){f.stopPropagation();n.ModalInstance=r.open({backdrop:"static",keyboard:!1,templateUrl:"MVC/Modals/Resourcing/daySettingEditor.html",scope:n,controller:"daySettingEditor",resolve:{person:function(){return n.SelectedPerson},useShifts:function(){return n.useShifts}},windowClass:"dayEditorModal"});n.ModalInstance.result.then(function(t){t&&n.SelectedPerson})},n.showPeriodEditor=function(t,i,u,f){f.stopPropagation();n.ModalInstance=r.open({backdrop:"static",keyboard:!1,templateUrl:"MVC/Modals/Resourcing/periodSettingEditor.html",scope:n,controller:"periodSettingEditor",resolve:{person:function(){return n.SelectedPerson},dimensionItem:function(){return t},startDate:function(){return t.StartDate},endDate:function(){return t.EndDate}},windowClass:"periodEditorModal"});n.ModalInstance.result.then(function(t){if(!t||!t.length){n.SelectedPerson&&(n.SelectedPerson.UsePeriodSettings=!1);return}n.SelectedPerson&&(n.SelectedPerson.UsePeriodSettings=!0)})},n.$on("updateEditor",function(t,i){n.onEditorUpdated(i)}),this}]);angular.module("TiimaApp").controller("resourceDimensionItemTemplateEditor",["$scope","$q","$timeout","$uibModalInstance","$controller","resourcingService","localizationService","item",function(n,t,i,r,u,f,e,o){return u("baseModalController",{$scope:n,$uibModalInstance:r}),n.Item=o,n.Template={Texts:[{LanguageIdC:e.getCurrentLanguageIdC(),Name:""}],ExcludeParent:!0},r.opened.then(function(){}),n.onOK=function(){r.close({Texts:n.Template.Texts,ExcludeParent:n.Template.ExcludeParent})},n.onCancel=function(){r.close(null)},this}]);angular.module("TiimaApp").controller("AutoGeneratingSettingController",["$scope","$http","$q","$timeout","resourcingService","editorService","localizationService","toolsService","DimensionItem",function(n,t,i,r,u,f,e,o,s){n.AutoGeneratingSettings=null;n.SelectedDimension=null;n.Permissions={Read:!0,Modify:!1,Remove:!1};n.DimensionItem=null;n.$watch(function(){return n.$parent.Data},function(t){t&&(n.DimensionItem=t,n.AutoGeneratingSettings=t.AutoGeneratingSettings?t.AutoGeneratingSettings:t.AutoGeneratingSettings=[],n.SelectedDimension=null,n.Permissions=t.CurrentUserPermissions)});n.onEditorUpdated=function(t){n.SelectedDimension=null;n.AutoGeneratingSettings=t.AutoGeneratingSettings;n.Permissions=t.CurrentUserPermissions};n.getDimensionItems=function(t){var r=i.defer(),u={start:n.DimensionItem?n.DimensionItem.StartDate:new Date,end:n.DimensionItem?n.DimensionItem.EndDate:new Date};return s.getAll({DimensionIdC:t.DimensionIdC,Hierarchy:t.Hierarchy,SearchFilter:t.SearchFilter,FirstItemIndex:t.FirstIndex,ItemCount:t.PageSize,OrganisationDimension:t.OrganisationDimension,StartDate:u.start,EndDate:u.end}).then(function(n){r.resolve(n)}),r.promise};n.setGenerateByName=function(n){r(function(){n.GenerateByName=u.generateByNames[n.GenerateBy]})};n.setCustomDimensionItem=function(n){r(function(){n.GenerateDimensionItem&&(n.GenerateDimensionItemName=e.getCurrentLanguageText(n.GenerateDimensionItem.Texts,"Name"),n.GenerateDimensionItemIdc=n.GenerateDimensionItem.Idc)})};n.selectDimension=function(t){n.Permissions&&n.Permissions.Modify&&(n.SelectedDimension==t?t=null:t.GenerateBy==3&&!t.GenerateDimensionItem&&t.GenerateDimensionItemIdc&&(t.GenerateDimensionItem={Idc:t.GenerateDimensionItemIdc,Name:t.GenerateDimensionItemName,Code:t.GenerateDimensionItemCode}),n.SelectedDimension=t)};f.onEditorEvent("updateEditor",function(t,i){n.onEditorUpdated(i)});return this}]);angular.module("TiimaApp").controller("daySettingEditor",["$scope","$q","$timeout","$uibModalInstance","$controller","resourcingService","toolsService","person","useShifts",function(n,t,i,r,u,f,e,o){return u("baseModalController",{$scope:n,$uibModalInstance:r}),n.Person=o,n.SelectedDay=null,n.Weeks=[],r.opened.then(function(){i(function(){var i=null,b=e.getDateOnly(o.StartDate),k=e.getDateOnly(o.EndDate),p,w,c,t,v,u,y,h,l,r,s,a;if(o.Days=f.processDays(b,k,o.Days),!o.UseDaySettings)for(p=(o.StartDate.getHours()*3600+o.StartDate.getMinutes()*60)*1e3,w=(o.EndDate.getHours()*3600+o.End
1Date.getMinutes()*60)*1e3,r=0;r<o.Days.length;r++)(t=o.Days[r],t.EmptyDay||typeof t.IdC=="string")||(t.StartTime=new Date(t.Date.getTime()+p),t.EndTime=new Date(t.Date.getTime()+w));for(c=null,r=0;r<o.Days.length;r++){if(t=o.Days[r],!i&&(n.Weeks.push(i={WeekNumber:$window.moment(t.Date).isoWeekYear(),Days:[],LastWeek:!1,LastFullWeek:!1}),t.Date.getDay()!=1))for(h=t.Date.getDay()-1,h==-1&&(h=6),l=e.addDays(t.Date,-h),u=0;u<h;u++)s=e.addDays(l,u),a=s.getDay()==0||f.isHoliday(s),i.Days.push({EmptyDay:!0,Date:s,Holiday:a});if(t.Holiday=t.Date.getDay()==0||f.isHoliday(t.Date),i.Days.push(t),t.Date.getDate()==1)for(i.LastWeek=!0,c&&(c.LastFullWeek=!0),i.MonthChangeRow=[],v=i.Days[0],u=0;u<7;u++)y=e.addDays(v.Date,u),i.MonthChangeRow.push({Date:y,LastDay:!1,Month:y.getMonth()==v.Date.getMonth()?0:1});t.Date.getDay()==0&&(c=i,i=null)}if(i&&i.Days.length<7)for(h=7-i.Days.length,l=new Date(i.Days[i.Days.length-1].Date.getTime()),r=0;r<h;r++)s=e.addDays(l,r+1),a=s.getDay()==0||f.isHoliday(s),i.Days.push({EmptyDay:!0,Date:s,Holiday:a})})}),n.selectDay=function(t,i){if(i.target.tagName==="INPUT"){i.stopPropagation();return}n.SelectedDay==t&&(t=null);n.SelectedDay=t},n.onOK=function(){var i,t;if(n.Person)for(i=0;i<n.Person.Days.length;i++)(t=n.Person.Days[i],t.EmptyDay)||(t.StartTime=e.setTimePart(new Date(t.Date.getTime()),t.StartTime),t.EndTime=e.setTimePart(new Date(t.Date.getTime()),t.EndTime));r.close(n.Weeks)},this}]);angular.module("TiimaApp").controller("periodSettingEditor",["$scope","$q","$timeout","$uibModalInstance","$controller","resourcingService","toolsService","ResourceDimensionItemPeriod","person","dimensionItem","startDate","endDate",function(n,t,i,r,u,f,e,o,s,h,c,l){return u("baseModalController",{$scope:n,$uibModalInstance:r}),n.Person=s,n.DimensionItem=h,n.SelectedPeriod=null,n.startDate=c,n.endDate=l,n.Periods=[],r.opened.then(function(){i(function(){var t=n.DimensionItem&&n.DimensionItem.CurrentSettings?n.DimensionItem.CurrentSettings.PeriodType:1;o.getAll({DimensionItemIdC:n.DimensionItem.IdC,EmployeeIdC:n.Person.EmployeeIdC,PeriodType:t,StartDate:n.startDate,EndDate:n.endDate}).then(function(t){var f=[],e,i,o,u;for(t&&t.DataList&&t.DataList.length&&(f=t.DataList),e={},u=0;u<f.length;u++)i=f[u],i.EmployeeOfResourceDimensionItemPeriodIdC=null,i.Hours=0,i.Days=0,i.Changed=!1,i.Deleted=!1,e[i.StartDate.getTime()+";"+i.EndDate.getTime()]=i;if(o=n.Person.Periods,o)for(u=0;u<o.length;u++){var r=o[u],s=r.StartDate.getTime()+";"+r.EndDate.getTime(),i=e[s];i?(i.EmployeeOfResourceDimensionItemPeriodIdC=r.IdC,i.Hours=r.Hours,i.Days=r.Days,i.Unit=r.Unit,i._original=r):(e[s]=i={EmployeeOfResourceDimensionItemPeriodIdC:r.IdC,Hours:r.Hours,Days:r.Days,Unit:r.Unit,StartDate:new Date(r.StartDate.getTime()),EndDate:new Date(r.EndDate.getTime()),_original:r,Changed:!1,Deleted:!1},f.push(i));n.TotalHours+=i.Hours;n.TotalDays+=i.Days}f.sort(function(n,t){return n.StartDate.getTime()<t.StartDate.getTime()?-1:n.StartDate.getTime()>t.StartDate.getTime()?1:n.EndDate.getTime()<t.EndDate.getTime()?-1:n.EndDate.getTime()>t.EndDate.getTime()?1:0});n.Periods=f})})}),n.selectPeriod=function(t,i){if(i.target.tagName==="INPUT"){i.stopPropagation();return}n.SelectedPeriod==t&&(day=null);n.SelectedPeriod=t},n.onOK=function(){var i,f,u,t;for(n.Person,i=[],f=n.DimensionItem&&n.DimensionItem.CurrentSettings?n.DimensionItem.CurrentSettings.PlanningUnit:1,u=0;u<n.Periods.length;u++)t=n.Periods[u],t.Hours||t.Days||(t.EmployeeOfResourceDimensionItemPeriodIdC?t.Deleted=!0:t=null),t&&(t._original&&!t.Deleted&&(t.Changed=t._original.Hours!=t.Hours||t._original.Days!=t.Days),i.push({IdC:t.EmployeeOfResourceDimensionItemPeriodIdC,StartDate:t.StartDate,EndDate:t.EndDate,Hours:t.Hours,Days:t.Days,Unit:f?f:t.Unit,Changed:t.Changed,Deleted:t.Deleted}));n.Person.Periods=i;r.close(i)},this}]);angular.module("TiimaApp").controller("employeeSelectorController",["$scope","$rootScope","$q","$timeout","$uibModalInstance","$controller","resourcingEmployeeService","Employee","item","role",function(n,t,i,r,u,f,e,o,s,h){return f("baseModalController",{$scope:n,$uibModalInstance:u}),n.Employees=[],n.AllSelected=!1,n.SelectedEmployees={},n.TotalCount=0,n.PageIndex=0,n.PageCount=0,n.PageSize=10,n.EditorContext={Item:s,Role:h,SearchFilter:""}
1,u.opened.then(function(){r(function(){n.loadData()})}),n.loadData=function(){o.getAllForResourceDimensionItem({ResourceDimensionItemIdC:n.EditorContext.Item.IdC,ResourceDimensionItemRoleIdc:n.EditorContext.Role&&!n.EditorContext.Role.NoRole?n.EditorContext.Role.IdC:null,SearchFilter:n.EditorContext.SearchFilter,ItemCount:n.PageSize,FirstIndex:n.PageSize*n.PageIndex}).then(function(t){var i,r,u,o,f,e;if(n.Employees=t&&t.DataList?t.DataList:[],t){for(i=0;i<n.Employees.length;i++){if(r="",u="",n.Employees[i].Commitments&&n.Employees[i].Commitments.length)for(o=n.Employees[i].Commitments,f=0;f<o.length;f++)e=o[f],e.CommitmentType==1?r+=(r?"\n":"")+e.CommitmentName:u+=(u?"\n":"")+e.CommitmentName;else n.Employees[i].AbsenceDescription=n.Employees[i].AbsenceLabel="",n.Employees[i].ResourceItemDescription=n.Employees[i].ResourceItemLabel="";n.Employees[i].AbsenceLabel=r?"X":"";n.Employees[i].ResourceItemLabel=u?"X":"";n.Employees[i].AbsenceDescription=r;n.Employees[i].ResourceItemDescription=u;n.Employees[i].Selected=n.SelectedEmployees[n.Employees[i].IdC]?!0:!1}n.TotalCount=t.TotalRows;n.PageCount=Math.ceil(t.TotalRows/n.PageSize)}})},n.onItemClick=function(t,i){i?n.SelectedEmployees[t.IdC]=t:delete n.SelectedEmployees[t.IdC]},n.getSelectedEmployees=function(){var t=[];for(var i in n.SelectedEmployees)t.push(n.SelectedEmployees[i]);return t},n.search=function(){n.PageIndex=0;n.loadData()},n.prevPage=function(){n.PageIndex--;n.loadData()},n.nextPage=function(){n.PageIndex++;n.loadData()},n.selectAll=function(){if(n.AllSelected||(n.SelectedEmployees={}),n.Employees&&n.Employees.length>0)for(var t=0;t<n.Employees.length;t++)n.AllSelected?(n.Employees[t].Selected=!0,n.SelectedEmployees[n.Employees[t].IdC]=n.Employees[t]):n.Employees[t].Selected=!1},n.cancel=function(){u.close(null)},n.ok=function(){u.close(n.getSelectedEmployees())},this}]);angular.module("TiimaApp").controller("ReadinessController",["$scope","$http","$q","$timeout","$window","resourcingService","localizationService","toolsService",ReadinessController=function(n,t,i,r,u,f,e,o){n.removeReadiness=function(t,i){o.confirm([{pageID:"RESOURCING",textID:"CONFIRMATION_READINESS_HEADING"},{pageID:"RESOURCING",textID:"CONFIRMATION_READINESS_DELETE",data:i}],null,function(){i.Deleted=!0;n.$apply()})}}]);angular.module("TiimaApp").controller("DependencyController",["$scope","$http","$q","$timeout","$window","resourcingService","localizationService","toolsService",DependencyController=function(n,t,i,r,u,f,e,o){n.removeDependency=function(t){o.confirm([{pageID:"RESOURCING",textID:"CONFIRMATION_DEPENDENCY_HEADING"},{pageID:"RESOURCING",textID:"CONFIRMATION_DEPENDENCY_DELETE",data:t}],null,function(){t.Deleted=!0;n.$apply()})}}]);angular.module("TiimaApp").controller("autoGeneratingSettingEditor",["$scope","$q","$timeout","$uibModalInstance","$controller","resourcingService","person",function(n,t,i,r,u,f,e){return u("baseModalController",{$scope:n,$uibModalInstance:r}),n.Person=e,n.SelectedDimension=null,r.opened.then(function(){i(function(){})}),n.setGenerateByName=function(n){i(function(){n.GenerateByName=f.generateByNames[n.GenerateBy]})},n.setCustomDimensionItem=function(n){i(function(){n.GenerateDimensionItemName=n.GenerateDimensionItem.Name;n.GenerateDimensionItemIdC=n.GenerateDimensionItem.IdC})},n.selectDimension=function(t){n.SelectedDimension==t&&(t=null);n.SelectedDimension=t},n.onOK=function(){r.close(n.Person.AutoGeneratingSettings)},this}]);angular.module("TiimaApp").controller("resourcingSettingsEditorModalController",["$scope","$timeout","$uibModal","$uibModalInstance","$controller","localizationService","resourcingService","resourcingSettingsService","toolsService","datasourceService","ReasonCode","SettingParents","TemplatePermissions",function(n,t,i,r,u,f,e,o,s,h,c,l,a){return u("baseModalController",{$scope:n,$uibModalInstance:r}),n.SettingParents=l,n.SelectedSettingParent=null,n.values={selectedIndex:0},n.TemplatePermissions=a,n.Templates={Page:null,All:null,Filtered:null,SearchFilter:null,PageSize:10,PageIndex:-1,PageCount:1,FirstIndex:0,LastIndex:0,TotalCount:0},n.loading=!1,n.reasonCodeItemTemplate="{{Code}} {{ReasonCodeName}}",o.registerLoadingListener(n.onLoadingChanged=function(t){n.loading=t}),n.dataSources={reasonCodeDataSource:h.createDatasource({method:function(t){return n.getReasonCodes(t)}})},r.opened.then(function(){o.clearSettingsCache();n.SettingParents&&n.SettingParents.length&&(_.forEach(n.SettingParents,function(n,t){n.Index=t;n.Name=f.getCurrentLanguageText(n,"Name")}),n.values.selectedIndex=n.SettingParents.length-1,n.SelectedSettingParent=n.SettingParents[n.SettingParents.length-1],n.selectSettingParent(n.SelectedSettingParent))}),n.getReasonCodes=function(n){return c.getAll(n)},n.$watch("values.selectedIndex",function(t,i){if(t!==i){var r=Number(t);r>=0&&r<n.SettingParents.length&&n.selectSettingParent(n.SettingParents[r])}}),n.selectSettingParent=function(i){n.SelectedSettingParent=i;t(function(){o.setSettingsParent(i)})},n.$watch("Templates.SearchFilter",function(t,i){t!=i&&(n.Templates.PageIndex=0,n.Templates.FirstIndex=0,n.Templates.LastIndex=0,n.Templates.Filtered=null,n.refreshTemplates())}),n.refreshTemplates=function(){var t,r,u,o,i;if(n.Templates.All||(n.Templates.All=e.getAllTemplates(),n.Templates.Filtered=null),t=n.Templates.All,t){if(!n.Templates.Filtered){for(t=[],i=0;i<n.Templates.All.length;i++)r=n.Templates.All[i],r.Texts&&(n.Templates.SearchFilter?(u=""+f.getCurrentLanguageText(r.Texts,"Name"),o=""+f.getCurrentLanguageText(r.Texts,"DimensionName"),(u.toLowerCase().indexOf(n.Templates.SearchFilter.toLowerCase())!=-1||o.toLowerCase().indexOf(n.Templates.SearchFilter.toLowerCase())!=-1)&&t.push(r)):t.push(r));n.Templates.PageIndex=0;n.Templates.TotalCount=t.length;n.Templates.PageCount=Math.ceil(t.length/n.Templates.PageSize);n.Templates.Filtered=t;n.Templates.Filtered.sort(function(n,t){var i=f.getCurrentLanguageText(n.Texts,"Name"),r=f.getCurrentLanguageText(t.Texts,"Name");return i<r?-1:r<i?1:0})}for(n.Templates.FirstIndex=n.Templates.PageIndex*n.Templates.PageSize,n.Templates.LastIndex=n.Templates.FirstIndex+n.Templates.PageSize,n.Templates.LastIndex>=t.length&&(n.Templates.LastIndex=t.length),n.Templates.Page=[],i=n.Templates.FirstIndex;i<n.Templates.LastIndex&&i<n.Templates.Filtered.length;i++)n.Templates.Page.push(n.Templates.Filtered[i]);n.Templates.FirstIndex++}},n.firstTemplatePage=function(){n.Templates.PageIndex=0;n.refreshTemplates()},n.prevTemplatePage=function(){n.Templates.PageIndex--;n.Templates.PageIndex<0&&(n.Templates.PageIndex=0);n.refreshTemplates()},n.nextTemplatePage=function(){n.Templates.PageIndex++;n.Templates.PageIndex>=n.Templates.PageCount&&(n.Templates.PageIndex=n.Templates.PageCount-1);n.refreshTemplates()},n.lastTemplatePage=function(){n.Templates.PageIndex=n.Templates.PageCount-1;n.refreshTemplates()},n.previewTemplate=function(n){var t={id:n.IdC};e.getTemplatePreview(t).then(function(n){var t=i.open({templateUrl:"MVC/modals/Resourcing/resourceDimensionTemplatePreview.html",controller:"resourceDimensionTemplatePreviewModalController",backdrop:"static",windowClass:"templatePreviewWindow",resolve:{Template:function(){return n}}});t.result.then(function(){})})},n.removeTemplate=function(t){s.confirm(["RESOURCING.TEMPLATE_DELET
1E_HEADING","RESOURCING.CONFIRMATION_TEMPLATE_DELETE"],null,function(){n.loading=!0;var i={IdC:t.IdC};e.deleteTemplate(i).then(function(t){n.loading=!1;t.Status=="1"&&(n.Templates.All=null,n.refreshTemplates());var i=s.getDataMessage(t,"GLOBAL.SUCCESS_DELETE");s.showSplash(i,t.Status=="1"?"okMessage":"errorMessage")})})},n.onOK=function(){var n=o.prepareSettingsForSaving();n&&n.length>0?o.saveSettings(n).then(function(t){var i=s.getDataMessage(t,"GLOBAL.SUCCESS_SAVE");s.showSplash(i,t.Status=="1"?"okMessage":"errorMessage");t.Status=="1"&&r.close(n)},function(){}):r.close(n)},n.onCancel=function(){r.close(null)},n.$on("$destroy",function(){o.unRegisterLoadingListener(n.onLoadingChanged)}),n.refreshTemplates(),this}]);angular.module("TiimaApp").controller("BreakController",["$scope","$http","$q","$timeout","$window","resourcingService","editorService","localizationService","toolsService",function(n,t,i,r,u,f,e,o,s){return n.Break=null,n.Breaks=null,n.breakDateRange={startDate:null,endDate:null},n.Permissions={Read:!1,Modify:!1,Remove:!1},n.$watch(function(){return n.$parent.Data},function(t){t&&(n.Breaks=t.Breaks?t.Breaks:t.Breaks=[],n.Permissions=t.CurrentUserPermissions)}),n.$watch("breakDateRange.startDate",function(t,i){i!=t&&(n.Break.StartDate=n.breakDateRange.startDate)}),n.$watch("breakDateRange.endDate",function(t,i){i!=t&&(n.Break.EndDate=n.breakDateRange.endDate)}),n.onEditorUpdated=function(t){var i,r;if(n.Break){if(i=null,t.Breaks)for(r=0;r<t.Breaks.length;r++)if(n.Break.IdC==t.Breaks[r].IdC){i=t.Breaks[r];break}n.Break=i;n.breakDateRange={startDate:i.StartDate,endDate:i.EndDate}}n.Breaks=t.Breaks;n.Permissions=t.CurrentUserPermissions},n.selectBreak=function(t,i){var s,h,l,u,c,f,r;if(i.stopPropagation(),n.Permissions&&n.Permissions.Modify){if(n.Break){if(s=e.getForm(),n.Break._error&&delete n.Break._error,h=[],s)for(l=[s.breakStart,s.breakEnd],u=[{name:"required",messageID:["RESOURCING","ERROR_MESSAGE_BREAK_DATERANGE_MISSING"],message:null},{name:"validateDateRange",messageID:["RESOURCING","ERROR_MESSAGE_BREAK_DATERANGE_INVALID"],message:null},{name:"dateRangeInvalid",messageID:["RESOURCING","ERROR_MESSAGE_STARTDATE_GREATER_THAN_ENDDATE"],message:null}],c=0;c<l.length;c++)if(f=l[c],f&&f.$invalid&&f.$error)for(r=0;r<u.length;r++)f.$error[u[r].name]&&(u[r].message||(u[r].message=o.getText(u[r].messageID)),h.push(u[r].message));h.length&&(n.Break._error=h[0])}t!=n.Break&&(n.Break=t,n.breakDateRange={startDate:t.StartDate,endDate:t.EndDate})}},n.validateBreakDateRange=function(t){var u,r,f;return n.loading=!0,u=i.defer(),r=[],angular.isDate(t)&&t&&angular.isDate(t)&&(t.getFullYear()<n.settings.selectedTravelClaim.StartDate.getFullYear()||t.getFullYear()==n.settings.selectedTravelClaim.StartDate.getFullYear()&&t.getMonth()<n.settings.selectedTravelClaim.StartDate.getMonth()||t.getFullYear()==n.settings.selectedTravelClaim.StartDate.getFullYear()&&t.getMonth()==n.settings.selectedTravelClaim.StartDate.getMonth()&&t.getDate()<n.settings.selectedTravelClaim.StartDate.getDate()?r.push("dateOutSidePeriod"):(t.getFullYear()>n.settings.selectedTravelClaim.EndDate.getFullYear()||t.getFullYear()==n.settings.selectedTravelClaim.EndDate.getFullYear()&&t.getMonth()>n.settings.selectedTravelClaim.EndDate.getMonth()||t.getFullYear()==n.settings.selectedTravelClaim.EndDate.getFullYear()&&t.getMonth()==n.settings.selectedTravelClaim.EndDate.getMonth()&&t.getDate()>n.settings.selectedTravelClaim.EndDate.getDate())&&r.push("dateOutSidePeriod")),n.loading=!1,f={valid:!r.length,errors:r},u.resolve(f),u.promise},n.addBreak=function(){n.Breaks||(n.Breaks=n.$parent.Data.Breaks=[]);var t={IdC:s.getNewID(),StartDate:n.$parent.Data.StartDate,EndDate:n.$parent.Data.StartDate};n.Breaks.push(t);n.Break=t;n.breakDateRange={startDate:t.StartDate,endDate:t.EndDate}},n.removeBreak=function(t){if(t){var r=i.defer();typeof t.IdC=="string"?s.confirm([{pageID:"RESOURCING",textID:"CONFIRMATION_BREAK_HEADING"},{pageID:"RESOURCING",textID:"CONFIRMATION_BREAK_DELETE",data:t}],null,function(){r.resolve();n.$apply()},function(){r.reject()}):r.resolve();r.promise.then(function(){if(typeof t.IdC=="string")t.Deleted=!0;else for(var i=0;i<n.Breaks.length;i++)if(n.Breaks[i].IdC==t.IdC){n.Breaks.splice(i,1);return}})}},n.$on("updateEditor",function(t,i){n.onEditorUpdated(i)}),this}]);angular.module("TiimaApp").controller("PermissionController",["$scope","$http","$q","$timeout","resourcingService","editorService","localizationService","toolsService","datasourceService","ResourceDimensionPermissionValue",function(n,t,i,r,u,f,e,o,s,h){n.EditorScope=n.$parent;n.Permissions=null;n.values={SelectedPermissionValue:null};n.TypesNames=null;n.permissionCount=0;n.dataSources={resourceDimensionPermissionDataSource:s.createDatasource({method:function(t){return n.getResourceDimensionPermissionValue(t)}})};n.$watch(function(){return n.$parent.Data},function(t){t&&(n.TypeNames||(n.TypeNames=[null,e.getText("RESOURCING.PERMISSIONTYPE_USERGROUP_LABEL"),e.getText("RESOURCING.PERMISSIONTYPE_USER_LABEL")]
1),n.Permissions=t.Permissions?t.Permissions:t.Permissions=[],n.SelectedPermissionValue=null)});n.onEditorUpdated=function(t){n.Permissions=t.Permissions};n.getResourceDimensionPermissionValue=function(n){var t=i.defer();return h.getAll({SearchFilter:n.SearchFilter,FirstItemIndex:n.FirstIndex,ItemCount:n.PageSize?n.PageSize:10}).then(function(n){t.resolve(n)}),t.promise};var c=function(){var t=0;return _.forEach(n.Permissions,function(n){n.Deleted||n.PermissionType!==8||t++}),t};return n.addPermission=function(t){var r,i,u;if(t){for(r="UserGroupIdC",t.Type==2&&(r="UserIdC"),n.Permissions||(n.Permissions=n.$parent.Data.Permissions=[]),i=0;i<n.Permissions.length;i++)if(!n.Permissions[i].Deleted&&n.Permissions[i].Type==t.Type&&n.Permissions[i][r]==t.IdC)return;u={IdC:o.getNewID(),PermissionType:2,UserIdC:t.Type==1?null:t.IdC,UserGroupIdC:t.Type==1?t.IdC:null,Type:t.Type,Code:t.Code,Name:t.Name,TypeName:n.TypeNames[t.Type],DimensionItemPermission:0};n.Permissions.push(u);n.SelectedPermissionValue=null}},n.removePermission=function(t){if(t){var r=i.defer();typeof t.IdC=="string"?o.confirm([{pageID:"RESOURCING",textID:"CONFIRMATION_PERMISSION_HEADING"},{pageID:"RESOURCING",textID:"CONFIRMATION_PERMISSION_DELETE",data:t}],null,function(){r.resolve();n.$apply()},function(){r.reject()}):r.resolve();r.promise.then(function(){if(typeof t.IdC=="string"||t.Inherited)t.Deleted=!0,t.DimensionItemPermissionIdC&&(t.DimensionItemPermissionDeleted=!0);else for(var i=0;i<n.Permissions.length;i++)if(n.Permissions[i].IdC==t.IdC){n.Permissions.splice(i,1);return}})}},n.onDimensionItemPermissionClick=function(n){r(function(){!n.DimensionItemPermission&&n.DimensionItemPermissionIdC?(n.DimensionItemPermissionDeleted=!0,n.DimensionItemPermissionChanged=!0):(n.DimensionItemPermissionDeleted&&delete n.DimensionItemPermissionDeleted,n.DimensionItemPermissionIdC?n.DimensionItemPermissionChanged&&delete n.DimensionItemPermissionChanged:n.DimensionItemPermissionChanged=!0)})},n.$on("updateEditor",function(t,i){n.onEditorUpdated(i)}),n.$watch("Permissions",function(){n.permissionCount=c()},!0),this}]);angular.module("TiimaApp").controller("ReasonCodeController",["$scope","$http","$q","$timeout","resourcingService","editorService","localizationService","toolsService","datasourceService",ReasonCodeController=function(n,t,i,r,u,f,e,o){n.EditorScope=n.$parent;n.ReasonCodes=null;n.ReasonCode=null;n.selected={SelectedReasonCodeValue:null};n.$watch(function(){return n.$parent.Data},function(t){t&&(n.ReasonCodes=t.ReasonCodes?t.ReasonCodes:t.ReasonCodes=[],n.ReasonCode=null,n.selected.SelectedReasonCodeValue=null)});n.onEditorUpdated=function(t){var r,i;if(n.ReasonCode){if(r=null,t.ReasonCodes)for(i=0;i<t.ReasonCodes.length;i++)if(n.ReasonCode.IdC==t.ReasonCodes[i].IdC){r=t.ReasonCodes[i];break}n.ReasonCode=r}n.ReasonCodes=t.ReasonCodes};n.setGenerateByName=function(n){r(function(){n.GenerateByName=u.generateReasonCodeByNames[n.GenerateBy]})};n.selectReasonCode=function(t){n.ReasonCode==t&&(t=null);n.ReasonCode=t};n.addReasonCode=function(t){var r,i;if(t){for(n.ReasonCodes||(n.ReasonCodes=n.$parent.Data.ReasonCodes=[]),i=0;i<n.ReasonCodes.length;i++)if(!n.ReasonCodes[i].Deleted&&n.ReasonCodes[i].ReasonCodeIdC==t.IdC)return;if(r={IdC:o.getNewID(),ReasonCodeIdC:t.IdC,Value:0,Code:t.Code,GenerateBy:0,GenerateByName:u.generateReasonCodeByNames[0]},r.Texts=[],t.Texts&&t.Texts.length)for(i=0;i<t.Texts.length;i++)r.Texts.push({Name:t.Texts[i].Name,LanguageIdC:t.Texts[i].LanguageIdC});r.ReasonCodeName=e.getCurrentLanguageText(t.Texts,"Name");n.ReasonCodes.push(r);n.selected.SelectedReasonCodeValue=null}};n.removeReasonCode=function(t){if(t){var r=i.defer();typeof t.IdC=="string"?o.confirm([{pageID:"RESOURCING",textID:"CONFIRMATION_REASONCODE_HEADING"},{pageID:"RESOURCING",textID:"CONFIRMATION_REASONCODE_DELETE",data:t}],null,function(){r.resolve();n.$apply()},function(){r.reject()}):r.resolve();r.promise.then(function(){if(typeof t.IdC=="string")t.Deleted=!0;else for(var i=0;i<n.ReasonCodes.length;i++)if(n.ReasonCodes[i].IdC==t.IdC){n.ReasonCodes.splice(i,1);return}})}};n.$on("updateEditor",function(t,i){n.onEditorUpdated(i)});f.onEditorEvent("valueChanged",function(n,t,i,r){if(t=="StartDate"||t=="End
1Date"){var u=!1,f=!i||!i.range||!i.range.length?r.StartDate:i.range[0],e=!i||!i.range||!i.range.length?r.EndDate:i.range[1];f<=e&&(u=!0);i&&(i.start.$setValidity("dateRangeInvalid",u),i.end.$setValidity("dateRangeInvalid",u))}});return this}]);angular.module("TiimaApp").controller("resourceDimensionItemEditorModalController",["$scope","$window","$uibModalInstance","$controller","$timeout","$q","$http","$uibModal","resourcingService","editorService","toolsService","localizationService","datasourceService","Dimension","DimensionItem","ReasonCode","ganttTask","newTask","startDate","endDate","templatePermissions",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k,d,g){r("baseModalController",{$scope:n,$uibModalInstance:i});n.editorForm=null;n.dimensionItemIdC=w.id;n.ganttTask=w;n.newTask=b;n.Data=null;n.okClicked=!1;n.startDate=k;n.endDate=d;n.templatePermissions=g?g:{Read:!1,Write:!1,Remove:!1};n.loading=!1;n.pickerSettings={showRoleDemandButton:!1,showPermissionButton:!1};n.printing=!1;n.showBarCodes=!1;n.dateRange={startDate:k?null:k,endDate:d?null:d};n.generatedByOptions=[];n.listFields=[{dataType:1,heading:"LIST_FIELDS.CODE",name:"Code","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,heading:"LIST_FIELDS.NAME",name:"Name",localize:!0,"class":"listcellName",headingClass:"listcellName"},];n.dataSources={reasonCodeDatasource:a.createDatasource({method:function(t){return n.getReasonCodes(t)}}),defaultReasonCodeDatasource:a.createDatasource({method:function(t){return n.getReasonCodes(t)}}),dimensionItemDataSource:a.createDatasource({method:function(t){return n.getDimensionItems(t)}})};n.reasonCodeItemTemplate="{{Code}} {{ReasonCodeName}}";n.resourceDimensionPermissionTemplate="{{Code}} {{Name}} ({{TypeName}})";n.dimensionItemTemplate="{{Code}} {{ DimensionItemName}}";i.opened.then(function(){n.generatedByOptions=[{Value:0,Name:l.getText("RESOURCING.GENERATEBY_NONE_LABEL")},{Value:1,Name:l.getText("RESOURCING.GENERATEBY_EMPLOYEEDEFAULT_LABEL")},{Value:2,Name:l.getText("RESOURCING.GENERATEBY_EMPLOYEEMAIN_LABEL")},{Value:3,Name:l.getText("RESOURCING.GENERATEBY_CUSTOM_LABEL")}]});var nt=function(t){t.StartDateEmpty=!n.dateRange.startDate;t.EndDateEmpty=!n.dateRange.endDate;t.StartDate=n.dateRange.startDate;t.EndDate=n.dateRange.endDate;n.loading=!0;s.saveItem(t,n.ganttTask,"update")||(n.loading=!1)};return n.initForm=function(t){n.editorForm=t;n.editorForm.$setPristine();n.dimensionItemIdC&&typeof n.dimensionItemIdC=="string"&&(n.loading=!0,y.getResourceDimensionItemInstance({idc:n.dimensionItemIdC,parentItems:!0,startDate:k,endDate:d}).then(function(t){var i=t&&t.Data?t.Data:null,u,o,e;n.Data=i;n.dateRange={startDate:n.Data.StartDateEmpty?null:n.Data.StartDate,endDate:n.Data.EndDateEmpty?null:n.Data.EndDate};i&&(s.processResourceDimensionItem(i),s.prepareDataForShowing(i));var r=s.getItem(i.IdC),f=[],e="administrating/Barcode.ashx?id="+r.UrlIdC+"&alignment=left&image-width=3000";if(f.push({BarCodeUrl:e}),r.SubItems)for(u=0;u<r.SubItems.length;u++)o=r.SubItems[u],e="administrating/Barcode.ashx?id="+o.UrlIdC+"&alignment=left&image-width=3000",f.push({BarCodeUrl:e});n.Data.BarCodeUrls=f;n.loading=!1;n.editorForm.$setPristine()},function(){n.loading=!1}))},n.editSettings=function(){var u=[],t,i,r;if(n.Data&&(t=n.Data.Dimension&&n.Data.Dimension.TopLevelParent?n.Data.Dimension.TopLevelParent:null,t&&u.push({DimensionIdC:t.IdC,Texts:t.Texts,Code:t.Code}),n.Data.Parents))for(i=n.Data.Parents.length-1;i>=0;i--)r=n.Data.Parents[i],u.push({DimensionItemIdC:r.IdC,Texts:r.Texts,Code:r.Code});s.editSettings(u).then(function(){})},n.getDimensionItems=function(t){var i=f.defer(),r={start:n.Data?n.Data.StartDate:new Date,end:n.Data?n.Data.EndDate:new Date};return y.getAll({DimensionIdC:t.dimensionIdC,Hierarchy:t.hierarchy,SearchFilter:t.searchFilter,FirstItemIndex:t.firstIndex,ItemCount:t.pageSize,StartDate:r.start,EndDate:r.end}).then(function(n){i.resolve(n)}),i.promise},n.getReasonCodes=function(n){return p.getAll(n)},n.getResourcingDimensionItemRoleDemandValues=function(){},n.getResourcingDimensionPermissionValue=function(){},h.registerUpdateCallback(n.updateEditorData=function(t){t&&(n.Data=t,n.okCl
1icked?i.close(t):(n.editorForm.$setPristine(),n.$broadcast("updateEditor",t)));n.loading=!1}),h.registerCloseEditorModalCallback(n.closeEditor=function(){i.close(null)}),n.valueChanged=function(t,i){h.editorValueChanged(t,i,n.Data)},n.getItemText=function(){var t=h.getOptions();if(t)if(!n.Data||n.Data._new){if(t.EmptyItemText)return t.EmptyItemText;if(t.EmptyItemTextCallback)return t.EmptyItemTextCallback()}else{if(t.ItemTextTemplate)return Mustache.render(t.ItemTextTemplate,n.Data);if(t.ItemTextCallback)return t.ItemTextCallback(n.Data)}return""},n.getItemPath=function(){var t=h.getOptions();if(t)if(n.Data&&n.Data.ID){if(t.ItemPathTemplate)return Mustache.render(t.ItemPathTemplate,n.Data);if(t.ItemPathCallback)return t.ItemPathCallback(n.Data)}else{if(t.EmptyItemPath)return t.EmptyItemPath;if(t.EmptyItemPathCallback)return t.EmptyItemPathCallback()}return""},n.isDeleteDisabled=function(n){return typeof n=="undefined"},n.onEditReadinessClick=function(n,t){t&&(t._readinessEditor=!0)},n.onEditBudget=function(){var t=o.open({backdrop:"static",keyboard:!1,templateUrl:"MVC/Modals/Resourcing/budgetEditor.html",scope:n,controller:"budgetEditor",resolve:{dimensionItem:function(){return n.Data},startDate:function(){return n.Data.StartDate},endDate:function(){return n.Data.EndDate}},windowClass:"budgetEditorModal"});t.result.then(function(){s.updateTotalBudget(n.Data)})},n.onCancelEditReadinessClick=function(n,t){t&&(t._readinessEditor&&delete t._readinessEditor,t._newReadiness&&delete t._newReadiness,t._newReadinessTimeStamp&&delete t._newReadinessTimeStamp)},n.onSelectTemplateClick=function(t,i){n.TemplateSelectorVisible=!0;i.ResourceDimensionTemplateIdC&&(i.ResourceDimensionTemplate={IdC:i.ResourceDimensionTemplateIdC,Text:[{Name:i.ResourceDimensionTemplateName,LanguageIdC:l.getCurrentLanguageIdc()}]})},n.onConfirmTemplateClick=function(t,i){n.TemplateSelectorVisible=!1;var r=s.getTemplate(i.ResourceDimensionTemplateIdC);r&&(i.ResourceDimensionTemplateName=l.getCurrentLanguageText(r.Texts,"Name"))},n.onCancelTemplateClick=function(t,i){if(n.TemplateSelectorVisible=!1,i.ResourceDimensionTemplate){i.ResourceDimensionTemplateIdC=i.ResourceDimensionTemplate.IdC;var r=l.getCurrentLanguageText(i.ResourceDimensionTemplate.Text);i.ResourceDimensionTemplateName=r?r.Name:""}},n.onSaveClick=function(t,i){n.okClicked=!1;nt(i)},n.onSaveTemplateClick=function(t,i){n.ModalInstance=o.open({backdrop:"static",keyboard:!1,templateUrl:"MVC/Modals/Resourcing/resourceDimensionItemTemplateEditor.html",scope:n,controller:"resourceDimensionItemTemplateEditor",resolve:{item:function(){return i}},windowClass:"templateEditorModal"});n.ModalInstance.result.then(function(t){t&&(n.loading=!0,y.saveResourceDimensionItemTemplate({Texts:t.Texts,ExcludeParent:t.ExcludeParent,DimensionItemIdC:i.IdC}).then(function(t){var r=i.Dimension,u=t.Data;r&&r.Templates&&u&&(v.handleTemplateTexts(u,l.getCurrentLanguageIdC()),r.Templates.push(u));n.loading=!1;c.splashDataMessage(t,"GLOBAL.SUCCESS_SAVE")},function(){n.loading=!1;c.splashDataMessage(null,"GLOBAL.ERROR_SAVE")}))});i.TemplateName=null;i.TemplateExcludeParent=!1},n.onPrintClick=function(){n.printing=!0;n.loading=!0;u(function(){n.loading=!1;t.print();n.printing=!1},3500)},n.onOK=function(t,i){n.okClicked=!0;nt(i)},n.onCancel=function(t,r){var u=function(){i.close({IdC:r.IdC,Cancel:!0,NewTask:n.newTask})};n.editorForm.$pristine?u():c.confirm(["RESOURCING.CONFIRMATION_CANCEL_HEADING","RESOURCING.CONFIRMATION_CANCEL_DELETE"],null,function(){u()})},n.onDelete=function(t,r){var u=h.getOptions(),e=null,f=null;e=u&&u.DeleteConfirmationHeading?u.DeleteConfirmationHeading:{pageID:"GLOBAL",textID:"DELETE_LABEL"};f=u&&u.DeleteConfirmationMessage?u.DeleteConfirmationMessage:{pageID:"GLOBAL",textID:"CONFIRM_DELETE"};f.data=r;c.confirm([e,f],[{pageID:"GLOBAL",textID:"BUTTON_YES"},{pageID:"GLOBAL",textID:"BUTTON_NO"}],function(){n.loading=!0;var t=y.getSaveResourceDimensionItemDeferred();s.deleteItem(r);t.then(function(){n.loading=!1;i.close(n.Data)},function(){n.loading=!1})})},n.validateDateRange=function(n){var t,i,r,u,f;n&&(t=null,i=null,n.startField&&n.endField&&n.startDate&&n.endDate&&(t=n.startDate,i=n.endDate,t&&i&&t.getTime&&i.getTime&&(r=t<=i,n.startField.$setValidity("dateRangeInvalid",r),n.endField.$setValidity("dateRangeInvalid",r),t&&i&&n.min&&n.max&&(u=n.min<=t&&t<=n.max,f=n.min<=i&&i<=n.max,n.startField.$setValidity("validateDateRange",u),n.endField.$setValidity("validateDateRange",f)))))},n.combineDateAndTime=function(t,i,r,u,f,e){var h=c.parseTime(i.$modelValue),s,o;t.$modelValue.getTime&&(s=new Date(t.$modelValue.getTime()),o=c.setTimePart(s,h),o.getTime&&(r&&(r[u]=o),e&&(f&&(e[f]=o),n.val
1idateDateRange(e))))},this}]);angular.module("TiimaApp").controller("resourceDimensionTemplatePreviewModalController",["$scope","$timeout","$uibModalInstance","$controller","localizationService","resourcingService","toolsService","Template",function(n,t,i,r,u,f,e,o){return r("baseModalController",{$scope:n,$uibModalInstance:i}),n.template=o,n.onClose=function(){i.close()},this}]);angular.module("TiimaApp").controller("budgetEditor",["$scope","$q","$timeout","$uibModalInstance","$controller","resourcingService","toolsService","ResourceDimensionItemPeriod","dimensionItem","startDate","endDate",function(n,t,i,r,u,f,e,o,s,h,c){return u("baseModalController",{$scope:n,$uibModalInstance:r}),n.DimensionItem=s,n.SelectedPeriod=null,n.startDate=h,n.endDate=c,n.Periods=[],n.TotalHours=0,n.TotalDays=0,r.opened.then(function(){i(function(){n.TotalHours=0;n.TotalDays=0;var t=n.DimensionItem&&n.DimensionItem.CurrentSettings?n.DimensionItem.CurrentSettings.PeriodType:1;o.getAll({DimensionItemIdC:n.DimensionItem.IdC,PeriodType:t,StartDate:n.startDate,EndDate:n.endDate}).then(function(t){var f=[],e,i,o,u;for(t&&t.DataList&&t.DataList.length&&(f=t.DataList),e={},u=0;u<f.length;u++)i=f[u],i.ResourceDimensionItemBudgetIdC=null,i.Hours=0,i.Days=0,i.Changed=!1,i.Deleted=!1,e[i.StartDate.getTime()+";"+i.EndDate.getTime()]=i;if(o=n.DimensionItem.BudgetPeriods,o)for(u=0;u<o.length;u++){var r=o[u],s=r.StartDate.getTime()+";"+r.EndDate.getTime(),i=e[s];i?(i.ResourceDimensionItemBudgetIdC=r.IdC,i.Hours=r.Hours,i.Days=r.Days,i.Unit=r.Unit,i._original=r):(e[s]=i={ResourceDimensionItemBudgetIdC:r.IdC,Hours:r.Hours,Days:r.Days,Unit:r.Unit,StartDate:new Date(r.StartDate.getTime()),EndDate:new Date(r.EndDate.getTime()),_original:r,Changed:!1,Deleted:!1},f.push(i));n.TotalHours+=i.Hours;n.TotalDays+=i.Days}f.sort(function(n,t){return n.StartDate.getTime()<t.StartDate.getTime()?-1:n.StartDate.getTime()>t.StartDate.getTime()?1:n.EndDate.getTime()<t.EndDate.getTime()?-1:n.EndDate.getTime()>t.EndDate.getTime()?1:0});n.Periods=f})})}),n.selectPeriod=function(t,i){if(i.target.tagName==="INPUT"){i.stopPropagation();return}n.SelectedPeriod==t&&(day=null);n.SelectedPeriod=t},n.changeTotal=function(){var t;if(n.TotalHours=0,n.TotalDays=0,n.Periods)for(t=0;t<n.Periods.length;t++){var i=n.Periods[t],r=parseFloat(i.Hours),u=parseFloat(i.Days);n.TotalHours+=isNaN(r)?0:r;n.TotalDays+=isNaN(u)?0:u}},n.onOK=function(){for(var t,i=[],f=n.DimensionItem&&n.DimensionItem.CurrentSettings?n.DimensionItem.CurrentSettings.PlanningUnit:1,u=0;u<n.Periods.length;u++)t=n.Periods[u],t.Hours||t.Days||(t.ResourceDimensionItemBudgetIdC?t.Deleted=!0:t=null),t&&(t._original&&!t.Deleted&&(t.Changed=t._original.Hours!=t.Hours||t._original.Days!=t.Days),i.push({IdC:t.ResourceDimensionItemBudgetIdC,StartDate:t.StartDate,EndDate:t.EndDate,Hours:t.Hours,Days:t.Days,Unit:f?f:t.Unit,Changed:t.Changed,Deleted:t.Deleted}));n.DimensionItem.BudgetPeriods=i;r.close(i)},this}]);angular.module("TiimaApp").controller("absenceGeneratingSettingModalController",["$scope","$rootScope","$window","$http","$q","$timeout","$uibModalInstance","$controller","localizationService","settingService","toolsService","selectedSubItems","subItemType","ReasonCode","GroupItem","PaymentGroup","UserGroup",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w){o("baseModalController",{$scope:n,$uibModalInstance:e});n.TotalCount=0;n.PageIndex=0;n.PageCount=0;n.PageSize=10;n.SearchFilter={Text:""};n.subItemType=a;n.SubItemTypes={reasonCode:1,groupItem:2,paymentGroup:3,userGroup:4};n.selectedSubItems=l;n.checkedSubItems=[];n.subItems=[];n.showCodeColumn=n.subItemType!=n.SubItemTypes.userGroup;n.allSubItemsSelected=!1;n.cancel=function(){e.close(null)};n.search=function(){n.PageIndex=0;n.getSubItems(!0)};n.prevPage=function(){n.PageIndex--;n.getSubItems(!0)};n.nextPage=function(){n.PageIndex++;n.getSubItems(!0)};n.ok=function(){var t=[];for(var i in n.checkedSubItems)n.checkedSubItems[i]!=null&&t.push(n.checkedSubItems[i]);e.close(t)};n.subItemChecked=function(){f(function(){n.subItemCheckedTimedOut()})};n.subItemCheckedTimedOut=function(){n.allSubItemsSelected=!0;for(var t=0;t<n.subItems.length;t++)n.subItems[t].Selected?n.checkedSubItems[n.subItems[t].IdC]=n.subItems[t]:(n.checkedSubItems[n.subItems[t].IdC]=null,n.allSubItemsSelected=!1)};n.selectAll=function(){n.checkedSubItems=[];for(var t=0;t<n.subItems.length;t++)n.subItems[t].Selected=n.allSubItemsSelected,n.allSubItemsSelected&&(n.checkedSubItems[n.subItems[t].IdC]=n.subItems[t])};n.getSubItems=function(t){t||(n.checkedSubItems=[]);var i=null;n.subItemType==n.SubItemTypes.reasonCode&&(i=v.getAll({FirstIndex:n.PageIndex*n.PageSize,ItemCount:n.PageSize,SearchFilter:n.SearchFilter.Text,AbsenceGeneratingSettingReasonCodesOnly:!0,StartDate:new Date,EndDate:new Date}));n.subItemType==n.SubItemTypes.groupItem&&(i=y.getAll({FirstIndex:n.PageIndex*n.PageSize,ItemCount:n.PageSize,OrderByField:3,SearchFilter:n.SearchFilter.Text}));n.subItemType==n.SubItemTypes.paymentGroup&&(i=p.getAll({FirstIndex:n.PageIndex*n.PageSize,ItemCount:n.PageSize,SearchFilter:n.SearchFilter.Text,StartDate:new Date,EndDate:new Date}));n.subItemType==n.SubItemTypes.userGroup&&(i=w.getAll({FirstIndex:n.PageIndex*n.PageSize,ItemCount:n.PageSize,SearchFilter:n.SearchFilter.Text}));i&&i.then&&i.then(function(t){if(t&&t.DataList){n.subItems=t.DataList;n.TotalCount=t.TotalRows;n.PageCount=Math.ceil(n.TotalCount/n.PageSize);n.allSubItemsSelected=!0;for(var i=0;i<n.subItems.length;i++)n.subItems[i].Selected=n.checkedSubItems[n.subItems[i].IdC]?!0:!1,n.subItems[i].Selected||(n.allSubItemsSelected=!1),n.subItemType==n.SubItemTypes.reasonCode?(n.subItems[i]=new v(n.subItems[i]),n.subItems[i].Name=n.subItems[i].ReasonCodeName?n.subItems[i].ReasonCodeName:n.subItems[i].Name,n.subItems[i].ReasonCodeCode=n.subItems[i].Code,n.subItems[i].ReasonCodeIdC=n.subItems[i].IdC):n.subItemType==n.SubItemTypes.groupItem?(n.subItems[i]=new y(n.subItems[i]),n.subItems[i].Name=n.subItems[i].GroupItemName?n.subItems[i].GroupItemName:n.subItems[i].Name,n.subItems[i].GroupItemCode=n.subItems[i].Code,n.subItems[i].GroupItemIdC=n.subItems[i].IdC):n.subItemType==n.SubItemTypes.paymentGroup?(n.subItems[i]=new p(n.subItems[i]),n.subItems[i].Name=n.subItems[i].PaymentGroupName?n.subItems[i].PaymentGroupName:n.subItems[i].Name,n.subItems[i].PaymentGroupCode=n.subItems[i].Code,n.subItems[i].PaymentGroupIdC=n.subItems[i].IdC):n.subItemType==n.SubItemTypes.userGroup&&(n.subItems[i]=new w(n.subItems[i]),n.subItems[i].Name=n.subItems[i].UserGroupName?n.subItems[i].UserGroupName:n.subItems[i].Name,n.subItems[i].UserGroupName=n.subItems[i].Name?n.subItems[i].Name:n.subItems[i].UserGroupName,n.subItems[i].UserGroupIdC=n.subItems[i].IdC)}n.subItemType!=n.SubItemTypes.groupItem&&n.subItems.sort(function(n,t){return n.Name.toLowerCase()>t.Name.toLowerCase()&&(n.Ordinal?n.Ordinal:0)==(t.Ordinal?t.Ordinal:0)||(n.Ordinal?n.Ordinal:0)>(t.Ordinal?t.Ordinal:0)?1:n.Name.toLowerCase()<t.Name.toLowerCase()&&(n.Ordinal?n.Ordinal:0)==(t.Ordinal?t.Ordinal:0)||(n.Ordinal?n.Ordinal:0)<(t.Ordinal?t.Ordinal:0)?-1:0})})};n.getSubItems(!1)}]);angular.module("TiimaApp").controller("workhourSettingsEditorModalController",["$scope","$timeout","$uibModalInstance","$controller","localizationService","toolsService","workhourSettingsService","WorkhourSetting","date","permissions",function(n,t,i,r,u,f,e,o,s,h){return r("baseModalController",{$scope:n,$uibModalInstance:i}),n.selectedSettingParent=null,n.settingParents=[],n.values={selectedIndex:0},n.dimensions=null,n.paymentGroups=null,n.reasonCodes=null,n.loading=!1,n.date=s,n.topLevelSettings=null,n.permissions=h?h:{general:!1,user:!1},n.customSettings=null,n.changed=!1,i.opened.then(function(){e.clearSettingsCache();o.getAll({date:n.date}).then(function(t){var r,f,i;n.settingParents=[];r=t?t.DataList:null;r&&r.length||(r=[{ViewType:1,Properties:0,InheritedSettings:!1,OrganisationIdC:null,UserIdC:null,Name:null}]);f=null;i=null;_.forEach(r,function(t,r){var o,s;t.DisplayName=t.UserIdC?u.getText("WORKHOURSX.USER_SETTINGS"):t.OrganisationIdC?u.getText("WORKHOURSX.ORGANISATION_SETTINGS")+": "+t.Name:u.getText("WORKHOURSX.GENERAL_SETTINGS");o={Index:r,Name:t.DisplayName,UserIdC:t.UserIdC,OrganisationIdC:t.OrganisationIdC,Enabled:t.UserIdC?
1n.permissions.user:n.permissions.general};n.settingParents.length>0&&(o.Parent=n.settingParents[n.settingParents.length-1]);n.settingParents.push(o);s=!t.UserIdC&&!t.OrganisationIdC;s&&(t.Dimensions&&(n.dimensions=t.Dimensions),t.PaymentGroups&&(n.paymentGroups=t.PaymentGroups,_.forEach(n.paymentGroups,function(n){n.DefaultPeriod=!!n.DefaultPeriod})),t.ReasonCodes&&(n.reasonCodes=t.ReasonCodes));t=e.prepareSettings(t);s&&(n.topLevelSettings=t);t.InheritedSettings&&(t.Owner=f);t.InheritedSettings||(f=o);i&&(t.Next=i,i.Prev=t);i=t;o.Settings=t});n.values.selectedIndex=r.length-1;n.topLevelSettings&&n.topLevelSettings.Settings&&_.forEach(n.topLevelSettings.Settings,function(t){if(t.Name==="WORKHOURSX.SETTING_PROPERTY_DEFAULTPERIODPERPAYMENTGROUP")return n.DefaultPeriodPerPaymentGroup=t.Value,!1});n.settingParents&&n.settingParents.length&&n.selectSettingParent(n.settingParents[0]);i&&e.cacheSettings(i)})}),n.$watch("values.selectedIndex",function(t,i){if(t!==i){var r=Number(t);r>=0&&r<n.settingParents.length&&n.selectSettingParent(n.settingParents[r])}}),n.selectSettingParent=function(i){n.selectedSettingParent=i;t(function(){e.setSettingsParent(i)})},n.dimensionsChanged=function(t){t&&(t.Changed=!0,n.topLevelSettings&&(n.topLevelSettings.Changed=!0),n.changed=!0)},n.paymentGroupChanged=function(t){t&&(t.Changed=!0,n.topLevelSettings&&(n.topLevelSettings.Changed=!0),n.changed=!0)},n.reasonCodeChanged=function(t){t&&(t.Changed=!0,n.topLevelSettings&&(n.topLevelSettings.Changed=!0),n.changed=!0)},n.$on("changed",function(){n.changed=!0}),n.onOK=function(){var n=e.prepareSettingsForSaving();n&&n.length?e.saveSettings(n).then(function(n){var t=f.getDataMessage(n,n.Status=="1"?"GLOBAL.SUCCESS_SAVE":"GLOBAL.ERROR_SAVE");f.showSplash(t,n.Status=="1"?"okMessage":"errorMessage");n.Status=="1"&&i.close(n.Data)},function(){}):i.close(null)},n.onCancel=function(){i.close(null)},this}]);angular.module("TiimaApp").controller("copyWorkhourModalController",["$scope","$timeout","$uibModalInstance","$controller","localizationService","toolsService","tiimaEnumsService","workhoursService","workhourViewType","selectedPeriod","sourceData","targetRange","dimensions","columnReasonCodes","otherReasonCodes","holidays","employmentData",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w){return r("baseModalController",{$scope:n,$uibModalInstance:i}),n.viewType=s,n.sourceData=c,n.selectedPeriod=h,n.startDate=h.StartDate,n.endDate=h.EndDate,n.targetRange=l,n.holidays=p,n.otherReasonCodes=y,n.source=[],n.target=[],n.dimensions=a,n.columnReasonCodes=v,n.employmentData=w,n.range={Start:n.startDate,End:n.endDate,Length:0,Occupied:{},Locked:{}},n.initialRange={},n.scroll={width:0},n.showHint=!1,n.daySettings={Monday:!0,Tuesday:!0,Wednesday:!0,Thursday:!0,Friday:!0,Saturday:!0,Sunday:!0,SkipHolidays:!1,IsOpen:!1,FixWeekDays:!1},n.settingsDisabled=n.targetRange?!0:!1,i.opened.then(function(){var i,u,r;t(function(){$("#copyWHRightScroller").bind("scroll",function(t){var r=t.target.scrollLeft,i;n.scroll.x=r;$("#copyWHRightHeading")[0].scrollLeft=r;t.target.scrollTop!=n.scroll.y&&(i=n.scroll.y=t.target.scrollTop,i<5&&(i=0,$("#copyWHRightScroller")[0].scrollTop=i),$("#copyWHLeftScroller")[0].scrollTop=i)})});i=n.prepareSourceData(n.selectedPeriod,n.sourceData,n.range,n.startDate,n.endDate);n.source=i?i.source:[];u=i?i.firstDate:n.startDate;r=i?i.lastDate:n.endDate;n.scroll.width=o.calculateScrollWidth(n.dimensions,n.columnReasonCodes,!1,!1,!0);n.source.length&&(n.targetRange?(n.range.Start=n.targetRange.StartDate,n.range.End=n.targetRange.EndDate,n.range.Length=f.getDateDifference(n.range.End,n.range.Start).days):(n.range.Start=f.addDays(r,1),n.range.Length=f.getDateDifference(r,u).days,n.range.End=f.addDays(n.range.Start,n.range.Length)),n.initialRange=angular.copy(n.range));n.performCopy()}),n.prepareSourceData=function(t,i,r,u,f){var o=n.prepareSourceByDate(i),l=o?o.byDate:{},s=o?o.firstDate:u,h=o?o.lastDate:f,c=[];return n.viewType==e.getValue("WorkhourViewType","DaysVertical")?c=n.prepareSourceDataForDaysVertical(t,l,r,s,h):n.viewType==e.getValue("WorkhourViewType","WeekEditor")&&(c=n.prepareSourceDataForWeekEditor(t,l,r,s,h)),{source:c,firstDate:s,lastDate:h}},n.prepareSourceByDate=function(t){var i={byDate:{},firstDate:null,lastDate:null},r,u,f;if(t&&t.length)if(n.viewType==e.getValue("WorkhourViewType","DaysVertical"))for(i.firstDate=t[0].Date,i.lastDate=t[t.length-1].Date,r=0;r<t.length;r++)u=t[r],f=i.byDate[u.Date.getTime()],f||(i.byDate[u.Date.getTime()]=f=[]),f.push(u);else if(n.viewType==e.getValue("WorkhourViewType","WeekEditor"))for(i.firstDate=t[0].day.date,i.lastDate=t[t.length-1].day.date,r=0;r<t.length;r++)u=t[r],f=i.byDate[u.day.date.getTime()],f||(i.byDate[u.day.date.getTime()]=f=[]),f.push(u);return i},n.prepareSourceDataForDaysVertical=function(t,i,r,u,f){var d=[],v,w,o,l,g,y,p,a,k,s,e;if(t&&t.WorkingDays){for(v={},w={},n.columnReasonCodes||(n.columnReasonCodes=[]),e=0;e<n.columnReasonCodes.length;e++)v[n.columnReasonCodes[e].IdC]=!0;for(e=0;e<n.otherReasonCodes.length;e++)w[n.otherReasonCodes[e].IdC]=n.otherReasonCodes[e];var h=[],b=null,c=null;for(e=0;e<t.WorkingDays.length;e++)if(o=t.WorkingDays[e],!b||o.Date.getTime()!=b.getTime()){if(b=new Date(o.Date.getTime()),u<=o.Date&&o.Date<=f&&(l=i[o.Date.getTime()],g=!l,c&&o.Date!=c.Date&&(c=null),c||d.push(c={Date:o.Date,WorkHours:[],EmptyDay:g}),l))for(s=0;s<l.length;s++)if(c.WorkHours.push(l[s]),y=l[s].ReasonCodes,y)for(p=0;p<y.length;p++)a=y[p],!a.Data||v[a.ReasonCodeIdC]||a.AbsenceReasonCode||(h.push(w[a.ReasonCodeIdC]),v[a.ReasonCodeIdC]=!0);if(k=!1,o.ReasonCodes)for(s=0;s<o.ReasonCodes.length;s++)if(o.ReasonCodes[s].Data){k=!0;break}k&&(r.Occupied[o.Date.getTime()]=!0);(o.ProcessingLocks||o.AcceptorLock||o.EmployeeLock)&&(r.Locked[o.Date.getTime()]=!0)}if(h&&h.length)for(h.sort(function(n,t){return n.Ordinal<t.Ordinal?-1:t.Ordinal<n.Ordinal?1:0}),e=0;e<h.length;e++)n.columnReasonCodes.push(h[e])}return d},n.prepareSourceDataForWeekEditor=function(t,i,r,u,f){var tt=[],a,v,y,g,p,e,c,it,w,o,b,k,s,nt;if(t&&t.weeks){var d=null,h=null,l={byID:{},list:[]};for(a=0;a<t.weeks.length;a++)if(v=t.weeks[a],v.rows)for(y=0;y<v.rows.length;y++)for(g=v.rows[y],p=0;p<g.days.length;p++)if(e=g.days[p],!d||e.date.getTime()!=d.getTime()){if(d=new Date(e.date.getTime()),u<=e.date&&e.date<=f&&(c=i[e.date.getTime()],it=!c,h&&e.date!=h.Date&&(h=null),h||tt.push(h={Date:e.date,WorkHours:[],EmptyDay:it}),c))for(w=0;w<c.length;w++)if(o=c[w],o&&o.day&&o.row&&o.day.Data){if(b={ReasonCodes:[],Dimensions:[]},o.row.dimensions)for(k=0;k<o.row.dimensions.length;k++)b.Dimensions.push(angular.copy(o.row.dimensions[k]));o.row.ReasonCode&&(s=angular.copy(o.row.ReasonCode),l.byID[s.IdC]||(l.byID[s.IdC]=!0,l.list.push(angular.copy(s))),s.Data=angular.copy(o.day.Data),s.ReasonCodeIdC=s.IdC,b.ReasonCodes.push(s));h.WorkHours.push(b)}nt=!1;e.Data&&(nt=!0);nt&&(r.Occupied[e.date.getTime()]=!0);(e.ProcessingLocks||e.AcceptorLock||e.EmployeeLock)&&(r.Locked[e.date.getTime()]=!0)}n.columnReasonCodes=l.list}return tt},n.dateRangeChanged=function(i){var r=!1;i=="start"?(n.range.Start<n.startDate&&(r=!0),n.range.Start>n.endDate&&(r=!0),n.range.End=f.addDays(n.range.Start,n.range.Length),n.range.End>n.endDate&&(n.range.End=n.endDate)):n.range.End<n.startDate||n.range.End>n.endDate?r=!0:n.range.Start>n.range.End&&(n.range.Start=n.range.End,n.showHint=!0);r&&(n.range=angular.copy(n.initialRange),n.showHint=!0);n.range.Length=f.getDateDifference(n.range.End,n.range.Start).days;n.showHint&&t(function(){n.showHint=!1},3e3);n.performCopy()},n.performCopy=function(){var h,r,a,u,g,s,v,t,nt;n.target=[];var ut=f.getDateDifference(n.range.Start,n.startDate).days,ft=f.getDateDifference(n.range.End,n.startDate).days,et=f.getDateDifference(n.range.End,n.range.Start),w={};if(n.columnReasonCodes)for(r=0;r<n.columnReasonCodes.length;r++)w[n.columnReasonCodes[r].IdC]=n.columnReasonCodes[r];h=[];n.columnReasonCodes&&n.columnReasonCodes.length&&h.push(n.columnReasonCodes);n.otherReasonCodes&&n.otherReasonCodes.length&&h.push(n.otherReasonCodes);var tt=o.prepareUsages(n.employmentData,null,h,n.range.Start,et.days),it=tt?tt.perDayReasonCodeUsages:{},ot=[!n.daySettings.Sunday,!n.daySettings.Monday,!n.daySettings.Tuesday,!n.daySettings.Wednesday,!n.daySettings.Thursday,!n.daySettings.Friday,!n.daySettings.Saturday],b=0,c=null;for(r=ut;r<=ft;r++){var e=n.source[b],i=f.addDays(n.startDate,r),k=i.getFullYear()+"/"+i.getMonth()+"/"+i.getDate(),st=n.daySettings.SkipHolidays&&n.holidays[k],l=ot[i.getDay()],d=st||l||n.range.Occupied[i.getTime()]||!e.WorkHours||e.EmptyDay;if((n.daySettings.FixWeekDays&&e.WorkHours&&e.WorkHours.length&&e.WorkHours[0].Date.getDay()!=i.getDay()&&(d=!0,l=!0),n.range.Locked[i.getTime()]&&(l=!0),d&&n.target.push({Date:i,EmptyDay:!0,ShowDate:!0,DateKey:k}),!l)&&(b=(b+1)%n.source.length,!d))for(a=0;a<e.WorkHours.length;a++){for(u={Date:i,Dimensions:[],ReasonCodes:[],ShowDate:!0,DateKey:k,Description:null},c&&u.Date==c&&(u.ShowDate=!1),c=u.Date,g=it?it[i.getTime()]:null,s=e.WorkHours[a],s&&s.Description&&(u.Description=s.Description),v=0;v<s.Dimensions.length;v++){t=angular.copy(s.Dimensions[v]);t.IdC&&delete t.IdC;t.SelectedItem&&t.SelectedItem.WorkDimensionItemIdC&&delete t.SelectedItem.WorkDimensionItemIdC;var y=0,p=864e13,rt=c.getTime();t&&t.SelectedItem&&(t.SelectedItem.StartDate&&(y=t.SelectedItem.StartDate.getTime()),t.SelectedItem.EndDate&&(p=t.SelectedItem.EndDate.getTime()),isNaN(y)&&(y=0),isNaN(p)&&(p=864e13));(rt<y||rt>p)&&(t.SelectedItem=null,t.DimensionItemIdC=null);u.Dimensions.push(t)}nt={};_.forEach(s.ReasonCodes,function(n){var t=angular.copy(n);t.Data&&t.Data.Absence||t.ReadOnly||t.AbsenceReasonCode?delete t.Data:(t.ReasonCodeIdC&&w[t.ReasonCodeIdC]&&
1(t.Property=angular.copy(w[t.ReasonCodeIdC].Property)),t.Data&&t.Data.IdC&&delete t.Data.IdC,g&&!g[t.ReasonCodeIdC]&&delete t.Data);nt[t.ReasonCodeIdC]=t});_.forEach(n.columnReasonCodes,function(n){var t=nt[n.IdC];t||(t={ReasonCodeIdC:n.IdC,DataType:n.DataType,UseCheckBox:n.UseCheckBox});u.ReasonCodes.push(t)});n.target.push(u)}}},n.onDaySettingClick=function(i){i.stopPropagation();i.target.tagName==="A"?i.preventDefault():t(function(){n.performCopy()})},n.onCancel=function(){i.close(null)},n.onOk=function(){for(var r,u=[],t=0;t<n.target.length;t++)r=n.target[t],r.EmptyDay||u.push(r);i.close(u)},this}]);angular.module("TiimaApp").controller("swapShiftsModalController",["$scope","$timeout","$uibModalInstance","$controller","localizationService","toolsService","tiimaEnumsService","workhoursService","Employee","employeeIdC","shift","shiftData",function(n,t,i,r,u,f,e,o,s,h,c,l){return r("baseModalController",{$scope:n,$uibModalInstance:i}),n.employeeIdC=h,n.shift=c,n.shiftData=l,n.operation=1,n.shiftDate=new Date(c.Date.getTime()),n.dateRange={startDate:new Date(c.Date.getTime()),endDate:new Date(c.Date.getTime()),minDateOffset:0,maxDateOffset:0},n.employees=null,n.selectedEmployee=null,n.selectedShifts=null,n.pageCount=0,n.pageIndex=0,n.pagingInfo={FirstIndex:0,LastIndex:0,TotalCount:0},n.firstIndex=0,n.itemCount=10,n.sortOrder=0,n.orderByField=0,n.searchFilter="",n.previousSearchFilter="",n.searchTimeout=null,i.opened.then(function(){var i,t,r,u;n.updateEmployees();i=new Date;t=o.getSelectedPeriod();t&&(r=f.getDateDifference(t.StartDate,i),u=f.getDateDifference(t.EndDate,i),n.dateRange.minDateOffset=r.days,n.dateRange.maxDateOffset=u.days)}),n.updateEmployees=function(){var i=n.shift.WorkPlanIdC,t;n.selectedEmployee=null;t={Items:[{Type:e.getValue("AbsenceQueryParameterTypeEnum","WorkPlan"),DataType:e.getValue("AbsenceQueryParameterValueType","ID"),IdCValue:i},{Type:e.getValue("AbsenceQueryParameterTypeEnum","SkippedEmployee"),DataType:e.getValue("AbsenceQueryParameterValueType","ID"),IdCValue:n.employeeIdC},{Type:e.getValue("AbsenceQueryParameterTypeEnum","NoShifts"),DataType:e.getValue("AbsenceQueryParameterValueType","Enum"),EnumValue:1},],FirstIndex:n.firstIndex,ItemCount:n.ItemCount,SortOrder:n.sortOrder,OrderByField:n.orderByField,StartDate:n.operation==1?n.shiftDate:n.dateRange.startDate,EndDate:n.operation==1?n.shiftDate:n.dateRange.endDate,SearchFilter:n.searchFilter};s.getAllForWorkhours(t).then(function(i){var o,s,r,u,e;if(i&&(n.pageCount=Math.ceil(i.TotalRows/n.itemCount),n.pageIndex=Math.floor(n.firstIndex/n.itemCount)+1,n.totalCount=i.TotalRows,n.employees=i.DataList,n.pagingInfo={FirstIndex:n.pageIndex*n.itemCount+1,LastIndex:n.itemCount*(n.pageIndex+1),TotalCount:n.totalCount},n.pagingInfo.LastIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.LastIndex=n.pagingInfo.TotalCount),n.pagingInfo.FirstIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.FirstIndex=n.pagingInfo.TotalCount),n.shiftData))for(n.selectedShifts=[],o=t.StartDate,s=f.addDays(t.EndDate,1),r=0;r<n.shiftData.length;r++)u=n.shiftData[r],e=u.StartTime.getTime(),o.getTime()<=e&&e<s.getTime()&&n.selectedShifts.push(u)})},n.$watch("searchFilter",function(t,i){t!=i&&n.search(i)}),n.search=function(i,r){if(!n.searchTimeout){r||(r=120);var u=i;n.searchTimeout=t(function(){var t=n.previousSearchFilter;n.searchFilter!=t&&(n.pageIndex=0,n.previousSearchFilter=n.searchFilter,n.updateEmployees());n.searchTimeout=null},r)}},n.sortByField=function(t){n.orderByField==t&&(n.sortOrder=1-n.sortOrder);n.orderByField=t;n.updateEmployees()},n.firstPage=function(){n.firstIndex=0;n.updateEmployees()},n.prevPage=function(){n.firstIndex>=n.itemCount&&(n.firstIndex-=n.itemCount,n.updateEmployees())},n.nextPage=function(){n.totalCount>n.firstIndex+n.itemCount&&(n.firstIndex+=n.itemCount,n.updateEmployees())},n.lastPage=function(){n.firstIndex=n.itemCount*(n.pageCount-1);n.updateEmployees()},n.dateRangeChanged=function(){n.updateEmployees()},n.selecteEmployee=function(t){n.selectedEmployee=t==n.selectedEmployee?null:t},n.onCancel=function(){i.close(null)},n.onOk=function(){var r=null,t,u;if(n.selectedEmployee&&n.selectedShifts)for(r=[],t=0;t<n.selectedShifts.length;t++)u=n.selectedShifts[t],r.push({WorkPlanDataIdC:u.WorkPlanDataIdC,TempRow:u.ShiftType==2?!1:!0,TargetEmployeeIdC:n.selectedEmployee.IdC,Operation:n.operation});i.close(r)},this}]);angular.module("TiimaApp").controller("travelClaimAlertModalController",["$scope","$timeout","$q","$uibModalInstance","$controller","localizationService","toolsService","tiimaEnumsService","workhoursService","TravelClaim","travelClaims","viewOnly",function(n,t,i,r,u,f,e,o,s,h,c,l){return u("baseModalController",{$scope:n,$uibModalInstance:r}),n.travelClaims=c,n.viewOnly=l,n.acceptPermission=s.getPermission("acceptTravelClaims"),n.totalAmount=0,n.args={acceptTravelClaims:!1},n.loading=!1,r.opened.then(function(){var t,i;if(n.travelClaims)for(t=0;t<n.travelClaims.length;t++)i=n.travelClaims[t],n.totalAmount+=Number(i.Amount)}),n.onCancel=function(){r.close({cancel:!0})},n.onOk=function(){var f=null,t=i.defer(),u,c;if(n.args.acceptTravelClaims&&s.getPermission("acceptTravelClaims"))if(n.travelClaims){for(f=[],u=0;u<n.travelClaims.length;u++)c=n.travelClaims[u],f.push({IdC:c.IdC,Status:o.getValue("TransactionStatusEnum","Accepted"),Updated:!0});n.loading=!0;h.saveBatch(f).then(function(i){n.loading=!1;i.Status?t.resolve():(e.showSplash("WORKHOURSX.ERROR_ACCEPTING_TRAVEL_CLAIMS_FAILED","errorMessage"),t.reject())})}else t.resolve();else t.resolve();t.promise.then(function(n){r.close(n?n:null)})},this}]);angular.module("TiimaApp").controller("travelClaimEditorModalController",["$scope","$timeout","$q","$uibModalInstance","$http","$uibModal","$controller","localizationService","toolsService","tiimaEnumsService","settingService","TravelClaim","Dimension","ReasonCode","Employee","WorkingDay","travelClaimIdC","viewOnly","option","employeeName","employeeIdC","settings","defaultVehicleC
1ode","dimensions",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k,d,g,nt,tt,it){function et(n,t){if(n.Date&&t.Date&&n.Date&&t.Date){if(n.Date>t.Date)return 1;if(n.Date<t.Date)return-1;if(n.AllowanceType&&t.AllowanceType){if(n.AllowanceType>t.AllowanceType)return 1;if(n.AllowanceType<t.AllowanceType)return-1}}return 0}var rt,ut;e("baseModalController",{$scope:n,$uibModalInstance:r});n.dimensions=it?it:[];n.loading=!1;n.settings={step:0,travelClaim:null,viewOnly:b,option:k,header:null,countries:null,vehicles:null,currentView:null,name:null,defaultVehicleCode:tt};n.datesForDimensionPicker={StartDate:new Date,EndDate:new Date};n.summary={kilometresSum:0,kilometreAllowanceSum:0,allowanceSum:0,wholeSum:0};viewValue={StartDate:null,StartTime:null,EndDate:null,EndTime:null};n.errorsStep2={errorNoKilometreAllowances:!1,errorRequiredDefaultDimensions:!1,errorRequiredDayDimensions:!1,errorRequiredKMDimensions:!1};n.step2ErrorCount=0;n.errorLevel=0;n.vehicleReasonCodes=null;n.requiredDimensions=[];n.missingDimensionItems={defaultDimensionItems:null,dayDimensionItems:null,KMDimensionItems:null};n.viewTypes=[{number:1,template:"MVC/Modals/WorkHours/travelClaimEditorStep1.html"},{number:2,template:"MVC/Modals/WorkHours/travelClaimEditorStep2.html"},{number:3,template:"MVC/Modals/WorkHours/travelClaimEditorStep3.html"}];n.countryHeadingFormat=o.getText("GLOBAL.AUTOCOMPLETE_DEFAULT_BROWSING_TEXT_FORMAT");n.countryItemTemplate="{{Code}} {{Name}}";n.countrySearchResultTemplate="<div class='listcellCode'>{{Code}}<\/div><div class='listcellName'>{{Name}}<\/div>";n.showData={employeeID2:!1,employeeOrganisation:!1,dimensions:!1};n.listWidth=1300;viewValueChanged=!1;rt=function(){n.loading=!0};ut=function(){t(function(){n.loading=!1},200)};r.opened.then(function(){n.settings.option==3&&(n.settings.step=1);n.settings.currentView=n.viewTypes[n.settings.step].template;n.showData.employeeID2=nt.employeeID2;n.showData.employeeOrganisation=nt.employeeOrganisation;n.showData.dimensions=nt.dimensions;n.loading=!0;var t=new Date,p=new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0),r=g?g:c.getSetting("CurrentEmployeeIdC"),u="",f="",e="",s="";i.all([l.getVehicles(),k==2?l.getCountries():null,a.checkRequiredDimensions({forTravelClaim:!0}),y.getAllForTravelClaim({EmployeeIdC:r,Date:p}),v.getAll({GetVehicleReasonCodes:1})]).then(function(t){var i,a,p,v,b,l,y,c,d;if(t[0]&&t[0].DataList&&t[0].DataList.length&&(n.settings.vehicles=t[0].DataList),t[1]&&t[1].DataList&&t[1].DataList.length&&(n.settings.countries=[],n.settings.countryCodes={},n.settings.countryIdCValues={},_.forEach(t[1].DataList,function(t,i){n.settings.countries.push(t);t.Index=i+1;n.settings.countryCodes[t.Code]=t;n.settings.countryIdCValues[t.IdC]=t})),t[2]&&t[2].RequiredDimensions&&t[2].RequiredDimensions.length&&(n.requiredDimensions=t[2].RequiredDimensions),t[3]&&t[3].DataList&&(i=t[3].DataList[0],i&&i.EmploymentData&&(e=i.ID2,s=i.FirstName+" "+i.LastName,a=i.EmploymentData[0],a&&(u=a.OrganisationCode,f=a.OrganisationName))),t[4]&&t[4].DataList&&(n.vehicleReasonCodes=[],n.vehicleReasonCodes=t[4].DataList),n.settings.vehicles&&n.vehicleReasonCodes){for(p=[],v=0;v<n.vehicleReasonCodes.length;v++)for(b=n.vehicleReasonCodes[v],l=0;l<n.settings.vehicles.length;l++)y=n.settings.vehicles[l],b.AllowanceTypeIDText==y.Code&&(y.Index=l,p.push(y));n.settings.vehicles=p}w?w&&n.refreshTravelClaim(w):(viewValueChanged=!0,c={EmployeeName:s,EmployeeIdC:r,IdC:null,TravelTypeID:k,StartDate:new Date,EndDate:new Date},n.showData.employeeOrganisation&&(c.OrganisationCode=u,c.OrganisationName=f),n.showData.employeeID2&&(c.EmployeeID2=e),d=h.getKey("TravelType",k),c.TravelTypeText=o.getText("ENUMERATIONS.M2_TRAVELTYPE_"+d.toUpperCase()),n.settings.travelClaim=c,k&&n.setHeader(k),k&&k==2&&(n.settings.travelClaim.Country=n.settings.travelClaim.CountryIdC=n.settings.travelClaim.CountryName=n.settings.travelClaim.CountryCode=null),ut());n.calculateListWidth()})});n.calculateListWidth=function(){if(n.showData.dimensions){n.listWidth=80;n.listWidth+=120;n.listWidth+=180;n.listWidth+=100;for(var t=0;t<n.dimensions.length;t++)n.dimensions[t].Visible&&(n.listWidth+=120);n.listWidth+=40;n.listWidth<920&&(n.listWidth="100%")}else n.listWidth="100%"};n.refreshTravelClaim=function(t){rt();l.getTravelClaim({IdC:t}).then(function(t){t&&t.IdC&&(n.settings.travelClaim=t,n.doAfterRefresh());ut()})};n.doAfterRefresh=function(){var t,i,r;if(n.settings.travelClaim.Days)for(t=0;t<n.settings.travelClaim.Days.length;t++)i=n.settings.travelClaim.Days[t],i.WeekDay=n.getWeekDay(i.Date),n.selectVehicle(i);viewValueChanged=!1;n.setErrorsAsFalse();n.setHeader(n.settings.option);start=new Date(n.settings.travelClaim.StartDate.getFullYear(),n.settings.travelClaim.StartDate.getMonth(),n.settings.travelClaim.StartDate.getDate(),0,0,0);start=new Date(1900,1,1,n.settings.travelClaim.StartDate.getHours(),n.settings.travelClaim.StartDate.getMinutes(),0);end=new Date(n.settings.travelClaim.EndDate.getFullYear(),n.settings.travelClaim.EndDate.getMonth(),n.settings.travelClaim.EndDate.getDate(),0,0,0);end=new Date(1900,1,1,n.settings.travelClaim.EndDate.getHours(),n.settings.travelClaim.EndDate.getMinutes(),0);r=h.getKey("TravelType",n.settings.travelClaim.TravelTypeID);n.settings.travelClaim.TravelTypeText=o.getText("ENUMERATIONS.M2_TRAVELTYPE_"+r.toUpperCase());n.settings.option&&n.settings.option==2?n.settings.travelClaim.CountryIdC||n.settings.travelClaim.CountryCode?n.setSelectedCountry():n.settings.travelClaim.Country=n.settings.travelClaim.CountryIdC=n.settings.travelClaim.CountryName=n.settings.travelClaim.CountryCode=null:n.settings.travelClaim.Country=n.settings.travelClaim.CountryIdC=n.settings.travelClaim.CountryName=n.settings.travelClaim.CountryCode=null;n.settings.step==2&&n.createAllowanceTables();n.getOrganisationNames();n.settings.option==3&&n.getTravelClaimPeriodForKM()};n.getOrganisationNames=function(){var i,u,r,t;if(n.settings.travelClaim.EmploymentDatas){for(i="",u={},r=0;r<n.settings.travelClaim.EmploymentDatas.length;r++)t=n.settings.travelClaim.EmploymentDatas[r],u[t.OrganisationIdC]||(u[t.OrganisationIdC]=t.OrganisationName+" ("+t.OrganisationCode+")",i.length>0&&(i+=", "),i+=t.OrganisationName+" ("+t.OrganisationCode+")");n.settings.travelClaim.OrganisationText=i}};n.setHeader=function(t){var i="";n.settings.travelClaim.EmployeeName?i=n.settings.travelClaim.EmployeeName:n.settings.name?i=n.settings.name:n.settings.travelClaim&&n.settings.travelClaim.FirstName&&n.settings.travelClaim.LastName&&(i=n.settings.travelClaim.FirstName+" "+n.settings.travelClaim.LastName);n.showData.employeeID2&&(i=i+" ("+n.settings.travelClaim.EmployeeID2+")");n.settings.name||(n.settings.name=i);t==1?n.settings.header=i+" - "+o.getText("TRAVELCLAIM_WIZARD.TC_DOMESTIC_HEADER"):t==2?n.settings.header=i+" - "+o.getText("TRAVELCLAIM_WIZARD.TC_FOREIGN_HEADER"):t==3&&(n.settings.header=i+" - "+o.getText("TRAVELCLAIM_WIZARD.TC_KM_HEADER"))};n.getWeekDay=function(n){var t=0;return t=n.getDay()==0?7:n.getDay(),t>0?o.getText("GLOBAL.DS"+t):void 0};n.setErrorsAsFalse=function(){n.errorsStep2={errorNoKilometreAllowances:!1,errorRequiredDefaultDimensions:!1,errorRequiredDayDimensions:!1,errorRequiredKMDimensions:!1};n.step2ErrorCount=0;n.errorLevel=0};n.onCancel=function(){r.close(!0)};n.checkStepTwo=function(){n.settings.viewOnly||(n.settings.option==3&&n.checkKilometreAllowances(),n.checkMissingDimensions(),n.step2ErrorCount=0,n.errorsStep2.errorRequiredDefaultDimensions&&n.step2ErrorCount++,n.errorsStep2.errorRequiredDayDimensions&&n.step2ErrorCount++,n.errorsStep2.errorRequiredKMDimensions&&n.step2ErrorCount++,n.errorsStep2.errorNoKilometreAllowances&&n.step2ErrorCount++)};n.onSave=function(){var t;rt();n.settings.option==1||n.settings.option==2?(n.checkStepTwo(),t=n.isSecondStepValid(),t?n.save():n.loading=!1):(n.checkStepTwo(),t=n.isSecondStepValid(),t?n.save():ut())};n.save=function(){rt();n.settings.option!=2&&(n.settings.travelClaim.Country=n.settings.travelClaim.CountryIdC=n.settings.travelClaim.CountryName=n.settings.travelClaim.CountryCode=null);n.settings.travelClaim.FreeMealCount||(n.settings.travelClaim.FreeMealCount=0);var t=angular.copy(n.settings.travelClaim);l.save(t).then(function(t){t&&t.Data&&t.Data.IdC&&(n.settings.travelClaim=t.Data,n.doAfterRefresh(),n.settings.step==2&&n.createAllowanceTables());ut();n.setErrorsAsFalse();message=s.getDataMessage(t,"GLOBAL.SUCCESS_SAVE");s.showSplash(message,"okMessage")},function(n){if(n){var t="";n.data&&n.data.Errors&&n.data.Errors[0]&&(t=n.data.Errors[0]);ut();t=s.getDataMessage(n.data,t&&t.length>0?t:"GLOBAL.ERROR_SAVE");s.showSplash(t,"errorMessage")}})};n.checkKilometreAllowances=function(){var i=!1,r,t,u,f;if(n.settings.travelClaim&&n.settings.travelClaim.Days)for(r=0;r<n.settings.travelClaim.Days.length;r++){if(t=n.settings.travelClaim.Days[r],!t.Deleted&&t.KilometreAllowances)for(u=0;t.KilometreAllowances.length;u++)if(f=t.KilometreAllowances[u],!f.Deleted){i=!0;break}if(i)break}return n.errorsStep2.errorNoKilometreAllowances=i?!1:!0,i};n.nextStep=function(){rt();var t=n.settings.step+1;t==1?n.moveToStepTwo():t==2&&n.moveToStepThree()};n.showStep=function(t){rt();t==2&&n.createAllowanceTables();n.settings.step=t;
1n.settings.currentView=n.viewTypes[n.settings.step].template;ut()};n.moveToStepTwo=function(){var t,i;if(rt(),n.settings.option==3){if(n.settings.travelClaim&&n.settings.travelClaim.Days)for(t=0;t<n.settings.travelClaim.Days.length;t++)i=n.settings.travelClaim.Days[t],i.KilometreAllowances||(i.Deleted=!0);n.getTravelClaimPeriodForKM();n.showStep(1)}else n.settings.viewOnly?n.showStep(1):(viewValueChanged&&n.createTravelClaimDays(),viewValueChanged=!1,n.datesForDimensionPicker={StartDate:n.settings.travelClaim.StartDate,EndDate:n.settings.travelClaim.EndDate},n.showStep(1))};n.createTravelClaimDays=function(){for(var f,s,c,u,p,l,a,r,t,v=new Date(n.settings.travelClaim.StartDate.getFullYear(),n.settings.travelClaim.StartDate.getMonth(),n.settings.travelClaim.StartDate.getDate(),0,0,0),y=new Date(n.settings.travelClaim.EndDate.getFullYear(),n.settings.travelClaim.EndDate.getMonth(),n.settings.travelClaim.EndDate.getDate(),23,59,59),e=[],h=[],i=v;i<=y;i.setDate(i.getDate()+1)){if(u=null,n.settings.travelClaim.Days)for(r=0;r<n.settings.travelClaim.Days.length;r++)t=n.settings.travelClaim.Days[r],t.Date.getFullYear()==i.getFullYear()&&t.Date.getMonth()==i.getMonth()&&t.Date.getDate()==i.getDate()&&(h[t.IdC]||(u=t,u.Deleted=!1,h.push(t.IdC)));u||(f=0,f=i.getDay()==0?7:i.getDay(),s="",f>0&&(s=o.getText("GLOBAL.DS"+f)),c=new Date(i.getFullYear(),i.getMonth(),i.getDate(),0,0,0),u={Date:c,WeekDay:s,FreeMeals:0,MealAllowance:0});p=n.selectVehicle(u);e.push(u)}if(n.settings.travelClaim.Days)for(l=new Date(n.settings.travelClaim.StartDate.getFullYear(),n.settings.travelClaim.StartDate.getMonth(),n.settings.travelClaim.StartDate.getDate(),0,0,0),a=new Date(n.settings.travelClaim.EndDate.getFullYear(),n.settings.travelClaim.EndDate.getMonth(),n.settings.travelClaim.EndDate.getDate(),23,59,59),r=0;r<n.settings.travelClaim.Days.length;r++)t=n.settings.travelClaim.Days[r],(t.Date<l||t.Date>a)&&(t.SleepingAllowanceIdC||t.SleepingAllowanceAllowanceIdC||t.MealAllowanceIdC||t.MealAllowanceAllowanceIdC||t.NoDailyAllowanceIdC||t.FreeMealsIdC||t.DailyAllowanceIdC)&&(t.Deleted=!0,e.push(t));n.settings.travelClaim.Days=e};n.moveToStepThree=function(){rt();n.summary={kilometresSum:0,kilometreAllowanceSum:0,allowanceSum:0};n.step2ErrorCount=0;n.checkStepTwo();var t=n.isSecondStepValid();t?!n.settings.viewOnly&&n.settings.travelClaim.Changed?n.settings.travelClaim&&(rt(),l.doCalculation(n.settings.travelClaim).then(function(t){t&&t.Data&&(n.settings.travelClaim=new l(t.Data),n.doAfterRefresh());n.showStep(2)})):n.showStep(2):ut()};n.getTravelClaimPeriodForKM=function(){var r=new Date,u=new Date,i,t,f,e;if(n.settings.travelClaim&&n.settings.travelClaim.Days)for(i=0;i<n.settings.travelClaim.Days.length;i++)t=n.settings.travelClaim.Days[i],t.Deleted||(i==0?r=u=t.Date:(f=s.getDateDifference(r,t.Date),e=s.getDateDifference(u,t.Date),f&&f.negative&&(r=t.Date),e&&!e.negative&&(u=t.Date)));n.datesForDimensionPicker={StartDate:r,EndDate:u}};n.isSecondStepValid=function(){return n.errorsStep2.errorRequiredDayDimensions||n.errorsStep2.errorRequiredDefaultDimensions||n.errorsStep2.errorRequiredKMDimensions||n.errorsStep2.errorNoKilometreAllowances?!1:!0};n.checkMissingDimensions=function(){var tt,y,k,w,g,it,b,a,c,o,d,f,r,ft,t,u;n.missingDimensionItems.dayDimensionItems=null;n.missingDimensionItems.defaultDimensionItems=null;n.missingDimensionItems.KMDimensionItems=null;var ht=!1,e=null,h=null,nt=!1;if(n.requiredDimensions&&n.settings.travelClaim)for(tt=0;tt<n.requiredDimensions.length;tt++){var i=n.requiredDimensions[tt],l=!1,v=!1,et=!1;if(n.settings.travelClaim.DimensionItems&&n.settings.travelClaim.DimensionItems.length>0){for(y=0;y<n.settings.travelClaim.DimensionItems.length;y++)r=n.settings.travelClaim.DimensionItems[y],r.Deleted?et=!0:(i.SubLevel&&i.ParentDimensionIdC==r.DimensionIdC&&i.ParentDimensionItemIdC==r.DimensionItemIdC&&(v=!0),i.IdC==r.DimensionIdC&&(l=!0));et&&!l&&(nt=!0)}else nt=!0;if((!i.SubLevel||v)&&(l||(i.SubLevel||(ht=!0),n.missingDimensionItems.defaultDimensionItems||(n.missingDimensionItems.defaultDimensionItems=[]),n.missingDimensionItems.defaultDimensionItems.push(i))),n.settings.travelClaim.Days)for(y=0;y<n.settings.travelClaim.Days.length;y++){l=!1;v=!1;var p=!1,ot=!1,t=n.settings.travelClaim.Days[y];if(!t.Deleted){if(k=!0,!n.missingDimensionItems.defaultDimensionItems&&n.settings.travelClaim.DimensionItems)for(f=0;f<n.settings.travelClaim.DimensionItems.length;f++){var r=n.settings.travelClaim.DimensionItems[f],rt=null,ut=null;if(r.StartDate&&(rt=s.getDateDifference(r.StartDate,t.Date)),r.EndDate&&(ut
1=s.getDateDifference(t.Date,r.EndDate)),rt&&rt.negative||ut&&ut.negative){k=!1;break}}else k=!1;if(n.missingDimensionItems.defaultDimensionItems&&n.missingDimensionItems.defaultDimensionItems.length>0&&(k=!1),t.PostingRows&&t.PostingRows.length>0){for(w=!1,g=!0,c=0;c<t.PostingRows.length;c++)if(o=t.PostingRows[c],!o.Deleted){g=!1;break}if(g&&(p=!0),!p){for(c=0;c<t.PostingRows.length;c++)if(o=t.PostingRows[c],o.Deleted)p=!0;else if(o.DimensionItems&&o.DimensionItems.length>0){for(d=!0,f=0;f<o.DimensionItems.length;f++)if(r=o.DimensionItems[f],!r.Deleted){d=!1;break}if(d&&(p=!0),!p)for(f=0;f<o.DimensionItems.length;f++)r=o.DimensionItems[f],r.Deleted?ot=!0:(w=!0,i.SubLevel&&r.DimensionIdC==i.ParentDimensionIdC&&i.ParentDimensionItemIdC==r.DimensionItemIdC&&(v=!0),r.DimensionIdC==i.IdC&&(l=!0))}i.SubLevel&&(ot&&!w?p=!0:(!i.SubLevel||v)&&!l&&w&&(e&&e[t.Date]||(e||(e={}),u={Day:t.Date,SubLevel:i.SubLevel,AllMissing:!1},e[t.Date]=u)))}}else p=!0;if(p&&(k||i.SubLevel||e&&e[t.Date]||(e||(e={}),u={Day:t.Date,SubLevel:i.SubLevel,AllMissing:!0},e[t.Date]=u)),t.KilometreAllowances)for(l=!1,v=!1,it=0;it<t.KilometreAllowances.length;it++){if(b=t.KilometreAllowances[it],a=!1,b.PostingRows&&b.PostingRows.length>0){var w=!1,st=!1,g=!0;for(c=0;c<b.PostingRows.length;c++)if(o=b.PostingRows[c],!o.Deleted){g=!1;break}if(g&&(a=!0),!a){for(c=0;c<b.PostingRows.length;c++)if(o=b.PostingRows[c],o.DimensionItems&&o.DimensionItems.length>0){for(d=!0,f=0;f<o.DimensionItems.length;f++)if(r=o.DimensionItems[f],!r.Deleted){d=!1;break}if(d&&(a=!0),!a)for(f=0;f<o.DimensionItems.length;f++)r=o.DimensionItems[f],r.Deleted?st=!0:(w=!0,i.SubLevel&&i.ParentDimensionIdC==r.DimensionIdC&&i.ParentDimensionItemIdC==r.DimensionItemIdC&&(v=!0),r.DimensionIdC==i.IdC&&(l=!0))}else a=!0;i.SubLevel&&(!w&&st?a=!0:(!i.SubLevel||v)&&!l&&w&&(h&&h[t.Date]||(h||(h={}),u={Day:t.Date,SubLevel:i.SubLevel,AllMissing:!1},h[t.Date]=u)))}}else a=!0;a&&(n.settings.option!=3||i.SubLevel||h&&h[t.Date]||(ft=!1,k||e&&e[t.Date]&&(ft=!0),ft&&(h||(h={}),u={Day:t.Date,SubLevel:i.SubLevel,AllMissing:!0},h[t.Date]=u)))}}}}if(n.settings.option==3){if(h)for(t in h)u=h[t],e[t]&&(n.missingDimensionItems.KMDimensionItems||(n.missingDimensionItems.KMDimensionItems=[]),n.missingDimensionItems.KMDimensionItems.push(u));if(e)for(t in e)u=e[t],u&&!u.AllMissing&&(n.missingDimensionItems.dayDimensionItems||(n.missingDimensionItems.dayDimensionItems=[]),n.missingDimensionItems.dayDimensionItems.push(u));n.settings.travelClaim&&n.settings.travelClaim.Days&&n.settings.travelClaim.Days.length&&(n.missingDimensionItems.KMDimensionItems||nt&&(n.missingDimensionItems.defaultDimensionItems=null))}else{if(e)for(t in e)u=e[t],u&&(n.missingDimensionItems.dayDimensionItems||(n.missingDimensionItems.dayDimensionItems=[]),n.missingDimensionItems.dayDimensionItems.push(u));if(h)for(t in h)u=h[t],u&&!u.AllMissing&&(n.missingDimensionItems.KMDimensionItems||(n.missingDimensionItems.KMDimensionItems=[]),n.missingDimensionItems.KMDimensionItems.push(u));n.settings.travelClaim&&n.settings.travelClaim.Days&&n.settings.travelClaim.Days.length&&(n.missingDimensionItems.dayDimensionItems||nt&&(n.missingDimensionItems.defaultDimensionItems=null))}n.errorsStep2.errorRequiredDefaultDimensions=n.missingDimensionItems.defaultDimensionItems&&n.missingDimensionItems.defaultDimensionItems.length?!0:!1;n.errorsStep2.errorRequiredDayDimensions=n.missingDimensionItems.dayDimensionItems&&n.missingDimensionItems.dayDimensionItems.length?!0:!1;n.errorsStep2.errorRequiredKMDimensions=n.missingDimensionItems.KMDimensionItems&&n.missingDimensionItems.KMDimensionItems.length?!0:!1;n.step2ErrorCount=0;n.errorsStep2.errorRequiredDefaultDimensions&&n.step2ErrorCount++;n.errorsStep2.errorRequiredDayDimensions&&n.step2ErrorCount++;n.errorsStep2.errorRequiredKMDimensions&&n.step2ErrorCount++};n.createAllowanceTables=function(){var f=null,e=null,a,t,s,l,c,r,i,u;if(n.summary.kilometreAllowanceSum=0,n.summary.allowanceSum=0,n.summary.kilometresSum=0,n.summary.wholeSum=0,n.settings.travelClaim&&n.settings.travelClaim.Allowances){for(a=0;a<n.settings.travelClaim.Allowances.length;a++)if(t=n.settings.travelClaim.Allowances[a],t.DimensionItems=[],s=h.getKey("AllowanceType",t.AllowanceType),t.AllowanceTypeText=o.getText("ENUMERATIONS.ALLOWANCETYPE_"+s.toUpperCase()),t.AllowanceType==6){if(f||(f=[]),!t.Kilometres&&t.Number&&(t.Kilometres=t.Number),n.summary.kilometresSum+=t.Kilometres,n.summary.kilometreAllowanceSum+=t.Amount,n.settings.travelClaim.Days&&n.settings.travelClaim.Days.length){for(r=n.settings.travelClaim.Days,i=0;i<r.length;i++)if(t.Date.setHours(0,0,0,0),r[i].Date.setHours(0,0,0,0),r[i].Date.getTime()==t.Date.getTime()){for(l=r[i].KilometreAllowances,c=0;c<l.length;c++)if(t.IdC==l[c].AllowanceIdC&&l[c].PostingRows){t.DimensionItems=l[c].PostingRows.length?l[c].PostingRows[0].DimensionItems:[];break}t.DimensionItems.length==0&&r[i].PostingRows&&(t.DimensionItems=r[i].PostingRows.length&&r[i].PostingRows[0]&&r[i].PostingRows[0].DimensionItems?r[i].PostingRows[0].DimensionItems:[]);break}t.DimensionItems&&t.DimensionItems.length==0&&(t.DimensionItems=n.settings.travelClaim.DimensionItems?n.settings.travelClaim.DimensionItems:[])}f.push(t)}else if(t.AllowanceType>0){if(e||(e=[]),n.settings.travelClaim.Days&&n.settings.travelClaim.Days.length){for(r=n.settings.travelClaim.Days,i=0;i<r.length;i++)if(u=r[i],t.Date.setHours(0,0,0,0),u.Date.setHours(0,0,0,0),u.Date.getTime()==t.Date.getTime()){u.PostingRows&&(t.RefIdC==n.settings.travelClaim.IdC||t.RefIdC==u.SleepingAllowanceIdC&&s=="SleepingAllowance"||t.RefIdC==u.MealAllowanceIdC&&s=="MealAllowance"||t.RefIdC==u.DailyAllowanceIdC&&(s=="DomesticWholeDailyAllowance"||s=="DomesticPartialDailyAllowance"||s=="ForeignWholeDailyAllowance"))&&(t.DimensionItems=u.PostingRows.length&&u.PostingRows[0]&&u.PostingRows[0].DimensionItems?u.PostingRows[0].DimensionItems:[]);break}t.DimensionItems.length==0&&(t.DimensionItems=n.settings.travelClaim.DimensionItems?n.settings.travelClaim.DimensionItems:[])}n.summary.allowanceSum+=t.Amount;e.push(t)}n.summary.wholeSum=n.summary.allowanceSum+n.summary.kilometreAllowanceSum;f&&f.length>0&&f.sort(et);n.settings.travelClaim.KilometreAllowancesSummary=f;e&&e.length>0&&e.sort(et);n.settings.travelClaim.OtherAllowances=e}};n.goToStep=function(t){t!=n.settings.step&&(t==0?(n.settings.travelClaim.CountryIdC||n.settings.travelClaim.CountryCode?n.setSelectedCountry():n.settings.travelClaim.Country=n.settings.travelClaim.CountryIdC=n.settings.travelClaim.CountryName=n.settings.travelClaim.CountryCode=null,n.showStep(t)):t==1?(n.settings.step>0||n.settings.travelClaim&&n.settings.travelClaim.IdC||n.settings.option==3)&&n.moveToStepTwo():t==2&&(n.settings.step>0||n.settings.travelClaim&&n.settings.travelClaim.IdC)&&(n.settings.step!=0||n.settings.viewOnly||n.settings.option!=1&&n.settings.option!=2||n.createTravelClaimDays(),n.moveToStepThree()))};n.combineDateTimeValue=function(n,t){var i=null;return angular.isDate(n)&&angular.isDate(t)?i=new Date(n.getFullYear(),n.getMonth(),n.getDate(),t.getHours(),t.getMinutes(),0):angular.isDate(n)&&(i=new Date(n.getFullYear(),n.getMonth(),n.getDate(),0,0,0)),i};var ht=function(n,t){return n?n.Data?t&&n.Data[t]?!1:!0:!0:!0},ot="",ft=null,st=function(t,r){var f=i.defer(),u,o,e;return t&&r?(u=[],r.getFullYear()<t.getFullYear()||r.getFullYear()==t.getFullYear()&&r.getMonth()<t.getMonth()||r.getFullYear()==t.getFullYear()&&r.getMonth()==t.getMonth()&&r.getDate()<t.getDate()?u.push("datesOrder"):t.getFullYear()==r.getFullYear()&&t.getMonth()==r.getMonth()&&t.getDate()==r.getDate()&&((r.getHours()<t.getHours()||r.getHours()==t.getHours()&&r.getMinutes()<t.getMinutes())&&u.push("timesOrder"),r.getHours()==t.getHours()&&r.getMinutes()==t.getMinutes()&&u.push("periodLength")),u.length>0?(o={valid:!u.length,errors:u},f.resolve(o)):(e=t.getTime()+"|"+r.getTime(),e!==ot?(ot=e,l.validateDateRange({EmployeeIdC:n.settings.travelClaim.EmployeeIdC,StartDate:t,EndDate:r,ExcludeTravelClaimIdC:n.settings.travelClaim.IdC?n.settings.travelClaim.IdC:null,TravelClaimDuplicateCheck:!0,TravelTypeID:n.settings.travelClaim.TravelTypeID}).then(function(n){n.duplicates&&u.push("duplicate");n.employmentDataValid||u.push("noEmployment");n.periodApprovedStatus||u.push("approvedDays");n.periodProcessedStatus||u.push("processedDays");var n={valid:!u.length,errors:u};ft=angular.copy(n);f.resolve(n)})):(ft||(ft={valid:!0,errors:null}
1),f.resolve(angular.copy(ft))))):f.resolve({valid:!1}),f.promise};return n.validateStartDate=function(n,t){return st(n,t.endDateField)},n.validateEndDate=function(n,t){return st(t.startDateField,n)},n.setTravelClaimDateAndTime=function(){n.settings.travelClaim.Changed=!0;viewValueChanged=!0},n.onCountrySelected=function(){n.settings.travelClaim.Changed=!0;n.settings.travelClaim.Country?(n.settings.travelClaim.CountryIdC=n.settings.travelClaim.Country.IdC,n.settings.travelClaim.CountryName=n.settings.travelClaim.Country.Name,n.settings.travelClaim.CountryCode=n.settings.travelClaim.Country.Code):n.settings.travelClaim.CountryIdC=n.settings.travelClaim.CountryName=n.settings.travelClaim.CountryCode=null},n.setSelectedCountry=function(){if(n.settings.option==2&&!n.settings.travelClaim.Country&&(n.settings.travelClaim.CountryIdC||n.settings.travelClaim.CountryCode)&&n.settings.countries){var t=n.settings.travelClaim.CountryIdC?n.settings.countryIdCValues[n.settings.travelClaim.CountryIdC]:n.settings.countryCodes[n.settings.travelClaim.CountryCode];t&&(n.settings.travelClaim.CountryIdC||(n.settings.travelClaim.CountryIdC=t.IdC),n.settings.travelClaim.CountryName=t.Name,n.settings.travelClaim.Country=t,n.settings.travelClaim.CountryCode||(n.settings.travelClaim.CountryCode=t.Code))}},n.onFieldValueChanged=function(){n.settings.travelClaim.Changed=!0},n.onDestinationChanged=function(){n.settings.travelClaim.Changed=!0},n.onDescriptionChanged=function(){n.settings.travelClaim.Changed=!0},n.onDayChanged=function(t){t.Changed=!0;n.settings.travelClaim.Changed=!0},n.onDeleteKilometreAllowance=function(t,i){var u,r,f;if(i.Deleted=!0,n.settings.option==3){if(u=!0,t.KilometreAllowances)for(r=0;r<t.KilometreAllowances.length;r++)f=t.KilometreAllowances[r],f.Deleted||(u=!1);u&&(t.Deleted=!0);n.getTravelClaimPeriodForKM()}},n.openKilometreAllowanceEditor=function(t,i,r){var u=null,o,s,c,h,e,l;if(!n.settings.viewOnly){if(t)u=angular.copy(t);else if(o=null,i&&i.Date?o=i.Date:(s=new Date,o=new Date(s.getFullYear(),s.getMonth(),s.getDate(),0,0,0,0)),c={Date:o},u=c,u&&n.settings.vehicles&&n.settings.defaultVehicleCode)for(h=0;h<n.settings.vehicles.length;h++)if(e=n.settings.vehicles[h],e&&e.IdC&&e.Code==n.settings.defaultVehicleCode){u.SelectedVehicle=e;u.SelectedVehicle.IdC=e.IdC;u.VehicleIdC=e.IdC;u.VehicleCode=e.Code;u.VehicleName=e.Name;break}l=f.open({templateUrl:"MVC/modals/WorkHours/kilometreAllowanceEditor.html",controller:"kilometreAllowanceEditorModalController",backdrop:"static",windowClass:"kilometreAllowanceEditor",resolve:{viewOnly:function(){return n.settings.viewOnly},kilometreAllowance:function(){return u},vehicles:function(){return n.settings.vehicles},option:function(){return n.settings.option},travelClaim:function(){return n.settings.travelClaim}}});l.result.then(function(u){u&&u.ok&&(n.settings.travelClaim.Changed=!0,n.errorsStep2.errorNoKilometreAllowances=!1,u.kilometreAllowance.Changed=!0,u.kilometreAllowance.AllowanceIdC&&(t=u.kilometreAllowance,angular.isUndefined(r)||(i.KilometreAllowances[r]=t,i.Date!=t.Date&&n.changeKilometreAllowanceDay(i,t))),u.kilometreAllowance.AllowanceIdC||n.addNewKilometreAllowanceToDay(u.kilometreAllowance,i),n.settings.option==3&&n.getTravelClaimPeriodForKM())})}},n.changeKilometreAllowanceDay=function(t,i){var o={},f,u,s,r,c,h,e;if(n.settings.travelClaim&&n.settings.travelClaim.Days){for(f=0;f<n.settings.travelClaim.Days.length;f++)r=n.settings.travelClaim.Days[f],o[r.Date]=r;u=angular.copy(i);s=t.KilometreAllowances.indexOf(i);s>-1&&t.KilometreAllowances.splice(s,1);n.settings.option!=3||t.KilometreAllowances&&t.KilometreAllowances.length!=0||(t.Deleted=!0);o[u.Date]?(r=o[u.Date],r.KilometreAllowances||(r.KilometreAllowances=[]),r.KilometreAllowances.push(u),r.Deleted=!1,r.Changed=!0):n.settings.option==3&&(c=n.getWeekDay(u.Date),h=[],h.push(u),e={Date:u.Date,WeekDay:c,KilometreAllowances:h},e.Deleted=!1,e.Changed=!0,n.settings.travelClaim.Days.push(e))}},n.addNewKilometreAllowanceToDay=function(t,i){var f,u,e,r,i;if(!t.AllowanceIdC){if(f=!1,n.settings.travelClaim.Days)for(u=0;u<n.settings.travelClaim.Days.length;u++)i=n.settings.travelClaim.Days[u],i.Date.getFullYear()==t.Date.getFullYear()&&i.Date.getMonth()==t.Date.getMonth()&&i.Date.getDate()==t.Date.getDate()&&(i.Deleted&&(i.Deleted=!1),i.KilometreAllowances?i.KilometreAllowances.push(t):(r=[],r.push(t),i.KilometreAllowances=r),f=!0);else n.settings.travelClaim.Days=[];n.settings.option==3&&(f||(e=n.getWeekDay(t.Date),r=[],r.push(t),i={Date:t.Date,WeekDay:e,KilometreAllowances:r},n.settings.travelClaim.Days.push(i)))}},n.selectVehicle=function(t){var u,i,f,r;if(t.KilometreAllowances&&n.settings.vehicles)for(u=0;
1u<t.KilometreAllowances.length;u++)for(i=t.KilometreAllowances[u],f=0;f<n.settings.vehicles.length;f++)if(r=n.settings.vehicles[f],!i.VehicleCode||i.VehicleCode==r.Code){i.SelectedVehicle=r;i.SelectedVehicle.IdC=r.IdC;i.VehicleIdC=r.IdC;i.VehicleCode=r.Code;i.VehicleName=r.Name;break}},this}]);angular.module("TiimaApp").controller("travelClaimDimensionEditorModalController",["$scope","$timeout","$uibModalInstance","$controller","localizationService","toolsService","tiimaEnumsService","settingService","dimensionItems","startDate","endDate","searchDate","employeeIdC",function(n,t,i,r,u,f,e,o,s,h,c,l,a){r("baseModalController",{$scope:n,$uibModalInstance:i});n.settings={originalDimensionItems:[],selectedDimensionItems:[],StartDate:null,EndDate:null,EmployeeIdC:null,SearchDate:null};n.loading=!0;n.dimItemTemplate="{{Code}} {{DimensionItemName}}{{Name}}";n.dimItemSearchResultTemplate="<div class='listcellCode'>{{Code}}<\/div><div class='listcellName'>{{DimensionItemName}}<\/div>";n.dimensionValidationError=!1;i.opened.then(function(){h&&(n.settings.StartDate=h);c&&(n.settings.EndDate=c);l&&(n.settings.SearchDate=l,n.settings.StartDate=l,n.settings.EndDate=l);n.settings.selectedDimensionItems=angular.copy(s);n.settings.originalDimensionItems=s;n.settings.EmployeeIdC=a});n.onOkClick=function(){var t={dimensionItems:n.settings.selectedDimensionItems,ok:!0};i.close(t)};n.onCancel=function(){var t={dimensionItems:n.settings.originalDimensionItems,ok:!1};i.close(t)}}]);angular.module("TiimaApp").controller("kilometreAllowanceEditorModalController",["$scope","$timeout","$uibModalInstance","$q","$controller","localizationService","toolsService","tiimaEnumsService","settingService","TravelClaim","kilometreAllowance","viewOnly","vehicles","option","travelClaim",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y){u("baseModalController",{$scope:n,$uibModalInstance:i});n.settings={selectedKilometreAllowance:null,viewOnly:!1,vehicles:null,option:null,selectedTravelClaim:null,SelectedVehicle:null};n.loading=!0;i.opened.then(function(){n.settings.selectedKilometreAllowance=c;n.settings.SelectedVehicle=c.SelectedVehicle;n.settings.selectedTravelClaim=y;n.settings.viewOnly=l;n.settings.vehicles=a;n.settings.option=v;n.loading=!1});n.validateKilometres=function(){var t=[];return(!n.settings.selectedKilometreAllowance.Number||n.settings.selectedKilometreAllowance.Number<=0)&&t.push("noKilometresGiven"),{valid:!t.length,errors:t}};n.validateDateForKilometreAllowanceTravelClaim=function(t){var u,i,f;return n.loading=!0,u=r.defer(),n.settings.option==3?(i=[],h.validateDateRange({EmployeeIdC:n.settings.selectedTravelClaim.EmployeeIdC,StartDate:t,EndDate:t,ExcludeTravelClaimIdC:n.settings.selectedTravelClaim.IdC?n.settings.selectedTravelClaim.IdC:null,TravelClaimDuplicateCheck:!0,TravelTypeID:n.settings.option}).then(function(t){var i=[],t;t.duplicates&&i.push("duplicate");t.employmentDataValid||i.push("noEmployment");t.periodApprovedStatus||i.push("approvedDays");t.periodProcessedStatus||i.push("processedDays");n.loading=!1;t={valid:!i.length,errors:i};u.resolve(t)})):(i=[],angular.isDate(t)&&t&&angular.isDate(t)&&(t.getFullYear()<n.settings.selectedTravelClaim.StartDate.getFullYear()||t.getFullYear()==n.settings.selectedTravelClaim.StartDate.getFullYear()&&t.getMonth()<n.settings.selectedTravelClaim.StartDate.getMonth()||t.getFullYear()==n.settings.selectedTravelClaim.StartDate.getFullYear()&&t.getMonth()==n.settings.selectedTravelClaim.StartDate.getMonth()&&t.getDate()<n.settings.selectedTravelClaim.StartDate.getDate()?i.push("dateOutSidePeriod"):(t.getFullYear()>n.settings.selectedTravelClaim.EndDate.getFullYear()||t.getFullYear()==n.settings.selectedTravelClaim.EndDate.getFullYear()&&t.getMonth()>n.settings.selectedTravelClaim.EndDate.getMonth()||t.getFullYear()==n.settings.selectedTravelClaim.EndDate.getFullYear()&&t.getMonth()==n.settings.selectedTravelClaim.EndDate.getMonth()&&t.getDate()>n.settings.selectedTravelClaim.EndDate.getDate())&&i.push("dateOutSidePeriod")),n.loading=!1,f={valid:!i.length,errors:i},u.resolve(f)),u.promise};n.onOkClick=function(){n.closeEditor()};n.closeEditor=function(){var t={kilometreAllowance:n.settings.selectedKilometreAllowance,ok:!0};i.close(t)};n.onCancel=function(){i.close({ok:!1})};n.onVehicleSelected=function(){n.settings.SelectedVehicle&&(n.settings.selectedKilometreAllowance.VehicleIdC=n.settings.SelectedVehicle.IdC,n.settings.selectedKilometreAllowance.VehicleName=n.settings.SelectedVehicle.Name,n.settings.selectedKilometreAllowance.VehicleC
1ode=n.settings.SelectedVehicle.Code)}}]);angular.module("TiimaApp").controller("travelClaimEmployeeSelectorModalController",["$scope","$timeout","$uibModalInstance","$controller","localizationService","toolsService","tiimaEnumsService","settingService","datasourceService","Employee",function(n,t,i,r,u,f,e,o,s,h){r("baseModalController",{$scope:n,$uibModalInstance:i});n.settings={TravelClaimEmployeeType:1,employee:null};n.employeeSearchFilter="";n.previousEmployeeSearchFilter="";n.errors={errorEmployeeRequired:!1};n.employeeHeadingFormat=u.getText("GLOBAL.AUTOCOMPLETE_DEFAULT_BROWSING_TEXT_FORMAT");n.employeeItemTemplate="{{ID2}} {{Name}}";n.employeeSearchResultTemplate="<div class='listcellCode'>{{ID2}}<\/div><div class='listcellName'>{{Name}}<\/div>";n.dataSources={employeeDataSource:s.createDatasource({method:function(t){return n.getEmployees(t)}})};n.listFields=[{dataType:1,heading:"LIST_FIELDS.EMPLOYEENUMBER",name:"ID2","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,heading:"LIST_FIELDS.NAME",name:"Name","class":"listcellName",headingClass:"listcellName","default":!0},];i.opened.then(function(){});n.selectType=function(i){if(n.settings.TravelClaimEmployeeType=i,i==2){var r=angular.element(document).find(".modal.in");t(function(){r.find("input.ui-autocomplete-input").focus()})}};n.onOkClick=function(){var t="",r="",u;n.settings.TravelClaimEmployeeType===1?(t=null,r=null):n.settings.employee&&n.settings.employee.IdC&&(t=n.settings.employee.IdC,r=n.settings.employee.FirstName+" "+n.settings.employee.LastName);(n.settings.TravelClaimEmployeeType===1||n.settings.employee.IdC)&&(u={ok:!0,employeeIdC:t,employeeName:r},i.close(u))};n.onCancel=function(){i.close({ok:!1})};n.onEmployeeChanged=function(){n.errors.errorEmployeeRequired=n.settings.employee&&n.settings.employee.IdC?!1:!0};n.getEmployees=function(n){var t=new Date,i=new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0);return n.Date=i,n.GetSomeEmployementData=!0,h.getAll(n)}}]);angular.module("TiimaApp").controller("approvingHoursSettingsController",["$window","$rootScope","$scope","$timeout","$q","$uibModalInstance","$controller","localizationService","toolsService","datasourceService","approvingHoursSettingsService","tiimaEnumsService","ApprovingHoursSetting","ApprovingHoursLimit","GroupItem","PaymentGroup","date","permissions",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b){return e("baseModalController",{$scope:i,$uibModalInstance:f}),i.selectedSettingParent=null,i.settingParents=[],i.selectedIndex=0,i.loading=!1,i.date=w?w:new Date,i.permissions=b?b:{general:!1,user:!1},i.customSettings=null,i.changed=!1,i.languageIdC=o.getCurrentLanguageIdC(),i.settings={Settings:[],Next:null,Prev:null},i.settingsStack=null,i.inheritedSettings=!0,i.customSettings=!1,i.hourLimitPopover={visible:!1,editMode:0,modeMinMax:!1,modeDayMax:!1,modeStampMinMax:!1,generalMinMax:null,generalStampMinMax:null,groupItemsMinMax:[],payGroupsMinMax:[],generalDayMax:null,groupItemsDayMax:[],payGroupsDayMax:[],groupItemsStampMinMax:[],payGroupsStampMinMax:[],allLimits:[],limitTypes:null,targetGroups:null,editorVisible:!1,editedLimit:null,pendingOperation:!1,invalidInput:!0,invalidLimitInput:!1,invalidGroupInput:!1},i.deleteLimit=function(n){n.Deleted=!0;i.limitsChanged=!0;i.reOrganizeLimits()},i.valueToMins=function(n){var t,i;return typeof n=="string"?n.indexOf(":")>-1?(t=n.split(":")[0],t=isNaN(t)?0:parseInt(t,10),i=n.split(":")[1],i=isNaN(i)?0:parseInt(i,10),n=t*60+i):n=n?isNaN(n)?0:parseInt(n,10):0:n=n?isNaN(n)?0:parseInt(n,10):0,n},i.validateDayMax=function(n){var t=[];return i.hourLimitPopover.invalidLimitInput=!1,n=i.valueToMins(n),n||(t.push("dayMaxMissing"),i.hourLimitPopover.invalidLimitInput=!0),i.hourLimitPopover.invalidInput=i.hourLimitPopover.invalidLimitInput||i.hourLimitPopover.invalidGroupInput,{valid:n?!0:!1,errors:t}},i.validateMin=function(n){return i.validateMinMax(n,!0)},i.validateMax=function(n){return i.validateMinMax(n,!1)},i.validateMinMax=function(n,t){var u=[],r;i.hourLimitPopover.invalidLimitInput=!1;var f=i.hourLimitPopover.editedLimit.EditedHourLimitMin,e=i.hourLimitPopover.editedLimit.EditedHourLimitMax,o=t?e:f;
1return n=i.valueToMins(n),r=!0,n||o||(u.push("bothMinMaxMissing"),i.hourLimitPopover.invalidLimitInput=!0,r=!1),i.hourLimitPopover.invalidInput=i.hourLimitPopover.invalidLimitInput||i.hourLimitPopover.invalidGroupInput,{valid:r,errors:u}},i.validateGrouping=function(n){var t=[],r;return n&&(i.hourLimitPopover.invalidGroupInput=!1,(n.IdC?n.IdC:n.GroupItemIdC)||(t.push("noSelectedGroupItem"),i.hourLimitPopover.invalidGroupInput=!0),r=i.hourLimitPopover.editedLimit,r.GroupItem=n,i.isGroupLimitUnique(r)||(t.push("groupItemLimitNotUnique"),i.hourLimitPopover.invalidGroupInput=!0)),i.hourLimitPopover.invalidInput=i.hourLimitPopover.invalidLimitInput||i.hourLimitPopover.invalidGroupInput,{valid:t.length?!1:!0,errors:t}},i.validatePaymentGroup=function(n){var t=[],r;return n&&(i.hourLimitPopover.invalidGroupInput=!1,(n.IdC?n.IdC:n.PaymentGroupIdC)||(t.push("noSelectedPaymentGroup"),i.hourLimitPopover.invalidGroupInput=!0),r=i.hourLimitPopover.editedLimit,r.PaymentGroup=n,i.isGroupLimitUnique(r)||(t.push("paymentGroupLimitNotUnique"),i.hourLimitPopover.invalidGroupInput=!0)),i.hourLimitPopover.invalidInput=i.hourLimitPopover.invalidLimitInput||i.hourLimitPopover.invalidGroupInput,{valid:t.length?!1:!0,errors:t}},i.validateEditedLimit=function(){return!0},i.isGroupLimitUnique=function(n){for(var t,r=0;r<i.hourLimitPopover.allLimits.length;r++)if((t=i.hourLimitPopover.allLimits[r],!t.TempID||!n.TempID||t.TempID!=n.TempID)&&(!t.IdC||!n.IdC||t.IdC!=n.IdC)&&!t.Deleted&&t.HourLimitType==n.HourLimitType&&t.TargetGroup==n.TargetGroup)if(t.TargetGroup==i.hourLimitPopover.targetGroups.GroupItem){if(t.GroupItemIdC==n.GroupItem.IdC)return!1}else if(t.TargetGroup==i.hourLimitPopover.targetGroups.PaymentGroup&&t.PaymentGroupIdC==n.PaymentGroup.IdC)return!1;return!0},i.itemEditorOkClick=function(){var n=i.hourLimitPopover.editedLimit,f,u,r,t;if(n.HourLimitMin=n.EditedHourLimitMin,n.HourLimitMax=n.EditedHourLimitMax,n.HourLimitDayMax=n.EditedHourLimitDayMax,n.Texts=n.EditedTexts,n.Texts)for(f=n.Texts,u=0;u<f.length;u++)f[u].LanguageIdC==i.languageIdC&&(n.HourLimitMinComment=f[u].HourLimitMinComment,n.HourLimitMaxComment=f[u].HourLimitMaxComment,n.HourLimitDayMaxComment=f[u].HourLimitDayMaxComment);n.TargetGroup==i.hourLimitPopover.targetGroups.GroupItem?(r=i.hourLimitPopover.editedLimit.GroupItem,n.GroupItemIdC=r.IdC?r.IdC:r.GroupItemIdC,n.GroupItemCode=r.GroupItemCode,n.GroupItemName=r.GroupItemName,n.GroupingCode=r.GroupingCode,n.GroupingName=r.GroupingName):(t=i.hourLimitPopover.editedLimit.PaymentGroup,n.PaymentGroupIdC=t.IdC?t.IdC:t.PaymentGroupIdC,n.PaymentGroupCode=t.Code?t.Code:t.PaymentGroupCode,n.PaymentGroupName=t.Name?t.Name:t.PaymentGroupName);n.Changed=!0;n.AddedNew&&(n.AddedNew=!1,i.hourLimitPopover.allLimits.unshift(n),i.reOrganizeLimits());i.hourLimitPopover.editorVisible=!1;i.hourLimitPopover.editedLimit=null;i.limitsChanged=!0},i.itemEditorCancelClick=function(){i.mainForm.groupItem&&(i.mainForm.groupItem.$setValidity("noSelectedGroupItem",!0),i.mainForm.groupItem.$setValidity("groupItemLimitNotUnique",!0));i.mainForm.paymentGroup&&(i.mainForm.paymentGroup.$setValidity("noSelectedPaymentGroup",!0),i.mainForm.paymentGroup.$setValidity("paymentGroupLimitNotUnique",!0));i.mainForm.editedMin&&i.mainForm.editedMin.$setValidity("bothMinMaxMissing",!0);i.mainForm.editedMax&&i.mainForm.editedMax.$setValidity("bothMinMaxMissing",!0);i.mainForm.editedDayMax&&i.mainForm.editedDayMax.$setValidity("dayMaxMissing",!0);i.hourLimitPopover.editedLimit=null;i.hourLimitPopover.editorVisible=!1},i.addLimit=function(n,t){ahl=new v;ahl.HourLimitType=n;ahl.TargetGroup=t;ahl.AddedNew=!0;ahl.Changed=!0;ahl.TempID=(new Date).getTime()*-1;ahl.EditedHourLimitMin=null;ahl.EditedHourLimitMax=null;ahl.EditedHourLimitDayMax=null;ahl.EditedTexts=[];ahl.TargetGroup==i.hourLimitPopover.targetGroups.GroupItem?ahl.GroupItem={IdC:"",Code:"",GroupingIdC:"",GroupingName:"",GroupingCode:"",GroupItemIdC:"",GroupItemName:"",GroupItemCode:"",Texts:[]}:ahl.PaymentGroup={IdC:"",Name:"",Code:"",PaymentGroupIdC:"",PaymentGroupName:"",PaymentGroupCode:"",Texts:[]};
1i.hourLimitPopover.invalidInput=!0;i.hourLimitPopover.editedLimit=ahl;i.hourLimitPopover.editorVisible=!0},i.editLimit=function(n){n.EditedHourLimitMin=n.HourLimitMin;n.EditedHourLimitMax=n.HourLimitMax;n.EditedHourLimitDayMax=n.HourLimitDayMax;n.EditedTexts=[];n.Texts||(n.Texts=[]);for(var t=0;t<n.Texts.length;t++)n.EditedTexts.push({RefIdC:String(n.Texts[t].RefIdC),LanguageIdC:String(n.Texts[t].LanguageIdC),HourLimitMinComment:String(n.Texts[t].HourLimitMinComment),HourLimitMaxComment:String(n.Texts[t].HourLimitMaxComment),HourLimitDayMaxComment:String(n.Texts[t].HourLimitDayMaxComment)});n.TargetGroup==i.hourLimitPopover.targetGroups.GroupItem?n.GroupItem={IdC:n.GroupItemIdC,Code:n.GroupItemCode,GroupItemIdC:n.GroupItemIdC,GroupItemName:n.GroupItemName,GroupItemCode:n.GroupItemCode,GroupingIdC:n.GroupingIdC,GroupingCode:n.GroupingCode,GroupingName:n.GroupingName,Texts:[]}:n.PaymentGroup={IdC:n.PaymentGruopIdC,Name:n.PaymentGroupName,Code:n.PaymentGroupCode,PaymentGroupIdC:n.PaymentGroupIdC,PaymentGroupName:n.PaymentGroupName,PaymentGroupCode:n.PaymentGroupCode,Texts:[]};i.hourLimitPopover.invalidInput=!1;i.hourLimitPopover.editedLimit=n;i.hourLimitPopover.editorVisible=!0},i.groupingTemplate="{{GroupingName}} {{GroupingCode}} {{#GroupingName}}/{{/GroupingName}} {{GroupItemName}} {{GroupItemCode}}",i.groupingListTemplate="{{GroupingName}} {{GroupingCode}} {{#GroupingName}}/{{/GroupingName}} {{GroupItemName}} {{GroupItemCode}}",i.groupingSearchResultTemplate="{{GroupingName}} {{GroupingCode}} {{#GroupingName}}/{{/GroupingName}} {{GroupItemName}} {{GroupItemCode}}",i.payGroupListTemplate="{{PaymentGroupName}} {{PaymentGroupCode}}",i.payGroupTemplate="{{PaymentGroupName}} {{PaymentGroupCode}}",i.payGroupSearchResultTemplate="{{PaymentGroupName}} {{PaymentGroupCode}}",i.gitListFields=[{dataType:1,heading:"HOUR_LIMIT_POPOVER.GROUP",name:"GroupingName","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,heading:"HOUR_LIMIT_POPOVER.GROUP_ITEM",name:"GroupItemName","class":"listcellName",headingClass:"listcellName"}],i.pgListFields=[{dataType:1,heading:"HOUR_LIMIT_POPOVER.CODE",name:"PaymentGroupCode","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,heading:"HOUR_LIMIT_POPOVER.NAME",name:"PaymentGroupName","class":"listcellName",headingClass:"listcellName"}],i.dataSources={groupItemDataSource:h.createDatasource({method:function(n){return y.getAll(n)}}),paymentGroupDataSource:h.createDatasource({method:function(n){return n.StartDate=new Date,n.EndDate=new Date,p.getAll(n)}})},i.getGroupItems=function(n){var t=u.defer();return y.getAll(n).then(function(n){t.resolve(n)}),t.promise},i.getPaymentGroups=function(n){n.StartDate=new Date;n.EndDate=new Date;var t=u.defer();return p.getAll(n).then(function(n){t.resolve(n)}),t.promise},i.reOrganizeLimits=function(){var t,n;for(i.hourLimitPopover.generalMinMax=null,i.hourLimitPopover.generalDayMax=null,i.hourLimitPopover.generalStampMinMax=null,i.hourLimitPopover.groupItemsMinMax=[],i.hourLimitPopover.groupItemsDayMax=[],i.hourLimitPopover.groupItemsStampMinMax=[],i.hourLimitPopover.payGroupsMinMax=[],i.hourLimitPopover.payGroupsDayMax=[],i.hourLimitPopover.payGroupsStampMinMax=[],t=0;t<i.hourLimitPopover.allLimits.length;t++)(n=i.hourLimitPopover.allLimits[t],n.Deleted)||(n.HourLimitType==i.hourLimitPopover.limitTypes.MinMax?n.TargetGroup==i.hourLimitPopover.targetGroups.General?i.hourLimitPopover.generalMinMax=n:n.TargetGroup==i.hourLimitPopover.targetGroups.PaymentGroup?i.hourLimitPopover.payGroupsMinMax.push(n):n.TargetGroup==i.hourLimitPopover.targetGroups.GroupItem&&i.hourLimitPopover.groupItemsMinMax.push(n):n.HourLimitType==i.hourLimitPopover.limitTypes.DayMax?n.TargetGroup==i.hourLimitPopover.targetGroups.General?i.hourLimitPopover.generalDayMax=n:n.TargetGroup==i.hourLimitPopover.targetGroups.PaymentGroup?i.hourLimitPopover.payGroupsDayMax.push(n):n.TargetGroup==i.hourLimitPopover.targetGroups.GroupItem&&i.hourLimitPopover.groupItemsDayMax.push(n):n.HourLimitType==i.hourLimitPopover.limitTypes.StampMinMax&&(n.TargetGroup==i.hourLimitPopover.targetGroups.General?i.hourLimitPopover.generalStampMinMax=n:n.TargetGroup==i.hourLimitPopover.targetGroups.PaymentGroup?i.hourLimitPopover.payGroupsStampMinMax.push(n):n.TargetGroup==i.hourLimitPopover.targetGroups.GroupItem&&i.hourLimitPopover.groupItemsStampMinMax.push(n)));i.hourLimitPopover.generalMinMax==null&&(i.hourLimitPopover.generalMinMax=new v,i.hourLimitPopover.generalMinMax.TargetGroup=i.hourLimitPopover.targetGroups.General,i.hourLimitPopover.generalMinMax.HourLimitType=i.hourLimitPopover.limitTypes.MinMax,i.hourLimitPopover.allLimits.push(i.hourLimitPopover.generalMinMax));i.hourLimitPopover.generalDayMax==null&&(i.hourLimitPopover.generalDayMax=new v,i.hourLimitPopover.generalDayMax.TargetGroup=i.hourLimitPopover.targetGroups.General,i.hourLimitPopover.generalDayMax.HourLimitType=i.hourLimitPopover.limitTypes.DayMax,i.hourLimitPopover.allLimits.push(i.hourLimitPopover.generalDayMax));i.hourLimitPopover.generalStampMinMax==null&&(i.hourLimitPopover.generalStampMinMax=new v,i.hourLimitPopover.generalStampMinMax.TargetGroup=i.hourLimitPopover.targetGroups.General,i.hourLimitPopover.generalStampMinMax.HourLimitType=i.hourLimitPopover.limitTypes.StampMinMax,i.hourLimitPopover.allLimits.push(i.hourLimitPopover.generalStampMinMax));i.hourLimitPopover.pendingOperation=!1},i.cancelClick=function(){i.hourLimitPopover.visible=!1;i.hourLimitPopover.allLimits=[];i.hourLimitPopover.editedLimit=null;i.limitsChanged=!1},i.saveClick=function(){for(var n,t=0;t<i.hourLimitPopover.allLimits.length;t++)n=i.hourLimitPopover.allLimits[t],n.HourLimitType==i.hourLimitPopover.limitTypes.MinMax?n.HourLimitMin==null&&n.HourLimitMax==null&&(n.Deleted=n.IdC?!0:!1,n.Changed=!1):n.HourLimitType==i.hourLimitPopover.limitTypes.DayMax?n.HourLimitDayMax==null&&(n.Deleted=n.IdC?!0:!1,n.Changed=!1):n.HourLimitType==i.hourLimitPopover.limitTypes.StampMinMax&&n.HourLimitMin==null&&n.HourLimitMax==null&&(n.Deleted=n.IdC?!0:!1,n.Changed=!1),(n.Changed||n.Deleted)&&v.saveInstance(n).then(function(n){if(n.Data)var t=n.Data});i.hourLimitPopover.editedLimit=null;i.hourLimitPopover.visible=!1;i.limitsChanged=!1},i.limitsChanged=!1,i.limitChanged=function(n){n.Changed=!0;i.limitsChanged=!0},i.openHourLimitPopover=function(n){i.hourLimitPopover.limitTypes=l.getEnum("ApprovingHoursLimitHourLimitType");i.hourLimitPopover.targetGroups=l.getEnum("ApprovingHoursLimitTargetGroup");n.Name=="APPROVING_HOURS.HOUR_LIMIT_MIN_MAX"?(i.hourLimitPopover.visible=!0,i.hourLimitPopover.modeMinMax=!0,i.hourLimitPopover.modeDayMax=!1,i.hourLimitPopover.modeStampMinMax=!1):n.Name=="APPROVING_HOURS.HOUR_LIMIT_DAY_MAX"?(i.hourLimitPopover.visible=!0,i.hourLimitPopover.modeMinMax=!1,i.hourLimitPopover.modeDayMax=!0,i.hourLimitPopover.modeStampMinMax=!1):n.Name=="APPROVING_HOURS.STAMP_LIMIT_MIN_MAX"&&(i.hourLimitPopover.visible=!0,i.hourLimitPopover.modeMinMax=!1,i.hourLimitPopover.modeDayMax=!1,i.hourLimitPopover.modeStampMinMax=!0);i.hourLimitPopover.visible&&v.getAll().then(function(n){n.DataList?n.DataList.length?(i.hourLimitPopover.allLimits=n.DataList,i.reOrganizeLimits()):(i.reOrganizeLimits(),i.hourLimitPopover.pendingOperation=!1):(i.reOrganizeLimits(),i.hourLimitPopover.pendingOperation=!1)})},f.opened.then(function(){c.clearSettingsCache();a.getAll({date:i.date}).then(function(n){var u,h,s,f,t,e;for(i.settingParents=[],u=n?n.DataList:null,u&&u.length||(u=[{Properties:0,InheritedSettings:!1,OrganisationIdC:null,UserIdC:null,Name:null}]),h=null,s=null,f=0;f<u.length;f++)t=u[f],t.DisplayName=t.UserIdC?o.getText("APPROVING_HOURS.USER_SETTINGS"):t.OrganisationIdC?o.getText("APPROVING_HOURS.ORGANISATION_SETTINGS")+": "+t.Name:o.getText("APPROVING_HOURS.GENERAL_SETTINGS"),e={Name:t.DisplayName,UserIdC:t.UserIdC,OrganisationIdC:t.OrganisationIdC,Enabled:t.UserIdC?i.permissions.user:i.permissions.general},i.settingParents.length>0&&(e.Parent=i.settingParents[i.settingParents.length-1]),e.Index=f,i.settingParents.push(e),t=c.prepareSettings(t,f>
10?u[f-1]:null),t.InheritedSettings&&(t.Owner=h),t.InheritedSettings||(h=e),s&&(t.Next=s,s.Prev=t),s=t,e.Settings=t,i.settings=t;t&&c.cacheSettings(t);r(function(){i.settingParents&&i.settingParents.length&&(i.selectedIndex=i.settingParents.length-1,i.selectSettingParent(i.settingParents[i.selectedIndex]))})})}),i.settingParentChanged=function(n){i.selectSettingParent(n?n:i.selectedSettingParent)},i.selectSettingParent=function(n){var r,t;if(i.selectedSettingParent=n,i.settings=n.Settings,i.customSettings=!i.settings.InheritedSettings,i.settings.Settings&&i.settings.Settings.length)for(r=0;r<i.settings.Settings.length;r++)t=i.settings.Settings[r],t.ValueLabel=t.Name=="APPROVING_HOURS.STAMPS_WITH_SPECIAL_CODE_REASONCODE"&&l.getKey("ApprovingHoursNotificationLevel",t.Value)?"APPROVING_HOURS.NOTIFICATION_LEVEL_"+l.getKey("ApprovingHoursNotificationLevel",t.Value).toUpperCase():t.Name=="APPROVING_HOURS.WORK_HOURS_WITH_SPECIAL_CODE_REASONCODE"&&l.getKey("ApprovingHoursNotificationLevel",t.Value)?"APPROVING_HOURS.NOTIFICATION_LEVEL_"+l.getKey("ApprovingHoursNotificationLevel",t.Value).toUpperCase():t.Name=="APPROVING_HOURS.ABSENCES"&&l.getKey("ApprovingHoursNotificationLevel",t.Value)?"APPROVING_HOURS.NOTIFICATION_LEVEL_"+l.getKey("ApprovingHoursNotificationLevel",t.Value).toUpperCase():t.Name=="APPROVING_HOURS.UNAPPROVED_ABSENCES"&&l.getKey("ApprovingHoursNotificationLevel",t.Value)?"APPROVING_HOURS.NOTIFICATION_LEVEL_"+l.getKey("ApprovingHoursNotificationLevel",t.Value).toUpperCase():t.Name=="APPROVING_HOURS.STANDBYS"&&l.getKey("ApprovingHoursNotificationLevel",t.Value)?"APPROVING_HOURS.NOTIFICATION_LEVEL_"+l.getKey("ApprovingHoursNotificationLevel",t.Value).toUpperCase():t.Name=="APPROVING_HOURS.UNAPPROVED_STANDBYS"&&l.getKey("ApprovingHoursNotificationLevel",t.Value)?"APPROVING_HOURS.NOTIFICATION_LEVEL_"+l.getKey("ApprovingHoursNotificationLevel",t.Value).toUpperCase():t.Name=="APPROVING_HOURS.OVERTIME"&&l.getKey("ApprovingHoursNotificationLevel",t.Value)?"APPROVING_HOURS.NOTIFICATION_LEVEL_"+l.getKey("ApprovingHoursNotificationLevel",t.Value).toUpperCase():t.Name=="APPROVING_HOURS.TRAVEL_CLAIMS"&&l.getKey("ApprovingHoursNotificationLevel",t.Value)?"APPROVING_HOURS.NOTIFICATION_LEVEL_"+l.getKey("ApprovingHoursNotificationLevel",t.Value).toUpperCase():t.Name=="APPROVING_HOURS.UNAPPROVED_TRAVEL_CLAIMS"&&l.getKey("ApprovingHoursNotificationLevel",t.Value)?"APPROVING_HOURS.NOTIFICATION_LEVEL_"+l.getKey("ApprovingHoursNotificationLevel",t.Value).toUpperCase():t.Name=="APPROVING_HOURS.HOUR_LIMIT_MIN_MAX"&&l.getKey("ApprovingHoursNotificationLevel",t.Value)?"APPROVING_HOURS.NOTIFICATION_LEVEL_"+l.getKey("ApprovingHoursNotificationLevel",t.Value).toUpperCase():t.Name=="APPROVING_HOURS.HOUR_LIMIT_DAY_MAX"&&l.getKey("ApprovingHoursNotificationLevel",t.Value)?"APPROVING_HOURS.NOTIFICATION_LEVEL_"+l.getKey("ApprovingHoursNotificationLevel",t.Value).toUpperCase():t.Name=="APPROVING_HOURS.STAMP_LIMIT_MIN_MAX"&&l.getKey("ApprovingHoursNotificationLevel",t.Value)?"APPROVING_HOURS.NOTIFICATION_LEVEL_"+l.getKey("ApprovingHoursNotificationLevel",t.Value).toUpperCase():t.Name=="APPROVING_HOURS.PAGE_SIZE"?t.Value:t.Value?"GLOBAL.YES":"GLOBAL.NO"},i.onOK=function(){var n=c.prepareSettingsForSaving();n&&n.length?c.saveSettings(n).then(function(n){var t=s.getDataMessage(n,n.Status=="1"?"GLOBAL.SUCCESS_SAVE":"GLOBAL.ERROR_SAVE");s.showSplash(t,n.Status=="1"?"okMessage":"errorMessage");n.Status=="1"&&f.close(n.Data)},function(){}):f.close(null)},i.onCancel=function(){f.close(null)},i.customSettingsChanged=function(n){var t,u,f,r;if(n){for(t={IdC:i.settings.Deleted?i.settings.IdC:null,InheritedSettings:!1,Changed:i.settings.Deleted?!0:!1,Deleted:!1,Settings:angular.copy(i.settings.Settings)},t.Next=i.settings.Next,t.Prev=i.settings.Prev,t.Owner=null,u=i.selectedSettingParent,r=i.settings.Prev;r;)r.InheritedSettings?(r.Settings=t.Settings,r.Owner=u,r=r.Prev):r=null;t.Next&&(t.Next.Prev=t);t.Prev&&(t.Prev.Next=t);i.customSettings=!0;u&&(u.OrganisationIdC?t.OrganisationIdC=u.OrganisationIdC:u.UserIdC&&(t.UserIdC=u.UserIdC),u.Settings=t);t.Prev||c.cacheSettings(t);i.settings=t}else{for(u=i.selectedSettingParent,i.settings.InheritedSettings=!0,f=i.settings.Next,f&&(i.settings.Settings=f.Settings,i.settings.Owner=f.InheritedSettings?f.Owner:u&&u.Parent?u.Parent:null),r=i.settings.Prev;r;)r.InheritedSettings?(r.Settings=i.settings.Settings,r.Owner=i.settings.Owner,r=r.Prev):r=null;i.settings.IdC&&(i.settings.Deleted=!0);i.customSettings=!1;u&&(u.Settings=i.settings)}},i.changed=function(n){n.Changed=!0;c.updateSettingHierarhcy(n)},this}]);angular.module("TiimaApp").controller("workingDayLogController",["$scope","$timeout","$uibModalInstance","$controller","localizationService","toolsService","tiimaEnumsService","settingService","WorkingDayLog","employee","date",function(n,t,i,r,u,f,e,o,s,h,c){r("baseModalController",{$scope:n,$uibModalInstance:i});n.log=null;n.employeeIdC=h.IdC;n.employee=h;n.date=c;n.loading=!0;i.opened.then(function(){s.getAll({EmployeeIdC:n.employeeIdC,Date:n.date}).then(function(t){t&&t.DataList&&(n.log=t.DataList);n.loading=!1})});n.onClose=function(){i.close(null)};n.getSettingColor=function(n){return o.getSetting(n)||""};n.statusColors=[n.getSettingColor("COLOR_NOT_ACCEPTED"),n.getSettingColor("COLOR_LOCKED"),n.getSettingColor("COLOR_MAIN_LOCK"),n.getSettingColor("COLOR_ACCEPTED"),n.getSettingColor("COLOR_PROC_STARTED"),n.getSettingColor("COLOR_ACCEPTED"),n.getSettingColor("COLOR_PROC_ACCEPTED"),n.getSettingColor("COLOR_PROC_EXPORTED")]}]);angular.module("TiimaApp").controller("approvingHoursEditorController",["$scope","$timeout","$uibModalInstance","$controller","$uibModal","$q","$http","settingService","localizationService","toolsService","tiimaEnumsService","datasourceService","WorkHour","WorkingHourStamp","Employee","employeeIdC","workingDayDate","permissions","generalSettings","queryItems","currentPeriod","employees","approvedByDefault",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k,d,g,nt,tt){var it,st;r("baseModalController",{$scope:n,$uibModalInstance:i});n.changed=!0;n.employeeIdC=p;n.workingDayDate=w;n.currentPeriod=g;n.languageIdC=s.getCurrentLanguageIdC();n.employee={};n.employees=nt?nt:[];n.whDimensions=[];n.whsDimensions=[];n.workHours=[];n.workingHourStamps=[];n.overtimeStamps=[];n.transactionStamps=[];n.emergencyStamps=[];n.compensationStamps=[];n.barcodeStamps=[];n.rawStamps=[];n.absences=[];n.standbys=[];n.salaryEvents=[];n.travelClaims=[];n.workShiftPlans=[];n.permission={none:0,read:2,write:4,del:8,all:14,execute:16,any:511};n.permissions=b;n.permissions.modifyTransaction=(n.permissions.editTransaction&n.permission.write)>0;n.permissions.modifyStamp=(n.permissions.editStamp&n.permission.write)>0;n.permissions.modifyBcStamp=(n.permissions.editBcStamp&n.permission.write)>0;n.permissions.modifyWorkHour=(n.permissions.editWorkHour&n.permission.write)>0;n.permissions.deleteStamp=(n.permissions.editStamp&n.permission.del)>0;n.permissions.deleteBcStamp=(n.permissions.editBcStamp&n.permission.del)>0;n.permissions.deleteWorkHour=(n.permissions.editWorkHour&n.permission.del)>0;n.permissions.deleteTransaction=(n.permissions.editTransaction&n.permission.del)>0;n.employeeUnlockedDay=!1;n.employeeUnlockedDayText="";n.approvedByDefault=tt?tt:{stamps:!1,workHours:!1,transactions:!1,realizedHours:!1};n.employeeTemplate="{{FirstName}} {{LastName}} {{ID2}}";n.employeeListTemplate="{{ID2}} {{Name}}";n.employeeSearchResultTemplate="{{FirstName}} {{LastName}} {{ID2}}";n.listFields=[{dataType:1,heading:"APPROVING_HOURS.EMPLOYEE_ID2",name:"ID2","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,heading:"APPROVING_HOURS.EMPLOYEE_NAME",name:"Name","class":"listcellNameCustomLong",headingClass:"listcellNameCustomLong"}];n.stampType=c.getEnum("WorkingHourStampType");n.stampSource={none:0,user:1,system:2,imprt:3,mobile_iPhone:4,mobile_Android:5,mobile_WP:6,mobile_Unknown:7,generated:8,timeTerminal:9};n.pendingOperation=!1;n.generalSettings=k;n.rcColFirst=o.getSetting("RC_BEFORE_AMOUNT")||!1;n.workingDay={};n.noEvents=!1;n.invalidEmploymentData=!1;n.rcDataTypeNone=0;n.rcDataTypeHours=1;n.rcDataTypeDays=2;n.rcDataTypeUnits=3;n.rcDataTypeEuros=4;n.rcDataTypeStartAndEndTime=5;n.reasonCodeTypes=c.getEnum("ReasonCodeType");n.employeeChange=function(){n.employeeIdC=n.employee.IdC?n.employee.IdC:"";n.getData()};n.approval={allStampsSelected:!1,approveAllButtonActive:!1,approveSelectedButtonActive:!1,unApproveAllButtonActive:!1,unApproveSelectedButtonActive:!1};var ht=1,ct=2,lt=4,ut=64,at=0,ft=1,vt=2,rt=3,yt=4,pt=5,wt=7,et={1:!0,3:!0},ot={0:!0,2:!0,7:!0,4:!0,5:!0},bt=0,kt=1,dt=2,gt=3,ni=4,ti=7,ii=8;return n.wdLocks={notApproved:0,employeeLock:1,acceptorLock:2,periodLock:3,processingStarted:4,processingAccepted:5,processingExported:6,texts:[],colors:[]},n.salaryEventSumTypeQuantity=1,n.salaryEventSumTypeDuration=0,n.tcTravelTypeNone=0,n.tcTravelTypeDomestic=1,n.tcTravelTypeForeign=2,n.tcTravelTypeKilometre=3,n.statusTexts=[],n.statusColors=[],n.whWorkingDayStatus="",n.whsWorkingDayStatus="",n.firstDate=function(){var t=new Date(n.currentPeriod.startDate);n.changeDate(t)},n.prevDate=function(){var t=new Date(n.workingDayDate);t.setDate(t.getDate()-1);n.changeDate(t)},n.lastDate=function(){var t=new Date(n.currentPeriod.endDate);n.changeDate(t)},n.nextDate=function(){var t=new Date(n.workingDayDate);t.setDate(t.getDate()+1);n.changeDate(t)},n.changeDate=function(t){if(t instanceof Date){var i=t.getTime();(i!==n.workingDayDate.getTime?n.workingDayDate.getTime():0)&&(n.workingDayDateIsDate=!0,t<n.currentPeriod.startDate&&(t=n.currentPeriod.startDate),t>n.currentPeriod.endDate&&(t=n.currentPeriod.endDate),n.workingDayDate=new Date(t),n.getData())}else n.workingDayDateIsDate=!1},n.workingDayDateIsDate=!0,n.disEnableDateNavs=function(){n.atStartOfPeriod=n.currentPeriod.startDate.getTime()==n.workingDayDate.getTime();n.atEndOfPeriod=n.currentPeriod.endDate.getTime()==n.workingDayDate.getTime()},i.opened.then(function(){n.statusTexts[at]=s.getText("APPROVING_HOURS.STATUS_NOT_APPROVED");n.statusTexts[ft]=s.getText("APPROVING_HOURS.STATUS_APPROVED");n.statusTexts[vt]=s.getText("APPROVING_HOURS.STATUS_NOT_APPROVED");n.statusTexts[rt]=s.getText("APPROVING_HOURS.STATUS_TRANSFERRED");n.statusTexts[yt]=s.getText("APPROVING_HOURS.STATUS_LOCKED");n.statusTexts[pt]=s.getText("APPROVING_HOURS.STATUS_REJECTED");n.statusTexts[wt]=s.getText("APPROVING_HOURS.STATUS_SENT");n.statusColors[at]=o.getSetting("COLOR_NOT_ACCEPTED")||"";n.statusColors[ft]=o.getSetting("COLOR_ACCEPTED")||"";n.statusColors[vt]=o.getSetting("COLOR_NOT_ACCEPTED")||"";n.statusColors[rt]=o.getSetting("COLOR_TRANSFERRED")||"";n.statusColors[yt]=o.getSetting("COLOR_LOCKED")||"";n.statusColors[pt]=o.getSetting("COLOR_REJECTED")||"";n.statusColors[wt]=o.getSetting("COLOR_SENT")||"";n.wdLocks.texts[n.wdLocks.notApproved]=s.getText("APPROVING_HOURS.STATUS_NOT_APPROVED");n.wdLocks.colors[n.wdLocks.notApproved]=o.getSetting("COLOR_NOT_ACCEPTED")||"";n.wdLocks.texts[n.wdLocks.employeeLock]=s.getText("APPROVING_HOURS.STATUS_EMPLOYEE_LOCKED");n.wdLocks.colors[n.wdLocks.employeeLock]=o.getSetting("COLOR_LOCKED")||"";n.wdLocks.texts[n.wdLocks.acceptorLock]=s.getText("APPROVING_HOURS.STATUS_APPROVED");n.wdLocks.colors[n.wdLocks.acceptorLock]=o.getSetting("COLOR_ACCEPTED")||"";n.wdLocks.texts[n.wdLocks.periodLock]=s.getText("APPROVING_HOURS.STATUS_PERIOD_LOCK");n.wdLocks.colors[n.wdLocks.periodLock]=o.getSetting("COLOR_MAIN_LOCK")||"";n.wdLocks.texts[n.wdLocks.processingStarted]=s.getText("APPROVING_HOURS.STATUS_PROC_STARTED");n.wdLocks.colors[n.wdLocks.processingStarted]=o.getSetting("COLOR_PROC_STARTED")||"";n.wdLocks.texts[n.wdLocks.processingAccepted]=s.getText("APPROVING_HOURS.STATUS_PROC_APPROVED");n.wdLocks.colors[n.wdLocks.processingAccepted]=o.getSetting("COLOR_PROC_ACCEPTED")||"";n.wdLocks.texts[n.wdLocks.processingExported]=s.getText("APPROVING_HOURS.STATUS_PROC_EXPORTED");n.wdLocks.colors[n.wdLocks.processingExported]=o.getSetting("COLOR_PROC_EXPORTED")||"";n.getData()}),n.approve=function(t,i){var r,u,f,e;
1n.pendingOperation=!0;r=[];u=n.permissions.modifyStamp&&(n.workingDay.StampEmployeeLock||b.apprNoEmplLock||!n.approvedByDefault.stamps)?n.workingHourStamps:[];n.getApprovableEvents(u,r,t,i,!1);f=n.permissions.modifyStamp&&(n.workingDay.StampEmployeeLock||b.apprNoEmplLock||!n.approvedByDefault.transactions)?n.transactionStamps:[];n.getApprovableEvents(f,r,t,i,!1);e=n.permissions.modifyWorkHour&&(n.workingDay.EmployeeLock||b.apprNoEmplLock||!n.approvedByDefault.workHours)?n.workHours:[];n.getApprovableEvents(e,r,t,i,!0);r.length?n.doApproval(r).then(function(){n.selection=n.getNewSelection();n.getData();n.pendingOperation=!1;n.dataChanged=!0}):n.pendingOperation=!1},n.doApproval=function(n){s.removeTimezonesFromDates(n);var t=f.defer();return h.handleHttpPost(e.post("MVC/Approving/ApprovingHours/ApproveHours",n),function(n){t.resolve(n)},t,null,null,null),t.promise},n.getApprovableEvents=function(t,i,r,u,f){for(var e=0;e<t.length;e++)(!u||t[e].selected)&&(r&&et[t[e].Status]||!r&&ot[t[e].Status]||(typeof t[e].Status=="undefined"||t[e].Status!=rt)&&(typeof t[e].AbsenceStatus=="undefined"||t[e].AbsenceStatus!=rt)&&i.push({IdC:n.employeeIdC,StartDate:new Date(n.workingDayDate),EndDate:new Date(n.workingDayDate),RemoveApproval:r?0:1,WorkHourIdC:f?t[e].IdC:null,WorkingHourStampIdC:f?null:t[e].IdC}))},n.getNewSelection=function(){return{whStamp:{allSelected:!1,noneSelected:!0,approvedSelected:!1,unapprovedSelected:!1},wHour:{allSelected:!1,noneSelected:!0,approvedSelected:!1,unapprovedSelected:!1},transaction:{allSelected:!1,noneSelected:!0,approvedSelected:!1,unapprovedSelected:!1},unapprovedSelected:!1,approvedSelected:!1,approvedExists:!1,unapprovedExists:!1,employeeUnlockedDay:!1,employeeWHSUnlockedDay:!1,employeeWHUnlockedDay:!1}},n.selection=n.getNewSelection(),st=null,n.selectEvent=function(i,r){it=i;st=r;t(function(){var i=it===n.selection.whStamp&&n.permissions.modifyStamp&&!n.selection.employeeWHSUnlockedDay?n.workingHourStamps:it===n.selection.wHour&&n.permissions.modifyWorkHour&&!n.selection.employeeWHUnlockedDay?n.workHours:it===n.selection.transaction&&n.permissions.modifyStamp&&!n.selection.employeeWHSUnlockedDay?n.transactionStamps:[],t;for(st?it.noneSelected=!it.allSelected:(it.allSelected=!0,it.noneSelected=!0),it.approvedSelected=!1,it.unapprovedSelected=!1,t=0;t<i.length;t++)st&&(typeof i[t].Status=="undefined"||i[t].Status!=rt)&&(typeof i[t].AbsenceStatus=="undefined"||i[t].AbsenceStatus!=rt)&&(i[t].selected=it.allSelected),i[t].selected?(it.noneSelected=!1,et[i[t].Status]&&(it.approvedSelected=!0),ot[i[t].Status]&&(it.unapprovedSelected=!0)):it.allSelected=!1;n.selection.approvedSelected=(n.selection.whStamp.approvedSelected||n.selection.wHour.approvedSelected||n.selection.transaction.approvedSelected)&&!n.selection.employeeUnlockedDay;n.selection.unapprovedSelected=(n.selection.whStamp.unapprovedSelected||n.selection.wHour.unapprovedSelected||n.selection.transaction.unapprovedSelected)&&!n.selection.employeeUnlockedDay})},n.setData=function(t){function a(n){for(var t,r,i=0;i<u.length;i++)for(t=0;t<n.length;t++)for(n[t].DimensionItems||(n[t].DimensionItems=[]),n[t].mapDimensionItems||(n[t].mapDimensionItems=[]),r=0;r<n[t].DimensionItems.length;r++)if(n[t].DimensionItems[r].DimensionIdC==u[i].IdC){n[t].mapDimensionItems[u[i].IdC]=n[t].DimensionItems[r];n[t].mapDimensionItems[u[i].IdC].DimensionItemID2&&(n[t].mapDimensionItems[u[i].IdC].DimensionItemName+=" ("+n[t].mapDimensionItems[u[i].IdC].DimensionItemID2+")");n[t].mapDimensionItems[u[i].IdC].OrganisationID2&&(n[t].mapDimensionItems[u[i].IdC].OrganisationName+=" ("+n[t].mapDimensionItems[u[i].IdC].OrganisationID2+")");break}}var p,c,f,r,v,y,w,o,e,l,h,u,i;if(n.whDimensions=[],n.whsDimensions=[],n.workHours=[],n.workingHourStamps=[],n.rawStamps=[],n.overtimeStamps=[],n.transactionStamps=[],n.emergencyStamps=[],n.compensationStamps=[],n.barcodeStamps=[],n.absences=[],n.standbys=[],n.salaryEvents=[],n.travelClaims=[],n.workShiftPlans=[],n.whsDurationSum=0,n.whDurationSum=0,n.bcDurationSum=0,p=1,!t.Data){n.noEvents=!0;n.invalidEmploymentData=!0;n.pendingOperation=!1;n.whWorkingDayStatus="";n.whsWorkingDayStatus="";return}for(n.workingDay=t.Data.ApprovableHours&&t.Data.ApprovableHours[0]?t.Data.ApprovableHours[0]:{},n.workingDay.whLocks=n.wdLocks.notApproved,n.workingDay.EmployeeLock&&(n.workingDay.whLocks=n.wdLocks.employeeLock),n.workingDay.AcceptorLock&&(n.workingDay.whLocks=n.wdLocks.acceptorLock),n.workingDay.PeriodLock&&(n.workingDay.whLocks=n.wdLocks.periodLock),n.workingDay.ProcessingLocks&ht&&(n.workingDay.whLocks=n.wdLocks.processingStarted),n.workingDay.ProcessingLocks&ct&&(n.workingDay.whLocks=n.wdLocks.processingAccepted),n.workingDay.ProcessingLocks<&&(n.workingDay.whLocks=n.wdLocks.processingExported),n.workingDay.whLocksText=n.wdLocks.texts[n.workingDay.whLocks],n.workingDay.ProcessingLocks==ut&&(n.workingDay.whLocksText=s.getText("APPROVING_HOURS.STATUS_PROC_CORRECTED")+" ("+n.workingDay.whLocksText
1+")"),n.workingDay.whsLocks=n.wdLocks.notApproved,n.workingDay.StampEmployeeLock&&(n.workingDay.whsLocks=n.wdLocks.employeeLock),n.workingDay.StampAcceptorLock&&(n.workingDay.whsLocks=n.wdLocks.acceptorLock),n.workingDay.StampPeriodLock&&(n.workingDay.whsLocks=n.wdLocks.periodLock),n.workingDay.StampProcessingLocks&ht&&(n.workingDay.whsLocks=n.wdLocks.processingStarted),n.workingDay.StampProcessingLocks&ct&&(n.workingDay.whsLocks=n.wdLocks.processingAccepted),n.workingDay.StampProcessingLocks<&&(n.workingDay.whsLocks=n.wdLocks.processingExported),n.workingDay.whsLocksText=n.wdLocks.texts[n.workingDay.whsLocks],n.workingDay.StampProcessingLocks==ut&&(n.workingDay.whsLocksText=s.getText("APPROVING_HOURS.STATUS_PROC_CORRECTED")+" ("+n.workingDay.whsLocksText+")"),n.selection.employeeUnlockedDay=!1,n.selection.employeeWHSUnlockedDay=!1,n.selection.employeeWHUnlockedDay=!1,n.employeeUnlockedDayText="",b.apprNoEmplLock||(n.approvedByDefault.realizedHours&&(n.workingDay.WorkHoursType==1?n.approvedByDefault.stamps=!0:n.approvedByDefault.workHours=!0),c=[],!n.workingDay.StampEmployeeLock&&n.approvedByDefault.stamps&&(c.push(s.getText("APPROVING_HOURS.STAMPS_ABBR")),n.selection.employeeWHSUnlockedDay=!0),!n.workingDay.EmployeeLock&&n.approvedByDefault.workHours&&(c.push(s.getText("APPROVING_HOURS.WORK_HOURS_ABBR")),n.selection.employeeWHUnlockedDay=!0),c.length&&(n.employeeUnlockedDayText=s.getText("APPROVING_HOURS.EMPLOYEE_UNLOCKED_DAYS"),n.employeeUnlockedDayText+=" ("+c.join(", ")+")",c.length==2&&(n.selection.employeeUnlockedDay=!0,n.selection.approvedSelected=!1,n.selection.unapprovedSelected=!1))),n.invalidEmploymentData=!1,n.employee=t.Data,n.workHours=t.Data.WorkHours?t.Data.WorkHours:[],i=0;i<n.workHours.length;i++)f=n.workHours[i],n.whDurationSum+=(f.ReasonCodeDataType<n.rcDataTypeDays||f.ReasonCodeDataType>n.rcDataTypeEuros)&&f.ReasonCodeType==n.reasonCodeTypes.AddHours?f.Duration:0,!et[f.Status]||n.selection.employeeWHSUnlockedDay||n.selection.employeeWHUnlockedDay||(n.selection.approvedExists=!0),!ot[f.Status]||n.selection.employeeWHSUnlockedDay||n.selection.employeeWHUnlockedDay||(n.selection.unapprovedExists=!0),f.statusText=n.statusTexts[f.Status],f.statusColor=n.statusColors[f.Status],n.workingDay.whsLocks>n.wdLocks.acceptorLock&&(f.statusText=n.workingDay.whsLocksText,f.statusColor=n.workingDay.whsLocksColors),f.selected=!1;for(r=t.Data.WorkingHourStamps?t.Data.WorkingHourStamps:[],i=0;i<r.length;i++)v=!1,r[i].Type==bt?(n.workingHourStamps.push(r[i]),v=!0):r[i].Type==dt?n.overtimeStamps.push(r[i]):r[i].Type==ii?(y=r[i],y.ReasonCodeDataType===n.rcDataTypeHours&&(y.Duration*=60),n.transactionStamps.push(y),v=!0):r[i].Type==ni?n.emergencyStamps.push(r[i]):r[i].Type==gt?n.compensationStamps.push(r[i]):r[i].Type==ti?n.barcodeStamps.push(r[i]):r[i].Type==kt&&(r[i].direction=r[i].Direction==p?s.getText("WORKHOURS4.STAMP_DIRECTION_IN"):s.getText("WORKHOURS4.STAMP_DIRECTION_OUT"),n.rawStamps.push(r[i])),r[i].statusText=n.statusTexts[r[i].Status],r[i].statusColor=n.statusColors[r[i].Status],n.workingDay.whsLocks>n.wdLocks.acceptorLock&&(r[i].statusText=n.workingDay.whsLocksText,r[i].statusColor=n.workingDay.whsLocksColors),v&&(!et[r[i].Status]||n.selection.employeeWHSUnlockedDay||n.selection.employeeWHUnlockedDay||(n.selection.approvedExists=!0),!ot[r[i].Status]||n.selection.employeeWHSUnlockedDay||n.selection.employeeWHUnlockedDay||(n.selection.unapprovedExists=!0)),r[i].selected=!1;for(i=0;i<n.workingHourStamps.length;i++)n.whsDurationSum+=n.workingHourStamps[i].Duration;for(i=0;i<n.barcodeStamps.length;i++)n.bcDurationSum+=n.barcodeStamps[i].Duration,w=new Date(n.barcodeStamps[i].EndDate),w.getTime()<1&&(n.barcodeStamps[i].EndDate=null);for(n.absences=t.Data.Absences?t.Data.Absences:[],n.salaryEvents=t.Data.SalaryEvents?t.Data.SalaryEvents:[],n.travelClaims=t.Data.TravelClaims?t.Data.TravelClaims:[],o=t.Data.Standbys?t.Data.Standbys:[],n.standbys=[],n.workShiftPlans=t.Data.WorkShiftPlans?t.Data.WorkShiftPlans:[],e=0;e<o.length;e++)if(o[e].ReasonCodeID2&&(o[e].ReasonCodeName+=" ("+o[e].ReasonCodeID2+")"),o[e].DimensionItemRows&&o[e].DimensionItemRows.length)for(l=0;l<o[e].DimensionItemRows.length;l++)l==0?n.standbys.push(o[e]):n.standbys.push({DimensionItems:[]}),n.standbys[n.standbys.length-1].DimensionItems=n.standbys[e].DimensionItemRows[l].DimensionItems,n.standbys[n.standbys.length-1].percentage=n.standbys[e].DimensionItemRows[l].Percentage;else n.standbys.push(o[e]),n.standbys[n.standbys.length-1].DimensionItems=[];for(h=0;h<n.absences.length;
1h++)new Date(n.absences[h].AbsenceDate).getFullYear()<1900&&(n.absences[h].AbsenceDate=!1),new Date(n.absences[h].StartDate).getFullYear()<1900&&(n.absences[h].StartDate=!1),new Date(n.absences[h].EndDate).getFullYear()<1900&&(n.absences[h].EndDate=!1);for(u=t.Data.Dimensions,i=0;i<u.length;i++)u[i].WorkHourRecording&&n.whDimensions.push(u[i]),u[i].UsedInStamping&&n.whsDimensions.push(u[i]);n.workHours.length&&a(n.workHours);n.workingHourStamps&&n.workingHourStamps.length&&a(n.workingHourStamps);n.standbys&&n.standbys.length&&a(n.standbys);n.barcodeStamps&&n.barcodeStamps.length&&a(n.barcodeStamps);n.transactionStamps&&n.transactionStamps.length&&a(n.transactionStamps);n.noEvents=!0;(n.permissions.editWorkHour&&n.workHours.length||n.permissions.editStamp&&n.workingHourStamps.length||n.permissions.editRawStamp&&n.rawStamps.length||n.permissions.editBcStamp&&n.barcodeStamps.length||n.permissions.editOvertime&&n.overtimeStamps.length||n.permissions.editTransaction&&n.transactionStamps.length||n.permissions.editEmergency&&n.emergencyStamps.length||n.permissions.editCompensation&&n.compensationStamps.length||n.permissions.editAbsence&&n.absences.length||n.permissions.editSalaryEvent&&n.salaryEvents.length||n.permissions.editTravelClaim&&n.travelClaims.length||n.permissions.editStandby&&n.standbys.length||n.permissions.editWorkShift&&n.workShiftPlans.length)&&(n.noEvents=!1);n.pendingOperation=!1},n.getData=function(){n.disEnableDateNavs();n.pendingOperation=!0;y.getApprovableEmployeeAndHours({EmployeeIdC:n.employeeIdC,WorkingDayDate:n.workingDayDate,ItemCount:1e4,Items:d},!1,!1,function(){n.setData({})}).then(function(t){n.setData(t)})},n.dataChanged=!1,n.dataSources={employeeDataSource:l.createDatasource({method:function(t){return n.getEmployees(t)}})},n.getEmployees=function(t){var u=t.firstIndex?t.firstIndex:0,c=t.itemCount?t.itemCount:10,e=t.SearchFilter?t.SearchFilter:"",r=[],o,i,h,s;if(e)for(i=u;i<n.employees.length;i++)(n.employees[i].LastName.toLowerCase().indexOf(e.toLowerCase())>-1||n.employees[i].ID2.toLowerCase().indexOf(e.toLowerCase())>-1)&&r.push(n.employees[i]);else r=n.employees;for(o=[],i=u;i<Math.min(r.length,u+c);i++)r[i].Name=r[i].LastName+" "+r[i].FirstName,o.push(r[i]);return h={DataList:o,Errors:0,InfoMessage:"",Messages:[],Status:0,TotalRows:r.length,Warnings:[]},s=f.defer(),s.resolve(h),s.promise},n.workHoursEditor=null,n.openWorkHoursEditor=function(t){n.workHoursEditor==null&&(n.workHoursEditor=u.open({templateUrl:"MVC/modals/Approving/workHoursEditor.html",controller:"workHoursEditorController",backdrop:"static",windowClass:"workHoursEditor",resolve:{workHourIdC:function(){return t},employeeIdC:function(){return n.employeeIdC},workingDayDate:function(){return n.workingDayDate},permissions:function(){return n.permissions.editWorkHour}}}),n.workHoursEditor.result.then(function(){n.dataChanged=!0;n.workHoursEditor=null;n.pendingOperation=!0;n.getData()}))},n.workingHourStampEditor=null,n.openWorkingHourStampEditor=function(t,i){n.workingHourStampEditor==null&&(n.workingHourStampEditor=u.open({templateUrl:"MVC/modals/Approving/workingHourStampEditor.html",controller:"workingHourStampEditorController",backdrop:"static",windowClass:"workingHourStampEditor",resolve:{workingHourStampIdC:function(){return t},workingHourStampType:function(){return i},employeeIdC:function(){return n.employeeIdC},workingDayDate:function(){return n.workingDayDate},permissions:function(){switch(i){case n.stampType.Modified:return n.permissions.editStamp;case n.stampType.Barcode:return n.permissions.editBcStamp;case n.stampType.Transaction:return n.permissions.editTransaction}return 0}}}),n.workingHourStampEditor.result.then(function(){n.dataChanged=!0;n.workingHourStampEditor=null;n.pendingOperation=!0;n.getData()}))},n.deleteWorkHour=function(t,i){i.stopPropagation();n.workingDay.PeriodLock!=1&&n.workingDay.AcceptorLock!=1&&(n.workingDay.ProcessingLocks==0||n.workingDay.ProcessingLocks&ut==ut)&&n.permissions.editWorkHour&n.permission.del&&t.Status!=ft&&t.Status!=rt&&!t.GeneratedFromTimeSpanAbsence&&h.confirm([{pageID:"WORK_HOURS_EDITOR",textID:"CONFIRM_DELETE_WORK_HOUR_HEADER"},{pageID:"WORK_HOURS_EDITOR",textID:"CONFIRM_DELETE_WORK_HOUR"}],null,function(){a.saveWorkHourData({Deleted:!0,IdC:t.IdC,EmployeeID:n.employeeIdC,WorkingDayDate:n.workingDayDate}).then(function(){n.dataChanged=!0;n.getData()})},function(){})},n.deleteAllowed=function(t){var i=!1;switch(t){case n.stampType.Modified:i=n.permissions.deleteStamp;break;case n.stampType.Barcode:i=n.permissions.deleteBcStamp;break;case n.stampType.Transaction:i=n.permissions.deleteTransaction;break;default:i=!1}return i},n.deleteWorkingHourStamp=function(t,i,r){i.stopPropagation();n.workingDay.StampPeriodLock!=1&&n.workingDay.StampAcceptorLock!=1&&(n.workingDay.StampProcessingLocks==0||(n.workingDay.StampProcessingLocks&ut)==ut)&&n.deleteAllowed(t.Type)&&t.Status!=ft&&t.Status!=rt&&!t.GeneratedFromTimeSpanAbsence&&h.confirm([{pageID:"WORKING_HOUR_STAMP_EDITOR",textID:r?"CONFIRM_DELETE_TRNASACTION_STAMP_HEADER":"CONFIRM_DELETE_WORKING_HOUR_STAMP_HEADER"},{pageID:"WORKING_HOUR_STAMP_EDITOR",textID:r?"CONFIRM_DELETE_TRANSACTION_STAMP":"CONFIRM_DELETE_WORKING_HOUR_STAMP"}],null,function(){v.saveWorkingHourStampData({Deleted:!0,IdC:t.IdC,Type:t.Type,EmployeeID:n.employeeIdC,WorkingDayDate:n.workingDayDate}).then(function(){n.dataChanged=!0;n.getData()})},function(){})},n.checkPermission=function(n,t){return n&t},n.onOK=function(){var n=[],t;n.Status=1;n.Data=[];t=h.getDataMessage(n,n.Status=="1"?"GLOBAL.SUCCESS_SAVE":"GLOBAL.ERROR_SAVE");h.showSplash(t,n.Status=="1"?"okMessage":"errorMessage");n.Status=="1"&&i.close(n.Data)},n.onCancel=function(){i.close(n.dataChanged)},this}]);angular.module("TiimaApp").controller("workHoursEditorController",["$scope","$q","$timeout","$uibModalInstance","$controller","settingService","localizationService","toolsService","tiimaEnumsService","workhoursService","datasourceService","Dimension","DimensionItem","Employee","ReasonCode","WorkHour","WorkingDay","workHourIdC","employeeIdC","workingDayDate","permissions",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k,d,g){return u("baseModalController",{$scope:n,$uibModalInstance:r}),n.changed=!0,n.languageIdC=e.getCurrentLanguageIdC(),n.employeeIdC=k,n.workHourIdC=b,n.workingDayDate=d,n.pendingOperation=!1,n.permissions=g,n.reasonCodeTemplate="{{Code}} {{ReasonCodeName}}",n.reasonCodeSearchResultTemplate="<div class='listcellCode'>{{Code}}<\/div><div class='listcellName'>{{ReasonCodeName}}<\/div>",n.dimItemTemplate="{{DimensionItemCode}} {{DimensionItemName}}",n.dimItemSearchResultTemplate="<div class='listcellCode'>{{Code}}<\/div><div class='listcellName'>{{DimensionItemName}}<\/div>",n.rcListFields=[{dataType:1,heading:"APPROVING_HOURS.EMPLOYEE_ID2",name:"Code","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,heading:"APPROVING_HOURS.EMPLOYEE_NAME",name:"LocalizedName","class":"listcellName",headingClass:"listcellName"}],n.currentWorkHour={StartDate:new Date(n.workingDayDate),EndDate:new Date(n.workingDayDate)},n.workingDay={},n.currentEmployee={},n.defaultDimensionItems=[],n.defaultReasonCode={},n.noEvents=!1,n.wdLocks=!1,n.dimensionValidationError=!1,n.descriptionRequired=f.getSetting("USE_WORKHOURS_DESCR")||!1,n.workHoursRequired=f.getSetting("WORK_HOURS_REQUIRED")||!1,n.rcDataType=s.getEnum("ReasonCodeDataTypeEnum"),n.permissionLevel=s.getEnum("PermissionLevel"),n.processingLocks=s.getEnum("ProcessingLocks"),n.eventStatus=s.getEnum("TransactionStatusEnum"),n.permissionRead=n.permissions&n.permissionLevel.Read,n.permissionWrite=n.permissions&n.permissionLevel.Write,n.permissionDelete=n.permissions&n.permissionLevel.Remove,n.statusTexts=[],n.whWorkingDayStatus="",r.opened.then(function(){n.statusTexts[n.eventStatus.None]=e.getText("APPROVING_HOURS.STATUS_NOT_APPROVED");n.statusTexts[n.eventStatus.Accepted]=e.getText("APPROVING_HOURS.STATUS_APPROVED");n.statusTexts[n.eventStatus.NotAccepted]=e.getText("APPROVING_HOURS.STATUS_NOT_APPROVED");n.statusTexts[n.eventStatus.Transferred]=e.getText("APPROVING_HOURS.STATUS_TRANSFERRED");n.statusTexts[n.eventStatus.Locked]=e.getText("APPROVING_HOURS.STATUS_LOCKED");n.statusTexts[n.eventStatus.Rejected]=e.getText("APPROVING_HOURS.STATUS_REJECTED");n.statusTexts[n.eventStatus.Sent]=e.getText("APPROVING_HOURS.STATUS_SENT");n.getData()}),n.getData=function(){n.pendingOperation=!0;t.all([v.getAll({EmployeeIdC:n.employeeIdC,Date:n.workingDayDate,GetSomeEmploymentData:!0,ByUserRights:!0}),w.getWorkingDay({EmployeeIdC:n.employeeIdC,Date:n.workingDayDate}),a.getDimensionItemsOfEmployee({EmployeeIdC:n.employeeIdC,StartDate:n.workingDayDate,EndDate:n.workingDayDate}),y.getDefaultReasonCode({EmployeeIdC:n.employeeIdC,StartDate:n.workingDayDate,EndDate:n.workingDayDate,ReasoncodeProperty:1})]).then(function(t){n.currentEmployee={};t[0]&&t[0].DataList&&t[0].DataList.length&&(n.currentEmployee=t[0].DataList[0]);n.workingDay={};t[1]&&t[1].Data&&(n.workingDay=t[1].Data);n.defaultDimensionItems=[];t[2]&&t[2].DataList&&(n.defaultDimensionItems=t[2].DataList,n.arrangeDefaultDimensionItems());n.defaultReasonCode={};t[3]&&t[3].Data&&(n.defaultReasonCode=t[3].Data,n.defaultReasonCode.Name=n.defaultReasonCode.LocalizedName,n.defaultReasonCode.ReasonCodeName=n.defaultReasonCode.LocalizedName);n.getWorkHourData()})},n.getWorkHourData=function(){n.workHourIdC?p.getWorkHourData({workHourIdC:n.workHourIdC}).then(function(t){t.Data&&(n.currentWorkHour=t.Data,n.currentWorkHour.DimensionItems||(n.currentWorkHour.DimensionItems=[]),n.arrangeWorkHourData());n.pendingOperation=!1;n.setWdLocks()}
1):(n.currentWorkHour=n.getNewWorkHour(),n.setWdLocks(),n.pendingOperation=!1)},n.setWdLocks=function(){n.wdLocks=!1;n.workingDay&&n.workingDay.ProcessingLocks&&(n.workingDay.ProcessingLocks&n.processingLocks.ProcessingCorrected)==0&&(n.wdLocks=!0);n.workingDay&&(n.workingDay.AcceptorLock||n.workingDay.PeriodLock)&&(n.wdLocks=!0);(n.currentWorkHour.Status==n.eventStatus.Accepted||n.currentWorkHour.Status==n.eventStatus.Transferred)&&(n.wdLocks=!0);n.whWorkingDayStatus=e.getText("APPROVING_HOURS.STATUS_NOT_APPROVED");n.workingDay.EmployeeLock&&(n.whWorkingDayStatus=e.getText("APPROVING_HOURS.STATUS_EMPLOYEE_LOCKED"));n.workingDay.AcceptorLock&&(n.whWorkingDayStatus=e.getText("APPROVING_HOURS.STATUS_APPROVED"));n.workingDay.PeriodLock&&(n.whWorkingDayStatus=e.getText("APPROVING_HOURS.STATUS_PERIOD_LOCK"));n.workingDay.ProcessingLocks&n.processingLocks.ProcessingStarted&&(n.whWorkingDayStatus=e.getText("APPROVING_HOURS.STATUS_PROC_STARTED"));n.workingDay.ProcessingLocks&n.processingLocks.ProcessingAccepted&&(n.whWorkingDayStatus=e.getText("APPROVING_HOURS.STATUS_PROC_APPROVED"));n.workingDay.ProcessingLocks&n.processingLocks.ProcessingExported&&(n.whWorkingDayStatus=e.getText("APPROVING_HOURS.STATUS_PROC_EXPORTED"));n.workingDay.ProcessingLocks==n.processingLocks.ProcessingCorrected&&(n.whWorkingDayStatus=e.getText("APPROVING_HOURS.STATUS_PROC_CORRECTED")+" ("+n.whWorkingDayStatus+")")},n.arrangeDefaultDimensionItems=function(){for(var t,i,u=[],f=n.defaultDimensionItems,r=0;r<f.length;r++)if(t=f[r],t.GroupingNumber==0&&t.DimensionType==0){for(t.IdC=null,t.Deleted=null,t.Changed=!0,t.Code=t.DimensionItemCode,i=0;i<t.Texts.length;i++)t.Texts[i].LanguageIdC==n.languageIdC&&(t.DimensionItemName=t.Texts[i].DimensionItemName,t.OrganisationName=t.Texts[i].OrganisationName,t.Texts[i].Name=t.Texts[i].DimensionItemName?t.Texts[i].DimensionItemName:t.Texts[i].OrganisationName);t.Texts=null;u.push(t)}n.defaultDimensionItems=u},n.arrangeWorkHourData=function(){n.currentWorkHour.ReasonCode={IdC:n.currentWorkHour.ReasonCodeIdC,Code:n.currentWorkHour.ReasonCodeID2,ReasonCodeName:n.currentWorkHour.ReasonCodeName,DataType:n.currentWorkHour.ReasonCodeDataType,ReasonCodeDataType:n.currentWorkHour.ReasonCodeDataType,ObligatoryDescription:n.currentWorkHour.ReasonCodeObligatoryDescription};n.pendingOperation=!1},n.workHourChanged=function(){n.currentWorkHour.Changed=!0},n.timeChanged=function(){n.currentWorkHour.Changed=!0},n.saveWorkHour=function(){n.currentWorkHour.Changed&&n.permissionWrite&&!n.wdLocks&&(n.currentWorkHour.WorkingDayIdC=n.workingDay.IdC,n.pendingOperation=!0,n.currentWorkHour.EmployeeIdC=String(n.employeeIdC),n.currentWorkHour.ReasonCodeIdC=n.currentWorkHour.ReasonCode.IdC,n.currentWorkHour.StartDate=o.setDatePart(n.currentWorkHour.StartDate,n.workingDayDate),n.currentWorkHour.EndDate=o.setDatePart(n.currentWorkHour.EndDate,n.workingDayDate),n.currentWorkHour.ReasonCode.DataType==n.rcDataType.StartAndEndTime&&(n.currentWorkHour.StartDate>n.currentWorkHour.EndDate&&n.currentWorkHour.EndDate.setDate(n.currentWorkHour.EndDate.getDate()+1),n.currentWorkHour.WorkHours=0),n.currentWorkHour.ReasonCode.DataType<n.rcDataType.StartAndEndTime&&n.currentWorkHour.ReasonCode.DataType>n.rcDataType.Hours&&(n.currentWorkHour.StartDate.setHours(0,0,0,0),n.currentWorkHour.EndDate.setHours(0,0,0,0)),n.checkInput()?p.saveWorkHourData(angular.copy(n.currentWorkHour),!1,!1,function(){n.currentWorkHour=n.getNewWorkHour();o.alert({pageID:"WORK_HOURS_EDITOR",textID:"ERROR_SAVE_UNSPECIFIED"});n.pendingOperation=!1;r.close(n.currentWorkHour)}).then(function(t){t.Data&&(n.currentWorkHour=t.Data,n.arrangeWorkHourData());n.pendingOperation=!1;r.close(n.currentWorkHour)}):n.pendingOperation=!1)},n.checkInput=function(){return n.currentWorkHour.Deleted?!0:n.currentWorkHour.Description==""&&(n.descriptionRequired||n.currentWorkHour.ReasonCode.ObligatoryDescription)?!1:!0},n.newWorkHour=function(){n.permissionWrite&&!n.wdLocks&&(n.currentWorkHour=n.getNewWorkHour(),n.currentWorkHour.Changed=!0)},n.deleteWorkHour=function(t){n.permissionDelete&&!n.wdLocks&&n.currentWorkHour.IdC&&!n.currentWorkHour.GeneratedFromTimeSpanAbsence&&o.confirm([{pageID:"WORK_HOURS_EDITOR",textID:"CONFIRM_DELETE_WORK_HOUR_HEADER"},{pageID:"WORK_HOURS_EDITOR",textID:"CONFIRM_DELETE_WORK_HOUR"}],null,function(){n.currentWorkHour.Changed=!0;n.currentWorkHour.Deleted=!0;n.saveWorkHour(t);n.newWorkHour()},function(){})},n.getNewWorkHour=function(){return{WorkingDayDate:new Date(n.workingDayDate),StartDate:new Date(n.workingDayDate),EndDate:new Date(n.workingDayDate),WorkHours:0,DimensionItems:n.defaultDimensionItems,ReasonCode:n.defaultReasonCode,Status:0,IdC:""}},n.cancelWorkHour=function(){r.close(null)},n.showUnitPrice=function(){var t=s.getEnum("ReasoncodeProperty2");try{return(n.currentWorkHour.ReasonCode.Properties2&t.ShowUnitPrice)==t.ShowUnitPrice}catch(i){return!1}},n.getReasonCodes=function(i){i.StartDate=n.workingDayDate;i.EndDate=n.workingDayDate;i.EmployeeIdC=n.employeeIdC;i.OrderByField=2;i.OrderByField2=1;i.Property=1;var r=t.defer();return y.getAll(i).then(function(n){r.resolve(n)}),r.promise},n.dataSources={reasonCodeDataSource:c.createDatasource({method:function(t){return t.StartDate=n.workingDayDate,t.EndDate=n.workingDayDate,t.EmployeeIdC=n.employeeIdC,t.OrderByField2=1,t.Property=1,y.getAll(t)}})},n.validateStartTime=function(t,i){return n.validateTime(t,i.endTimeField)},n.validateEndTime=function(t,i){return n.validateTime(i.startTimeField,t)},n.endDateOnNextDaySide=!1,n.validateTime=function(t,i){if(t&&i){var u=new Date(t),r=new Date(i);return n.endDateOnNextDaySide=!1,u>r&&(r.setDate(r.getDate()+1),n.endDateOnNextDaySide=new Date(r)),{valid:!0,errors:[]}}return{valid:!0,errors:[]}},this}]);angular.module("TiimaApp").controller("workingHourStampEditorController",["$scope","$q","$timeout","$uibModalInstance","$controller","settingService","localizationService","toolsService","tiimaEnumsService","datasourceService","Dimension","DimensionItem","Employee","ReasonCode","WorkingHourStamp","WorkingDay","workingHourStampIdC","workingHourStampType","employeeIdC","workingDayDate","permissions",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k,d,g){return u("baseModalController",{$scope:n,$uibModalInstance:r}),n.employeeIdC=k,n.workingHourStampIdC=w,n.workingHourStampType=b,n.workingDayDate=d,n.endDateOnNextDaySide=!1,n.pendingOperation=!1,n.permissions=g,n.reasonCodeTemplate="{{Code}} {{ReasonCodeName}}",n.reasonCodeSearchResultTemplate="<div class='listcellCode'>{{Code}}<\/div><div class='listcellName'>{{ReasonCodeName}}<\/div>",n.dimItemTemplate="{{Code}} {{DimensionItemName}}{{Name}}",n.dimItemSearchResultTemplate="<div class='listcellCode'>{{Code}}<\/div><div class='listcellName'>{{DimensionItemName}}{{Name}}<\/div>",n.rcListFields=[{dataType:1,heading:"LIST_FIELDS.CODE",name:"Code","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,heading:"LIST_FIELDS.NAME",name:"LocalizedName","class":"listcellName",headingClass:"listcellName"}],n.showDimensionValidationError=!1,n.dimensionValidationError=!1,n.currentStamp={StartDate:new Date(n.workingDayDate),EndDate:new Date(n.workingDayDate)},n.workingDay={},n.currentEmployee={},n.defaultDimensionItems=[],n.defaultReasonCode={},n.noEvents=!1,n.wdLocks=!1,n.descriptionRequired=f.getSetting("USE_WORKHOURS_DESCR")||!1,n.workHoursRequired=f.getSetting("WORK_HOURS_REQUIRED")||!1,n.stampType=s.getEnum("WorkingHourStampType"),n.rcDataType=s.getEnum("ReasonCodeDataTypeEnum"),n.reasonCodeProperty=s.getEnum("ReasoncodeProperty"),n.reasonCodeProperty3=s.getEnum("ReasoncodeProperty3"),n.permissionLevel=s.getEnum("PermissionLevel"),n.StampProcessingLocks=s.getEnum("ProcessingLocks"),n.eventStatus=s.getEnum("TransactionStatusEnum"),n.permissionRead=n.permissions&n.permissionLevel.Read,n.permissionWrite=n.permissions&n.permissionLevel.Write,n.permissionDelete=n.permissions&n.permissionLevel.Remove,n.statusTexts=[],n.stampTypeTexts=[],n.workingDayStatus="",n.languageIdC=e.getCurrentLanguageIdC(),r.opened.then(function(){n.statusTexts[n.eventStatus.None]=e.getText("APPROVING_HOURS.STATUS_NOT_APPROVED");n.statusTexts[n.eventStatus.Accepted]=e.getText("APPROVING_HOURS.STATUS_APPROVED");n.statusTexts[n.eventStatus.NotAccepted]=e.getText("APPROVING_HOURS.STATUS_NOT_APPROVED");n.statusTexts[n.eventStatus.Transferred]=e.getText("APPROVING_HOURS.STATUS_TRANSFERRED");n.statusTexts[n.eventStatus.Locked]=e.getText("APPROVING_HOURS.STATUS_LOCKED");n.statusTexts[n.eventStatus.Rejected]=e.getText("APPROVING_HOURS.STATUS_REJECTED");n.statusTexts[n.eventStatus.Sent]=e.getText("APPROVING_HOURS.STATUS_SENT");for(type in n.stampType)n.stampTypeTexts[n.stampType[type]]=e.getText("WORKING_HOUR_STAMP_EDITOR.STAMP_TYPE_"+String(type).toUpperCase());n.getData()}),n.getData=function(){function i(){r++;r>3&&n.getWorkingHourStampData()}var t,r;n.pendingOperation=!0;n.showDimensionValidationError=!1;a.getInstance({employeeIdC:n.employeeIdC,StartDate:n.workingDayDate,EndDate:n.workingDayDate,GetSomeEmploymentData:!0}).then(function(t){t&&t.Data&&(n.currentEmployee=t.Data);i()});p.getWorkingDay({EmployeeIdC:n.employeeIdC,Date:n.workingDayDate}).then(function(t){t.Data&&(n.workingDay=t.Data);i()});l.getDimensionItemsOfEmployee({EmployeeIdC:n.employeeIdC,StartDate:n.workingDayDate,EndDate:n.workingDayDate}).then(function(t){n.defaultDimensionItems=t.DataList;n.arrangeDefaultDimensionItems();i()});t={EmployeeIdC:n.employeeIdC,StartDate:n.workingDayDate,EndDate:n.workingDayDate};n.workingHourStampType===n.stampType.Transaction?t.Property3=n.reasonCodeProperty3.UsedInTransactionRecording:t.Property=n.reasonCodeProperty.StampRecording;v.getDefaultReasonCode(t).then(function(t){t.Data&&(n.defaultReasonCode=t.Data,n.defaultReasonCode.Name=n.defaultReasonCode.LocalizedName,n.defaultReasonCode.ReasonCodeName=n.defaultReasonCode.LocalizedName,i())});r=0},n.getWorkingHourStampData=function(){n.workingHourStampIdC?y.getWorkingHourStampData({workingHourStampIdC:n.workingHourStampIdC}).then(function(t){t.Data&&(n.currentStamp=t.Data,n.currentStamp&&n.currentStamp.Type===n.stampType.Transaction&&n.currentStamp.ReasonCodeDataType===n.rcDataType.Hours&&(n.currentStamp.Hours*=60),n.currentStamp.DimensionItems||(n.currentStamp.DimensionItems=[]),n.arrangeReasonCodeData());n.setWdLocks();n.pendingOperation=!1;n.showDimensionValidationError=!0}):(n.newStamp(),n.pendingOperation=!1,n.showDimensionValidationError=!0)},n.setWdLocks=function(){n.wdLocks=!1;n.workingDay&&n.workingDay.StampProcessingLocks&&(n.workingDay.StampProcessingLocks&n.StampProcessingLocks.ProcessingCorrected)==0&&(n.wdLocks=!0);n.workingDay&&(n.workingDay.StampAcceptorLock||n.workingDay.StampPeriodLock)&&(n.wdLocks=!0);(n.currentStamp.Status==n.eventStatus.Accepted||n.currentStamp.Status==n.eventStatus.Transferred)&&(n.wdLocks=!0);n.workingDayStatus=e.getText("APPROVING_HOURS.STATUS_NOT_APPROVED");n.workingDay.StampEmployeeLock&&(n.workingDayStatus=e.getText("APPROVING_HOURS.STATUS_EMPLOYEE_LOCKED"));n.workingDay.StampAcceptorLock&&(n.workingDayStatus=e.getText("APPROVING_HOURS.STATUS_APPROVED"));n.workingDay.StampPeriodLock&&(n.workingDayStatus=e.getText("APPROVING_HOURS.STATUS_PERIOD_LOCK"));n.workingDay.StampProcessingLocks&n.StampProcessingLocks.ProcessingStarted&&(n.workingDayStatus=e.getText("APPROVING_HOURS.STATUS_PROC_STARTED"));n.workingDay.StampProcessingLocks&n.StampProcessingLocks.ProcessingAccepted&&(n.workingDayStatus=e.getText("APPROVING_HOURS.STATUS_PROC_APPROVED"));n.workingDay.StampProcessingLocks&n.StampProcessingLocks.ProcessingExported&&(n.workingDayStatus=e.getText("APPROVING_HOURS.STATUS_PROC_EXPORTED"));n.workingDay.StampProcessingLocks==n.StampProcessingLocks.ProcessingCorrected&&(n.workingDayStatus=e.getText("APPROVING_HOURS.STATUS_PROC_CORRECTED")+" ("+n.workingDayStatus+")")},n.arrangeDefaultDimensionItems=function(){for(var t,i,u=[],f=n.defaultDimensionItems?n.defaultDimensionItems:[],r=0;r<f.length;r++)if(t=f[r],t.GroupingNumber==0&&t.DimensionType==0){for(t.IdC=null,t.Deleted=null,t.Changed=!0,t.Code=t.DimensionItemCode,i=0;i<t.Texts.length;i++)t.Texts[i].LanguageIdC==n.languageIdC&&(t.DimensionItemName=t.Texts[i].DimensionItemName,t.OrganisationName=t.Texts[i].OrganisationName,t.Texts[i].Name=t.Texts[i].DimensionItemName?t.Texts[i].DimensionItemName:t.Texts[i].OrganisationName);t.Texts=null;u.push(t)}n.defaultDimensionItems=u},n.arrangeReasonCodeData=function(){var t=!1;t=n.workingHourStampType===n.stampType.Transaction?(n.currentStamp.ReasonCodeProperties3&n.reasonCodeProperty3.UsedInTransactionRecording)===n.reasonCodeProperty3.UsedInTransactionRecording:(n.currentStamp.ReasonCodeProperties&n.reasonCodeProperty.StampRecording)===n.reasonCodeProperty.StampRecording;n.currentStamp.ReasonCode=t?{IdC:n.currentStamp.ReasonCodeIdC,Code:n.currentStamp.ReasonCodeCode,ReasonCodeName:n.currentStamp.ReasonCodeName,DataType:n.currentStamp.ReasonCodeDataType,ReasonCodeDataType:n.currentStamp.ReasonCodeDataType,ObligatoryDescription:n.currentStamp.ReasonCodeObligatoryDescription,Properties3:n.currentStamp.ReasonCodeProperties3}:null},n.stampChanged=function(){n.currentStamp.Changed=!0},n.timeChanged=function(){n.currentStamp.Changed=!0},n.saveStamp=function(){if(n.currentStamp.Changed&&n.permissionWrite&&!n.wdLocks){if(n.pendingOperation=!0,n.currentStamp.WorkingDayIdC=n.workingDay.IdC,n.currentStamp.EmployeeIdC=String(n.employeeIdC),n.currentStamp.ReasonCodeIdC=n.currentStamp.ReasonCode.IdC,n.currentStamp.PaymentCodeIdC=n.currentStamp.ReasonCode.PaymentCodeIdC,n.currentStamp.StartDate=o.setDatePart(n.currentStamp.StartDate,n.workingDayDate),n.currentStamp.EndDate=o.setDatePart(n.currentStamp.EndDate,n.workingDayDate),n.currentStamp.StartDate>n.currentStamp.EndDate&&n.currentStamp.EndDate.setDate(n.currentStamp.EndDate.getDate()+1),n.currentStamp.Direction=null,n.currentStamp.Stamp=null,n.currentStamp.Type!=n.stampType.Barcode&&n.currentStamp.Type!=n.stampType.Transaction&&(n.currentStamp.DimensionItems=null),n.currentStamp.Type===n.stampType.Transaction){n.currentStamp.ReasonCode.DataType===n.rcDataType.Hours&&(n.currentStamp.Hours/=60);var t=n.currentStamp.StartDate,i=n.currentStamp.EndDate,u=n.currentStamp.Hours;i.setTime(t.getTime()+u*36e5)}
1y.saveWorkingHourStampData(angular.copy(n.currentStamp),!1,!1,function(t){n.currentStamp=n.getNewWorkingHourStamp();t.data.Errors&&t.data.Errors.length&&o.alert({pageID:"WORKING_HOUR_STAMP_EDITOR",textID:t.data.Errors[0]});n.pendingOperation=!1;r.close(n.currentStamp)}).then(function(t){t.Data&&(n.currentStamp=t.Data,n.arrangeReasonCodeData());n.pendingOperation=!1;r.close(n.currentStamp)})}},n.newStamp=function(){n.permissionWrite&&(n.currentStamp=n.getNewWorkingHourStamp(),n.setWdLocks())},n.deleteStamp=function(){n.permissionDelete&&!n.wdLocks&&n.currentStamp.IdC&&!n.currentStamp.GeneratedFromTimeSpanAbsence&&o.confirm([{pageID:"WORKING_HOUR_STAMP_EDITOR",textID:"CONFIRM_DELETE_WORKING_HOUR_STAMP_HEADER"},{pageID:"WORKING_HOUR_STAMP_EDITOR",textID:"CONFIRM_DELETE_WORKING_HOUR_STAMP"}],null,function(){n.currentStamp.Changed=!0;n.currentStamp.Deleted=!0;n.saveStamp();n.newStamp()},function(){})},n.getNewWorkingHourStamp=function(){return new y({EmployeeIdC:n.employeeIdC,StartDate:new Date(n.workingDayDate),EndDate:new Date(n.workingDayDate),Hours:0,DimensionItems:n.defaultDimensionItems,ReasonCode:n.defaultReasonCode,Status:0,IdC:"",Type:n.workingHourStampType})},n.cancelStamp=function(){r.close(null)},n.showUnitPrice=function(){try{return n.workingHourStampType===n.stampType.Transaction&&n.currentStamp&&n.currentStamp.ReasonCode&&(n.currentStamp.ReasonCode.Properties3&n.reasonCodeProperty3.ShowUnitPriceInTransactionRecording)===n.reasonCodeProperty3.ShowUnitPriceInTransactionRecording}catch(t){return!1}},n.dataSources={reasonCodeDataSource:h.createDatasource({method:function(t){return(t.StartDate=n.workingDayDate,t.EndDate=n.workingDayDate,t.EmployeeIdC=n.employeeIdC,t.OrderByField2=1,n.workingHourStampType==n.stampType.Transaction)?v.getAllForTransactions(t):(t.Property=2,v.getAll(t))}})},n.validateReasonCode=function(n){var t=[];return n||t.push("reasonCodeRequired"),{valid:n?!0:!1,errors:t}},n.validateStartTime=function(t,i){return n.validateTime(t,i.endTimeField)},n.validateEndTime=function(t,i){return n.validateTime(i.startTimeField,t)},n.stampCopy=null,n.validateTime=function(i,r){var u=t.defer();return i&&r&&n.currentStamp.Type!=n.stampType.Transaction?(n.stampCopy=angular.copy(n.currentStamp),n.stampCopy.EmployeeIdC=String(n.employeeIdC),n.stampCopy.StartDate=new Date(i.getTime()),n.stampCopy.EndDate=new Date(r.getTime()),n.endDateOnNextDaySide=!1,n.stampCopy.StartDate>n.stampCopy.EndDate&&(n.stampCopy.EndDate.setDate(n.stampCopy.EndDate.getDate()+1),n.endDateOnNextDaySide=!0),y.isOverlappingStamp(n.stampCopy).then(function(t){var i={valid:!0,errors:[]};t&&(i.valid=!1,i.errors.push("overlappingStamp"));n.stampCopy.StartDate>n.stampCopy.EndDate&&(i.valid=!1,i.errors.push("endBeforeStart"));u.resolve(i)})):u.resolve({valid:!0,errors:[]}),u.promise},this}]);angular.module("TiimaApp").controller("progressModalController",["$scope","$uibModalInstance","$window","executionProgress",function(n,t,i,r){return n.executionProgress=r,t.opened.then(function(){}),n.showLog=function(){i.open("MVC/Processing/AutomaticCorrection/GetLogFile/"+n.executionProgress.queueIdC,"LogWindow")},n.close=function(){t.close()},this}]);angular.module("TiimaApp").controller("shiftManagementEditorModalController",["$scope","$rootScope","$window","$http","$q","$timeout","$uibModalInstance","$controller","localizationService","settingService","toolsService","hierarchyCacheService","datasourceService","tiimaEnumsService","Shift","ReasonCode","permissions",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w){var b,d,g,nt,k,tt;o("baseModalController",{$scope:n,$uibModalInstance:e});n.pendingOperation=!1;n.mainForm=null;n.shifts=[];n.reasonCodeItems=[];n.languageIdC="";n.codeNotUniqueError=!1;n.SelectedShift=null;n.Permissions=w;n.dateRange={startDate:null,endDate:null};b=new Date;d=new Date(b.getFullYear(),b.getMonth(),b.getDate(),0,0,0,0);
1n.Period={StartDate:d,EndDate:d};n.Restrictions={ShowRestrictions:2,Organisation:null,searchFilter:null};n.filterPopover={visible:!1};n.OrganisationTemplate="{{Code}} {{Name}}";n.ReasonCodeTemplate="{{Code}} {{ReasonCodeName}}";n.TotalCount=0;n.PageSize=10;n.Arguments={firstIndex:0,SortOrder:0,OrderByFieldIndex:0};n.listFields=[{dataType:1,heading:"LIST_FIELDS.CODE",name:"Code","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,heading:"LIST_FIELDS.NAME",name:"ShiftName","class":"listcellName",headingClass:"listcellName"},];g=function(t){var i=u.defer();return n.pendingOperation=!0,y.getShifts(t).then(function(t){if(n.pendingOperation=!1,t&&t.DataList){if(!n.SelectedShift)if(t.DataList.length)n.onSelectShift(t.DataList[0]);else n.getEmptyInstance();i.resolve(t)}else i.resolve(null)}),i.promise};n.dataSources={reasonCodeDataSource:a.createDatasource({method:function(t){return n.getReasonCodes(t)}}),organisationDataSource:a.createDatasource({method:function(t){return n.getHierarchy(t)}}),organisationSearchDataSource:a.createDatasource({method:function(t){return n.searchHierarchy(t.SearchFilter)}}),shiftDataSource:a.createDatasource({method:function(n){return g(n)}}),shiftDataSourceArgs:{organisationIdC:null,startDate:n.Period.StartDate,endDate:n.Period.EndDate,searchFilter:n.Restrictions.searchFilter}};n.onCancel=function(){e.close(null)};e.opened.then(function(){n.languageIdC=s.getCurrentLanguageIdC();n.getAllReasonCodes()});nt=function(){n.dataSources.shiftDataSourceArgs.startDate=n.Period.StartDate;n.dataSources.shiftDataSourceArgs.endDate=n.Period.EndDate;n.Restrictions.Organisation&&n.Restrictions.Organisation.IdC&&(n.dataSources.shiftDataSourceArgs.organisationIdC=n.Restrictions.Organisation.IdC);n.dataSources.shiftDataSourceArgs.searchFilter=n.Restrictions.searchFilter;f(function(){n.$broadcast("ui-pagedlist-update","shiftList")})};k=_.debounce(nt,500);n.isCodeUnique=function(){var t=u.defer(),i;return n.codeNotUniqueError=!1,n.SelectedShift.Code&&n.SelectedShift.Organisation&&(i={IdC:n.SelectedShift.IdC?n.SelectedShift.IdC:null,Code:n.SelectedShift.Code?n.SelectedShift.Code:"",OrganisationIdC:n.SelectedShift.Organisation&&n.SelectedShift.Organisation.IdC?n.SelectedShift.Organisation.IdC:null},y.IsCodeUnique(i).then(function(i){n.codeNotUniqueError=i?!1:!0;var r=!n.codeNotUniqueError;t.resolve(r)})),t.promise};n.saveInstance=function(t){var i,r;n.pendingOperation=!0;t.Name=s.getCurrentLanguageText(t.Texts,"Name");i=n.isCodeUnique();i&&(r={IdC:t.IdC?t.IdC:null,Code:t.Code,StartTime:t.StartTime,EndTime:t.EndTime,FlexTimeStart:t.FlexTimeStart?t.FlexTimeStart:null,FlexTimeEnd:t.FlexTimeEnd?t.FlexTimeEnd:null,StartDate:n.dateRange.startDate?n.dateRange.startDate:null,EndDate:n.dateRange.endDate?n.dateRange.endDate:null,Duration:t.Duration?t.Duration:null,TimeEditable:t.TimeEditable?t.TimeEditable:0,NoDayRest:t.NoDayRest?t.NoDayRest:0,NoGenerating:t.NoGenerating?t.NoGenerating:0,OrganisationIdC:t.Organisation&&t.Organisation.IdC?t.Organisation.IdC:null,ReasoncodeIdC:t.ReasonCode&&t.ReasonCode.IdC?t.ReasonCode.IdC:null,ColorCode:t.ColorCode?t.ColorCode:null,Texts:t.Texts,Changed:t.IdC&&!t.Deleted?!0:!1,Deleted:t.IdC&&t.Deleted?!0:!1},y.saveInstance(r).then(function(t){if(t)n.onSelectShift(t);n.$broadcast("ui-pagedlist-update","shiftList",{reload:!0});var i=c.getDataMessage(t,t?"GLOBAL.SUCCESS_SAVE":"GLOBAL.ERROR_SAVE");c.showSplash(i,t?"okMessage":"errorMessage")}))};n.deleteInstance=function(t,i){i.stopPropagation();c.confirm([{pageID:"SHIFT_MANAGEMENT",textID:"CONFIRM_HEADING_DELETE_SHIFT"},{pageID:"SHIFT_MANAGEMENT",textID:"CONFIRM_MESSAGE_DELETE_SHIFT"}],null,function(){t.Deleted=!0;var i={IdC:t.IdC,Deleted:!0};n.pendingOperation=!0;y.saveInstance(t).then(function(t){t&&t.Result>0?(n.SelectedShift=null,n.$broadcast("ui-pagedlist-update","shiftList",{reload:!0})):n.SelectedShift=t&&t.ShiftItem?t.ShiftItem:null;var i=c.getDataMessage(t,t.Result>0?"GLOBAL.SUCCESS_DELETE":t.Result==-2?"SHIFT_MANAGEMENT.ERROR_DELETE_SHIFT_IN_USE":"SHIFT_MANAGEMENT.ERROR_DELETE");c.showSplash(i,t.Result>0?"okMessage":"errorMessage")});n.pendingOperation=!1})};n.toggleFilterPopover=function(t){n.filterPopover.visible=!n.filterPopover.visible;var i=null;i=function(t){if(!$(t.target).parent(".ui-hierarchy").length&&!$(t.target).parent(".ui-hierarchy-node").length&&!$(t.target).parent(".ui-hierarchy-node-part").length){var r=$(".shiftManagementFilterPopover");r.get(0)!=t.target&&($.contains(r.get(0),t.target)||(n.filterPopover.visible&&(n.filterPopover.visible=!1),$("body").unbind("click",i),n.$apply()))}};n.filterPopover.visible&&$("body").bind("click",i);t.stopPropagation()};n.organisationFilterBlurred=function(t){n.Restrictions.Organisation=$(t.target).val()};n.$watch("Restrictions.Organisation",function(n,t){t!=n&&k()});n.$watch("Restrictions.ShowRestrictions",function(t,i){if(i!=t){var u=null,f=null,r=new Date;n.Restrictions.ShowRestrictions==1||(n.Restrictions.ShowRestrictions==2?(u=new Date(r.getFullYear(),r.getMonth(),r.getDate(),0,0,0,0),f=new Date(r.getFullYear(),r.getMonth(),r.getDate(),0,0,0,0)):n.Restrictions.ShowRestrictions==3?(r=new Date((new Date).getTime()+864e5),u=new Date(r.getFullYear(),r.getMonth(),r.getDate(),0,0,0,0)):n.Restrictions.ShowRestrictions==4&&(r=new Date((new Date).getTime()-864e5),f=new Date(r.getFullYear(),r.getMonth(),r.getDate(),0,0,0,0)));
1n.Period={StartDate:u,EndDate:f};k()}});n.searchFilterBlurred=function(t){n.Restrictions.searchFilter=$(t.target).val()};n.$watch("Restrictions.searchFilter",function(n,t){t!=n&&k()});n.getAllReasonCodes=function(){var t={StartDate:n.Period.StartDate,EndDate:n.Period.EndDate};p.getAll(t).then(function(t){t&&t.DataList&&(n.reasonCodeItems=t.DataList)})};tt=function(t){t&&(n.SelectedShift=t,n.dateRange={startDate:n.SelectedShift.StartDate,endDate:n.SelectedShift.EndDate});n.pendingOperation=!1;n.mainForm.$setPristine()};n.onSelectShift=function(t){n.pendingOperation=!0;var i=null;i=t&&t.IdC?y.getInstance({IdC:t.IdC}):u.when(t);i.then(tt)};n.getReasonCodes=function(n){return p.getAll(n)};n.getHierarchy=function(){var n=u.defer();return l.getHierarchy(null).then(function(t){n.resolve(t)}),n.promise};n.searchHierarchy=function(n,t){var i=u.defer();return l.searchHierarchy(n,t).then(function(n){i.resolve({DataList:n,TotalRows:n&&n.length?n.length:0})}),i.promise};n.getEmptyInstance=function(){n.onSelectShift(y.getEmptyInstance())}}]);angular.module("TiimaApp").controller("typeOfDayEditorModalController",["$scope","$timeout","$uibModalInstance","$controller","localizationService","toolsService","tiimaEnumsService","settingService","TypeOfDay","permissions",function(n,t,i,r,u,f,e,o,s,h){r("baseModalController",{$scope:n,$uibModalInstance:i});n.loading=!0;n.typesOfDay=[];n.Permissions=h;n.languageIdC="";n.pagingInfo={FirstIndex:0,LastIndex:0,TotalCount:0};n.pageCount=0;n.pageIndex=0;n.totalCount=0;n.pageSize=10;n.paginate=!0;n.orderByFieldIndex=1;n.sortOrder=0;n.Restrictions={searchFilter:""};n.previousSearchFilter="";n.searchTimeout=null;n.selectedItem=null;n.Changed=!1;i.opened.then(function(){n.languageIdC=u.getCurrentLanguageIdC();n.refresh()});n.onCancel=function(){i.close(null)};n.refresh=function(){n.pagingInfo={FirstIndex:n.pageIndex*n.pageSize+1,LastIndex:n.pageSize*(n.pageIndex+1),TotalCount:n.totalCount};var t={FirstIndex:n.pagingInfo.FirstIndex-1,ItemCount:n.pageSize,OrderByField:n.orderByFieldIndex,SortOrder:n.sortOrder,LanguageIdC:n.languageIdC,SearchFilter:n.Restrictions.searchFilter};n.getData(t)};n.getData=function(t){n.loading=!0;s.getTypesOfDay(t).then(function(t){if(t&&t.DataList){if(n.typesOfDay=t.DataList,n.pagingInfo={FirstIndex:n.pageIndex*n.pageSize+1,LastIndex:n.pageSize*(n.pageIndex+1),TotalCount:t.TotalRows},n.totalCount=t.TotalRows,n.pageCount=Math.ceil(n.totalCount/n.pageSize),n.pagingInfo.LastIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.LastIndex=n.pagingInfo.TotalCount),n.pagingInfo.FirstIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.FirstIndex=n.pagingInfo.TotalCount),!n.selectedItem&&n.typesOfDay&&n.typesOfDay[0]){var i=n.typesOfDay[0];i&&i.IdC&&n.getInstance(i.IdC)}n.loading=!1}})};n.getInstance=function(t){t&&(n.loading=!0,n.selectedItem&&n.selectedItem.IdC&&t!=n.selectedItem.IdC&&(n.Changed=!1),s.getInstance({IdC:t}).then(function(t){n.selectedItem=t;n.loading=!1;n.mainForm.$setPristine()}))};n.saveInstance=function(t){n.loading=!0;t.Name=u.getCurrentLanguageText(t.Texts,"Name");var i=angular.copy(n.selectedItem);i.Color||(i.Color="#ffffff");t.IdC&&!t.Deleted&&(i.Changed=!0);s.saveInstance(i).then(function(t){t&&t.TypeOfDayItem&&t.TypeOfDayItem.IdC&&(n.selectedItem=t.TypeOfDayItem,n.refresh());n.loading=!1;var i=f.getDataMessage(t,t&&t.TypeOfDayItem&&t.TypeOfDayItem.IdC?"GLOBAL.SUCCESS_SAVE":"GLOBAL.ERROR_SAVE");f.showSplash(i,t&&t.TypeOfDayItem&&t.TypeOfDayItem.IdC?"okMessage":"errorMessage")})};n.deleteInstance=function(t,i){i.stopPropagation();f.confirm([{pageID:"TYPE_OF_DAY",textID:"TYPE_OF_DAY_REMOVE"},{pageID:"TYPE_OF_DAY",textID:"CONFIRM_REMOVE"}],null,function(){n.selectedItem.Deleted=!0;n.loading=!0;s.saveInstance({TypeOfDay:n.selectedItem}).then(function(t){var i,r;n.refresh();i=n.typesOfDay[0];i&&i.IdC&&n.getInstance(i.IdC);n.Changed=!1;r=f.getDataMessage(t,t.IdC?"GLOBAL.ERROR_SAVE":"GLOBAL.SUCCESS_DELETE");f.showSplash(r,t.IdC?"errorMessage":"okMessage")});n.loading=!1})};n.onNameChange=function(){var t=u.getCurrentLanguageText(n.selectedItem.Texts,"Name")};n.getEmptyInstance=function(){n.selectedItem=s.getEmptyInstance()};n.firstPage=function(){n.pageIndex=0;n.refresh()};n.prevPage=function(){n.pageIndex--;n.refresh()};n.nextPage=function(){n.pageIndex++;n.refresh()};n.lastPage=function(){n.pageIndex=n.pageCount-1;n.refresh()};n.headerClick=function(t){t==n.orderByFieldIndex?n.sortOrder=++n.sortOrder%2:(n.sortOrder=0,n.orderByFieldIndex=t);n.refresh()};n.$watch("Restrictions.searchFilter",function(t,i){t!=i&&n.search(i)});n.search=function(i,r){if(!n.searchTimeout){r||(r=120);var u=i;n.searchTimeout=t(function(){var t=n.previousSearchFilter;n.Restrictions.searchFilter!=t&&(n.pageIndex=0,n.previousSearchFilter=n.Restrictions.searchFilter,n.refresh());n.searchTimeout=null},r)}}}]);angular.module("TiimaApp").controller("travelClaimSettingsController",["$scope","$timeout","$uibModalInstance","$controller","localizationService","toolsService","travelClaimSettingsService","tiimaEnumsService","TravelClaimSetting","date","permissions",function(n,t,i,r,u,f,e,o,s,h,c){return r("baseModalController",{$scope:n,$uibModalInstance:i}),n.selectedSettingParent=null,n.settingParents=[],n.values={selectedIndex:0},n.loading=!1,n.date=h?h:new Date,n.permissions=c?c:{general:!1,user:!1},n.customSettings=null,n.changed=!1,n.dimensions=null,n.settings={Settings:[],Next:null,Prev:null},n.settingsStack=null,n.inheritedSettings=!0,n.customSettings=!1,n.topLevelSettings=null,i.opened.then(function(){e.clearSettingsCache();s.getAll({date:n.date}).then(function(i){var r,o,f;n.settingParents=[];r=i?i.DataList:null;r&&r.length||(r=[{Properties:0,InheritedSettings:!1,OrganisationIdC:null,UserIdC:null,Name:null}]);o=null;f=null;_.forEach(r,function(t,i){var s,h;t&&(t.DisplayName=t.UserIdC?u.getText("TRAVELCLAIMS.USER_SETTINGS"):t.OrganisationIdC?u.getText("TRAVELCLAIMS.ORGANISATION_SETTINGS")+": "+t.Name:u.getText("TRAVELCLAIMS.GENERAL_SETTINGS"),s={Index:i,Name:t.DisplayName,UserIdC:t.UserIdC,OrganisationIdC:t.OrganisationIdC,Enabled:t.UserIdC?
1n.permissions.user:n.permissions.general},n.settingParents.length>0&&(s.Parent=n.settingParents[n.settingParents.length-1]),n.settingParents.push(s),h=!t.UserIdC&&!t.OrganisationIdC,h&&t.Dimensions&&(n.dimensions=t.Dimensions),t=e.prepareSettings(t,i>0?r[i-1]:null),h&&(n.topLevelSettings=t),t.InheritedSettings&&(t.Owner=o),t.InheritedSettings||(o=s),f&&(t.Next=f,f.Prev=t),f=t,s.Settings=t,n.settings=t);t&&e.cacheSettings(t)});t(function(){n.settingParents&&n.settingParents.length&&(n.values.selectedIndex=n.settingParents.length-1,n.selectSettingParent(n.settingParents[n.values.selectedIndex]))})})}),n.onOK=function(){var n=e.prepareSettingsForSaving();n&&n.length?e.saveSettings(n).then(function(n){var t=f.getDataMessage(n,n.Status=="1"?"GLOBAL.SUCCESS_SAVE":"GLOBAL.ERROR_SAVE");f.showSplash(t,n.Status=="1"?"okMessage":"errorMessage");n.Status=="1"&&i.close(n.Data)},function(){}):i.close(null)},n.onCancel=function(){i.close(null)},n.$watch("values.selectedIndex",function(t,i){if(t!==i){var r=Number(t);r>=0&&r<n.settingParents.length&&n.selectSettingParent(n.settingParents[r])}}),n.selectSettingParent=function(t){var i,r;if(n.selectedSettingParent=t,n.settings=t.Settings,n.customSettings=!n.settings.InheritedSettings,n.settings.Settings&&n.settings.Settings.length)for(i=0;i<n.settings.Settings.length;i++)r=n.settings.Settings[i],r.ValueLabel=r.Value?"GLOBAL.YES":"GLOBAL.NO"},n.dimensionsChanged=function(t){t&&(t.Changed=!0,n.topLevelSettings&&(n.topLevelSettings.Changed=!0),n.changed=!0)},n.changed=function(n){n.Changed=!0;e.updateSettingHierarhcy(n)},n.customSettingsChanged=function(t){var i,u,f,r;if(t){for(i={IdC:n.settings.Deleted?n.settings.IdC:null,InheritedSettings:!1,Changed:n.settings.Deleted?!0:!1,Deleted:!1,Settings:angular.copy(n.settings.Settings)},i.Next=n.settings.Next,i.Prev=n.settings.Prev,i.Owner=null,u=n.selectedSettingParent,r=n.settings.Prev;r;)r.InheritedSettings?(r.Settings=i.Settings,r.Owner=u,r=r.Prev):r=null;i.Next&&(i.Next.Prev=i);i.Prev&&(i.Prev.Next=i);n.customSettings=!0;u&&(u.OrganisationIdC?i.OrganisationIdC=u.OrganisationIdC:u.UserIdC&&(i.UserIdC=u.UserIdC),u.Settings=i);i.Prev||e.cacheSettings(i);n.settings=i}else{for(u=n.selectedSettingParent,n.settings.InheritedSettings=!0,f=n.settings.Next,f&&(n.settings.Settings=f.Settings,n.settings.Owner=f.InheritedSettings?f.Owner:u&&u.Parent?u.Parent:null),r=n.settings.Prev;r;)r.InheritedSettings?(r.Settings=n.settings.Settings,r.Owner=n.settings.Owner,r=r.Prev):r=null;n.settings.IdC&&(n.settings.Deleted=!0);n.customSettings=!1;u&&(u.Settings=n.settings)}},this}]);angular.module("TiimaApp").controller("bulletinManageEditorModalController",["$scope","$timeout","$q","$uibModalInstance","$controller","$http","$sanitize","localizationService","toolsService","hierarchyCacheService","tiimaEnumsService","datasourceService","Bulletin","Employee","UserGroup","PaymentGroup","GroupItem","EmployeeGroup","PersonnelGroup","BulletinReceiver","bulletinIdC","newTemplate","permissions","taSelection",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k,d,g,nt,tt,it){u("baseModalController",{$scope:n,$uibModalInstance:r});n.mainForm=null;n.errors={};n.loading=!0;n.bulletin=null;n.bulletinReceivers=null;n.bulletinReceiverCount=null;n.bulletinTemplateType=null;n.saveErrorMessageRequired=!1;n.legendTexts={};n.newTemplate=nt;n.isTemplate=!1;n.languages=[];n.selectedLanguage={currentlySelected:{},previousLanguageIdC:null};n.options={targetTypeOptions:[]};n.message={currentLanguageContent:""};n.messageTexts=[];n.Permissions=tt;n.listFields=[{dataType:1,heading:"LIST_FIELDS.EMPLOYEENUMBER",name:"ID2","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,heading:"LIST_FIELDS.NAME",name:"Name","class":"listcellName",headingClass:"listcellName"},];n.settings={TargetType:0,EmployeeItem:null,UserGroupItem:null,PaymentGroupItem:null,GrouItemItem:null,OrganisationItem:null,EmployeeGroupItem:null,PersonnelGroupItem:null,viewOnly:!1};n.languageIdC="";n.Period={StartDate:null,EndDate:null};n.dateRange={startDate:null,endDate:null};n.headingFormat=o.getText("GLOBAL.AUTOCOMPLETE_DEFAULT_BROWSING_TEXT_FORMAT");n.itemTemplate="{{Code}} {{Name}}";n.searchResultTemplate="{{Code}} {{Name}}";n.userGroupHeadingFormat=o.getText("GLOBAL.AUTOCOMPLETE_DEFAULT_BROWSING_TEXT_FORMAT");n.userGroupItemTemplate="{{Name}}";n.userGroupSearchResultTemplate="{{Name}}";n.employeeHeadingFormat=o.getText("GLOBAL.AUTOCOMPLETE_DEFAULT_BROWSING_TEXT_FORMAT");n.employeeItemTemplate="{{ID2}} {{Name}}";n.employeeSearchResultTemplate="{{ID2}} {{Name}}";n.payGroupTemplate="{{PaymentGroupName}} {{PaymentGroupCode}}";n.payGroupSearchResultTemplate="{{PaymentGroupCode}} {{PaymentGroupName}}";n.groupingTemplate="{{GroupingName}} {{GroupingCode}} {{#GroupingName}}/{{/GroupingName}} {{GroupItemName}} {{GroupItemCode}}";n.groupingSearchResultTemplate="{{GroupItemCode}} {{GroupItemName}}";n.OrganisationTemplate="{{Code}} {{Name}}";n.OrganisationSearchTemplate="{{Code}} {{Name}}";n.pagingInfo={FirstIndex:0,LastIndex:0,TotalCount:0};n.pageCount=0;n.pageIndex=0;n.totalCount=0;n.pageSize=7;n.paginate=!0;n.orderByFieldIndex=1;n.sortOrder=0;n.target={SearchFilter:""};n.previousTargetSearchFilter="";n.searchTimeout=null;n.searchPlaceHolderText={Text:""};n.searchTimeout=null;n.errorStartDateRequired=!1;n.dataSources={employeeDataSource:l.createDatasource({method:function(t){return n.getEmployees(t)}}),employeeGroupDataSource:l.createDatasource({method:function(t){return n.getEmployeeGroups(t)}}),userGroupDataSource:l.createDatasource({method:function(t){return n.getUserGroups(t)}}),organisationDataSource:l.createDatasource({method:function(t){return n.getHierarchy(t)}}),organisationSearchDataSource:l.createDatasource({method:function(t){return n.searchHierarchy(t.SearchFilter)}}),paymentGroupDataSource:l.createDatasource({method:function(t){return n.getPaymentGroups(t)}}),personnelGroupDataSource:l.createDatasource({method:function(t){return n.getPersonnelGroups(t)}}),groupItemDataSource:l.createDatasource({method:function(t){return n.getGroupItems(t)}})};r.opened.then(function(){n.languageIdC=o.getCurrentLanguageIdC();n.settings.viewOnly=!n.Permissions.write;n.getInstance(g)});n.onCancel=function(){r.close(null)};n.createEnums=function(){var t=c.getEnum("BulletinTemplateType"),i,r,u;if(t){n.bulletinTemplateType=[];for(i in t)r=Number(t[i]),u={Name:o.getText("BULLETIN_MANAGE.ENUM_"+i.toUpperCase()),Value:r,EnumValue:r},n.bulletinTemplateType.push(u)}};n.initForm=function(t){n.mainForm=t;n.mainForm.$setPristine()};n.createLegends=function(){n.legendTexts={};n.legendTexts[1]="{time-span}";n.legendTexts[2]="{unrecorded-dates}";n.legendTexts[3]="{unlocked-dates}";n.legendTexts[4]="{employee-names}";n.legendTexts[5]="{worktime-balance-name}";n.legendTexts[6]="{current-balance}";n.legendTexts[7]="{upper-limit}";n.legendTexts[8]="{threshold-hours}";n.legendTexts[9]="{calculation-start-end}";n.legendTexts[10]="{total-hours}";n.legendTexts[11]="{lower-limit}";n.legendTexts[12]="{threshold-hours-min}"};n.createSelects=function(){n.options.targetTypeOptions=[{Value:0,Name:o.getText("BULLETIN_MANAGE.EMPLOYEE_TARGET")},{Value:1,Name:o.getText("BULLETIN_MANAGE.EMPLOYEE_GROUP_TARGET")},{Value:2,Name:o.getText("BULLETIN_MANAGE.USER_GROUP_TARGET")},{Value:3,Name:o.getText("BULLETIN_MANAGE.ORGANISATION_TARGET")},{Value:4,Name:o.getText("BULLETIN_MANAGE.ORGANISATION_SUBLEVELS_TARGET")},{Value:5,Name:o.getText("BULLETIN_MANAGE.PAYMENT_GROUP_TARGET")},{Value:6,Name:o.getText("BULLETIN_MANAGE.PERSONNEL_GROUP_TARGET")},{Value:7,Name:o.getText("BULLETIN_MANAGE.GROUP_ITEM_TARGET")}]};n.getInstance=function(t){t?(n.loading=!0,a.getBulletin({IdC:t}).then(function(t){var i,r,u;if(n.bulletin=t,n.bulletin.ViewOnly&&(n.settings.viewOnly=!0),n.messageTexts=[],n.bulletin.Texts){for(i=0;i<n.bulletin.Texts.length;i++)r=n.bulletin.Texts[i],r.Message&&(n.messageTexts[r.LanguageIdC]=r.Message);n.messageTexts[n.languageIdC]&&(n.message.currentLanguageContent=n.messageTexts[n.languageIdC])}n.bulletin.StartDate||(u=new Date,n.bulletin.StartDate=new Date(u.getFullYear(),u.getMonth(),u.getDate(),0,0,0,0));
1n.dateRange={startDate:n.bulletin.StartDate,endDate:n.bulletin.EndDate};n.bulletin&&n.bulletin.TemplateType&&n.bulletin.TemplateType>0&&(n.isTemplate=!0,n.bulletinTemplateType||n.createEnums(),n.createLegends());n.createLanguages().then(function(){n.languages&&n.languages.length>0&&n.validateBulletin()});n.refreshReceivers()})):n.getEmptyInstance();n.createSelects()};n.getEmptyInstance=function(){if(n.loading=!0,n.bulletin=a.getEmptyInstance(n.newTemplate),n.saveErrorMessageRequired=!0,n.newTemplate||(n.bulletin.UserBulletin=1),!n.bulletin.StartDate){var t=new Date;n.bulletin.StartDate=new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0);n.dateRange.startDate=n.bulletin.StartDate}n.createLanguages().then(function(){n.languages&&n.languages.length>0&&n.validateBulletin()});n.newTemplate&&(n.bulletin.TemplateType=1,n.isTemplate=!0,n.createEnums(),n.createLegends());n.loading=!1};n.addLegend=function(t){var i=it.getSelection(),r="",u;t>0&&(r=n.legendTexts[t],i&&(u=$("div[contenteditable = 'true']"),u.focus(),it.insertHtml(r,i.start)))};n.validateBulletin=function(){var u=!0,i,t,f,r;if(n.bulletin&&(n.bulletin.Changed=!0),n.getContentText(!1),i=!0,n.messageTexts)for(t=0;t<n.languages.length;t++)f=n.languages[t],r=n.messageTexts[f.IdC],r&&r.length>0&&(i=!1);return i?(n.saveErrorMessageRequired=!0,u=!1):n.saveErrorMessageRequired=!1,u};n.getMessageTexts=function(){var t,i;if(n.bulletin&&n.bulletin.Texts&&n.messageTexts)for(t=0;t<n.bulletin.Texts.length;t++)i=n.bulletin.Texts[t],i.Message=n.messageTexts[i.LanguageIdC]};n.saveInstance=function(){n.loading=!0;n.getMessageTexts();n.bulletin.StartDate=n.dateRange.startDate;n.bulletin.EndDate=n.dateRange.endDate;a.saveBulletin(n.bulletin).then(function(t){t&&n.getInstance(t.IdC);var i=s.getDataMessage(t,t&&t.IdC?"GLOBAL.SUCCESS_SAVE":"GLOBAL.ERROR_SAVE");s.showSplash(i,t&&t.IdC?"okMessage":"errorMessage")})};n.onTypeSelected=function(){};n.onTargetSelected=function(){var i={},t="";n.settings.TargetType=="0"?n.settings.EmployeeItem&&(t=n.settings.EmployeeItem.ID2+" - "+n.settings.EmployeeItem.Name,i={EmployeeIdC:n.settings.EmployeeItem.IdC,SelectorValueIdC:n.settings.EmployeeItem.IdC,EmployeeText:n.settings.EmployeeItem.Name,TypeName:o.getText("BULLETIN_MANAGE.EMPLOYEE_TARGET"),ItemName:t}):n.settings.TargetType=="1"?n.settings.EmployeeGroupItem&&(t=n.settings.EmployeeGroupItem.Code+" - "+n.settings.EmployeeGroupItem.Name,i={EmployeeGroupIdC:n.settings.EmployeeGroupItem.IdC,SelectorValueIdC:n.settings.EmployeeGroupItem.IdC,EmployeeGroupText:n.settings.EmployeeGroupItem.Name,TypeName:o.getText("BULLETIN_MANAGE.EMPLOYEE_GROUP_TARGET"),ItemName:t}):n.settings.TargetType=="2"?n.settings.UserGroupItem&&(i={UserGroupIdC:n.settings.UserGroupItem.IdC,SelectorValueIdC:n.settings.UserGroupItem.IdC,UserGroupText:n.settings.UserGroupItem.Name,TypeName:o.getText("BULLETIN_MANAGE.USER_GROUP_TARGET"),ItemName:n.settings.UserGroupItem.Name}):n.settings.TargetType=="3"?n.settings.OrganisationItem&&(t=n.settings.OrganisationItem.Code+" - "+n.settings.OrganisationItem.text,i={OrganisationIdC:n.settings.OrganisationItem.IdC,SelectorValueIdC:n.settings.OrganisationItem.IdC,OrganisationText:n.settings.OrganisationItem.text,TypeName:o.getText("BULLETIN_MANAGE.ORGANISATION_TARGET"),ItemName:t}):n.settings.TargetType=="4"?n.settings.OrganisationItem&&(t=n.settings.OrganisationItem.Code+" - "+n.settings.OrganisationItem.text,i={OrganisationWithSubLevelsIdC:n.settings.OrganisationItem.IdC,SelectorValueIdC:n.settings.OrganisationItem.IdC,OrganisationWithSubLevelsText:n.settings.OrganisationItem.text,TypeName:o.getText("BULLETIN_MANAGE.ORGANISATION_TARGET"),ItemName:t,SubLevels:!0}):n.settings.TargetType=="5"?n.settings.PaymentGroupItem&&(t=n.settings.PaymentGroupItem.PaymentGroupCode+" - "+n.settings.PaymentGroupItem.PaymentGroupName,i={PaymentGroupIdC:n.settings.PaymentGroupItem.IdC,SelectorValueIdC:n.settings.PaymentGroupItem.IdC,PaymentGroupText:n.settings.PaymentGroupItem.Name,TypeName:o.getText("BULLETIN_MANAGE.PAYMENT_GROUP_TARGET"),ItemName:t}):n.settings.TargetType=="6"?n.settings.PersonnelGroupItem&&(t=n.settings.PersonnelGroupItem.Code+" - "+n.settings.PersonnelGroupItem.Name,i={PersonnelGroupIdC:n.settings.PersonnelGroupItem.IdC,SelectorValueIdC:n.settings.PersonnelGroupItem.IdC,PersonnelGroupText:n.settings.PersonnelGroupItem.Name,TypeName:o.getText("BULLETIN_MANAGE.PERSONNEL_GROUP_TARGET"),ItemName:t}):n.settings.TargetType=="7"&&n.settings.GroupItemItem&&(t=n.settings.GroupItemItem.Code+" - "+n.settings.GroupItemItem.GroupingName,i={GroupItemIdC:n.settings.GroupItemItem.IdC,SelectorValueIdC:n.settings.GroupItemItem.IdC,GroupItemText:n.settings.GroupItemItem.GroupingName,TypeName:o.getText("BULLETIN_MANAGE.GROUP_ITEM_TARGET"),ItemName:t});n.addTarget(i)};n.addTarget=function(t){var u,r,i;for(n.bulletin.Targets||(n.bulletin.Targets=[]),u=!1,r=0;r<n.bulletin.Targets.length;r++)i=n.bulletin.Targets[r],i&&i.TypeName&&i.SelectorValueIdC&&i.TypeName==t.TypeName&&i.SelectorValueIdC==t.SelectorValueIdC&&(u=!0);t.Changed=!0;u||n.bulletin.Targets.push(t)};n.deleteTarget=function(t){var u,i,r;if(t.IdC)t.Deleted=!0;else if(u=[],n.bulletin.Targets){for(i=0;i<n.bulletin.Targets.length;i++)r=n.bulletin.Targets[i],(r.TypeName!=t.TypeName||r.SelectorValueIdC!=t.SelectorValueIdC)&&u.push(r);n.bulletin.Targets=u}};n.createLanguages=function(){var t=i.defer(),r=o.getActiveLanguages().then(function(i){var f,u,r;if(i){for(f=[],u=0;u<i.languages.length;u++)r=i.languages[u],r&&f.push(r),n.languageIdC==r.IdC&&(n.selectedLanguage.currentlySelected=r);n.languages=f;t.resolve()}});return t.promise};n.onLanguageChanged=function(){n.getContentText(!0)};n.getContentText=function(t){t&&(n.selectedLanguage.previousLanguageIdC=n.languageIdC,n.languageIdC=n.selectedLanguage.currentlySelected.IdC);t?(n.messageTexts[n.selectedLanguage.previousLanguageIdC]=n.message.currentLanguageContent,n.message.currentLanguageContent=n.messageTexts[n.languageIdC]):n.messageTexts[n.languageIdC]=n.message.currentLanguageContent};n.onContentChanged=function(){n.validateBulletin()};n.getEmployees=function(n){n.orderByField||(n.orderByField=1);var t=new Date,i=new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0);return n.Date=i,n.GetSomeEmployementData=!0,v.getAll(n)};n.getEmployeeGroups=function(n){return n.orderByField||(n.orderByField=1),b.getAll(n)};n.getUserGroups=function(n){return n.orderByField||(n.orderByField=1),y.getAll(n)};n.getHierarchy=function(){var n=i.defer();return h.getHierarchy(null).then(function(t){n.resolve(t)}),n.promise};n.searchHierarchy=function(n,t){var r=i.defer();return h.searchHierarchy(n,t).then(function(n){r.resolve({DataList:n,TotalRows:n&&n.length?n.length:0})}),r.promise};n.getPaymentGroups=function(n){n.orderByField||(n.orderByField=1);var t=new Date,i=new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0);return n.StartDate=i,n.EndDate=i,p.getAll(n)};n.getPersonnelGroups=function(n){return n.orderByField||(n.orderByField=1),k.getAll(n)};n.getGroupItems=function(n){return n.orderByField||(n.orderByField=1),w.getAll(n)};n.refreshReceivers=function(){n.pagingInfo={FirstIndex:n.pageIndex*n.pageSize+1,LastIndex:n.pageSize*(n.pageIndex+1),TotalCount:n.totalCount};var t={BulletinIdC:n.bulletin.IdC,FirstIndex:n.pagingInfo.FirstIndex-1,ItemCount:n.pageSize,OrderByField:n.orderByFieldIndex,SortOrder:n.sortOrder,LanguageIdC:n.languageIdC,SearchFilter:n.target.SearchFilter};d.getBulletinReceivers(t).then(function(t){t&&t.DataList&&(n.bulletinReceivers=t.DataList,n.pagingInfo={FirstIndex:n.pageIndex*n.pageSize+1,LastIndex:n.pageSize*(n.pageIndex+1),TotalCount:t.Data.TotalRows},n.totalCount=t.Data.TotalRows,n.pageCount=Math.ceil(n.totalCount/n.pageSize),n.pagingInfo.LastIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.LastIndex=n.pagingInfo.TotalCount),n.pagingInfo.FirstIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.FirstIndex=n.pagingInfo.TotalCount),d.getBulletinReceiverCount({BulletinIdC:n.bulletin.IdC}).then(function(t){t&&t.Data&&t.Data.BulletinReceiverCount&&(n.bulletinReceiverCount=t.Data.BulletinReceiverCount);n.loading=!1}))})};n.firstPage=function(){n.pageIndex=0;n.refreshReceivers()};n.prevPage=function(){n.pageIndex--;n.refreshReceivers()};n.nextPage=function(){n.pageIndex++;n.refreshReceivers()};n.lastPage=function(){n.pageIndex=n.pageCount-1;n.refreshReceivers()};n.headerClick=function(t){t==n.orderByFieldIndex?n.sortOrder=++n.sortOrder%2:(n.sortOrder=0,n.orderByFieldIndex=t);n.refreshReceivers()};n.$watch("target.SearchFilter",function(t,i){t!=i&&n.search(i)});n.$watch("dateRange.startDate",function(t,i){t!=i&&(n.bulletin.Changed=!0)});n.$watch("dateRange.endDate",function(t,i){t!=i&&(n.bulletin.Changed=!0)});n.search=function(i,r){if(!n.searchTimeout){r||(r=120);var u=i;n.searchTimeout=t(function(){n.target.SearchFilter!=n.previousTargetSearchFilter&&(n.pageIndex=0,n.previousTargetSearchFilter=n.target.SearchFilter,n.refreshReceivers());n.searchTimeout=null},r)}}}]);angular.module("TiimaApp").controller("configMobileQRCodeModalController",["$scope","$http","$timeout","$uibModalInstance","toolsService","Config",function(n,t,i,r,u,f){n.imageSrc="";n.showImage=!1;n.loading=!1;n.requestTime=null;n.timeLeft=0;n.timeoutSeconds=30;r.opened.then(function(){n.generateNewQRCode()});n.generateNewQRCode=function(){n.loading=!0;n.requestTime=(new Date).getTime();n.countDown();f.generateSecretForMobile().then(function(t){t&&(n.imageSrc="data:image/png;base64,"+t,n.showImage=!0);n.loading=!1})};n.onCancel=function(){r.close()};n.countDown=function(){var t=(new Date).getTime(),r=t-n.requestTime,u=r/1e3;n.timeLeft=n.timeoutSeconds-u;n.timeLeft>0?i(n.countDown,500):n.showImage=!1}}]);angular.module("TiimaApp").controller("confirmSecretModalController",["$scope","$http","$timeout","$uibModalInstance","toolsService","Config",function(n,t,i,r,u,f){n.imageSrc="";n.showImage=!1;n.loading=!0;n.confirmationCode="";n.isConfirmationCodeValid=!0;n.confirmSecret=function(){n.loading||(n.loading=!0,f.confirmSecret(n.confirmationCode).then(function(t){n.isConfirmationCodeValid=t.isValidCode;n.isConfirmationCodeValid&&r.close(!0);n.loading=!1}))};n.cancel=function(){n.loading||r.close(!1)};r.opened.then(function(){f.generateSecret().then(function(t){t&&(n.imageSrc="data:image/png;base64,"+t,n.showImage=!0);n.loading=!1})})}]);angular.module("TiimaApp").controller("worksiteAnnouncementEditorController",["$scope","$timeout","$q","$uibModalInstance","$controller","$uibModal","$http","$sanitize","localizationService","formatService","toolsService","hierarchyCacheService","tiimaEnumsService","datasourceService","WorksiteAnnouncement","hierarchyCacheService","Worksite","WorksiteAnnouncementError","worksiteAnnouncementIdC","Queue","WorksiteAnnouncementOrganisation","defaultDimensionIdC","DimensionItem",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,l,p,w,b,k,d,g,nt){u("baseModalController",{$scope:n,$uibModalInstance:r});n.mainForm=null;n.loading=!0;n.executionInProgress=!1;n.showDefaultDimension=!1;n.defaultDimensionIdC=null;n.restrictionDimensionItem={Selected:null};n.worksiteAnnouncement={};n.worksiteAnnouncementErrors=null;n.errorTaxAnnouncementIDMissing=!1;
1n.Periods=[];n.selectedPeriod=null;n.OrganisationTemplate="{{Code}} {{Name}}";n.OrganisationSearchTemplate="{{Code}} {{Name}}";n.dimensionItemTemplate="{{Code}} {{DimensionItemName}}";n.dimensionItemListTemplate="{{Code}} {{DimensionItemName}}";n.pagingInfo={FirstIndex:0,LastIndex:0,TotalCount:0};n.pageCount=0;n.pageIndex=0;n.totalCount=0;n.pageSize=5;n.paginate=!0;n.orderByFieldIndex=1;n.sortOrder=0;n.worksiteTemplate="{{Code}} {{Name}}";n.worksiteListTemplate="{{Code}} {{Name}}";n.worksiteListPageSize=5;n.worksites=[];n.checkedWorksites=[];n.worksitePaging={TotalCount:0,PageIndex:0,PageCount:0,PageSize:5};n.worksiteSearchFilter={Text:""};n.allWorksites={Selected:!1};n.listFields=[{dataType:1,heading:"LIST_FIELDS.CODE",name:"Code","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,heading:"LIST_FIELDS.NAME",name:"Name","class":"listcellName",headingClass:"listcellName"},];n.dimItemListFields=[{dataType:1,heading:"LIST_FIELDS.CODE",name:"Code","class":"listcellCode",headingClass:"listcellCode"},{dataType:1,heading:"LIST_FIELDS.NAME",name:"DimensionItemName","class":"listcellName",headingClass:"listcellName"},];n.dataSources={organisationDataSource:v.createDatasource({method:function(t){return n.getWorksiteAnnouncementOrganisations(t)}}),dimensionItemDataSource:v.createDatasource({method:function(t){return n.getDimensionItems(t)}})};r.opened.then(function(){n.Periods=c.createMonthPeriods(new Date,13);n.selectPeriod(n.Periods[1]);g?(n.defaultDimensionIdC=g,n.showDefaultDimension=!0):n.getWorksites();b?n.getInstance(b):n.loading=!1});n.onCancel=function(){r.close(null)};n.getInstance=function(t){y.getWorksiteAnnouncement({IdC:t}).then(function(t){t&&t.IdC&&(n.worksiteAnnouncement=t,n.prepareWorksiteAnnouncement(),n.refreshErrors());n.loading=!1})};n.selectPeriod=function(t){var i,o;if(n.selectedPeriod=t,n.worksiteAnnouncement.AnnouncementPeriod=t.Value,i=n.worksiteAnnouncement.WorkSite,i){var f=i.StartDate!==null?h.parseISODateTime(i.StartDate):null,e=i.EndDate!==null?h.parseISODateTime(i.EndDate):null,r=t.Value,u=new Date(r.getFullYear(),r.getMonth()+1,1);u.setDate(u.getDate()-1);o=(f==null||f<=u)&&(e==null||e>=r);o||(n.worksiteAnnouncement.WorkSite=null)}};n.prepareWorksiteAnnouncement=function(){var r,u,i,t;if(n.worksiteAnnouncement&&n.worksiteAnnouncement.IdC){if(r=a.getKey("WorksiteAnnouncementType",n.worksiteAnnouncement.AnnouncementType),n.worksiteAnnouncement.AnnouncementTypeText=s.getText("ENUMERATIONS.WS_ANNOUNCEMENT_TYPE_"+r.toUpperCase()),u=a.getKey("WorksiteAnnouncementStatus",n.worksiteAnnouncement.Status),n.worksiteAnnouncement.StatusText=s.getText("ENUMERATIONS.WS_ANNOUNCEMENT_STATUS_"+u.toUpperCase()),n.worksiteAnnouncement.FileLink="MVC/Approving/WorksiteAnnouncement/GetFile/"+n.worksiteAnnouncement.CRParameter,i="",n.worksiteAnnouncement.Worksites)for(t=0;t<n.worksiteAnnouncement.Worksites.length;t++)i=n.worksiteAnnouncement.Worksites[t].WorksiteName;n.worksiteAnnouncement.WorksiteName=i}};n.createAnnouncement=function(t){var u,i,r,f,e;if(n.executionInProgress=!0,t&&!n.worksiteAnnouncement.TaxAnnouncementID)n.errorTaxAnnouncementIDMissing=!0;else{if(u=n.worksiteAnnouncement.IdC?n.worksiteAnnouncement.OrganisationIdC:n.worksiteAnnouncement.Organisation.IdC,i=[],t)i=n.worksiteAnnouncement.Worksites;else for(r in n.checkedWorksites)n.checkedWorksites[r]&&(f={DimensionItemIdC:r},i.push(f));e={Period:n.worksiteAnnouncement.AnnouncementPeriod,OrganisationIdC:u,Worksites:i,Repair:t,TaxAnnouncementID:n.worksiteAnnouncement.TaxAnnouncementID};y.createWorksiteAnnouncement(e).then(function(t){t&&t.IdC&&n.checkForAnnouncementStatus({queueIdC:t.QueueIdC}).then(function(){n.executionInProgress=!1;n.getInstance(t.IdC)});var i=c.getDataMessage(t,t&&t.IdC?"GLOBAL.SUCCESS_SAVE":"GLOBAL.ERROR_SAVE");c.showSplash(i,t&&t.IdC?"okMessage":"errorMessage")})}};n.checkForAnnouncementStatus=function(r){return r.defer||(r.defer=i.defer()),t(function(){k.getInstance(r.queueIdC).then(function(t){var i=t?t.Data:null;i&&(i.Status<a.getValue("QueueStatus","Completed")?n.checkForAnnouncementStatus(r):r.defer.resolve())})},2e3),r.defer.promise};n.deleteAnnouncement=function(){c.confirm([{pageID:"WORKSITE_ANNOUNCEMENT",textID:"CONFIRM_HEADING_DELETE"},{pageID:"WORKSITE_ANNOUNCEMENT",textID:"CONFIRM_MESSAGE_DELETE"}],null,function(){var t={IdC:n.worksiteAnnouncement.IdC};y.deleteWorksiteAnnouncement(t).then(function(n){var t=n>0,i=c.getDataMessage(t,t?"GLOBAL.SUCCESS_DELETE":"WORKSITE_ANNOUNCEMENT.ERROR_DELETE");c.showSplash(i,t?"okMessage":"errorMessage");t&&r.close(null)})})};n.addTaxAnnouncementID=function(){if(n.worksiteAnnouncement&&n.worksiteAnnouncement.IdC){var t=f.open({templateUrl:"MVC/modals/Approving/worksiteAnnouncementTaxIDEditor.html",controller:"worksiteAnnouncementTaxIDEditorController",backdrop:"static",windowClass:"worksiteAnnouncementTaxIDEditor",resolve:{worksiteAnnouncementIdC:function(){return n.worksiteAnnouncement.IdC},taxAnnouncementID:function(){return n.worksiteAnnouncement.TaxAnnouncementID}}});t.result.then(function(){n.getInstance(n.worksiteAnnouncement.IdC)})}};n.headerClick=function(t){t==n.orderByFieldIndex?n.sortOrder=++n.sortOrder%2:(n.sortOrder=0,n.orderByFieldIndex=t);n.refreshErrors()};n.refreshErrors=function(){n.worksiteAnnouncementErrors=null;n.pagingInfo={FirstIndex:n.pageIndex*n.pageSize+1,LastIndex:n.pageSize*(n.pageIndex+1),TotalCount:n.totalCount};var t={IdC:n.worksiteAnnouncement.IdC,FirstIndex:n.pagingInfo.FirstIndex-1,ItemCount:n.pageSize,OrderByField:n.orderByFieldIndex,SortOrder:n.sortOrder};w.getWorksiteAnnouncementErrors(t).then(function(t){t&&t.DataList&&t.DataList.length>0&&(n.worksiteAnnouncementErrors=t.DataList,n.pagingInfo={FirstIndex:n.pageIndex*n.pageSize+1,LastIndex:n.pageSize*(n.pageIndex+1),TotalCount:t.TotalRows},n.totalCount=t.TotalRows,n.pageCount=Math.ceil(n.totalCount/n.pageSize),n.pagingInfo.LastIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.LastIndex=n.pagingInfo.TotalCount),n.pagingInfo.FirstIndex>n.pagingInfo.TotalCount&&(n.pagingInfo.FirstIndex=n.pagingInfo.TotalCount))})};n.firstPage=function(){n.pageIndex=0;n.refreshErrors()};n.prevPage=function(){n.pageIndex--;n.refreshErrors()};n.nextPage=function(){n.pageIndex++;n.refreshErrors()};n.lastPage=function(){n.pageIndex=n.pageCount-1;n.refreshErrors()};n.headerClick=function(t){t==n.orderByFieldIndex?n.sortOrder=++n.sortOrder%2:(n.sortOrder=0,n.orderByFieldIndex=t);n.refreshErrors()};n.getWorksiteAnnouncementOrganisations=function(t){return n.selectedPeriod&&(t.StartDate=n.selectedPeriod.Value,t.EndDate=new Date(n.selectedPeriod.Value.getFullYear(),n.selectedPeriod.Value.getMonth()+1,0,0,0,0)),d.getWorksiteAnnouncementOrganisations(t)};n.getWorksites=function(){var t=n.worksiteAnnouncement.AnnouncementPeriod,i=new Date(t.getFullYear(),t.getMonth()+1,
11),r;if(i.setDate(i.getDate()-1),r={StartDate:t,EndDate:i,FirstIndex:n.worksitePaging.PageIndex*n.worksitePaging.PageSize,ItemCount:n.worksitePaging.PageSize,SearchFilter:n.worksiteSearchFilter.Text},n.defaultDimensionIdC)if(n.restrictionDimensionItem&&n.restrictionDimensionItem.Selected&&n.restrictionDimensionItem.Selected.IdC)r.RestrictionDimensionItemIdC=n.restrictionDimensionItem.Selected.IdC;else return;p.getWorksites(r).then(function(t){if(t&&t.DataList){n.worksitePaging.TotalCount=t.TotalRows;n.worksites=t.DataList;n.worksitePaging.PageCount=Math.ceil(n.worksitePaging.TotalCount/n.worksitePaging.PageSize);for(var i=0;i<n.worksites.length;i++)n.checkedWorksites[n.worksites[i].DimensionItemIdC]&&(n.worksites[i].Selected=!0)}})};n.getDimensionItems=function(t){var i=n.worksiteAnnouncement.AnnouncementPeriod,r=new Date(i.getFullYear(),i.getMonth()+1,1);return r.setDate(r.getDate()-1),t.StartDate=i,t.EndDate=r,t.DimensionIdC=n.defaultDimensionIdC,nt.getAll(t)};n.selectAllWorksites=function(){var t=n.worksiteAnnouncement.AnnouncementPeriod,i=new Date(t.getFullYear(),t.getMonth()+1,1),r;if(i.setDate(i.getDate()-1),r={StartDate:t,EndDate:i},n.defaultDimensionIdC)if(n.restrictionDimensionItem&&n.restrictionDimensionItem.Selected&&n.restrictionDimensionItem.Selected.IdC)r.RestrictionDimensionItemIdC=n.restrictionDimensionItem.Selected.IdC;else return;p.getWorksites(r).then(function(t){var r,i;if(t&&t.DataList)for(r=t.DataList,i=0;i<r.length;i++)n.checkedWorksites[r[i].DimensionItemIdC]=r[i]})};n.searchWorksites=function(){n.worksitePaging.PageIndex=0;n.getWorksites(!1)};n.prevWorksitePage=function(){n.worksitePaging.PageIndex--;n.getWorksites(!1)};n.nextWorksitePage=function(){n.worksitePaging.PageIndex++;n.getWorksites(!1)};n.selectAll=function(){n.checkedWorksites=[];n.allWorksites.Selected&&n.selectAllWorksites();for(var t=0;t<n.worksites.length;t++)n.worksites[t].Selected=n.allWorksites.Selected};n.worksiteChecked=function(){t(function(){n.worksiteCheckedTimedOut()})};n.worksiteCheckedTimedOut=function(){n.allWorksites.Selected=!0;for(var t=0;t<n.worksites.length;t++)n.worksites[t].Selected?n.checkedWorksites[n.worksites[t].DimensionItemIdC]=n.worksites[t]:(n.checkedWorksites[n.worksites[t].DimensionItemIdC]=null,n.allWorksites.Selected=!1)};n.onDimensionItemSelected=function(){n.worksitePaging={TotalCount:0,PageIndex:0,PageCount:0,PageSize:5};n.checkedWorksites=[];n.allWorksites.Selected=!1;n.getWorksites()}}]);angular.module("TiimaApp").controller("worksiteAnnouncementTaxIDEditorController",["$scope","$timeout","$q","$uibModalInstance","$controller","$http","localizationService","toolsService","WorksiteAnnouncement","worksiteAnnouncementIdC","taxAnnouncementID",function(n,t,i,r,u,f,e,o,s,h,c){u("baseModalController",{$scope:n,$uibModalInstance:r});n.mainForm=null;n.loading=!0;n.worksiteAnnouncement={worksiteAnnouncementIdC:h,taxAnnouncementID:c};r.opened.then(function(){n.loading=!1});n.onCancel=function(){r.close(null)};n.saveWorksiteAnnouncementTaxID=function(){n.loading=!0;var t={WorksiteAnnouncementIdC:n.worksiteAnnouncement.worksiteAnnouncementIdC,TaxAnnouncementID:n.worksiteAnnouncement.taxAnnouncementID};s.addTaxAnnouncementID(t).then(function(t){var i=o.getDataMessage(t,t>0?"GLOBAL.SUCCESS_SAVE":"GLOBAL.ERROR_SAVE");o.showSplash(i,t>0?"okMessage":"errorMessage");n.loading=!1;t>0&&r.close(null)})}}])
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.