Incorporation Complete
- {{ getLegalName || 'A Numbered Benefit Company' }} has been successfully incorporated.
+ {{ companyName }} has been successfully incorporated.
@@ -84,9 +84,15 @@ export default class IncorporationApplication extends Vue {
@Prop({ required: true }) readonly filing!: ApiFilingIF
@Prop({ required: true }) readonly index!: number
+ @Getter(useBusinessStore) getEntityName!: string
@Getter(useBusinessStore) getLegalName!: string
@Getter(useConfigurationStore) getMyBusinessRegistryUrl!: string
+ /** The Temporary Registration Number string (may be null). */
+ get tempRegNumber (): string {
+ return sessionStorage.getItem('TEMP_REG_NUMBER')
+ }
+
/** Whether this filing is in Complete status. */
get isStatusCompleted (): boolean {
return EnumUtilities.isStatusCompleted(this.filing)
@@ -110,6 +116,13 @@ export default class IncorporationApplication extends Vue {
)
}
+ /** The legal name or numbered description of the new company. */
+ get companyName (): string {
+ if (this.getLegalName) return this.getLegalName
+ if (this.getEntityName) return `A ${this.getEntityName}`
+ return 'Unknown Name'
+ }
+
returnToMyBusinessRegistry (): void {
navigate(this.getMyBusinessRegistryUrl)
}
diff --git a/src/components/Dashboard/FilingHistoryList/filings/RegistrationFiling.vue b/src/components/Dashboard/FilingHistoryList/filings/RegistrationFiling.vue
index 99b13b723..1b9643f03 100644
--- a/src/components/Dashboard/FilingHistoryList/filings/RegistrationFiling.vue
+++ b/src/components/Dashboard/FilingHistoryList/filings/RegistrationFiling.vue
@@ -6,14 +6,18 @@
>
Registration Complete
-
{{ getLegalName || 'This company' }} has been successfully registered.
+
+ {{ getLegalName || 'This company' }} has been successfully registered.
+
-
Return to My Business Registry to access your business and file changes.
+
+ Return to My Business Registry to access your business and file changes.
+
diff --git a/src/components/Dashboard/StaffNotation.vue b/src/components/Dashboard/StaffNotation.vue
index bc89c54b3..9f3b2286f 100644
--- a/src/components/Dashboard/StaffNotation.vue
+++ b/src/components/Dashboard/StaffNotation.vue
@@ -134,8 +134,9 @@
@@ -186,7 +187,8 @@
@@ -196,7 +198,8 @@
diff --git a/src/components/Dashboard/TodoList.vue b/src/components/Dashboard/TodoList.vue
index b244538a6..049647187 100644
--- a/src/components/Dashboard/TodoList.vue
+++ b/src/components/Dashboard/TodoList.vue
@@ -165,6 +165,14 @@
+
+
+ {{ item.subtitle }}
+
+
Do not authorize
+
-
+
+ Fill out Amalgamation Application
+
+
Incorporate using this NR
Incorporate a Numbered Company
@@ -395,6 +407,7 @@
@@ -513,10 +528,10 @@
-
+
@@ -526,6 +541,8 @@
@@ -640,10 +657,11 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
enableCheckbox: Array
= []
confirmEnabled = false
panel: number = null // currently expanded panel
- checkTimer: number = null
+ checkTimer = null // may be type number or NodeJS.Timeout
inProcessFiling: number = null
fetchAffiliationInvitationsErrorDialog = false
authorizeAffiliationInvitationErrorDialog = false
+ accountId: number = null
@Prop({ default: null }) readonly highlightId!: number
@@ -660,13 +678,11 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
@Getter(useRootStore) getTasks!: Array
@Getter(useRootStore) getTodoListResource!: TodoListResourceIF
@Getter(useBusinessStore) isBenBcCccUlc!: boolean
- @Getter(useBusinessStore) isSoleProp!: boolean
@Action(useRootStore) setARFilingYear!: (x: number) => void
@Action(useRootStore) setArMinDate!: (x: string) => void
@Action(useRootStore) setArMaxDate!: (x: string) => void
@Action(useRootStore) setNextARDate!: (x: string) => void
- @Action(useRootStore) setCurrentFilingStatus!: (x: FilingStatus) => void
// for template
readonly EnumUtilities = EnumUtilities
@@ -737,6 +753,8 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
showDetailsBtnBlue (item: TodoItemIF): boolean {
if (this.isStatusNew(item) && this.isTypeConversion(item)) return true
if (this.isStatusDraft(item) && this.isTypeConversion(item)) return true
+ if (this.isStatusDraft(item) && this.isTypeAmalgamation(item) &&
+ item.nameRequest) return true
if (this.isStatusDraft(item) && this.isTypeIncorporationApplication(item) &&
item.nameRequest) return true
if (this.isStatusDraft(item) && this.isTypeRegistration(item) &&
@@ -823,6 +841,14 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
})
}
+ /** Check if task item is cancellable (has a draft). */
+ isCancellableTodoItem (item: TodoItemIF): boolean {
+ return (
+ (item.name !== FilingTypes.AGM_EXTENSION) &&
+ (item.name !== FilingTypes.AGM_LOCATION_CHANGE)
+ )
+ }
+
/** Loads a todo item into the Todo Items array. */
loadTodoItem (task: ApiTaskIF): void {
const todo = task.task.todo // already checked for not falsey in loadData()
@@ -900,6 +926,7 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
// eslint-disable-line no-console
console.log('failed the call for authorization of affiliation invitation', err)
this.authorizeAffiliationInvitationErrorDialog = true
+ return null
})
const index = this.todoItems.indexOf(affiliationInvitationTodo)
@@ -936,9 +963,9 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
}
// load all the invitations here and push them into todo items
- const accountId = JSON.parse(sessionStorage.getItem('CURRENT_ACCOUNT'))?.id
+ this.accountId = JSON.parse(sessionStorage.getItem('CURRENT_ACCOUNT'))?.id
const response =
- await AuthServices.fetchAffiliationInvitations(this.getAuthApiUrl, this.getIdentifier, accountId)
+ await AuthServices.fetchAffiliationInvitations(this.getAuthApiUrl, this.getIdentifier, this.accountId)
.catch((err) => {
console.log('Error fetching affiliation invitations for todo', err) // eslint-disable-line no-console
this.fetchAffiliationInvitationsErrorDialog = true
@@ -991,14 +1018,32 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
if (header) {
switch (header.name) {
+ case FilingTypes.ADMIN_FREEZE:
+ // do nothing for admin_freeze
+ break
+ case FilingTypes.AGM_EXTENSION:
+ await this.loadAgmExtension(task)
+ break
+ case FilingTypes.AGM_LOCATION_CHANGE:
+ await this.loadAgmLocationChange(task)
+ break
+ case FilingTypes.ALTERATION:
+ await this.loadAlteration(task)
+ break
+ case FilingTypes.AMALGAMATION_APPLICATION:
+ await this.loadAmalgamation(task)
+ break
case FilingTypes.ANNUAL_REPORT:
await this.loadAnnualReport(task)
break
+ case FilingTypes.CHANGE_OF_ADDRESS:
+ await this.loadChangeOfAddress(task)
+ break
case FilingTypes.CHANGE_OF_DIRECTORS:
await this.loadChangeOfDirectors(task)
break
- case FilingTypes.CHANGE_OF_ADDRESS:
- await this.loadChangeOfAddress(task)
+ case FilingTypes.CHANGE_OF_REGISTRATION:
+ await this.loadChangeOfRegistration(task)
break
case FilingTypes.CONSENT_CONTINUATION_OUT:
await this.loadConsentContinuationOut(task)
@@ -1006,35 +1051,26 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
case FilingTypes.CONTINUATION_OUT:
await this.loadContinuationOut(task)
break
+ case FilingTypes.CONVERSION:
+ await this.loadConversion(task)
+ break
case FilingTypes.CORRECTION:
await this.loadCorrection(task)
break
- case FilingTypes.INCORPORATION_APPLICATION:
- await this.loadIncorporationApplication(task)
- break
- case FilingTypes.ALTERATION:
- await this.loadAlteration(task)
- break
case FilingTypes.DISSOLUTION:
await this.loadDissolution(task)
break
+ case FilingTypes.INCORPORATION_APPLICATION:
+ await this.loadIncorporationApplication(task)
+ break
case FilingTypes.REGISTRATION:
await this.loadRegistration(task)
break
- case FilingTypes.CHANGE_OF_REGISTRATION:
- await this.loadChangeOfRegistration(task)
- break
- case FilingTypes.CONVERSION:
- await this.loadConversion(task)
- break
- case FilingTypes.SPECIAL_RESOLUTION:
- await this.loadSpecialResolution(task)
- break
case FilingTypes.RESTORATION:
await this.loadRestoration(task)
break
- case FilingTypes.ADMIN_FREEZE:
- // Do nothing for admin_freeze.
+ case FilingTypes.SPECIAL_RESOLUTION:
+ await this.loadSpecialResolution(task)
break
default:
// eslint-disable-next-line no-console
@@ -1189,8 +1225,8 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
const item: TodoItemIF = {
name: FilingTypes.CHANGE_OF_DIRECTORS,
filingId: header.filingId,
- title: `File Director Change`,
- draftTitle: `Director Change`,
+ title: 'File Director Change',
+ draftTitle: 'Director Change',
status: header.status || FilingStatus.NEW,
enabled: task.enabled,
order: task.order,
@@ -1218,8 +1254,8 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
const item: TodoItemIF = {
name: FilingTypes.CHANGE_OF_ADDRESS,
filingId: header.filingId,
- title: `File Address Change`,
- draftTitle: `Address Change`,
+ title: 'File Address Change',
+ draftTitle: 'Address Change',
status: header.status || FilingStatus.NEW,
enabled: task.enabled,
order: task.order,
@@ -1270,6 +1306,56 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
}
}
+ async loadAmalgamation (task: ApiTaskIF): Promise {
+ const filing = task.task.filing
+ const header = filing.header
+ const amalgamation = filing.amalgamationApplication
+
+ if (header && amalgamation) {
+ // set subtitle only if DRAFT IA
+ let subtitle: string = null
+ if (this.isStatusDraft(header)) {
+ if (this.getNameRequest) {
+ subtitle = `NR APPROVED - ${this.expiresText(this.getNameRequest)}`
+ } else {
+ subtitle = 'DRAFT'
+ }
+ }
+
+ const paymentStatusCode = header.paymentStatusCode
+ const payErrorObj = paymentStatusCode && await PayServices.getPayErrorObj(this.getPayApiUrl, paymentStatusCode)
+
+ // NB: amalgamation application may be undefined
+ const haveData = Boolean(
+ amalgamation?.amalgamatingBusinesses ||
+ amalgamation?.offices ||
+ amalgamation?.contactPoint ||
+ amalgamation?.parties ||
+ amalgamation?.shareStructure?.shareClasses
+ )
+
+ const item: TodoItemIF = {
+ name: FilingTypes.AMALGAMATION_APPLICATION,
+ filingId: header.filingId,
+ title: filing.displayName,
+ subtitle,
+ draftTitle: FilingNames.AMALGAMATION_APPLICATION,
+ status: header.status,
+ enabled: task.enabled,
+ order: task.order,
+ paymentMethod: header.paymentMethod || null,
+ paymentToken: header.paymentToken || null,
+ payErrorObj,
+ isEmptyFiling: !haveData,
+ nameRequest: this.getNameRequest
+ }
+ this.todoItems.push(item)
+ } else {
+ // eslint-disable-next-line no-console
+ console.log('ERROR - invalid header or amalgamation in filing =', filing)
+ }
+ }
+
async loadIncorporationApplication (task: ApiTaskIF): Promise {
const filing = task.task.filing
const header = filing.header
@@ -1277,8 +1363,6 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
// NB: don't check "incorporationApplication" as it may be empty
if (header) {
- const title = `${GetCorpFullDescription(this.getLegalType)} Incorporation Application`
-
// set subtitle only if DRAFT IA
let subtitle: string = null
if (this.isStatusDraft(header)) {
@@ -1292,7 +1376,7 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
const paymentStatusCode = header.paymentStatusCode
const payErrorObj = paymentStatusCode && await PayServices.getPayErrorObj(this.getPayApiUrl, paymentStatusCode)
- // NB: incorporationApplicationmay be undefined
+ // NB: incorporationApplication may be undefined
const haveData = Boolean(
incorporationApplication?.offices ||
incorporationApplication?.contactPoint ||
@@ -1303,7 +1387,7 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
const item: TodoItemIF = {
name: FilingTypes.INCORPORATION_APPLICATION,
filingId: header.filingId,
- title,
+ title: filing.displayName,
subtitle,
draftTitle: FilingNames.INCORPORATION_APPLICATION,
status: header.status,
@@ -1329,11 +1413,6 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
// NB: don't check "registration" as it may be empty
if (header) {
- const corpFullDescription = GetCorpFullDescription(this.getLegalType)
- const title = this.isSoleProp
- ? `${corpFullDescription} / Doing Business As (DBA) ${FilingNames.REGISTRATION}`
- : `${corpFullDescription} ${FilingNames.REGISTRATION}`
-
// set subtitle only if DRAFT
let subtitle: string = null
if (this.isStatusDraft(header)) {
@@ -1358,7 +1437,7 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
const item: TodoItemIF = {
name: FilingTypes.REGISTRATION,
filingId: header.filingId,
- title,
+ title: filing.displayName,
subtitle,
draftTitle: FilingNames.REGISTRATION,
status: header.status,
@@ -1479,6 +1558,66 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
}
}
+ async loadAgmExtension (task: ApiTaskIF): Promise {
+ const filing = task.task.filing
+ const header = filing.header
+ const agmExtension = filing.agmExtension
+
+ if (header && agmExtension) {
+ const paymentStatusCode = header.paymentStatusCode
+ const payErrorObj = paymentStatusCode && await PayServices.getPayErrorObj(this.getPayApiUrl, paymentStatusCode)
+
+ const item = {
+ name: FilingTypes.AGM_EXTENSION,
+ filingId: header.filingId,
+ title: FilingNames.AGM_EXTENSION,
+ draftTitle: FilingNames.AGM_EXTENSION,
+ status: header.status,
+ enabled: task.enabled,
+ order: task.order,
+ paymentMethod: header.paymentMethod || null,
+ paymentToken: header.paymentToken || null,
+ payErrorObj,
+ // FUTURE: ideally, this would come from the filing:
+ warnings: this.getBusinessWarnings.map(warning => warning.message)
+ } as TodoItemIF
+ this.todoItems.push(item)
+ } else {
+ // eslint-disable-next-line no-console
+ console.log('ERROR - invalid header or agmExtension in filing =', filing)
+ }
+ }
+
+ async loadAgmLocationChange (task: ApiTaskIF): Promise {
+ const filing = task.task.filing
+ const header = filing.header
+ const agmLocationChange = filing.agmLocationChange
+
+ if (header && agmLocationChange) {
+ const paymentStatusCode = header.paymentStatusCode
+ const payErrorObj = paymentStatusCode && await PayServices.getPayErrorObj(this.getPayApiUrl, paymentStatusCode)
+
+ const item = {
+ name: FilingTypes.AGM_LOCATION_CHANGE,
+ filingId: header.filingId,
+ title: FilingNames.AGM_LOCATION_CHANGE,
+ draftTitle: FilingNames.AGM_LOCATION_CHANGE,
+ status: header.status,
+ enabled: task.enabled,
+ order: task.order,
+ paymentMethod: header.paymentMethod || null,
+ paymentToken: header.paymentToken || null,
+ payErrorObj,
+ // FUTURE: ideally, this would come from the filing:
+ warnings: this.getBusinessWarnings.map(warning => warning.message)
+ } as TodoItemIF
+ this.todoItems.push(item)
+ } else {
+ // eslint-disable-next-line no-console
+ console.log('ERROR - invalid header or agmLocationChange in filing =', filing)
+ }
+ }
+
async loadContinuationOut (task: ApiTaskIF): Promise {
const filing = task.task.filing
const header = filing.header
@@ -1610,7 +1749,6 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
this.setArMinDate(item.arMinDate) // COOP only
this.setArMaxDate(item.arMaxDate) // COOP only
this.setNextARDate(item.nextArDate) // BEN/BC/CCC/ULC only
- this.setCurrentFilingStatus(FilingStatus.NEW)
this.$router.push({ name: Routes.ANNUAL_REPORT, params: { filingId: '0' } }) // 0 means "new AR"
break
case FilingTypes.CONVERSION: {
@@ -1629,37 +1767,39 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
/** Resumes a draft filing. */
doResumeFiling (item: TodoItemIF): void {
switch (item.name) {
+ case FilingTypes.AMALGAMATION_APPLICATION: {
+ // navigate to Create UI to resume this Amalgamation
+ const amalgamationUrl = `${this.getCreateUrl}?id=${this.tempRegNumber}`
+ navigate(amalgamationUrl)
+ break
+ }
+
case FilingTypes.ANNUAL_REPORT:
// resume this Annual Report locally
this.setARFilingYear(item.ARFilingYear)
this.setArMinDate(item.arMinDate) // COOP only
this.setArMaxDate(item.arMaxDate) // COOP only
this.setNextARDate(item.nextArDate) // BEN/BC/CCC/ULC only
- this.setCurrentFilingStatus(FilingStatus.DRAFT)
this.$router.push({ name: Routes.ANNUAL_REPORT, params: { filingId: item.filingId.toString() } })
break
case FilingTypes.CHANGE_OF_DIRECTORS:
// resume this Change Of Directors locally
- this.setCurrentFilingStatus(FilingStatus.DRAFT)
this.$router.push({ name: Routes.STANDALONE_DIRECTORS, params: { filingId: item.filingId.toString() } })
break
case FilingTypes.CHANGE_OF_ADDRESS:
// resume this Change Of Address locally
- this.setCurrentFilingStatus(FilingStatus.DRAFT)
this.$router.push({ name: Routes.STANDALONE_ADDRESSES, params: { filingId: item.filingId.toString() } })
break
case FilingTypes.CONSENT_CONTINUATION_OUT:
// resume this Consent to Continuation Out locally
- this.setCurrentFilingStatus(FilingStatus.DRAFT)
this.$router.push({ name: Routes.CONSENT_CONTINUATION_OUT, params: { filingId: item.filingId.toString() } })
break
case FilingTypes.CONTINUATION_OUT:
// resume this Continuation Out locally
- this.setCurrentFilingStatus(FilingStatus.DRAFT)
this.$router.push({ name: Routes.CONTINUATION_OUT, params: { filingId: item.filingId.toString() } })
break
@@ -1677,12 +1817,10 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
case FilingNames.CHANGE_OF_ADDRESS:
case FilingNames.CHANGE_OF_DIRECTORS:
- if (this.isBenBcCccUlc) {
- // To-Do for the future: Revisit this when we do Coop corrections in Edit UI
+ if (this.isBenBcCccUlc || this.isCoop) {
navigateToCorrectionEditUi(this.getEditUrl, this.getIdentifier)
break
} else {
- this.setCurrentFilingStatus(FilingStatus.DRAFT)
routeToLocalCorrection(this.$router)
break
}
@@ -1690,7 +1828,6 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
case FilingTypes.ANNUAL_REPORT:
case FilingTypes.CONVERSION:
default:
- this.setCurrentFilingStatus(FilingStatus.DRAFT)
routeToLocalCorrection(this.$router)
break
}
@@ -1746,33 +1883,9 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
break
}
- case FilingTypes.RESTORATION: {
- let restorationType: FilingSubTypes
-
- /**
- * Type assertion is done to fix TypeScript error.
- * "This condition will always return 'false' since the types
- * 'FilingSubTypes' and 'RestorationTypes' have no overlap."
- */
- if (item.filingSubType === FilingSubTypes.FULL_RESTORATION) {
- restorationType = FilingSubTypes.FULL_RESTORATION
- }
-
- if (item.filingSubType === FilingSubTypes.LIMITED_RESTORATION) {
- restorationType = FilingSubTypes.LIMITED_RESTORATION
- }
-
- if (item.filingSubType === FilingSubTypes.LIMITED_RESTORATION_EXTENSION) {
- restorationType = FilingSubTypes.LIMITED_RESTORATION_EXTENSION
- }
-
- if (item.filingSubType === FilingSubTypes.LIMITED_RESTORATION_TO_FULL) {
- restorationType = FilingSubTypes.LIMITED_RESTORATION_TO_FULL
- }
-
- navigate(this.buildRestorationUrl(item, restorationType))
+ case FilingTypes.RESTORATION:
+ this.navigateForResumeRestoration(item)
break
- }
default:
// eslint-disable-next-line no-console
@@ -1795,6 +1908,33 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
}
}
+ /* Handles the restoration flow inside of doResumeFiling */
+ navigateForResumeRestoration (item: TodoItemIF): void {
+ let restorationType: FilingSubTypes
+ /**
+ * Type assertion is done to fix TypeScript error.
+ * "This condition will always return 'false' since the types
+ * 'FilingSubTypes' and 'RestorationTypes' have no overlap."
+ */
+ if (item.filingSubType === FilingSubTypes.FULL_RESTORATION) {
+ restorationType = FilingSubTypes.FULL_RESTORATION
+ }
+
+ if (item.filingSubType === FilingSubTypes.LIMITED_RESTORATION) {
+ restorationType = FilingSubTypes.LIMITED_RESTORATION
+ }
+
+ if (item.filingSubType === FilingSubTypes.LIMITED_RESTORATION_EXTENSION) {
+ restorationType = FilingSubTypes.LIMITED_RESTORATION_EXTENSION
+ }
+
+ if (item.filingSubType === FilingSubTypes.LIMITED_RESTORATION_TO_FULL) {
+ restorationType = FilingSubTypes.LIMITED_RESTORATION_TO_FULL
+ }
+
+ navigate(this.buildRestorationUrl(item, restorationType))
+ }
+
// navigate to Create UI if Full/Limited restoration or to Edit UI if Limited extension/Full to Limited conversion
buildRestorationUrl (item: TodoItemIF, restorationType: FilingSubTypes): string {
let url: string
@@ -2064,8 +2204,8 @@ export default class TodoList extends Mixins(AllowableActionsMixin, DateMixin, E
border-bottom-right-radius: 0;
}
- .btn-change-payment-type,
- .btn-resume-payment {
+ .btn-change-payment-type.cancellable,
+ .btn-resume-payment.cancellable {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
diff --git a/src/components/Dashboard/TodoList/PaymentPendingOnlineBanking.vue b/src/components/Dashboard/TodoList/PaymentPendingOnlineBanking.vue
index 6856ad8e9..1099cfa7d 100644
--- a/src/components/Dashboard/TodoList/PaymentPendingOnlineBanking.vue
+++ b/src/components/Dashboard/TodoList/PaymentPendingOnlineBanking.vue
@@ -11,6 +11,12 @@
If you have not done so, log in to your online bank account to pay the
outstanding balance on your BC Registries and Online Services account.
+
+ Enter "BC Registries and Online Services" as payee.
+
+
+ Enter the following account number: {{ cfsAccountId }}
+
Once submitted through your bank, Online Banking payments can take 2 to 5 days to
be processed.
@@ -30,16 +36,25 @@
diff --git a/src/components/DigitalCredentials/CredentialsDashboard.vue b/src/components/DigitalCredentials/CredentialsDashboard.vue
new file mode 100644
index 000000000..dd1b1f6aa
--- /dev/null
+++ b/src/components/DigitalCredentials/CredentialsDashboard.vue
@@ -0,0 +1,195 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ loadingMessage }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/DigitalCredentials/CredentialsDetailSteps.vue b/src/components/DigitalCredentials/CredentialsDetailSteps.vue
new file mode 100644
index 000000000..2e0704564
--- /dev/null
+++ b/src/components/DigitalCredentials/CredentialsDetailSteps.vue
@@ -0,0 +1,145 @@
+
+
+
Steps to get your credential
+
+
+
+ 1
+
+
+
+
+ Install the BC Wallet app on your phone
+
+ BC Walletmdi-open-in-new is a digital identity wallet. It lets you receive, store and present
+ digital credentials such as memberships, permits, and ID cards.
+
+
+
+
Get the BC Wallet app
+ mdi-chevron-right
+
+
+
+ Help topics about using the BC Wallet appmdi-open-in-new
+
+
+
+
+
+
+
+
+
+
+
+
+ 2
+
+
+ Get your Digital Business Card
+
+
+
+
+
+
+ Open the BC Wallet app on your mobile phone, tap the "Scan" button.
+ Allow (if prompted) the app to access the camera as it is needed to scan the QR code.
+ Point your camera towards the QR code on the website. Once the scan is successful,
+ you’ll receive a credential offer in BC Wallet over a secure connection from BC Registries.
+
+ Open the credential offer and accept the credential.
+
+
+
+
+
+
+
+ Return to Simple Steps
+ mdi-chevron-right
+
+
+
+
+
+
+
diff --git a/src/components/DigitalCredentials/CredentialsFooter.vue b/src/components/DigitalCredentials/CredentialsFooter.vue
deleted file mode 100644
index 5ce5f35bc..000000000
--- a/src/components/DigitalCredentials/CredentialsFooter.vue
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
-
-
-
-
diff --git a/src/components/DigitalCredentials/CredentialsInfo.vue b/src/components/DigitalCredentials/CredentialsInfo.vue
new file mode 100644
index 000000000..566bc5f48
--- /dev/null
+++ b/src/components/DigitalCredentials/CredentialsInfo.vue
@@ -0,0 +1,40 @@
+
+
+
+
+ Where to use your Business Card
+
+
+
+ At present there are no places to use your Digital Business Card. In the near future you will be able to use
+ your business card credential to obtain a business licence, a business bank account, business permits,
+ and access services.
+
+
+
+
+
+ How to use digital credentials
+
+
+
+ Websites will request proof of your Digital Business Card.
+ Try the BC Wallet Showcasemdi-open-in-new to learn more.
+
+
+
+
+
+
+
diff --git a/src/components/DigitalCredentials/CredentialsLanding.vue b/src/components/DigitalCredentials/CredentialsLanding.vue
index 499b7485c..f67b85e4f 100644
--- a/src/components/DigitalCredentials/CredentialsLanding.vue
+++ b/src/components/DigitalCredentials/CredentialsLanding.vue
@@ -1,70 +1,63 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Generate a Business Digital Credential
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ Business Card Credentials
+
+ Use your business information to generate the Digital Business Card. You save digital credentials on
+ your phone using the BC Wallet app. When a service provider asks for a digital credential, you use the
+ BC Wallet app to show it.
+
+
+ A digital credential is the digital equivalent of a paper-based credential like a driver's licence. It
+ works as proof of qualification used to get services such as opening a bank account, or getting your
+ business licence.
+
+
+
+ Get your Digital Business Card
+ mdi-chevron-right
+
+
+
+
+
+
+
+
+
diff --git a/src/components/DigitalCredentials/CredentialsMenu.vue b/src/components/DigitalCredentials/CredentialsMenu.vue
new file mode 100644
index 000000000..ef722ca39
--- /dev/null
+++ b/src/components/DigitalCredentials/CredentialsMenu.vue
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
diff --git a/src/components/DigitalCredentials/CredentialsSimpleSteps.vue b/src/components/DigitalCredentials/CredentialsSimpleSteps.vue
new file mode 100644
index 000000000..3f86e41f5
--- /dev/null
+++ b/src/components/DigitalCredentials/CredentialsSimpleSteps.vue
@@ -0,0 +1,101 @@
+
+
+
+
+ Steps to get your credential:
+
+
+
+ 1
+
+
+ Have the
+
+ BC Wallet appmdi-open-in-new
+ installed on your mobile phone.
+
+
+
+
+
+
+ 2
+
+
+ Scan the QR code with your BC Wallet app to get your Digital Business Card and accept it in your BC
+ Wallet app.
+
+
+
+
+
+
+ 3
+
+
+ Check your Digital Business Cards on the
+ credential dashboard.
+
+
+
+
+
+ Read detailed instructions
+
+
+
+
+ Return to Company Dashboard
+ mdi-chevron-right
+
+
+
+
+
+
+
diff --git a/src/components/DigitalCredentials/CredentialsStepper.vue b/src/components/DigitalCredentials/CredentialsStepper.vue
new file mode 100644
index 000000000..706038247
--- /dev/null
+++ b/src/components/DigitalCredentials/CredentialsStepper.vue
@@ -0,0 +1,291 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ loadingMessage }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Scan this QR code with your BC Wallet app
+
+
+
+ QR code isn't scanning?
+
+ Generate a new QR code.
+
+
+
+
+
+
+ Accept the request in your wallet
+
+
+
+
+
+
+ I didn't receive anything
+
+
+
+
+
+ Your Business Card is now ready to use
+
+
+
+ mdi-check-circle-outline
+
+
+
+ Go to your
+
+ credential dashboard
+ to see details and make changes.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/DigitalCredentials/CredentialsTable.vue b/src/components/DigitalCredentials/CredentialsTable.vue
index ed386f126..ecf366812 100644
--- a/src/components/DigitalCredentials/CredentialsTable.vue
+++ b/src/components/DigitalCredentials/CredentialsTable.vue
@@ -1,9 +1,8 @@
-
-