From 11f9aa87c2a54c99737c08229f519b5c69dfd501 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 3 Mar 2022 19:25:18 +0000 Subject: [PATCH] --- ayanova/devdocs/todo.txt | 44 +-- ayanova/src/api/dash-registry.js | 23 ++ .../dash-workorder-by-status-list.vue | 265 ++++++++++++++++++ ayanova/src/views/home-dashboard.vue | 4 +- 4 files changed, 299 insertions(+), 37 deletions(-) create mode 100644 ayanova/src/components/dash-workorder-by-status-list.vue diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index 26a28a43..145ab8c7 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -53,44 +53,13 @@ Should LIST types have a fixed limit of maximum records returned?? - Widgets to make for beta in order of priority **MUST HAVE*** - - BAR Count of wo within each status by time period / tags - shows all status types that are in the data returned only, not *all* status though I think it does that automatically - future: click on status bar it opens a filtered list of all wo by that status - -SELECT COUNT(AWORKORDER.ID) Y,DATE_TRUNC('month', AWORKORDER.createddate) X, aworkorder.laststatusid Z -FROM AWORKORDER -LEFT JOIN AWORKORDERSTATUS ON (AWORKORDER.LASTSTATUSID = AWORKORDERSTATUS.ID) -WHERE AWORKORDER.createddate >'2022-01-01T07:59:59.9990000Z' AND AWORKORDER.createddate <'2023-01-01T08:00:00.0000000Z' -GROUP BY Z, X -ORDER BY X ASC - - - - BAR same as above?? but by % wo within each status by time range / tags - this will show the state of things overall - - WITH SUBQ AS - (SELECT COUNT(AWORKORDER.ID) WOCOUNT, DATE_TRUNC('month', AWORKORDER.CREATEDDATE) X, - AWORKORDER.LASTSTATUSID Z - FROM AWORKORDER - LEFT JOIN AWORKORDERSTATUS ON (AWORKORDER.LASTSTATUSID = AWORKORDERSTATUS.ID) - WHERE AWORKORDER.CREATEDDATE > '2022-01-01T07:59:59.9990000Z' - AND AWORKORDER.CREATEDDATE < '2023-01-01T08:00:00.0000000Z' - GROUP BY Z, X) -SELECT X,Z, - ROUND(WOCOUNT / SUM(WOCOUNT) OVER (PARTITION BY X) * 100,2) AS Y -FROM SUBQ -ORDER BY X ASC, y desc - - - - LIST work orders by status (case 1974) + + LIST work orders filtered by status (case 1974) this *does* make sense because it can be hyper specific to something like a "waiting for parts" status so if that is useful to a user then can see that list needs limit, could bring in thousands if not careful criteria: - wo status + wo status required timespan tags wo, woitem @@ -891,13 +860,16 @@ BUILD 8.0.0-beta.1-rc3 CHANGES OF NOTE - added dashboard widget "Reviews" available to all dashboardable users which shows today's Reviews - added dashboard widget "Reminders" available to all dashboardable users which shows today's Reminders - added dashboard widget Open customer service requests in a list +- added dashboard widget Overdue showing overdue personal work orders for logged in tech +- added dashboard widget Overdue showing all overdue work orders for management - added dashboard widget Not Scheduled showing unscheduled work orders in a list - added dashboard widget Service rate quantity showing personal service rate quantity on chart as line or bar version - added dashboard widget Service rate quantity - All showing all selected criteria users service rate quantity on chart as line or bar version - added dashboard widget Count of work orders created per day over time as bar and line chart for management - added dashboard widget % of work orders completed on time as bar chart for management -- TODO: statuscount -- TODO: status pct +- added dashboard widget wo count by status bar bar management chart +- added dashboard widget wo percentage by status bar management chart +- added dashboard widget workorder by status list with status selection and other criteria - Added *back* User color as it now ties in with widget charts (user edit form, import, backend, docs etc) - v8-migrate plugin, fixed new issue related to removal of unused locale / translation keys preventing migrate - Login form added prominent warning "beta test - not for production use" diff --git a/ayanova/src/api/dash-registry.js b/ayanova/src/api/dash-registry.js index 0b9b8a94..99e06f5f 100644 --- a/ayanova/src/api/dash-registry.js +++ b/ayanova/src/api/dash-registry.js @@ -5,6 +5,29 @@ const role = authorizationroles.AUTHORIZATION_ROLES; */ export default { registry: [ + { + roles: [ + role.BizAdmin, + role.BizAdminRestricted, + role.ServiceRestricted, + role.Service, + role.Accounting, + role.Tech, + role.TechRestricted + ], + title: "DashboardWorkOrderByStatusList", + icon: "$ayiListAlt", + type: "GzDashWorkorderByStatusList", + singleOnly: false, + settings: { + customTitle: null, + wostatus: null, + wotags: [], + wotagsany: true, + woitemtags: [], + woitemtagsany: true + } + }, { roles: [ role.BizAdmin, diff --git a/ayanova/src/components/dash-workorder-by-status-list.vue b/ayanova/src/components/dash-workorder-by-status-list.vue new file mode 100644 index 00000000..a9e47cde --- /dev/null +++ b/ayanova/src/components/dash-workorder-by-status-list.vue @@ -0,0 +1,265 @@ + + diff --git a/ayanova/src/views/home-dashboard.vue b/ayanova/src/views/home-dashboard.vue index 022438f6..81915e15 100644 --- a/ayanova/src/views/home-dashboard.vue +++ b/ayanova/src/views/home-dashboard.vue @@ -99,6 +99,7 @@ import GzDashWorkOrderCreatedCountBar from "../components/dash-work-order-create import GzDashPctWorkOrderCompletedOnTimeBar from "../components/dash-work-order-completed-on-time-pct-bar.vue"; import GzDashWorkOrderStatusCount from "../components/dash-work-order-status-count-bar.vue"; import GzDashWorkOrderStatusPct from "../components/dash-work-order-status-pct-bar.vue"; +import GzDashWorkorderByStatusList from "../components/dash-workorder-by-status-list.vue"; export default { components: { GzDashLaborHoursPersonalLine, @@ -116,7 +117,8 @@ export default { GzDashWorkOrderCreatedCountBar, GzDashPctWorkOrderCompletedOnTimeBar, GzDashWorkOrderStatusCount, - GzDashWorkOrderStatusPct + GzDashWorkOrderStatusPct, + GzDashWorkorderByStatusList }, data() { return {