(function (module) { mifosX.controllers = _.extend(module, { CreateClientController: function (scope, resourceFactory, location, http, dateFilter, API_VERSION, Upload, $rootScope, routeParams, WizardHandler) { scope.offices = []; scope.staffs = []; scope.savingproducts = []; scope.first = {}; scope.first.date = new Date(); scope.first.submitondate = new Date (); scope.formData = {}; scope.formDat = {}; scope.clientNonPersonDetails = {}; scope.restrictDate = new Date(); scope.showSavingOptions = false; scope.savings = {}; scope.savings.opensavingsproduct = false; scope.forceOffice = null; scope.showNonPersonOptions = false; scope.clientPersonId = 1; //address scope.addressTypes=[]; scope.countryOptions=[]; scope.stateOptions=[]; scope.addressTypeId={}; entityname="ADDRESS"; scope.addressArray=[]; scope.formData.address=[]; scope.datatables = []; scope.noOfTabs = 1; scope.step = '-'; scope.formData.datatables = []; scope.formDat.datatables = []; scope.tf = "HH:mm"; var requestParams = {staffInSelectedOfficeOnly:true}; if (routeParams.groupId) { requestParams.groupId = routeParams.groupId; } if (routeParams.officeId) { requestParams.officeId = routeParams.officeId; } resourceFactory.clientTemplateResource.get(requestParams, function (data) { scope.offices = data.officeOptions; scope.staffs = data.staffOptions; scope.formData.officeId = scope.offices[0].id; scope.savingproducts = data.savingProductOptions; scope.genderOptions = data.genderOptions; scope.clienttypeOptions = data.clientTypeOptions; scope.clientClassificationOptions = data.clientClassificationOptions; scope.clientNonPersonConstitutionOptions = data.clientNonPersonConstitutionOptions; scope.clientNonPersonMainBusinessLineOptions = data.clientNonPersonMainBusinessLineOptions; scope.clientLegalFormOptions = data.clientLegalFormOptions; scope.datatables = data.datatables; if (!_.isUndefined(scope.datatables) && scope.datatables.length > 0) { scope.noOfTabs = scope.datatables.length + 1; angular.forEach(scope.datatables, function (datatable, index) { scope.updateColumnHeaders(datatable.columnHeaderData); angular.forEach(datatable.columnHeaderData, function (colHeader, i) { if (_.isEmpty(scope.formDat.datatables[index])) { scope.formDat.datatables[index] = {data: {}}; } if (_.isEmpty(scope.formData.datatables[index])) { scope.formData.datatables[index] = { registeredTableName: datatable.registeredTableName, data: {locale: scope.optlang.code} }; } if (datatable.columnHeaderData[i].columnDisplayType == 'DATETIME') { scope.formDat.datatables[index].data[datatable.columnHeaderData[i].columnName] = {}; } }); }); } if (data.savingProductOptions.length > 0) { scope.showSavingOptions = true; } if(routeParams.officeId) { scope.formData.officeId = routeParams.officeId; for(var i in data.officeOptions) { if(data.officeOptions[i].id == routeParams.officeId) { scope.forceOffice = data.officeOptions[i]; break; } } } if(routeParams.groupId) { if(typeof data.staffId !== "undefined") { scope.formData.staffId = data.staffId; } } scope.enableAddress=data.isAddressEnabled; if(scope.enableAddress===true) { scope.addressTypes=data.address.addressTypeIdOptions; scope.countryOptions=data.address.countryIdOptions; scope.stateOptions=data.address.stateProvinceIdOptions; resourceFactory.addressFieldConfiguration.get({entity:entityname},function(data){ for(var i=0;i 0) { angular.forEach(scope.datatables, function (datatable, index) { scope.columnHeaders = datatable.columnHeaderData; angular.forEach(scope.columnHeaders, function (colHeader, i) { scope.dateFormat = scope.df + " " + scope.tf if (scope.columnHeaders[i].columnDisplayType == 'DATE') { if (!_.isUndefined(scope.formDat.datatables[index].data[scope.columnHeaders[i].columnName])) { scope.formData.datatables[index].data[scope.columnHeaders[i].columnName] = dateFilter(scope.formDat.datatables[index].data[scope.columnHeaders[i].columnName], scope.dateFormat); scope.formData.datatables[index].data.dateFormat = scope.dateFormat; } } else if (scope.columnHeaders[i].columnDisplayType == 'DATETIME') { if (!_.isUndefined(scope.formDat.datatables[index].data[scope.columnHeaders[i].columnName].date) && !_.isUndefined(scope.formDat.datatables[index].data[scope.columnHeaders[i].columnName].time)) { scope.formData.datatables[index].data[scope.columnHeaders[i].columnName] = dateFilter(scope.formDat.datatables[index].data[scope.columnHeaders[i].columnName].date, scope.df) + " " + dateFilter(scope.formDat.datatables[index].data[scope.columnHeaders[i].columnName].time, scope.tf); scope.formData.datatables[index].data.dateFormat = scope.dateFormat; } } }); }); } else { delete scope.formData.datatables; } if (routeParams.groupId) { this.formData.groupId = routeParams.groupId; } if (routeParams.officeId) { this.formData.officeId = routeParams.officeId; } if (scope.first.submitondate) { reqDate = dateFilter(scope.first.submitondate, scope.df); this.formData.submittedOnDate = reqDate; } if (scope.first.dateOfBirth) { this.formData.dateOfBirth = dateFilter(scope.first.dateOfBirth, scope.df); } if (this.formData.legalFormId == scope.clientPersonId || this.formData.legalFormId == null) { delete this.formData.fullname; } else { delete this.formData.firstname; delete this.formData.middlename; delete this.formData.lastname; } if(scope.first.incorpValidityTillDate) { this.formData.clientNonPersonDetails.locale = scope.optlang.code; this.formData.clientNonPersonDetails.dateFormat = scope.df; this.formData.clientNonPersonDetails.incorpValidityTillDate = dateFilter(scope.first.incorpValidityTillDate, scope.df); } if (!scope.savings.opensavingsproduct) { this.formData.savingsProductId = null; } if(scope.enableAddress===true) { for(var i=0;i