diff --git a/package-lock.json b/package-lock.json index db1b06e0b..78c602e68 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "business-create-ui", - "version": "3.4.9", + "version": "3.4.10", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -17730,8 +17730,8 @@ "dev": true }, "vue-test-utils-helpers": { - "version": "git://github.com/bcgov/vue-test-utils-helpers.git#aeffe77a87b9a37dacf4b38d77bc1833db02a8a2", - "from": "git://github.com/bcgov/vue-test-utils-helpers.git", + "version": "git+https://github.com/bcgov/vue-test-utils-helpers.git#aeffe77a87b9a37dacf4b38d77bc1833db02a8a2", + "from": "git+https://github.com/bcgov/vue-test-utils-helpers.git", "dev": true, "requires": { "lodash.clonedeep": "^4.5.0" diff --git a/package.json b/package.json index 3d98cb6aa..7f68986fd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "business-create-ui", - "version": "3.4.9", + "version": "3.4.10", "private": true, "appName": "Create UI", "sbcName": "SBC Common Components", @@ -74,7 +74,7 @@ "vue-plugin-helper-decorator": "^0.0.12", "vue-property-decorator": "^8.5.1", "vue-template-compiler": "2.6.12", - "vue-test-utils-helpers": "git://github.com/bcgov/vue-test-utils-helpers.git", + "vue-test-utils-helpers": "https://github.com/bcgov/vue-test-utils-helpers.git", "vuetify-loader": "^1.6.0", "vuex-class": "^0.3.2", "vuex-module-decorators": "^0.16.1" diff --git a/src/App.vue b/src/App.vue index 4b456f99a..faf70e1f1 100644 --- a/src/App.vue +++ b/src/App.vue @@ -98,8 +98,11 @@

{{ getFilingName }}

+

+ {{ getFilingSubtitle }} +

- + @@ -244,6 +247,7 @@ export default class App extends Mixins( @Getter getAccountInformation!: AccountInformationIF @Getter getOrgInformation!: OrgInformationIF @Getter isSbcStaff!: boolean + @Getter getFilingSubtitle!: string @Action setBusinessId!: ActionBindingIF @Action setCurrentStep!: ActionBindingIF @@ -380,6 +384,10 @@ export default class App extends Mixins( case FilingTypes.VOLUNTARY_DISSOLUTION: return 'Filing' } } + // check to use stepper view or not + get isStepperView (): boolean { + return !this.$route.meta.noStepper + } /** Helper to check is the current route matches */ private isRouteName (routeName: RouteNames): boolean { diff --git a/src/enums/filingNames.ts b/src/enums/filingNames.ts index 9a6ba8dc1..1e88726bf 100644 --- a/src/enums/filingNames.ts +++ b/src/enums/filingNames.ts @@ -2,4 +2,10 @@ export enum FilingNames { INCORPORATION_APPLICATION = 'Incorporation Application', REGISTRATION = 'Registration', VOLUNTARY_DISSOLUTION = 'Voluntary Dissolution', + DISSOLUTION_FIRM = 'Dissolution', +} + +export enum FilingTypesSubTitle { + SOLE_PROP_SUB_TITLE = 'Confirm the following information,' + + ' select the dissolution date and certify your dissolution before filing.', } diff --git a/src/enums/routeNames.ts b/src/enums/routeNames.ts index 2064fd5a3..90afc7013 100644 --- a/src/enums/routeNames.ts +++ b/src/enums/routeNames.ts @@ -25,4 +25,8 @@ export enum RouteNames { REGISTRATION_DEFINE_BUSINESS = 'registration-define-business', REGISTRATION_PEOPLE_ROLES = 'registration-people-roles', REGISTRATION_REVIEW_CONFIRM = 'registration-review-confirm', + + // firm Dissolution (SP and GP) + DISSOLUTION_FIRM = 'dissolution-firm', + } diff --git a/src/enums/viewComponentNames.ts b/src/enums/viewComponentNames.ts index c29284601..8e893b637 100644 --- a/src/enums/viewComponentNames.ts +++ b/src/enums/viewComponentNames.ts @@ -25,4 +25,8 @@ export enum ViewComponentNames { REGISTRATION_DEFINE_BUSINESS = 'registration-define-business', REGISTRATION_PEOPLE_ROLES = 'registration-people-roles', REGISTRATION_REVIEW_CONFIRM = 'registration-review-confirm', + +// Entity dissolution + DISSOLUTION_FIRM = 'dissolution-firm', + } diff --git a/src/interfaces/resource-interfaces/resource-interface.ts b/src/interfaces/resource-interfaces/resource-interface.ts index 43a0a3911..1f1eee25d 100644 --- a/src/interfaces/resource-interfaces/resource-interface.ts +++ b/src/interfaces/resource-interfaces/resource-interface.ts @@ -61,9 +61,9 @@ export interface DissolutionResourceIF { steps: Array filingData: Array detailsTitle: string - custodialRecords: CustodianResourceIF + custodialRecords?: CustodianResourceIF dissolutionStatements?: Array - affidavit: AffidavitResourceIF + affidavit?: AffidavitResourceIF reviewAndConfirm: { completingPartyStatement: { certifyStatementHeader: string diff --git a/src/interfaces/stepper-interfaces/CreateResolution/create-resolution-resource-interface.ts b/src/interfaces/stepper-interfaces/CreateResolution/create-resolution-resource-interface.ts index 9a82242c4..5b8761c70 100644 --- a/src/interfaces/stepper-interfaces/CreateResolution/create-resolution-resource-interface.ts +++ b/src/interfaces/stepper-interfaces/CreateResolution/create-resolution-resource-interface.ts @@ -1,6 +1,6 @@ export interface CreateResolutionResourceIF { reviewConfirmHeader: string - helpSection: { + helpSection?: { header: string helpText: any } diff --git a/src/resources/Dissolutions/index.ts b/src/resources/Dissolutions/index.ts index 9dd203fc1..799d6723e 100644 --- a/src/resources/Dissolutions/index.ts +++ b/src/resources/Dissolutions/index.ts @@ -3,3 +3,5 @@ export { CommunityContributionCompanyDissolutionResource } from '@/resources/Dis export { CooperativeDissolutionResource } from '@/resources/Dissolutions/cooperative' export { LimitedCompanyDissolutionResource } from '@/resources/Dissolutions/limitedCompany' export { UnlimitedDissolutionResource } from '@/resources/Dissolutions/unlimitedCompany' + +export { SoleProprietorshipDissolutionResource } from '@/resources/Dissolutions/soleProprietorship' diff --git a/src/resources/Dissolutions/soleProprietorship.ts b/src/resources/Dissolutions/soleProprietorship.ts new file mode 100644 index 000000000..e19b04566 --- /dev/null +++ b/src/resources/Dissolutions/soleProprietorship.ts @@ -0,0 +1,69 @@ +import { DissolutionResourceIF } from '@/interfaces' +import { CorpTypeCd, FilingCodes, ItemTypes } from '@/enums' +import { GetCorpFullDescription } from '@bcrs-shared-components/corp-type-module' +import { CorpFirmDissolutionSteps } from '@/resources/Dissolutions/stepTemplates' + +// SB TODO : cleanup this code +export const SoleProprietorshipDissolutionResource: DissolutionResourceIF = { + entityType: CorpTypeCd.SOLE_PROP, + displayName: GetCorpFullDescription(CorpTypeCd.SOLE_PROP), + steps: CorpFirmDissolutionSteps, + filingData: [{ + entityType: CorpTypeCd.SOLE_PROP, + filingTypeCode: FilingCodes.DISSOLUTION_VOLUNTARY + }], + detailsTitle: 'Company Details', + + reviewAndConfirm: { + completingPartyStatement: { + certifyStatementHeader: null, + certifyStatements: [], + certifyClause: `Note: It is an offence to make or assist in making a false or misleading statement + in a record filed under the Partnership Act. + A person who commits this offence is subject to a maximum fine of $5,000.`, + entityDisplay: GetCorpFullDescription(CorpTypeCd.SOLE_PROP) + } + }, + createResolution: { + reviewConfirmHeader: 'Resolution', + introSection: { + header: '1. Resolution', + items: [ + { + type: ItemTypes.TEXT, + value: 'Before submitting your voluntary dissolution you must complete, sign, and date a ' + }, + { + type: ItemTypes.TOOLTIP, + value: { + label: 'resolution', + text: 'Resolution - A formal statement of a decision.' + } + }, + { + type: ItemTypes.TEXT, + value: 'and deposit the resolution in the Company\'s records book.' + } + ] + }, + + confirmSection: { + header: '2. Confirm Resolution Completion', + text: [ + { + type: ItemTypes.TEXT, + value: 'I confirm a resolution was passed by' + }, + { + type: ItemTypes.PLACEHOLDER, + value: 'legal_name' + }, + { + type: ItemTypes.TEXT, + value: 'and has been deposited in the Company\'s records book.' + } + ], + items: [] + } + } +} diff --git a/src/resources/Dissolutions/stepTemplates.ts b/src/resources/Dissolutions/stepTemplates.ts index 31e2ae1bc..3983ff5eb 100644 --- a/src/resources/Dissolutions/stepTemplates.ts +++ b/src/resources/Dissolutions/stepTemplates.ts @@ -79,3 +79,22 @@ export const CorpDissolutionSteps = [ component: ViewComponentNames.DISSOLUTION_REVIEW_CONFIRM } ] + +/** + * The stepper template is not needed for SP and GP filing types + * Hiding of stepper is done by passign meta from route, + * Still we need one minimum step to render component + * Currently used for SP, GP. + * Later we can fix, if we didnt pass stepper, UI should render without stepper + */ + +export const CorpFirmDissolutionSteps = [ + { + id: 'step-1-btn', + step: 1, + icon: 'mdi-domain-remove', + text: 'Dissolution', + to: RouteNames.DISSOLUTION_FIRM, + component: ViewComponentNames.DISSOLUTION_FIRM + } +] diff --git a/src/resources/index.ts b/src/resources/index.ts index a5b4efaeb..11e14806f 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -18,7 +18,8 @@ import { CommunityContributionCompanyDissolutionResource, CooperativeDissolutionResource, LimitedCompanyDissolutionResource, - UnlimitedDissolutionResource + UnlimitedDissolutionResource, + SoleProprietorshipDissolutionResource } from './Dissolutions' export const IncorporationResources: Array = [ @@ -39,7 +40,8 @@ export const DissolutionResources: Array = [ CommunityContributionCompanyDissolutionResource, CooperativeDissolutionResource, LimitedCompanyDissolutionResource, - UnlimitedDissolutionResource + UnlimitedDissolutionResource, + SoleProprietorshipDissolutionResource ] export * from './BreadCrumbResource' diff --git a/src/router/routes.ts b/src/router/routes.ts index f69645ecb..413bbe8a9 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -160,6 +160,18 @@ export const routes = [ filingType: FilingTypes.REGISTRATION } }, + { + path: '/dissolution-firm', + name: RouteNames.DISSOLUTION_FIRM, + component: Views.DissolutionFirm, + meta: { + step: 1, + requiresAuth: true, + filingType: FilingTypes.VOLUNTARY_DISSOLUTION, + noStepper: true // to hide stepper for this view + } + }, + { // default/fallback route // must be last diff --git a/src/store/getters/state-getters.ts b/src/store/getters/state-getters.ts index 181c165c4..4e35bedcf 100644 --- a/src/store/getters/state-getters.ts +++ b/src/store/getters/state-getters.ts @@ -4,7 +4,8 @@ import { CorpTypeCd, DissolutionTypes, FilingNames, - FilingTypes + FilingTypes, + FilingTypesSubTitle } from '@/enums' import { AccountInformationIF, @@ -64,7 +65,12 @@ export const getFilingName = (state: StateIF): FilingNames => { switch (getFilingType(state)) { case FilingTypes.INCORPORATION_APPLICATION: return FilingNames.INCORPORATION_APPLICATION case FilingTypes.REGISTRATION: return FilingNames.REGISTRATION - case FilingTypes.VOLUNTARY_DISSOLUTION: return FilingNames.VOLUNTARY_DISSOLUTION + case FilingTypes.VOLUNTARY_DISSOLUTION: + if (isTypeSoleProp(state)) { + return FilingNames.DISSOLUTION_FIRM + } + return FilingNames.VOLUNTARY_DISSOLUTION + default: return null // should never happen } } @@ -644,3 +650,11 @@ export const isDissolutionDefineDissolutionValid = (state: StateIF): boolean => export const getRegistration = (state: StateIF): RegistrationStateIF => { return state.stateModel.registration } + +// current filing subtitle +export const getFilingSubtitle = (state: StateIF): string => { + if (isDissolutionFiling(state) && isTypeSoleProp(state)) { + return FilingTypesSubTitle.SOLE_PROP_SUB_TITLE + } + return null +} diff --git a/src/views/DissolutionFirm/DissolutionFirm.vue b/src/views/DissolutionFirm/DissolutionFirm.vue new file mode 100644 index 000000000..9d3e91eab --- /dev/null +++ b/src/views/DissolutionFirm/DissolutionFirm.vue @@ -0,0 +1,416 @@ + + + + + diff --git a/src/views/index.ts b/src/views/index.ts index 2be3b4049..a763b2cbf 100644 --- a/src/views/index.ts +++ b/src/views/index.ts @@ -22,3 +22,5 @@ export { default as IncorporationShareStructure } from './Incorporation/Incorpor export { default as RegistrationDefineBusiness } from './Registration/RegistrationDefineBusiness.vue' export { default as RegistrationPeopleRoles } from './Registration/RegistrationPeopleRoles.vue' export { default as RegistrationReviewConfirm } from './Registration/RegistrationReviewConfirm.vue' + +export { default as DissolutionFirm } from './DissolutionFirm/DissolutionFirm.vue'