hino / app / services / approval-configuration.js
approval-configuration.js
Raw
import Service from '@ember/service';
import { inject as service } from '@ember/service';

export default Service.extend({
	store: service(),
	approvalInputConfigurationData: service(),
	approvalInputConfigurationDetailData: service(),
	approvalInputConfigurationDetailActionData: service(),
	session: service(),

	init() {
		this._super(...arguments); 
		
    },
    async getDataApprovalConfiguration(formName,sourceSystemNo) {
        return await this.approvalInputConfigurationData.getDataQuery({
            me: true,
			form_name: formName
		}).then(async response => {
			let detailForm = await this.approvalInputConfigurationDetailData.getList({
				filter:{
					"approval_input_configuration_id" : {"id" : response.id}
				},
				per_page: 0,
				form_name: formName
			});
			let detailButton="";
			//var sourceSystemNo = this.get('session.data.so');
			
			if(sourceSystemNo != undefined && sourceSystemNo != null && sourceSystemNo != ""){
				 detailButton = await this.approvalInputConfigurationDetailActionData.getList({
					filter:{
						"approval_input_configuration_id" : {"id" : response.id}
					},
					per_page: 0,
					form_name: formName,
					source_system_no:sourceSystemNo,
					approval_input_configuration_id :response.id,
				});
			}else{
				 detailButton = await this.approvalInputConfigurationDetailActionData.getList({
					filter:{
						"approval_input_configuration_id" : {"id" : response.id}
					},
					per_page: 0,
					form_name: formName
				});

			}
		

			response.set("approval-input-configuration-detail", detailForm);
            response.set("approval-input-configuration-detail-action", detailButton);
            return response;
		});
    },
    async getApprovalConfiguration(formName, flagValue,so) {
		if(flagValue == undefined) {
			flagValue = true;
		}
		let form = await this.getDataApprovalConfiguration(formName,so);
		let formConfig = {
			form : {},
			button : {},
		}

		form.get("approval-input-configuration-detail").forEach(item => {
			if (item.get("formsName") == formName) { 
                let fieldName = item.get("fieldsName");
                let itemFieldName = fieldName.split(".");
                if (itemFieldName.length > 1) {
                    if (formConfig.form[itemFieldName[0]]) {
                        formConfig.form[itemFieldName[0]][itemFieldName[1]] = {
                            isEditable : flagValue, //true,
                        };
                    } else {
                        formConfig.form[itemFieldName[0]] = {};
                        formConfig.form[itemFieldName[0]][itemFieldName[1]] = {
                            isEditable : flagValue, //true,
                        };
                    }
                } else {
                    formConfig.form[fieldName] = {
                        isEditable : flagValue, //true,
                    };
                }
			}
		});
		form.get("approval-input-configuration-detail-action").forEach(item => {
			if (item.get("formsName") == formName) { 
				formConfig.button = {
					isShowAccept: item.isShowAccept,
                    isShowApprove: item.isShowApprove,
                    isShowReject: item.isShowReject,
                    isShowRepropose: item.isShowRepropose,
                    isShowRevise: item.isShowRevise
				};
			}
		});
		return formConfig;
	},
});