This commit is contained in:
@@ -244,6 +244,9 @@ Vue.prototype.$ay = {
|
|||||||
},
|
},
|
||||||
cur: function(value) {
|
cur: function(value) {
|
||||||
return locale.currencyLocalized(value);
|
return locale.currencyLocalized(value);
|
||||||
|
},
|
||||||
|
util: function() {
|
||||||
|
return gzutil;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
//disable the devtools nag
|
//disable the devtools nag
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
<gz-duration-picker
|
<gz-duration-picker
|
||||||
v-model="obj.responseTime"
|
v-model="obj.responseTime"
|
||||||
:readonly="formState.readOnly"
|
:readonly="formState.readOnly"
|
||||||
:label="$ay.t('ResponseTime')"
|
:label="$ay.t('ContractDefaultResponseTime')"
|
||||||
:show-seconds="false"
|
:show-seconds="false"
|
||||||
ref="responseTime"
|
ref="responseTime"
|
||||||
data-cy="responseTime"
|
data-cy="responseTime"
|
||||||
@@ -31,41 +31,199 @@
|
|||||||
></gz-duration-picker>
|
></gz-duration-picker>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col cols="12">
|
<v-col cols="12">
|
||||||
<span class="text-h6">
|
<span class="text-h5">
|
||||||
{{ $ay.t("ContractDefaultAdjustments") }}</span
|
{{ $ay.t("ContractDefaultAdjustments") }}</span
|
||||||
>
|
>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col cols="12" sm="6" lg="4" xl="3">
|
|
||||||
<gz-decimal
|
<v-col cols="12">
|
||||||
v-model="obj.partsOverride"
|
<v-row>
|
||||||
:readonly="formState.readOnly"
|
<v-col>
|
||||||
:label="$ay.t('TaxCodeTaxA')"
|
<gz-decimal
|
||||||
ref="partsOverride"
|
v-model="obj.partsOverride"
|
||||||
data-cy="partsOverride"
|
:readonly="formState.readOnly"
|
||||||
:rules="[
|
:label="$ay.t('PartList')"
|
||||||
form().decimalValid(this, 'partsOverride'),
|
ref="partsOverride"
|
||||||
form().required(this, 'partsOverride')
|
data-cy="partsOverride"
|
||||||
]"
|
:rules="[
|
||||||
:error-messages="form().serverErrors(this, 'partsOverride')"
|
form().decimalValid(this, 'partsOverride'),
|
||||||
@input="fieldValueChanged('partsOverride')"
|
form().required(this, 'partsOverride')
|
||||||
></gz-decimal>
|
]"
|
||||||
</v-col>
|
:error-messages="form().serverErrors(this, 'partsOverride')"
|
||||||
<v-col cols="12" sm="6" lg="4" xl="3">
|
@input="fieldValueChanged('partsOverride')"
|
||||||
<v-select
|
></gz-decimal>
|
||||||
v-model="obj.partsOverrideType"
|
</v-col>
|
||||||
:items="selectLists.overrideTypes"
|
|
||||||
item-text="name"
|
<v-col>
|
||||||
item-value="id"
|
<v-select
|
||||||
:readonly="formState.readOnly"
|
v-model="obj.partsOverrideType"
|
||||||
:label="$ay.t('ContractOverrideType')"
|
:items="selectLists.overrideTypes"
|
||||||
ref="partsOverrideType"
|
item-text="name"
|
||||||
data-cy="partsOverrideType"
|
item-value="id"
|
||||||
:rules="[form().integerValid(this, 'partsOverrideType')]"
|
:readonly="formState.readOnly"
|
||||||
:error-messages="form().serverErrors(this, 'partsOverrideType')"
|
:label="$ay.t('ContractOverrideType')"
|
||||||
@input="fieldValueChanged('partsOverrideType')"
|
ref="partsOverrideType"
|
||||||
></v-select>
|
data-cy="partsOverrideType"
|
||||||
|
:rules="[form().integerValid(this, 'partsOverrideType')]"
|
||||||
|
:error-messages="
|
||||||
|
form().serverErrors(this, 'partsOverrideType')
|
||||||
|
"
|
||||||
|
@input="fieldValueChanged('partsOverrideType')"
|
||||||
|
></v-select>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
<v-row>
|
||||||
|
<v-col>
|
||||||
|
<gz-decimal
|
||||||
|
v-model="obj.serviceRatesOverride"
|
||||||
|
:readonly="formState.readOnly"
|
||||||
|
:label="$ay.t('ServiceRateList')"
|
||||||
|
ref="serviceRatesOverride"
|
||||||
|
data-cy="serviceRatesOverride"
|
||||||
|
:rules="[
|
||||||
|
form().decimalValid(this, 'serviceRatesOverride'),
|
||||||
|
form().required(this, 'serviceRatesOverride')
|
||||||
|
]"
|
||||||
|
:error-messages="
|
||||||
|
form().serverErrors(this, 'serviceRatesOverride')
|
||||||
|
"
|
||||||
|
@input="fieldValueChanged('serviceRatesOverride')"
|
||||||
|
></gz-decimal>
|
||||||
|
</v-col>
|
||||||
|
|
||||||
|
<v-col>
|
||||||
|
<v-select
|
||||||
|
v-model="obj.serviceRatesOverrideType"
|
||||||
|
:items="selectLists.overrideTypes"
|
||||||
|
item-text="name"
|
||||||
|
item-value="id"
|
||||||
|
:readonly="formState.readOnly"
|
||||||
|
:label="$ay.t('ContractOverrideType')"
|
||||||
|
ref="serviceRatesOverrideType"
|
||||||
|
data-cy="serviceRatesOverrideType"
|
||||||
|
:rules="[
|
||||||
|
form().integerValid(this, 'serviceRatesOverrideType')
|
||||||
|
]"
|
||||||
|
:error-messages="
|
||||||
|
form().serverErrors(this, 'serviceRatesOverrideType')
|
||||||
|
"
|
||||||
|
@input="fieldValueChanged('serviceRatesOverrideType')"
|
||||||
|
></v-select>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
|
||||||
|
<v-row>
|
||||||
|
<v-col>
|
||||||
|
<gz-decimal
|
||||||
|
v-model="obj.travelRatesOverride"
|
||||||
|
:readonly="formState.readOnly"
|
||||||
|
:label="$ay.t('TravelRateList')"
|
||||||
|
ref="travelRatesOverride"
|
||||||
|
data-cy="travelRatesOverride"
|
||||||
|
:rules="[
|
||||||
|
form().decimalValid(this, 'travelRatesOverride'),
|
||||||
|
form().required(this, 'travelRatesOverride')
|
||||||
|
]"
|
||||||
|
:error-messages="
|
||||||
|
form().serverErrors(this, 'travelRatesOverride')
|
||||||
|
"
|
||||||
|
@input="fieldValueChanged('travelRatesOverride')"
|
||||||
|
></gz-decimal>
|
||||||
|
</v-col>
|
||||||
|
|
||||||
|
<v-col>
|
||||||
|
<v-select
|
||||||
|
v-model="obj.travelRatesOverrideType"
|
||||||
|
:items="selectLists.overrideTypes"
|
||||||
|
item-text="name"
|
||||||
|
item-value="id"
|
||||||
|
:readonly="formState.readOnly"
|
||||||
|
:label="$ay.t('ContractOverrideType')"
|
||||||
|
ref="travelRatesOverrideType"
|
||||||
|
data-cy="travelRatesOverrideType"
|
||||||
|
:rules="[
|
||||||
|
form().integerValid(this, 'travelRatesOverrideType')
|
||||||
|
]"
|
||||||
|
:error-messages="
|
||||||
|
form().serverErrors(this, 'travelRatesOverrideType')
|
||||||
|
"
|
||||||
|
@input="fieldValueChanged('travelRatesOverrideType')"
|
||||||
|
></v-select>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
||||||
|
<v-col cols="12" class="mt-5">
|
||||||
|
<span class="text-h5">
|
||||||
|
{{ $ay.t("ContractTaggedAdjustments") }}</span
|
||||||
|
>
|
||||||
|
</v-col>
|
||||||
|
<!-- ################################ TAGGED PARTS TABLE ############################### -->
|
||||||
|
<v-col cols="12">
|
||||||
|
<span class="text-h6"> {{ $ay.t("PartList") }}</span
|
||||||
|
><v-btn icon @click="addContractPartOverrideItem()">
|
||||||
|
<v-icon color="primary">$ayiPlus</v-icon>
|
||||||
|
</v-btn>
|
||||||
|
</v-col>
|
||||||
|
<v-simple-table>
|
||||||
|
<template v-slot:default>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="text-right">
|
||||||
|
{{ $ay.t("ContractAdjustment") }}
|
||||||
|
</th>
|
||||||
|
<th class="text-left">
|
||||||
|
{{ $ay.t("ContractOverrideType") }}
|
||||||
|
</th>
|
||||||
|
<th class="text-left">
|
||||||
|
{{ $ay.t("Tags") }}
|
||||||
|
</th>
|
||||||
|
<th class="text-right">
|
||||||
|
<!-- CONTROL PANEL -->
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody>
|
||||||
|
<tr
|
||||||
|
v-for="item in obj.contractPartOverrideItems"
|
||||||
|
:key="item.Id"
|
||||||
|
>
|
||||||
|
<td class="text-right">{{ item.override * 100 }}%</td>
|
||||||
|
<td class="text-left">
|
||||||
|
{{
|
||||||
|
selectLists.overrideTypes.find(
|
||||||
|
z => z.id == item.overrideType
|
||||||
|
).name
|
||||||
|
}}
|
||||||
|
</td>
|
||||||
|
<td class="text-left">
|
||||||
|
{{ $ay.util().formatTags(item.tags) }}
|
||||||
|
</td>
|
||||||
|
<td class="text-right">
|
||||||
|
<v-btn
|
||||||
|
icon
|
||||||
|
@click="editContractPartOverrideItem(item)"
|
||||||
|
class="ml-4"
|
||||||
|
>
|
||||||
|
<v-icon>
|
||||||
|
$ayiEdit
|
||||||
|
</v-icon>
|
||||||
|
</v-btn>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</template>
|
||||||
|
</v-simple-table>
|
||||||
|
|
||||||
|
<!-- tagged service rate items table here
|
||||||
|
tagged travel rate items table here -->
|
||||||
|
|
||||||
|
<v-col cols="12" class="mt-5">
|
||||||
|
<span class="text-h5"> {{ $ay.t("ContractRateList") }}</span>
|
||||||
|
</v-col>
|
||||||
|
service rate table here<br />
|
||||||
|
travel rate table here
|
||||||
<v-col cols="12" sm="6" lg="4" xl="3">
|
<v-col cols="12" sm="6" lg="4" xl="3">
|
||||||
<v-checkbox
|
<v-checkbox
|
||||||
v-model="obj.active"
|
v-model="obj.active"
|
||||||
@@ -155,6 +313,191 @@
|
|||||||
:size="60"
|
:size="60"
|
||||||
></v-progress-circular>
|
></v-progress-circular>
|
||||||
</template>
|
</template>
|
||||||
|
<!-- #########################################################################################-->
|
||||||
|
<!-- ########################## CONTRACTPARTOVERRIDE ITEM EDIT FORM ###############################-->
|
||||||
|
<!-- #########################################################################################-->
|
||||||
|
<template v-if="obj.contractPartOverrideItems.length">
|
||||||
|
<v-row justify="center">
|
||||||
|
<v-dialog v-model="editContractPartOverrideItemDialog">
|
||||||
|
<v-card>
|
||||||
|
<v-card-title> </v-card-title>
|
||||||
|
<v-card-text>
|
||||||
|
<v-row>
|
||||||
|
<v-col cols="12" sm="6" lg="4" xl="3">
|
||||||
|
<gz-decimal
|
||||||
|
v-model="
|
||||||
|
obj.contractPartOverrideItems[
|
||||||
|
editContractPartOverrideItemIndex
|
||||||
|
].override
|
||||||
|
"
|
||||||
|
:readonly="formState.readOnly"
|
||||||
|
:label="$ay.t('ContractAdjustment')"
|
||||||
|
ref="ContractPartOverrideItems.Override"
|
||||||
|
data-cy="ContractPartOverrideItems.Override"
|
||||||
|
:rules="[
|
||||||
|
form().decimalValid(
|
||||||
|
this,
|
||||||
|
'ContractPartOverrideItems.Override'
|
||||||
|
),
|
||||||
|
form().required(
|
||||||
|
this,
|
||||||
|
'ContractPartOverrideItems.Override'
|
||||||
|
)
|
||||||
|
]"
|
||||||
|
:error-messages="
|
||||||
|
form().serverErrors(
|
||||||
|
this,
|
||||||
|
`ContractPartOverrideItems[${editContractPartOverrideItemIndex}].Override`
|
||||||
|
)
|
||||||
|
"
|
||||||
|
@input="
|
||||||
|
fieldValueChanged(
|
||||||
|
`ContractPartOverrideItems[${editContractPartOverrideItemIndex}].Override`
|
||||||
|
)
|
||||||
|
"
|
||||||
|
></gz-decimal>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="12" sm="6" lg="4" xl="3">
|
||||||
|
<v-select
|
||||||
|
v-model="
|
||||||
|
obj.contractPartOverrideItems[
|
||||||
|
editContractPartOverrideItemIndex
|
||||||
|
].overrideType
|
||||||
|
"
|
||||||
|
:items="selectLists.overrideTypes"
|
||||||
|
item-text="name"
|
||||||
|
item-value="id"
|
||||||
|
:readonly="formState.readOnly"
|
||||||
|
:label="$ay.t('ContractOverrideType')"
|
||||||
|
ref="ContractPartOverrideItems.Override"
|
||||||
|
data-cy="ContractPartOverrideItems.Override"
|
||||||
|
:rules="[
|
||||||
|
form().integerValid(
|
||||||
|
this,
|
||||||
|
'ContractPartOverrideItems.Override'
|
||||||
|
)
|
||||||
|
]"
|
||||||
|
:error-messages="
|
||||||
|
form().serverErrors(
|
||||||
|
this,
|
||||||
|
`ContractPartOverrideItems[${editContractPartOverrideItemIndex}].OverrideType`
|
||||||
|
)
|
||||||
|
"
|
||||||
|
@input="
|
||||||
|
fieldValueChanged(
|
||||||
|
`ContractPartOverrideItems[${editContractPartOverrideItemIndex}].OverrideType`
|
||||||
|
)
|
||||||
|
"
|
||||||
|
></v-select>
|
||||||
|
</v-col>
|
||||||
|
|
||||||
|
<v-col cols="12" sm="6" lg="4" xl="3">
|
||||||
|
<gz-tag-picker
|
||||||
|
v-model="
|
||||||
|
obj.contractPartOverrideItems[
|
||||||
|
editContractPartOverrideItemIndex
|
||||||
|
].tags
|
||||||
|
"
|
||||||
|
:readonly="formState.readOnly"
|
||||||
|
ref="ContractPartOverrideItems.Tags"
|
||||||
|
data-cy="ContractPartOverrideItems.Tags"
|
||||||
|
:rules="[
|
||||||
|
form().required(this, 'ContractPartOverrideItems.Tags')
|
||||||
|
]"
|
||||||
|
:error-messages="
|
||||||
|
form().serverErrors(
|
||||||
|
this,
|
||||||
|
`ContractPartOverrideItems[${editContractPartOverrideItemIndex}].Tags`
|
||||||
|
)
|
||||||
|
"
|
||||||
|
@input="
|
||||||
|
fieldValueChanged(
|
||||||
|
`ContractPartOverrideItems[${editContractPartOverrideItemIndex}].Tags`
|
||||||
|
)
|
||||||
|
"
|
||||||
|
></gz-tag-picker>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</v-card-text>
|
||||||
|
<v-card-actions>
|
||||||
|
<template v-if="!$vuetify.breakpoint.xs">
|
||||||
|
<v-btn
|
||||||
|
color="red darken-1"
|
||||||
|
text
|
||||||
|
@click="
|
||||||
|
deleteContractPartOverrideItem(
|
||||||
|
obj.contractPartOverrideItems[
|
||||||
|
editContractPartOverrideItemIndex
|
||||||
|
]
|
||||||
|
)
|
||||||
|
"
|
||||||
|
>{{ $ay.t("Delete") }}</v-btn
|
||||||
|
>
|
||||||
|
<v-spacer></v-spacer>
|
||||||
|
<v-btn
|
||||||
|
color="blue darken-1"
|
||||||
|
text
|
||||||
|
@click="editPoItemDialog = false"
|
||||||
|
>{{ $ay.t("Close") }}</v-btn
|
||||||
|
>
|
||||||
|
|
||||||
|
<v-btn
|
||||||
|
color="blue darken-1"
|
||||||
|
text
|
||||||
|
@click="addContractPartOverrideItem()"
|
||||||
|
class="ml-4"
|
||||||
|
>{{ $ay.t("New") }}</v-btn
|
||||||
|
>
|
||||||
|
|
||||||
|
<v-btn
|
||||||
|
color="blue darken-1"
|
||||||
|
text
|
||||||
|
@click="editContractPartOverrideItemDialog = false"
|
||||||
|
class="ml-4"
|
||||||
|
>{{ $ay.t("OK") }}</v-btn
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<!-- MOBILE FORMAT -->
|
||||||
|
<v-row>
|
||||||
|
<v-btn
|
||||||
|
class="mt-4"
|
||||||
|
block
|
||||||
|
text
|
||||||
|
color="blue darken-1"
|
||||||
|
@click="editContractPartOverrideItemDialog = false"
|
||||||
|
>{{ $ay.t("OK") }}</v-btn
|
||||||
|
>
|
||||||
|
<v-btn
|
||||||
|
class="mt-4"
|
||||||
|
block
|
||||||
|
text
|
||||||
|
color="blue darken-1"
|
||||||
|
@click="addContractPartOverrideItem()"
|
||||||
|
>{{ $ay.t("New") }}</v-btn
|
||||||
|
>
|
||||||
|
|
||||||
|
<v-btn
|
||||||
|
class="mt-8 mb-6"
|
||||||
|
block
|
||||||
|
text
|
||||||
|
color="red darken-1"
|
||||||
|
@click="
|
||||||
|
deleteContractPartOverrideItem(
|
||||||
|
obj.contractPartOverrideItems[
|
||||||
|
editContractPartOverrideItemIndex
|
||||||
|
]
|
||||||
|
)
|
||||||
|
"
|
||||||
|
>{{ $ay.t("Delete") }}</v-btn
|
||||||
|
>
|
||||||
|
</v-row>
|
||||||
|
</template>
|
||||||
|
</v-card-actions>
|
||||||
|
</v-card>
|
||||||
|
</v-dialog>
|
||||||
|
</v-row>
|
||||||
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -271,7 +614,9 @@ export default {
|
|||||||
ayaType: window.$gz.type.Contract,
|
ayaType: window.$gz.type.Contract,
|
||||||
selectLists: {
|
selectLists: {
|
||||||
overrideTypes: []
|
overrideTypes: []
|
||||||
}
|
},
|
||||||
|
editContractPartOverrideItemDialog: false,
|
||||||
|
editContractPartOverrideItemIndex: 0
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
//WATCHERS
|
//WATCHERS
|
||||||
@@ -309,6 +654,15 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
editContractPartOverrideItem: function(item) {
|
||||||
|
console.log("editContractPartOverrideItem", item);
|
||||||
|
},
|
||||||
|
addContractPartOverrideItem: function() {
|
||||||
|
console.log("addContractPartOverrideItem");
|
||||||
|
},
|
||||||
|
deleteContractPartOverrideItem: function() {
|
||||||
|
console.log("DeleteContractPartOverrideItem");
|
||||||
|
},
|
||||||
canSave: function() {
|
canSave: function() {
|
||||||
return this.formState.valid && this.formState.dirty;
|
return this.formState.valid && this.formState.dirty;
|
||||||
},
|
},
|
||||||
@@ -680,7 +1034,16 @@ async function fetchTranslatedText(vm) {
|
|||||||
"Contract",
|
"Contract",
|
||||||
"ContractName",
|
"ContractName",
|
||||||
"ContractNotes",
|
"ContractNotes",
|
||||||
|
"AlertNotes",
|
||||||
|
"ContractDefaultAdjustments",
|
||||||
|
"ContractTaggedAdjustments",
|
||||||
|
"ContractOverrideType",
|
||||||
|
"ContractAdjustment",
|
||||||
|
"ContractDefaultResponseTime",
|
||||||
|
"PartList",
|
||||||
|
"ServiceRateList",
|
||||||
|
"TravelRateList",
|
||||||
|
"ContractRateList",
|
||||||
"ContractCustom1",
|
"ContractCustom1",
|
||||||
"ContractCustom2",
|
"ContractCustom2",
|
||||||
"ContractCustom3",
|
"ContractCustom3",
|
||||||
|
|||||||
Reference in New Issue
Block a user