From 1c6b6716dce674ee9431c4e06c40cee99521a978 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Fri, 20 Aug 2021 23:12:37 +0000 Subject: [PATCH] --- ayanova/devdocs/todo.txt | 65 +++++++---------------------- ayanova/src/api/gzutil.js | 2 +- ayanova/src/views/cust-customer.vue | 20 +++++++++ ayanova/src/views/inv-part.vue | 20 +++++++++ ayanova/src/views/svc-loaner.vue | 44 +++++++++++++------ ayanova/src/views/svc-project.vue | 20 +++++++++ ayanova/src/views/svc-unit.vue | 20 +++++++++ 7 files changed, 128 insertions(+), 63 deletions(-) diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index cba7973c..7f35656f 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -24,16 +24,7 @@ Aug notification of multiple however the fuck that works test notification - migrate woitem loan not tagging loan units?? - migrate users not tagged with vendorid if subcontractor or ho/custid if customer type user? - migrate region and global wiki specifically: - ### Global Wiki - v8 does not have a Global Wiki page (the Wiki page formerly accessible from the opening screen in AyaNova 7), the export will move the Wiki and any embedded files to a User account created just to contain it's Wiki and attached files named "V7_EXPORT_GLOBAL_REPOSITORY". - - ### Region Wiki - v8 does not have Regions, all functionality previously in Regions will be split out into several new and changed objects. - The Region Wiki if found will be exported to a User account created just to hold the Wiki and files named ""V7_REGION_WIKI_REPOSITORY_region name" - + po workorderitempart request selection dialog missing stubbed out as todo where you select part requests that are open to order Update all dependencies here @@ -87,49 +78,17 @@ TODO: Need stress test for client that can generate workorders in parallel for ## V8MIGRATE +migrate woitem loan not tagging loan units?? + migrate users not tagged with vendorid if subcontractor or ho/custid if customer type user? + migrate region and global wiki specifically: + ### Global Wiki + v8 does not have a Global Wiki page (the Wiki page formerly accessible from the opening screen in AyaNova 7), the export will move the Wiki and any embedded files to a User account created just to contain it's Wiki and attached files named "V7_EXPORT_GLOBAL_REPOSITORY". -note: Inventory Migration plan - Turn off inventory, import all closed workorders - Turn on inventory - import all open workorders and inventory to cover at same time - adjust inventory to match v7 - - migrate inventory added to v8migrate as final step of export; code it based on balances and also insert serials etc - it checks the balances in v8 then compares to v7 then issues an adjustment to bring into sync - this way (last thing) we are always covered no matter what happens with wo import etc + ### Region Wiki + v8 does not have Regions, all functionality previously in Regions will be split out into several new and changed objects. + The Region Wiki if found will be exported to a User account created just to hold the Wiki and files named ""V7_REGION_WIKI_REPOSITORY_region name" -todo:1 IMPORT workorders FROM V7 needs to be coded once the cases are completed so it can be tested thoroughly and ongoing - note that v7 wostatus needs to be dual imported into both new wostate and new woitemstatus separately - - - -todo: Import pm switched to negative generate day of week collection from v7 single chosen dow so flip that on import and block out all days but the selected day and they can adjust if they wish - new format is a string of up to 7 characters indicating weekday number, from 1 through 7, beginning with Monday and ending with Sunday. - or since it's not written yet it might also be a postgres array, not going to be queried as it's c# code that uses it so it's really down to storage and ui factors - - -todo:1 Need a way to diagnose fail to migrate for remote user's db, there will be a lot of initial issues importing for people until we hit all the edge cases so... - any fail of migration of an item of any kind needs to log the full object being attempted to save - we need enough info to figure out what went wrong without needing to see the entire db - exception handler should log full object being sent over the wire on fail - Also a separate plan is to have it log to v8 so we can then login to v8 remotely and see what the error was - but that's a future possibility thing, probably not as important as just logging to the same error log - -todo:1 custom fields field names are not coming across, still show "Custom 1" when shoudl show whatever is set -todo:1 assigned doc not found text has too many newlines in it, should just sit on one line in exported notes -todo:2 dirty big test again with contracts etc -todo:1 v8 migrate additions - Erase DB warning must be very distinctive like bright yellow and red with crossbones etc - Report sent *to* the new server upon completion (any state) via MEMO to superuser - should send the entire contents of the output screen error or not as it will contain useful info like dupes not exported etc - Duplicate id not exported - found this in the wild with 4a database 4 workorders not exported due to this - message doesn't clearly say that number was exported already - is there a way to still export them? - Is it possible to login during migrate to the v8 server? - Need a running count per item, I have the total at the start so it should show what item it is currently processing of that count like 50/1000 or something -todo:1 workorders - need to set billing and service address from customers on migrate @@ -900,6 +859,12 @@ BUILD CHANGES OF NOTE BUILD 124 +- Customer form implemented menu links to quotes and pms +- Unit form implemented menu links to quotes and pms +- Loan unit form added links to quotes and pms and implemented all +- Part form implemented menu links to quotes and pms +- Project form implemented menu links to quotes and pms +- fixed incorrect icon for Project type when filtered by Project on workorder/quote/pm lists - Unit meter reading implemented Accessed from Unit form as well as work order item Unit area of work order form Unit report data has last meter reading and last meter reading date and last meter reading notes viz fields added diff --git a/ayanova/src/api/gzutil.js b/ayanova/src/api/gzutil.js index f44df167..1d70101f 100644 --- a/ayanova/src/api/gzutil.js +++ b/ayanova/src/api/gzutil.js @@ -470,7 +470,7 @@ export default { case window.$gz.type.PMTemplateItem: return "$ayiStamp"; case window.$gz.type.Project: - return "$ayiLayerGroup"; + return "$ayiProjectDiagram"; case window.$gz.type.PurchaseOrder: return "$ayiTruckLoading"; case window.$gz.type.Quote: diff --git a/ayanova/src/views/cust-customer.vue b/ayanova/src/views/cust-customer.vue index 59e7d1a8..2e8b72c9 100644 --- a/ayanova/src/views/cust-customer.vue +++ b/ayanova/src/views/cust-customer.vue @@ -1405,6 +1405,26 @@ async function clickHandler(menuItem) { } }); break; + case "QuoteList": + m.vm.$router.push({ + name: "svc-quotes", + params: { + aType: m.vm.ayaType, + objectId: m.vm.obj.id, + name: m.vm.obj.name + } + }); + break; + case "PMList": + m.vm.$router.push({ + name: "svc-pms", + params: { + aType: m.vm.ayaType, + objectId: m.vm.obj.id, + name: m.vm.obj.name + } + }); + break; case "UnitList": m.vm.$router.push({ name: "svc-units", diff --git a/ayanova/src/views/inv-part.vue b/ayanova/src/views/inv-part.vue index 031575c1..7319bc6a 100644 --- a/ayanova/src/views/inv-part.vue +++ b/ayanova/src/views/inv-part.vue @@ -738,6 +738,26 @@ async function clickHandler(menuItem) { } }); break; + case "QuoteList": + m.vm.$router.push({ + name: "svc-quote-item-parts", + params: { + aType: m.vm.ayaType, + objectId: m.vm.obj.id, + name: m.vm.obj.partNumber + } + }); + break; + case "PMList": + m.vm.$router.push({ + name: "svc-pm-item-parts", + params: { + aType: m.vm.ayaType, + objectId: m.vm.obj.id, + name: m.vm.obj.partNumber + } + }); + break; default: window.$gz.eventBus.$emit( "notify-warning", diff --git a/ayanova/src/views/svc-loaner.vue b/ayanova/src/views/svc-loaner.vue index d35f423f..41c75573 100644 --- a/ayanova/src/views/svc-loaner.vue +++ b/ayanova/src/views/svc-loaner.vue @@ -822,6 +822,26 @@ async function clickHandler(menuItem) { } }); break; + case "QuoteList": + m.vm.$router.push({ + name: "svc-quote-item-units", + params: { + aType: m.vm.ayaType, + objectId: m.vm.obj.id, + name: m.vm.obj.name + } + }); + break; + case "PMList": + m.vm.$router.push({ + name: "svc-pm-item-units", + params: { + aType: m.vm.ayaType, + objectId: m.vm.obj.id, + name: m.vm.obj.name + } + }); + break; default: window.$gz.eventBus.$emit( "notify-warning", @@ -920,19 +940,19 @@ function generateMenu(vm) { vm: vm }); - // menuOptions.menuItems.push({ - // title: "QuoteList", - // icon: "$ayiPencilAlt", - // key: FORM_KEY + ":QuoteList", - // vm: vm - // }); + menuOptions.menuItems.push({ + title: "QuoteList", + icon: "$ayiPencilAlt", + key: FORM_KEY + ":QuoteList", + vm: vm + }); - // menuOptions.menuItems.push({ - // title: "PMList", - // icon: "$ayiBusinessTime", - // key: FORM_KEY + ":PMList", - // vm: vm - // }); + menuOptions.menuItems.push({ + title: "PMList", + icon: "$ayiBusinessTime", + key: FORM_KEY + ":PMList", + vm: vm + }); //--- /show all --- menuOptions.menuItems.push({ divider: true, inset: false }); diff --git a/ayanova/src/views/svc-project.vue b/ayanova/src/views/svc-project.vue index 8432e5b0..9f0d9bc3 100644 --- a/ayanova/src/views/svc-project.vue +++ b/ayanova/src/views/svc-project.vue @@ -557,6 +557,26 @@ async function clickHandler(menuItem) { } }); break; + case "QuoteList": + m.vm.$router.push({ + name: "svc-quotes", + params: { + aType: m.vm.ayaType, + objectId: m.vm.obj.id, + name: m.vm.obj.name + } + }); + break; + case "PMList": + m.vm.$router.push({ + name: "svc-pms", + params: { + aType: m.vm.ayaType, + objectId: m.vm.obj.id, + name: m.vm.obj.name + } + }); + break; default: window.$gz.eventBus.$emit( "notify-warning", diff --git a/ayanova/src/views/svc-unit.vue b/ayanova/src/views/svc-unit.vue index c1ffe644..9fd5a2a0 100644 --- a/ayanova/src/views/svc-unit.vue +++ b/ayanova/src/views/svc-unit.vue @@ -1281,6 +1281,26 @@ async function clickHandler(menuItem) { } }); break; + case "QuoteList": + m.vm.$router.push({ + name: "svc-quote-item-units", + params: { + aType: m.vm.ayaType, + objectId: m.vm.obj.id, + name: m.vm.obj.serial + } + }); + break; + case "PMList": + m.vm.$router.push({ + name: "svc-pm-item-units", + params: { + aType: m.vm.ayaType, + objectId: m.vm.obj.id, + name: m.vm.obj.serial + } + }); + break; default: window.$gz.eventBus.$emit( "notify-warning",