diff --git a/ayanova/src/views/svc-workorder.vue b/ayanova/src/views/svc-workorder.vue index acf5a596..c031c683 100644 --- a/ayanova/src/views/svc-workorder.vue +++ b/ayanova/src/views/svc-workorder.vue @@ -373,7 +373,6 @@ export default { z.outsideServices.forEach((x, index) => (x.uid = index)); }); - console.log("getdata items indexed:", vm.obj.items); //modify the menu as necessary generateMenu(vm); //update which areas are available to user @@ -642,7 +641,7 @@ async function saveHeader(vm) { let res = await window.$gz.api.upsert(`${API_BASE_URL}`, headerOnly); if (res.error) { if (isPost) { - handleSaveError(res.error, true); + handleSaveError({ fatal: true, error: res.error }); } } else { //update any server changed fields @@ -673,7 +672,7 @@ async function saveState(vm) { //it's new so save it let res = await window.$gz.api.upsert(`${API_BASE_URL}states`, o); if (res.error) { - handleSaveError(res.error); + handleSaveError({ error: res.error }); } else { vm.obj.states[i] = res.data; @@ -688,7 +687,6 @@ async function saveState(vm) { // ITEMS // async function deleteItems(vm) { - //TODO: MUST OPERATE IN SEQUENCE ORDER TO MATCH VIEW //walk the array backwards as items may or may not be spliced out for (var i = vm.obj.items.length - 1; i >= 0; i--) { const d = vm.obj.items[i]; @@ -697,7 +695,7 @@ async function deleteItems(vm) { } let res = await window.$gz.api.remove(`${API_BASE_URL}items/${d.id}`); if (res.error) { - handleSaveError({ fatal: true, error: res.error, itemIndex: i }); + handleSaveError({ error: res.error, itemUid: d.uid }); } else { vm.obj.items.splice(i, 1); } @@ -713,7 +711,6 @@ async function saveItems(vm, err) { } //SAVE WOITEMS - //TODO: MUST OPERATE IN SEQUENCE ORDER TO MATCH VIEW for (let i = 0; i < vm.obj.items.length; i++) { //get copy of item without child collections for independant submit const { @@ -733,7 +730,7 @@ async function saveItems(vm, err) { const isPost = o.id == 0; let res = await window.$gz.api.upsert(`${API_BASE_URL}items`, o); if (res.error) { - handleSaveError({ error: res.error, itemIndex: i }); + handleSaveError({ error: res.error, itemUid: o.uid }); if (isPost) { //a post error precludes further operations on this item below //however, an update error doesn't necessarily because it's still a existing workorder item @@ -762,14 +759,12 @@ async function saveItems(vm, err) { } //------ //save grandchildren - err = await saveScheduledUsers(vm, i, err); - if (err.fatal) { - return err; + if (!this.saveResult.fatal) { + await saveScheduledUsers(vm, i); } //todo: other grandchildren //------ } - return err; //made it through } //#################################################################################### //## GRANDCHILDREN @@ -868,10 +863,10 @@ function handleSaveError(e) { } * */ - if (this.errors == null) { - this.errors = []; + if (this.saveResult.errors == null) { + this.saveResult.errors = []; } - this.errors.push(e); + this.saveResult.errors.push(e); } function formErrorFromSaveResult() {