This commit is contained in:
2021-06-30 19:55:11 +00:00
parent d31750be19
commit a5d443eade
3 changed files with 122 additions and 48 deletions

View File

@@ -232,6 +232,7 @@
<v-data-table
:headers="headerList"
:items="itemList"
item-key="index"
class="elevation-1"
disable-pagination
disable-filtering
@@ -842,31 +843,90 @@ export default {
vm.formState.readOnly = !vm.rights.change;
window.$gz.eventBus.$on("menu-click", clickHandler);
// //id 0 means create or duplicate to new
// if (vm.$route.params.recordid != 0) {
// //is there already an obj from a prior operation?
// if (this.$route.params.obj) {
// //yes, no need to fetch it
// this.obj = this.$route.params.obj;
// window.$gz.form.setFormState({
// vm: vm,
// loading: false
// });
// } else {
// await vm.getDataFromApi(vm.$route.params.recordid); //let getdata handle loading
// }
// } else {
// window.$gz.form.setFormState({
// vm: vm,
// loading: false
// });
// }
// window.$gz.form.setFormState({
// vm: vm,
// dirty: false,
// valid: true
// });
//---------------------------------
let setDirty = false;
let setValid = true;
//id 0 means create or duplicate to new
if (vm.$route.params.recordid != 0) {
//is there already an obj from a prior operation?
if (this.$route.params.obj) {
//yes, no need to fetch it
this.obj = this.$route.params.obj;
window.$gz.form.setFormState({
vm: vm,
loading: false
});
} else {
await vm.getDataFromApi(vm.$route.params.recordid); //let getdata handle loading
}
} else {
window.$gz.form.setFormState({
vm: vm,
loading: false
});
//Might be a duplicate and contain another record
if (this.$route.params.obj) {
this.obj = this.$route.params.obj;
this.obj.concurrency = undefined;
this.obj.id = 0;
this.obj.serial = 0;
/*
CopyObject.Copy(dbObject, newObject, "Wiki,Serial");
newObject.Id = 0;
newObject.Concurrency = 0;
newObject.Status = PurchaseOrderStatus.OpenNotYetOrdered;
foreach (var item in newObject.Items)
{
item.Id = 0;
item.Concurrency = 0;
item.QuantityReceived = 0;
item.ReceivedCost = 0;
item.ReceivedDate = null;
item.PurchaseOrderId = 0;
item.WorkorderItemPartRequestId = null;
item.PartRequestedById = null;
}
*/
vm.obj.status = 1; // OpenNotYetOrdered = 1,
vm.obj.items.forEach(z => {
z.id = 0;
z.concurrency = undefined;
z.quantityReceived = 0;
z.receivedCost = 0;
z.receivedDate = null;
z.purchaseOrderId = 0;
z.workorderItemPartRequestId = null;
z.partRequestedById = null;
});
setDirty = true;
}
}
window.$gz.form.setFormState({
vm: vm,
dirty: false,
valid: true
loading: false,
dirty: setDirty,
valid: setValid
});
//----------------------------
generateMenu(vm);
} catch (error) {
window.$gz.errorHandler.handleFormError(error, vm);
@@ -1550,42 +1610,53 @@ export default {
window.$gz.errorHandler.handleFormError(error, vm);
}
},
async duplicate() {
let vm = this;
if (!vm.canDuplicate || vm.$route.params.recordid == 0) {
return;
}
window.$gz.form.setFormState({
vm: vm,
loading: true
});
let url = API_BASE_URL + "duplicate/" + vm.$route.params.recordid;
try {
window.$gz.form.deleteAllErrorBoxErrors(vm);
let res = await window.$gz.api.upsert(url);
if (res.error) {
vm.formState.serverError = res.error;
window.$gz.form.setErrorBoxErrors(vm);
} else {
//Navigate to new record
this.$router.push({
name: "inv-purchase-order",
params: {
recordid: res.data.id,
obj: res.data // Pass data object to new form
}
});
duplicate() {
//Navigate to new record
this.$router.push({
name: "inv-purchase-order",
params: {
recordid: 0,
obj: this.obj
}
} catch (ex) {
window.$gz.errorHandler.handleFormError(ex, vm);
} finally {
window.$gz.form.setFormState({
vm: vm,
loading: false
});
}
});
}
// ,
// async duplicate() {
// let vm = this;
// if (!vm.canDuplicate || vm.$route.params.recordid == 0) {
// return;
// }
// window.$gz.form.setFormState({
// vm: vm,
// loading: true
// });
// let url = API_BASE_URL + "duplicate/" + vm.$route.params.recordid;
// try {
// window.$gz.form.deleteAllErrorBoxErrors(vm);
// let res = await window.$gz.api.upsert(url);
// if (res.error) {
// vm.formState.serverError = res.error;
// window.$gz.form.setErrorBoxErrors(vm);
// } else {
// //Navigate to new record
// this.$router.push({
// name: "inv-purchase-order",
// params: {
// recordid: res.data.id,
// obj: res.data // Pass data object to new form
// }
// });
// }
// } catch (ex) {
// window.$gz.errorHandler.handleFormError(ex, vm);
// } finally {
// window.$gz.form.setFormState({
// vm: vm,
// loading: false
// });
// }
// }
//end methods
}
};

View File

@@ -195,10 +195,9 @@ export default {
vm.rights = window.$gz.role.getRights(window.$gz.type.Project);
vm.formState.readOnly = !vm.rights.change;
window.$gz.eventBus.$on("menu-click", clickHandler);
//---------------------------------
let setDirty = false;
let setValid = true;
//id 0 means create or duplicate to new
if (vm.$route.params.recordid != 0) {
//is there already an obj from a prior operation?
@@ -220,13 +219,13 @@ export default {
setDirty = true;
}
}
window.$gz.form.setFormState({
vm: vm,
loading: false,
dirty: setDirty,
valid: setValid
});
//----------------------------
generateMenu(vm);
} catch (error) {
window.$gz.errorHandler.handleFormError(error, vm);