This commit is contained in:
2021-09-08 23:33:01 +00:00
parent 63eafdc904
commit 52e8de0bf3
2 changed files with 149 additions and 136 deletions

View File

@@ -11,8 +11,13 @@
Customer UI Customer UI
CSR techs ui accept to wo etc List (customer)
CSR V8Migrate create new (customer)
TEST all as HO user as well as Cust user
HO variant picklist for customer specfiically adn other shit like unit lists etc
CSR V8Migrate
GetLastReport is not implemented anywhere but is useful adn key GetLastReport is not implemented anywhere but is useful adn key
new testing cases new testing cases
Schedule form Schedule form
@@ -717,3 +722,4 @@ BUILD 130 CHANGES OF NOTE
- evalution seed data generation: removed redundant initial call to erase database from client as well as redundant check for existing data before prompting to erase - evalution seed data generation: removed redundant initial call to erase database from client as well as redundant check for existing data before prompting to erase
- CustomerServiceRequest Service user interface: completed with accept and reject fully coded, now has link to wo and workorderitem has link back to csr, ready for reporting - CustomerServiceRequest Service user interface: completed with accept and reject fully coded, now has link to wo and workorderitem has link back to csr, ready for reporting
- About form: fixed bug that allowed customer / ho type user to view license info

View File

@@ -5,11 +5,13 @@
<gz-error :error-box-message="formState.errorBoxMessage"></gz-error> <gz-error :error-box-message="formState.errorBoxMessage"></gz-error>
<v-form ref="form"> <v-form ref="form">
<v-row> <v-row>
<v-col cols="12" sm="6" lg="4" xl="3"> <v-col
<h1>UNDER CONSTRUCTION</h1> v-if="$store.state.userType == 4"
<h2> cols="12"
Copied from service csr and not modified yet for customer usage sm="6"
</h2> lg="4"
xl="3"
>
<gz-pick-list <gz-pick-list
:aya-type="ayaTypes().Customer" :aya-type="ayaTypes().Customer"
show-edit-icon show-edit-icon
@@ -19,6 +21,7 @@
:label="$ay.t('Customer')" :label="$ay.t('Customer')"
ref="customerId" ref="customerId"
data-cy="customerId" data-cy="customerId"
variant="ho"
></gz-pick-list> ></gz-pick-list>
</v-col> </v-col>
<v-col cols="12" sm="6" lg="4" xl="3"> <v-col cols="12" sm="6" lg="4" xl="3">
@@ -26,7 +29,6 @@
:color="priorityColor()" :color="priorityColor()"
:item-color="priorityColor()" :item-color="priorityColor()"
v-model="obj.priority" v-model="obj.priority"
readonly
:items="selectLists.priorities" :items="selectLists.priorities"
item-text="name" item-text="name"
item-value="id" item-value="id"
@@ -36,50 +38,10 @@
append-icon="" append-icon=""
> >
<template v-slot:prepend <template v-slot:prepend
><v-icon :color="priorityColor()"> ><v-icon :color="priorityColor()"> $ayiCircle </v-icon>
$ayiCircle
</v-icon>
</template></v-select </template></v-select
> >
</v-col> </v-col>
<v-col cols="12" sm="6" lg="4" xl="3">
<gz-date-picker
:label="$ay.t('Created')"
v-model="obj.dateRequested"
readonly
ref="dateRequested"
data-cy="dateRequested"
></gz-date-picker>
</v-col>
<v-col cols="12" sm="6" lg="4" xl="3">
<v-select
v-model="obj.status"
:items="selectLists.status"
item-text="name"
item-value="id"
readonly
:label="$ay.t('CustomerServiceRequestStatus')"
ref="status"
data-cy="status"
append-icon=""
></v-select>
</v-col>
TODO: INSERT GLOBAL HTML formatted INFO HERE FROM GLOBAL SETTINGS IF
NON-EMPTY
<!-- //MIGRATE_OUTSTANDING put workorder picklist here and show if has a woitemid or whatever is required to link to the wo -->
<!-- ---------------------------------- -->
<v-col cols="12" sm="6" lg="4" xl="3">
<v-text-field
v-model="obj.name"
:readonly="formState.readOnly"
:label="$ay.t('CustomerServiceRequestTitle')"
:rules="[form().required(this, 'name')]"
:error-messages="form().serverErrors(this, 'name')"
ref="name"
data-cy="name"
@input="fieldValueChanged('name')"
></v-text-field>
</v-col>
<v-col <v-col
v-if=" v-if="
@@ -107,6 +69,80 @@
</v-col> </v-col>
<v-col <v-col
v-if="form().showMe(this, 'CustomerServiceRequestItemUnitID')"
cols="12"
sm="6"
lg="4"
xl="3"
>
<gz-pick-list
:aya-type="ayaTypes().Unit"
:variant="'customerid:' + obj.customerId"
v-model="obj.unitId"
:readonly="formState.readOnly"
:label="$ay.t('CustomerServiceRequestItemUnitID')"
ref="unitId"
data-cy="unitId"
:error-messages="form().serverErrors(this, 'unitId')"
@input="fieldValueChanged('unitId')"
></gz-pick-list>
</v-col>
<v-col cols="12">
<v-text-field
v-model="obj.name"
:readonly="formState.readOnly"
:label="$ay.t('CustomerServiceRequestTitle')"
:rules="[form().required(this, 'name')]"
:error-messages="form().serverErrors(this, 'name')"
ref="name"
data-cy="name"
@input="fieldValueChanged('name')"
></v-text-field>
</v-col>
<v-col
v-if="form().showMe(this, 'CustomerServiceRequestDetails')"
cols="12"
>
<v-textarea
v-model="obj.notes"
:readonly="formState.readOnly"
:label="$ay.t('CustomerServiceRequestDetails')"
:error-messages="form().serverErrors(this, 'notes')"
ref="notes"
data-cy="notes"
@input="fieldValueChanged('notes')"
auto-grow
></v-textarea>
</v-col>
<v-col cols="12" sm="6" lg="4" xl="3">
<gz-date-picker
:label="$ay.t('Created')"
v-model="obj.dateRequested"
readonly
ref="dateRequested"
data-cy="dateRequested"
></gz-date-picker>
</v-col>
<v-col cols="12" sm="6" lg="4" xl="3">
<v-select
v-model="obj.status"
:items="selectLists.status"
item-text="name"
item-value="id"
readonly
:label="$ay.t('CustomerServiceRequestStatus')"
ref="status"
data-cy="status"
append-icon=""
></v-select>
</v-col>
<!-- TODO: INSERT GLOBAL HTML formatted INFO HERE FROM GLOBAL SETTINGS IF
NON-EMPTY -->
<!-- <v-col
v-if="form().showMe(this, 'CustomerServiceRequestRequestedBy')" v-if="form().showMe(this, 'CustomerServiceRequestRequestedBy')"
cols="12" cols="12"
sm="6" sm="6"
@@ -125,47 +161,11 @@
:error-messages="form().serverErrors(this, 'requestedByUserId')" :error-messages="form().serverErrors(this, 'requestedByUserId')"
@input="fieldValueChanged('requestedByUserId')" @input="fieldValueChanged('requestedByUserId')"
></gz-pick-list> ></gz-pick-list>
</v-col> </v-col> -->
<v-col
v-if="form().showMe(this, 'CustomerServiceRequestItemUnitID')"
cols="12"
sm="6"
lg="4"
xl="3"
>
<gz-pick-list
:aya-type="ayaTypes().Unit"
:variant="'customerid:' + obj.customerId"
show-edit-icon
v-model="obj.unitId"
:readonly="formState.readOnly"
:label="$ay.t('CustomerServiceRequestItemUnitID')"
ref="unitId"
data-cy="unitId"
:error-messages="form().serverErrors(this, 'unitId')"
@input="fieldValueChanged('unitId')"
></gz-pick-list>
</v-col>
<!-- --------------------------------- --> <!-- --------------------------------- -->
<v-col
v-if="form().showMe(this, 'CustomerServiceRequestDetails')"
cols="12"
>
<v-textarea
v-model="obj.notes"
:readonly="formState.readOnly"
:label="$ay.t('CustomerServiceRequestDetails')"
:error-messages="form().serverErrors(this, 'notes')"
ref="notes"
data-cy="notes"
@input="fieldValueChanged('notes')"
auto-grow
></v-textarea>
</v-col>
<v-col v-if="form().showMe(this, 'Tags')" cols="12"> <!-- <v-col v-if="form().showMe(this, 'Tags')" cols="12">
<gz-tag-picker <gz-tag-picker
v-model="obj.tags" v-model="obj.tags"
:readonly="formState.readOnly" :readonly="formState.readOnly"
@@ -176,7 +176,7 @@
></gz-tag-picker> ></gz-tag-picker>
</v-col> </v-col>
<v-col cols="12"> <v-col cols="12">
<gz-custom-fields <gz-custom-fields
v-model="obj.customFields" v-model="obj.customFields"
:form-key="formCustomTemplateKey" :form-key="formCustomTemplateKey"
@@ -206,7 +206,7 @@
:aya-type="ayaType" :aya-type="ayaType"
:aya-id="obj.id" :aya-id="obj.id"
></gz-attachments ></gz-attachments
></v-col> ></v-col> -->
</v-row> </v-row>
</v-form> </v-form>
<v-row justify="center"> <v-row justify="center">
@@ -286,6 +286,12 @@ export default {
await vm.getDataFromApi(vm.$route.params.recordid); //let getdata handle loading await vm.getDataFromApi(vm.$route.params.recordid); //let getdata handle loading
} }
} else { } else {
//NEW
//
if (this.$store.state.userType == 3) {
//Customer specific user
this.obj.customerId = this.$store.state.customerRights.entityId;
}
window.$gz.form.setFormState({ window.$gz.form.setFormState({
vm: vm, vm: vm,
loading: false loading: false
@@ -366,7 +372,7 @@ export default {
customerId: null, customerId: null,
unitId: null, unitId: null,
workOrderItemId: null, workOrderItemId: null,
requestedByUserId: null, //window.$gz.store.state.userId, for outside version of this form requestedByUserId: this.$store.state.userId, //window.$gz.store.state.userId, for outside version of this form
customerReferenceNumber: null, customerReferenceNumber: null,
status: 0, status: 0,
priority: 0 priority: 0
@@ -755,13 +761,14 @@ function generateMenu(vm) {
readOnly: vm.formState.readOnly || vm.obj.status != 0, readOnly: vm.formState.readOnly || vm.obj.status != 0,
icon: "$ayiConciergeBell", icon: "$ayiConciergeBell",
title: "CustomerServiceRequest", title: "CustomerServiceRequest",
helpUrl: "svc-csr", helpUrl: "customer-csr",
formData: { hideSearch: true,
ayaType: window.$gz.type.CustomerServiceRequest, // formData: {
recordId: vm.$route.params.recordid, // ayaType: window.$gz.type.CustomerServiceRequest,
formCustomTemplateKey: FORM_CUSTOM_TEMPLATE_KEY, // recordId: vm.$route.params.recordid,
recordName: vm.obj.name // formCustomTemplateKey: FORM_CUSTOM_TEMPLATE_KEY,
}, // recordName: vm.obj.name
// },
menuItems: [] menuItems: []
}; };
@@ -789,50 +796,50 @@ function generateMenu(vm) {
}); });
} }
//REPORTS // //REPORTS
//Report not Print, print is a further option // //Report not Print, print is a further option
menuOptions.menuItems.push({ // menuOptions.menuItems.push({
title: "Report", // title: "Report",
icon: "$ayiFileAlt", // icon: "$ayiFileAlt",
key: FORM_KEY + ":report", // key: FORM_KEY + ":report",
vm: vm // vm: vm
}); // });
//get last report selected // //get last report selected
let lastReport = window.$gz.form.getLastReport(FORM_KEY); // let lastReport = window.$gz.form.getLastReport(FORM_KEY);
if (lastReport != null) { // if (lastReport != null) {
menuOptions.menuItems.push({ // menuOptions.menuItems.push({
title: lastReport.name, // title: lastReport.name,
icon: "$ayiFileAlt", // icon: "$ayiFileAlt",
key: FORM_KEY + ":report:" + lastReport.id, // key: FORM_KEY + ":report:" + lastReport.id,
vm: vm // vm: vm
}); // });
} // }
menuOptions.menuItems.push({ divider: true, inset: false }); // menuOptions.menuItems.push({ divider: true, inset: false });
if (vm.obj.status == 0) { // if (vm.obj.status == 0) {
menuOptions.menuItems.push({ // menuOptions.menuItems.push({
title: "CustomerServiceRequestAcceptToNew", // title: "CustomerServiceRequestAcceptToNew",
icon: null, // icon: null,
key: FORM_KEY + ":acceptnew", // key: FORM_KEY + ":acceptnew",
vm: vm // vm: vm
}); // });
menuOptions.menuItems.push({ // menuOptions.menuItems.push({
title: "CustomerServiceRequestAcceptToExisting", // title: "CustomerServiceRequestAcceptToExisting",
icon: null, // icon: null,
key: FORM_KEY + ":acceptexisting", // key: FORM_KEY + ":acceptexisting",
vm: vm // vm: vm
}); // });
menuOptions.menuItems.push({ // menuOptions.menuItems.push({
title: "CustomerServiceRequestReject", // title: "CustomerServiceRequestReject",
icon: null, // icon: null,
key: FORM_KEY + ":reject", // key: FORM_KEY + ":reject",
vm: vm // vm: vm
}); // });
} // }
menuOptions.menuItems.push({ divider: true, inset: false }); menuOptions.menuItems.push({ divider: true, inset: false });