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