import Controller from '@ember/controller'; import { inject as service } from '@ember/service'; export default Controller.extend({ approvalConfiguration: service(), vehicleManagement : service(), vehicleManagementData : service(), brandData : service(), vehicleModelData : service(), vehicleVariantData : service(), subBusinessSegmentData : service(), colorData : service(), fuelTypeData : service(), karoseriTypeData : service(), karoseriData : service(), vehicleBastData : service(), vehicleWarrantyData : service(), vehicleWorkOrderData : service(), businessSegmentData : service(), session : service(), errors : service(), didValidate: false, rightActionInProgress: false, brands: Array(), vehicleModels: Array(), vehicleVariants: Array(), subBusinessSegments: Array(), warnas: Array(), tipeBbms: Array(), karoseriTypes: Array(), karoseris: Array(), businessSegments: Array(), formConfig: false, // formConfig : { // sourceSystemNo : { isEditable : true }, // vin : { isEditable : false }, // vinNumber20 : { isEditable : true }, // brand : { isEditable : true }, // vehicleModel : { isEditable : true }, // vehicleVariant : { isEditable : true }, // vehicleCategory : { isEditable : true }, // noRangka : { isEditable : true }, // noMesin : { isEditable : true }, // tahunPembuatan : { isEditable : true }, // tahunPerakitan : { isEditable : true }, // statusKendaraan : { isEditable : true }, // subBusinessSegment : { isEditable : true }, // warna : { isEditable : true }, // namaKomersil : { isEditable : true }, // manufactureCode : { isEditable : true }, // tipeBbm : { isEditable : true }, // vrfCustomerName : { isEditable : true }, // karoseriType : { isEditable : true }, // karoseri : { isEditable : true }, // keyCode : { isEditable : true }, // kodeRadioTape : { isEditable : true }, // kmTerakhir : { isEditable : true }, // noPlat : { isEditable : true }, // noBpkb : { isEditable : true }, // tanggalBpkb : { isEditable : true }, // noStnk : { isEditable : true }, // tanggalStnk : { isEditable : true }, // kapasitasMesin : { isEditable : true }, // noPoliceFaktur : { isEditable : true }, // vehicleStage : { isEditable : true }, // kodeDealer : { isEditable : true }, // kodeCabang : { isEditable : true }, // namaKaryawan : { isEditable : true }, // tanggalDo : { isEditable : true }, // noVrf : { isEditable : true }, // fromWarehouse : { isEditable : true }, // shipmentNumber : { isEditable : true }, // jenisPengiriman : { isEditable : true }, // tanggalDaftar : { isEditable : true }, // quotationNo : { isEditable : true }, // namaCabang : { isEditable : true }, // namaDealer : { isEditable : true }, // stockStatus : { isEditable : true }, // fakturDateIds : { isEditable : true }, // invoiceNoIds : { isEditable : true }, // kmLastTelematics : { isEditable : true }, // vehicleUniqueIdentifier : { isEditable : true }, // vehicleBast : { // bastId : { isEditable : true }, // vehicleId : { isEditable : true }, // bastNo : { isEditable : true }, // tanggalBastDiterima : { isEditable : true }, // model : { isEditable : true }, // spkNo : { isEditable : true }, // status : { isEditable : true }, // vehicleManagement : { isEditable : true }, // }, // vehicleWarranty : { // warrantyId : { isEditable : true }, // vehicleId : { isEditable : true }, // warrantyRegistrationId : { isEditable : true }, // warrantyRegistrationNumber : { isEditable : true }, // tanggalMulaiPendaftaranWarranty : { isEditable : true }, // statusWarranty : { isEditable : true }, // namaCustomer : { isEditable : true }, // vehicleManagement : { isEditable : true }, // }, // vehicleWorkOrder : { // workOrderId : { isEditable : true }, // vehicleId : { isEditable : true }, // workOrderSysNo : { isEditable : true }, // workOrderNo : { isEditable : true }, // tanggalWorkOrder : { isEditable : true }, // merek : { isEditable : true }, // model : { isEditable : true }, // status : { isEditable : true }, // dealer : { isEditable : true }, // branch : { isEditable : true }, // vehicleManagement : { isEditable : true }, // }, // accountPartyId : { isEditable : true }, // businessSegment : { isEditable : true }, // }, async init() { this._super(...arguments); let formConfig = await this.approvalConfiguration.getApprovalConfiguration("vehicle-management"); this.set("formConfig", formConfig); console.log(formConfig.form.karoseriType); var brands = this.brandData.getList(); this.set("brands", brands); var vehicleModels = this.vehicleModelData.getList(); this.set("vehicleModels", vehicleModels); var vehicleVariants = this.vehicleVariantData.getList(); this.set("vehicleVariants", vehicleVariants); var subBusinessSegments = this.subBusinessSegmentData.getList(); this.set("subBusinessSegments", subBusinessSegments); var warnas = this.colorData.getList(); this.set("warnas", warnas); var tipeBbms = this.fuelTypeData.getList(); this.set("tipeBbms", tipeBbms); var karoseriTypes = this.karoseriTypeData.getList(); this.set("karoseriTypes", karoseriTypes); var karoseris = this.karoseriData.getList(); this.set("karoseris", karoseris); var businessSegments = this.businessSegmentData.getList(); this.set("businessSegments", businessSegments); }, actions: { onChangeCombo(propertyName, item) { this.set(propertyName, item); }, async saveVehicleManagement() { this.set("rightActionInProgress", true); this.get('model') .validate() .then(async ({ validations }) => { this.set('didValidate', true); if (validations.get('isValid')) { this.set('vehicleManagement.model.isApprovalData', false); this.vehicleManagementData.save(this.vehicleManagement.model).then(response => { if (response != undefined) { this.transitionToRoute('vehicle-management.detail', response.id); this.set("rightActionInProgress", false); } }) .catch((e) => { this.set("rightActionInProgress", false); this.set('errorMessages', this.errors.getErrorMessages(e)); window.scrollTo(0, 0); }); } else { this.set("rightActionInProgress", false); } }); }, addRowData(modal_type) { if (modal_type == "vehicle-bast") { let data = this.vehicleBastData.createRecord(); this.vehicleManagement.addRow(data, "vehicleBast"); } if (modal_type == "vehicle-warranty") { let data = this.vehicleWarrantyData.createRecord(); this.vehicleManagement.addRow(data, "vehicleWarranty"); } if (modal_type == "vehicle-work-order") { let data = this.vehicleWorkOrderData.createRecord(); this.vehicleManagement.addRow(data, "vehicleWorkOrder"); } }, deleteRowData(modal_type, data) { if (modal_type == "vehicle-bast") { this.vehicleManagement.deleteRow(data, "vehicleBast"); } if (modal_type == "vehicle-warranty") { this.vehicleManagement.deleteRow(data, "vehicleWarranty"); } if (modal_type == "vehicle-work-order") { this.vehicleManagement.deleteRow(data, "vehicleWorkOrder"); } }, }, });