hino / app / controllers / contact-resource / create.js
create.js
Raw
import Controller from '@ember/controller';
import { inject as service } from '@ember/service';

export default Controller.extend({
	contactResource : service(),
	contactResourceData : service(),
	genderData : service(),
	religionData : service(),
	addressTypeData : service(),
	countryData : service(),
	villageData : service(),
	provinceData : service(),
	municipalityData : service(),
	subDistrictData : service(),
	session : service(),
	errors : service(),
	didValidate: false,
	rightActionInProgress: false,
	tittleData:service(),
	session: service(),

	genders: Array(),
	religions: Array(),
	addressTypes: Array(),
	countries: Array(),
	villages: Array(),
	provinces: Array(),
	municipalities: Array(),
	subDistricts: Array(),

	init() {
		this._super(...arguments);

		var tittles = this.tittleData.getList();
		this.set("tittles", tittles);

		var genders = this.genderData.getList();
		this.set("genders", genders);

		var religions = this.religionData.getList();
		this.set("religions", religions);

		var addressTypes = this.addressTypeData.getList();
		this.set("addressTypes", addressTypes);

		var countries = this.countryData.getList();
		this.set("countries", countries);

		var villages = this.villageData.getList();
		this.set("villages", villages);

		var provinces = this.provinceData.getList();
		this.set("provinces", provinces);

		var municipalities = this.municipalityData.getList();
		this.set("municipalities", municipalities);

		var subDistricts = this.subDistrictData.getList();
		this.set("subDistricts", subDistricts);
		this.set('errorMessages',null);

	},

	actions: {
		setNullError: function(data) {
			this.set('errorMessages',null);
		  },
		onChangeCombo(propertyName, item) {
			//this.set(propertyName, item);
			var mdl =this.contactResource.model;
			if(propertyName == "country") {
				var filter = "\"country\" : {\"in\" : \"" + mdl.country.get('countryCodeHoyu') + "\"}";
				filter = '{' + filter + '}';
				filter = JSON.parse(filter);
				var provinces = this.provinceData.getList({filter: filter});
				this.set("provinces", provinces);
				this.set('contactResource.model.province',null);
			}
			else if(propertyName == "province"){
				
				var filter = "\"province\" : {\"in\" : \"" + mdl.province.get('provinceCodeHoyu') + "\"}";
				filter = '{' + filter + '}';
				filter = JSON.parse(filter);
				var municipalities = this.municipalityData.getList({filter: filter});
				this.set("municipalities", municipalities);
				this.set('contactResource.model.municipality',null);

			}else if(propertyName == "municipality"){
				var filter = "\"municipality\" : {\"in\" : \"" + mdl.municipality.get('municipalityCodeHoyu') + "\"}";
				filter = '{' + filter + '}';
				filter = JSON.parse(filter);
				var subDistricts = this.subDistrictData.getList({filter: filter});
				this.set("subDistricts", subDistricts);
				this.set('contactResource.model.subDistrict',null);
			}
			else if(propertyName == "subDistrict"){
				var filter = "\"subDistrict\" : {\"in\" : \"" + mdl.subDistrict.get('subDistrictCodeHoyu') + "\"}";
				filter = '{' + filter + '}';
				filter = JSON.parse(filter);
				var villages = this.villageData.getList({filter: filter});
				this.set("villages", villages);
				this.set('contactResource.model.village',null);
			}
		},
		// onChangeCombo(propertyName, item) {
		// 	//this.set(propertyName, item);
		// 	var mdl =this.contactResource.model;



		// 	if(propertyName == "country") {
		// 		// var filter = "\"country\" : {\"in\" : \"" + mdl.country.get('countryCodeHoyu') + "\"}";
		// 		// filter = '{' + filter + '}';
		// 		// filter = JSON.parse(filter);
		// 		// var provinces = this.provinceData.getList({filter: filter});
		// 		// this.set("provinces", provinces);
		// 		// this.set('contactResource.model.province',null);
		// 	}
		// 	else if(propertyName == "province"){
		// 		if(mdl.province != null){
		// 		var filter = "\"countryCodeHoyu\" : {\"in\" : \"" + mdl.province.get('countriesId') + "\"}";
		// 		filter = '{' + filter + '}';
		// 		filter = JSON.parse(filter);
		// 		var countries = this.countryData.getList({filter: filter});
		// 		this.set("countries", countries);
		// 		this.set('contactResource.model.country',null);
		// 		}



		// 	}else if(propertyName == "municipality"){
		// 		if( mdl.municipality != null){
		// 		var filter = "\"provinceCodeHoyu\" : {\"in\" : \"" + mdl.municipality.get('provincesId') + "\"}";
		// 		filter = '{' + filter + '}';
		// 		filter = JSON.parse(filter);
		// 		var provinces = this.provinceData.getList({filter: filter});
		// 		this.set("provinces", provinces);
				
		// 		this.set('contactResource.model.province',null);
		// 		}
		// 	}
		// 	else if(propertyName == "subDistrict"){
		// 		if(mdl.subDistrict != null){
		// 				var filter = "\"municipalityCodeHoyu\" : {\"in\" : \"" + mdl.subDistrict.get('municipalitiesId') + "\"}";
		// 				filter = '{' + filter + '}';
		// 				filter = JSON.parse(filter);
		// 				var municipalities = this.municipalityData.getList({filter: filter});
		// 				this.set("municipalities", municipalities);
		// 				this.set('contactResource.model.municipality',null);
		// 		}
		// 	}else if(propertyName == "village"){
		// 		if(mdl.village != null ){
		// 				var filter = "\"subDistrictCodeHoyu\" : {\"in\" : \"" + mdl.village.get('subDistrictsId') + "\"}";
		// 				filter = '{' + filter + '}';
		// 				var subDistricts = this.subDistrictData.getList({filter: filter});
		// 				this.set("subDistricts", subDistricts);
		// 				this.set('contactResource.model.subDistrict',null);
		// 		}

		// 	}
		// },
		async saveContactResource() {
			this.set("rightActionInProgress", true);
			this.get('model')
				.validate()
				.then(async ({ validations }) => {
					this.set('didValidate', true); 
					if (validations.get('isValid')) {
						this.set('contactResource.model.isApprovalData', false);
						this.set('contactResource.model.account',this.session.data.managementNama);
						this.set('contactResource.model.accountPartyNumber',this.session.data.partyNumber);
						//alert(this.contactResource.model.accountPartyNumber);
						this.contactResourceData.save(this.contactResource.model).then(response => {
							if (response != undefined) {
								this.set("rightActionInProgress", false);
								this.set('errorMessages',null);
								this.transitionToRoute('contact-resource.index'); 
							}
						}) 
						.catch((e) => {

							this.set("rightActionInProgress", false);
							console.log(this.errorMessages);
							this.set('errorMessages', this.errors.getErrorMessages(e));
							window.scrollTo(0,0);
						});
					} else {
						
						this.set("rightActionInProgress", false);
					}
			});
		},

	},
});