This commit is contained in:
@@ -11,7 +11,7 @@
|
|||||||
<v-text-field
|
<v-text-field
|
||||||
v-model="value.serial"
|
v-model="value.serial"
|
||||||
:readonly="formState.readOnly"
|
:readonly="formState.readOnly"
|
||||||
:label="$ay.t('WorkOrderSerialNumber')"
|
:label="$ay.t('QuoteSerialNumber')"
|
||||||
ref="serial"
|
ref="serial"
|
||||||
data-cy="serial"
|
data-cy="serial"
|
||||||
:rules="[
|
:rules="[
|
||||||
@@ -40,7 +40,33 @@
|
|||||||
|
|
||||||
<v-col
|
<v-col
|
||||||
v-if="
|
v-if="
|
||||||
form().showMe(this, 'WorkOrderStatus') &&
|
form().showMe(this, 'QuotePreparedByID') &&
|
||||||
|
!(
|
||||||
|
value.userIsSubContractorFull ||
|
||||||
|
value.userIsSubContractorRestricted
|
||||||
|
)
|
||||||
|
"
|
||||||
|
cols="12"
|
||||||
|
sm="6"
|
||||||
|
lg="4"
|
||||||
|
xl="3"
|
||||||
|
>
|
||||||
|
<gz-pick-list
|
||||||
|
:aya-type="$ay.ayt().User"
|
||||||
|
:show-edit-icon="!value.userIsRestrictedType"
|
||||||
|
v-model="value.preparedById"
|
||||||
|
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||||
|
:label="$ay.t('QuotePreparedByID')"
|
||||||
|
ref="preparedById"
|
||||||
|
data-cy="preparedById"
|
||||||
|
:error-messages="form().serverErrors(this, 'preparedById')"
|
||||||
|
@input="fieldValueChanged('preparedById')"
|
||||||
|
></gz-pick-list>
|
||||||
|
</v-col>
|
||||||
|
|
||||||
|
<v-col
|
||||||
|
v-if="
|
||||||
|
form().showMe(this, 'QuoteStatus') &&
|
||||||
!(
|
!(
|
||||||
value.userIsSubContractorFull ||
|
value.userIsSubContractorFull ||
|
||||||
value.userIsSubContractorRestricted
|
value.userIsSubContractorRestricted
|
||||||
@@ -79,7 +105,27 @@
|
|||||||
data-cy="woAddress"
|
data-cy="woAddress"
|
||||||
/>
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
<v-col
|
||||||
|
v-if="
|
||||||
|
form().showMe(this, 'QuoteIntroduction') &&
|
||||||
|
!(
|
||||||
|
value.userIsSubContractorFull ||
|
||||||
|
value.userIsSubContractorRestricted
|
||||||
|
)
|
||||||
|
"
|
||||||
|
cols="12"
|
||||||
|
>
|
||||||
|
<v-textarea
|
||||||
|
v-model="value.introduction"
|
||||||
|
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||||
|
:label="$ay.t('QuoteIntroduction')"
|
||||||
|
:error-messages="form().serverErrors(this, 'introduction')"
|
||||||
|
ref="introduction"
|
||||||
|
data-cy="introduction"
|
||||||
|
@input="fieldValueChanged('introduction')"
|
||||||
|
auto-grow
|
||||||
|
></v-textarea>
|
||||||
|
</v-col>
|
||||||
<v-col
|
<v-col
|
||||||
v-if="
|
v-if="
|
||||||
form().showMe(this, 'WorkOrderSummary') &&
|
form().showMe(this, 'WorkOrderSummary') &&
|
||||||
@@ -104,7 +150,7 @@
|
|||||||
|
|
||||||
<v-col
|
<v-col
|
||||||
v-if="
|
v-if="
|
||||||
form().showMe(this, 'WorkOrderCloseByDate') &&
|
form().showMe(this, 'QuoteQuoteRequestDate') &&
|
||||||
!(
|
!(
|
||||||
value.userIsSubContractorFull ||
|
value.userIsSubContractorFull ||
|
||||||
value.userIsSubContractorRestricted
|
value.userIsSubContractorRestricted
|
||||||
@@ -116,13 +162,85 @@
|
|||||||
xl="3"
|
xl="3"
|
||||||
>
|
>
|
||||||
<gz-date-time-picker
|
<gz-date-time-picker
|
||||||
:label="$ay.t('WorkOrderCloseByDate')"
|
:label="$ay.t('QuoteQuoteRequestDate')"
|
||||||
v-model="value.completeByDate"
|
v-model="value.requested"
|
||||||
:readonly="formState.readOnly || value.userIsTechRestricted"
|
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||||
ref="completeByDate"
|
ref="requested"
|
||||||
data-cy="completeByDate"
|
data-cy="requested"
|
||||||
:error-messages="form().serverErrors(this, 'completeByDate')"
|
:error-messages="form().serverErrors(this, 'requested')"
|
||||||
@input="fieldValueChanged('completeByDate')"
|
@input="fieldValueChanged('requested')"
|
||||||
|
></gz-date-time-picker>
|
||||||
|
</v-col>
|
||||||
|
|
||||||
|
<v-col
|
||||||
|
v-if="
|
||||||
|
form().showMe(this, 'QuoteValidUntilDate') &&
|
||||||
|
!(
|
||||||
|
value.userIsSubContractorFull ||
|
||||||
|
value.userIsSubContractorRestricted
|
||||||
|
)
|
||||||
|
"
|
||||||
|
cols="12"
|
||||||
|
sm="6"
|
||||||
|
lg="4"
|
||||||
|
xl="3"
|
||||||
|
>
|
||||||
|
<gz-date-time-picker
|
||||||
|
:label="$ay.t('QuoteValidUntilDate')"
|
||||||
|
v-model="value.validUntil"
|
||||||
|
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||||
|
ref="validUntil"
|
||||||
|
data-cy="validUntil"
|
||||||
|
:error-messages="form().serverErrors(this, 'validUntil')"
|
||||||
|
@input="fieldValueChanged('validUntil')"
|
||||||
|
></gz-date-time-picker>
|
||||||
|
</v-col>
|
||||||
|
|
||||||
|
<v-col
|
||||||
|
v-if="
|
||||||
|
form().showMe(this, 'QuoteDateSubmitted') &&
|
||||||
|
!(
|
||||||
|
value.userIsSubContractorFull ||
|
||||||
|
value.userIsSubContractorRestricted
|
||||||
|
)
|
||||||
|
"
|
||||||
|
cols="12"
|
||||||
|
sm="6"
|
||||||
|
lg="4"
|
||||||
|
xl="3"
|
||||||
|
>
|
||||||
|
<gz-date-time-picker
|
||||||
|
:label="$ay.t('QuoteDateSubmitted')"
|
||||||
|
v-model="value.submitted"
|
||||||
|
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||||
|
ref="submitted"
|
||||||
|
data-cy="submitted"
|
||||||
|
:error-messages="form().serverErrors(this, 'submitted')"
|
||||||
|
@input="fieldValueChanged('submitted')"
|
||||||
|
></gz-date-time-picker>
|
||||||
|
</v-col>
|
||||||
|
|
||||||
|
<v-col
|
||||||
|
v-if="
|
||||||
|
form().showMe(this, 'QuoteDateApproved') &&
|
||||||
|
!(
|
||||||
|
value.userIsSubContractorFull ||
|
||||||
|
value.userIsSubContractorRestricted
|
||||||
|
)
|
||||||
|
"
|
||||||
|
cols="12"
|
||||||
|
sm="6"
|
||||||
|
lg="4"
|
||||||
|
xl="3"
|
||||||
|
>
|
||||||
|
<gz-date-time-picker
|
||||||
|
:label="$ay.t('QuoteDateApproved')"
|
||||||
|
v-model="value.approved"
|
||||||
|
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||||
|
ref="approved"
|
||||||
|
data-cy="approved"
|
||||||
|
:error-messages="form().serverErrors(this, 'approved')"
|
||||||
|
@input="fieldValueChanged('approved')"
|
||||||
></gz-date-time-picker>
|
></gz-date-time-picker>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
||||||
@@ -178,54 +296,6 @@
|
|||||||
></gz-pick-list>
|
></gz-pick-list>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
||||||
<v-col
|
|
||||||
v-if="
|
|
||||||
form().showMe(this, 'WorkOrderInvoiceNumber') &&
|
|
||||||
!(
|
|
||||||
value.userIsSubContractorFull ||
|
|
||||||
value.userIsSubContractorRestricted
|
|
||||||
)
|
|
||||||
"
|
|
||||||
cols="12"
|
|
||||||
sm="6"
|
|
||||||
lg="4"
|
|
||||||
xl="3"
|
|
||||||
>
|
|
||||||
<v-text-field
|
|
||||||
v-model="value.invoiceNumber"
|
|
||||||
:readonly="formState.readOnly || value.userIsTechRestricted"
|
|
||||||
:label="$ay.t('WorkOrderInvoiceNumber')"
|
|
||||||
ref="invoiceNumber"
|
|
||||||
data-cy="invoiceNumber"
|
|
||||||
:error-messages="form().serverErrors(this, 'invoiceNumber')"
|
|
||||||
@input="fieldValueChanged('invoiceNumber')"
|
|
||||||
></v-text-field>
|
|
||||||
</v-col>
|
|
||||||
|
|
||||||
<v-col
|
|
||||||
v-if="
|
|
||||||
form().showMe(this, 'WorkOrderServiceDate') &&
|
|
||||||
!(
|
|
||||||
value.userIsSubContractorFull ||
|
|
||||||
value.userIsSubContractorRestricted
|
|
||||||
)
|
|
||||||
"
|
|
||||||
cols="12"
|
|
||||||
sm="6"
|
|
||||||
lg="4"
|
|
||||||
xl="3"
|
|
||||||
>
|
|
||||||
<gz-date-time-picker
|
|
||||||
:label="$ay.t('WorkOrderServiceDate')"
|
|
||||||
v-model="value.serviceDate"
|
|
||||||
:readonly="formState.readOnly || value.userIsTechRestricted"
|
|
||||||
ref="serviceDate"
|
|
||||||
data-cy="serviceDate"
|
|
||||||
:error-messages="form().serverErrors(this, 'serviceDate')"
|
|
||||||
@input="fieldValueChanged('serviceDate')"
|
|
||||||
></gz-date-time-picker>
|
|
||||||
</v-col>
|
|
||||||
|
|
||||||
<v-col
|
<v-col
|
||||||
v-if="form().showMe(this, 'WorkOrderCustomerContactName')"
|
v-if="form().showMe(this, 'WorkOrderCustomerContactName')"
|
||||||
cols="12"
|
cols="12"
|
||||||
@@ -321,6 +391,56 @@
|
|||||||
></v-checkbox>
|
></v-checkbox>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
||||||
|
|
||||||
|
<v-col
|
||||||
|
v-if="
|
||||||
|
form().showMe(this, 'CopyWiki') &&
|
||||||
|
!(
|
||||||
|
value.userIsSubContractorFull ||
|
||||||
|
value.userIsSubContractorRestricted
|
||||||
|
)
|
||||||
|
"
|
||||||
|
cols="12"
|
||||||
|
sm="6"
|
||||||
|
lg="4"
|
||||||
|
xl="3"
|
||||||
|
>
|
||||||
|
<v-checkbox
|
||||||
|
v-model="value.copyWiki"
|
||||||
|
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||||
|
:label="$ay.t('CopyWiki')"
|
||||||
|
ref="copyWiki"
|
||||||
|
data-cy="copyWiki"
|
||||||
|
:error-messages="form().serverErrors(this, 'copyWiki')"
|
||||||
|
@change="fieldValueChanged('copyWiki')"
|
||||||
|
></v-checkbox>
|
||||||
|
</v-col>
|
||||||
|
|
||||||
|
<v-col
|
||||||
|
v-if="
|
||||||
|
form().showMe(this, 'CopyAttachments') &&
|
||||||
|
!(
|
||||||
|
value.userIsSubContractorFull ||
|
||||||
|
value.userIsSubContractorRestricted
|
||||||
|
)
|
||||||
|
"
|
||||||
|
cols="12"
|
||||||
|
sm="6"
|
||||||
|
lg="4"
|
||||||
|
xl="3"
|
||||||
|
>
|
||||||
|
<v-checkbox
|
||||||
|
v-model="value.copyAttachments"
|
||||||
|
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||||
|
:label="$ay.t('CopyAttachments')"
|
||||||
|
ref="copyAttachments"
|
||||||
|
data-cy="copyAttachments"
|
||||||
|
:error-messages="form().serverErrors(this, 'copyAttachments')"
|
||||||
|
@change="fieldValueChanged('copyAttachments')"
|
||||||
|
></v-checkbox>
|
||||||
|
</v-col>
|
||||||
|
|
||||||
|
|
||||||
<v-col
|
<v-col
|
||||||
v-if="
|
v-if="
|
||||||
form().showMe(this, 'Tags') &&
|
form().showMe(this, 'Tags') &&
|
||||||
@@ -455,6 +575,15 @@ export default {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
l.Add(new FormField { TKey = "QuotePreparedByID", FieldKey = "QuotePreparedByID" });
|
||||||
|
l.Add(new FormField { TKey = "QuoteIntroduction", FieldKey = "QuoteIntroduction" });
|
||||||
|
l.Add(new FormField { TKey = "QuoteQuoteRequestDate", FieldKey = "QuoteQuoteRequestDate" });
|
||||||
|
l.Add(new FormField { TKey = "QuoteValidUntilDate", FieldKey = "QuoteValidUntilDate" });
|
||||||
|
l.Add(new FormField { TKey = "QuoteDateSubmitted", FieldKey = "QuoteDateSubmitted" });
|
||||||
|
l.Add(new FormField { TKey = "QuoteDateApproved", FieldKey = "QuoteDateApproved" });
|
||||||
|
l.Add(new FormField { TKey = "CopyWiki", FieldKey = "CopyWiki" });
|
||||||
|
l.Add(new FormField { TKey = "CopyAttachments", FieldKey = "CopyAttachments" });
|
||||||
|
|
||||||
Example workorder
|
Example workorder
|
||||||
{
|
{
|
||||||
id: 10,
|
id: 10,
|
||||||
|
|||||||
111
ayanova/src/views/svc-quote-status.vue
Normal file
111
ayanova/src/views/svc-quote-status.vue
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<gz-report-selector ref="reportSelector"></gz-report-selector>
|
||||||
|
<gz-extensions
|
||||||
|
:aya-type="$ay.ayt().QuoteStatus"
|
||||||
|
:selected-items="selectedItems"
|
||||||
|
ref="extensions"
|
||||||
|
>
|
||||||
|
</gz-extensions>
|
||||||
|
<gz-data-table
|
||||||
|
ref="gzdatatable"
|
||||||
|
form-key="svc-quote-status"
|
||||||
|
data-list-key="QuoteStatusDataList"
|
||||||
|
:show-select="rights.read"
|
||||||
|
:reload="reload"
|
||||||
|
@selection-change="handleSelected"
|
||||||
|
data-cy="woStatusTable"
|
||||||
|
>
|
||||||
|
</gz-data-table>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const FORM_KEY = "svc-quote-status";
|
||||||
|
export default {
|
||||||
|
created() {
|
||||||
|
this.rights = window.$gz.role.getRights(window.$gz.type.QuoteStatus);
|
||||||
|
window.$gz.eventBus.$on("menu-click", clickHandler);
|
||||||
|
generateMenu(this);
|
||||||
|
},
|
||||||
|
beforeDestroy() {
|
||||||
|
window.$gz.eventBus.$off("menu-click", clickHandler);
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
rights: window.$gz.role.defaultRightsObject(),
|
||||||
|
selectedItems: [],
|
||||||
|
reload: false
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleSelected(selected) {
|
||||||
|
this.selectedItems = selected;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/////////////////////////////
|
||||||
|
//
|
||||||
|
//
|
||||||
|
async function clickHandler(menuItem) {
|
||||||
|
if (!menuItem) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let m = window.$gz.menu.parseMenuItem(menuItem);
|
||||||
|
if (m.owner == FORM_KEY && !m.disabled) {
|
||||||
|
switch (m.key) {
|
||||||
|
case "new":
|
||||||
|
m.vm.$router.push({
|
||||||
|
name: "svc-quote-status-edit",
|
||||||
|
params: { recordid: 0 }
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "extensions":
|
||||||
|
let res = await m.vm.$refs.extensions.open(
|
||||||
|
m.vm.$refs.gzdatatable.getDataListSelection(
|
||||||
|
window.$gz.type.QuoteStatus
|
||||||
|
)
|
||||||
|
);
|
||||||
|
if (res && res.refresh == true) {
|
||||||
|
m.vm.reload = !m.vm.reload;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
window.$gz.eventBus.$emit(
|
||||||
|
"notify-warning",
|
||||||
|
FORM_KEY + "::context click: [" + m.key + "]"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////
|
||||||
|
//
|
||||||
|
//
|
||||||
|
function generateMenu(vm) {
|
||||||
|
let menuOptions = {
|
||||||
|
isMain: true,
|
||||||
|
icon: "$ayiFlag",
|
||||||
|
title: "QuoteStatusList",
|
||||||
|
helpUrl: "svc-quote-status",
|
||||||
|
menuItems: [],
|
||||||
|
formData: {
|
||||||
|
ayaType: window.$gz.type.QuoteStatus
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if (vm.rights.change) {
|
||||||
|
menuOptions.menuItems.push({
|
||||||
|
title: "New",
|
||||||
|
icon: "$ayiPlus",
|
||||||
|
surface: true,
|
||||||
|
key: FORM_KEY + ":new",
|
||||||
|
vm: vm
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
window.$gz.eventBus.$emit("menu-change", menuOptions);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
|
|
||||||
<v-col cols="12" sm="6" lg="4" xl="3">
|
<v-col cols="12" sm="6" lg="4" xl="3">
|
||||||
<gz-role-picker
|
<gz-role-picker
|
||||||
:label="$ay.t('WorkOrderStatusRemoveRoles')"
|
:label="$ay.t('RemoveRoles')"
|
||||||
v-model="obj.removeRoles"
|
v-model="obj.removeRoles"
|
||||||
:readonly="formState.readOnly"
|
:readonly="formState.readOnly"
|
||||||
ref="removeRoles"
|
ref="removeRoles"
|
||||||
@@ -525,7 +525,7 @@ async function fetchTranslatedText() {
|
|||||||
"WorkOrderStatusCompleted",
|
"WorkOrderStatusCompleted",
|
||||||
"WorkOrderStatusLocked",
|
"WorkOrderStatusLocked",
|
||||||
"SelectRoles",
|
"SelectRoles",
|
||||||
"WorkOrderStatusRemoveRoles",
|
"RemoveRoles",
|
||||||
"WorkOrderStatusColor",
|
"WorkOrderStatusColor",
|
||||||
"WorkOrderStatusNotes"
|
"WorkOrderStatusNotes"
|
||||||
]);
|
]);
|
||||||
|
|||||||
Reference in New Issue
Block a user