{"version":3,"file":"sm.portal.vm.employment.min.js","names":["jQuery","undefined","sm","window","portal","extend","vm","EmploymentViewModel","apasFeatureEnabled","utility","isAPASFeatureEnabled","euFeatureEnabled","isEUFeatureEnabled","ukFeatureEnabled","isUKFeatureEnabled","self","this","DataList","ko","observableArray","ID","observable","GID","EmploymentStatusID","validatedObservable","OccupationID","CurrentEmployer","EmployerID","sectionIncluded","EmploymentStatuses","Occupations","DataLoaded","DataLoading","DataContainer","Touched","IsRequired","DataLoadErrorCount","sectionVisibleByConfig","IsEmploymentEditted","custom","setCustomLocalizeKey","WorkingItem","EmploymentDataItem","OriginalItem","callCustomization","SaveWorkingChanges","workingItem","EmploymentStatus","Occupation","EmployerName","BeginDate","EndDate","InEditMode","SectionRequired","data","GetEmploymentStatusNameById","name","GetOccupationNameById","subscribe","isNullOrEmpty","IsVMValid","EmploymentAdddress","push","ui","comboBox","hide","resetWorkingItem","show","not","id","i","length","Value","Text","CancelWorkingChanges","EditItem","event","JSON","parse","toJSON","page","application","fieldHelp","AddItem","RemoveItem","customData","res","remove","item","AnythingPopulated","computed","ret","apasemployment","euemployment","ukemployment","CompletedFlag","Completed","LoadModel","container","Payload","Config","viewModel","SetSectionsConfigData","showSection","ShowSection","resources","portalResource","getValue","toUpperCase","smapi","access","loadListItemModels","ListData","Employment","constant","applicationDebugFlag","console","log","GetModelData","blockui","applicationMID","personMID","callback","allCustomData","blockUI","url","_baseApiUri","formatString","ajax","type","dataType","contentType","headers","processData","crossDomain","xhrFields","withCredentials","success","textStatus","jqXHR","modelDataResponseHandler","error","exception","modelErrorHandler","handleErrorWithMessages","CheckInclusion","ApiContainerModel","Status","ValidationTitle","ValidationMessages","result","InclusionResult","sectionsToAdd","Array","sectionsToRemove","section","required","MaintainSections","BlockContainer","block","message","getResourceValue","UnBlockContainer","unblock","SetFocus","ProcessOnServer","ExtractATO","demoMain","community","EmploymentModel","DutyAFSC","Title","Supervisor","ContactNunber","maxLength","params","validate_0CharactersOrLess_Key","options","defaults","settings","dataItem","dateFormat","beginDate","moment","format","endDate","stdEmploymentInformation","cusData","currentEmployerFlexi","CurrentEmployerFlexi","EmploymentInformation","EmployerNames","min","validate_MustBeNumeric_Key","max","number","smLocalDate","validate_MustBeADate_Key","smDateRange","start","end","ModelErrors","validation","group"],"sources":["assets/js/viewmodels/admissions/sm.portal.vm.employment.js"],"mappings":"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","ignoreList":[],"sourcesContent":["/// \r\n\r\n(function (jQuery, undefined) {\r\n var sm = window.sm = window.sm || {};\r\n var windowProxy;\r\n var actionQueue = [];\r\n\r\n if (typeof sm.portal === \"undefined\") {\r\n jQuery.extend(sm, { portal: {} });\r\n }\r\n if (typeof sm.portal.vm === \"undefined\") {\r\n jQuery.extend(sm.portal, { vm: {} });\r\n }\r\n\r\n /**************************************/\r\n // Employment Data View Model\r\n // Holds the employer/employment data\r\n /**************************************/\r\n function EmploymentViewModel() {\r\n\r\n var apasFeatureEnabled = sm.portal.utility.isAPASFeatureEnabled();\r\n var euFeatureEnabled = sm.portal.utility.isEUFeatureEnabled();\r\n var ukFeatureEnabled = sm.portal.utility.isUKFeatureEnabled();\r\n // Self-Identification\r\n var self = this;\r\n\r\n /*** PROPERTIES ***/\r\n this.DataList = ko.observableArray();\r\n this.ID = ko.observable();\r\n this.GID = ko.observable();\r\n this.EmploymentStatusID = ko.validatedObservable();\r\n this.OccupationID = ko.validatedObservable();\r\n this.CurrentEmployer = ko.validatedObservable();\r\n this.EmployerID = ko.validatedObservable();\r\n this.sectionIncluded = ko.observable(false);\r\n /*** PROPERTIES ***/\r\n\r\n /*** LIST DATA PROPERTIES ***/\r\n this.EmploymentStatuses = ko.observableArray();\r\n this.Occupations = ko.observableArray();\r\n /*** LIST DATA PROPERTIES ***/\r\n\r\n /*** SECTION PROPERTIES ***/\r\n this.DataLoaded = ko.observable(false);\r\n this.DataLoading = ko.observable(false);\r\n this.DataContainer = ko.observable(\"EmploymentContainer\");\r\n this.Touched = ko.observable(false);\r\n this.IsRequired = ko.observable(false);\r\n this.DataLoadErrorCount = ko.observable(0);\r\n this.sectionVisibleByConfig = ko.observable(null);\r\n this.IsEmploymentEditted = ko.observable(true);\r\n /*** SECTION PROPERTIES ***/\r\n sm.portal.vm.custom.setCustomLocalizeKey(self);\r\n /** ADD/EDIT LIST METHODS **/\r\n this.WorkingItem = ko.observable(new sm.portal.vm.EmploymentDataItem({\r\n EmploymentStatuses: this.EmploymentStatuses,\r\n Occupations: this.Occupations\r\n }));\r\n this.OriginalItem = ko.observable(new sm.portal.vm.EmploymentDataItem({\r\n EmploymentStatuses: this.EmploymentStatuses,\r\n Occupations: this.Occupations\r\n }));\r\n sm.portal.vm.custom.callCustomization('UpdateEmploymentProperties', self);\r\n\r\n this.SaveWorkingChanges = function () {\r\n\r\n var workingItem = new sm.portal.vm.EmploymentDataItem({\r\n EmploymentStatusID: self.WorkingItem().EmploymentStatusID(),\r\n EmploymentStatus: self.WorkingItem().EmploymentStatus(),\r\n OccupationID: self.WorkingItem().OccupationID(),\r\n Occupation: self.WorkingItem().Occupation(),\r\n EmployerID: self.WorkingItem().EmployerID(),\r\n EmployerName: self.WorkingItem().EmployerName(),\r\n BeginDate: self.WorkingItem().BeginDate(),\r\n EndDate: self.WorkingItem().EndDate(),\r\n InEditMode: self.WorkingItem().InEditMode(),\r\n SectionRequired: self.IsRequired(),\r\n EmploymentStatuses: this.EmploymentStatuses,\r\n Occupations: this.Occupations\r\n });\r\n\r\n var data = {\r\n workingItem: workingItem,\r\n self: self\r\n }\r\n sm.portal.vm.custom.callCustomization('UpdateEmploymentWorkingItem', data);\r\n\r\n if (workingItem.EmploymentStatusID()) {\r\n workingItem.EmploymentStatus(self.GetEmploymentStatusNameById(workingItem.EmploymentStatusID()).name);\r\n }\r\n\r\n if (workingItem.OccupationID()) {\r\n workingItem.Occupation(self.GetOccupationNameById(workingItem.OccupationID()).name);\r\n }\r\n\r\n /*** SUBSCRIPTIONS ***/\r\n workingItem.EmployerName.subscribe(function () {\r\n if(sm.portal.utility.isNullOrEmpty(sm.portal.vm.custom.callCustomization(\"SkipSetIdOnEmpNameSubscribe\"))){\r\n // ensure employer id is zero'd on manual change\r\n workingItem.EmployerID(0);\r\n }\r\n });\r\n /*** SUBSCRIPTIONS ***/\r\n\r\n if (workingItem.IsVMValid()) {\r\n\r\n if (!workingItem.InEditMode()) {\r\n // This is an Add...\r\n self.DataList.push(workingItem);\r\n } else {\r\n // NOTE: Edits automatically bind back to the list (knockout is cool, huh?)\r\n if(sm.portal.utility.isNullOrEmpty(sm.portal.vm.custom.callCustomization('IsCustomized'))){\r\n workingItem.InEditMode(false);\r\n }\r\n self.OriginalItem().EmploymentStatusID(workingItem.EmploymentStatusID());\r\n self.OriginalItem().EmploymentStatus(workingItem.EmploymentStatus());\r\n self.OriginalItem().EmploymentAdddress(workingItem.EmploymentAdddress());\r\n self.OriginalItem().OccupationID(workingItem.OccupationID());\r\n self.OriginalItem().Occupation(workingItem.Occupation());\r\n self.OriginalItem().EmployerID(workingItem.EmployerID());\r\n self.OriginalItem().EmployerName(workingItem.EmployerName());\r\n self.OriginalItem().BeginDate(workingItem.BeginDate());\r\n self.OriginalItem().EndDate(workingItem.EndDate());\r\n self.OriginalItem().InEditMode(workingItem.InEditMode());\r\n }\r\n sm.portal.vm.custom.callCustomization('SaveEmploymentWorkingChanges', data);\r\n sm.portal.ui.comboBox();\r\n\r\n // hide the data entry view\r\n jQuery('.dataEntryView').hide();\r\n\r\n // reset fields for next input\r\n self.resetWorkingItem();\r\n\r\n // show the display view with one item\r\n jQuery('.dataDisplayView').show();\r\n jQuery('.dataDisplayView ul.detailedList li').not('.noneAdded').show();\r\n }\r\n };\r\n\r\n this.resetWorkingItem = function () {\r\n self.WorkingItem(new sm.portal.vm.EmploymentDataItem({\r\n EmploymentStatuses: this.EmploymentStatuses,\r\n Occupations: this.Occupations\r\n }));\r\n sm.portal.vm.custom.callCustomization('ResetEmploymentWorkingItem', self);\r\n }\r\n\r\n this.GetEmploymentStatusNameById = function (id) {\r\n\r\n for (var i = 0; i < self.EmploymentStatuses().length; i++) {\r\n if (self.EmploymentStatuses()[i].Value() === id) {\r\n return self.EmploymentStatuses()[i].Text();\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n this.GetOccupationNameById = function (id) {\r\n\r\n for (var i = 0; i < self.Occupations().length; i++) {\r\n if (self.Occupations()[i].Value() === id) {\r\n return self.Occupations()[i].Text();\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n this.CancelWorkingChanges = function () {\r\n self.resetWorkingItem();\r\n\r\n //hide the display view\r\n jQuery('.dataEntryView').hide();\r\n\r\n // show the entry view\r\n jQuery('.dataDisplayView').show();\r\n };\r\n this.EditItem = function (data, event) {\r\n\r\n self.OriginalItem(data);\r\n self.WorkingItem(\r\n new sm.portal.vm.EmploymentDataItem(\r\n JSON.parse(ko.toJSON(data))\r\n )\r\n );\r\n self.WorkingItem().InEditMode(true);\r\n\r\n jQuery('.dataDisplayView').hide();\r\n jQuery('.dataEntryView').show();\r\n\r\n sm.portal.ui.comboBox();\r\n sm.portal.page.application.fieldHelp();\r\n };\r\n this.AddItem = function (data, event) {\r\n self.resetWorkingItem();\r\n sm.portal.page.application.fieldHelp();\r\n };\r\n this.RemoveItem = function (data, event) {\r\n var customData = {\r\n data: data,\r\n self: self\r\n }\r\n var res = sm.portal.vm.custom.callCustomization('RemoveEmploymentItem', customData);\r\n if (sm.portal.utility.isNullOrEmpty(res)) {\r\n self.DataList.remove(function (item) {\r\n return item.EmploymentStatusID == data.EmploymentStatusID &&\r\n item.OccupationID == data.OccupationID &&\r\n item.EmployerID == data.EmployerID &&\r\n item.BeginDate == data.BeginDate &&\r\n item.EndDate == data.EndDate\r\n }); \r\n }\r\n };\r\n /** ADD/EDIT LIST METHODS **/\r\n\r\n /*** COMPUTED PROPERTIES ***/\r\n this.AnythingPopulated = ko.computed(function () {\r\n var ret = sm.portal.vm.custom.callCustomization('AnythingPopulatedForEmployment', self);\r\n if (!sm.portal.utility.isNullOrEmpty(ret)) {\r\n return ret;\r\n }\r\n \r\n ret = false;\r\n if (typeof sm.portal.vm.apasemployment !== 'undefined' && apasFeatureEnabled) {\r\n ret = sm.portal.vm.apasemployment.AnythingPopulated(this);\r\n }\r\n if (typeof sm.portal.vm.euemployment !== 'undefined' && euFeatureEnabled) {\r\n ret = sm.portal.vm.euemployment.AnythingPopulated(this);\r\n }\r\n if (typeof sm.portal.vm.ukemployment !== 'undefined' && ukFeatureEnabled) {\r\n ret = sm.portal.vm.ukemployment.AnythingPopulated(this);\r\n }\r\n if (!sm.portal.utility.isNullOrEmpty(this.EmploymentStatusID())) return true;\r\n if (!sm.portal.utility.isNullOrEmpty(this.OccupationID())) return true;\r\n if (!sm.portal.utility.isNullOrEmpty(this.CurrentEmployer())) return true;\r\n if (!sm.portal.utility.isNullOrEmpty(this.EmployerID())) return true;\r\n return ret;\r\n\r\n }, this);\r\n if(sm.portal.utility.isNullOrEmpty(self.CompletedFlag)){\r\n this.Completed = ko.computed(function () {\r\n if (this.IsRequired()) {\r\n return this.AnythingPopulated() && this.Touched();\r\n } else {\r\n return this.Touched();\r\n }\r\n }, this);\r\n }\r\n /*** COMPUTED PROPERTIES ***/\r\n\r\n /*** SECTION METHODS ***/\r\n this.LoadModel = function (container) {\r\n // update application section configurations\r\n if (container && container.Payload && container.Payload.Config) {\r\n viewModel.SetSectionsConfigData(\"Employment\", container.Payload.Config);\r\n // To handle inclusion usecase\r\n var showSection = container.Payload.Config.ShowSection;\r\n !sm.portal.utility.isNullOrEmpty(showSection) && this.sectionVisibleByConfig(showSection);\r\n }\r\n var dateFormat = sm.resources.portalResource.getValue('DateFormatExample').toUpperCase();\r\n\r\n this.EmploymentStatuses = smapi.access.loadListItemModels(container.Payload.ListData.EmploymentStatuses, this.EmploymentStatuses);\r\n this.Occupations = smapi.access.loadListItemModels(container.Payload.ListData.Occupations, this.Occupations);\r\n \r\n var customData = {\r\n container: container,\r\n self: self\r\n }\r\n var res = sm.portal.vm.custom.callCustomization('LoadEmploymentModel', customData);\r\n if (sm.portal.utility.isNullOrEmpty(res)) {\r\n if (container.Payload.Employment != null) {\r\n this.EmploymentStatusID(container.Payload.Employment.EmploymentStatusID);\r\n this.OccupationID(container.Payload.Employment.OccupationID);\r\n this.CurrentEmployer(container.Payload.Employment.CurrentEmployer);\r\n this.EmployerID(container.Payload.Employment.EmployerID);\r\n this.ID(container.Payload.Employment.ID);\r\n this.GID(container.Payload.Employment.GID);\r\n }\r\n if (typeof sm.portal.vm.apasemployment !== 'undefined' && apasFeatureEnabled) {\r\n sm.portal.vm.apasemployment.LoadModel(this, container);\r\n }\r\n if (typeof sm.portal.vm.euemployment !== 'undefined' && euFeatureEnabled) {\r\n sm.portal.vm.euemployment.LoadModel(this, container);\r\n }\r\n if (typeof sm.portal.vm.ukemployment !== 'undefined' && ukFeatureEnabled) {\r\n sm.portal.vm.ukemployment.LoadModel(this, container);\r\n } \r\n }\r\n this.DataLoading(false);\r\n this.DataLoaded(true);\r\n if (smapi.constant.applicationDebugFlag) { console.log('[EmploymentVM] Data Loaded'); }\r\n };\r\n\r\n this.GetModelData = function (blockui, applicationMID, personMID, callback) {\r\n\r\n if (!this.DataLoaded() && !this.DataLoading()) {\r\n\r\n this.DataLoading(true);\r\n if(!sm.portal.utility.isNullOrEmpty(viewModel.allCustomData())) {\r\n self.LoadModel(viewModel.allCustomData().Employment);\r\n callback && callback(viewModel.allCustomData().Employment);\r\n return;\r\n }\r\n if (blockui) { jQuery.blockUI(); }\r\n var url = _baseApiUri + sm.portal.utility.formatString('api/studentportal/getapplicationsection?sectionName=employment&attemptmid={0}', applicationMID);\r\n\r\n jQuery.ajax({\r\n url: url,\r\n type: 'GET',\r\n dataType: 'json',\r\n contentType: 'application/json; charset=utf-8',\r\n headers: {\r\n \"x-api-version\": '1' //,\r\n },\r\n processData: false,\r\n crossDomain: true,\r\n\r\n xhrFields: {\r\n withCredentials: true\r\n },\r\n success: function (data, textStatus, jqXHR) {\r\n sm.portal.page.application.modelDataResponseHandler(self, data, applicationMID, personMID);\r\n callback && callback(data);\r\n },\r\n error: function (jqXHR, exception) {\r\n sm.portal.page.application.modelErrorHandler(self, jqXHR);\r\n sm.portal.page.application.handleErrorWithMessages(self, jqXHR, 'fetch');\r\n callback && callback();\r\n }\r\n });\r\n } else {\r\n callback && callback();\r\n }\r\n };\r\n\r\n this.CheckInclusion = function (applicationMID, personMID) {\r\n if(self.sectionIncluded()) return;\r\n \r\n var url = _baseApiUri + sm.portal.utility.formatString('api/studentportal/CheckApplicationSectionInclusion?sectionName=employment&attemptmid={0}', applicationMID);\r\n\r\n jQuery.ajax({\r\n url: url,\r\n type: 'GET',\r\n dataType: 'json',\r\n contentType: 'application/json; charset=utf-8',\r\n headers: {\r\n \"x-api-version\": '1' //,\r\n },\r\n processData: false,\r\n crossDomain: true,\r\n\r\n xhrFields: {\r\n withCredentials: true\r\n },\r\n success: function (data, textStatus, jqXHR) {\r\n self.sectionIncluded(true);\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n if (data.Status == 'success') {\r\n var result = container.Payload.InclusionResult;\r\n var sectionsToAdd = Array();\r\n var sectionsToRemove = Array();\r\n\r\n console.log('Inclusion Result for Employment: ' + result);\r\n switch (result) {\r\n case \"Included\":\r\n sectionsToAdd.push({ section: 'Employment', required: false });\r\n break;\r\n case \"Required\":\r\n sectionsToAdd.push({ section: 'Employment', required: true });\r\n break;\r\n case \"Exclude\":\r\n sectionsToRemove.push('Employment');\r\n break;\r\n }\r\n console.log('Calling Maintain Sections');\r\n if (self.sectionVisibleByConfig() === false && (result == \"Included\" || result == \"Required\")) {\r\n sectionsToAdd = null; // If section is hidden by Configuration, don't add the section\r\n }\r\n viewModel.MaintainSections(sectionsToAdd, sectionsToRemove);\r\n }\r\n },\r\n error: function (jqXHR, exception) {\r\n sm.portal.page.application.modelErrorHandler(self, jqXHR);\r\n }\r\n });\r\n };\r\n\r\n this.BlockContainer = function () {\r\n jQuery(\"#\" + self.DataContainer()).block({ message: sm.portal.utility.getResourceValue('Loading') });\r\n };\r\n this.UnBlockContainer = function () {\r\n jQuery(\"#\" + self.DataContainer()).unblock();\r\n viewModel.SetFocus();\r\n };\r\n this.ProcessOnServer = function () {\r\n return true;\r\n };\r\n this.ExtractATO = function () {\r\n // [EXTEND] New fields added to view model need to be updated here\r\n var demoMain = null;\r\n demoMain = sm.portal.vm.custom.callCustomization('ExtractEmploymentATO', self);\r\n if (!sm.portal.utility.isNullOrEmpty(demoMain)) {\r\n return demoMain;\r\n }\r\n if (typeof sm.portal.vm.apasemployment !== 'undefined' && apasFeatureEnabled) {\r\n return sm.portal.vm.apasemployment.ExtractATO(self);\r\n } else if (typeof sm.portal.vm.euemployment !== 'undefined' && euFeatureEnabled) {\r\n return sm.portal.vm.euemployment.ExtractATO(self);\r\n } else if (typeof sm.portal.vm.ukemployment !== 'undefined' && ukFeatureEnabled) {\r\n return sm.portal.vm.ukemployment.ExtractATO(self);\r\n }\r\n else {\r\n demoMain = new smapi.community.EmploymentModel({\r\n EmploymentStatusID: self.EmploymentStatusID(),\r\n OccupationID: self.OccupationID(),\r\n CurrentEmployer: self.CurrentEmployer(),\r\n EmployerID: self.EmployerID(),\r\n ID: self.ID(),\r\n GID: self.GID(),\r\n DutyAFSC: null,\r\n Title: null,\r\n Supervisor: null,\r\n ContactNunber: null\r\n });\r\n }\r\n return demoMain;\r\n };\r\n\r\n this.CurrentEmployer.extend({\r\n maxLength: {\r\n params: 100,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '100')\r\n }\r\n });\r\n\r\n return self;\r\n };\r\n function EmploymentDataItem(options) {\r\n var defaults = {\r\n EmploymentStatusID: '',\r\n EmploymentStatus: '',\r\n OccupationID: '',\r\n Occupation: '',\r\n EmployerID: '',\r\n EmployerName: '',\r\n BeginDate: '',\r\n EndDate: '',\r\n InEditMode: false,\r\n ID: -1,\r\n GID: null,\r\n EmploymentStatuses: null,\r\n Occupations: null\r\n };\r\n sm.portal.vm.custom.callCustomization('UpdateDefaultPropsForEmpDataItem', defaults);\r\n var settings = jQuery.extend({}, defaults, options);\r\n\r\n // Self-Identification\r\n var self = this;\r\n\r\n self.EmploymentStatusID = ko.validatedObservable(settings.EmploymentStatusID);\r\n self.EmploymentStatus = ko.validatedObservable(settings.EmploymentStatus);\r\n self.OccupationID = ko.validatedObservable(settings.OccupationID);\r\n self.Occupation = ko.validatedObservable(settings.Occupation);\r\n self.EmployerID = ko.validatedObservable(settings.EmployerID);\r\n self.EmployerName = ko.validatedObservable(settings.EmployerName);\r\n self.BeginDate = ko.validatedObservable(settings.BeginDate);\r\n self.EndDate = ko.validatedObservable(settings.EndDate);\r\n self.GID = ko.validatedObservable(settings.GID);\r\n self.ID = ko.validatedObservable(settings.ID);\r\n self.InEditMode = ko.observable(settings.InEditMode);\r\n self.CurrentEmployer = ko.observable(settings.CurrentEmployer);\r\n\r\n var data = {\r\n dataItem : self,\r\n settings : settings\r\n }\r\n sm.portal.vm.custom.callCustomization('UpdateEmploymentDataItem', data);\r\n\r\n if (settings.EmploymentStatuses == undefined || settings.EmploymentStatuses == null) {\r\n self.EmploymentStatuses = ko.observableArray();\r\n } else {\r\n self.EmploymentStatuses = settings.EmploymentStatuses;\r\n }\r\n\r\n if (settings.Occupations == undefined || settings.Occupations == null) {\r\n self.Occupations = ko.observableArray();\r\n } else {\r\n self.Occupations = settings.Occupations;\r\n }\r\n\r\n self.ExtractATO = function () {\r\n var dateFormat = sm.resources.portalResource.getValue('DateFormatExample').toUpperCase();\r\n var beginDate = moment(self.BeginDate(), dateFormat).format('YYYY-MM-DD');\r\n var endDate = moment(self.EndDate(), dateFormat).format('YYYY-MM-DD');\r\n\r\n var stdEmploymentInformation = new smapi.community.EmploymentModel({\r\n EmploymentStatusID: self.EmploymentStatusID(),\r\n OccupationID: self.OccupationID(),\r\n EmployerID: self.EmployerID(),\r\n BeginDate: beginDate,\r\n EndDate: endDate,\r\n ID: self.ID(),\r\n GID: self.GID(),\r\n Title: null,\r\n Supervisor: null,\r\n ContactNunber: null\r\n });\r\n\r\n\r\n var cusData = {\r\n self: self,\r\n stdEmploymentInformation: stdEmploymentInformation\r\n }\r\n\r\n var res = sm.portal.vm.custom.callCustomization('ExtractDataItemATO', cusData);\r\n if (!sm.portal.utility.isNullOrEmpty(res)) {\r\n return res;\r\n }\r\n var data = {\r\n stdEmploymentInformation: stdEmploymentInformation,\r\n currentEmployerFlexi: self.CurrentEmployerFlexi\r\n }\r\n sm.portal.vm.custom.callCustomization('UpdateEmploymentInfo', data);\r\n\r\n var stdEmployerNames = self.EmployerName();\r\n\r\n return {\r\n EmploymentInformation: stdEmploymentInformation,\r\n EmployerNames: stdEmployerNames\r\n };\r\n }\r\n\r\n /*** VALIDATION METHODS ***/\r\n sm.portal.vm.custom.callCustomization('OverrideEmploymentValidation', self);\r\n\r\n this.EmploymentStatusID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.OccupationID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.EmployerID.extend({\r\n min: {\r\n params: -9223372036854775808,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.BeginDate.extend({\r\n smLocalDate: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n },\r\n // only need to attach range validator to one of the dates\r\n smDateRange: {\r\n params: { start: this.BeginDate, end: this.EndDate },\r\n message: \"Please use a valid date range, with valid dates\"\r\n }\r\n });\r\n this.EndDate.extend({\r\n smLocalDate: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n\r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n // Check if Model is valid \r\n // (will NOT validate attached models, unless we\r\n // init that in ui.js - currently it has performance problems)\r\n this.IsVMValid = function () {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n this.Completed = ko.computed(function () {\r\n var isCompleted = this.IsVMValid();\r\n return isCompleted;\r\n }, this);\r\n /*** VALIDATION METHODS ***/\r\n\r\n return self;\r\n };\r\n\r\n\r\n jQuery.extend(true, sm.portal.vm, {\r\n EmploymentViewModel: EmploymentViewModel,\r\n EmploymentDataItem: EmploymentDataItem\r\n });\r\n})(jQuery);\r\n"]}