diff --git a/src/layouts/payment-page/payment-page.vue b/src/layouts/payment-page/payment-page.vue
index e2e24d52..1ad52fd2 100644
--- a/src/layouts/payment-page/payment-page.vue
+++ b/src/layouts/payment-page/payment-page.vue
@@ -10,8 +10,8 @@
class="my-4"
cmsWidgetName="PayInAdvanceCreditCardErrorAlertWidget"
alertClass="alert-danger"
- @textLinkClicked="paymentFailedPayLater"
- :isDismissible="false" />
+ :isDismissible="false"
+ @textLinkClicked="paymentFailedPayLater" />
+ cmsWidgetName="ShopQuestionWidget"
+ @updatedMobileProviderNumber="setMobileProviderNumber" />
@@ -183,7 +184,12 @@ export default {
const resultMap = await settleAllPromises(promiseResultMap);
next((vm) => {
vm.setCmsContent(resultMap.cmsContent);
- vm.setData(resultMap.zipCodeData, resultMap.serviceabilityDetails, resultMap.mobileFeePart);
+ vm.setData(
+ resultMap.zipCodeData,
+ resultMap.serviceabilityDetails,
+ resultMap.mobileFeePart,
+ resultMap.shopQuestionInitialData?.mobileProviderNumber
+ );
vm.$refs.shopQuestion.initializeComponent(resultMap.shopQuestionInitialData);
});
},
@@ -206,6 +212,7 @@ export default {
selectedAppointmentType: this.getSelectedAppointmentType(),
selectedProvider: this.getSelectedProvider(),
mobileFeePart: null,
+ mobileProviderNumber: null,
zipContainsMilitaryBase: false,
zipCodeCtu: null
};
@@ -333,6 +340,19 @@ export default {
await this.$refs.shopQuestion.reloadShopData(zipCode);
},
async forwardButtonAction() {
+ const providerToUse = this.isMobileLocationDisplayed
+ ? {
+ providerNumber: this.mobileProviderNumber,
+ address: {
+ streetAddress: null,
+ city: null,
+ state: null,
+ zipCode: null,
+ zipCodeCtu: null
+ }
+ }
+ : this.selectedProvider;
+
useMainStore().saveServiceLocation({
address: this.streetAddress,
address2: this.streetAddress2,
@@ -343,13 +363,13 @@ export default {
appointmentType: this.selectedAppointmentType,
isVehicleProtected: this.isVehicleProtected,
provider: {
- providerNumber: this.selectedProvider?.providerNumber,
+ providerNumber: providerToUse?.providerNumber,
address: {
- streetAddress: this.selectedProvider?.address?.streetAddress,
- city: this.selectedProvider?.address?.city,
- state: this.selectedProvider?.address?.state,
- zipCode: this.selectedProvider?.address?.zipCode,
- zipCodeCtu: this.selectedProvider?.address?.zipCodeCtu
+ streetAddress: providerToUse?.address?.streetAddress,
+ city: providerToUse?.address?.city,
+ state: providerToUse?.address?.state,
+ zipCode: providerToUse?.address?.zipCode,
+ zipCodeCtu: providerToUse?.address?.zipCodeCtu
}
}
});
@@ -386,7 +406,7 @@ export default {
getSelectedProvider() {
return useMainStore().order.serviceLocation.provider;
},
- setData(zipCodeData, serviceabilityDetails, mobileFeePart) {
+ setData(zipCodeData, serviceabilityDetails, mobileFeePart, mobileProviderNumber) {
if (zipCodeData) {
this.zipContainsMilitaryBase = zipCodeData.containsMilitaryBase;
this.zipCodeCtu = zipCodeData.zipCodeCtu;
@@ -399,6 +419,10 @@ export default {
if (mobileFeePart) {
this.mobileFeePart = mobileFeePart;
}
+
+ if (mobileProviderNumber) {
+ this.setMobileProviderNumber(mobileProviderNumber);
+ }
},
setContainsMilitaryBase(val) {
if (this.zipContainsMilitaryBase !== val) {
@@ -408,6 +432,9 @@ export default {
setMobileFeePart(mobileFeePart) {
this.mobileFeePart = mobileFeePart;
},
+ setMobileProviderNumber(providerNumber) {
+ this.mobileProviderNumber = providerNumber;
+ },
resetMobileLocation() {
this.streetAddress = '';
this.streetAddress2 = '';
diff --git a/src/layouts/service-location/shop-question/shop-question.vue b/src/layouts/service-location/shop-question/shop-question.vue
index d5fc9da5..47a71198 100644
--- a/src/layouts/service-location/shop-question/shop-question.vue
+++ b/src/layouts/service-location/shop-question/shop-question.vue
@@ -78,7 +78,7 @@ export default {
validationRules: String,
isDisplayed: Boolean
},
- emits: ['update:modelValue'],
+ emits: ['update:modelValue', 'updatedMobileProviderNumber'],
data() {
return {
shopProviders: [],
@@ -237,6 +237,12 @@ export default {
const result = await this.loadData(serviceZipCode);
this.initializeComponent(result.data);
+ if (result.data?.mobileProviderNumber
+ && (this.selectedAppointmentType === AppointmentTypeStrings.MOBILE
+ || this.selectedAppointmentType === AppointmentTypeStrings.MOBILE_NOT_ITAC_AND_NOT_NOCOMP)) {
+ this.$emit('updatedMobileProviderNumber', result.data.mobileProviderNumber);
+ }
+
this.resetAnswers();
await nextTick();
diff --git a/src/store/index.js b/src/store/index.js
index 7f0a595b..09c18a81 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -1869,7 +1869,8 @@ export const useMainStore = defineStore({
);
let queryString = '';
- if (appointmentType === 'Mobile') {
+ if (appointmentType === AppointmentTypeStrings.MOBILE
+ || appointmentType === AppointmentTypeStrings.MOBILE_NOT_ITAC_AND_NOT_NOCOMP) {
queryString =
`ParentAccountNumber=${applicationConfig.CASH_PARENT_ACCOUNT_NUMBER}`
+ `&BillToAccountNumber=${billToAccountNumber}`