@infrab4a/connect-angular 4.0.0-beta.21 → 4.0.0-beta.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,7 +5,7 @@ import { getIdToken, authState, Auth, provideAuth, getAuth } from '@angular/fire
5
5
  import { combineLatest, from, of, throwError, Subject, iif, forkJoin } from 'rxjs';
6
6
  import { map, mergeMap, catchError, concatMap, tap } from 'rxjs/operators';
7
7
  import * as i3 from '@infrab4a/connect';
8
- import { Where, Shops, CheckoutTypes, CouponTypes, Exclusivities, isNil, NotFoundError, Checkout, pick, LineItem, CheckoutSubscription, Category, Product, RequiredArgumentError, add, Order, Authentication, AuthenticationFirebaseAuthService, Register, RegisterFirebaseAuthService, SignOut, RecoveryPassword, ProductsIndex, AxiosAdapter, UserBeautyProfileFirestoreRepository, Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, CampaignHashtagFirestoreRepository, CampaignDashboardFirestoreRepository, SubscriptionEditionFirestoreRepository, HomeFirestoreRepository, LeadFirestoreRepository, LegacyOrderFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, ShopSettingsFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionFirestoreRepository, UserFirestoreRepository, UserAddressFirestoreRepository, UserPaymentMethodFirestoreRepository, ProductVariantFirestoreRepository, CategoryHasuraGraphQLRepository, ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, VariantHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, FilterHasuraGraphQLRepository } from '@infrab4a/connect';
8
+ import { Where, Shops, CheckoutTypes, CouponTypes, Exclusivities, isNil, NotFoundError, Checkout, pick, LineItem, RoundProductPricesHelper, CheckoutSubscription, Category, Product, RequiredArgumentError, add, Order, Authentication, AuthenticationFirebaseAuthService, Register, RegisterFirebaseAuthService, SignOut, RecoveryPassword, ProductsIndex, AxiosAdapter, UserBeautyProfileFirestoreRepository, Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, CampaignHashtagFirestoreRepository, CampaignDashboardFirestoreRepository, SubscriptionEditionFirestoreRepository, HomeFirestoreRepository, LeadFirestoreRepository, LegacyOrderFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, ShopSettingsFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionFirestoreRepository, UserFirestoreRepository, UserAddressFirestoreRepository, UserPaymentMethodFirestoreRepository, ProductVariantFirestoreRepository, CategoryHasuraGraphQLRepository, ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, VariantHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, FilterHasuraGraphQLRepository } from '@infrab4a/connect';
9
9
  import cookie from 'js-cookie';
10
10
  import { CustomError } from 'ts-custom-error';
11
11
  import * as i1$1 from '@angular/fire/firestore';
@@ -378,6 +378,7 @@ class CartService {
378
378
  shop: checkout.shop || this.defaultShop,
379
379
  isSubscriber: checkout.user?.isSubscriber,
380
380
  });
381
+ RoundProductPricesHelper.roundProductPrices(item);
381
382
  return {
382
383
  checkout,
383
384
  lineItem: LineItem.toInstance({
@@ -388,7 +389,7 @@ class CartService {
388
389
  slug: slug ?? product.slug,
389
390
  sku: sku ?? product.sku,
390
391
  stock,
391
- price,
392
+ price: this.roundPrice(price),
392
393
  image,
393
394
  weight: weight ?? product.weight,
394
395
  quantity: (item.quantity || 0) + (quantity || 0),
@@ -404,7 +405,9 @@ class CartService {
404
405
  const info = product.price;
405
406
  if (product.isGift)
406
407
  return 0;
407
- return isSubscriber && info.subscriberPrice > 0 ? info.subscriberPrice : info.price;
408
+ return isSubscriber && info.subscriberPrice > 0
409
+ ? Number(info.subscriberPrice.toFixed(2))
410
+ : Number(info.price.toFixed(2));
408
411
  };
409
412
  this.checkMaxStock = (item, quantity) => {
410
413
  const maxStock = item.stock?.quantity || 0;
@@ -460,6 +463,15 @@ class CartService {
460
463
  buildCartFromCheckout(checkoutData) {
461
464
  return this.checkoutService.getCheckout(checkoutData).pipe(map((checkout) => checkout.lineItems), concatMap((lineItems) => of(this.generateCartObject(lineItems))));
462
465
  }
466
+ roundPrice(productPrice) {
467
+ const { price, fullPrice, subscriberPrice } = productPrice;
468
+ return {
469
+ ...productPrice,
470
+ price: Number(price.toFixed(2)),
471
+ fullPrice: Number(fullPrice.toFixed(2)),
472
+ ...(subscriberPrice && { subscriberPrice: Number(subscriberPrice.toFixed(2)) }),
473
+ };
474
+ }
463
475
  async getProductData(productId) {
464
476
  let product;
465
477
  let variant;