+
diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue
index ca8b39d32..67bdd5f2e 100644
--- a/src/layouts/payment-method/payment-method.vue
+++ b/src/layouts/payment-method/payment-method.vue
@@ -186,7 +186,6 @@ export default {
lineItems: [],
availableLineItems: [],
paymentMethodInternalModel: this.getPaymentMethodFromStore(),
- displayPiaAlert: this.getPiaAlert(),
};
},
methods: {
@@ -245,9 +244,6 @@ export default {
packageReqs && serviceLocationReqs && isInsuranceSet && scheduleReqs && customerReqs
);
},
- getPiaAlert() {
- return store.getters.order.payment.piaErrorCode ? true : false;
- },
getPaymentMethodFromStore() {
const isPia = store.getters.order.payment.isPia;
@@ -266,24 +262,29 @@ export default {
this.$router.navigateWithoutSaving(this.navigationScenarios.CLICKED_BACK, this.$route);
},
async forwardButtonAction() {
+ await this.dispatchStoreAction(
+ storeActions.SAVE_PAYMENT_METHOD_CHOICE,
+ this.paymentMethod,
+ false
+ );
+
+ await this.dispatchStoreAction(storeActions.SAVE_VAPS, this.lineItems.vaps, false);
+
+ await this.dispatchStoreAction(storeActions.SAVE_PROMOS, this.lineItems.promos, false);
+
switch (this.paymentMethod) {
case paymentMethods.CREDIT_CARD:
- this.piaSetup("cc");
+ this.piaSetup(this.paymentMethod);
break;
case paymentMethods.PAYPAL:
- this.piaSetup("pp");
+ this.piaSetup(this.paymentMethod);
break;
case paymentMethods.AFTERPAY:
- this.piaSetup("ap");
+ this.piaSetup(this.paymentMethod);
break;
default:
this.dispatchStoreAction(storeActions.SAVE_PIA_ERROR_CODE, null, false);
this.dispatchStoreAction(this.storeActions.SAVE_WORK_ORDER_FLAG, true, false);
- this.dispatchStoreAction(
- storeActions.SAVE_PAYMENT_METHOD_CHOICE,
- this.paymentMethod,
- false
- );
await submitWorkOrder({ pageNameToLog: "payment-method" });
this.$router.navigateWithoutSaving(
this.navigationScenarios.CLICKED_FORWARD,
@@ -296,11 +297,6 @@ export default {
// since we're leaving the site for pia, clear any save session promises that we will not be able to resolve when we return
await this.dispatchStoreAction(storeActions.RESET_SAVE_SESSION_PROMISE);
- await this.dispatchStoreAction(
- storeActions.SAVE_PAYMENT_METHOD_CHOICE,
- payNowType,
- false
- );
// make sure pia error codes are reset
this.dispatchStoreAction(storeActions.SAVE_PIA_ERROR_CODE, null, false);
@@ -353,6 +349,9 @@ export default {
return this.paymentMethodInternalModel;
},
+ displayPiaAlert() {
+ return store.getters.order.payment.piaErrorCode ? true : false;
+ },
},
watch: {
customCtaCopy(newValue) {
diff --git a/src/layouts/payment-pia-return/payment-pia-return.vue b/src/layouts/payment-pia-return/payment-pia-return.vue
index ec2ecd1c0..aa9340995 100644
--- a/src/layouts/payment-pia-return/payment-pia-return.vue
+++ b/src/layouts/payment-pia-return/payment-pia-return.vue
@@ -13,18 +13,13 @@ import store from "@/store";
import baseMixin from "@/mixins/base-mixin.js";
import loadingModal from "@/fmg-components/loading-modal/loading-modal.vue";
import { Form } from "vee-validate";
+import { paymentMethods } from "@/constants/payment-method-constants";
export default {
name: "payment-pia-return",
async mounted() {
this.$refs.loadingModal.showModal();
- // from paypal
const piaError = getQuerystringParameter(queryStrings.ERROR);
- const token = getQuerystringParameter(queryStrings.TOKEN);
- const payerId = getQuerystringParameter(queryStrings.PAYERID);
-
- // from credit card
- const subscriptionID = getQuerystringParameter(queryStrings.SUBSCRIPTIONID);
if (piaError) {
console.log("Error during payment: " + piaError);
@@ -35,25 +30,26 @@ export default {
);
this.$router.navigateWithoutSaving(this.navigationScenarios.PIA_ERROR, this.$route);
} else {
- if (token && payerId) {
- await this.processPaypalResponse();
- } else {
- if (subscriptionID) {
- await this.processCreditCardResponse(subscriptionID);
- } else {
- console.log(
- "Error during payment: " + token + " : " + payerId + " : " + subscriptionID
- );
+ switch (store.getters.order.payment.piaType) {
+ case paymentMethods.CREDIT_CARD:
+ case paymentMethods.AFTERPAY:
+ await this.processCreditCardResponse();
+ break;
+ case paymentMethods.PAYPAL:
+ await this.processPaypalResponse();
+ break;
+ default:
+ var msg = "Unknown Pia type: " + store.getters.order.payment.piaType;
+ console.log(msg);
baseMixin.methods.dispatchStoreAction(
storeActions.SAVE_PIA_ERROR_CODE,
- piaError,
+ msg,
false
);
this.$router.navigateWithoutSaving(
this.navigationScenarios.PIA_ERROR,
this.$route
);
- }
}
}
},
@@ -62,12 +58,16 @@ export default {
return true;
},
async processPaypalResponse() {
+ const token = getQuerystringParameter(queryStrings.TOKEN);
+ const payerId = getQuerystringParameter(queryStrings.PAYERID);
baseMixin.methods.dispatchStoreAction(storeActions.SAVE_PIA_ERROR_CODE, null, false);
baseMixin.methods.dispatchStoreAction(storeActions.SAVE_WORK_ORDER_FLAG, true, false);
+ baseMixin.methods.dispatchStoreAction(storeActions.SAVE_PAYPAL_TOKEN, token, false);
await this.saveAndSubmitWorkOrder();
},
- async processCreditCardResponse(subscriptionID) {
+ async processCreditCardResponse() {
+ const subscriptionID = getQuerystringParameter(queryStrings.SUBSCRIPTIONID);
baseMixin.methods.dispatchStoreAction(storeActions.SAVE_PIA_ERROR_CODE, null, false);
baseMixin.methods.dispatchStoreAction(storeActions.SAVE_WORK_ORDER_FLAG, true, false);
diff --git a/src/layouts/payment/payment.vue b/src/layouts/payment/payment.vue
index d6a6394fe..c4dcb9469 100644
--- a/src/layouts/payment/payment.vue
+++ b/src/layouts/payment/payment.vue
@@ -168,6 +168,7 @@ import { externalUrls } from "@/router/router-constants/externalUrl-values";
import { fetchCmsContentForPage } from "@/helpers/cms-content-helper";
import { settleAllPromises } from "@/helpers/layout-helper";
import { applicationConfig } from "@/constants/application-config";
+import { paymentMethods } from "@/constants/payment-method-constants";
import baseMixin from "@/mixins/base-mixin.js";
// Validation
@@ -286,7 +287,16 @@ export default {
: store.getters.order.serviceLocation.provider.address.zipCode;
},
getPaymentType() {
- return store.getters.order.payment.piaType;
+ switch (store.getters.order.payment.piaType) {
+ case paymentMethods.AFTERPAY:
+ return "ap";
+ case paymentMethods.CREDIT_CARD:
+ return "cc";
+ case paymentMethods.PAYPAL:
+ return "pp";
+ default:
+ return store.getters.payment.piaType;
+ }
},
getHeaderLine1() {
if (!this.isPaypal()) {
@@ -316,11 +326,11 @@ export default {
return itemsForPia;
},
getAmountDue() {
- return 350.0;
+ return 2;
//return baseMixin.methods.getAmountDue(store.getters.order.lineItems);
},
getDisplayAmountDue() {
- return "$350.00";
+ return "$2.00";
//return baseMixin.methods.getDisplayAmountDue(store.getters.order.lineItems);
},
isPaypal() {
diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue
index 5b05cf961..42916b47f 100644
--- a/src/layouts/quote/quote.vue
+++ b/src/layouts/quote/quote.vue
@@ -265,7 +265,7 @@ export default {
}
this.dispatchStoreAction(this.storeActions.SAVE_VAPS, this.selectedVaps, false);
- this.dispatchStoreAction(this.storeActions.SAVE_PROMOS, this.newValidatedPromos, false);
+ this.dispatchStoreAction(this.storeActions.SAVE_PROMOS, this.allActivePromos, false);
const payment = this.$store.getters.payment;
if (payment.isInsurance) {
diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue
index 704ad007d..ff1961465 100644
--- a/src/layouts/schedule/schedule.vue
+++ b/src/layouts/schedule/schedule.vue
@@ -9,7 +9,7 @@
-
+
-
+
{
piaType: null,
piaErrorCode: null,
inactivePromos: null,
+ paypalToken: null,
ccToken: {
subscriptionId: null,
expMonth: null,
@@ -270,6 +271,9 @@ export const mutations = {
state.order.payment.ccToken.transactionId = ccToken.transactionId;
state.order.payment.ccToken.transReferenceNumber = ccToken.transReferenceNumber;
},
+ updatePaypalToken(state, ppToken) {
+ state.order.payment.paypalToken = ppToken;
+ },
updateInsuranceVerifiedStatus(state, isVerified) {
state.order.payment.insuranceCoverage.isVerified = isVerified;
},
@@ -495,10 +499,12 @@ export const mutations = {
state.order.lineItems.glassParts = sessionInformation.order.lineItems.glassParts;
state.order.lineItems.supportingItems = sessionInformation.order.lineItems.supportingItems;
state.order.lineItems.vaps = sessionInformation.order.lineItems.vaps;
+ state.order.lineItems.promos = sessionInformation.order.lineItems.promos;
state.order.lineItems.serverData = sessionInformation.order.lineItems.serverData;
state.order.payment.parentAccountNumber =
sessionInformation.order.payment.parentAccountNumber;
+ state.order.payment.inactivePromos = sessionInformation.order.payment.inactivePromos;
state.order.serviceLocation.address =
sessionInformation.order.serviceLocation.streetAddress;
@@ -1644,6 +1650,11 @@ export const actions = {
isInsurance: order.payment.isInsurance,
parentAccountNumber: order.payment.parentAccountNumber,
inactivePromos: order.payment.inactivePromos,
+ isCreditCard:
+ order.payment.piaType == paymentMethods.CREDIT_CARD ? true : false,
+ isPaypal: order.payment.piaType == paymentMethods.PAYPAL ? true : false,
+ isAfterPay: order.payment.piaType == paymentMethods.AFTERPAY ? true : false,
+ paypalToken: order.payment.paypalToken,
ccToken: {
subscriptionId: order.payment.ccToken.subscriptionId,
expMonth: order.payment.ccToken.expMonth,
@@ -1777,6 +1788,9 @@ export const actions = {
saveCCToken(context, ccToken) {
context.commit(storeMutations.UPDATE_CCTOKEN, ccToken);
},
+ savePaypalToken(context, ppToken) {
+ context.commit(storeMutations.UPDATE_PAYPAL_TOKEN, ppToken);
+ },
// Business domain actions
@@ -2238,6 +2252,7 @@ export const actions = {
addGuidToLineItemsIfNotAlreadyThere(addableVaps);
const requestObject = {
promoCode: promoCode,
+ addableVaps: addableVaps,
order: {
appointmentType: order.serviceLocation.appointmentType,
carId: order.vehicle.carId,
@@ -2246,7 +2261,6 @@ export const actions = {
isRepair: order.damage.isRepair,
glassToReplace: renameGlassToReplaceAttributes(order.damage.glassToReplace),
lineItemsOnOrder: getArrayOfAllLineItems(order.lineItems),
- addableVaps: addableVaps,
parentAccountNumber: order.payment.parentAccountNumber,
referralSequenceNumber: order.referralSequenceNumber,
serviceState: order.serviceLocation.state,
@@ -2267,10 +2281,12 @@ export const actions = {
pageNameToLog: pageNameToLog,
});
- context.commit(
- storeMutations.UPDATE_LINE_ITEMS_SERVER_DATA,
- validateResponse.data.lineItemsServerData
- );
+ if (validateResponse?.data?.serverData) {
+ context.commit(
+ storeMutations.UPDATE_LINE_ITEMS_SERVER_DATA,
+ validateResponse.data.serverData
+ );
+ }
return validateResponse;
},