From a242946770884c05f6561d0313100dd2b51f0001 Mon Sep 17 00:00:00 2001 From: CarlNation <32103961+CarlNation@users.noreply.github.com> Date: Tue, 10 Oct 2023 06:49:16 -0400 Subject: [PATCH] CSR-1392 Create work order in delete sub status for pia. add amount due --- src/constants/store-actions.js | 1 + src/constants/store-mutations.js | 1 + src/fmg-components/cart/cart.vue | 6 +- src/layouts/confirmation/confirmation.vue | 87 ++++++++++--------- src/layouts/payment-method/payment-method.vue | 37 ++++---- .../payment-pia-return/payment-pia-return.vue | 26 ++++-- src/layouts/payment/payment.vue | 23 ++++- src/mixins/base-mixin.js | 11 +++ src/store/index.js | 8 ++ 9 files changed, 129 insertions(+), 71 deletions(-) diff --git a/src/constants/store-actions.js b/src/constants/store-actions.js index 420e8a2de..288ceb67b 100644 --- a/src/constants/store-actions.js +++ b/src/constants/store-actions.js @@ -87,6 +87,7 @@ const storeActions = { SAVE_SERVICE_LOCATION_TECH_NOTES: "saveServiceLocationTechNotes", SAVE_WORK_ORDER_FLAG: "saveWorkOrderFlag", SAVE_PIA_ERROR_CODE: "savePiaErrorCode", + SAVE_PIA_WORK_ORDER: "savePiaWorkOrder", }; export { storeActions }; diff --git a/src/constants/store-mutations.js b/src/constants/store-mutations.js index f3f4a3c53..632379de3 100644 --- a/src/constants/store-mutations.js +++ b/src/constants/store-mutations.js @@ -1,6 +1,7 @@ const storeMutations = { UPDATE_WORK_ORDER_FLAG: "updateWorkOrderFlag", UPDATE_PIA_ERROR_CODE: "updatePiaErrorCode", + UPDATE_PIA_WORK_ORDER: "updatePiaWorkOrder", // VEHICLE MUTATIONS UPDATE_YEAR: "updateYear", diff --git a/src/fmg-components/cart/cart.vue b/src/fmg-components/cart/cart.vue index 6225010e4..fcc30519c 100644 --- a/src/fmg-components/cart/cart.vue +++ b/src/fmg-components/cart/cart.vue @@ -7,7 +7,7 @@ @click="toggleClass()">
Amount Due$321.00 + >${{amountDue}}
@@ -84,6 +84,7 @@ export default { //availableVaps: [], TO DO Do we need this? packageWithVAPS: false, // packageLevel: "", + amountDue: this.getAmountDue(), }; }, methods: { @@ -121,6 +122,9 @@ export default { return price; }, + getAmountDue() { + return baseMixin.methods.getAmountDue(this.storeLineItems); + }, removeItem(item) { this.$emit("cart-remove", item); }, diff --git a/src/layouts/confirmation/confirmation.vue b/src/layouts/confirmation/confirmation.vue index 88ab05111..eeb6b5b3a 100644 --- a/src/layouts/confirmation/confirmation.vue +++ b/src/layouts/confirmation/confirmation.vue @@ -1,54 +1,55 @@ diff --git a/src/layouts/payment/payment.vue b/src/layouts/payment/payment.vue index 6e94bfaed..aa83d71e1 100644 --- a/src/layouts/payment/payment.vue +++ b/src/layouts/payment/payment.vue @@ -213,9 +213,9 @@ export default { phoneNumber: store.getters.order.customer.phoneNumber, ctu: store.getters.order.serviceLocation.zipCodeCtu, referralCorrelationId: store.getters.order.referralCorrelationId, + workOrderNumber: this.getWOrkOrderNumber(), + invoiceNumber: this.getInvoiceNumber(), // TODO: replace these - workOrderNumber: Math.floor(Math.random() * 90000) + 10000, - invoiceNumber: Math.floor(Math.random() * 90000) + 10000, totalAmount: "321.00", // TODO: get from cart? displayAmount: "$321.00", // TODO: get from cart? lineItems: "Labor|189.99|1||Repair supplies|7.99|1", @@ -249,6 +249,25 @@ export default { // TODO return true; }, + getWOrkOrderNumber() { + if (store.getters.order.workOrderNumber) { + var items = store.getters.order.workOrderNumber.split("-"); + return items[1]; + } + + // no work order, set pia error and return + this.dispatchStoreAction(storeActions.SAVE_PIA_ERROR_CODE, "NO WORK ORDER", false); + this.$router.navigateWithoutSaving(this.navigationScenarios.CLICKED_BACK, this.$route); + }, + getInvoiceNumber() { + if (store.getters.order.workOrderNumber) { + return store.getters.order.workOrderNumber.replace("-", ""); + } + + // no work order, set pia error and return + this.dispatchStoreAction(storeActions.SAVE_PIA_ERROR_CODE, "NO WORK ORDER", false); + this.$router.navigateWithoutSaving(this.navigationScenarios.CLICKED_BACK, this.$route); + }, getAddress1() { return store.getters.order.serviceLocation.address ? store.getters.order.serviceLocation.address diff --git a/src/mixins/base-mixin.js b/src/mixins/base-mixin.js index d87b3cc85..12d642ffc 100644 --- a/src/mixins/base-mixin.js +++ b/src/mixins/base-mixin.js @@ -115,6 +115,17 @@ export default { getTotalLineItemPrice(lineItem) { return lineItem.kitPrice + lineItem.laborAmount + lineItem.sellingPrice; }, + getAmountDue(lineItems) { + // TODO: verify tax is included in lineitems + // Price everything in lineitems except the server data string + var amountDue = 0; + const itemsClone = { ...lineItems }; + delete itemsClone.serverData; + for(var propertyName in itemsClone) { + amountDue += this.getTotalPriceOfAllLineItemsAndChildParts(itemsClone[propertyName]); + } + return amountDue; + }, scrollToPageTop() { const container = document.getElementsByClassName("page-container-grouped-styles")[0]; container.scrollTo({ top: 0, left: 0, behavior: "smooth" }); diff --git a/src/store/index.js b/src/store/index.js index 431fce721..add9f355f 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -109,6 +109,7 @@ const getDefaultState = () => { referralCorrelationId: null, eon: null, workOrderNumber: null, + createDeleteStatusWorkOrderForPia: false, }, applicationUser: { eventBus: [], @@ -223,6 +224,9 @@ export const mutations = { updatePiaErrorCode(state, piaErrorCode) { state.order.payment.piaErrorCode = piaErrorCode; }, + updatePiaWorkOrder(state, piaWorkOrder) { + state.order.createDeleteStatusWorkOrderForPia = piaWorkOrder; + }, updateWorkOrderNumber(state, workOrderNumber) { state.order.workOrderNumber = workOrderNumber; }, @@ -1618,6 +1622,7 @@ export const actions = { referralNumber: order.referralNumber?.toString(), referralSequenceNumber: order.referralSequenceNumber, eon: order.eon, + createDeleteStatusWorkOrderForPia: order.createDeleteStatusWorkOrderForPia, }, }, logApiCall: true, @@ -1694,6 +1699,9 @@ export const actions = { savePiaErrorCode(context, piaErrorCode) { context.commit(storeMutations.UPDATE_PIA_ERROR_CODE, piaErrorCode); }, + savePiaWorkOrder(context, piaWorkOrder) { + context.commit(storeMutations.UPDATE_PIA_WORK_ORDER, piaWorkOrder); + }, // Business domain actions