hino / app / routes / hoyu-sales-order-approval / approval.js
approval.js
Raw
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';

import BaseRoute from 'hino-hearts/routes/base';

export default BaseRoute.extend({
	hoyuSalesOrderApproval: service(),
	hoyuSalesOrderApprovalData: service(),
	hoyuSalesOrderAttachmentData: service(),
	hoyuSalesOrderCompetitorData: service(),
	hoyuSalesOrderProductSplitData: service(),
	hoyuSalesOrderApprovalListData: service(),
	hoyuSalesOrderAvailableVehicleData: service(),
	store: service(),
	approvalInboxData: service(),
	session: service(),
	accountManagementData: service(),
	approvalConfiguration: service(),
	approvalInputConfigurationDetailActionData: service(),



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

	model(params) {
		//penambahan untuk account 
		this.set('session.data.prevDetailAccount', 'hoyu-sales-order-approval.approval');
		this.set('session.data.prevDetailAccountId', params.id);
		this.hoyuSalesOrderApproval.setModel(null);
		var _this = this;

		let data = this.hoyuSalesOrderApprovalData.getData(params.id, { include: 'hoyu-sales-order-attachment,hoyu-sales-order-competitor,hoyu-sales-order-product-split,hoyu-sales-order-approval-list,hoyu-sales-order-available-vehicle,karoseri-type,color,payment-type' }, { reload: true })
		data.then(async response => {
			if(response.approvalLevel=="BRANCH_MANAGER_ACCEPTANCE"){
				response.set("approvalActionType", "accept");
			}else{
				response.set("approvalActionType", "approve");
			}

			

			//penambahan untuk account 
			// var filter = "\"source_system_no\" : {\"eq\" : \"" +response.accountPartyId + "\"}";
			// 	filter = '{' + filter + '}';
			// 	filter = JSON.parse(filter);
			// var account=this.accountManagementData.getList({filter: filter});
			// var idAccount ="";
			// if(account != null && account != undefined && account != ""){

			// 	account.forEach(item => {
			// 		this.set('idAccount',item.id);
			// 	});
			// 	//console.log(this.get('idAccount'));
			// }

			if (response.subsidiDiberikan == "YES") {
				this.set('hoyuSalesOrderApproval.statusSubsidi', { id: 'YES', name: 'YES' });
			} else if (response.subsidiDiberikan == "NO") {
				this.set('hoyuSalesOrderApproval.statusSubsidi', { id: 'NO', name: 'NO' });
			} else {
				this.set('hoyuSalesOrderApproval.statusSubsidi', '');
			}
			if (response.perpanjanganTopYangDiberikan == "Y") {
				this.set('hoyuSalesOrderApproval.statusTOP', { id: 'Y', name: 'YES' });
			} else {
				this.set('hoyuSalesOrderApproval.statusTOP', { id: 'N', name: 'NO' });
			}

			if (response.hargaTerkunci == "YES") {
				this.set('hoyuSalesOrderApproval.statusHarga', { id: 'YES', name: 'YES' });
			} else {
				this.set('hoyuSalesOrderApproval.statusHarga', { id: 'NO', name: 'NO' });
			}

			if (response.permintaanSubsidi == "YES") {
				this.set('hoyuSalesOrderApproval.statusPermintaan', { id: 'YES', name: 'YES' });
			} else {
				this.set('hoyuSalesOrderApproval.statusPermintaan', { id: 'NO', name: 'NO' });
			}
			this.hoyuSalesOrderApproval.setModel(response);

			// get inbox versi terakhir
			let inbox = this.approvalInboxData.getData(response.sourceSystemNo, { adapterOptions: { query: { last_inbox: true, doc_type: 'HOYU_SALES_ORDER_APPROVAL' } } });
			this.hoyuSalesOrderApproval.setInbox(inbox);
			//mengambil button
			let detailButton = await this.approvalInputConfigurationDetailActionData.getList({
				
				per_page: 0,
				form_name: "hoyu-sales-order-approval",
				source_system_no:response.sourceSystemNo,
				hoyu_sales_order : "true",
				
			});
			let config =detailButton.get("firstObject");
			//let config =  this.approvalConfiguration.getApprovalConfiguration("hoyu-sales-order-approval",true,response.sourceSystemNo);
			console.log(config);
			this.hoyuSalesOrderApproval.setConfig(config);
			
			this.hoyuSalesOrderAttachmentData.getList({ include: 'hoyu-sales-order-approval,core-attachment', filter: { "hoyuSalesOrderApproval": { "id": response.id } } }).then(responseDetail => {

				this.hoyuSalesOrderApproval.clearDetail("hoyuSalesOrderAttachment");
				responseDetail.forEach(item => {
					this.hoyuSalesOrderApproval.addRow(item, "hoyuSalesOrderAttachment");
				});
			});
			this.hoyuSalesOrderCompetitorData.getList({ include: 'hoyu-sales-order-approval', filter: { "hoyuSalesOrderApproval": { "id": response.id } } }).then(responseDetail => {

				this.hoyuSalesOrderApproval.clearDetail("hoyuSalesOrderCompetitor");
				responseDetail.forEach(item => {
					this.hoyuSalesOrderApproval.addRow(item, "hoyuSalesOrderCompetitor");
				});
			});
			this.hoyuSalesOrderProductSplitData.getList({ include: 'hoyu-sales-order-approval', filter: { "hoyuSalesOrderApproval": { "id": response.id } } }).then(responseDetail => {

				this.hoyuSalesOrderApproval.clearDetail("hoyuSalesOrderProductSplit");
				responseDetail.forEach(item => {
					this.hoyuSalesOrderApproval.addRow(item, "hoyuSalesOrderProductSplit");
				});
			});
			this.hoyuSalesOrderApprovalListData.getList({ include: 'hoyu-sales-order-approval', filter: { "hoyuSalesOrderApproval": { "id": response.id } } }).then(responseDetail => {

				this.hoyuSalesOrderApproval.clearDetail("hoyuSalesOrderApprovalList");
				responseDetail.forEach(item => {
					this.hoyuSalesOrderApproval.addRow(item, "hoyuSalesOrderApprovalList");
				});
			});
			this.hoyuSalesOrderAvailableVehicleData.getList({ include: 'hoyu-sales-order-approval', filter: { "hoyuSalesOrderApproval": { "id": response.id } } }).then(responseDetail => {

				this.hoyuSalesOrderApproval.clearDetail("hoyuSalesOrderAvailableVehicle");
				responseDetail.forEach(item => {
					this.hoyuSalesOrderApproval.addRow(item, "hoyuSalesOrderAvailableVehicle");
				});
			});
			return response;
		});

		this.set('data', data);
		return { data: data };
	},

	setupController(controller, model) {
		this._super(...arguments);
		controller.set('model', this.get('data'));
		controller.set('errorMessages', null);
		//controller.set('idAccount', this.get('idAccount'));

	},

	templateName: 'hoyu-sales-order-approval/input-approval'
});