import Service from '@ember/service'; export default Service.extend({ model : null, init() { this._super(...arguments); }, setModel(data) { this.set("model", data); }, addRow(data, property_name) { let datas = new Array(); let prevData = this.get("model." + property_name); if (prevData != null) { prevData.pushObject(data); datas = prevData; } else { datas.pushObject(data); } this.set("model." + property_name, datas); }, deleteRow(data, property_name) { let prevData = this.get("model." + property_name); prevData.removeObject(data); this.set("model." + property_name, prevData); }, clearDetail(property_name) { this.set("model." + property_name, new Array()); }, buildFilter() { let filter = ''; let role_management_dealers = this.get('model.roleManagementDealer'); let dealers = Array(); role_management_dealers.forEach(element => { let dealer_id = element.dealer.get('id'); if(!dealers.includes(dealer_id)) { dealers.push(dealer_id); if (filter != "") filter = filter + ","; filter += dealer_id; } }); filter = "\"dealer\" : {\"in\" : \"" + filter + "\"}"; return filter; }, refreshBranches() { let role_management_dealers = this.get('model.roleManagementDealer'); let role_management_dealers_branch = this.get('model.roleManagementDealerBranch'); let dealerToBeDeleted = Array(); let dealers = Array(); // ambil daftar dealer yang ada di combobox DEALER role_management_dealers.forEach(element => { let dealer_id = element.dealer.get('id'); if(!dealers.includes(dealer_id)) { dealers.push(dealer_id); dealerToBeDeleted.push(dealer_id); } }); // ambil sermua dealerToBeDeleted, jika ditemukan skip, jika tidak maka delete role_management_dealers_branch.forEach(element => { if(element != undefined) { if(element.branch != undefined) { if(element.branch.get('dealersId') != undefined) { let dealer_id = element.branch.get('dealersId') + ""; if(!dealerToBeDeleted.includes(dealer_id)) { role_management_dealers_branch.removeObject(element); } } } } }); this.set("model.roleManagementDealerBranch", role_management_dealers_branch); } });