This commit is contained in:
Leah Schumann 2023-10-13 13:16:51 -04:00
parent 5b6474fa48
commit ffd829cee9
2 changed files with 83 additions and 13 deletions

View file

@ -22,7 +22,7 @@
<textLink <textLink
ref="removeLink" ref="removeLink"
linkType="text" linkType="text"
text="showMoreShopsLinkText" :text="removeLinkText"
href="#!" href="#!"
@click-event="removeItem(lineItem)" /> @click-event="removeItem(lineItem)" />
</div> </div>
@ -35,7 +35,7 @@
<textLink <textLink
ref="removeLink" ref="removeLink"
linkType="text" linkType="text"
text="showMoreShopsLinkText" text="removeLinkText"
href="#!" href="#!"
@click-event="removeItem(lineItem)" /> @click-event="removeItem(lineItem)" />
<span>{{ lineItem.price }}</span> <span>{{ lineItem.price }}</span>
@ -45,7 +45,10 @@
><span>{{ recycleFee }}</span> ><span>{{ recycleFee }}</span>
</div> </div>
<!-- Sub total, sales tax, total columns --> <!-- Sub total, sales tax, total columns -->
<div class="sub-total"><span>Subtotal</span><span>$320</span></div> <div class="sub-total">
<span>Subtotal</span>
<span>{{ subTotal }}</span>
</div>
<div class="sales-tax"><span>Sales tax</span><span>$1</span></div> <div class="sales-tax"><span>Sales tax</span><span>$1</span></div>
<div class="amount-due"><span>Amount due</span><span>$321</span></div> <div class="amount-due"><span>Amount due</span><span>$321</span></div>
</div> </div>
@ -63,10 +66,12 @@ import {
} from "@/helpers/service-package-helper"; } from "@/helpers/service-package-helper";
import textLink from "@/ux-components/text-link/text-link"; import textLink from "@/ux-components/text-link/text-link";
import textBlock from "@/digital-components/text-block/text-block"; import textBlock from "@/digital-components/text-block/text-block";
import { deepClone } from "@/helpers/object-helper";
export default { export default {
name: "modal", name: "modal",
props: { props: {
modelValue: Object,
damage: Object, damage: Object,
servicePackageOptionsCmsName: String, servicePackageOptionsCmsName: String,
availableLineItems: Object, availableLineItems: Object,
@ -76,7 +81,6 @@ export default {
return { return {
isActive: false, isActive: false,
packageWithVAPS: false, packageWithVAPS: false,
amountDue: this.getAmountDue(),
}; };
}, },
methods: { methods: {
@ -130,6 +134,7 @@ export default {
...findLineItemsWithPartType(vapType, this.availableLineItems) ...findLineItemsWithPartType(vapType, this.availableLineItems)
); );
}); });
return vapsLineItemsForSelectedPackage; return vapsLineItemsForSelectedPackage;
}, },
}, },
@ -167,9 +172,18 @@ export default {
return packagePriceString; return packagePriceString;
// return (packagePriceString.length > 0) ? packagePriceString : "Test String"; // return (packagePriceString.length > 0) ? packagePriceString : "Test String";
}, },
// cartItems: {
// get: function () {
// return this.answersToDisplay;
// },
// set: function (newValue) {
// },
// },
displayedPackageLineItems() { displayedPackageLineItems() {
const displayedPackageLineItems = []; const displayedPackageLineItems = [];
const packageLineItems = this.getVapsLineItemsForSelectedPackage(this.packageLevel); const packageLineItems = this.getVapsLineItemsForSelectedPackage(this.packageLevel);
// TODO Determine if we could get the same list from this.lineItems? // TODO Determine if we could get the same list from this.lineItems?
packageLineItems?.forEach((item) => { packageLineItems?.forEach((item) => {
let price = item.sellingPrice + item.kitPrice + item.laborAmount; let price = item.sellingPrice + item.kitPrice + item.laborAmount;
@ -181,6 +195,7 @@ export default {
}; };
displayedPackageLineItems.push(packageLineItem); displayedPackageLineItems.push(packageLineItem);
}); });
return displayedPackageLineItems; return displayedPackageLineItems;
}, },
displayedNonPackageLineItems() { displayedNonPackageLineItems() {
@ -244,12 +259,63 @@ export default {
// } // }
return true; return true;
}, },
removeLinkText() {
// TODO: retrieve from CMS
return "Remove";
},
cartLineItems() {
const cartLineItems = [];
const glassParts = this.lineItems.glassParts?.flat();
if (glassParts) {
glassParts.forEach((glassPart) => {
cartLineItems.push(glassPart);
});
}
const supportingItems = this.lineItems.supportingItems;
if (supportingItems) {
supportingItems.forEach((supportingItem) => {
cartLineItems.push(supportingItem);
});
}
const vaps = this.lineItems.vaps;
if (vaps) {
vaps.forEach((vap) => {
cartLineItems.push(vap);
});
}
return cartLineItems;
},
subTotal() {
let subTotal = 0;
const pricedLineItems = this.cartLineItems.filter(i => Object.hasOwn(i, "sellingPrice"));
pricedLineItems.forEach((lineItem) => {
subTotal += (lineItem.sellingPrice ?? 0) +
(lineItem.kitPrice ?? 0) +
(lineItem.laborAmount ?? 0);
});
return subTotal + this.getVapsPrice(this.packageLevel);
},
salesTax() {
return "$2.50";
},
amountDue() {
return this.getAmountDue();
},
}, },
components: { components: {
textBlock, textBlock,
textLink, textLink,
}, },
}; };
</script> </script>
<style lang="scss"> <style lang="scss">

View file

@ -124,6 +124,13 @@ export default {
async beforeRouteEnter(to, from, next) { async beforeRouteEnter(to, from, next) {
// Call APIs // Call APIs
const cmsContentPromise = fetchCmsContentForPage(to.query.fmgPage); const cmsContentPromise = fetchCmsContentForPage(to.query.fmgPage);
const supportingItemsPromise = baseMixin.methods.dispatchStoreActionWithLogging(
storeActions.GET_SUPPORTING_ITEMS,
null,
"payment-method"
);
const wipersPromise = baseMixin.methods.dispatchStoreActionWithLogging( const wipersPromise = baseMixin.methods.dispatchStoreActionWithLogging(
storeActions.GET_WIPERS, storeActions.GET_WIPERS,
null, null,
@ -135,13 +142,6 @@ export default {
null, null,
"payment-method" "payment-method"
); );
console.log("rainDefensePromise: ", rainDefensePromise);
const supportingItemsPromise = baseMixin.methods.dispatchStoreActionWithLogging(
storeActions.GET_SUPPORTING_ITEMS,
null,
"payment-method"
);
const promiseResultMap = [ const promiseResultMap = [
{ {
@ -181,7 +181,9 @@ export default {
"payment-method", "payment-method",
false false
); );
const lineItems = store.getters.lineItems;
const lineItems = store.getters.order.lineItems;
const cartItems = [...glassParts, ...lineItems.supportingItems, ...lineItems.vaps]; // TOBEREMOVED BY AJC IN CSR-1384 const cartItems = [...glassParts, ...lineItems.supportingItems, ...lineItems.vaps]; // TOBEREMOVED BY AJC IN CSR-1384
@ -197,7 +199,6 @@ export default {
data() { data() {
return { return {
cartItems: [], // TOBEREMOVED BY AJC IN CSR-1384 cartItems: [], // TOBEREMOVED BY AJC IN CSR-1384
lineItems: [], lineItems: [],
availableLineItems: [], availableLineItems: [],
displayPaypalAlert: this.getPaypalAlert(), displayPaypalAlert: this.getPaypalAlert(),
@ -205,6 +206,9 @@ export default {
}; };
}, },
methods: { methods: {
getLineItemsFromStore() {
return store.getters.order.lineItems;
},
arePagePrerequisitesValid() { arePagePrerequisitesValid() {
// Line Items // Line Items
const packageReqs = !!store.getters.order.lineItems.supportingItems; const packageReqs = !!store.getters.order.lineItems.supportingItems;