This commit is contained in:
2021-05-24 20:13:05 +00:00
parent 4d77a62f78
commit d5706f6dd7

View File

@@ -89,27 +89,25 @@
xl="3"
>
<v-text-field
v-model="
value.items[activeWoItemIndex].expenses[activeItemIndex].name
"
v-model="value.items[activeWoItemIndex].tasks[activeItemIndex].name"
:readonly="formState.readOnly"
:disabled="isDeleted"
:label="$ay.t('WorkOrderItemExpenseName')"
:ref="
`Items[${activeWoItemIndex}].expenses[
`Items[${activeWoItemIndex}].tasks[
${activeItemIndex}
].name`
"
:error-messages="
form().serverErrors(
this,
`Items[${activeWoItemIndex}].expenses[
`Items[${activeWoItemIndex}].tasks[
${activeItemIndex}
].name`
)
"
@input="
fieldValueChanged(`Items[${activeWoItemIndex}].expenses[
fieldValueChanged(`Items[${activeWoItemIndex}].tasks[
${activeItemIndex}
].name`)
"
@@ -125,33 +123,33 @@
>
<gz-currency
v-model="
value.items[activeWoItemIndex].expenses[activeItemIndex].totalCost
value.items[activeWoItemIndex].tasks[activeItemIndex].totalCost
"
:readonly="formState.readOnly || isDeleted"
:disabled="isDeleted"
:label="$ay.t('WorkOrderItemExpenseTotalCost')"
:ref="
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].totalCost`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].totalCost`
"
data-cy="expenseTotalCost"
:error-messages="
form().serverErrors(
this,
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].totalCost`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].totalCost`
)
"
:rules="[
form().decimalValid(
this,
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].totalCost`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].totalCost`
),
form().required(
this,
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].totalCost`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].totalCost`
)
]"
@input="
fieldValueChanged(`Items[${activeWoItemIndex}].expenses[
fieldValueChanged(`Items[${activeWoItemIndex}].tasks[
${activeItemIndex}
].totalCost`)
"
@@ -167,34 +165,33 @@
>
<gz-currency
v-model="
value.items[activeWoItemIndex].expenses[activeItemIndex]
.chargeAmount
value.items[activeWoItemIndex].tasks[activeItemIndex].chargeAmount
"
:readonly="formState.readOnly || isDeleted"
:disabled="isDeleted"
:label="$ay.t('WorkOrderItemExpenseChargeAmount')"
:ref="
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].chargeAmount`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].chargeAmount`
"
data-cy="expenseChargeAmount"
:error-messages="
form().serverErrors(
this,
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].chargeAmount`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].chargeAmount`
)
"
:rules="[
form().decimalValid(
this,
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].chargeAmount`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].chargeAmount`
),
form().required(
this,
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].chargeAmount`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].chargeAmount`
)
]"
@input="
fieldValueChanged(`Items[${activeWoItemIndex}].expenses[
fieldValueChanged(`Items[${activeWoItemIndex}].tasks[
${activeItemIndex}
].chargeAmount`)
"
@@ -210,24 +207,24 @@
>
<v-checkbox
v-model="
value.items[activeWoItemIndex].expenses[activeItemIndex]
value.items[activeWoItemIndex].tasks[activeItemIndex]
.chargeToCustomer
"
:readonly="formState.readOnly"
:disabled="isDeleted"
:label="$ay.t('WorkOrderItemExpenseChargeToCustomer')"
:ref="
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].chargeToCustomer`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].chargeToCustomer`
"
data-cy="chargeToCustomer"
:error-messages="
form().serverErrors(
this,
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].chargeToCustomer`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].chargeToCustomer`
)
"
@change="
fieldValueChanged(`Items[${activeWoItemIndex}].expenses[
fieldValueChanged(`Items[${activeWoItemIndex}].tasks[
${activeItemIndex}
].chargeToCustomer`)
"
@@ -243,33 +240,33 @@
>
<gz-currency
v-model="
value.items[activeWoItemIndex].expenses[activeItemIndex].taxPaid
value.items[activeWoItemIndex].tasks[activeItemIndex].taxPaid
"
:readonly="formState.readOnly || isDeleted"
:disabled="isDeleted"
:label="$ay.t('WorkOrderItemExpenseTaxPaid')"
:ref="
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].taxPaid`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].taxPaid`
"
data-cy="expenseTaxPaid"
:error-messages="
form().serverErrors(
this,
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].taxPaid`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].taxPaid`
)
"
:rules="[
form().decimalValid(
this,
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].taxPaid`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].taxPaid`
),
form().required(
this,
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].taxPaid`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].taxPaid`
)
]"
@input="
fieldValueChanged(`Items[${activeWoItemIndex}].expenses[
fieldValueChanged(`Items[${activeWoItemIndex}].tasks[
${activeItemIndex}
].taxPaid`)
"
@@ -287,28 +284,28 @@
:aya-type="$ay.ayt().TaxCode"
:show-edit-icon="true"
v-model="
value.items[activeWoItemIndex].expenses[activeItemIndex]
value.items[activeWoItemIndex].tasks[activeItemIndex]
.chargeTaxCodeId
"
:readonly="formState.readOnly || isDeleted"
:disabled="isDeleted"
:label="$ay.t('WorkOrderItemExpenseChargeTaxCodeID')"
:ref="
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].chargeTaxCodeId`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].chargeTaxCodeId`
"
data-cy="expenseChargeTaxCode"
:error-messages="
form().serverErrors(
this,
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].chargeTaxCodeId`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].chargeTaxCodeId`
)
"
@input="
fieldValueChanged(
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].chargeTaxCodeId`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].chargeTaxCodeId`
)
"
@update:name="taxCodeChange"
@update:name="statusChange"
></gz-pick-list>
</v-col>
@@ -321,24 +318,24 @@
>
<v-checkbox
v-model="
value.items[activeWoItemIndex].expenses[activeItemIndex]
value.items[activeWoItemIndex].tasks[activeItemIndex]
.reimburseUser
"
:readonly="formState.readOnly"
:disabled="isDeleted"
:label="$ay.t('WorkOrderItemExpenseReimburseUser')"
:ref="
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].reimburseUser`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].reimburseUser`
"
data-cy="expenseReimburseUser"
:error-messages="
form().serverErrors(
this,
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].reimburseUser`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].reimburseUser`
)
"
@change="
fieldValueChanged(`Items[${activeWoItemIndex}].expenses[
fieldValueChanged(`Items[${activeWoItemIndex}].tasks[
${activeItemIndex}
].reimburseUser`)
"
@@ -357,24 +354,24 @@
variant="tech"
:show-edit-icon="true"
v-model="
value.items[activeWoItemIndex].expenses[activeItemIndex].userId
value.items[activeWoItemIndex].tasks[activeItemIndex].userId
"
:readonly="formState.readOnly || isDeleted"
:disabled="isDeleted"
:label="$ay.t('WorkOrderItemExpenseUserID')"
:ref="
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].userId`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].userId`
"
data-cy="expenseUser"
:error-messages="
form().serverErrors(
this,
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].userId`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].userId`
)
"
@input="
fieldValueChanged(
`Items[${activeWoItemIndex}].expenses[${activeItemIndex}].userId`
`Items[${activeWoItemIndex}].tasks[${activeItemIndex}].userId`
)
"
@update:name="userChange"
@@ -387,8 +384,7 @@
>
<v-textarea
v-model="
value.items[activeWoItemIndex].expenses[activeItemIndex]
.description
value.items[activeWoItemIndex].tasks[activeItemIndex].description
"
:readonly="formState.readOnly"
:disabled="isDeleted"
@@ -396,19 +392,19 @@
:error-messages="
form().serverErrors(
this,
`Items[${activeWoItemIndex}].expenses[
`Items[${activeWoItemIndex}].tasks[
${activeItemIndex}
].description`
)
"
:ref="
`Items[${activeWoItemIndex}].expenses[
`Items[${activeWoItemIndex}].tasks[
${activeItemIndex}
].description`
"
data-cy="expenseDescription"
@input="
fieldValueChanged(`Items[${activeWoItemIndex}].expenses[
fieldValueChanged(`Items[${activeWoItemIndex}].tasks[
${activeItemIndex}
].description`)
"
@@ -463,32 +459,25 @@ export default {
},
methods: {
userChange(newName) {
this.value.items[this.activeWoItemIndex].expenses[
this.value.items[this.activeWoItemIndex].tasks[
this.activeItemIndex
].userViz = newName;
].completedByUserViz = newName;
},
taxCodeChange(newName) {
this.value.items[this.activeWoItemIndex].expenses[
statusChange(newName) {
this.value.items[this.activeWoItemIndex].tasks[
this.activeItemIndex
].chargeTaxCodeViz = newName;
].statusViz = newName;
},
newItem() {
let newIndex = this.value.items[this.activeWoItemIndex].expenses.length;
this.value.items[this.activeWoItemIndex].expenses.push({
let newIndex = this.value.items[this.activeWoItemIndex].tasks.length;
this.value.items[this.activeWoItemIndex].tasks.push({
id: 0,
concurrency: 0,
description: null,
name: null,
totalCost: 0,
chargeAmount: 0,
taxPaid: 0,
chargeTaxCodeId: 0,
chargeTaxCodeViz: null,
reimburseUser: false,
userId: null,
userViz: null,
chargeToCustomer: false,
sequence: newIndex + 1, //indexes are zero based but sequences are visible to user so 1 based
task: null,
status: 1, //incomplete==1
completedByUserId: null,
completedDate: null,
isDirty: true,
workOrderItemId: this.value.items[this.activeWoItemIndex].id,
uid: Date.now() //used for error tracking / display
@@ -498,13 +487,13 @@ export default {
this.activeItemIndex = newIndex;
},
unDeleteItem() {
this.value.items[this.activeWoItemIndex].expenses[
this.value.items[this.activeWoItemIndex].tasks[
this.activeItemIndex
].deleted = false;
this.setDefaultView();
},
deleteItem() {
this.value.items[this.activeWoItemIndex].expenses[
this.value.items[this.activeWoItemIndex].tasks[
this.activeItemIndex
].deleted = true;
this.setDefaultView();
@@ -512,7 +501,7 @@ export default {
},
setDefaultView: function() {
//if only one record left then display it otherwise just let the datatable show what the user can click on
if (this.value.items[this.activeWoItemIndex].expenses.length == 1) {
if (this.value.items[this.activeWoItemIndex].tasks.length == 1) {
this.selectedRow = [{ index: 0 }];
this.activeItemIndex = 0;
} else {
@@ -530,7 +519,7 @@ export default {
fieldValueChanged(ref) {
if (!this.formState.loading && !this.formState.readonly) {
//flag this record dirty so it gets picked up by save
this.value.items[this.activeWoItemIndex].expenses[
this.value.items[this.activeWoItemIndex].tasks[
this.activeItemIndex
].isDirty = true;
window.$gz.form.fieldValueChanged(this.pvm, ref);
@@ -544,8 +533,8 @@ export default {
itemRowClasses: function(item) {
let ret = "";
const isDeleted =
this.value.items[this.activeWoItemIndex].expenses[item.index]
.deleted === true;
this.value.items[this.activeWoItemIndex].tasks[item.index].deleted ===
true;
const hasError = this.form().childRowHasError(
this,
@@ -564,15 +553,14 @@ export default {
computed: {
isDeleted: function() {
if (
this.value.items[this.activeWoItemIndex].expenses[
this.activeItemIndex
] == null
this.value.items[this.activeWoItemIndex].tasks[this.activeItemIndex] ==
null
) {
this.setDefaultView();
return true;
}
return (
this.value.items[this.activeWoItemIndex].expenses[this.activeItemIndex]
this.value.items[this.activeWoItemIndex].tasks[this.activeItemIndex]
.deleted === true
);
},
@@ -678,7 +666,7 @@ export default {
return headers;
},
itemList: function() {
return this.value.items[this.activeWoItemIndex].expenses.map((x, i) => {
return this.value.items[this.activeWoItemIndex].tasks.map((x, i) => {
return {
index: i,
id: x.id,
@@ -727,16 +715,16 @@ export default {
return this.pvm.formCustomTemplateKey;
},
showTable: function() {
return this.value.items[this.activeWoItemIndex].expenses.length > 1;
return this.value.items[this.activeWoItemIndex].tasks.length > 1;
},
canAdd: function() {
return this.pvm.rights.change && this.pvm.subRights.expenses.create;
return this.pvm.rights.change && this.pvm.subRights.tasks.create;
},
canDelete: function() {
return (
this.activeItemIndex != null &&
this.pvm.rights.change &&
this.pvm.subRights.expenses.delete
this.pvm.subRights.tasks.delete
);
}
}