Merge branch 'develop' into feature/CSR-1689-ajc

This commit is contained in:
Adam Caouette 2023-11-14 09:09:30 -05:00
commit e30ad754b0
2 changed files with 71 additions and 29 deletions

View file

@ -55,7 +55,15 @@
<span v-else-if="cartItem == recycleFeeCartItem">{{
recycleFeeCartItem.name
}}</span>
<span>{{ currencyFormatter.format(cartItem.subTotal) }}</span>
<span
>{{
`${
cartItem.category == "promos"
? "(" + currencyFormatter.format(cartItem.subTotal * -1) + ")"
: currencyFormatter.format(cartItem.subTotal)
}`
}}
</span>
</div>
<!-- Sub total, sales tax, total columns -->
@ -95,6 +103,7 @@ import baseMixin from "@/mixins/base-mixin.js";
// Helpers
import { deepClone } from "@/helpers/object-helper";
import { getHighestFullySatisfiedTier, getPackageContents } from "@/helpers/service-package-helper";
import { getPromoCodeWithoutBundleIdentifier } from "@/helpers/promotions-helper";
// Constants
import { partTypeStrings } from "@/constants/part-type-strings";
@ -224,33 +233,16 @@ export default {
cartItems.push(this.mobileFeeCartItem);
}
// Create a cart item for each promo
this.promos.forEach((promoLineItem) => {
let cartItem = null;
cartItem = {
name: promoLineItem?.promoCode, // get from CMS?
category: cartItemCategories.PROMOS,
cartItemType: promoLineItem?.partType,
isDisplayed: true,
subTotal:
(promoLineItem?.kitPrice ?? 0) +
(promoLineItem?.laborAmount ?? 0) +
(promoLineItem?.sellingPrice ?? 0),
salesTax: promoLineItem?.salesTax,
lineItems: [],
};
promoLineItem.cartItemType = cartItem.cartItemType;
cartItem.lineItems.push(promoLineItem);
cartItems.push(cartItem);
});
if (this.premiumAppointmentDiscountCartItem) {
cartItems.push(this.premiumAppointmentDiscountCartItem);
}
if (this.promoCartItems) {
this.promoCartItems.forEach((promoCartItem) => {
cartItems.push(promoCartItem);
});
}
return cartItems;
},
},
@ -353,6 +345,7 @@ export default {
category: cartItemCategories.VAPS,
cartItemType: cartItemTypes.FRONT_WIPERS,
isDisplayed: true,
isRemovable: true,
subTotal: 0,
salesTax: 0,
lineItems: [],
@ -555,10 +548,7 @@ export default {
otherSupportingItemsCartItem() {
let cartItem = null;
let otherSupportingItemsLineItems = baseMixin.methods.filterOutFees(
this.supportingItems
);
otherSupportingItemsLineItems = otherSupportingItemsLineItems.filter(
const otherSupportingItemsLineItems = this.supportingItems.filter(
(lineItem) => lineItem.partType != partTypeStrings.EARLY_BIRD
);
@ -605,6 +595,7 @@ export default {
category: cartItemCategories.SUPPORTING_ITEMS,
cartItemType: cartItemTypes.EARLY_BIRD,
isDisplayed: true,
isRemovable: true,
subTotal: 0,
salesTax: 0,
lineItems: [],
@ -623,6 +614,57 @@ export default {
return cartItem;
},
promoCartItems() {
const promoCartItems = [];
// clone the promos array
const promosClone = deepClone(this.promo);
// get unique promo codes
const uniquePromoCodes = [
...new Set(
this.promos.map((promo) => getPromoCodeWithoutBundleIdentifier(promo.promoCode))
),
];
uniquePromoCodes.forEach((promoCode) => {
// get the codes with the prefix from the promo array
const promoLineItems = this.promos.filter(
(promo) => getPromoCodeWithoutBundleIdentifier(promo.promoCode) == promoCode
);
// Create a cart item for each promo
let cartItem = null;
cartItem = {
name: promoCode,
category: cartItemCategories.PROMOS,
cartItemType: promoCode,
isDisplayed: true,
isRemovable: true,
subTotal: 0,
salesTax: 0,
lineItems: [],
};
promoLineItems.forEach((promoLineItem) => {
promoLineItem.cartItemType = cartItem.cartItemType;
cartItem.subTotal +=
(promoLineItem.kitPrice ?? 0) +
(promoLineItem.laborAmount ?? 0) +
(promoLineItem.sellingPrice ?? 0);
cartItem.salesTax += promoLineItem.salesTax ?? 0;
cartItem.lineItems.push(promoLineItem);
});
promoCartItems.push(cartItem);
});
return promoCartItems;
},
removeLinkText() {
return this.getCmsContent("RemoveCartItemTextWidget", "Text");
},

View file

@ -5,7 +5,7 @@ export function getDateDifferenceInDays(startDate, endDate) {
// Use the built-in method to get the difference in milliseconds
var difference = date1 - date2;
// Convert milliseconds to days and return the result
return difference / (1000 * 3600 * 24);
return Math.floor(difference / (1000 * 3600 * 24));
}
export function get12HourTimeFormat(time) {
// Check correct time format and split into components