This commit is contained in:
@@ -31,7 +31,7 @@ FIRST CLIENT SOURCE CODE COMMIT JAN 3rd 2019
|
||||
# SEEDING ISSUES
|
||||
|
||||
|
||||
??seeder wo created date not set properly, should match the way it's generated
|
||||
seeder, make a few wo that are not completed in time in each month
|
||||
|
||||
seeder make reminders and reviews for all users, just random scattering for now to future month ahead at least one per day to show off schedule and widgets
|
||||
seeder wo need new fields and generate data to show off and test kpi widgets and features
|
||||
@@ -45,84 +45,50 @@ seeder wo need new fields and generate data to show off and test kpi widgets and
|
||||
|
||||
|
||||
# WIDGETS
|
||||
https://www.calculator.net/percent-calculator.html
|
||||
|
||||
Should LIST types have a fixed limit of maximum records returned??
|
||||
i.e. no more than 500 or something?
|
||||
if reaches the limit then says "500 limit reached" in the list as the last item?
|
||||
|
||||
- Widgets to make for beta in order of priority
|
||||
**MUST HAVE***
|
||||
|
||||
|
||||
BAR % wo completed status vs not completed by completed date within interval
|
||||
query is
|
||||
all wo not completed that should be by now within the interval vs all that were completed within the interval, count up each, count up the total and present as a pct for that interval
|
||||
count of wo with complete by in the interval and not closed / count of wo with complete by within the interval and closed
|
||||
group by convert completed or not into a simple bool so group by completed then by interval like the multiple techs ones as a framework
|
||||
|
||||
criteria:
|
||||
timespan, interval
|
||||
tags wo
|
||||
|
||||
SELECT COUNT(AWORKORDER.ID) Y,
|
||||
DATE_TRUNC('month',AWORKORDER.createddate) X,
|
||||
(LASTSTATUSID IS NULL OR AWORKORDERSTATUS.COMPLETED = FALSE) Z
|
||||
FROM AWORKORDER
|
||||
LEFT JOIN AWORKORDERSTATUS ON (AWORKORDER.LASTSTATUSID = AWORKORDERSTATUS.ID)
|
||||
where AWORKORDER.COMPLETEBYDATE < NOW()
|
||||
GROUP BY X,Z
|
||||
ORDER BY X ASC
|
||||
|
||||
with subq as (
|
||||
SELECT COUNT(AWORKORDER.ID) wocount,
|
||||
DATE_TRUNC('month',AWORKORDER.createddate) x,
|
||||
(LASTSTATUSID IS NULL OR AWORKORDERSTATUS.COMPLETED = FALSE) z
|
||||
FROM AWORKORDER
|
||||
LEFT JOIN AWORKORDERSTATUS ON (AWORKORDER.LASTSTATUSID = AWORKORDERSTATUS.ID)
|
||||
where AWORKORDER.COMPLETEBYDATE < NOW()
|
||||
GROUP BY x,z
|
||||
)
|
||||
select X,Z,
|
||||
wocount / sum(wocount) over (partition by X) * 100 as Y
|
||||
from subq
|
||||
order by x ASC;
|
||||
|
||||
...
|
||||
WITH SUBQ AS
|
||||
(SELECT COUNT(AWORKORDER.ID) WOCOUNT,
|
||||
DATE_TRUNC('month', AWORKORDER.CREATEDDATE) X,
|
||||
(aworkorder.laststatusid is not null AND AWORKORDERSTATUS.COMPLETED = TRUE AND laststate.created < aworkorder.completebydate) Z
|
||||
FROM AWORKORDER
|
||||
LEFT JOIN AWORKORDERSTATUS ON (AWORKORDER.LASTSTATUSID = AWORKORDERSTATUS.ID)
|
||||
LEFT JOIN LATERAL
|
||||
|
||||
(SELECT created
|
||||
FROM aworkorderstate
|
||||
WHERE aworkorderstate.workorderid = aworkorder.id
|
||||
ORDER BY aworkorderstate.created DESC
|
||||
LIMIT 1) AS laststate ON TRUE
|
||||
|
||||
WHERE AWORKORDER.COMPLETEBYDATE < NOW()
|
||||
AND AWORKORDER.CREATEDDATE > '1753-01-02T08:00:59.9990000Z'
|
||||
AND AWORKORDER.CREATEDDATE < '2022-03-03T01:00:00.0000000Z'
|
||||
|
||||
GROUP BY X,Z)
|
||||
SELECT X,Z,
|
||||
ROUND(WOCOUNT / SUM(WOCOUNT) OVER (PARTITION BY X) * 100,2) AS Y
|
||||
FROM SUBQ
|
||||
ORDER BY X ASC
|
||||
...
|
||||
|
||||
|
||||
|
||||
|
||||
BAR-VERT Billable hours leader board case 3696: https://www.openfaas.com/blog/serverless-single-page-app/?utm_source=DigitalOcean_Newsletter
|
||||
criteria:
|
||||
timespan, interval
|
||||
tags wo
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
LIST work orders by status (case 1974)
|
||||
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)
|
||||
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
|
||||
timespan
|
||||
@@ -132,13 +98,12 @@ ORDER BY X ASC
|
||||
|
||||
**NICE TO HAVE**
|
||||
(these are not triaged yet)
|
||||
DASHBOARD:CR - open wo list by selectable status case 1974
|
||||
|
||||
avg time or time breakdown by % of overdueness of workorders
|
||||
i.e. 10% of overdue were x days overdue etc
|
||||
avg time in each status by time period / tags
|
||||
this could cover response time as they can just designate a status as unresponded or new
|
||||
% wo within each status by time range / tags
|
||||
this will show the state of things overall
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -930,6 +895,9 @@ BUILD 8.0.0-beta.1-rc3 CHANGES OF NOTE
|
||||
- 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 *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"
|
||||
|
||||
Reference in New Issue
Block a user