diff --git a/ppr-ui/package-lock.json b/ppr-ui/package-lock.json index 7e2a9c884..70dde172d 100644 --- a/ppr-ui/package-lock.json +++ b/ppr-ui/package-lock.json @@ -1,12 +1,12 @@ { "name": "ppr-ui", - "version": "3.0.27", + "version": "3.0.28", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "ppr-ui", - "version": "3.0.27", + "version": "3.0.28", "dependencies": { "@bcrs-shared-components/input-field-date-picker": "^1.0.0", "@lemoncode/fonk": "^1.5.1", diff --git a/ppr-ui/package.json b/ppr-ui/package.json index 22690569d..0ac3d5231 100644 --- a/ppr-ui/package.json +++ b/ppr-ui/package.json @@ -1,6 +1,6 @@ { "name": "ppr-ui", - "version": "3.0.27", + "version": "3.0.28", "private": true, "appName": "Assets UI", "sbcName": "SBC Common Components", diff --git a/ppr-ui/src/components/mhrRegistration/HomeLocation/HomeLandOwnership.vue b/ppr-ui/src/components/mhrRegistration/HomeLocation/HomeLandOwnership.vue index 6cb550524..fc75dc38b 100644 --- a/ppr-ui/src/components/mhrRegistration/HomeLocation/HomeLandOwnership.vue +++ b/ppr-ui/src/components/mhrRegistration/HomeLocation/HomeLandOwnership.vue @@ -3,7 +3,7 @@ id="mhr-home-land-ownership" flat rounded - class="mhr-home-land-ownership pa-8" + class="mhr-home-land-ownership pa-8 pb-0 mt-8" > @@ -23,68 +23,50 @@ sm="9" >

- Is the manufactured home located on land that the homeowners own or on land that - they have a registered lease of 3 years or more? + {{ content.description }}

- - - - - - - - - - - + + + + +

Note: Land ownership or registered lease of the land for 3 years or more must be verifiable through the BC Land Title and Survey Authority (LTSA) or other authorized land authority.

- - - - +
+ +

Note: Written permission and tenancy agreements from the landowner @@ -95,8 +77,8 @@ authorities such as the applicable Municipality, Regional District, First Nation, or Provincial Crown Land Office.

- - +
+
@@ -107,15 +89,23 @@ import { computed, defineComponent, reactive, ref, toRefs, watch } from 'vue-dem import { useStore } from '@/store/store' import { storeToRefs } from 'pinia' import { useMhrValidations } from '@/composables' -import { FormIF } from '@/interfaces' +import { ContentIF, FormIF } from '@/interfaces' export default defineComponent({ name: 'HomeLandOwnership', props: { + ownLand: { + type: Boolean, + default: undefined + }, validate: { type: Boolean, default: false - } + }, + content: { + type: Object as () => ContentIF, + default: () => {} + }, }, setup (props) { const { @@ -127,13 +117,11 @@ export default defineComponent({ MhrSectVal, setValidation } = useMhrValidations(toRefs(getMhrRegistrationValidationModel.value)) - const { - getMhrRegistrationOwnLand - } = storeToRefs(useStore()) + const leaseOrOwnForm = ref(null) as FormIF const localState = reactive({ - isOwnLand: getMhrRegistrationOwnLand.value, + isOwnLand: props.ownLand, isValidHomeLandOwnership: computed((): boolean => { return localState.isOwnLand !== null }) @@ -167,11 +155,7 @@ export default defineComponent({ diff --git a/ppr-ui/src/components/mhrRegistration/HomeLocation/HomeLocationType.vue b/ppr-ui/src/components/mhrRegistration/HomeLocation/HomeLocationType.vue index 503a285e5..b83b19d60 100644 --- a/ppr-ui/src/components/mhrRegistration/HomeLocation/HomeLocationType.vue +++ b/ppr-ui/src/components/mhrRegistration/HomeLocation/HomeLocationType.vue @@ -27,7 +27,7 @@ id="location-type--radio-options" v-model="locationTypeOption" class="mt-0 pr-1" - hideDetails="true" + :hideDetails="true" :disabled="isVerifyingPid" > @@ -218,11 +218,10 @@ import { HomeLocationTypes } from '@/enums' import { PidNumber } from '@/components/common' import HomeLocationDescription from './HomeLocationDescription.vue' import { useInputRules, useMhrValidations, useNewMhrRegistration } from '@/composables' -import { FormIF, MhrLocationInfoIF } from '@/interfaces' +import { FormIF, MhrLocationInfoIF, MhrRegistrationHomeLocationIF } from '@/interfaces' import { PidInfoIF } from '@/interfaces/ltsa-api-interfaces' import { storeToRefs } from 'pinia' - export default defineComponent({ name: 'HomeLocationType', components: { @@ -230,20 +229,57 @@ export default defineComponent({ PidNumber }, props: { + locationTypeInfo: { + type: Object as () => MhrRegistrationHomeLocationIF, + default: { + parkName: '', + pad: '', + address: { + street: '', + streetAdditional: '', + city: '', + region: null, + country: null, + postalCode: '' + }, + leaveProvince: false, + pidNumber: '', + taxCertificate: false, + taxExpiryDate: '', + dealerName: '', + additionalDescription: '', + locationType: null, + otherType: null, + legalDescription: '', + lot: '', + parcel: '', + block: '', + districtLot: '', + partOf: '', + section: '', + township: '', + range: '', + meridian: '', + landDistrict: '', + plan: '', + bandName: '', + reserveNumber: '', + exceptionPlan: '' + } as MhrRegistrationHomeLocationIF + }, validate: { type: Boolean, default: false } }, - setup (props) { + emits: ['setStoreProperty'], + setup (props, { emit }) { const { // Actions - setMhrLocation, setIsManualLocation } = useStore() const { // Getters - getMhrRegistrationLocation, getMhrRegistrationValidationModel } = storeToRefs(useStore()) const { resetLocationInfoFields } = useNewMhrRegistration() @@ -259,7 +295,7 @@ export default defineComponent({ // Home location store properties // Developer note: de-construction of store computed properties in this manner will result in the loss of reactivity const { additionalDescription, dealerName, legalDescription, locationType, pad, pidNumber, parkName, otherType } = - getMhrRegistrationLocation.value + props.locationTypeInfo const localState = reactive({ isValidLot: false, @@ -331,31 +367,31 @@ export default defineComponent({ /** Apply local models to store when they change. **/ watch(() => localState.dealerManufacturerLot, () => { - setMhrLocation({ key: 'dealerName', value: localState.dealerManufacturerLot }) + emit('setStoreProperty', { key: 'dealerName', value: localState.dealerManufacturerLot }) }) watch(() => localState.homeParkName, () => { - setMhrLocation({ key: 'parkName', value: localState.homeParkName }) + emit('setStoreProperty', { key: 'parkName', value: localState.homeParkName }) }) watch(() => localState.homeParkPad, () => { - setMhrLocation({ key: 'pad', value: localState.homeParkPad }) + emit('setStoreProperty', { key: 'pad', value: localState.homeParkPad }) }) watch(() => localState.pidNumber, () => { - setMhrLocation({ key: 'pidNumber', value: localState.pidNumber }) - setMhrLocation({ key: 'legalDescription', value: localState.legalDescription }) + emit('setStoreProperty', { key: 'pidNumber', value: localState.pidNumber }) + emit('setStoreProperty', { key: 'legalDescription', value: localState.legalDescription }) }) watch(() => localState.locationInfo, (val: MhrLocationInfoIF) => { for (const [key, value] of Object.entries(val)) { - setMhrLocation({ key, value }) + emit('setStoreProperty', { key, value }) } }, { deep: true }) watch(() => localState.additionalDescription, () => { - setMhrLocation({ key: 'additionalDescription', value: localState.additionalDescription }) + emit('setStoreProperty', { key: 'additionalDescription', value: localState.additionalDescription }) }) watch(() => localState.locationTypeOption, () => { - setMhrLocation({ key: 'locationType', value: localState.locationTypeOption }) + emit('setStoreProperty', { key: 'locationType', value: localState.locationTypeOption }) }) watch(() => localState.otherTypeOption, () => { - setMhrLocation({ key: 'otherType', value: localState.otherTypeOption }) + emit('setStoreProperty', { key: 'otherType', value: localState.otherTypeOption }) }) watch(() => localState.isLocationTypeValid, (val: boolean) => { setValidation(MhrSectVal.LOCATION_VALID, MhrCompVal.LOCATION_TYPE_VALID, val) diff --git a/ppr-ui/src/components/mhrTransfers/LocationChange.vue b/ppr-ui/src/components/mhrTransfers/LocationChange.vue index 668881968..871c3d36e 100644 --- a/ppr-ui/src/components/mhrTransfers/LocationChange.vue +++ b/ppr-ui/src/components/mhrTransfers/LocationChange.vue @@ -1,5 +1,5 @@ @@ -21,21 +22,95 @@
- [Transport Permit placeholder] +
+

1. Location Type

+

+ Enter the new location type of the home. +

+ + +
+ +
+

2. New Civic Address of the Home

+

+ Enter the Street Address (Number and Name) and City of new location of the home. + Street Address must be entered if there is one. +

+

+ Note: If this manufactured home is being moved to a location outside of B.C., + the status of the home will be exempt upon filing. +

+ + +
+ +
+

3. New Land Details

+

+ Confirm the land lease or ownership information for the home. +

+ + +
+ +
+

4. Confirm Tax Certificate

+

+ A valid tax certificate is required; it must be issued from the tax + authority with jurisdiction of the home, and must show that all local taxes have + been paid for the current tax year. To confirm your tax certificate, enter the expiry date below. +

+ + +
+ + diff --git a/ppr-ui/src/components/mhrTransfers/TransferDetails.vue b/ppr-ui/src/components/mhrTransfers/TransferDetails.vue index caecc749e..3426d4dbd 100644 --- a/ppr-ui/src/components/mhrTransfers/TransferDetails.vue +++ b/ppr-ui/src/components/mhrTransfers/TransferDetails.vue @@ -88,7 +88,7 @@

- + - - - - - -

- Note: Land ownership or registered lease of the land for 3 years or more - must be verifiable through the BC Land Title and Survey Authority (LTSA) - or other authorized land authority. -

-
-
- - - -

- Note: Written permission and tenancy agreements from the landowner - may be required for the home to remain on the land. -

- Relocation of the home onto land that the homeowner does not own or hold a - registered lease of 3 years or more may require additional permits from - authorities such as the applicable Municipality, Regional District, First - Nation, or Provincial Crown Land Office. -

+ +
+ +

+ Note: Land ownership or registered lease of the land for 3 years or more + must be verifiable through the BC Land Title and Survey Authority (LTSA) + or other authorized land authority. +

+
+ +
+ +

+ Note: Written permission and tenancy agreements from the landowner + may be required for the home to remain on the land. +

+ Relocation of the home onto land that the homeowner does not own or hold a + registered lease of 3 years or more may require additional permits from + authorities such as the applicable Municipality, Regional District, First + Nation, or Provincial Crown Land Office. +

+
diff --git a/ppr-ui/src/components/mhrTransfers/index.ts b/ppr-ui/src/components/mhrTransfers/index.ts index 558d3c0fa..1c3ad5f14 100644 --- a/ppr-ui/src/components/mhrTransfers/index.ts +++ b/ppr-ui/src/components/mhrTransfers/index.ts @@ -7,3 +7,4 @@ export { default as DeathCertificate } from './DeathCertificate.vue' export { default as SupportingDocuments } from './SupportingDocuments.vue' export { default as HomeOwnersGroupError } from './HomeOwnersGroupError.vue' export { default as LocationChange } from './LocationChange.vue' +export { default as TaxCertificate } from './TaxCertificate.vue' diff --git a/ppr-ui/src/interfaces/mhr-registration-interfaces/MhrRegistrationHomeLocationIF.ts b/ppr-ui/src/interfaces/mhr-registration-interfaces/MhrRegistrationHomeLocationIF.ts index daa7cb5e9..1fe43e729 100644 --- a/ppr-ui/src/interfaces/mhr-registration-interfaces/MhrRegistrationHomeLocationIF.ts +++ b/ppr-ui/src/interfaces/mhr-registration-interfaces/MhrRegistrationHomeLocationIF.ts @@ -14,6 +14,7 @@ export interface MhrRegistrationHomeLocationIF { leaveProvince?: boolean pidNumber?: string taxCertificate?: boolean + taxExpiryDate?: string dealerName?: string additionalDescription?: string legalDescription?: string diff --git a/ppr-ui/src/store/state/state-model.ts b/ppr-ui/src/store/state/state-model.ts index 773b775ef..8bcf69d1b 100644 --- a/ppr-ui/src/store/state/state-model.ts +++ b/ppr-ui/src/store/state/state-model.ts @@ -205,6 +205,7 @@ export const stateModel: StateModelIF = { leaveProvince: false, pidNumber: '', taxCertificate: false, + taxExpiryDate: '', dealerName: '', additionalDescription: '', locationType: null, diff --git a/ppr-ui/src/utils/date-helper.ts b/ppr-ui/src/utils/date-helper.ts index 299cbfaa0..2dc0f2c39 100644 --- a/ppr-ui/src/utils/date-helper.ts +++ b/ppr-ui/src/utils/date-helper.ts @@ -2,6 +2,8 @@ import moment, { Moment } from 'moment' import 'moment-timezone' import { isDate } from 'lodash' +const date = new Date() + /** returns timstamp string in 12 hour format */ export function format12HourTime (date: Date, omitSeconds = false): string { // format datetime -- have to put in zeros manually when needed @@ -223,3 +225,9 @@ export function localTodayDate (date: Date = new Date(), returnYYYYMMDD: boolean if (returnYYYYMMDD) return `${localYear}, ${localMonth}, ${localDay}` return [localYear, localMonth, localDay].join('-') } + +// util obj with various dates, e.g. for the DatePicker min and max dates +export const calendarDates = { + tomorrow: localTodayDate(new Date(date.setDate(date.getDate() + 2))), + endOfYear: localTodayDate(new Date(new Date().getFullYear(), 11, 31)) +} diff --git a/ppr-ui/src/views/mhrInformation/MhrInformation.vue b/ppr-ui/src/views/mhrInformation/MhrInformation.vue index f2fe5835d..33f7c361a 100644 --- a/ppr-ui/src/views/mhrInformation/MhrInformation.vue +++ b/ppr-ui/src/views/mhrInformation/MhrInformation.vue @@ -281,7 +281,7 @@ -
+
diff --git a/ppr-ui/src/views/mhrInformation/MhrTransportPermit.vue b/ppr-ui/src/views/mhrInformation/MhrTransportPermit.vue index e9e60f09a..57495d199 100644 --- a/ppr-ui/src/views/mhrInformation/MhrTransportPermit.vue +++ b/ppr-ui/src/views/mhrInformation/MhrTransportPermit.vue @@ -1,5 +1,5 @@