This commit is contained in:
2021-03-06 01:12:27 +00:00
parent c3b063b595
commit 8d889f0b16
2 changed files with 399 additions and 33 deletions

View File

@@ -244,6 +244,9 @@ Vue.prototype.$ay = {
},
cur: function(value) {
return locale.currencyLocalized(value);
},
util: function() {
return gzutil;
}
};
//disable the devtools nag

View File

@@ -22,7 +22,7 @@
<gz-duration-picker
v-model="obj.responseTime"
:readonly="formState.readOnly"
:label="$ay.t('ResponseTime')"
:label="$ay.t('ContractDefaultResponseTime')"
:show-seconds="false"
ref="responseTime"
data-cy="responseTime"
@@ -31,41 +31,199 @@
></gz-duration-picker>
</v-col>
<v-col cols="12">
<span class="text-h6">
<span class="text-h5">
{{ $ay.t("ContractDefaultAdjustments") }}</span
>
</v-col>
<v-col cols="12" sm="6" lg="4" xl="3">
<gz-decimal
v-model="obj.partsOverride"
:readonly="formState.readOnly"
:label="$ay.t('TaxCodeTaxA')"
ref="partsOverride"
data-cy="partsOverride"
:rules="[
form().decimalValid(this, 'partsOverride'),
form().required(this, 'partsOverride')
]"
:error-messages="form().serverErrors(this, 'partsOverride')"
@input="fieldValueChanged('partsOverride')"
></gz-decimal>
</v-col>
<v-col cols="12" sm="6" lg="4" xl="3">
<v-select
v-model="obj.partsOverrideType"
:items="selectLists.overrideTypes"
item-text="name"
item-value="id"
:readonly="formState.readOnly"
:label="$ay.t('ContractOverrideType')"
ref="partsOverrideType"
data-cy="partsOverrideType"
:rules="[form().integerValid(this, 'partsOverrideType')]"
:error-messages="form().serverErrors(this, 'partsOverrideType')"
@input="fieldValueChanged('partsOverrideType')"
></v-select>
<v-col cols="12">
<v-row>
<v-col>
<gz-decimal
v-model="obj.partsOverride"
:readonly="formState.readOnly"
:label="$ay.t('PartList')"
ref="partsOverride"
data-cy="partsOverride"
:rules="[
form().decimalValid(this, 'partsOverride'),
form().required(this, 'partsOverride')
]"
:error-messages="form().serverErrors(this, 'partsOverride')"
@input="fieldValueChanged('partsOverride')"
></gz-decimal>
</v-col>
<v-col>
<v-select
v-model="obj.partsOverrideType"
:items="selectLists.overrideTypes"
item-text="name"
item-value="id"
:readonly="formState.readOnly"
:label="$ay.t('ContractOverrideType')"
ref="partsOverrideType"
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 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-checkbox
v-model="obj.active"
@@ -155,6 +313,191 @@
:size="60"
></v-progress-circular>
</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>
</template>
@@ -271,7 +614,9 @@ export default {
ayaType: window.$gz.type.Contract,
selectLists: {
overrideTypes: []
}
},
editContractPartOverrideItemDialog: false,
editContractPartOverrideItemIndex: 0
};
},
//WATCHERS
@@ -309,6 +654,15 @@ export default {
}
},
methods: {
editContractPartOverrideItem: function(item) {
console.log("editContractPartOverrideItem", item);
},
addContractPartOverrideItem: function() {
console.log("addContractPartOverrideItem");
},
deleteContractPartOverrideItem: function() {
console.log("DeleteContractPartOverrideItem");
},
canSave: function() {
return this.formState.valid && this.formState.dirty;
},
@@ -680,7 +1034,16 @@ async function fetchTranslatedText(vm) {
"Contract",
"ContractName",
"ContractNotes",
"AlertNotes",
"ContractDefaultAdjustments",
"ContractTaggedAdjustments",
"ContractOverrideType",
"ContractAdjustment",
"ContractDefaultResponseTime",
"PartList",
"ServiceRateList",
"TravelRateList",
"ContractRateList",
"ContractCustom1",
"ContractCustom2",
"ContractCustom3",