hino / app / controllers / hoyu-sales-order-approval / edit.js
edit.js
Raw
import Controller from '@ember/controller';
import { inject as service } from '@ember/service';

export default Controller.extend({
	hoyuSalesOrderApproval : service(),
	hoyuSalesOrderApprovalData : service(),
	coreAttachmentData : service(),
	hoyuSalesOrderAttachmentData : service(),
	hoyuSalesOrderCompetitorData : service(),
	hoyuSalesOrderProductSplitData : service(),
	hoyuSalesOrderApprovalListData : service(),
	hoyuSalesOrderAvailableVehicleData : service(),
	session : service(),
	errors : service(),
	didValidate: false,
	rightActionInProgress: false,

	attachments: Array(),

	formConfig : {
		sourceSystemNo : { isEditable : true }, 
		accountPartyId : { isEditable : true }, 
		quotationNumber : { isEditable : true }, 
		revisionNumber : { isEditable : true }, 
		event : { isEditable : true }, 
		kodeEvent : { isEditable : true }, 
		namaProduk : { isEditable : true }, 
		jumlah : { isEditable : true }, 
		jenisOrder : { isEditable : true }, 
		kategori : { isEditable : true }, 
		manufacturingCode : { isEditable : true }, 
		model : { isEditable : true }, 
		varian : { isEditable : true }, 
		tahunVin : { isEditable : true }, 
		tipeKaroseri : { isEditable : true }, 
		warna : { isEditable : true }, 
		customer : { isEditable : true }, 
		pemilik : { isEditable : true }, 
		tipePembayaran : { isEditable : true }, 
		flagDiscountCash : { isEditable : true }, 
		defaultTop : { isEditable : true }, 
		procurementType : { isEditable : true }, 
		permintaanPerpanjanganTop : { isEditable : true }, 
		perpanjanganTopYangDiberikan : { isEditable : true }, 
		jumlahTopYangDiberikan : { isEditable : true }, 
		jumlahTopPerpanjangan : { isEditable : true }, 
		permintaanSubsidi : { isEditable : true }, 
		subsidiDiberikan : { isEditable : true }, 
		telematicsContacts : { isEditable : true }, 
		telematicsContacsName : { isEditable : true }, 
		telematicsContacsEmail : { isEditable : true }, 
		telematicsContacsPhoneNumber : { isEditable : true }, 
		approvalLevel : { isEditable : true }, 
		status : { isEditable : true }, 
		inisiator : { isEditable : true }, 
		hargaTerkunci : { isEditable : true }, 
		merekKompetitor : { isEditable : true }, 
		tanggalKadaluarsa : { isEditable : true }, 
		dealerNotes : { isEditable : true }, 
		lostOrderReason : { isEditable : true }, 
		lostOrderNotes : { isEditable : true }, 
		opportunities : { isEditable : true }, 
		onTheRoad : { isEditable : true }, 
		bbn : { isEditable : true }, 
		offTheRoad : { isEditable : true }, 
		marginDealer : { isEditable : true }, 
		biayaPengiriman : { isEditable : true }, 
		dnp : { isEditable : true }, 
		jumlahVrfYangDisetujui : { isEditable : true }, 
		onTheRoadCr : { isEditable : true }, 
		bbnCr : { isEditable : true }, 
		offTheRoadCr : { isEditable : true }, 
		marginDealerCr : { isEditable : true }, 
		biayaPengirimanCr : { isEditable : true }, 
		dnpCr : { isEditable : true }, 
		totalJumlahVrf : { isEditable : true }, 
		dnpWholesale : { isEditable : true }, 
		pilihanDiskon : { isEditable : true }, 
		programDutro : { isEditable : true }, 
		cashDiscount : { isEditable : true }, 
		eventDiscount : { isEditable : true }, 
		tambahanDiscountYangDiajukan : { isEditable : true }, 
		totalDiskon : { isEditable : true }, 
		totalHarga : { isEditable : true }, 
		notes : { isEditable : true }, 
		hoyuSalesOrderAttachment : { 
			hoyuSalesOrderApproval : { isEditable : true }, 
			attachment : { isEditable : true }, 
			description : { isEditable : true }, 
			createdBy : { isEditable : true }, 
			updatedBy : { isEditable : true }, 
		},
		hoyuSalesOrderCompetitor : { 
			competitorId : { isEditable : true }, 
			unitSalesOrderId : { isEditable : true }, 
			competitorName : { isEditable : true }, 
			modelKendaraanCompetitor : { isEditable : true }, 
			hargaKendaraanCompetitor : { isEditable : true }, 
			tipeHarga : { isEditable : true }, 
			hinoTransmission : { isEditable : true }, 
			hoyuSalesOrderApproval : { isEditable : true }, 
			createdBy : { isEditable : true }, 
			updatedBy : { isEditable : true }, 
		},
		hoyuSalesOrderProductSplit : { 
			productSplitId : { isEditable : true }, 
			productName : { isEditable : true }, 
			jumlah : { isEditable : true }, 
			kuantitasDisetujui : { isEditable : true }, 
			rencanaTanggalPengiriman : { isEditable : true }, 
			tanggalDisetujui : { isEditable : true }, 
			tahunProduksi : { isEditable : true }, 
			warna : { isEditable : true }, 
			warnaDisetujui : { isEditable : true }, 
			unitSalesOrderId : { isEditable : true }, 
			hoyuSalesOrderApproval : { isEditable : true }, 
			createdBy : { isEditable : true }, 
			updatedBy : { isEditable : true }, 
		},
		hoyuSalesOrderApprovalList : { 
			unitSalesOrderId : { isEditable : true }, 
			approver : { isEditable : true }, 
			approverDate : { isEditable : true }, 
			approverVrfAmount : { isEditable : true }, 
			extendedTop : { isEditable : true }, 
			topAmount : { isEditable : true }, 
			subsidyAmount : { isEditable : true }, 
			notes : { isEditable : true }, 
			hoyuSalesOrderApproval : { isEditable : true }, 
			createdBy : { isEditable : true }, 
			updatedBy : { isEditable : true }, 
		},
		hoyuSalesOrderAvailableVehicle : { 
			hoyuSalesOrderApproval : { isEditable : true }, 
			availableVehicleId : { isEditable : true }, 
			vin : { isEditable : true }, 
			manufacturingCode : { isEditable : true }, 
			manufacturingYear : { isEditable : true }, 
			color : { isEditable : true }, 
			unitSalesOrderId : { isEditable : true }, 
			createdBy : { isEditable : true }, 
			updatedBy : { isEditable : true }, 
		},
		createdBy : { isEditable : true }, 
		updatedBy : { isEditable : true }, 
		remarks : { isEditable : true }, 
		approvalActionType : { isEditable : true }, 
	},
	init() {
		this._super(...arguments);
		var attachments = this.coreAttachmentData.getList();
		this.set("attachments", attachments);

	},

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

		async saveHoyuSalesOrderApproval() {
			this.set("rightActionInProgress", true);
			this.get('model')
				.validate()
				.then(async ({ validations }) => {
					this.set('didValidate', true); 
					if (validations.get('isValid')) {
						this.set('hoyuSalesOrderApproval.model.isApprovalData', false);
						this.hoyuSalesOrderApprovalData.save(this.hoyuSalesOrderApproval.model).then(response => {
							if (response != undefined) {
								this.transitionToRoute('hoyu-sales-order-approval.detail', response.id); 
							}
						})
						.catch((e) => {
							this.set("rightActionInProgress", false);
							this.set('errorMessages', this.errors.getErrorMessages(e));
						});
					} else {
						this.set("rightActionInProgress", false);
					}
			}); 
		},

		addRowData(modal_type) {
			if (modal_type == "hoyu-sales-order-attachment") {
				let data = this.hoyuSalesOrderAttachmentData.createRecord();
				this.hoyuSalesOrderApproval.addRow(data, "hoyuSalesOrderAttachment");
			}
			if (modal_type == "hoyu-sales-order-competitor") {
				let data = this.hoyuSalesOrderCompetitorData.createRecord();
				this.hoyuSalesOrderApproval.addRow(data, "hoyuSalesOrderCompetitor");
			}
			if (modal_type == "hoyu-sales-order-product-split") {
				let data = this.hoyuSalesOrderProductSplitData.createRecord();
				this.hoyuSalesOrderApproval.addRow(data, "hoyuSalesOrderProductSplit");
			}
			if (modal_type == "hoyu-sales-order-approval-list") {
				let data = this.hoyuSalesOrderApprovalListData.createRecord();
				this.hoyuSalesOrderApproval.addRow(data, "hoyuSalesOrderApprovalList");
			}
			if (modal_type == "hoyu-sales-order-available-vehicle") {
				let data = this.hoyuSalesOrderAvailableVehicleData.createRecord();
				this.hoyuSalesOrderApproval.addRow(data, "hoyuSalesOrderAvailableVehicle");
			}
		},
		deleteRowData(modal_type, data) {
			if (modal_type == "hoyu-sales-order-attachment") {
				this.hoyuSalesOrderApproval.deleteRow(data, "hoyuSalesOrderAttachment");
			}
			if (modal_type == "hoyu-sales-order-competitor") {
				this.hoyuSalesOrderApproval.deleteRow(data, "hoyuSalesOrderCompetitor");
			}
			if (modal_type == "hoyu-sales-order-product-split") {
				this.hoyuSalesOrderApproval.deleteRow(data, "hoyuSalesOrderProductSplit");
			}
			if (modal_type == "hoyu-sales-order-approval-list") {
				this.hoyuSalesOrderApproval.deleteRow(data, "hoyuSalesOrderApprovalList");
			}
			if (modal_type == "hoyu-sales-order-available-vehicle") {
				this.hoyuSalesOrderApproval.deleteRow(data, "hoyuSalesOrderAvailableVehicle");
			}
		},
	},
});