This commit is contained in:
@@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user