This commit is contained in:
@@ -149,7 +149,7 @@ export default {
|
||||
longitude: null,
|
||||
items: [],
|
||||
states: [],
|
||||
isDirty: false,
|
||||
isDirty: true,
|
||||
isLockedAtServer: false
|
||||
},
|
||||
formState: {
|
||||
@@ -613,11 +613,14 @@ async function saveHeader(vm) {
|
||||
if (!vm.obj.isDirty) {
|
||||
return true;
|
||||
}
|
||||
let isPost = vm.obj.id == 0;
|
||||
const clone = { items: undefined, states: undefined, ...vm.obj };
|
||||
const isPost = vm.obj.id == 0;
|
||||
|
||||
console.log("CLONING RESULT:", { obj: vm.obj, clone: clone });
|
||||
let res = await window.$gz.api.upsert(`${API_BASE_URL}`, vm.obj);
|
||||
//the purpose of this is to remove the child collections so only the header itself is submitted
|
||||
//this was the cleanest way I could find to accomplish this
|
||||
//https://stackoverflow.com/a/58206483/8939
|
||||
const { items: removedKey1, states: removedKey2, ...headerOnly } = vm.obj;
|
||||
|
||||
let res = await window.$gz.api.upsert(`${API_BASE_URL}`, headerOnly);
|
||||
if (res.error) {
|
||||
displayResError(vm, res);
|
||||
return false;
|
||||
@@ -687,11 +690,23 @@ async function saveItems(vm) {
|
||||
}
|
||||
|
||||
for (let i = 0; i < totalItems; i++) {
|
||||
let o = vm.obj.items[i];
|
||||
// console.log("checking for save item: ", { item: o, index: i });
|
||||
// let o = vm.obj.items[i];
|
||||
//get item only without children
|
||||
const {
|
||||
expenses: removedKey1,
|
||||
labors: removedKey2,
|
||||
loans: removedKey3,
|
||||
parts: removedKey4,
|
||||
partRequests: removedKey5,
|
||||
scheduledUsers: removedKey6,
|
||||
tasks: removedKey7,
|
||||
travels: removedKey8,
|
||||
units: removedKey9,
|
||||
outsideServices: removedKey10,
|
||||
...o
|
||||
} = vm.obj.items[i];
|
||||
if (o.isDirty) {
|
||||
// console.log("Is dirty, saving now for ", i);
|
||||
let isPost = o.id == 0;
|
||||
const isPost = o.id == 0;
|
||||
let res = await window.$gz.api.upsert(`${API_BASE_URL}items`, o);
|
||||
if (res.error) {
|
||||
displayResError(vm, res);
|
||||
@@ -699,15 +714,17 @@ async function saveItems(vm) {
|
||||
} else {
|
||||
//update any server changed fields
|
||||
//put fields
|
||||
o.concurrency = res.data.concurrency;
|
||||
o.isDirty = false;
|
||||
vm.obj.items[i].concurrency = res.data.concurrency;
|
||||
vm.obj.items[i].isDirty = false;
|
||||
|
||||
//fields to update if post
|
||||
if (isPost) {
|
||||
o.id = res.data.id;
|
||||
o.workorderId = res.data.workorderId;
|
||||
vm.obj.items[i].id = res.data.id;
|
||||
vm.obj.items[i].workorderId = res.data.workorderId;
|
||||
//walk all unsaved children and set the workorder id so they can save
|
||||
o.scheduledUsers.forEach(z => (z.workorderItemId = o.id));
|
||||
vm.obj.items[i].scheduledUsers.forEach(
|
||||
z => (z.workorderItemId = vm.obj.items[i].id)
|
||||
);
|
||||
//todo: other grandchildren
|
||||
}
|
||||
}
|
||||
@@ -753,7 +770,7 @@ async function saveScheduledUsers(vm, woitemindex) {
|
||||
for (let i = 0; i < totalItems; i++) {
|
||||
let o = vm.obj.items[woitemindex].scheduledUsers[i];
|
||||
if (o.isDirty) {
|
||||
let isPost = o.id == 0;
|
||||
const isPost = o.id == 0;
|
||||
let res = await window.$gz.api.upsert(
|
||||
`${API_BASE_URL}items/scheduledusers`,
|
||||
o
|
||||
|
||||
Reference in New Issue
Block a user