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

export default Controller.extend({
	hoyuSalesOrderApproval: service(),
	hoyuSalesOrderApprovalData: service(),
	coreAttachmentData: service(),
	hoyuSalesOrderAttachmentData: service(),
	hoyuSalesOrderCompetitorData: service(),
	hoyuSalesOrderProductSplitData: service(),
	hoyuSalesOrderApprovalListData: service(),
	hoyuSalesOrderAvailableVehicleData: service(),
	lostOrderReason: service(),
	lostOrderReasonData: service(),
	errors: service(),
	approvalConfiguration: service(),
	didValidate: false,
	formConfig: false,
	apiURL: null,
	attachments: Array(),
	lostOrderReasons: Array(),
	unitSalesOrderData: service(),
	karoseriTypeData: service(),
	colorData: service(),
	paymentTypeData: service(),
	so:'',
	session: service(),


	async init() {
		this._super(...arguments);
		//var so = this.get('session.data.so');
		var attachments = this.coreAttachmentData.getList();
		this.set("attachments", attachments);

		let lostOrderReasons = await this.lostOrderReasonData.getList();
		this.set("lostOrderReasons", lostOrderReasons);

		let tipeKaroseris = await this.karoseriTypeData.getList();
		this.set("tipeKaroseris", tipeKaroseris);

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

		let tipePembayarans = await this.paymentTypeData.getList();
		this.set("tipePembayarans", tipePembayarans);
		//alert(this.get('model.sourceSystemNo'));
		var so = this.get('model.sourceSystemNo');
		
		let formConfig = await this.approvalConfiguration.getApprovalConfiguration("hoyu-sales-order-approval",true,so);
		this.set("formConfig", formConfig);

		// untuk replace br menjadi enter
		if (formConfig.form.dealerNotes) {
			if (formConfig.form.dealerNotes.isEditable) {
				let dDealerNotes = this.get('hoyuSalesOrderApproval.model.dealerNotes');
				let rpDealearNotes = dDealerNotes.replace("<br />", "\r\n");
				this.set('hoyuSalesOrderApproval.model.dealerNotes', rpDealearNotes);
			}
		}
		if (formConfig.form.hmsiNotes) {
			if (formConfig.form.hmsiNotes.isEditable) {
				let dHmsiNotes = this.get('hoyuSalesOrderApproval.model.hmsiNotes');
				let rpHmsiNotes = dHmsiNotes.replace("<br />", "\r\n");
				this.set('hoyuSalesOrderApproval.model.hmsiNotes', rpHmsiNotes);
			}
		}
		if (formConfig.form.notes) {
			if (formConfig.form.notes.isEditable) {
				let dNotes = this.get('hoyuSalesOrderApproval.model.notes');
				let rpNotes = dNotes.replace("<br />", "\r\n");
				this.set('hoyuSalesOrderApproval.model.notes', rpNotes);
			}
		}


		this.set('apiURL', ENV.APP.api.downloadPath);

		let statuss = [
			{ id: 'YES', name: 'YES' },
			{ id: 'NO', name: 'NO' },
		];

		let statusPerpanjanganTOP = [
			{ id: 'Y', name: 'YES' },
			{ id: 'N', name: 'NO' },
		];
		this.set("subsidiDiberikans", statuss);

		this.set("hargaTerkuncis", statuss);

		this.set("permintaanSubsidis", statuss);

		this.set("perpanjanganTopYangDiberikans", statusPerpanjanganTOP);



	},




	actions: {
		onChangeCombo(propertyName, itemCollection) {
			this.set(propertyName, itemCollection);
			this.set('hoyuSalesOrderApproval.model.subsidiDiberikan', this.hoyuSalesOrderApproval.statusSubsidi.id);
			this.set('hoyuSalesOrderApproval.model.perpanjanganTopYangDiberikan', this.hoyuSalesOrderApproval.statusTOP.id);
			this.set('hoyuSalesOrderApproval.model.permintaanSubsidi', this.hoyuSalesOrderApproval.statusPermintaan.id);
		},

		setComboHargaTerkunci(propertyName, itemCollection) {
			let data = this.set('hoyuSalesOrderApproval.model.hargaTerkunci', this.hoyuSalesOrderApproval.statusHarga.id);

		},

		onFocusOut() {
		},

		updateUnitSalesOrder() {
			this.get('model')
			let newData = {};
			newData = this.get('hoyuSalesOrderApproval.model');
			this.set('hoyuSalesOrderApproval.isLoading', true);
			this.unitSalesOrderData.getData(newData.sourceSystemNo, { adapterOptions: { query: { subsidyC: newData.permintaanSubsidi, requestedExtendedTopC: newData.permintaanPerpanjanganTop, grantedExtendedTopC: newData.perpanjanganTopYangDiberikan, grantedSubsidyC: newData.subsidiDiberikan, priceLockedC: newData.hargaTerkunci, approvalVrfAmountC: newData.jumlahVrfYangDisetujui, mode: 1, jenisOrder: newData.jenisOrder } }, reload: true }).then(response => {
				if (response != undefined) {
					this.hoyuSalesOrderApproval.model.set('jumlahTopPerpanjangan', response.get('requestedExtendedTopC'));
					this.hoyuSalesOrderApproval.model.set('totalDiskon', response.get('totalDiscountDoC'));
					this.hoyuSalesOrderApproval.model.set('totalHarga', response.get('totalPriceDoC'));
					this.set('hoyuSalesOrderApproval.isLoading', false);
				}



			}).catch((e) => {
				this.set('errorMessages', this.errors.getErrorMessages(e));
				window.scrollTo(0, 0);
				this.set('hoyuSalesOrderApproval.isLoading', false);
			});


		},


		async saveHoyuSalesOrderApproval() {
			this.hoyuSalesOrderApproval.model
				.validate()
				.then(({ validations }) => {
					this.set('didValidate', true);
					if (validations.get('isValid')) {
						this.set('hoyuSalesOrderApproval.model.isApprovalData', true);
						this.hoyuSalesOrderApprovalData.save(this.hoyuSalesOrderApproval.model).then(response => {
							if (response != undefined) {
								this.transitionToRoute('inbox.inbox-approval-hoyu', 'HOYU_SALES_ORDER_APPROVAL');
							}
						})
							.catch((e) => {
								this.set('errorMessages', this.errors.getErrorMessages(e));
								window.scrollTo(0, 0);
							});
					}
				});
		},

		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");
			}
		},
	},
});