This commit is contained in:
@@ -22,7 +22,14 @@ FIRST CLIENT SOURCE CODE COMMIT JAN 3rd 2019
|
||||
|
||||
# OUTSTANDING MAJOR AREAS TO BETA
|
||||
|
||||
seeder seems to be putting schedules in the early hours 1am onwards not in the day as expected
|
||||
seeder wo created date not set properly, should match the way it's generated
|
||||
seeder wo need new fields and generate data to show off and test kpi widgets and features
|
||||
Add completed date to workorder, should be set when a closed status is set
|
||||
used for numerous kpi stuff
|
||||
adjust seeder to work with it so the closed state created date matches wo completed date
|
||||
|
||||
Also, can we calc "time to respond" based on anything extant or should there be some kind of additional field / system for that
|
||||
i.e. maybe a workorder status is also a response status like some are closed??, then a mirror first response field like completeddate
|
||||
|
||||
dashboard widgets
|
||||
|
||||
@@ -30,31 +37,28 @@ They should be small and highly focused on a particular issue so that the user j
|
||||
So a hypothetical workorder count per time period widget would have a this month, last month, ytd, last year to date etc or however.
|
||||
Main idea being they are not needed to config, just pick the one you want
|
||||
|
||||
should support multiple copies of an item that is configurable
|
||||
should support multiple copies if an item is configurable
|
||||
|
||||
- Widgets to make for beta
|
||||
overdue workorders (booked on, in the past, not a closed status) for current scheduleable user
|
||||
overdue workorders for all users available to service manager roles
|
||||
Billed hours per month YTD for sched user (line chart)
|
||||
Billed hours per month YTD for all users available to service manager roles (line chart)
|
||||
Billed hours per day last 30 days for sched user (line chart)
|
||||
Billed hours per day last 30 days for all users available to service manager roles (line chart)
|
||||
Unassigned work orders for service manager
|
||||
CSR's not accepted yet in reverse chronological order for service manager
|
||||
Billable hours leader board case 3696: https://www.openfaas.com/blog/serverless-single-page-app/?utm_source=DigitalOcean_Newsletter
|
||||
DASHBOARD:CR - open wo list by selectable status case 1974
|
||||
|
||||
Number of work orders created per day over time (from case 1882)
|
||||
** THIS ONE FOR SURE IT"S TOP REQUESTED IN SURVEYS OF SERVICE MANAGERS
|
||||
configurable time frame
|
||||
|
||||
v7 dashboard help doc:
|
||||
% wo closed within close by date
|
||||
|
||||
What shows within the Dashboard depends on whether the account you are logged in as is a schedulable resource or not (set in your User entry screen),
|
||||
and what your security group rights are to Service Workorders, Schedule Markers, Memos, and Customer Service Requests.
|
||||
idea, not cased: closed state by status (i.e. different reasons for being closed)
|
||||
|
||||
If logged in as a user that is a schedulable resource, the Dashboard is where you can quickly see at a glance, as well as access:
|
||||
•Overdue provides links to service workorders that were scheduled prior to today's present time and date as a reminder so that you do not forget to enter your
|
||||
labor, parts, etc as well as checkmark Service Completed.
|
||||
•Scheduled provides links to service workorders that are scheduled after today's date and time
|
||||
•Service Rate Quantity shows at a glance totals for today, yesterday, current week, current month and current year of your Labor hours
|
||||
(or whatever the unit charge is that you use). The label text Service Rate Quantity is taken from your Labor subsection of your service workorder entry screen.
|
||||
•Reminders provide links to the next three future dated Schedule Markers or Follow Ups assigned to you as a schedulable resource.
|
||||
|
||||
Otherwise quick access for company information (name displayed is from your registered license) or Region specific name is displayed if the user logged in is assigned to a specific Region:
|
||||
•Not assigned provides links to service workorders that have not yet been assigned to any schedulable resources.
|
||||
•Overdue provides links to service workorders that were scheduled to schedulable resources of this company/specific region prior to today's present time and date.
|
||||
Very useful as a reminder for both the dispatch manager and schedulable resources
|
||||
•Next provides links to service workorders that are scheduled after today's date and time for schedulable resources of this company/specific region
|
||||
•Service Rate Quantity shows at a glance totals for today, yesterday, current week, current month and current year of schedulable resources of this company/specific region
|
||||
Labor hours (or whatever the unit charge is that you use). The label text Service Rate Quantity is taken from the Labor subsection of your service workorder entry screen.
|
||||
•Customer Service Requests provides links to the next three not yet accepted customer service requests.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -73,18 +73,6 @@ export default {
|
||||
title: "TEST Line chart widget",
|
||||
type: "GzDashTestLineWidgetMonthlyTotalPrice",
|
||||
scheduleableUserOnly: false
|
||||
},
|
||||
{
|
||||
id: "TestDayCalendarWidget",
|
||||
roles: [
|
||||
role.BizAdmin,
|
||||
role.BizAdminRestricted,
|
||||
role.Sales,
|
||||
role.SalesRestricted
|
||||
],
|
||||
title: "TEST calendar widget",
|
||||
type: "GzDashTestDayCalendarWidget",
|
||||
scheduleableUserOnly: false
|
||||
}
|
||||
],
|
||||
availableItems() {
|
||||
|
||||
@@ -1,120 +0,0 @@
|
||||
<template>
|
||||
<gz-dash
|
||||
icon="$ayiTools"
|
||||
:add-url="'svc-workorders/0'"
|
||||
:update-frequency="0"
|
||||
v-bind="$attrs"
|
||||
@dash-refresh="loadData"
|
||||
v-on="$listeners"
|
||||
>
|
||||
<template slot="main">
|
||||
<v-calendar
|
||||
color="primary"
|
||||
type="day"
|
||||
hide-header
|
||||
interval-count="11"
|
||||
first-interval="7"
|
||||
interval-height="24"
|
||||
interval-width="45"
|
||||
:events="events"
|
||||
:event-color="getEventColor"
|
||||
:locale="languageName"
|
||||
@click:event="showEvent"
|
||||
></v-calendar>
|
||||
</template>
|
||||
</gz-dash>
|
||||
</template>
|
||||
<script>
|
||||
import GzDash from "../components/dash-base.vue";
|
||||
export default {
|
||||
components: {
|
||||
GzDash
|
||||
},
|
||||
props: {},
|
||||
data() {
|
||||
return {
|
||||
events: [],
|
||||
languageName: window.$gz.locale.getResolvedLanguage()
|
||||
};
|
||||
},
|
||||
computed: {},
|
||||
created() {
|
||||
// this.loadData();
|
||||
},
|
||||
methods: {
|
||||
loadData: function() {
|
||||
const events = [];
|
||||
const now = new Date();
|
||||
const yy = now.getFullYear();
|
||||
const mm = now.getMonth() + 1;
|
||||
const dd = now.getDate();
|
||||
events.push({
|
||||
id: 45,
|
||||
type: 34,
|
||||
name: "WO 45",
|
||||
start: getEventTimeStamp(yy, mm, dd, 8, "00"),
|
||||
end: getEventTimeStamp(yy, mm, dd, 8, 45),
|
||||
color: "orange"
|
||||
});
|
||||
|
||||
events.push({
|
||||
id: 22,
|
||||
type: 34,
|
||||
name: "WO 22",
|
||||
start: getEventTimeStamp(yy, mm, dd, 9, "00"),
|
||||
end: getEventTimeStamp(yy, mm, dd, 10, 30),
|
||||
color: "blue"
|
||||
});
|
||||
|
||||
events.push({
|
||||
id: 33,
|
||||
type: 34,
|
||||
name: "WO 33",
|
||||
start: getEventTimeStamp(yy, mm, dd, 11, "00"),
|
||||
end: getEventTimeStamp(yy, mm, dd, 11, 30),
|
||||
color: "green"
|
||||
});
|
||||
|
||||
events.push({
|
||||
id: 44,
|
||||
type: 34,
|
||||
name: "WO 44",
|
||||
start: getEventTimeStamp(yy, mm, dd, 11, "00"),
|
||||
end: getEventTimeStamp(yy, mm, dd, 11, 30),
|
||||
color: "indigo"
|
||||
});
|
||||
|
||||
events.push({
|
||||
id: 55,
|
||||
type: 34,
|
||||
name: "WO 55",
|
||||
start: getEventTimeStamp(yy, mm, dd, 11, "00"),
|
||||
end: getEventTimeStamp(yy, mm, dd, 11, 45),
|
||||
color: "purple"
|
||||
});
|
||||
|
||||
events.push({
|
||||
id: 34,
|
||||
type: 34,
|
||||
name: "WO 66",
|
||||
start: getEventTimeStamp(yy, mm, dd, 13, "00"),
|
||||
end: getEventTimeStamp(yy, mm, dd, 16, 45),
|
||||
color: "teal"
|
||||
});
|
||||
|
||||
this.events = events;
|
||||
},
|
||||
getEventColor(event) {
|
||||
return event.color;
|
||||
},
|
||||
showEvent({ nativeEvent, event }) {
|
||||
nativeEvent.stopPropagation();
|
||||
alert(`STUB: OPEN ITEM (data: ${JSON.stringify(event)})`);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function getEventTimeStamp(yy, mm, dd, hh, minutes) {
|
||||
return `${yy}-${mm}-${dd} ${hh}:${minutes}`;
|
||||
}
|
||||
</script>
|
||||
@@ -84,7 +84,6 @@ import DashRegistry from "../api/dash-registry";
|
||||
//import GzDashTestListWidgetsPriciest from "../components/dash-test-list-widgets-priciest.vue";
|
||||
import GzDashTestBarWidgetCountByUserType from "../components/dash-test-bar-widget-count-by-usertype.vue";
|
||||
import GzDashTestLineWidgetMonthlyTotalPrice from "../components/dash-test-line-widget-monthly-total-price.vue";
|
||||
import GzDashTestDayCalendarWidget from "../components/dash-test-day-calendar-widget.vue";
|
||||
import GzDashTodayScheduledWo from "../components/dash-today-scheduled-wo.vue";
|
||||
import GzDashTodayReminders from "../components/dash-today-reminders.vue";
|
||||
import GzDashTodayReviews from "../components/dash-today-reviews.vue";
|
||||
@@ -94,7 +93,6 @@ export default {
|
||||
//GzDashTestListWidgetsPriciest,
|
||||
GzDashTestBarWidgetCountByUserType,
|
||||
GzDashTestLineWidgetMonthlyTotalPrice,
|
||||
GzDashTestDayCalendarWidget,
|
||||
GzDashTodayScheduledWo,
|
||||
GzDashTodayReminders,
|
||||
GzDashTodayReviews
|
||||
|
||||
Reference in New Issue
Block a user