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

export default Controller.extend({
	vehicleManagement : service(),
	vehicleManagementData : service(),
	brandData : service(),
	vehicleModelData : service(),
	vehicleVariantData : service(),
	subBusinessSegmentData : service(),
	colorData : service(),
	fuelTypeData : service(),
	karoseriTypeData : service(),
	karoseriData : service(),
	vehicleBastData : service(),
	vehicleWarrantyData : service(),
	vehicleWorkOrderData : service(),
	businessSegmentData : service(),
	session : service(),
	errors : service(),
	didValidate: false,
	rightActionInProgress: false,

	brands: Array(),
	vehicleModels: Array(),
	vehicleVariants: Array(),
	subBusinessSegments: Array(),
	warnas: Array(),
	tipeBbms: Array(),
	karoseriTypes: Array(),
	karoseris: Array(),
	businessSegments: Array(),

	//formConfig: true,
	formConfig : {
		form :{
		sourceSystemNo : { isEditable : true }, 
		vin : { isEditable : true }, 
		vinNumber20 : { isEditable : true }, 
		brand : { isEditable : true }, 
		vehicleModel : { isEditable : true }, 
		vehicleVariant : { isEditable : true }, 
		vehicleCategory : { isEditable : true }, 
		noRangka : { isEditable : true }, 
		noMesin : { isEditable : true }, 
		tahunPembuatan : { isEditable : true }, 
		tahunPerakitan : { isEditable : true }, 
		statusKendaraan : { isEditable : true }, 
		subBusinessSegment : { isEditable : true }, 
		color : { isEditable : true }, 
		namaKomersil : { isEditable : true }, 
		manufactureCode : { isEditable : true }, 
		fuelType : { isEditable : true }, 
		vrfCustomerName : { isEditable : true }, 
		karoseriType : { isEditable : true }, 
		karoseri : { isEditable : true }, 
		keyCode : { isEditable : true }, 
		kodeRadioTape : { isEditable : true }, 
		kmTerakhir : { isEditable : true }, 
		noPlat : { isEditable : true }, 
		noBpkb : { isEditable : true }, 
		tanggalBpkb : { isEditable : true }, 
		noStnk : { isEditable : true }, 
		tanggalStnk : { isEditable : true }, 
		kapasitasMesin : { isEditable : true }, 
		noPoliceFaktur : { isEditable : true }, 
		vehicleStage : { isEditable : true }, 
		kodeDealer : { isEditable : true }, 
		kodeCabang : { isEditable : true }, 
		namaKaryawan : { isEditable : true }, 
		tanggalDo : { isEditable : true }, 
		noVrf : { isEditable : true }, 
		fromWarehouse : { isEditable : true }, 
		shipmentNumber : { isEditable : true }, 
		jenisPengiriman : { isEditable : true }, 
		tanggalDaftar : { isEditable : true }, 
		quotationNo : { isEditable : true }, 
		namaCabang : { isEditable : true }, 
		namaDealer : { isEditable : true }, 
		stockStatus : { isEditable : true }, 
		fakturDateIds : { isEditable : true }, 
		invoiceNoIds : { isEditable : true }, 
		kmLastTelematics : { isEditable : true }, 
		vehicleUniqueIdentifier : { isEditable : true }, 
		vehicleBast : { 
			bastId : { isEditable : true }, 
			vehicleId : { isEditable : true }, 
			bastNo : { isEditable : true }, 
			tanggalBastDiterima : { isEditable : true }, 
			model : { isEditable : true }, 
			spkNo : { isEditable : true }, 
			status : { isEditable : true }, 
			vehicleManagement : { isEditable : true }, 
		},
		vehicleWarranty : { 
			warrantyId : { isEditable : true }, 
			vehicleId : { isEditable : true }, 
			warrantyRegistrationId : { isEditable : true }, 
			warrantyRegistrationNumber : { isEditable : true }, 
			tanggalMulaiPendaftaranWarranty : { isEditable : true }, 
			statusWarranty : { isEditable : true }, 
			namaCustomer : { isEditable : true }, 
			vehicleManagement : { isEditable : true }, 
		},
		vehicleWorkOrder : { 
			workOrderId : { isEditable : true }, 
			vehicleId : { isEditable : true }, 
			workOrderSysNo : { isEditable : true }, 
			workOrderNo : { isEditable : true }, 
			tanggalWorkOrder : { isEditable : true }, 
			merek : { isEditable : true }, 
			model : { isEditable : true }, 
			status : { isEditable : true }, 
			dealer : { isEditable : true }, 
			branch : { isEditable : true }, 
			vehicleManagement : { isEditable : true }, 
		},
		accountPartyId : { isEditable : true }, 
		businessSegment : { isEditable : true }, 
		},
	},

	init() {
		this._super(...arguments);
		var brands = this.brandData.getList();
		this.set("brands", brands);
		

		var vehicleModels = this.vehicleModelData.getList();
		this.set("vehicleModels", vehicleModels);

		var vehicleVariants = this.vehicleVariantData.getList();
		this.set("vehicleVariants", vehicleVariants);

		var subBusinessSegments = this.subBusinessSegmentData.getList();
		this.set("subBusinessSegments", subBusinessSegments);

		var warnas = this.colorData.getList();
		this.set("warnas", warnas);

		var tipeBbms = this.fuelTypeData.getList();
		this.set("tipeBbms", tipeBbms);

		var karoseriTypes = this.karoseriTypeData.getList();
		this.set("karoseriTypes", karoseriTypes);

		var karoseris = this.karoseriData.getList();
		this.set("karoseris", karoseris);

		var businessSegments = this.businessSegmentData.getList();
		this.set("businessSegments", businessSegments);

	},

	actions: {
		onChangeCombo(propertyName, item) {
			this.set(propertyName, item);
		},

		async saveVehicleManagement() {
			this.set("rightActionInProgress", true);
			this.get('model')
				.validate()
				.then(async ({ validations }) => {
					this.set('didValidate', true); 
					if (validations.get('isValid')) {
						this.set('vehicleManagement.model.isApprovalData', false);
						this.vehicleManagementData.save(this.vehicleManagement.model).then(response => {
							if (response != undefined) {
								this.transitionToRoute('vehicle-management.detail', response.id); 
							}
						}) 
						.catch((e) => {
							this.set("rightActionInProgress", false);
							this.set('errorMessages', this.errors.getErrorMessages(e));
							window.scrollTo(0, 0);
						});
					} else {
						this.set("rightActionInProgress", false);
					}
			});
		},

		addRowData(modal_type) {
			if (modal_type == "vehicle-bast") {
				let data = this.vehicleBastData.createRecord();
				this.vehicleManagement.addRow(data, "vehicleBast");
			}
			if (modal_type == "vehicle-warranty") {
				let data = this.vehicleWarrantyData.createRecord();
				this.vehicleManagement.addRow(data, "vehicleWarranty");
			}
			if (modal_type == "vehicle-work-order") {
				let data = this.vehicleWorkOrderData.createRecord();
				this.vehicleManagement.addRow(data, "vehicleWorkOrder");
			}
		},
		deleteRowData(modal_type, data) {
			if (modal_type == "vehicle-bast") {
				this.vehicleManagement.deleteRow(data, "vehicleBast");
			}
			if (modal_type == "vehicle-warranty") {
				this.vehicleManagement.deleteRow(data, "vehicleWarranty");
			}
			if (modal_type == "vehicle-work-order") {
				this.vehicleManagement.deleteRow(data, "vehicleWorkOrder");
			}
		},
	},
});