This commit is contained in:
2021-01-05 22:46:35 +00:00
parent 2b669e9560
commit a0119ef380
2 changed files with 213 additions and 72 deletions

View File

@@ -18,6 +18,24 @@
></v-text-field>
</v-col>
<v-col
v-if="form().showMe(this, 'LoanUnitSerial')"
cols="12"
sm="6"
lg="4"
xl="3"
>
<v-text-field
v-model="obj.serial"
:readonly="formState.readOnly"
:label="$ay.t('LoanUnitSerial')"
ref="serial"
data-cy="serial"
:error-messages="form().serverErrors(this, 'serial')"
@input="fieldValueChanged('serial')"
></v-text-field>
</v-col>
<v-col
v-if="form().showMe(this, 'Active')"
cols="12"
@@ -36,84 +54,159 @@
></v-checkbox>
</v-col>
<!--
<v-col
v-if="form().showMe(this, 'LoanUnitAccountNumber')"
v-if="form().showMe(this, 'LoanUnitRateHour')"
cols="12"
sm="6"
lg="4"
xl="3"
>
<v-text-field
v-model="obj.accountNumber"
<gz-currency
v-model="obj.rateHour"
:readonly="formState.readOnly"
:label="$ay.t('LoanUnitAccountNumber')"
ref="accountNumber"
data-cy="accountNumber"
:error-messages="form().serverErrors(this, 'accountNumber')"
@input="fieldValueChanged('accountNumber')"
></v-text-field>
</v-col>
<v-col
v-if="form().showMe(this, 'LoanUnitLoanUnitOverseerID')"
cols="12"
sm="6"
lg="4"
xl="3"
>
<gz-pick-list
:ayaType="ayaTypes().User"
:variant="'inside'"
:showEditIcon="true"
v-model="obj.projectOverseerId"
:readonly="formState.readOnly"
:label="$ay.t('LoanUnitLoanUnitOverseerID')"
ref="projectOverseerId"
data-cy="projectOverseerId"
:error-messages="form().serverErrors(this, 'projectOverseerId')"
@input="fieldValueChanged('projectOverseerId')"
></gz-pick-list>
</v-col>
<v-col
v-if="form().showMe(this, 'LoanUnitDateStarted')"
cols="12"
sm="6"
lg="4"
xl="3"
>
<gz-date-time-picker
:label="$ay.t('LoanUnitDateStarted')"
v-model="obj.dateStarted"
:readonly="formState.readOnly"
ref="dateStarted"
testId="dateStarted"
:error-messages="form().serverErrors(this, 'dateStarted')"
@input="fieldValueChanged('dateStarted')"
></gz-date-time-picker>
</v-col>
<v-col
v-if="form().showMe(this, 'LoanUnitDateCompleted')"
cols="12"
sm="6"
lg="4"
xl="3"
>
<gz-date-time-picker
:label="$ay.t('LoanUnitDateCompleted')"
:label="$ay.t('LoanUnitRateHour')"
ref="rateHour"
data-cy="rateHour"
:rules="[
form().datePrecedence(this, 'dateStarted', 'dateCompleted')
form().decimalValid(this, 'rateHour'),
form().required(this, 'rateHour')
]"
:error-messages="form().serverErrors(this, 'dateCompleted')"
v-model="obj.dateCompleted"
:error-messages="form().serverErrors(this, 'rateHour')"
@input="fieldValueChanged('rateHour')"
></gz-currency>
</v-col>
<v-col
v-if="form().showMe(this, 'LoanUnitRateHalfDay')"
cols="12"
sm="6"
lg="4"
xl="3"
>
<gz-currency
v-model="obj.rateHalfDay"
:readonly="formState.readOnly"
ref="dateCompleted"
testId="dateCompleted"
@input="fieldValueChanged('dateCompleted')"
></gz-date-time-picker>
</v-col> -->
:label="$ay.t('LoanUnitRateHalfDay')"
ref="rateHalfDay"
data-cy="rateHalfDay"
:rules="[
form().decimalValid(this, 'rateHalfDay'),
form().required(this, 'rateHalfDay')
]"
:error-messages="form().serverErrors(this, 'rateHalfDay')"
@input="fieldValueChanged('rateHalfDay')"
></gz-currency>
</v-col>
<v-col
v-if="form().showMe(this, 'LoanUnitRateDay')"
cols="12"
sm="6"
lg="4"
xl="3"
>
<gz-currency
v-model="obj.rateDay"
:readonly="formState.readOnly"
:label="$ay.t('LoanUnitRateDay')"
ref="rateDay"
data-cy="rateDay"
:rules="[
form().decimalValid(this, 'rateDay'),
form().required(this, 'rateDay')
]"
:error-messages="form().serverErrors(this, 'rateDay')"
@input="fieldValueChanged('rateDay')"
></gz-currency>
</v-col>
<v-col
v-if="form().showMe(this, 'LoanUnitRateWeek')"
cols="12"
sm="6"
lg="4"
xl="3"
>
<gz-currency
v-model="obj.rateWeek"
:readonly="formState.readOnly"
:label="$ay.t('LoanUnitRateWeek')"
ref="rateWeek"
data-cy="rateWeek"
:rules="[
form().decimalValid(this, 'rateWeek'),
form().required(this, 'rateWeek')
]"
:error-messages="form().serverErrors(this, 'rateWeek')"
@input="fieldValueChanged('rateWeek')"
></gz-currency>
</v-col>
<v-col
v-if="form().showMe(this, 'LoanUnitRateMonth')"
cols="12"
sm="6"
lg="4"
xl="3"
>
<gz-currency
v-model="obj.rateMonth"
:readonly="formState.readOnly"
:label="$ay.t('LoanUnitRateMonth')"
ref="rateMonth"
data-cy="rateMonth"
:rules="[
form().decimalValid(this, 'rateMonth'),
form().required(this, 'rateMonth')
]"
:error-messages="form().serverErrors(this, 'rateMonth')"
@input="fieldValueChanged('rateMonth')"
></gz-currency>
</v-col>
<v-col
v-if="form().showMe(this, 'LoanUnitRateYear')"
cols="12"
sm="6"
lg="4"
xl="3"
>
<gz-currency
v-model="obj.rateYear"
:readonly="formState.readOnly"
:label="$ay.t('LoanUnitRateYear')"
ref="rateYear"
data-cy="rateYear"
:rules="[
form().decimalValid(this, 'rateYear'),
form().required(this, 'rateYear')
]"
:error-messages="form().serverErrors(this, 'rateYear')"
@input="fieldValueChanged('rateYear')"
></gz-currency>
</v-col>
<v-col
v-if="form().showMe(this, 'LoanUnitDefaultRate')"
cols="12"
sm="6"
lg="4"
xl="3"
>
<v-select
v-model="obj.defaultRate"
:items="selectLists.loanunitrateunit"
item-text="name"
item-value="id"
:readonly="formState.readOnly"
:label="$ay.t('LoanUnitDefaultRate')"
ref="defaultRate"
data-cy="defaultRate"
:rules="[form().integerValid(this, 'defaultRate')]"
:error-messages="form().serverErrors(this, 'defaultRate')"
@input="fieldValueChanged('defaultRate')"
></v-select>
</v-col>
<!-- --------------------------------- -->
<v-col v-if="form().showMe(this, 'Notes')" cols="12">
<v-textarea
@@ -253,10 +346,39 @@ export default {
data() {
return {
formCustomTemplateKey: FORM_CUSTOM_TEMPLATE_KEY,
selectLists: {
loanunitrateunit: []
},
obj:
//IMPORTANT NOTE: Fields that are NON NULLABLE in the schema for the table but *are* hideable **MUST** have a default value set here or else there will be no way to save the record
//I.E. Serial, usertype fields, ACTIVE
//Also, if it's a non-nullable Enum backed field then it should have a valid selection i.e. not zero if there is no zero
/*
{
"data": {
"id": 4,
"concurrency": 3041599,
"name": "Fantastic Concrete Chicken",
"active": true,
"notes": "Velit iste aspernatur quia numquam consectetur nemo maiores.",
"wiki": null,
"customFields": null,
"tags": [
"quince"
],
"serial": "44420135",
"workOrderItemLoanId": null,
"rateHour": 6.6008,
"rateHalfDay": 26.403,
"rateDay": 52.8061,
"rateWeek": 242.908,
"rateMonth": 1108.9278,
"rateYear": 12631.2152,
"defaultRate": 3,
"unitId": null
}
}
*/
{
id: 0,
concurrency: 0,
@@ -266,10 +388,16 @@ export default {
wiki: null,
customFields: "{}",
tags: [],
dateStarted: window.$gz.locale.nowUTC8601String(),
dateCompleted: null,
projectOverseerId: null,
accountNumber: null
serial: null,
workOrderItemLoanId: null,
rateHour: 0,
rateHalfDay: 0,
rateDay: 0,
rateWeek: 0,
rateMonth: 0,
rateYear: 0,
defaultRate: 1,
unitId: null
},
formState: {
ready: false,
@@ -744,4 +872,15 @@ async function fetchTranslatedText(vm) {
"LoanUnitCustom16"
]);
}
//////////////////////
//
//
async function populateSelectionLists(vm) {
//ensure the pick lists required are pre-fetched
await window.$gz.enums.fetchEnumList("loanunitrateunit");
vm.selectLists.loanunitrateunit = window.$gz.enums.getSelectionList(
"loanunitrateunit"
);
}
</script>