{"version":3,"sources":["reducers/reducerAuthenticationToken.js","actions/actionAuthentication.js","helpers/chartjs.js","helpers/genfunction.js","helpers/CouponManager.js","helpers/formerrorstate.js","helpers/formfields.js","helpers/UDFs.js","actions/actionBookingTypes.js","helpers/sessionStorage.js","reducers/reducerBookingTypes.js","actions/actionAppLoader.js","reducers/reducerAppLoader.js","actions/actionShopCart.js","reducers/reducerShopCart.js","actions/actionExtraItems.js","reducers/reducerExtraItems.js","actions/actionMember.js","reducers/reducerMember.js","actions/actionPaymentTransaction.js","reducers/reducerPaymentTransaction.js","actions/actionIP.js","reducers/reducerIP.js","actions/actionCalendarNavBar.js","reducers/reducerCalendarView.js","actions/actionCardDiscardTime.js","reducers/reducerCardDiscardTime.js","actions/actionDisplayAreas.js","reducers/reducerDisplayAreas.js","actions/actionCoupon.js","reducers/reducerCoupon.js","reducers/reducerTourProduct.js","actions/actionTourProduct.js","actions/actionGiftCardHold.js","reducers/reducerGiftCardHold.js","actions/actionUniqueCouponHolds.js","reducers/reducerUniqueCouponHolds.js","actions/actionMemberValidation.js","reducers/reducerMemberValidation.js","actions/actionFormError.js","reducers/reducerFormError.js","actions/actionDonation.js","reducers/reducerDonation.js","actions/actionTransactionFee.js","reducers/reducerTransactionFee.js","actions/actionMembershipPackages.js","reducers/reducerMembershipPackages.js","actions/actionGATicket.js","reducers/reducerGaTicket.js","actions/actionLostMember.js","reducers/reducerLostMember.js","reducers/reducerMemberMemberships.js","actions/actionMemberMemberships.js","actions/actionCustomer.js","reducers/reducerCustomer.js","actions/actionBooking.js","reducers/reducerBooking.js","reducers/reducerGiftCardDisplayAreas.js","actions/actionGiftCardDisplayAreas.js","actions/actionGiftCards.js","reducers/reducerGiftCards.js","actions/actionCostRate.js","reducers/reducerCostRate.js","actions/actionIDMeUserData.js","reducers/reducerIDMeUserData.js","actions/actionBookingUserDefinedFields.js","reducers/reducerBookingUserDefinedFields.js","actions/actionOrderLocations.js","reducers/reducerOrderLocations.js","actions/actionOrdersMenu.js","reducers/reducerOrderMenu.js","actions/actionMembershipUserDefinedFeilds.js","reducers/reducerMembershipUserDefinedFields.js","actions/actionCustomerUDFs.js","reducers/reducerCustomerUDFs.js","actions/actionCountryAndState.js","reducers/reducerCountryAndState.js","actions/actionOrganizationSection.js","reducers/reducerOrganizationSection.js","reducers/reducerProduct.js","actions/actionProduct.js","reducers/index.js","api/constants.js","api/apiAuthentication.js","saga/sagaAuthenticationToken.js","api/apiBooking.js","api/apiBookingTypes.js","api/apiCostRate.js","api/apiCustomer.js","helpers/AES.js","api/API.js","api/apiCustomerUDFs.js","api/apiDonation.js","api/apiDisplayAreas.js","api/apiExtraItems.js","api/apiCouponV3.js","api/apiGATicket.js","api/apiGiftCards.js","api/apiGiftCardHold.js","api/apiOrderLocations.js","api/apiProducts.js","api/apiIDMeUserData.js","api/apiLostMember.js","api/apiMember.js","api/apiMemberMemberships.js","api/apiMembershipPackages.js","api/apiMemberValidation.js","api/apiTourHold.js","api/apiTransaction.js","api/apiTourProduct.js","api/apiTransactionFee.js","api/apiUniqueCouponHolds.js","api/apiUserDefinedFields.js","api/apiCountryAndState.js","api/apiOrganizationSection.js","api/apiBookingTickets.js","saga/sagaBookingTypes.js","saga/sagaExtraItems.js","saga/sagaMember.js","saga/sagaPaymentTransaction.js","api/ip.js","saga/sagaIP.js","saga/sagaDisplayAreas.js","saga/sagaShopCart.js","saga/sagaGiftCardHold.js","saga/sagaCoupon.js","saga/sagaUniqueCouponHolds.js","saga/sagaMemberValidation.js","saga/sagaDonation.js","saga/sagaTransactionFee.js","saga/sagaMembershipPackages.js","saga/sagaGaTicket.js","saga/sagaLostMember.js","saga/sagaMemberMemberships.js","saga/sagaCustomer.js","saga/sagaBooking.js","saga/sagaGiftcarddisplayAreas.js","saga/sagaGiftcards.js","saga/sagaCostRate.js","saga/sagaIdMeUserData.js","saga/sagaBookingUserDefinedFields.js","saga/sagaOrderLocations.js","saga/sagaOrderMenu.js","saga/sagaMembershipUserDefinedFields.js","saga/sagaCustomerUDFs.js","saga/sagaCountryAndState.js","saga/sagaOrganizationSection.js","saga/sagaProduct.js","saga/index.js","serviceWorker.js","theme/palette.js","theme/typography.js","theme/overrides/index.js","theme/overrides/MuiButton.js","theme/overrides/MuiIconButton.js","theme/overrides/MuiPaper.js","theme/overrides/MuiTableCell.js","theme/overrides/MuiTableHead.js","theme/overrides/MuiTypography.js","theme/overrides/MuiCssBaseline.js","theme/index.js","common/validators.js","components/SearchInput/SearchInput.js","components/StatusBullet/StatusBullet.js","components/RouteWithLayout/RouteWithLayout.js","components/DialogeBox/DialogeBox.js","components/DialogeBox/PinCodeDialogeBox.js","components/ErrorHandling/ErrorHandling.js","components/InputControls/NumberSpinner.js","components/InputControls/FormattedInputs.js","components/InputControls/UDFText.js","components/InputControls/UDFCheckBox.js","components/InputControls/UDFDateTime.js","components/InputControls/UDFNumber.js","components/InputControls/UDFSelect.js","components/InputControls/NumberInput.js","components/DisplayCards/DisplayCard.js","components/Title/Title.js","layouts/Main/components/Sidebar/components/Profile/Profile.js","layouts/Main/components/Sidebar/components/SidebarNav/SidebarNav.js","layouts/Main/components/Sidebar/components/UpgradePlan/UpgradePlan.js","layouts/Main/components/Sidebar/Sidebar.js","helpers/CartDiscardTimeController.js","layouts/Main/components/Topbar/Topbar.js","layouts/Main/Main.js","layouts/Minimal/components/Topbar/Topbar.js","layouts/Minimal/Minimal.js","views/Account/components/AccountDetails/AccountDetails.js","views/Account/components/AccountProfile/AccountProfile.js","views/Account/Account.js","components/CalendarControls/CalendarNavBar.js","components/CalendarControls/ExtraItemsProducts.js","components/CalendarControls/UDFDataField.js","components/CalendarControls/BookingUDFields.js","components/CalendarControls/Chaperone.js","components/CalendarControls/PaymentSelection.js","components/CalendarControls/ExtraItemDrawer.js","components/CalendarControls/OrganizationSection.js","components/CalendarControls/GroupSizeSection.js","components/CalendarControls/GroupReservationDrawer.js","components/CalendarControls/CalendarControl.js","components/DateSearch/DateSearch.js","components/CalendarControls/CalendarListView.js","components/CalendarControls/CalendarHybridView.js","views/Calendar/Calendar.js","views/Dashboard/components/Budget/Budget.js","views/Dashboard/components/LatestOrders/data.js","views/Dashboard/components/LatestOrders/LatestOrders.js","views/Dashboard/components/LatestProducts/data.js","views/Dashboard/components/LatestProducts/LatestProducts.js","views/Dashboard/components/LatestSales/chart.js","views/Dashboard/components/LatestSales/LatestSales.js","views/Dashboard/components/TasksProgress/TasksProgress.js","views/Dashboard/components/TotalProfit/TotalProfit.js","views/Dashboard/components/TotalUsers/TotalUsers.js","views/Dashboard/components/UsersByDevice/UsersByDevice.js","views/Dashboard/Dashboard.js","views/Icons/Icons.js","views/NotFound/NotFound.js","views/ProductList/components/ProductCard/ProductCard.js","views/ProductList/ProductList.js","views/ProductList/components/ProductsToolbar/ProductsToolbar.js","views/Settings/components/Notifications/Notifications.js","views/Settings/components/Password/Password.js","views/Settings/Settings.js","views/Typography/Typography.js","views/UserList/components/UsersTable/UsersTable.js","helpers/getInitials.js","views/UserList/components/UsersToolbar/UsersToolbar.js","views/UserList/data.js","views/UserList/UserList.js","views/Checkout/components/BookingTypeCard.js","views/Checkout/components/CouponItems.js","views/Checkout/components/PayableCard.js","views/Checkout/components/ProcessingBox.js","views/Checkout/components/PaymentCompletebox.js","views/Checkout/components/FreeTicketForm.js","components/Payments/Spreedly.js","views/Checkout/components/MultiPayments.js","components/Payments/GlobalPayments.js","components/Payments/Helper.js","components/Payments/Payments.js","views/Checkout/components/PaymentForm.js","views/Checkout/components/CouponGiftCard.js","views/Checkout/components/CartDiscardTimeInfo.js","views/Checkout/components/DonationPopUp.js","views/Checkout/components/Donations.js","views/Checkout/components/MembershipPackagesCard.js","views/Checkout/components/GATicketCard.js","views/Checkout/components/GiftCards.js","views/Checkout/components/OrderItemsCard.js","views/Checkout/components/DonationProductCard.js","views/Checkout/Checkout.js","views/Checkout/formstates.js","views/Memberships/components/MembershipCard/MembershipCard.js","views/Memberships/MembershipList.js","views/MembershipsMain/components/MembershipHeader.js","components/UDFs/MembershipUDF.js","views/MembershipsMain/components/MembershipTypes.js","views/MembershipsMain/Memberships.js","views/MembershipsMain/MemberValidation.js","views/GATicket/components/GAGroupItem.js","views/GATicket/GATickets.js","views/ManageMyBooking/FindMyBooking.js","views/ManageMyBooking/ManageBooking.js","views/ManageMyBooking/ConfimBookingChanges.js","views/ManageCheckout/components/CreditCardPayment.js","views/ManageCheckout/components/MakePayment.js","views/ManageCheckout/components/PaymentCompletePage.js","views/ManageCheckout/ManageCheckout.js","views/ManageMyBooking/ModifyTicketsAddons.js","views/GiftCards/components/GiftCardAreaCard/GiftCardAreaCard.js","views/GiftCards/components/MainGiftCards/MainGiftCards.js","views/GiftCards/GiftCardsAreasList.js","views/FoodOrder/components/OrderLocationItem.js","views/FoodOrder/OrderLocationScreen.js","views/FoodOrder/OrderLocationTab.js","views/FoodOrder/components/MenuItem.js","views/FoodOrder/OrderMenu.js","views/FoodOrder/components/OrderProduct.js","views/FoodOrder/components/SubMenuItem.js","views/FoodOrder/OrderSubMenu.js","views/FoodOrder/OrderItemsReview.js","views/Donation/components/DonationProduct.js","views/Donation/DonationProducts.js","views/Donation/DonationAreas.js","Routes.js","components/Apploaders/Apploader.js","App.js","index.js"],"names":["initialState","token","loading","authenticationError","reducerAuthenticationToken","state","action","type","error","draw","left","right","top","bottom","signX","signY","borderSkipped","radius","ctx","this","_chart","vm","_view","borderWidth","cornerRadius","config","options","horizontal","base","x","y","height","width","barSize","Math","min","abs","halfStroke","borderLeft","borderRight","borderTop","borderBottom","beginPath","fillStyle","backgroundColor","strokeStyle","borderColor","lineWidth","corners","startCorner","indexOf","cornerAt","index","corner","moveTo","i","nextCornerId","floor","xTl","xTr","yTl","yTr","xBl","xBr","yBl","yBr","lineTo","quadraticCurveTo","fill","stroke","window","nodeNo","PaymentTypeID","CashlessTypeID","GiftCardTypeID","TransactionUserName","DonationProductID","TransactionFeeProductID","ApplyTransactionFee","Currency","ShowOrderItemPriceAs","EnableAlternateMerchantOnline","Merchant2TypeID","GetMonths","GetYears","numberofyears","years","currentyear","Date","getFullYear","push","ccyFormat","num","toFixed","priceRow","qty","unit","subproducttotal","products","cashless","donation","transactionfee","membershipPackages","gatickets","giftcards","orderProducts","donationProducts","totalDiscount","transFee","membershipPackTotal","map","product","CouponItems","e","TotalAmount","producttotal","GetProductsTotalPrice","total","gaticketstotal","reduce","sum","cashlesstotal","HoldAmount","giftcardstotal","CartTotalAmount","orderProductsTotal","getOrderProductsTotalPrice","donationProductsTotal","Amount","isdonationApplied","parseFloat","price","length","MembershipProducts","m","CouponCodeApplied","MembershipType","Quantity","CouponCodeIncTax","Users","u","hasOwnProperty","Price","PriceIsAPercentage","round","Taxes","TaxIncluded","ApplyTransactionFeeTax","calculateeventsamount","events","forEach","event","TicketAmount","TaxAmount","TourProducts","PriceMatrix","itemp","itemtax","itemTAmount","tax","TaxPercentage","IndividualPrice","ProductAmount","ProductTaxAmount","ProductTotalAmount","convertEventstoTransaction","customerId","transactionFee","isManageBooking","booking","managebkngTicketsModify","refundType","additionalPayment","bookingUDFS","showTransFee","enteredAmountToPay","transactions","trans","TransactionType","NodeNo","CustomerID","Username","Products","Payments","totalAmount","merchant1Total","merchant2Total","BookingProducts","newp","MMBReturnProduct","ReturnCouponAppliedQty","BookingStatus","BookingCoupons","filter","TourProductID","couponProd","find","TimesUsed","MMBReturnUniqueCoupinNonItems","CancelBooking","newQuantity","GetMMBModifyProduct","prevTourEventID","ProductLineNo","ProductID","LinePriceExTax","LinePriceTax","LinePriceIncTax","LinePaidExTax","genfunction","IsNotFullPay","PaymentOption","ProductSelectedAmount","LinePaidTax","ProductSelectedTaxAmount","LinePaidIncTax","ProductSelectedTotalAmount","TourEventID","CostRateID","TourHoldRef","FindCouponCode","BookingID","AddBookingUDFs","BookingTypeID","FindUniqueCoupon","UpdateUniqueCouponProduct","coupon","prod","Object","assign","isUniqueCoupon","ProdQuantity","Discount","isPercentage","AddUniqueCouponItem","CouponHoldRef","ApplyDiscountTourProductID","TourProductName","ApplyDiscountTourProductName","ApplyDiscountProductID","TicketTax","tickets","ProductNotes","PriceExTax","PriceTax","PriceIncTax","Options","option","IsSelected","optionProduct","newop","donationProd","transTax","Rounded","GetTransactionFeeForPartialPayment","GetTransactionFee","transFeeProd","memPack","startDate","isRenewal","MembershipExpiryDate","Moment","format","setDate","getDate","memProd","SubTotal","TotalTax","MembershipPackageID","MembershipStartDate","GetMembershipExpiryDate","MembershipDuration","toLowerCase","MemberCustomerID","userNo","isPrimaryMember","IsRenewal","RenewedUniquePackageRef","UniquePackageRef","PriceAfterCoupon","TaxAfterCoupon","TotalAmountAfterCoupon","CouponDiscountExTax","CouponCodeExTax","CouponDiscountTax","CouponCodeTax","CouponDiscountIncTax","undefined","ExtraMonths","ExtraDays","isRenewPackage","LastMembershipExpiryDate","paymentLineNo","merchantTotalObj","CalculateMultiMerchantTotal","totalPaid","BookingPayments","PaymentAmount","giftcardProd","transFeeWithTax","additionalPaymentWithoutTransactionFee","addpayment","AddCashlessAndAdditionalPayment","AddedToCart","gc","CartQty","payment","PaymentLineNo","CreditCardToken","CreditCardType","cardtype","CreditCardReference","CreditCardMaskedNumber","cardnumber","useAlternateAmount","UseAlternateMerchantOnline","paymentAmount","item","GiftcardNumber","GiftcardNo","GiftcardHoldRef","additionalPay","GetRandomGiftCard","randomChars","result","charAt","random","eventID","c","prodID","prodQuantity","UniqueCouponCode","CouponCode","GetTotalAmount","totalInclTax","totalExclTax","totalTax","Product","GetProdsTotalAmount","UpdateEvent","ExistingEvents","NewEvent","IsEditEvent","existEevent","E","pQty","parseInt","GetUpdateClient","oldclient","newclient","FirstName","LastName","CustomerAddress","AddressID","Email","Street1","Street2","CitySuburb","State","Postcode","Country","GetEventDate","eventDate","GetEventDateReceiptFormat","AppendEndTime","GetEventDateReceiptFormatwithoutTime","GetTransactionDate","tranDate","GetShortDateAndTime","AddToDateDate","calendarDate","new_date","add","day","month","ListViewSearchDays","searchDays","date","nextDate","EventEndDateTime","max","value","paddingchar","numofcharshown","toString","padStart","input","charCode","str","output","block","charCodeAt","console","log","cartevent","newevent","isEditEvent","tourholds","tourevent","tourhold","TourHolds","newProductQuantity","p","tourproduct","Seats","toureventobj","te","tp","toureventId","tourProductID","quantity","giftcardno","amount","totalamount","sortedcashless","sort","a","b","BalanceRemaining","lastupdateflag","giftcardtotalamount","giftCardNo","slice","couponItems","eventId","oldCashlessarray","updatedCashless","newcashless","oldCashless","old","itemValue","split","join","EventStartDateTime","eventsCollection","costrate","extraitems","DefaultCostRateID","OrganizationID","GetPriceMatrix","toureventid","costRateID","GetEvent","memberValidation","curentemail","emailMatch","phoneMatch","addressMatch","EmailMatched","EmailOnFile","PhoneMatched","AddressMatched","membershipValidation","bookingTypes","bt","tFee","itemAmount","datetime","year","membershipPackage","membershipProducts","MemPackTotals","TaxTotal","MinQuantity","iterations","memType","customerReq","customerObj","customersList","cstCollection","customerList","customerRequest","objCst","customer","DateOfBirth","dob","client","firstName","lastName","email","phone","LinkedIndividuals","linkedMember","user","memPackID","memProdID","userID","noOfYears","setFullYear","datediff","noDiff","expiryDate","includes","setMonth","getMonth","transaction","customerResponse","priMember","cst","ticket","OriginalTicketAmount","OriginalTaxAmount","OriginalTotalAmount","originalitemp","OriginalPrice","originalitemtax","originalitemTAmount","memberMemberships","memberType","MembershipTypeID","propertyName","obj","val","membermemberships","memberpackageDetails","userslist","memMemberships","primaryMemberType","Memberships","IsCancelled","IsRenewed","GetPrimaryMemberMembershipType","popupTitle","GetValueIfObjectHasProperty","address1","address2","city","zipcode","country","MemberNumber","isEdit","membershipTypeID","membershipTypeName","ProductName","PreviousMembershipType","notpartofPackage","mem","linkedUser","MobilePhone","previousMembershipType","mp","membershipPackageProds","membershipCoupon","couponCode","membershipTypeDiscount","MembershipTypes","memTotalTax","memSubTotal","DollarDiscountIncTax","DollarDiscountExTax","DollarDiscountTax","PercentageDiscount","NoFinancialDis","ProductLinePriceExclTax","ProductLineTaxTax","ProductLinePriceInclTax","actualQty","remainingQty","prodLinePriceExTax","prodLineLinePriceTax","prodLineIncTax","returnRemainingnUniProds","bkngID","bookingUDFs","bkngUdfs","UDFCategories","udfCategories","UserDefinedFields","toureventID","Value","UDF","UDFType","userdefine","UDFName","BookingUDFs","every","IsRequired","foodproducts","subtotal","pPriceIncTax","pOptionPriceIncTax","pPriceExTax","pOptionPriceExTax","pPriceTax","pOptionPriceTax","coupons","membershipID","MembershipPackages","membershippackage","donations","totalObj","prods","TransactionFee","paymentOption","amountSelected","TotalSelectedAmount","TicketSelectedAmount","TaxSelectedAmount","MinDepositPercent","remainingAmount","itemTotalAmount","trim","bookType","IsShowPartPaymentSelection","ShowTourProductsBasedOnGroupSize","findIndex","bkngType","groupSize","isShowPartPaymentSelection","AvailableOnline","ChaperoneTourProductID","IsNotNullOrEmptyOrUndefined","AffectsCapacity","LimitDisplayOnGroupSize","GroupSize","tourEventID","chaperoneTourProductID","MinDeposit","MinimumDepositCalculation","OtherAmount","CalculateEventFlexibleAmount","bookingTickets","ProcessType","Tickets","TicketsPrinted","TicketCollectionRequired","TicketLineNo","UnitPriceExTax","UnitPriceTax","UnitPriceIncTax","countryandstates","columnName","isUseAlternateMerchant","IsObjectNotNullOrEmptyOrUndefined","TransactionFeeForPartialPayment","ApplyCouponsToEvents","couponAlreadyApply","applyDisProdID","ApplyDiscountToTourProductID","tourProd","RequireUniqueCouponCode","MaxProductsLimit","CouponID","SortProductsPriceWise","couponObj","IsNullOrUndefineReturnZero","DollarDiscount","CouponManager","CalculateTicketOddQuantities","CalculateDollarTicketPrice","CalculateTaxOddQuantities","CalculateDollarTicketTax","OnePennyDifference","itemIndex","RemoveUniqueCouponNotApplied","remove","CalcuateCouponDiscounts","ExTaxAmount","DollarPercent","ApplyQty","UniqueCouponPostRequest","bookingCoupons","holdReq","eventProdsTotal","MaxProductsPerPurchase","MaxTransactionsPerCoupon","UniqueCouponHolds","UniqueCoupon","HoldsRequested","ExProductsTotal","ProdQuantities","ExTaxTotal","RemoveProductItem","newevents","productID","RemoveUnusedCoupon","newcouponTours","Accessable","UpdateMaxProductLimit","prodCoupon","eventProducts","initialerrorstate","first_name","errorstate","errortext","last_name","number","cvv","phone_number","zip","memberno","MonthSelect","YearSelect","shipping_address1","shipping_address2","shipping_phone_number","shipping_city","shipping_state","shipping_zip","shipping_country","MonthAndYear","initialfieldsstate","checkBoxMember","billingAddressSame","GetCustomersListToUpdateUDFs","membershipTypesUDFs","CustomerUDFsCollection","GenerateCustomerUDFs","memTypeID","customerUdfObj","udfCategorey","udf","udfUser","udfObj","userUDFValue","CustomerUDFs","UpdateMembershipUDFsWithCustomerUDFValue","customerUdfs","memTypeUdfs","GetMembrshipTypeUDF","customerUDF","GetCustomerUDF","GetCustomerUDFValue","usr","memTypeUDFs","customerNo","cstUdfs","cstUDFs","UDFCategoryName","UDFValue","actionGetBookingTypes","dispatch","id","isDisplay","actionResetBookingTypes","loadState","key","defaultValue","serializedState","sessionStorage","getItem","process","JSON","parse","saveState","setItem","stringify","sessionKey","bookingID","bookingType","bookingTypesError","reducerBookingTypes","RemoveUnUsedBookingTypes","payload","bkngTypes","actionStartAppLoader","actionEndAppLoader","reducerAppLoader","SHOPCART_ERROR","actionShopCartAddEventWithTourHold","organizationID","actionShopCartResetState","actionShopCartResetStateWithTourHold","CartEvent","actionRemoveCoupon","actionShopCardAddGiftCard","giftcard","actionResetCouponAlreadyApplied","actionShopCartResetStateWithUniqueCouponHold","actionShopCartApplyMembershipOnEvents","memberNo","memberEmail","memberLastName","actionShopCartRemoveGiftcards","actionShopCartResetMembership","actionShopCartResetIDME","actionShopCartResetDonation","actionShopCartAddMembershipPackage","memberPackage","isRenew","actionShopCartResetMembershipPackage","actionShopCartResetGATicket","actionShopCartSetManageMyBooking","managebooking","managebookingmodifytickets","actionShopCartSetRefundType","actionShopCartSetAdditionalBookingAmount","actionShopCartSetMmbAmountToPay","amounttopay","actionShopCartApplyidmeCostratesOnEvents","actionShopCartResetError","actionDeleteOrderProduct","foodProduct","actionShopcartResetOrderProducts","actionShopCartShowTransFee","check","actionShopCartResetDonationProduct","actionShopCartSetEnteredAmountToPay","sessionKey2","sessionKey5","sessionKey7","sessionKey10","sessionKey14","sessionKey15","sessionKey16","sessionKey17","tourCoupons","tourProducts","couponAlreadyApplied","removeCoupon","ismembershipApplied","membershipcostrate","membershipMembrNo","applycostRates","productName","otherAmount","popupCounts","GATickets","membershipIsRenew","managemybooking","managebookingticketsmodification","additionalbookingamount","mmbAmountToPay","IDME","isIdMeApplied","idmecostrate","showTransactionFee","reducerShopCart","eventIndex","trcoupons","trProducts","tourprduct","noproducteventid","tproduct","membershipObj","donationObj","idmeObj","tourCoupon","tourProduct","isRemoveCoupon","newtickets","couponproduct","calculategaticketamount","ApplyMembershipPricesOnEvents","othersAmount","useAlternateMerchantOnline","membershipPackagesObj","el","memberPackIndex","CalculateMembershipPackages","existticket","ApplyMembershipCoupon","managebkngticketsmodification","refundTyp","additionalbookingamt","newOrderProduct","UniqueID","newdonationProducts","newdonationproduct","EXTRAITEMS_LOADING","actionGetExtraItems","ID","checkBookingTypeObj","isDisplayArea","nextTourDate","isListView","currentView","tourEventsList","actionGetExtraItem","IsMembershipApplied","MemberCostRate","IsIDME","IsIDMECostRate","OrganizationCostRate","actionIncreaseQuantity","ItemExist","MinimumTickets","MaximumTickets","actionResetExtraItems","extramItems","extraItem","extramItemsError","isAddToCart","reducerExtraItems","newextraItems","extraItm","pmatrix","IsCouponApplied","ApplyMembershipPricesOnTourEvent","isCheckOut","newExtraItem","MEMBER_DATA_ERROR","MemberInfo","MemberInfoError","reducerMember","actionPostPaymentTransaction","recaptchaToken","actionResetPaymentTransaction","Payment","PaymentInfoError","reducerPaymentTransaction","Errors","ErrorMessage","message","GET_IP_LOADING","IpInfo","IpInfoError","reducerIP","ip","actionCalendarNavCalendarView","actionCalendarNavListView","actionCalendarNavReset","viewType","reducerCalendarView","actionResetDiscardTime","CartDiscardTime","DiscardTime","timerid","reducerCardDiscardTime","clearInterval","GET_DISPLAYAREAS_DATA_SUCCESS","actionGetDisplayAreasByType","displayAreaType","actionResetDisplayAreas","displayAreaID","displayAreas","displayArea","displayAreasError","reducerDisplayAreas","newObj","newDisplayAreas","DisplayAreaNo","COUPON_LOADING","GET_COUPON_DATA_SUCCESS","GET_COUPON_DATA_ERROR","actionGetCoupon","coupnCode","actionEndCouponLoading","actionResetCoupon","couponError","reducerCoupon","tourProductError","reducerTourProduct","GIFTCARD_HOLD_ERROR","GIFTCARD_HOLD_RESET","actionAddGiftCardHold","actionResetGiftCardHoldState","actionDeleteGiftCardHold","actionRecalculateGiftCardHold","GiftCardHold","GiftCardHoldLoading","GiftCardHoldError","reducerGiftCardHold","actionDeleteUniqueCoupon","UniqueCOuponHoldRef","actionResetUniqueCouponCardHoldState","UniqueCouponError","reducerUniqueCouponHolds","actionGetMemberValidation","street","checkDate","actionResetMemberValidation","actionEndMemberValidationLoading","actionSetErrorMemberValidation","err","membervalidation","membervalidationError","memberValidationReducer","actionResetFormErrorState","actionSetFormErrorState","errorfield","actionResetFieldValuesState","actionSetFieldValueState","field","formerrorstate","formfields","formerrorreducer","newerrorstate","newformfields","actionGetDonation","productId","productType","actionResetDonations","donationError","donationreducer","actionGetTransactionFee","actionResetTransactionFee","transactionFeeError","reducerTransactionFee","actionGetMembershipPackage","memberpackID","actionUpdateMembershipPackage","membershipPackageDetails","actionResetMembershipPackages","actionResetMembershipPackage","actionUpdatePackageForRenew","packageID","actionUpdateFamilyMemberNotPartOfPackage","isAdded","membershippackages","membershippackagesError","familymembersnotpartofPackage","reducerMembershipPackages","mempackages","memPackage","notPartOfPackage","UDFs","membersnotpartofPackage","UpdateMembershipPackageForRenew","membermerberhips","member","actionGetGATickets","DisplayArea","GACouponCode","GATicketsError","GADisplayAreas","reducerGaTicket","newGATickets","oldGATickets","oldticket","newticket","oldticketstate","actionResetSendEmail","emailsend","lostmemberError","reducerLostMember","lostmember","membermerberhipsError","reducerMemberMemberships","CUSTOMER_LOADING","actionGetCustomer","cstemail","actionResetCustomer","customerError","reducerCustomer","actionGetBooking","actionResetBooking","bookingError","reducerBooking","isModify","giftcardsdisplayAreas","giftcarddisplayArea","giftcardsdisplayAreasError","reducerGiftCardDisplayAreas","GITCARD_LOADING","actionGetGiftCards","displayAreaNo","actionUpdateGiftCardDropDown","actionUpdateGiftCrdQuantity","IsCheckOut","actionUpdateGiftCardCustomAmout","actionResetGiftCards","giftcardsError","reducerGiftCards","previousGiftCards","newGiftCards","Qty","CustomAmount","InvalidAmount","prevQty","ProductImageURL","isSelected","MaxPrice","COSTRATE_LOADING","actionResetCostRate","costraterror","reducerCostRate","actionResetIDMEUSERDATA","userdata","userdataerror","reducerIDMeUserData","actionGetUserDefinedFields","listOfIds","actionResetUDFs","udfIDNo","bookingUDFsError","reducerBookingUserDefinedFields","udfID","oldBookingUdfs","oldBkng","oldBooking","udfCat","UDFID","newUDF","categoryName","actionGetOrderLocationsByDisplayArea","orderLocations","orderLocation","reducerOrderLocations","ORDER_MENU_LOADING","orderMenu","reducerOrderMenu","actionResetMembershipUDFs","membershipUdfs","membershipUDFsError","reducerMembershipUserDefinedFields","membershipsUdfs","membershipTypes","membershipType","actionResetCustomerUdfs","customerUDFs","customerUDFError","reducerCustomerUDFs","actionGetCountryAndState","actionResetCountryAndState","countryandstate","countryandstaterror","reducerCountryAndState","cs","actionResetOrganizationSection","organizationlist","organizationlisterror","reducerOrganizationSection","orglist","reducerProduct","rootReducer","combineReducers","reducerMemberValidation","reducerFormError","reducerDonation","apiUrl","userName","password","middlewareUrl","middlewareUserName","middlewarePassword","DataAccess","CryptoAES","decrypt","CryptoENC","apiAuthentication","fetch","then","response","json","Error","fetchAuthenticationToken","fetchAsync","func","ok","put","sagaAuthenticationToken","takeEvery","apiBooking","params","h","Headers","append","EncodeBase64","url","req","Request","method","headers","apiBookingTypes","newID","newIsDisArea","apiCostRate","costrateObj","gpName","groupname","subGpName","subgroup","apiCustomer","_0x4be2","_0x1925","_0x5d2900","_0x3234fc","_0x7e87d6","_0x5e77ad","_0x4bf7d7","_0x15f863","_0x1757ae","_0x3dfa16","_0x101f63","_0x6e356b","_0x364d0f","_0xe0277c","_0x4ae118","_0x1ab943","arguments","_0x58c8bf","_0x24e3b0","RegExp","_0x507ad3","_0x467d63","_0x533da6","_0x303548","iv","_0x5f1197","_0x25447e","_0xc851aa","_0x3e1e8e","_0x3a7e0d","_0x5e5d75","_0x2d28fd","_0x157d91","_0x36b562","_0xef09cd","_0x81c5f0","_0x2d53f8","_0x17466e","_0x240d4d","_0x1d0b0f","_0x1cd3b3","_0x2530ef","_0x44f770","API","baseurl","username","middlewareUsernName","inputOutputSettings","getData","path","getReq","postData","data","isEncrypted","putData","deleteData","getheader","encryptData","AES","encrypt","GenerateRequest","body","pass","encodeBase64","api","UpdateCustomerUdfs","GetCustomersUdfs","newpath","customerIdList","apiDonation","apiDisplayAreas","apiDisplayAreasById","apiDisplayAreasByIdAndType","apiExtraItems","Id","NextTourDate","checkFromNextTourDate","listViewSearchDays","lastDay","AddWeekDays","getCouponProducts","apiGATicket","apiGiftCards","postGiftCardHold","deleteGiftCardHold","getOrderLocationsByDisplayArea","apiGetProductsByProductTypeAndDisplayArea","apiIDMeUserData","replace","apiLostMember","getmember","postmember","apiMemberMemberships","apiMembershipPackages","apiMemberValidation","postTourHold","PaymentMethodType","posttransaction","postdata","paymentamount","primaryAmount","customerName","recaptchav3token","alternateamount","apiTourProduct","priceDate","apiTransactionFee","uniqueCouponPost","uniqueCouponCode","deleteUniqueCouponHolds","apiUserDefinedFields","apiCountryAndState","apiOrganizationSection","costRateList","postbookingtickets","bookingtickets","fetchBookingTypesData","status","statusText","select","sagaBookingTypes","fetchExtraItemsData","areaNumber","bookingTy","forceListView","ForceListView","sagaExtraItems","fetchMemberInfoData","PostMemberInfoData","sagaMember","SavePaymentTransactionData","jVal","arrayBuffer","Promise","resolve","base64String","btoa","String","fromCharCode","Uint8Array","res","addamount","customers","idmeshopreducer","idmeuserdata","membershipTypesUdfs","customerID","merchant1Amount","merchant2Amount","customerPostCall","userresponse","customerUDFsResponse","listCustomersMemberships","bookingTicketsResponse","MemberValidation","CustomerPostCall","GuestEmail","GetCustomerList","attributes","handle","ExtCustomerID","customersUdfsList","IsOrganization","PurchaserCustomerID","TabCustomerFirstName","TabCustomerLastName","TabCustomerMobile","TabLocationID","TabLocations","LeaveOrderOpen","SendToKitchen","UpdateTransactionCall","transactionresponse","Customer","Events","OrderProducts","isCancelBooking","BalanceOwing","DoNotGenerateTicketsAutomatically","ConvertBookingtoTickets","sagaPaymentTransaction","getip","fetchip","sagaIP","fetchDisplayAreasData","fetchDisplayAreasByIdData","fetchDisplayAreasByIdAndTypeData","param1","param2","sagaDisplayAreas","ShopcartAddEventWithTourHold","ShopcartSetTourProductQuantityTourHold","ShopcartRemoveTourProductWithTourHold","ShopcartResetStateWithTourHold","actionShopCartRemoveSingleTourWithTourHold","ShopcartResetStateWithUniqueCouponHolds","shopcartremovegiftcards","ConvertCartItemToTourHold","tourholdresponse","bktype","BookingTypeTerms","SetTourHoldRef","ConvertCartItemToTourHoldIncreaseQuantity","ConvertCartItemToTourHoldRemoveTourProduct","ConvertCartItemToTourHoldResetState","cashlessholds","ConvertCartTourToTourHoldResetState","ErrorMessagee","sagaShopCart","AddGiftCardHold","DeleteGiftCardHold","RecalculateGiftCardHold","managemybkng","isTransFeeApplicable","GetGiftCardHoldRequest","giftholdresponse","RecalculatedCashlessArray","toUpdateCashless","GetGiftCardHoldRequestForUpdate","toDeleteCashless","UpdateNewGiftCardHoldRef","sagaGiftCardHold","fetchCouponData","CouponExpiryMsg","MaxTimesCouponUsed","OneCouponAllowedForMembership","NewMembershipNotAllowed","RenewMembershipNotAllowed","code","couponData","gaTickets","couponv3Data","isCouponValid","membershippackID","apiMembershipPackage","GetMembershipPackageFromApi","AllowDiscountOnJoin","AllowDiscountOnRenewal","couponFrom","ReturnDateOnly","UseCouponFrom","couponTill","UseCouponTill","CurrentDateTimeAtLocation","couponHoldRef","uniqueCouponObj","uniqueCouponHoldsRes","sagaCoupon","DeleteUniqueCouponHolds","sagaUniqueCouponHolds","fetchMemberValidationData","param","sagaMemberValidation","fetchDontionsData","sagaDonation","fetchTransactionFeeData","sagaTransactionFee","fetchMembershipPackagesData","Message","sagaMembershipPackages","fetchGaTicketsData","displayAreasdata","sagaGaTicket","fetchLostMemberData","sagaLostMember","fetchMemberMemberships","sagaMemberMemberships","fetchCustomer","sagaCustomer","fetachBooking","bookingSaga","fetchGiftCardDisplayAreasData","sagaGiftcarddisplayAreas","fetchGiftCardsData","sagaGiftcards","fetchCostRate","sagaCostRate","fetchIDMEUserData","sagaIdMeUserData","GetUserDefinedFields","udfsresponse","sagaBookingUserDefinedFields","fetchOrderLocationsByDisplayArea","sagaOrderLocations","fetchOrderMenuByDisplayArea","sagaOrderMenu","GetMembershipsUserDefinedFields","sagaMembershipUserDefinedFields","GetCustomerUserDefinedFields","sagaCustomerUDFs","fetchCountryAndState","sagaCountryAndState","fetchOrganizationList","sagaOrganizationSection","fetchProductDataByType","sagaProduct","rootSaga","all","Boolean","location","hostname","match","contrastTextColor","darkColor","mainColor","lightColor","backgoundColor","backgoundColorPaper","textColor","white","black","primary","contrastText","dark","main","light","secondary","colors","blue","success","green","info","warning","orange","red","text","link","background","default","paper","icon","blueGrey","divider","grey","h1","color","palette","fontWeight","fontSize","letterSpacing","lineHeight","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","caption","overline","textTransform","MuiButton","contained","boxShadow","MuiIconButton","root","MuiPaper","elevation1","MuiTableCell","typography","MuiTableHead","MuiTypography","gutterBottom","marginBottom","MuiCssBaseline","theme","createMuiTheme","overrides","zIndex","appBar","drawer","checked","useStyles","makeStyles","borderRadius","alignItems","padding","spacing","display","flexBasis","marginRight","flexGrow","SearchInput","props","className","onChange","style","rest","classes","Paper","clsx","Input","disableUnderline","flexShrink","sm","md","lg","neutral","danger","StatusBullet","size","defaultProps","RouteWithLayout","Layout","layout","Component","component","render","matchProps","DialogeBox","open","title","button1text","button2text","button1clickhandler","button2clickhandler","Dialog","aria-labelledby","aria-describedby","DialogTitle","DialogContent","DialogContentText","DialogActions","Button","onClick","wheelChairScreenAssist","position","PinCodeDialogeBox","pinTextChange","ReactHtmlParser","replaceEscapeCharacters","TextField","autoFocus","fullWidth","label","target","variant","ErrorHandling","Alert","elevation","Snackbar","anchorOrigin","vertical","onClose","handleclose","msg","leftrightbutton","minWidth","leftbutton","borderTopLeftRadius","borderBottomLeftRadius","rightbutton","borderTopRightRadius","borderBottomRightRadius","labelstyle","flex","verticalAlign","textAlign","box","boxVisble","pointerEvents","opacity","NumberSpinner","buttonClickHandler","operation","newvalue","steps","maxValue","minValue","changeHandler","refrence","disableButton","boxVis","disabled","inputProps","isNaN","onFocus","UniqueCouponApplied","eventCoupons","NumberFormatCustom","inputRef","other","getInputRef","onValueChange","values","name","thousandSeparator","isNumericString","prefix","FormattedInputs","React","useState","amountExceed","setValues","Validated","handleOtherPrice","donaValue","keyvalue","InputProps","inputComponent","paddingBottom","UDFText","UdfDescription","required","multiline","UDFLength","maxLength","changecontrolvalue","isMembership","userV","usernumber","GetUserMemberValue","sx","InputLabelProps","UDFCheckBox","Checkbox","UDFDateTime","Name","shrink","UDFNumber","marginLeft","UDFSelect","Select","labelId","displayEmpty","Picklist","picklist","UDFPicklistID","Option","card","transform","WebkitTransform","cursor","headerbox","DisplayCard","Title","Description","ButtonText","ButtonCallBack","ButtonCallBackReference","Card","CardHeader","titleTypographyProps","CardContent","CardActions","getSubTitle","subTitle","content","Header","SubTitle","SubTitle2","flexDirection","minHeight","avatar","marginTop","paddingTop","justifyContent","fontWeightMedium","active","forwardRef","ref","media","actions","breakpoints","up","margin","nav","CartDiscardPopupTitle","CartDiscardPopupMsg","CartDiscardPopupButton1Text","CartDiscardPopupButton2Text","CartDiscardPopupTime","CartDiscardTimeController","setopen","dialogetimer","setdialogetimer","carddiscard","useSelector","shopcartreducer","useDispatch","DialogeTimeout","setTimeout","reload","useEffect","timer","clearTimeout","ShowGiftCards","SetCartTimer","timeid","setInterval","actionStartDiscardTime","RedirectLogoURL","GiftCardsHeading","HeaderExtraText","TicketsHeading","MembershipsHeading","TicketLinkHeading","FoodOrderLinkHeading","DonationLinkHeading","ManageMyBookingButtonTitle","ManageMyBookingButtonShow","float","iconSize","desktopView","fontFamily","mobileView","headerExtraTxtHide","headerExtraTxtShow","disabledlink","withRouter","onSidebarOpen","memberships","AppBar","Toolbar","Hidden","smDown","Link","to","href","alt","src","xsDown","mdUp","smUp","Badge","ConfirmationNumber","history","Person","CardGiftcard","Restaurant","Icon","IconButton","badgeContent","totalGFs","CountGiftCards","eventitemcount","AddShoppingCart","down","shiftContent","paddingLeft","Main","children","useTheme","isDesktop","useMediaQuery","defaultMatches","setOpenSidebar","AccountDetails","handleChange","autoComplete","noValidate","subheader","Divider","Grid","container","xs","helperText","SelectProps","native","details","progress","uploadButton","AccountProfile","locationText","dateText","moment","Avatar","LinearProgress","Account","xl","handleCalendarViewChange","CalendarNavBar","displayAreasState","disableCalendarLink","setdisableCalendarLink","Path","urlID","ButtonGroup","aria-label","OtherExtraItemHeader","tourheaderbox","hidetopheader","cardcontent","ExtraItemsProducts","errorMsg","seterrorMsg","changeQuantityHandler","reference","allowQuantityChange","cartEvents","AddChaperoneTickets","calculateChaperoneTickets","apiData","bookingtypeID","TotalTickets","noOfChaperoneTickets","NumberOfTicketsRequiredPerChaperone","RoundChaperoneTicketsUp","ceil","CalculateMaxTickets","shopCartConsumed","cartTourEvent","consumedQty","reloadQuantity","isMMB","tourEventId","ismembershipapplied","membercostrate","isIDME","isIDMECostrate","organizationCostRate","hidetopheading","ShowStartAndEndTime","ms","Tooltip","Information","arrow","time","ShowStartTime","ShowEndTime","UDFDataField","GetDataField","BookingUDFields","bookingUdfCategory","actionAddUDFToTourEvent","onChangeHandler","udfValue","actionUpdateUDF","udfs","UDFDescription","ChaperoneHeading","box100per","Chaperone","productPrice","priceMatrix","CouponRemoveMsg","reverseOrder","PaymentSelection","minDeposit","setMinDeposit","setOtherAmount","calculateMinimumDeposit","DefaultToFullPayment","onChangePaymentOption","reloadPaymentSelected","useImperativeHandle","validateAmountSelected","checkIsRemoveCoupon","RadioGroup","FormControlLabel","control","Radio","AllowFlexiblePayment","whiteSpace","FormHelperText","DisplayBookingTypeInfoCharacters","OrderItemsInCartError","PurchaseAsOrganizationButton","InvalidGroupSizeMsg","arrowBtn","BookingInfoCls","paddingRight","readmoreBtn","ExtraItemDrawer","isredirectclicked","setisredirectclicked","useRef","shopCartError","tourEvents","showMoreInfo","setShowMoreInfo","readmorebtnText","setreadmorebtnText","organizationList","saveBtn","setsaveBtn","setState","callCheckout","actionSetAddToCart","ValidateQuanity","NewQty","TotalTicketCount","MinTicket","MaxTicket","SeatsAvailable","BookNowOption","ValidateGroupQuanity","groupTicket","ChaperoneQty","chaperoneTourProduct","isContinueToExtraItemDrawer","TourData","actionGetExtraItemAfterMembership","bookingInfo","ValidateBookingRequiredFields","validate","align","matchMedia","matches","toggleDrawer","EventName","BookingTypeInfo","substring","AllowedCustomerTypes","goToExtraItemOrGroupDrawer","paymentOptionSelected","paymentAmountSelected","current","filterdata","cartdata","usealternamteMerchant","redirectCall","OrganizationNameHeader","OrganizationInstructionText","OrganizationChangePopupMsg","PurchaseOrganizationBookingNotAllowedForMembership","OrganizationInfoCls","OrganizationSection","colorState","setColorState","RestrictCompanyListByCostRate","keys","AllowedCostRateIDs","k","actionGetOrganizationSection","showOrganization","RequireCompanyName","isContinueToGroupDrawer","Autocomplete","indexOrg","autoHighlight","getOptionLabel","CustomerName","renderInput","GroupSizeHeader","GroupSizeChangePopupMsg","ClearCartEventPopupButton1Text","ClearCartEventPopupButton2Text","GroupInfoCls","GroupSizeSection","clearCartPopUp","setClearCartPopUp","toggleIsEdit","GroupSizeMessage","GroupSizeOptions","NoExtraItemFoundMsg","section","GroupReservationDrawer","setShowOrganization","disableBeforeLoading","setDisableBeforeLoading","tourEvent","validateGroupSize","validateOrganization","onChangeOrganization","onChangeGroupSize","continueHandler","DefaultColor","EventNotAvailable","CalendarHeight","CalendarWidth","CalendarScreenDatTimeAlreadyBuyMsg","CalendarStartingHour","UnableToBuyTicketShowBookNowEnabled","UnableToBuyTicketShowBookNowDisabled","CalendarScreenMessage1","CalendarScreenMessage2","localizer","BigCalendar","momentLocalizer","list","list2","errExtraItem","currentview","setcurrentview","nextWeekDate","setnextWeekDate","GetMonthlyRecords","propsEvent","EventDate","GetCostRate","GetDefaultDate","dt","today","constredirect","j","TourDisplayDays","lastdisplaydate","allDay","start","end","StartAndEndTime","GetWebDisplayName","DisplayColor","level","DisplayColorLevel","isExtraItem","bookingTypeID","isSaleable","isSingleTour","notavailableReason","ShowAvailability","AvailabilityText","startEvent","ShowOnCalendar","ConvertTourEventsToEvents","bookingunsoldReson","reloadEventForGroups","side","selectedDate","setIsEditEvent","headerValue","document","getElementsByClassName","textContent","newMonth","BackgroundColor","minTime","setHours","constredirecttofindmybpooking","pathname","actionResetErrorMessage","AllowDateTimeChanges","NoChangesMessage","overflow","defaultView","popup","onSelectEvent","redirecttoconfirmbookingchanges","reloadEvent","checkIsReloadEvent","onView","view","onNavigate","defaultDate","FetchNewMonthDataHandler","views","eventPropGetter","border","components","dateCellWrapper","cloneElement","Children","only","formats","dayRangeHeaderFormat","monthHeaderFormat","Drawer","anchor","role","bType","showGroupDrawer","cstrate","flexWrap","textField","searchBtn","DateSearch","textFieldValue","test","SearchDates","SearchRecordInfo","maxWidth","pagination","pagedEvents","navigatedToDate","disablePreviousButton","calendarNavState","enableDisablePreviousButton","GetSearchDays","onNavigation","disable","onFilter","GetDefaultCostRate","webName","availableSeats","CheckShowAvailability","RemoveSevenDays","getElementById","AddNextSevenDays","HybridViewDefaultLargeImage","HybridViewDefaultSmallImage","NoEventMessage","image","TimeSlotSelect","badgeDot","staticcal","hidden","visibility","visible","TourEventTimeSlot","displayarea","BookingInfoFilter","underscore","BookingInfo","BookingInfoGroup","getFirstEventDate","hideSelectButtonOnSingleBooking","GetBookingInfoLargeImageURL","LargeImageURL","GetBookingInfoBookingInfoDetails","BookingInfoDetails","showTourList","getTourEvent","btypes","hasEvent","getEventPrice","hasMultipleBookingType","BookingTypeGroup","StaticCalenderView","LocalizationProvider","dateAdapter","AdapterDateFns","StaticDatePicker","displayStaticWrapperAs","disablePast","openTo","showDaysOutsideCurrentMonth","newValue","onMonthChange","newdate","renderDay","_value","DayComponentProps","overlap","invisible","anchorOriginBottomRight","PickersDay","GetTourEventsGroup","items","SmallImageURL","BookingInfoClickHandler","BookingInfoText","FormControl","InputLabel","GetAvailabilityText","alignContent","CalendarScreenHeading","Calendar","paymenttranstate","ReceiptNo","bookingListOfIds","substr","adjustView","DefaultHybridView","bkngTyp","CheckIsDefaultHybridView","CheckIsForceListView","innerWidth","actionCalendarHyridView","extramItemsstate","GetFilterDates","fromDate","showDisplay","difference","differenceIcon","differenceValue","Budget","justify","uuid","createdAt","inner","statusContainer","statusColors","delivered","pending","refunded","LatestOrders","mockData","orders","Table","TableHead","TableRow","TableCell","sortDirection","enterDelay","TableSortLabel","direction","TableBody","order","hover","imageUrl","updatedAt","subtract","LatestProducts","subtitle","List","ListItem","ListItemAvatar","ListItemText","fromNow","edge","labels","datasets","responsive","maintainAspectRatio","animation","legend","tooltips","enabled","mode","intersect","titleFontColor","bodyFontColor","footerFontColor","scales","xAxes","barThickness","maxBarThickness","barPercentage","categoryPercentage","ticks","fontColor","gridLines","drawBorder","yAxes","beginAtZero","borderDash","borderDashOffset","zeroLineBorderDash","zeroLineBorderDashOffset","zeroLineColor","chartContainer","LatestSales","TasksProgress","TotalProfit","TotalUsers","stats","device","deviceIcon","UsersByDevice","hoverBorderColor","cutoutPercentage","devices","Dashboard","iframe","Icons","NotFound","ProductCard","area","AreaName","DisplayText","callCalender","row","spacer","searchInput","TourPaddingLS","TourPaddingSS","ProductList","UniqueBookingTypeID","ShowOnline","Notifications","wrap","defaultChecked","Password","confirm","Settings","variants","Typography","nameContainer","UsersTable","users","selectedUsers","setSelectedUsers","rowsPerPage","setRowsPerPage","page","setPage","indeterminate","tableRow","selected","selectedIndex","newSelectedUsers","concat","handleSelectOne","avatarUrl","v","toUpperCase","getInitials","address","TablePagination","count","onChangePage","onChangeRowsPerPage","rowsPerPageOptions","importButton","exportButton","UsersToolbar","placeholder","UserList","tourheadertext","labelbold","tablecell","fproduct","removeclickhandler","TourEventId","coupItem","DeleteCouponsHolds","TourCouponID","CheckBeforeRemove","errorcancelhandle","changedqty","selectedTPQty","VisibleStartAndEndTime","starttime","ShowWebDisplayName","tourbox","table","colSpan","editClickHandler","couponAmount","eventid","productid","couponID","couponRefHold","getDonationProductAmount","memoizer","getGATicketCoupon","groupby","actionShopCartRemoveGATicketCoupons","couponcode","getGATicketDiscount","paybutton","center","diplaynone","textaligncenter","cashlessvalue","PayableCard","hasitems","pack","memberTypeID","actionShopCartRemoveCouponFromMembershiptype","GetMembershipTypeDiscount","objcashless","maskGiftCardNo","ProcessingBox","isshow","text1","text2","CircularProgress","CustomMessageforconfirmpage","BookingTypeBarcodeHeader","PaymentCompleteTitle","ConfirmationReceiptMessage","DisableMemberPassBarcode","RedirectWaiverSigner","WaiverSignMessage","ShowReadableBarcode","footerbox","headertext","PaymentCompletebox","ALLGATickets","ShowTicketDisplayName","t","getEvent","getGATickets","GetGiftCards","Giftcards","groupbyTourEvent","itemobj","GetMembershipPackage","packagename","PackageName","expiry","primaryMemberNo","MemberNo","amounts","CheckCircleOutlineOutlined","TabID","TabLocationName","productText","productWithOptions","opproduct","getProductOptions","disableSpacing","hasBarcodes","hasAnyBarcodesToShow","gaticket","Barcode","WaiverRequired","ShowWaiverLinks","onClickHandler","FreeBookingMessage1","FreeBookingMessage2","FreeTicketForm","spreedlyEnvironment","RecaptchaV3Client","StreetAddressTypeID","BillingAddressTypeID","UseStreetAddressForAVS","iframebox","iconforiframe","displaynone","iframeinputstyle","Spreedly","TransactionCall","requiredFields","tokenizeCreditCard","ZeroDollarTransactionCall","GetClient","executeRecaptcha","paymentTokenHandler","catch","CardOnFileTransaction","cardonfileToken","PaymentToken","ReloadSpreedly","PaymentLoaded","environmentKey","useGoogleReCaptcha","script","createElement","async","appendChild","onload","scriptLoaded","street1","stree2","postCode","mobilePhone","setStyle","on","setFieldType","setNumberFormat","errors","attribute","transferFocus","pmData","card_type","init","activeEl","inputProperties","numberLength","cvvLength","validCvv","fieldhandleChange","currentTarget","InputAdornment","CreditCard","VpnKey","IconComponent","DateRange","Merchant1","Merchant2","MultiPayments","merchantTotals","manageMyBooking","CalculateMultiMerchantTotalForMMB","GPCardNumberErrorMsg","GPCVVErrorMsg","GPExpiryErrorMsg","GlobalPaymentsApiKey","GlobalPaymentsEnvironment","GlobalPaymentsBaseURL","GlobalPaymentsEnableAutocomplete","TermsnConditionCheckMsg","TermsnConditionCheckBoxText","primarycolor","heading","mmbfakedisableButton","errorTxt","errorInput","FullWidth","PayBtnDisable","PayBtnUnDisable","GlobalPayments","refPayByCardOnFile","PayByCardOnFile","refReload","Reload","shopcartamounttoPay","showPayBtn","setShowPayBtn","tncchecked","settncChecked","opentnc","setopentnc","cardDetails","setCardDetails","cardNumberRef","cvvRef","expiryDateRef","submitRef","tnccheckeHandle","AdditionBooking","toggleButtonState","innerHTML","configure","enableAutocomplete","ui","form","fields","submit","styles","cardForm","isCallInititaed","timeout","ResetCreditCard","resp","showFreeTicket","updatetsates","detail","data_path","description","valid","isEnabled","addStylesheet","cardMaskedNum","cardType","PaymentDescription","PurchaseItems","cvv_present","ValidatePaymentFields","mmbPayBy","temporary_token","masked_card_number","managemyBooking","TransactionFeeByDefault","TransactionFeeOptional","showText","showOptionalTransactionFee","amoutToPay","optionalTxt","TransactionFeeOptionalText","GetTransOptionalText","showFreeTkt","spreedlyRef","globalPaymentsRef","SpreedlyTransactionCall","SpreedlyZeroDollarTransactionCall","SpreedlyCardOnFileTransaction","GPReload","RedirectAfterCheckout","Titleforloadingpayment","Subtitle1forloadingpayment","Subtitle2forloadingpayment","EmailRegex","MembershipCostRateMatches","CouponAndGiftcardAlreadyApplied","Membershipsuccess","HideMemberValidation","UserMembershipValidatedEmailAndLastName","RemoveMembershipCouponAndGiftcard","RemoveMembershipsuccess","IamMember","LastNameAndEmailORPhoneORAddressForMembership","RequiredEmailORPhoneORAddressForMembership","PaymentFormHeading","ShowFullAddressOnCheckout","CheckForIDmeValidProducts","IDmeAPIurl","IDmeClientID","IDmeRedirectURI","IDmeResponseType","IDmeScope","IDmeHeading","IDmeSuccessMsg","IDmeInvalidGroup","IDmeResponseTypeError","IDmeInvalidClient","IDmeInvalidRedirectUri","IDmeAccessDenied","AddPersonZipCodeLength","AddPersonCityLength","AddPersonAddress1Length","AddPersonStateLength","AddPersonCountryLength","AddPersonAddress2Length","AddPersonEmailLength","AddPersonFirstNameLength","AddPersonLastNameLength","PhoneNumberMandatory","ValidMemberMsg","btnAlign","imMember","clearButton","TextMaskCustom","inputElement","mask","PaymentForm","paymentsRef","formstates","initialpaystate","pfstate","setpfstate","ReloadGateways","ReloadGateway","removeMembershipState","setremoveMembershipState","removemembershipcouponandgifts","setremovemembershipcouponandgifts","inputreferences","haspaid","paymentinfo","errormsg","scrollTo","disablepay","btnStatus","filterOptions","createFilterOptions","checkfieldvalidation","prop","focus","scrollBy","isvalid","validateEmail","validatePhoneNum","BindRequiredFields","onClickPayBtn","useDebouncedCallback","leading","phoneNum","cusNumber","onChangeState","onChangeShippingState","setOpen","handleCloseDialog","newEmail","actionShopCartUpdateMembershipEmail","ValidateMemberValidate","AlertMessage","RemoveCouponsAndGiftCards","GetTourEvents","actionShopCartValidMember","RemoveMembership","CalculateAmountSelectedForMembers","eventslist","GetTourEventsList","indexOfAccessToken","idmeAccessToken","actionGetIDMEUSERDATA","group","subgroups","actionGetCostRate","displayclass","memberemailonFile","GetEmailOnFileVal","requiredFields1","latestDate","GetLatestTourEvent","show","VerifyGroupMembership","ShowIDME","inputMode","pattern","renderOption","ISOCode","srcSet","o","isPending","disableEscapeKeyDown","disableBackdropClick","HighestCouponAlreadyApplied","HideCoupons","HideGiftCards","GiftCardEnterPinTitle","GiftCardEnterPinSubTitle1","UseGiftcardPIN","CouponNotApplicableOnOtherPaymentMsg","CouponGiftCard","giftCardno","setgiftCardno","Pin","setPin","showPinPopUp","setShowPinPopUp","seterrormsg","ValidateAndAddGiftCard","RecalculationGiftCard","giftcardholdresponse","uniqueCouponHolds","actionResetCouponRemoveReset","CheckUniqueCouponAlreadyApplied","exist","pin","GiftCardsOnly","giftcardNo","CartDiscardMsg","CartDiscardTimeInfo","MarginTop","milli","seconds","PaddingString","millisecondsToTime","DonationHeading","DonationDetails","InvalidDOnationAmount","errorFont","DonationPopUp","showOthers","setshowOthers","donationPrice","setdonationPrice","setproductName","showDialog","actionShopCartUpdatePopupCounts","handleClose","CloseDonationPopUp","dona","keyVal","ApplyDonation","ShowDonationsSections","itemsmarginR","donateBtn","Donations","checkexist","setcheckexist","validateMsg","setvalidateMsg","MinimumMembershipQuantityError","AddHoverOnIcons","removeUserFromMembershipType","memProdType","membership","removemembershipType","getTotalAmount","ticketamount","MaxQuantity","UpdateCustomAmout","CustomGiftCardVal","actionRemoveGiftCard","alignSelf","foodAmount","ShowDonationPopUp","closebutton","DialogeHeader","DialogeHeaderText","paymentbox","linkbutton","Checkout","gatewayRef","opendonationPopup","setopendonationPopup","OthersAmount","useAltMerchant","actionShopCartApplyDonation","Container","tabLocationID","goBack","actionShopCartResetDonations","actionShopCartRemoveTourWithTourHold","actionShopCartAddProductQuanityWithTourHold","ProductId","actionShopCartRemoveGATicket","actionShopCartGATicketUpdateQuanity","actionShopCartDeleteDonationProduct","reCaptchaKey","firstname","lastname","initialDialogstate","dialogetitle","dialogemessage","initialerrorhandler","MembershipCard","JoinMemberships","RenewMembership","MembershipPackagesDisplayAreaNo","PurchaseMembershipNotAllowedForOrganizationBooking","MembershipList","seterror","actionGetMembershipPackages","Joinredirect","RenewRedirect","MembershipDetails","SuccessRenewMsg","mainHeading","SuccessMsg","MembershipHeader","displayMsg","MembershipUDFsHeading","largetourheaderbox","removeFontSize","MembershipUDF","actionUpdateMemberUDF","AddPersonDOBLength","DOBRegex","ValidateMembershipMinQuantity","TryDeletePrimaryRecordOnMembership","ConfirmMsgRemovePersonFromMemberPackage","DisplayMemPackageDiscriptionCharacters","PackageDiscriptionHeading","ValidateMembershipMaxQuantity","PackageMaxQtyMsg","PackageMinQtyMsg","maxHeight","dialogTitleHeader","smalltourheaderbox","hr","errorColor","defaultColor","udfWidth","usersnotpartofpackage","membershippackagesreducer","membermemberhisps","memmemberhisps","shopcartMembershipPackage","age","seterrorstate","memberpackageDetail","membershipPackageID","pushState","setopenMembership","shopcartmember","handleClickOpen","membershipTypeIDs","actionGetMembershipUserDefinedFields","membershipUdfsUpdated","setmembershipUdfsUpdated","CountTotalMembers","actionUpdateMembershipUdfsWithCustomerUdfsValues","openMembership","dialogBox","useNo","deletemsg","confirmopen","setconfirmOpen","reason","GetUserDOB","userDOB","ValidateMemberPackageQuantities","validRequest","saveDialog","ValidateMembershipType","resultRegex","isBetween","validateDOB","ageDiff","birthday","ageDifMs","now","ageDate","getUTCFullYear","calculateAge","AgeBasedMembership","MinAge","MaxAge","PersonNamesDuplicateCheck","actionUpdateMembershipAddonsQuantity","ConfirmMembershipPackage","ValidateMembersUDFs","MaximumMembersInPackage","MinimumMembersInPackage","constnextredirect","totalMembers","ShowMoreInfoClick","GetMembershipPackageDis","discription","GetMembershipTypeQty","memTypeProd","availQty","udfCate","memberusers","GetMembershipTypeUserCount","GetMembershipTypeName","memberTypeName","startIcon","membershipProduct","EditPerson","AddReviewMemberToPackage","addonMembership","CalculateMembershipPackageTotal","orientation","flexItem","dividers","renewmemshipscollection","renewmembershipsdistinct","MembershipPackageName","memtypename","GetDefaultMembershipName","deleteConfirmState","actionDeleteMembershipTypePerson","Membershipheadernewmsg","Membershipheaderrenewmsg","GetMemberShip","membershipTypesID","GetMembershipTypes","TitleforloadingSendLostMemberemail","Subtitle1forloadingSendLostMemberemail","Subtitle2forloadingSendLostMemberemail","PhoneOrAddress1ForMemberValidate","RenewMembershipNotAllowedForNonPrimarMemberMsg","RenewMembershipIfUserHaveNoMembership","showMainValidate","setshowMainBalidate","showProgBox","setshowProgBox","showMainValidateAllFields","setshowMainValidateAllFields","validationfields","actionGetMemberMemberships","actionGetCustomerUdfs","ids","GetCustomersIDList","setvalidationfields","member_no","ValidateMember","valFields","initialerrstate","ShowEmailView","SendEmailToCst","request","actionSendEmail","lgUp","underline","DisplayGATicketExpiryValidity","header","GAGroupItem","getShopcartTicketQty","GroupHeader","GroupItems","InfoClickHandler","GATicketExpiryDate","ChangeQuantityHandler","DefaultGATicketDisplayAreaNo","TicketPageHeader","headerText","footertablecell","tncOpen","tncMessage","tnc","settnc","setDisplayArea","URLSearchParams","useLocation","search","get","areaNo","settnchandler","TermsConditions","actionUpdateQuantityToProduct","DA","da","getDisplayAreaText","SellTickets","getTime","ProductSellStartDate","ProductSellEndDate","sortticket","GATicketDepartments","DepartmentSortOrder","DepartmentName","getGroupedGATickets","minQtytickets","actionShopCartAddGATicket","FindMyBookingTitle","InvalidFindMyBookingFieldsErrorMsg","FindBookingIDNumberNumbericOnly","boxBorder","itemPadding","searchButton","FindMyBooking","FindBooking","BookingSearchName","BookingEmailAddress","actionShopCartApplyMemberCostrate","CustomerCostRateID","useQuery","paramBookingid","paramName","paramEmail","findBookingObj","searchBooking","tourheaderboxMobView","warningMsg","AdjustContext","hideBtn","ManageMyBooking","openPaymentmethod","setOpenPaymentMethod","handleClosePaymentMethod","displayareaNo","BookingTypeDisplayArea","AllowDateTimeChangesWithinArea","startFilterDate","ConstRedirectCHangeDateTime","ConstRedirectModifyTickets","totalpayments","applyrefund","reditecttocheckout","BalanceOwe","addTransFeeWithBalance","balanceOwe","totalpaid","eligibletxtReturnClass","eligibleTxt","AllowRefunds","AllowRefundToGiftcardOnly","totalbookingcost","CancelGCRefund","BookingName","AllowTicketChanges","ChangeDateTimeHeading","RefundCreditCardButton","RefundGiftCardButton","ConfimBookingChanges","bookingreducer","amountaftercoupon","couponNo","setcouponNo","CouponsTotal","AmountToPay","previouspaid","actionShopCartRemoveCoupons","addeventstotourholdaction","constredirecttomanagecheckout","CheckCouponNo","ShowCurrentBookingStartAndEndTime","removeUniqueCouponHolds","box95per","hideVisiblity","cancelbtnconfig","cancelbtnconfig10per","CreditCardPayment","CreditCardValue","setCreditCardValue","transFeeCheckHandler","cstID","BookingContactID","ZeroDollaroRGiftCardOnlyTransCall","ProcessAndConfigurePaymentsWithoutCard","billingAddressSameAsAbover","reseterrorfield","onClickGPPayBtn","CancelChanges","formControl","AmountToPayLength","hideGrid","currentDateEvent","amounttopayTxtBox","setamounttopayTxtBox","CheckGiftCard","AmountToPayCalCulation","actualTotal","newTotal","eventTotal","totalbookingpaid","totalcst","totalpd","txtBoxValue","BookingCancelMsg","BookingSuccessfullyUpdate","TransactionCompleteTitle","receiptfileds","ReceiptTableCell","PaymentCompletePage","TotalPaid","GetBookingPrevPaid","bookingPaid","TransactionDate","tourname","GetTourName","tourdetails","GetTourDetails","TotalBalance","ManageCheckout","onClickPaymentHandler","actionShopCartResetGiftcards","ModifyTicketsHeading","ModifyTicketsAddons","changeQuantityCurrentBooking","actionUpdateQuantity","tourevntID","memcstRate","amountToPay","returnproducts","amounttop","PreviousQtyChanges","IsRefundable","GiftCardAreaCard","gcImg","gcImgSmall","MainGiftCards","SelectedGiftCardValue","SelectedGiftCardProdID","SelectedGiftCardQty","AddToCard","ValidateCustomGCs","actionAddToCartGiftCards","filteredGCs","sellStart","SellStart","sellEnd","SellEnd","GetGroupedGiftCards","cstGiftCard","CustomGiftCard","GiftCardsAreasList","actionGetGiftCardDisplayAreas","giftcardAreaNumbers","actionResetGiftCardDisplayAreas","titleText","subTitleText","OrderLocationItem","Location","getDayOfWeek","dayOfWeek","getDay","isStoreOpenNow","isOpen","OpeningTimes","Day","storeOpenTime","Open","storeCloseTime","Close","OrderLocation","openDaysTime","getStoreOpenTimes","AverageWaitMinutes","OrderLocationScreen","orderLocationsLoading","OrderLocationPageTabTitle","radioGroup","OrderLocationTab","setOrderLocation","tabLocation","setTabLocation","orderLocationOrignal","tl","MenuImage","MenuBox","MenuItem","Menu","MenuName","menuName","MenuImageURL","OrderMenu","orderMenuloading","actionSetOrderLocation","actionGetOrderMenuByDisplayArea","textDecoration","aligh","menu","OrderSubMenuPageOrderProductNoteText","OrderProduct","onCancel","onConfirm","SetProduct","objProduct","onChangeSubOptionHandler","optionProductID","OptionName","getOptionProductID","ProductDescription","optionproduct","getOrderProductPrice","Accordion","AccordionSummary","expandIcon","aria-controls","AccordionDetails","FormGroup","onChangeDeleteSubOptionHandler","GetProductNotes","rows","onChangeProductNoteHanlder","optionPrice","getTotalPrice","IsRequiredOptionsSelectedForOrderItem","badge","badgebox","SubMenuItem","Department","onClickAddProduct","onClickProductInfo","getProductQuantity","dep","OrderItemsInCartError2","RightButtonlIcon","OrderSubMenu","infoProduct","setInfoProduct","productPopUp","setProductPopUp","onClickProductHandler","department","Departments","ProductB","ProductA","PAOption","PBOption","PAProduct","PBProduct","AProduct","actionUpdateOrderProduct","uuidv4","actionAddOrderProduct","canceButtonlIcon","OrderItemsReview","productDeletePopUp","setProductDeletePopUp","getAllTotal","objSelectedProducts","foodProducts","actionUpdateOrderProducts","amountBtn","img","objectFit","objectPosition","StyledToggleButtonGroup","withStyles","grouped","shape","ToggleButtonGroup","DonationProduct","onChangeAmount","cartDonationProducts","selectedToogleButton","setSelectedToogleButton","validationInfo","setValidationInfo","hasImage","DisplayAmount","onChangeToogleButtonHandler","getNewProductObj","displayAmount","onValidationChangeOtherAmount","onChangeOtherAmount","exclusive","DisplayAmounts","SortOrder","ToggleButton","OtherValue","MinAmount","MaxAmount","getDisplayAmountButtons","DonationProducts","selectedProducts","setSelectedProducts","viewProducts","setViewProducts","note","setNote","displayAreasLoading","isDisplayAreaExists","actionGetProductsByTypeAndDisplayAreas","setItemIntoView","actionGetDisplayAreasByIdAndType","onChangeDonationProductSelection","AddProductToList","IsValidProduct","cartItem","existItem","selectedItem","minRows","newselectedProducts","actionShopCartUpdateDonationProduct","DonationAreas","onClickDonateHandler","Routes","exact","from","CalendarView","MainLayout","FoodOrderLocationScreen","OrderLocationTabScreen","OrderMenuScreen","OrderSubMenuScreen","OrderItemsReviewScreen","DashboardView","UserListView","ProductListView","GiftCardsAreasListView","MainGiftCardsView","MembershipsView","MembershipsMemberValidateView","MembershipListView","FindMyBookingView","ManageBookingView","ConfimBookingChangesView","ModifyTicketsAddonsView","ManageCheckoutView","DonationAreasView","DonationProductsView","TypographyView","IconsView","AccountView","SettingsView","NotFoundView","CheckoutView","backdrop","BorderLinearProgress","bar","Apploader","Backdrop","browserHistory","createBrowserHistory","basename","App","ThemeProvider","CssBaseline","Chart","helpers","extend","elements","Rectangle","prototype","chartjs","validators","sagaMiddleware","createSagaMiddleware","store","createStore","applyMiddleware","run","ReactDOM","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.81f043ee.chunk.js","sourcesContent":["import { LOAD_AUTHENTICATIONTOKEN_ERROR, LOAD_AUTHENTICATIONTOKEN_LOADING, LOAD_AUTHENTICATIONTOKEN_SUCCESS } from \"../actions/actionAuthentication\";\nconst initialState = {\n token: [],\n loading: false,\n authenticationError: ''\n};\n\nfunction reducerAuthenticationToken(state = initialState, action) {\n switch (action.type) {\n case LOAD_AUTHENTICATIONTOKEN_LOADING: {\n return {\n ...state,\n loading: true,\n authenticationError: ''\n };\n }\n case LOAD_AUTHENTICATIONTOKEN_SUCCESS: {\n return {\n ...state,\n token: action.token,\n loading: false\n }\n }\n case LOAD_AUTHENTICATIONTOKEN_ERROR: {\n return {\n ...state,\n loading: false,\n authenticationError: action.error\n };\n }\n default: {\n return state;\n }\n }\n}\n\nexport default reducerAuthenticationToken;\n","export const LOAD_AUTHENTICATIONTOKEN_LOADING = 'REDUX_SAGA_LOAD_AUTHENTICATIONTOKEN_LOADING';\nexport const LOAD_AUTHENTICATIONTOKEN_SUCCESS = 'REDUX_SAGA_LOAD_AUTHENTICATIONTOKEN_SUCCESS';\nexport const LOAD_AUTHENTICATIONTOKEN_ERROR = 'REDUX_SAGA_LOAD_AUTHENTICATIONTOKEN_ERROR';\n\nexport const actionLoadAuthenticationToken = (dispatch) => {\n dispatch({ type: LOAD_AUTHENTICATIONTOKEN_LOADING });\n};\n","// ChartJS extension rounded bar chart\n// https://codepen.io/jedtrow/full/ygRYgo\nfunction draw() {\n const { ctx } = this._chart;\n const vm = this._view;\n let { borderWidth } = vm;\n\n let left;\n let right;\n let top;\n let bottom;\n let signX;\n let signY;\n let borderSkipped;\n let radius;\n\n // If radius is less than 0 or is large enough to cause drawing errors a max\n // radius is imposed. If cornerRadius is not defined set it to 0.\n let { cornerRadius } = this._chart.config.options;\n if (cornerRadius < 0) {\n cornerRadius = 0;\n }\n\n if (typeof cornerRadius === 'undefined') {\n cornerRadius = 0;\n }\n\n if (!vm.horizontal) {\n // bar\n left = vm.x - vm.width / 2;\n right = vm.x + vm.width / 2;\n top = vm.y;\n bottom = vm.base;\n signX = 1;\n signY = bottom > top ? 1 : -1;\n borderSkipped = vm.borderSkipped || 'bottom';\n } else {\n // horizontal bar\n left = vm.base;\n right = vm.x;\n top = vm.y - vm.height / 2;\n bottom = vm.y + vm.height / 2;\n signX = right > left ? 1 : -1;\n signY = 1;\n borderSkipped = vm.borderSkipped || 'left';\n }\n\n // Canvas doesn't allow us to stroke inside the width so we can\n // adjust the sizes to fit if we're setting a stroke on the line\n if (borderWidth) {\n // borderWidth shold be less than bar width and bar height.\n const barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\n borderWidth = borderWidth > barSize ? barSize : borderWidth;\n const halfStroke = borderWidth / 2;\n // Adjust borderWidth when bar top position is near vm.base(zero).\n const borderLeft =\n left + (borderSkipped !== 'left' ? halfStroke * signX : 0);\n const borderRight =\n right + (borderSkipped !== 'right' ? -halfStroke * signX : 0);\n const borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0);\n const borderBottom =\n bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0);\n // not become a vertical line?\n if (borderLeft !== borderRight) {\n top = borderTop;\n bottom = borderBottom;\n }\n // not become a horizontal line?\n if (borderTop !== borderBottom) {\n left = borderLeft;\n right = borderRight;\n }\n }\n\n ctx.beginPath();\n ctx.fillStyle = vm.backgroundColor;\n ctx.strokeStyle = vm.borderColor;\n ctx.lineWidth = borderWidth;\n\n // Corner points, from bottom-left to bottom-right clockwise\n // | 1 2 |\n // | 0 3 |\n const corners = [[left, bottom], [left, top], [right, top], [right, bottom]];\n\n // Find first (starting) corner with fallback to 'bottom'\n const borders = ['bottom', 'left', 'top', 'right'];\n let startCorner = borders.indexOf(borderSkipped, 0);\n if (startCorner === -1) {\n startCorner = 0;\n }\n\n function cornerAt(index) {\n return corners[(startCorner + index) % 4];\n }\n\n // Draw rectangle from 'startCorner'\n let corner = cornerAt(0);\n ctx.moveTo(corner[0], corner[1]);\n\n for (let i = 1; i < 4; i += 1) {\n corner = cornerAt(i);\n let nextCornerId = i + 1;\n if (nextCornerId === 4) {\n nextCornerId = 0;\n }\n\n const width = corners[2][0] - corners[1][0];\n const height = corners[0][1] - corners[1][1];\n const x = corners[1][0];\n const y = corners[1][1];\n\n radius = cornerRadius;\n // Fix radius being too large\n if (radius > Math.abs(height) / 2) {\n radius = Math.floor(Math.abs(height) / 2);\n }\n if (radius > Math.abs(width) / 2) {\n radius = Math.floor(Math.abs(width) / 2);\n }\n\n if (height < 0) {\n // Negative values in a standard bar chart\n const xTl = x;\n const xTr = x + width;\n const yTl = y + height;\n const yTr = y + height;\n\n const xBl = x;\n const xBr = x + width;\n const yBl = y;\n const yBr = y;\n\n // Draw\n ctx.moveTo(xBl + radius, yBl);\n ctx.lineTo(xBr - radius, yBr);\n ctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\n ctx.lineTo(xTr, yTr + radius);\n ctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\n ctx.lineTo(xTl + radius, yTl);\n ctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\n ctx.lineTo(xBl, yBl - radius);\n ctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\n } else if (width < 0) {\n // Negative values in a horizontal bar chart\n const xTl = x + width;\n const xTr = x;\n const yTl = y;\n const yTr = y;\n\n const xBl = x + width;\n const xBr = x;\n const yBl = y + height;\n const yBr = y + height;\n\n // Draw\n ctx.moveTo(xBl + radius, yBl);\n ctx.lineTo(xBr - radius, yBr);\n ctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\n ctx.lineTo(xTr, yTr + radius);\n ctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\n ctx.lineTo(xTl + radius, yTl);\n ctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\n ctx.lineTo(xBl, yBl - radius);\n ctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\n } else {\n // Positive Value\n ctx.moveTo(x + radius, y);\n ctx.lineTo(x + width - radius, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n ctx.lineTo(x + width, y + height - radius);\n ctx.quadraticCurveTo(\n x + width,\n y + height,\n x + width - radius,\n y + height\n );\n ctx.lineTo(x + radius, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n ctx.lineTo(x, y + radius);\n ctx.quadraticCurveTo(x, y, x + radius, y);\n }\n }\n\n ctx.fill();\n if (borderWidth) {\n ctx.stroke();\n }\n}\n\nexport default {\n draw\n};\n","import Moment from 'moment';\r\nimport { genfunction } from 'helpers';\r\n\r\nconst { nodeNo, PaymentTypeID, CashlessTypeID, GiftCardTypeID, TransactionUserName,\r\n DonationProductID, TransactionFeeProductID, ApplyTransactionFee, Currency,\r\n ShowOrderItemPriceAs, EnableAlternateMerchantOnline, Merchant2TypeID } = window['runConfig'];\r\n\r\nexport default {\r\n GetMonths() {\r\n var monthNames = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\r\n return monthNames;\r\n },\r\n\r\n GetYears(numberofyears) {\r\n var years = [];\r\n var currentyear = new Date().getFullYear();\r\n for (let index = 0; index < numberofyears; index++) {\r\n years.push(currentyear + index)\r\n }\r\n return years;\r\n },\r\n\r\n ccyFormat(num) {\r\n return Currency + num.toFixed(2);\r\n },\r\n\r\n priceRow(qty, unit) {\r\n return qty * unit;\r\n },\r\n\r\n subproducttotal(products, cashless, donation, transactionfee, membershipPackages, gatickets, giftcards, orderProducts, donationProducts) {\r\n\r\n let totalDiscount = 0;\r\n let transFee = 0;\r\n let membershipPackTotal = 0;\r\n products.map(product => (\r\n product.CouponItems.map(e =>\r\n totalDiscount += e.TotalAmount\r\n )\r\n ));\r\n\r\n let producttotal = this.GetProductsTotalPrice(products).total;\r\n let gaticketstotal = gatickets ? gatickets.map(({ TotalAmount }) => TotalAmount).reduce((sum, i) => sum + i, 0) : 0;\r\n let cashlesstotal = cashless ? cashless.map(({ HoldAmount }) => HoldAmount).reduce((sum, i) => sum + i, 0) : 0;\r\n let giftcardstotal = giftcards ? giftcards.map(({ CartTotalAmount }) => CartTotalAmount).reduce((sum, i) => sum + i, 0) : 0;\r\n let orderProductsTotal = this.getOrderProductsTotalPrice(orderProducts).total;\r\n let donationProductsTotal = donationProducts ? donationProducts.map(({ Amount }) => Amount).reduce((sum, i) => sum + i, 0) : 0;\r\n\r\n if (giftcardstotal > 0) {\r\n producttotal = producttotal + giftcardstotal;\r\n }\r\n\r\n producttotal = donation && donation.isdonationApplied ? producttotal + parseFloat(donation.price) : producttotal;\r\n\r\n if (membershipPackages && membershipPackages.length > 0) {\r\n membershipPackTotal = membershipPackages.map(({ TotalAmount }) => TotalAmount).reduce((sum, i) => sum + i, 0);\r\n\r\n membershipPackages[0].MembershipProducts && membershipPackages[0].MembershipProducts.map(m => {\r\n\r\n if (m.CouponCodeApplied && m.CouponCodeApplied.length > 0) {\r\n\r\n if (m.MembershipType == \"AddOn\" && m.Quantity > 0) {\r\n totalDiscount += m.CouponCodeIncTax;\r\n }\r\n else if (m.MembershipType == \"Membership\" && m.Users.length > 0) {\r\n\r\n m.Users.map(u => {\r\n totalDiscount += m.CouponCodeIncTax;\r\n })\r\n }\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n if (transactionfee && transactionfee.hasOwnProperty('ProductID'))//&& producttotal > cashlesstotal\r\n {\r\n if (transactionfee.Price > 0) {\r\n if (!transactionfee.PriceIsAPercentage) {\r\n if ((producttotal + membershipPackTotal + gaticketstotal + orderProductsTotal + donationProductsTotal) - totalDiscount > 0)\r\n transFee = parseFloat(transactionfee.Price);\r\n }\r\n else {\r\n transFee = Math.round(parseFloat((((producttotal + membershipPackTotal + gaticketstotal + orderProductsTotal + donationProductsTotal) - totalDiscount) - cashlesstotal).toFixed(2) * transactionfee.Price)) / 100;\r\n }\r\n\r\n if (transFee > 0 && transactionfee.Taxes[0] && !transactionfee.Taxes[0].TaxIncluded) {\r\n transFee += this.ApplyTransactionFeeTax(transactionfee, transFee);\r\n }\r\n }\r\n }\r\n\r\n return parseFloat(((producttotal + membershipPackTotal + gaticketstotal + orderProductsTotal + donationProductsTotal + + transFee - totalDiscount) - cashlesstotal).toFixed(2));\r\n },\r\n\r\n calculateeventsamount(events) {\r\n events.forEach(event => {\r\n event.TicketAmount = 0;\r\n event.TaxAmount = 0;\r\n event.TotalAmount = 0;\r\n event.TourProducts.forEach(product => {\r\n if (product.PriceMatrix && product.PriceMatrix.length > 0) {\r\n var itemp = (product.PriceMatrix[0].Price * product.Quantity);\r\n var itemtax = 0;\r\n var itemTAmount = 0;\r\n product.PriceMatrix[0].Taxes.forEach(tax => {\r\n if (tax.TaxIncluded == true) {\r\n itemTAmount = Math.round((itemp / ((tax.TaxPercentage / 100) + 1)) * 100) / 100;\r\n itemtax = Math.round((itemp - itemTAmount) * 100) / 100;\r\n }\r\n else {\r\n itemTAmount = itemp;\r\n if (tax.TaxPercentage > 0) {\r\n itemtax += Math.round((itemTAmount * (tax.TaxPercentage / 100)) * 100) / 100;\r\n }\r\n }\r\n });\r\n\r\n product.IndividualPrice = product.PriceMatrix[0].Price;\r\n product.ProductAmount = itemTAmount;\r\n product.ProductTaxAmount = itemtax;\r\n product.ProductTotalAmount = product.ProductAmount + product.ProductTaxAmount;\r\n event.TicketAmount += itemTAmount;\r\n event.TaxAmount += itemtax;\r\n event.TotalAmount = Math.round((event.TicketAmount + event.TaxAmount) * 100) / 100;\r\n }\r\n\r\n });\r\n });\r\n\r\n return events;\r\n },\r\n convertEventstoTransaction(events, cashless, customerId, token, donation, transactionFee, membershipPackages, gatickets, isManageBooking, booking, managebkngTicketsModify, refundType, additionalPayment, giftcards, bookingUDFS, orderProducts, showTransFee, donationProducts, enteredAmountToPay) {\r\n let transactions = [];\r\n let trans = {};\r\n\r\n if (refundType === \"AdditionalPayment\" && isManageBooking && booking) {\r\n trans.TransactionType = \"Booking Payment\";\r\n }\r\n\r\n trans.NodeNo = nodeNo;\r\n trans.CustomerID = customerId;\r\n trans.Username = TransactionUserName;\r\n trans.Products = [];\r\n trans.Payments = [];\r\n let index = 0;\r\n let totalAmount = 0;\r\n let merchant1Total = 0;\r\n let merchant2Total = 0;\r\n\r\n\r\n if (isManageBooking && booking && refundType !== \"AdditionalPayment\") {\r\n\r\n if (managebkngTicketsModify === false || refundType === \"CancelBooking\" || refundType === \"CancelGiftCardRefund\") {\r\n booking.BookingProducts.forEach((product) => {\r\n if (product.Quantity > 0) {\r\n\r\n let newp = this.MMBReturnProduct(index, product, booking);\r\n\r\n let ReturnCouponAppliedQty = 0;\r\n if (managebkngTicketsModify === false && refundType !== \"CancelBooking\") {\r\n newp.BookingStatus = \"Change Date / Time\";\r\n\r\n if (booking.BookingCoupons && booking.BookingCoupons.length > 0 && booking.BookingCoupons.filter(x => x.TourProductID === product.TourProductID).length > 0) {\r\n\r\n let couponProd = booking.BookingCoupons.find(x => x.TourProductID === product.TourProductID);\r\n\r\n if (couponProd) {\r\n\r\n if (couponProd.TimesUsed < Math.abs(product.Quantity)) {\r\n ReturnCouponAppliedQty = Math.abs(product.Quantity) - couponProd.TimesUsed;\r\n newp.Quantity = -Math.abs(couponProd.TimesUsed);\r\n }\r\n\r\n newp.CouponCodeApplied = couponProd.CouponCodeApplied;\r\n\r\n if (ReturnCouponAppliedQty > 0) {\r\n index = this.MMBReturnUniqueCoupinNonItems(ReturnCouponAppliedQty, newp, product, couponProd, index + 1, trans);\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (refundType === \"CancelBooking\" || refundType === \"CancelGiftCardRefund\") {\r\n newp.CancelBooking = true;\r\n }\r\n\r\n index++;\r\n trans.Products.push(newp);\r\n\r\n }\r\n });\r\n }\r\n\r\n if (managebkngTicketsModify) {\r\n booking.BookingProducts.forEach((product) => {\r\n if (product.Quantity > 0 && product.hasOwnProperty('newQuantity') && product.Quantity !== product.newQuantity) {\r\n\r\n let newp = this.GetMMBModifyProduct(index, product, booking);\r\n\r\n index++;\r\n trans.Products.push(newp);\r\n }\r\n });\r\n }\r\n }\r\n\r\n events.forEach(event => {\r\n let prevTourEventID = 0;\r\n\r\n event.TourProducts.forEach((product) => {\r\n if (product.Quantity > 0) {\r\n\r\n let newp = {\r\n ProductLineNo: trans.Products.length > 0 ? trans.Products.length + 1 : index + 1,\r\n ProductID: product.PriceMatrix[0].ProductID,\r\n Quantity: product.Quantity,\r\n LinePriceExTax: product.ProductAmount,\r\n LinePriceTax: product.ProductTaxAmount,\r\n LinePriceIncTax: product.ProductTotalAmount,\r\n LinePaidExTax: genfunction.IsNotFullPay(event.PaymentOption) ? product.ProductSelectedAmount : product.ProductAmount,\r\n LinePaidTax: genfunction.IsNotFullPay(event.PaymentOption) ? product.ProductSelectedTaxAmount : product.ProductTaxAmount,\r\n LinePaidIncTax: genfunction.IsNotFullPay(event.PaymentOption) ? product.ProductSelectedTotalAmount : product.ProductTotalAmount,\r\n TourEventID: event.TourEventID,\r\n TourProductID: product.TourProductID,\r\n CostRateID: product.PriceMatrix[0].CostRateID,\r\n TourHoldRef: event.TourHoldRef,\r\n CouponCodeApplied: this.FindCouponCode(event, event.TourEventID, product.TourProductID, product.Quantity)\r\n };\r\n\r\n if (isManageBooking && booking && managebkngTicketsModify) {\r\n newp.TourEventID = booking.TourEventID;\r\n newp.BookingID = booking.BookingID;\r\n newp.BookingStatus = \"Modify Tickets\";\r\n }\r\n\r\n if (isManageBooking && booking && managebkngTicketsModify === false && refundType !== \"CancelBooking\") {\r\n newp.BookingID = booking.BookingID;\r\n }\r\n\r\n //Add Booking UDF's\r\n if (isManageBooking == false && prevTourEventID === 0 && newp.Quantity > 0 && newp.TourEventID > 0 && newp.LinePriceIncTax >= 0) {\r\n this.AddBookingUDFs(bookingUDFS, trans, newp, event.BookingTypeID);\r\n prevTourEventID++;\r\n }\r\n\r\n if (this.FindUniqueCoupon(event, event.TourEventID, product.TourProductID) && newp.Quantity > 1) {\r\n newp = this.UpdateUniqueCouponProduct(event, newp.TourEventID, newp);\r\n }\r\n\r\n totalAmount += newp.LinePriceIncTax;\r\n trans.Products.push(newp);\r\n index++;\r\n }\r\n });\r\n\r\n if (event.CouponItems.length > 0) {\r\n index = trans.Products.length + 1;\r\n\r\n event.CouponItems.forEach((coupon) => {\r\n\r\n let prod = Object.assign({}, trans.Products.filter(x => x.TourEventID == coupon.TourEventID\r\n && x.TourProductID == coupon.TourProductID)[0]);\r\n\r\n prod.ProductLineNo = index;\r\n\r\n if (coupon.isUniqueCoupon) {\r\n\r\n if (coupon.ProdQuantity - coupon.Quantity != 0 && coupon.Discount > 0) //coupon.Discount == 100\r\n {\r\n if (coupon.isPercentage) {\r\n trans.Products.push(genfunction.AddUniqueCouponItem(prod, coupon));\r\n prod.ProductLineNo = index + 1;\r\n index++;\r\n }\r\n }\r\n\r\n prod.CouponHoldRef = coupon.CouponHoldRef;\r\n }\r\n\r\n if ((coupon.isUniqueCoupon && coupon.Discount > 0) || coupon.isUniqueCoupon == false) //coupon.Discount == 100\r\n {\r\n prod.Quantity = coupon.Quantity;\r\n }\r\n\r\n prod.TourProductID = coupon.ApplyDiscountTourProductID;\r\n prod.TourProductName = coupon.ApplyDiscountTourProductName;\r\n prod.ProductID = coupon.ApplyDiscountProductID;\r\n prod.LinePriceExTax = -coupon.TicketAmount;\r\n prod.LinePriceTax = -coupon.TicketTax;\r\n prod.LinePriceIncTax = -coupon.TotalAmount;\r\n prod.LinePaidExTax = -coupon.TicketAmount;\r\n prod.LinePaidTax = -coupon.TicketTax;\r\n prod.LinePaidIncTax = -coupon.TotalAmount;\r\n prod.CouponCodeApplied = null;\r\n\r\n totalAmount -= coupon.TotalAmount;\r\n trans.Products.push(prod);\r\n index++;\r\n });\r\n }\r\n });\r\n\r\n gatickets.forEach(tickets => {\r\n if (tickets.Quantity > 0) {\r\n let newp = {\r\n ProductLineNo: index + 1,\r\n ProductID: tickets.ProductID,\r\n Quantity: tickets.Quantity,\r\n LinePriceExTax: tickets.TicketAmount,\r\n LinePriceTax: tickets.TaxAmount,\r\n LinePriceIncTax: tickets.TotalAmount,\r\n LinePaidExTax: tickets.TicketAmount,\r\n LinePaidTax: tickets.TaxAmount,\r\n LinePaidIncTax: tickets.TotalAmount,\r\n CouponCodeApplied: tickets.CouponCodeApplied\r\n };\r\n\r\n totalAmount += newp.LinePriceIncTax;\r\n trans.Products.push(newp);\r\n index++;\r\n }\r\n });\r\n\r\n if (donationProducts && donationProducts.length > 0) {\r\n donationProducts.forEach(product => {\r\n let newp = {\r\n ProductLineNo: index + 1,\r\n ProductID: product.ProductID,\r\n Quantity: 1,\r\n LinePriceExTax: product.Amount,\r\n LinePriceTax: 0,\r\n LinePriceIncTax: product.Amount,\r\n LinePaidExTax: product.Amount,\r\n LinePaidTax: 0,\r\n LinePaidIncTax: product.Amount,\r\n ProductNotes: product.ProductNotes ? product.ProductNotes : \"\"\r\n }\r\n trans.Products.push(newp);\r\n index++;\r\n })\r\n }\r\n\r\n orderProducts.forEach((product) => {\r\n let newp = {\r\n ProductLineNo: index + 1,\r\n ProductID: product.ProductID,\r\n Quantity: product.Quantity,\r\n LinePriceExTax: (product.PriceExTax * product.Quantity),\r\n LinePriceTax: (product.PriceTax * product.Quantity),\r\n LinePriceIncTax: (product.PriceIncTax * product.Quantity),\r\n LinePaidExTax: (product.PriceExTax * product.Quantity),\r\n LinePaidTax: (product.PriceTax * product.Quantity),\r\n LinePaidIncTax: (product.PriceIncTax * product.Quantity),\r\n ProductNotes: product.ProductNotes,\r\n };\r\n index++;\r\n\r\n if (product.Options && product.Options.length > 0) {\r\n newp.Options = [];\r\n product.Options.forEach(option => {\r\n let optionProducts = option.Products.filter(x => x.IsSelected);\r\n optionProducts.forEach(optionProduct => {\r\n let newop = {\r\n ProductLineNo: index + 1,\r\n ProductID: optionProduct.ProductID,\r\n Quantity: product.Quantity,\r\n LinePriceExTax: optionProduct.PriceExTax * product.Quantity,\r\n LinePriceTax: optionProduct.PriceTax * product.Quantity,\r\n LinePriceIncTax: optionProduct.PriceIncTax * product.Quantity,\r\n LinePaidExTax: optionProduct.PriceExTax * product.Quantity,\r\n LinePaidTax: optionProduct.PriceTax * product.Quantity,\r\n LinePaidIncTax: optionProduct.PriceIncTax * product.Quantity\r\n }\r\n index++;\r\n newp.Options.push(newop);\r\n });\r\n });\r\n }\r\n trans.Products.push(newp);\r\n });\r\n\r\n\r\n if (donation && donation.isdonationApplied) {\r\n let donationProd = {\r\n ProductLineNo: ++index,\r\n ProductID: DonationProductID,\r\n Quantity: 1,\r\n LinePriceExTax: parseFloat(donation.price),\r\n LinePriceTax: 0,\r\n LinePriceIncTax: parseFloat(donation.price),\r\n LinePaidExTax: parseFloat(donation.price),\r\n LinePaidTax: 0,\r\n LinePaidIncTax: parseFloat(donation.price)\r\n }\r\n\r\n trans.Products.push(donationProd);\r\n }\r\n\r\n var transFee = 0;\r\n var transTax = 0;\r\n\r\n if (ApplyTransactionFee && showTransFee && transactionFee && transactionFee.hasOwnProperty('ProductID')) {\r\n\r\n let cashlesstotal = cashless.map(({ HoldAmount }) => HoldAmount).reduce((sum, i) => sum + i, 0);\r\n\r\n transFee = (refundType === \"AdditionalPayment\" || (refundType === \"\" && enteredAmountToPay > 0) ?\r\n this.Rounded(this.GetTransactionFeeForPartialPayment(transactionFee, enteredAmountToPay, cashlesstotal))\r\n : this.Rounded(this.GetTransactionFee(transactionFee, events, donation, cashless, membershipPackages, gatickets, giftcards, orderProducts, donationProducts)))\r\n\r\n transTax = this.ApplyTransactionFeeTax(transactionFee, transFee);\r\n\r\n if (transactionFee.Taxes) {\r\n if (transactionFee.Taxes[0].TaxIncluded) {\r\n transFee -= transTax;\r\n }\r\n }\r\n\r\n if ((transFee + transTax) > 0) {\r\n let transFeeProd = {\r\n ProductLineNo: ++index,\r\n ProductID: TransactionFeeProductID,\r\n Quantity: 1,\r\n LinePriceExTax: this.Rounded(transFee),\r\n LinePriceTax: transTax,\r\n LinePriceIncTax: this.Rounded(transFee + transTax),\r\n LinePaidExTax: this.Rounded(transFee),\r\n LinePaidTax: transTax,\r\n LinePaidIncTax: this.Rounded(transFee + transTax)\r\n }\r\n\r\n trans.Products.push(transFeeProd);\r\n }\r\n }\r\n\r\n if (membershipPackages && membershipPackages.length > 0) {\r\n membershipPackages.forEach(memPack => {\r\n\r\n memPack.MembershipProducts.forEach(m => {\r\n\r\n if ((m.MembershipType === \"AddOn\" && m.Quantity > 0) || (m.MembershipType === \"Membership\" && m.Users.length > 0)) {\r\n\r\n if (m.MembershipType === \"Membership\" && m.Users.length > 0) {\r\n m.Users.forEach(u => {\r\n\r\n let startDate = \"\";\r\n\r\n if (u.isRenewal) {\r\n if (u.MembershipExpiryDate == \"\") {\r\n startDate = Moment(new Date()).format('YYYY-MM-DDT00:00:00');\r\n }\r\n else {\r\n\r\n if (Moment(u.MembershipExpiryDate).format('YYYY-MM-DDT00:00:00') < Moment(new Date()).format('YYYY-MM-DDT00:00:00')) {\r\n startDate = Moment(new Date()).format('YYYY-MM-DDT00:00:00');\r\n }\r\n else {\r\n startDate = new Date(u.MembershipExpiryDate);\r\n startDate.setDate(startDate.getDate() + 1);\r\n startDate = Moment(startDate).format('YYYY-MM-DDT00:00:00');\r\n }\r\n }\r\n }\r\n else {\r\n startDate = Moment(new Date()).format('YYYY-MM-DDT00:00:00');\r\n }\r\n\r\n let memProd = {\r\n ProductID: m.ProductID,\r\n ProductLineNo: trans.Products.length + 1,\r\n Quantity: 1,\r\n LinePriceExTax: m.SubTotal,\r\n LinePriceTax: m.TotalTax,\r\n LinePriceIncTax: m.TotalAmount,\r\n LinePaidExTax: m.SubTotal,\r\n LinePaidTax: m.TotalTax,\r\n LinePaidIncTax: m.TotalAmount,\r\n MembershipPackageID: memPack.MembershipPackageID,\r\n MembershipStartDate: startDate,\r\n MembershipExpiryDate: this.GetMembershipExpiryDate(new Date(startDate), m.MembershipDuration ? m.MembershipDuration.toLowerCase() : \"\"),\r\n MemberCustomerID: u.isRenewal ? u.userNo : u.isPrimaryMember ? -1 : 0,\r\n IsRenewal: u.isRenewal,\r\n RenewedUniquePackageRef: u.UniquePackageRef\r\n }\r\n\r\n if (m.hasOwnProperty('CouponCodeApplied') && m.CouponCodeApplied.length > 0) {\r\n memProd.LinePriceExTax = m.PriceAfterCoupon;\r\n memProd.LinePriceTax = m.TaxAfterCoupon;\r\n memProd.LinePriceIncTax = m.TotalAmountAfterCoupon;\r\n memProd.LinePaidExTax = m.PriceAfterCoupon;\r\n memProd.LinePaidTax = m.TaxAfterCoupon;\r\n memProd.LinePaidIncTax = m.TotalAmountAfterCoupon;\r\n memProd.CouponCodeApplied = m.CouponCodeApplied;\r\n memProd.CouponDiscountExTax = m.CouponCodeExTax;\r\n memProd.CouponDiscountTax = m.CouponCodeTax;\r\n memProd.CouponDiscountIncTax = m.CouponCodeIncTax;\r\n\r\n if (m.hasOwnProperty('ExtraMonths') && m.ExtraMonths !== undefined && m.ExtraMonths > 0) {\r\n memProd.MembershipExpiryDate = this.GetMembershipExpiryDate(new Date(memProd.MembershipExpiryDate), m.ExtraMonths + \" months\");\r\n }\r\n\r\n if (m.hasOwnProperty('ExtraDays') && m.ExtraDays !== undefined && m.ExtraDays > 0) {\r\n memProd.MembershipExpiryDate = this.GetMembershipExpiryDate(new Date(memProd.MembershipExpiryDate), (m.ExtraDays + 1) + \" days\");\r\n }\r\n\r\n }\r\n\r\n trans.Products.push(memProd);\r\n });\r\n }\r\n else {\r\n\r\n\r\n let startDate = \"\";\r\n\r\n if (m.isRenewPackage) {\r\n startDate = new Date(m.LastMembershipExpiryDate);\r\n startDate.setDate(startDate.getDate() + 1);\r\n startDate = Moment(startDate).format('YYYY-MM-DDT00:00:00');\r\n }\r\n else {\r\n startDate = Moment(new Date()).format('YYYY-MM-DDT00:00:00');\r\n }\r\n\r\n let memProd = {\r\n ProductID: m.ProductID,\r\n ProductLineNo: trans.Products.length + 1,\r\n Quantity: 1,\r\n LinePriceExTax: m.SubTotal,\r\n LinePriceTax: m.TotalTax,\r\n LinePriceIncTax: m.TotalAmount,\r\n MembershipPackageID: memPack.MembershipPackageID,\r\n MembershipStartDate: startDate,\r\n MembershipExpiryDate: this.GetMembershipExpiryDate(new Date(startDate), m.MembershipDuration ? m.MembershipDuration.toLowerCase() : \"\"),\r\n MemberCustomerID: m.isRenewPackage ? -2 : -1,\r\n IsRenewal: false,\r\n RenewedUniquePackageRef: ''\r\n }\r\n\r\n if (m.hasOwnProperty('CouponCodeApplied') && m.CouponCodeApplied.length > 0) {\r\n memProd.LinePriceExTax = m.PriceAfterCoupon;\r\n memProd.LinePriceTax = m.TaxAfterCoupon;\r\n memProd.LinePriceIncTax = m.TotalAmountAfterCoupon;\r\n memProd.LinePaidExTax = m.PriceAfterCoupon;\r\n memProd.LinePaidTax = m.TaxAfterCoupon;\r\n memProd.LinePaidIncTax = m.TotalAmountAfterCoupon;\r\n memProd.CouponCodeApplied = m.CouponCodeApplied;\r\n memProd.CouponDiscountExTax = m.CouponCodeExTax;\r\n memProd.CouponDiscountTax = m.CouponCodeTax;\r\n memProd.CouponDiscountIncTax = m.CouponCodeIncTax;\r\n\r\n if (m.hasOwnProperty('ExtraMonths') && m.ExtraMonths !== undefined && m.ExtraMonths > 0) {\r\n\r\n memProd.MembershipExpiryDate = this.GetMembershipExpiryDate(new Date(memProd.MembershipExpiryDate), m.ExtraMonths + \" months\");\r\n }\r\n\r\n if (m.hasOwnProperty('ExtraDays') && m.ExtraDays !== undefined && m.ExtraDays > 0) {\r\n memProd.MembershipExpiryDate = this.GetMembershipExpiryDate(new Date(memProd.MembershipExpiryDate), (m.ExtraDays + 1) + \" days\");\r\n }\r\n }\r\n\r\n trans.Products.push(memProd);\r\n }\r\n\r\n }\r\n\r\n });\r\n\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n let paymentLineNo = 1;\r\n totalAmount = this.subproducttotal(events, cashless, donation, (showTransFee ? transactionFee : null), membershipPackages, gatickets, giftcards, orderProducts, donationProducts);\r\n\r\n if (EnableAlternateMerchantOnline && !isManageBooking && (orderProducts && orderProducts.length < 1)) {\r\n let merchantTotalObj = this.CalculateMultiMerchantTotal(events, gatickets, membershipPackages, giftcards, donation, (showTransFee ? transactionFee : null), cashless, donationProducts);\r\n\r\n if (merchantTotalObj) {\r\n merchant1Total = merchantTotalObj.merchant1Total;\r\n merchant2Total = merchantTotalObj.merchant2Total;\r\n }\r\n\r\n totalAmount = 0;\r\n }\r\n\r\n if (isManageBooking && booking) {\r\n if (managebkngTicketsModify === false && refundType !== \"AdditionalPayment\") {\r\n\r\n let totalPaid = 0;\r\n\r\n if (booking.BookingPayments && booking.BookingPayments.length > 0) {\r\n booking.BookingPayments.forEach(x => {\r\n totalPaid += x.PaymentAmount;\r\n })\r\n }\r\n\r\n totalAmount = parseFloat((totalAmount - totalPaid).toFixed(2));\r\n }\r\n\r\n if (managebkngTicketsModify && refundType !== \"AdditionalPayment\") {\r\n\r\n let totalPaid = 0;\r\n\r\n if (trans.Products.filter(x => x.Quantity < 0 && x.BookingID > 0).length > 0) {\r\n totalPaid = trans.Products.filter(x => x.Quantity < 0 && x.BookingID > 0).map(({ LinePriceIncTax }) => LinePriceIncTax).reduce((sum, i) => sum + i, 0);\r\n }\r\n\r\n totalAmount -= Math.abs(totalPaid);\r\n }\r\n\r\n if ((refundType === \"GiftCardRefund\" || refundType === \"CancelGiftCardRefund\") && totalAmount < 0) {\r\n\r\n let giftcardProd = {\r\n ProductLineNo: trans.Products.length + 1,\r\n ProductID: GiftCardTypeID,\r\n Quantity: 1,\r\n LinePriceExTax: Math.abs(totalAmount),\r\n LinePriceTax: 0,\r\n LinePriceIncTax: Math.abs(totalAmount),\r\n LinePaidExTax: Math.abs(totalAmount),\r\n LinePaidTax: 0,\r\n LinePaidIncTax: Math.abs(totalAmount)\r\n }\r\n\r\n trans.Products.push(giftcardProd);\r\n }\r\n\r\n if (refundType === \"AdditionalPayment\") {\r\n\r\n let transFeeWithTax = transFee + transTax;\r\n let additionalPaymentWithoutTransactionFee = transFeeWithTax > 0 ? this.Rounded(additionalPayment - transFeeWithTax) :\r\n additionalPayment;\r\n\r\n let addpayment = {\r\n ProductLineNo: trans.Products.length + 1,\r\n BookingID: booking.BookingID,\r\n LinePaidIncTax: this.AddCashlessAndAdditionalPayment(cashless, additionalPaymentWithoutTransactionFee)\r\n }\r\n\r\n trans.Products.push(addpayment);\r\n }\r\n }\r\n\r\n\r\n if (giftcards && giftcards.length > 0) {\r\n\r\n giftcards.filter(x => x.AddedToCart && x.CartTotalAmount > 0).map(gc => {\r\n\r\n let giftcardProd = {\r\n ProductLineNo: trans.Products.length + 1,\r\n ProductID: gc.ProductID,\r\n Quantity: gc.CartQty,\r\n LinePriceExTax: gc.CartTotalAmount,\r\n LinePriceTax: 0,\r\n LinePriceIncTax: gc.CartTotalAmount,\r\n LinePaidExTax: gc.CartTotalAmount,\r\n LinePaidTax: 0,\r\n LinePaidIncTax: gc.CartTotalAmount\r\n }\r\n\r\n trans.Products.push(giftcardProd);\r\n });\r\n }\r\n\r\n if (refundType === \"\" && enteredAmountToPay > 0 && showTransFee && managebkngTicketsModify === false) {\r\n totalAmount = additionalPayment;\r\n }\r\n\r\n if (EnableAlternateMerchantOnline === false || (orderProducts && orderProducts.length > 0)) {\r\n\r\n if (totalAmount > 0 || (isManageBooking && booking && (totalAmount > 0 || totalAmount < 0)) && !((refundType === \"GiftCardRefund\" || refundType === \"CancelGiftCardRefund\" || refundType === \"AdditionalPayment\") && totalAmount < 0)) {\r\n\r\n let payment = {\r\n PaymentLineNo: paymentLineNo,\r\n PaymentTypeID: PaymentTypeID,\r\n PaymentAmount: totalAmount,\r\n CreditCardToken: token.token,\r\n CreditCardType: token.cardtype,\r\n CreditCardReference: token.token,\r\n CreditCardMaskedNumber: token.cardnumber\r\n };\r\n\r\n trans.Payments.push(payment);\r\n paymentLineNo++;\r\n }\r\n }\r\n\r\n if (EnableAlternateMerchantOnline && (orderProducts && orderProducts.length < 1)) {\r\n\r\n if (!isManageBooking) {\r\n if (merchant1Total > 0 || merchant1Total < 0) {\r\n let payment = {\r\n PaymentLineNo: paymentLineNo,\r\n PaymentTypeID: PaymentTypeID,\r\n PaymentAmount: merchant1Total,\r\n CreditCardToken: token.token,\r\n CreditCardType: token.cardtype,\r\n CreditCardReference: token.token,\r\n CreditCardMaskedNumber: token.cardnumber\r\n };\r\n\r\n trans.Payments.push(payment);\r\n paymentLineNo++;\r\n }\r\n\r\n if (merchant2Total > 0 || merchant2Total < 0) {\r\n let payment = {\r\n PaymentLineNo: paymentLineNo,\r\n PaymentTypeID: Merchant2TypeID,\r\n PaymentAmount: merchant2Total,\r\n CreditCardToken: token.token,\r\n CreditCardType: token.cardtype,\r\n CreditCardReference: token.token,\r\n CreditCardMaskedNumber: token.cardnumber\r\n };\r\n\r\n trans.Payments.push(payment);\r\n paymentLineNo++;\r\n }\r\n\r\n }\r\n else {\r\n\r\n let useAlternateAmount = true;\r\n\r\n if (EnableAlternateMerchantOnline) {\r\n if (booking && booking.hasOwnProperty('UseAlternateMerchantOnline')) {\r\n useAlternateAmount = booking.UseAlternateMerchantOnline;\r\n }\r\n\r\n if (useAlternateAmount) {\r\n merchant2Total = totalAmount;\r\n } else {\r\n merchant1Total = totalAmount;\r\n }\r\n }\r\n else {\r\n merchant1Total = totalAmount;\r\n merchant2Total = 0;\r\n }\r\n\r\n let paymentAmount = EnableAlternateMerchantOnline ? (useAlternateAmount ? merchant2Total : merchant1Total) : totalAmount;\r\n\r\n if (paymentAmount > 0 || ((refundType === 'CreditCardRefund' || refundType === 'CancelBooking') && paymentAmount < 0) || (refundType === \"AdditionalPayment\" && additionalPayment !== 0) && (refundType !== \"GiftCardRefund\" && refundType !== \"CancelGiftCardRefund\")) {\r\n\r\n let payment = {\r\n PaymentLineNo: paymentLineNo,\r\n PaymentTypeID: useAlternateAmount ? Merchant2TypeID : PaymentTypeID,\r\n CreditCardToken: token.token,\r\n CreditCardType: token.cardtype,\r\n CreditCardReference: token.token,\r\n CreditCardMaskedNumber: token.cardnumber,\r\n PaymentAmount: paymentAmount\r\n };\r\n\r\n if (refundType === \"AdditionalPayment\") {\r\n payment.PaymentAmount = additionalPayment;\r\n }\r\n\r\n trans.Payments.push(payment);\r\n paymentLineNo++;\r\n\r\n }\r\n }\r\n }\r\n\r\n cashless.forEach(item => {\r\n let payment = {\r\n PaymentLineNo: paymentLineNo,\r\n PaymentTypeID: CashlessTypeID,\r\n PaymentAmount: item.HoldAmount,\r\n GiftcardNumber: item.GiftcardNo,\r\n GiftcardHoldRef: item.GiftcardHoldRef\r\n };\r\n trans.Payments.push(payment);\r\n paymentLineNo++\r\n });\r\n\r\n if (!EnableAlternateMerchantOnline && refundType === \"AdditionalPayment\" && additionalPayment > 0) {\r\n\r\n if (token.token.length > 0) { // && token.cardtype.length > 0) {\r\n let additionalPay = {\r\n PaymentLineNo: paymentLineNo,\r\n PaymentTypeID: PaymentTypeID,\r\n PaymentAmount: additionalPayment, //giftcard ? additionalPayment - giftcard.PaymentAmount : additionalPayment,\r\n CreditCardToken: token.token,\r\n CreditCardType: token.cardtype,\r\n CreditCardReference: token.token,\r\n CreditCardMaskedNumber: token.cardnumber && token.cardnumber.length > 0 ? token.cardnumber : ''\r\n };\r\n\r\n trans.Payments.push(additionalPay);\r\n paymentLineNo++\r\n }\r\n }\r\n\r\n transactions.push(trans);\r\n\r\n return transactions;\r\n },\r\n\r\n GetRandomGiftCard(length) {\r\n var randomChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n var result = '';\r\n for (var i = 0; i < length; i++) {\r\n result += randomChars.charAt(Math.floor(Math.random() * randomChars.length));\r\n }\r\n return result;\r\n },\r\n UpdateUniqueCouponProduct(event, eventID, product) {\r\n\r\n let prod = Object.assign({}, product);\r\n\r\n if (event.CouponItems.filter(x => x.TourEventID == eventID && x.TourProductID == product.TourProductID).length > 0) {\r\n let c = event.CouponItems.filter(x => x.TourEventID == eventID && x.TourProductID == product.TourProductID)[0];\r\n\r\n if (prod && c.isPercentage && c.Discount > 0 && c.ProdQuantity - c.Quantity != 0) //c.Discount == 100\r\n {\r\n prod.Quantity = c.isPercentage && c.Discount > 0 ? prod.Quantity - c.Quantity : prod.Quantity; //c.Discount == 100\r\n prod.LinePriceExTax = product.LinePriceExTax - c.TicketAmount;\r\n prod.LinePriceTax = product.LinePriceTax - c.TicketTax;\r\n prod.LinePriceIncTax = product.LinePriceIncTax - c.TotalAmount;\r\n prod.LinePaidExTax = prod.LinePriceExTax;\r\n prod.LinePaidTax = prod.LinePriceTax;\r\n prod.LinePaidIncTax = prod.LinePriceIncTax;\r\n prod.CouponCodeApplied = null;\r\n }\r\n }\r\n\r\n return prod;\r\n },\r\n FindCouponCode(event, eventID, prodID, prodQuantity) {\r\n\r\n if (event.CouponItems.filter(x => x.TourEventID == eventID && x.TourProductID == prodID\r\n && x.isUniqueCoupon == true && x.ProdQuantity == x.Quantity).length > 0) {\r\n return event.CouponItems.filter(x => x.TourEventID == eventID && x.TourProductID == prodID)[0].UniqueCouponCode;\r\n }\r\n\r\n if (event.CouponItems.filter(x => x.TourEventID == eventID && x.TourProductID == prodID\r\n && x.isUniqueCoupon == true && x.Discount != 100 && x.ProdQuantity > x.Quantity).length > 0) {\r\n return event.CouponItems.filter(x => x.TourEventID == eventID && x.TourProductID == prodID)[0].UniqueCouponCode;\r\n }\r\n\r\n if (event.CouponItems.filter(x => x.TourEventID == eventID && x.TourProductID == prodID\r\n && x.isUniqueCoupon == false).length > 0) {\r\n return event.CouponItems.filter(x => x.TourEventID == eventID && x.TourProductID == prodID)[0].CouponCode;\r\n }\r\n\r\n return null;\r\n },\r\n FindUniqueCoupon(event, eventID, prodID) {\r\n if (event.CouponItems.filter(x => x.TourEventID == eventID && x.TourProductID == prodID\r\n && x.isUniqueCoupon == true).length > 0) {\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n AddUniqueCouponItem(product, coupon) {\r\n\r\n let prod = Object.assign({}, product);\r\n\r\n prod.Quantity = coupon.Quantity;\r\n prod.TourProductID = coupon.TourProductID;\r\n prod.TourProductName = coupon.TourProductName;\r\n prod.LinePriceExTax = coupon.TicketAmount;\r\n prod.LinePriceTax = coupon.TicketTax;\r\n prod.LinePriceIncTax = coupon.TotalAmount;\r\n prod.LinePaidExTax = coupon.TicketAmount;\r\n prod.LinePaidTax = coupon.TicketTax;\r\n prod.LinePaidIncTax = coupon.TotalAmount;\r\n prod.CouponCodeApplied = coupon.UniqueCouponCode;\r\n prod.CouponHoldRef = null;\r\n\r\n return prod;\r\n },\r\n\r\n GetTotalAmount(Products) {\r\n let totalInclTax = 0;\r\n let totalExclTax = 0;\r\n let totalTax = 0;\r\n\r\n Products.forEach(Product => {\r\n totalInclTax += Product.LinePaidIncTax;\r\n totalExclTax += Product.LinePaidExTax;\r\n totalTax += Product.LinePaidTax;\r\n if (Product.Options) {\r\n Product.Options.forEach(option => {\r\n totalInclTax += option.LinePaidIncTax;\r\n totalExclTax += option.LinePaidExTax;\r\n totalTax += option.LinePaidTax;\r\n });\r\n }\r\n });\r\n\r\n return {\r\n totalInclTax: totalInclTax,\r\n totalExclTax: totalExclTax,\r\n totalTax: totalTax\r\n };\r\n },\r\n GetProdsTotalAmount(Products) {\r\n let totalInclTax = 0;\r\n let totalExclTax = 0;\r\n let totalTax = 0;\r\n\r\n Products && Products.forEach(Product => {\r\n totalInclTax += Product.LinePaidIncTax;\r\n totalExclTax += Product.LinePaidExTax;\r\n totalTax += Product.LinePaidTax;\r\n });\r\n\r\n let prodsTotal = Products && Products.map(({ LinePaidIncTax }) => LinePaidIncTax).reduce((sum, i) => sum + i, 0);\r\n\r\n if (prodsTotal === 0) {\r\n return {\r\n totalInclTax: 0,\r\n totalExclTax: 0,\r\n totalTax: 0\r\n };\r\n }\r\n\r\n\r\n return {\r\n totalInclTax: totalInclTax,\r\n totalExclTax: totalExclTax,\r\n totalTax: totalTax\r\n };\r\n },\r\n\r\n UpdateEvent(ExistingEvents, NewEvent, IsEditEvent) {\r\n let existEevent = ExistingEvents.filter(x => x.TourEventID == NewEvent.TourEventID)[0];\r\n\r\n var E = NewEvent.TourProducts.map(product => {\r\n\r\n if (existEevent.TourProducts.filter(x => x.TourProductID == product.TourProductID).length > 0) {\r\n let pQty = IsEditEvent ? parseInt(product.Quantity)\r\n : parseInt(product.Quantity) + parseInt(existEevent.TourProducts.filter(x => x.TourProductID == product.TourProductID)[0].Quantity)\r\n\r\n product.Quantity = '';\r\n product.Quantity = pQty;\r\n\r\n }\r\n\r\n return product\r\n });\r\n\r\n existEevent.TourProducts.filter(e => e.Quantity > 0).map(prod => {\r\n\r\n if (!E.filter(x => x.TourProductID == prod.TourProductID).length > 0) {\r\n E.push(prod);\r\n }\r\n });\r\n\r\n NewEvent.TourProducts = [];\r\n NewEvent.TourProducts = E;\r\n\r\n //Update Coupons\r\n NewEvent.CouponItems = IsEditEvent ? [] : existEevent.CouponItems;\r\n\r\n return NewEvent;\r\n },\r\n\r\n GetUpdateClient(oldclient, newclient) {\r\n let objclient = {\r\n CustomerID: oldclient.CustomerID,\r\n FirstName: newclient.FirstName,\r\n LastName: newclient.LastName,\r\n CustomerAddress: [\r\n {\r\n AddressID: oldclient.CustomerAddress.filter(x => x.Email && x.Email.toLowerCase() == newclient.CustomerAddress[0].Email.toLowerCase())[0].AddressID,\r\n \"IsPrimaryAddress\": true,\r\n \"Email\": newclient.CustomerAddress[0].Email,\r\n \"Street1\": newclient.CustomerAddress[0].Street1,\r\n \"Street2\": newclient.CustomerAddress[0].Street2,\r\n \"CitySuburb\": newclient.CustomerAddress[0].CitySuburb,\r\n \"State\": newclient.CustomerAddress[0].State,\r\n \"Postcode\": newclient.CustomerAddress[0].Postcode,\r\n \"Country\": newclient.CustomerAddress[0].Country\r\n }\r\n ]\r\n }\r\n return objclient;\r\n },\r\n\r\n GetEventDate(eventDate) {\r\n return Moment(eventDate).format('ddd MMMM DD YYYY')\r\n },\r\n GetEventDateReceiptFormat(eventDate) {\r\n return Moment(eventDate).format('dddd, MMMM Do YYYY, h:mm a')\r\n },\r\n AppendEndTime(eventDate) {\r\n return Moment(eventDate).format('h:mm a')\r\n },\r\n GetEventDateReceiptFormatwithoutTime(eventDate) {\r\n return Moment(eventDate).format('dddd, MMMM Do YYYY')\r\n },\r\n GetTransactionDate(tranDate) {\r\n return Moment(tranDate).format('ddd Do MMMM YYYY HH:mm A')\r\n },\r\n GetShortDateAndTime(tranDate) {\r\n return Moment(tranDate).format('DD MMMM YYYY HH:mm A')\r\n },\r\n AddToDateDate(calendarDate) {\r\n var new_date = Moment(calendarDate, \"YYYY-MM-DD\").add(6, 'days');\r\n var day = new_date.format('DD');\r\n var month = new_date.format('MM');\r\n var year = new_date.format('YYYY');\r\n\r\n return year + '-' + month + '-' + day;\r\n },\r\n AddToDateDate(calendarDate, ListViewSearchDays) {\r\n var new_date = Moment(calendarDate, \"YYYY-MM-DD\").add(ListViewSearchDays - 1, 'days');\r\n var day = new_date.format('DD');\r\n var month = new_date.format('MM');\r\n var year = new_date.format('YYYY');\r\n\r\n return year + '-' + month + '-' + day;\r\n },\r\n AddSevenDays(calendarDate) {\r\n var new_date = Moment(calendarDate, \"YYYY-MM-DD\").add(6, 'days');\r\n var day = new_date.format('DD');\r\n var month = new_date.format('MM');\r\n var year = new_date.format('YYYY');\r\n\r\n return year + '-' + month + '-' + day;\r\n },\r\n AddWeekDays(calendarDate) {\r\n var new_date = Moment(calendarDate, \"YYYY-MM-DD\").add(8, 'days');\r\n var day = new_date.format('DD');\r\n var month = new_date.format('MM');\r\n var year = new_date.format('YYYY');\r\n\r\n return year + '-' + month + '-' + day;\r\n },\r\n RemoveSevenDays(events, searchDays, date) {\r\n\r\n let nextDate = null;\r\n\r\n if (events && events.length > 0 && events != \"no-content\" && events != \"nocontent\") {\r\n nextDate = new Date(Math.min(...events.map(e => new Date(e.EventEndDateTime))));\r\n }\r\n\r\n var new_date = events === \"no-content\" || events === \"nocontent\" ? Moment(date, \"YYYY-MM-DD\").add(-searchDays, 'days') : Moment(nextDate, \"YYYY-MM-DD\").add(-searchDays, 'days');\r\n var day = new_date.format('DD');\r\n var month = new_date.format('MM');\r\n var year = new_date.format('YYYY');\r\n\r\n return year + '-' + month + '-' + day;\r\n },\r\n AddNextSevenDays(events) {\r\n\r\n let nextDate = null;\r\n\r\n if (events && events.length > 0 && events != \"no-content\" && events != \"nocontent\") {\r\n nextDate = new Date(Math.max(...events.map(e => new Date(e.EventEndDateTime))));\r\n }\r\n\r\n var new_date = Moment(nextDate, \"YYYY-MM-DD\").add(1, 'days');\r\n var day = new_date.format('DD');\r\n var month = new_date.format('MM');\r\n var year = new_date.format('YYYY');\r\n\r\n return year + '-' + month + '-' + day;\r\n },\r\n PaddingString(value, paddingchar, numofcharshown) {\r\n return value.toString().padStart(numofcharshown, paddingchar);\r\n },\r\n EncodeBase64(input) {\r\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\n let str = input;\r\n let output = '';\r\n\r\n for (let block = 0, charCode, i = 0, map = chars;\r\n str.charAt(i | 0) || (map = '=', i % 1);\r\n output += map.charAt(63 & block >> 8 - i % 1 * 8)) {\r\n charCode = str.charCodeAt(i += 3 / 4);\r\n if (charCode > 0xFF) {\r\n console.log(\"'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.\");\r\n }\r\n block = block << 8 | charCode;\r\n }\r\n return output;\r\n },\r\n\r\n ConvertCartItemToTourHold(cartevent, newevent, isEditEvent) {\r\n\r\n let tourholds = [];\r\n if (cartevent && cartevent.length > 0) {\r\n cartevent.forEach(tourevent => {\r\n\r\n let tourhold = {\r\n TourEventID: tourevent.TourEventID,\r\n TourHoldRef: tourevent.TourHoldRef,\r\n TourHolds: []\r\n }\r\n\r\n tourevent.TourProducts.forEach(product => {\r\n\r\n let newProductQuantity = 0;\r\n if (newevent.TourProducts.filter(p => p.TourProductID === product.TourProductID).length > 0) {\r\n newProductQuantity = newevent.TourProducts.filter(p => p.TourProductID === product.TourProductID)[0].Quantity;\r\n }\r\n\r\n if (newProductQuantity > 0) {\r\n\r\n let tourproduct = {\r\n TourProductID: product.TourProductID,\r\n Seats: product.Quantity\r\n }\r\n tourhold.TourHolds.push(tourproduct);\r\n }\r\n });\r\n tourholds.push(tourhold);\r\n });\r\n }\r\n\r\n let toureventobj = tourholds.find(te => te.TourEventID == newevent.TourEventID);\r\n if (toureventobj) {\r\n newevent.TourProducts.forEach(product => {\r\n let tourproduct = toureventobj.TourHolds.find(tp => tp.TourProductID == product.TourProductID);\r\n if (tourproduct) {\r\n isEditEvent ? tourproduct.Seats = product.Quantity : tourproduct.Seats += product.Quantity;\r\n }\r\n else {\r\n let tourproduct = {\r\n TourProductID: product.TourProductID,\r\n Seats: product.Quantity\r\n }\r\n toureventobj.TourHolds.push(tourproduct);\r\n }\r\n })\r\n }\r\n else {\r\n let tourhold = {\r\n TourEventID: newevent.TourEventID,\r\n TourHolds: []\r\n }\r\n\r\n newevent.TourProducts.forEach(product => {\r\n let tourproduct = {\r\n TourProductID: product.TourProductID,\r\n Seats: product.Quantity\r\n }\r\n tourhold.TourHolds.push(tourproduct);\r\n\r\n });\r\n tourholds.push(tourhold);\r\n }\r\n return tourholds;\r\n },\r\n ConvertCartItemToTourHoldRemoveTourProduct(cartevent, toureventId, tourProductID) {\r\n let tourholds = [];\r\n if (cartevent && cartevent.length > 0) {\r\n cartevent.forEach(tourevent => {\r\n\r\n let tourhold = {\r\n TourEventID: tourevent.TourEventID,\r\n TourHoldRef: tourevent.TourHoldRef,\r\n TourHolds: []\r\n }\r\n\r\n tourevent.TourProducts.forEach(product => {\r\n\r\n if (tourevent.TourEventID == toureventId && product.TourProductID == tourProductID) {\r\n\r\n }\r\n else {\r\n let tourproduct = {\r\n TourProductID: product.TourProductID,\r\n Seats: product.Quantity\r\n }\r\n tourhold.TourHolds.push(tourproduct);\r\n }\r\n });\r\n\r\n tourholds.push(tourhold);\r\n });\r\n }\r\n return tourholds;\r\n },\r\n\r\n ConvertCartItemToTourHoldResetState(cartevent) {\r\n let tourholds = [];\r\n if (cartevent && cartevent.length > 0) {\r\n cartevent.forEach(tourevent => {\r\n\r\n let tourhold = {\r\n TourEventID: tourevent.TourEventID,\r\n TourHoldRef: tourevent.TourHoldRef,\r\n TourHolds: []\r\n }\r\n\r\n tourholds.push(tourhold);\r\n });\r\n }\r\n return tourholds;\r\n },\r\n\r\n ConvertCartTourToTourHoldResetState(cartevent, TourEventID) {\r\n let tourholds = [];\r\n if (cartevent && cartevent.length > 0) {\r\n cartevent.filter(x => x.TourEventID == TourEventID).forEach(tourevent => {\r\n\r\n let tourhold = {\r\n TourEventID: tourevent.TourEventID,\r\n TourHoldRef: tourevent.TourHoldRef,\r\n TourHolds: []\r\n }\r\n\r\n tourholds.push(tourhold);\r\n });\r\n }\r\n return tourholds;\r\n },\r\n ConvertCartItemToTourHoldIncreaseQuantity(cartevent, toureventId, tourProductID, quantity) {\r\n let tourholds = [];\r\n if (cartevent && cartevent.length > 0) {\r\n cartevent.forEach(tourevent => {\r\n\r\n let tourhold = {\r\n TourEventID: tourevent.TourEventID,\r\n TourHoldRef: tourevent.TourHoldRef,\r\n TourHolds: []\r\n }\r\n\r\n tourevent.TourProducts.forEach(product => {\r\n let qty = product.Quantity;\r\n if (tourevent.TourEventID == toureventId && product.TourProductID == tourProductID) {\r\n qty = quantity;\r\n }\r\n let tourproduct = {\r\n TourProductID: product.TourProductID,\r\n Seats: qty\r\n }\r\n tourhold.TourHolds.push(tourproduct);\r\n\r\n });\r\n tourholds.push(tourhold);\r\n });\r\n }\r\n return tourholds;\r\n },\r\n SetTourHoldRef(tourholds, newevent) {\r\n let toureventobj = tourholds.find(te => te.TourEventID == newevent.TourEventID);\r\n newevent.TourHoldRef = toureventobj.TourHoldRef;\r\n return newevent;\r\n },\r\n IsCouponExpiry(coupon) {\r\n return false;\r\n },\r\n GetGiftCardHoldRequest(giftcardno, amount) {\r\n return [\r\n {\r\n \"GiftcardNo\": giftcardno,\r\n \"HoldAmount\": amount,\r\n \"AllowPartial\": true\r\n }\r\n ]\r\n },\r\n GetGiftCardHoldRequestForUpdate(cashless) {\r\n let newcashless = cashless.map(item => {\r\n return {\r\n \"GiftcardNo\": item.GiftcardNo,\r\n \"GiftcardHoldRef\": item.GiftcardHoldRef,\r\n \"HoldAmount\": item.HoldAmount,\r\n \"AllowPartial\": true\r\n }\r\n })\r\n return newcashless;\r\n },\r\n RecalculatedCashlessArray(cashless, totalamount) {\r\n let sortedcashless = cashless.sort((a, b) => { return (a.HoldAmount + a.BalanceRemaining) - (b.HoldAmount + b.BalanceRemaining); });\r\n\r\n let amount = 0;\r\n let lastupdateflag = false;\r\n let newcashless = sortedcashless.map(item => {\r\n let giftcardtotalamount = item.HoldAmount + item.BalanceRemaining;\r\n if (item.BalanceRemaining == 0 && (amount + giftcardtotalamount) <= totalamount)\r\n item.state = 'Remain';\r\n else if (lastupdateflag == false && amount != totalamount) {\r\n item.state = 'Update';\r\n item.BalanceRemaining = giftcardtotalamount\r\n if (item.BalanceRemaining < totalamount - amount)\r\n item.HoldAmount = item.BalanceRemaining;\r\n else\r\n item.HoldAmount = totalamount - amount;\r\n item.BalanceRemaining -= item.HoldAmount;\r\n lastupdateflag = true;\r\n }\r\n else {\r\n item.state = 'Delete';\r\n }\r\n\r\n amount += item.HoldAmount + item.BalanceRemaining;\r\n return { ...item };\r\n });\r\n return newcashless;\r\n },\r\n maskGiftCardNo(giftCardNo) {\r\n const lastDigits = giftCardNo.slice(-6);\r\n const maskedNumber = lastDigits.padStart(giftCardNo.length, '*').slice(-10);\r\n return maskedNumber;\r\n },\r\n UniqueCouponApplied(couponItems, tourProductID, eventId) {\r\n\r\n if (couponItems && couponItems.length > 0) {\r\n if (couponItems.filter(x => x.TourProductID == tourProductID\r\n && x.TourEventID == eventId && x.isUniqueCoupon).length > 0) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n UpdateNewGiftCardHoldRef(oldCashlessarray, updatedCashless) {\r\n updatedCashless.forEach(newcashless => {\r\n let oldCashless = oldCashlessarray.find(old => old.GiftcardNo == newcashless.GiftcardNo)\r\n if (oldCashless)\r\n oldCashless.GiftcardHoldRef = newcashless.GiftcardHoldRef;\r\n })\r\n return oldCashlessarray;\r\n },\r\n replaceEscapeCharacters(item) {\r\n var itemValue = \"\";\r\n if (item && item.length > 0) {\r\n itemValue = item.split(\"\\\\r\\\\n\").join(\"
\");\r\n itemValue = itemValue.split(\"\\\\n\").join(\"
\");\r\n itemValue = itemValue.split(\"\\\\\").join(\"\");\r\n }\r\n return itemValue;\r\n },\r\n GetLatestTourEvent(events) {\r\n if (events.length == 1) {\r\n return events[0].EventStartDateTime;\r\n }\r\n else if (events.length > 1) {\r\n return events.reduce(function (a, b) { return a.EventStartDateTime > b.EventStartDateTime ? a.EventStartDateTime : b.EventStartDateTime; });\r\n }\r\n\r\n return new Date();\r\n },\r\n GetTourEventsList(events) {\r\n let eventsCollection = [];\r\n\r\n events.forEach(e => {\r\n eventsCollection.push(e.TourEventID);\r\n });\r\n\r\n return eventsCollection.toString();\r\n },\r\n ApplyMembershipPricesOnEvents(events, costrate, extraitems, DefaultCostRateID) {\r\n events.filter(e => e.OrganizationID === \"\").forEach(event => {\r\n event.TourProducts.map(product => {\r\n product.PriceMatrix = [];\r\n product.PriceMatrix.push(this.GetPriceMatrix(event.TourEventID, product.TourProductID, costrate, extraitems, DefaultCostRateID))\r\n return product;\r\n })\r\n });\r\n\r\n return this.calculateeventsamount(events);\r\n },\r\n ApplyMembershipPricesOnTourEvent(event, costrate, extraitems, DefaultCostRateID) {\r\n event.TourProducts.map(product => {\r\n product.PriceMatrix = [];\r\n product.PriceMatrix.push(this.GetPriceMatrix(event.TourEventID, product.TourProductID, costrate, extraitems, DefaultCostRateID))\r\n return product;\r\n });\r\n\r\n return event;\r\n },\r\n GetEvent(extraitems, toureventid) {\r\n return extraitems.find(x => x.TourEventID == toureventid)\r\n },\r\n GetPriceMatrix(eventID, prodID, costRateID, extraitems, DefaultCostRateID) {\r\n if (extraitems && extraitems.length > 0) {\r\n let extraItem = this.GetEvent(extraitems, eventID);\r\n let product = extraItem.TourProducts.filter(x => x.TourProductID == prodID);\r\n let pMatrix = [];\r\n if (product && product.length > 0) {\r\n if (product[0].PriceMatrix && product[0].PriceMatrix.find(x => x.CostRateID == costRateID)) {\r\n return product[0].PriceMatrix.find(x => x.CostRateID == costRateID);\r\n }\r\n else if (product[0].PriceMatrix && product[0].PriceMatrix.find(x => x.CostRateID == DefaultCostRateID)) {\r\n return product[0].PriceMatrix.find(x => x.CostRateID == DefaultCostRateID);\r\n }\r\n }\r\n }\r\n },\r\n CustomerPostCall(memberValidation, curentemail) {\r\n let emailMatch = false;\r\n let phoneMatch = false;\r\n let addressMatch = false;\r\n\r\n if (memberValidation.hasOwnProperty('EmailMatched')) {\r\n emailMatch = memberValidation.EmailMatched;\r\n }\r\n\r\n if (memberValidation.hasOwnProperty('EmailOnFile')) {\r\n if (emailMatch == false && memberValidation.EmailOnFile === curentemail) {\r\n emailMatch = true;\r\n }\r\n\r\n if (emailMatch == false && memberValidation.EmailOnFile !== curentemail) {\r\n emailMatch = false;\r\n }\r\n }\r\n\r\n if (memberValidation.hasOwnProperty('PhoneMatched')) {\r\n phoneMatch = memberValidation.PhoneMatched;\r\n }\r\n\r\n if (memberValidation.hasOwnProperty('AddressMatched')) {\r\n addressMatch = memberValidation.AddressMatched;\r\n }\r\n\r\n if (emailMatch && phoneMatch && addressMatch) {\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n ValidateMemberValidate(membershipValidation) {\r\n\r\n if (membershipValidation) {\r\n\r\n let emailMatch = false;\r\n let phoneMatch = false;\r\n let addressMatch = false;\r\n\r\n if (membershipValidation.hasOwnProperty(\"EmailMatched\")) {\r\n emailMatch = membershipValidation.EmailMatched;\r\n }\r\n\r\n if (membershipValidation.hasOwnProperty(\"PhoneMatched\")) {\r\n phoneMatch = membershipValidation.PhoneMatched;\r\n }\r\n\r\n if (membershipValidation.hasOwnProperty(\"AddressMatched\")) {\r\n addressMatch = membershipValidation.AddressMatched;\r\n }\r\n\r\n if (emailMatch || phoneMatch || addressMatch) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n RemoveUnUsedBookingTypes(bookingTypes, events) {\r\n\r\n bookingTypes.forEach(bt => {\r\n if (events.find(x => x.BookingTypeID === bt.BookingTypeID) === undefined) {\r\n bookingTypes = bookingTypes.filter(x => x.BookingTypeID !== bt.BookingTypeID);\r\n }\r\n });\r\n\r\n return bookingTypes;\r\n },\r\n TransactionFee(products, donation, transactionfee, cashless, membershipPackages, gatickets, giftcards, orderProducts, donationProducts) {\r\n\r\n let tFee = this.GetTransactionFee(transactionfee, products, donation, cashless, membershipPackages, gatickets, giftcards, orderProducts, donationProducts);\r\n\r\n if (tFee > 0 && (!transactionfee.Taxes[0].TaxIncluded)) {\r\n tFee += this.ApplyTransactionFeeTax(transactionfee, tFee);\r\n }\r\n\r\n return tFee;\r\n },\r\n GetTransactionFee(transactionfee, products, donation, cashless, membershipPackages, gatickets, giftcards, orderProducts, donationProducts) {\r\n\r\n if (transactionfee && transactionfee.hasOwnProperty('ProductID')) {\r\n\r\n if (transactionfee.Price > 0) {\r\n\r\n if (!transactionfee.PriceIsAPercentage) {\r\n let cashlesstotal = cashless.map(({ HoldAmount }) => HoldAmount).reduce((sum, i) => sum + i, 0);\r\n let transFee = (this.subproducttotal(products, cashless, donation, transactionfee, membershipPackages, gatickets, giftcards, orderProducts, donationProducts) * transactionfee.Price) / 100;\r\n return cashlesstotal > 0 || transFee > 0 ? transactionfee.Price : 0;\r\n }\r\n\r\n return ((this.subproducttotal(products, cashless, donation, undefined, membershipPackages, gatickets, giftcards, orderProducts, donationProducts)) * transactionfee.Price) / 100;\r\n }\r\n }\r\n\r\n return 0;\r\n },\r\n ApplyTransactionFeeTax(transactionfee, tFee) {\r\n if (transactionfee.Price > 0) {\r\n if (transactionfee.Taxes) {\r\n\r\n if (transactionfee.Taxes[0].TaxIncluded) {\r\n let itemAmount = Math.round((tFee / ((transactionfee.Taxes[0].TaxPercentage / 100) + 1)) * 100) / 100;\r\n return Math.round((tFee - itemAmount) * 100) / 100;\r\n }\r\n\r\n return Math.round((tFee * (transactionfee.Taxes[0].TaxPercentage / 100)) * 100) / 100;\r\n }\r\n return tFee;\r\n }\r\n\r\n return 0;\r\n },\r\n ReturnDateOnly(datetime) {\r\n let year = Moment(datetime).format('YYYY');\r\n let month = parseInt(Moment(datetime).format('M'));\r\n let date = Moment(datetime).format('DD');\r\n\r\n return new Date(year, month > 1 ? month - 1 : 0, date);\r\n },\r\n CalculateMembershipPackageTotal(membershipPackage) {\r\n let membershipProducts = membershipPackage.MembershipProducts;\r\n let MemPackTotals = {\r\n TaxTotal: 0,\r\n SubTotal: 0,\r\n TotalAmount: 0\r\n }\r\n\r\n if (membershipProducts) {\r\n membershipProducts.map(e => {\r\n\r\n if ((e.MembershipType === \"AddOn\" && (e.Quantity > 0 || e.MinQuantity > 0)) || (e.MembershipType === \"Membership\" && e.Users.length > 0)) {\r\n\r\n if (e.MinQuantity > 0 && e.Quantity == 0) {\r\n e.Quantity = 1;\r\n }\r\n\r\n var itemp = e.MembershipType === \"Membership\" ? e.Price : (e.Price * e.Quantity);\r\n var itemtax = 0;\r\n var itemTAmount = 0;\r\n var iterations = e.MembershipType === \"Membership\" ? e.Users.length : 1;\r\n var i;\r\n\r\n for (i = 0; i < iterations; i++) {\r\n\r\n if (e.Taxes && e.Taxes.length > 0) {\r\n e.Taxes.forEach(tax => {\r\n if (tax.TaxIncluded == true) {\r\n itemTAmount = Math.round((itemp / ((tax.TaxPercentage / 100) + 1)) * 100) / 100;\r\n itemtax = Math.round((itemp - itemTAmount) * 100) / 100;\r\n }\r\n else if (tax.TaxIncluded == false) {\r\n itemTAmount = itemp;\r\n if (tax.TaxPercentage > 0) {\r\n itemtax = Math.round((itemTAmount * (tax.TaxPercentage / 100)) * 100) / 100;\r\n }\r\n }\r\n else {\r\n itemtax = 0;\r\n itemTAmount = itemp;\r\n }\r\n })\r\n }\r\n else {\r\n itemtax = 0;\r\n itemTAmount = itemp;\r\n };\r\n\r\n MemPackTotals.TaxTotal += itemtax;\r\n MemPackTotals.SubTotal += itemTAmount;\r\n\r\n MemPackTotals.TotalAmount = MemPackTotals.TaxTotal + MemPackTotals.SubTotal;\r\n }\r\n\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n return MemPackTotals;\r\n },\r\n CalculateMembershipPackages(membershipPackages) {\r\n membershipPackages.forEach(memPack => {\r\n memPack.TotalTax = 0;\r\n memPack.SubTotal = 0;\r\n memPack.TotalAmount = 0;\r\n memPack.MembershipProducts.forEach(memType => {\r\n var itemp = memType.Price;\r\n var itemtax = 0;\r\n var itemTAmount = 0;\r\n var iterations = memType.MembershipType === \"Membership\" ? memType.Users.length : memType.Quantity;\r\n var i;\r\n for (i = 0; i < iterations; i++) {\r\n\r\n if (memType.Taxes && memType.Taxes.length > 0) {\r\n memType.Taxes && memType.Taxes.forEach(tax => {\r\n if (tax.TaxIncluded == true) {\r\n itemTAmount = Math.round((itemp / ((tax.TaxPercentage / 100) + 1)) * 100) / 100;\r\n itemtax = Math.round((itemp - itemTAmount) * 100) / 100;\r\n }\r\n else if (tax.TaxIncluded == false) {\r\n itemTAmount = itemp;\r\n if (tax.TaxPercentage > 0) {\r\n itemtax = Math.round((itemTAmount * (tax.TaxPercentage / 100)) * 100) / 100;\r\n }\r\n }\r\n else {\r\n itemtax = 0;\r\n itemTAmount = itemp;\r\n }\r\n });\r\n }\r\n else {\r\n itemtax = 0;\r\n itemTAmount = itemp;\r\n }\r\n\r\n if (memType.MembershipType === \"AddOn\" && memType.hasOwnProperty('Quantity') && memType.Quantity == 0) {\r\n itemtax = 0;\r\n itemtax = 0;\r\n\r\n }\r\n memType.TotalTax = itemtax;\r\n memType.SubTotal = itemTAmount;\r\n memType.TotalAmount = memType.TotalTax + memType.SubTotal;\r\n\r\n memPack.TotalTax += itemtax;\r\n memPack.SubTotal += itemTAmount;\r\n memPack.TotalAmount = memPack.TotalTax + memPack.SubTotal;\r\n }\r\n })\r\n })\r\n\r\n return membershipPackages;\r\n },\r\n GetCustomerList(membershipPackages, customerReq, customerObj) {\r\n\r\n let customersList = [];\r\n let cstCollection = { customerList: [], customerRequest: {} }\r\n let objCst = customerObj.customer && customerObj.customer.length > 0 ? customerObj.customer[0] : null;\r\n\r\n membershipPackages.forEach(memPack => {\r\n\r\n memPack.MembershipProducts.forEach(memType => {\r\n\r\n if (memType.MembershipType === \"Membership\" && memType.Users.length > 0) {\r\n\r\n memType.Users.forEach(u => {\r\n\r\n if (u.isPrimaryMember === true) {\r\n customerReq[0].DateOfBirth = u.dob && u.dob == \"DOB\" ? \"\" : u.dob;\r\n }\r\n\r\n else {\r\n var client =\r\n {\r\n \"Title\": \"\",\r\n \"FirstName\": u.firstName,\r\n \"LastName\": u.lastName,\r\n \"DateOfBirth\": u.dob && u.dob == \"DOB\" ? \"\" : u.dob,\r\n \"Relationship\": \"\",\r\n \"TransactionRight\": null,\r\n \"AdministrationRight\": null,\r\n \"CustomerAddress\": [\r\n {\r\n \"Email\": u.email,\r\n \"Street1\": \"\",\r\n \"Street2\": \"\",\r\n \"CitySuburb\": \"\",\r\n \"State\": \"\",\r\n \"Postcode\": \"\",\r\n \"Country\": \"\",\r\n \"MobilePhone\": u.phone\r\n }\r\n ]\r\n };\r\n\r\n if (objCst && objCst.hasOwnProperty('LinkedIndividuals') && objCst.LinkedIndividuals && objCst.LinkedIndividuals.length > 0) {\r\n if (objCst.LinkedIndividuals.filter(x => x.FirstName.toLowerCase() == client.FirstName.toLowerCase() && x.LastName.toLowerCase() == client.LastName.toLowerCase()).length > 0) {\r\n\r\n let linkedMember = objCst.LinkedIndividuals.filter(x => x.FirstName.toLowerCase() == client.FirstName.toLowerCase() && x.LastName.toLowerCase() == client.LastName.toLowerCase())[0];\r\n if (linkedMember) {\r\n client.CustomerID = linkedMember.CustomerID;\r\n }\r\n }\r\n }\r\n\r\n customerReq[0].LinkedIndividuals.push(client);\r\n\r\n var customer = {\r\n user: client,\r\n memPackID: memPack.MembershipPackageID,\r\n memProdID: memType.ProductID,\r\n userID: u.userNo\r\n }\r\n customersList.push(customer);\r\n }\r\n });\r\n\r\n }\r\n })\r\n })\r\n\r\n cstCollection.customerList = customersList;\r\n cstCollection.customerRequest = customerReq;\r\n\r\n return cstCollection;\r\n },\r\n AddYearsToDate(date, noOfYears) {\r\n return new Date(date.setFullYear(date.getFullYear() + noOfYears));\r\n },\r\n GetMembershipExpiryDate(date, datediff) {\r\n let noDiff = 0;\r\n let expiryDate = \"\";\r\n if (datediff && datediff.length > 0) {\r\n\r\n if (datediff.includes(\"years\")) {\r\n noDiff = parseInt(datediff);\r\n expiryDate = Moment(new Date(date.setFullYear(date.getFullYear() + noDiff))).format('YYYY-MM-DDT00:00:00');\r\n }\r\n else if (datediff.includes(\"months\")) {\r\n noDiff = parseInt(datediff);\r\n expiryDate = Moment(new Date(date.setMonth(date.getMonth() + noDiff))).format('YYYY-MM-DDT00:00:00');\r\n }\r\n else if (datediff.includes(\"days\")) {\r\n noDiff = parseInt(datediff);\r\n expiryDate = Moment(new Date(date.setDate(date.getDate() + (noDiff - 1)))).format('YYYY-MM-DDT00:00:00');\r\n }\r\n else {\r\n expiryDate = Moment(new Date(datediff)).format('YYYY-MM-DDT00:00:00');\r\n }\r\n }\r\n\r\n return expiryDate;\r\n },\r\n UpdateTransactionCall(customersList, transaction, customerResponse) {\r\n\r\n if (transaction && transaction[0].Products.length > 0) {\r\n\r\n let priMember = transaction[0].Products.filter(x => x.MemberCustomerID == transaction[0].CustomerID && x.IsRenewal == true)[0];\r\n\r\n transaction[0].Products.forEach(p => {\r\n\r\n if (p.hasOwnProperty(\"MembershipPackageID\") && p.hasOwnProperty(\"MemberCustomerID\")) {\r\n\r\n if (p.MemberCustomerID == -1 || p.MemberCustomerID == transaction[0].CustomerID) {\r\n p.MemberCustomerID = transaction[0].CustomerID;\r\n }\r\n else if (priMember && priMember.IsRenewal && p.MemberCustomerID == -2) {\r\n p.MemberCustomerID = transaction[0].CustomerID;\r\n p.RenewedUniquePackageRef = priMember.RenewedUniquePackageRef;\r\n p.IsRenewal = priMember.IsRenewal;\r\n }\r\n else {\r\n var customer = customersList.filter(x => x.memPackID == p.MembershipPackageID\r\n && x.memProdID == p.ProductID)[0];\r\n\r\n if (customer) {\r\n var cst = customerResponse[0].LinkedIndividuals.filter(x => x.FirstName == customer.user.FirstName && x.LastName == customer.user.LastName)[0];\r\n\r\n if (cst) {\r\n p.MemberCustomerID = cst.CustomerID;\r\n customersList = customersList.filter(x => x.userID != customer.userID);\r\n }\r\n } else {\r\n p.MemberCustomerID = transaction[0].CustomerID;\r\n }\r\n }\r\n }\r\n\r\n })\r\n }\r\n\r\n return transaction;\r\n },\r\n calculategaticketamount(tickets) {\r\n tickets.forEach(ticket => {\r\n ticket.TicketAmount = 0;\r\n ticket.TaxAmount = 0;\r\n ticket.TotalAmount = 0;\r\n ticket.OriginalTicketAmount = 0;\r\n ticket.OriginalTaxAmount = 0;\r\n ticket.OriginalTotalAmount = 0;\r\n\r\n var itemp = (ticket.Price * ticket.Quantity);\r\n var itemtax = 0;\r\n var itemTAmount = 0;\r\n ticket.Taxes.forEach(tax => {\r\n if (tax.TaxIncluded == true) {\r\n itemTAmount = Math.round((itemp / ((tax.TaxPercentage / 100) + 1)) * 100) / 100;\r\n itemtax = Math.round((itemp - itemTAmount) * 100) / 100;\r\n }\r\n else {\r\n itemTAmount = itemp;\r\n if (tax.TaxPercentage > 0) {\r\n itemtax += Math.round((itemTAmount * (tax.TaxPercentage / 100)) * 100) / 100;\r\n }\r\n }\r\n });\r\n\r\n var originalitemp = (ticket.OriginalPrice * ticket.Quantity);\r\n var originalitemtax = 0;\r\n var originalitemTAmount = 0;\r\n ticket.Taxes.forEach(tax => {\r\n if (tax.TaxIncluded == true) {\r\n originalitemTAmount = Math.round((originalitemp / ((tax.TaxPercentage / 100) + 1)) * 100) / 100;\r\n originalitemtax = Math.round((originalitemp - originalitemTAmount) * 100) / 100;\r\n }\r\n else {\r\n originalitemTAmount = originalitemp;\r\n if (tax.TaxPercentage > 0) {\r\n originalitemtax += Math.round((originalitemTAmount * (tax.TaxPercentage / 100)) * 100) / 100;\r\n }\r\n }\r\n });\r\n ticket.TicketAmount += itemTAmount;\r\n ticket.TaxAmount += itemtax;\r\n ticket.TotalAmount = ticket.TicketAmount + ticket.TaxAmount;\r\n\r\n ticket.OriginalTicketAmount += originalitemTAmount;\r\n ticket.OriginalTaxAmount += originalitemtax;\r\n ticket.OriginalTotalAmount = ticket.OriginalTicketAmount + ticket.OriginalTaxAmount;\r\n });\r\n\r\n return tickets;\r\n },\r\n GetPrimaryMemberMembershipType(membershipPackage, memberMemberships) {\r\n let memberType = null;\r\n\r\n membershipPackage.MembershipProducts.map(memType => {\r\n\r\n if (memType.MembershipType === \"Membership\") {\r\n\r\n if (memberMemberships.filter(x => x.MembershipTypeID == memType.MembershipTypeID).length > 0) {\r\n memberType = memberMemberships.filter(x => x.MembershipTypeID == memType.MembershipTypeID)[0];\r\n }\r\n }\r\n });\r\n\r\n return memberType;\r\n },\r\n GetValueIfObjectHasProperty(propertyName, obj) {\r\n let val = \"\";\r\n\r\n if (obj.hasOwnProperty(propertyName)) {\r\n val = obj[propertyName];\r\n }\r\n\r\n return val;\r\n },\r\n UpdateMembershipPackageForRenew(membershipPackage, membermemberships, customer) {\r\n\r\n let memberpackageDetails = {\r\n membershipPackage: {},\r\n userslist: []\r\n }\r\n\r\n let memMemberships = [];\r\n let primaryMemberType = {};\r\n\r\n\r\n\r\n if (customer && customer.length > 0 && membermemberships && membermemberships.Memberships.length > 0 && membermemberships.Memberships.filter(x => x.MembershipPackageID == membershipPackage.MembershipPackageID && x.IsCancelled == false && x.IsRenewed == false).length > 0) {\r\n\r\n memMemberships = membermemberships.Memberships.filter(x => x.MembershipPackageID == membershipPackage.MembershipPackageID && x.IsCancelled == false && x.IsRenewed == false); //[0]; //reverse()\r\n\r\n if (memMemberships && memMemberships.length > 0) {\r\n primaryMemberType = this.GetPrimaryMemberMembershipType(membershipPackage, memMemberships);\r\n }\r\n\r\n if (memMemberships && memMemberships.length > 0) {\r\n var user = {\r\n isPrimaryMember: true,\r\n popupTitle: 'Primary Member',\r\n firstName: membermemberships.FirstName,\r\n lastName: membermemberships.LastName,\r\n email: membermemberships.Email,\r\n dob: this.GetValueIfObjectHasProperty('DateOfBirth', customer[0]),\r\n phone: this.GetValueIfObjectHasProperty('MobilePhone', customer[0].CustomerAddress[0]),\r\n address1: this.GetValueIfObjectHasProperty('Street1', customer[0].CustomerAddress[0]),\r\n address2: this.GetValueIfObjectHasProperty('Street2', customer[0].CustomerAddress[0]),\r\n city: this.GetValueIfObjectHasProperty('CitySuburb', customer[0].CustomerAddress[0]),\r\n state: this.GetValueIfObjectHasProperty('State', customer[0].CustomerAddress[0]),\r\n zipcode: this.GetValueIfObjectHasProperty('Postcode', customer[0].CustomerAddress[0]),\r\n country: this.GetValueIfObjectHasProperty('Country', customer[0].CustomerAddress[0]),\r\n userNo: membermemberships.MemberNumber,\r\n isRenewal: true,\r\n isEdit: false,\r\n membershipTypeID: primaryMemberType.MembershipTypeID,\r\n membershipTypeName: primaryMemberType.ProductName,\r\n PreviousMembershipType: primaryMemberType.ProductName,\r\n notpartofPackage: false,\r\n UniquePackageRef: primaryMemberType.UniquePackageRef,\r\n MembershipExpiryDate: primaryMemberType.MembershipExpiryDate\r\n }\r\n\r\n memberpackageDetails.userslist.push(user);\r\n }\r\n\r\n\r\n if (membermemberships && membermemberships.LinkedIndividuals && membermemberships.LinkedIndividuals.length > 0) {\r\n\r\n membermemberships.LinkedIndividuals.map(mem => {\r\n\r\n var linkedUser = customer[0].LinkedIndividuals.filter(x => x.CustomerID == mem.MemberNumber);\r\n\r\n var user = {\r\n isPrimaryMember: false,\r\n firstName: mem.FirstName,\r\n lastName: mem.LastName,\r\n email: linkedUser && linkedUser.length > 0 && linkedUser[0].hasOwnProperty('Email') ? linkedUser[0].Email : '',\r\n dob: mem.DateOfBirth,\r\n phone: linkedUser && linkedUser.length > 0 && linkedUser[0].hasOwnProperty('MobilePhone') ? linkedUser[0].MobilePhone : '',\r\n address1: '',\r\n address2: '',\r\n city: '',\r\n state: '',\r\n zipcode: '',\r\n country: '',\r\n userNo: mem.MemberNumber,\r\n membershipTypeID: 0,\r\n membershipTypeName: '',\r\n previousMembershipType: '',\r\n notpartofPackage: false,\r\n isRenewal: true,\r\n isEdit: false,\r\n UniquePackageRef: '',\r\n MembershipExpiryDate: ''\r\n }\r\n\r\n if (mem.Memberships && mem.Memberships.length > 0 && mem.Memberships.filter(x => x.MembershipPackageID == membershipPackage.MembershipPackageID && x.IsCancelled == false && x.IsRenewed == false && x.UniquePackageRef == primaryMemberType.UniquePackageRef).length > 0) {\r\n mem.Memberships.filter(x => x.MembershipPackageID == membershipPackage.MembershipPackageID && x.IsCancelled == false && x.IsRenewed == false && x.UniquePackageRef == primaryMemberType.UniquePackageRef).map(m => {\r\n\r\n user.membershipTypeID = m.MembershipTypeID;\r\n user.UniquePackageRef = m.UniquePackageRef;\r\n user.MembershipExpiryDate = m.MembershipExpiryDate;\r\n user.PreviousMembershipType = m.ProductName;\r\n user.membershipTypeName = m.ProductName;\r\n memberpackageDetails.userslist.push(user);\r\n\r\n });\r\n } else {\r\n\r\n\r\n if (memberpackageDetails.userslist.length > 0 && memberpackageDetails.userslist.filter(x => x.firstName == user.firstName && x.lastName == user.lastName).length == 0) {\r\n user.notpartofPackage = true;\r\n\r\n //Update Member with previous active membership details.\r\n\r\n if (mem.Memberships && mem.Memberships.length > 0 && mem.Memberships.filter(x => x.IsCancelled == false && x.IsRenewed == false).length > 0) {\r\n\r\n var mp = mem.Memberships.length > 0 && mem.Memberships.filter(x => x.IsCancelled == false && x.IsRenewed == false)[0];\r\n\r\n if (mp) {\r\n user.membershipTypeID = mp.MembershipTypeID;\r\n user.UniquePackageRef = mp.UniquePackageRef;\r\n user.MembershipExpiryDate = mp.MembershipExpiryDate;\r\n user.PreviousMembershipType = mp.ProductName;\r\n user.membershipTypeName = mp.ProductName;\r\n }\r\n }\r\n\r\n memberpackageDetails.userslist.push(user);\r\n }\r\n\r\n }\r\n\r\n });\r\n }\r\n }\r\n else {\r\n\r\n memberpackageDetails.membershipPackage = membershipPackage;\r\n return memberpackageDetails;\r\n }\r\n //Find List of users..\r\n membershipPackage.MembershipProducts = membershipPackage.MembershipProducts.map(memType => {\r\n\r\n if (memType.MembershipType === \"Membership\") {\r\n memType.Users = [];\r\n\r\n memberpackageDetails.userslist.filter(x => x.membershipTypeID == memType.MembershipTypeID && x.notpartofPackage === false).map(u => {\r\n memType.Users.push(u);\r\n })\r\n }\r\n\r\n //Handle AddOns\r\n if (memType.MembershipType === \"AddOn\") {\r\n\r\n if (memMemberships.filter(x => x.MembershipTypeID == memType.MembershipTypeID).length > 0) {\r\n memType.Quantity = 1;\r\n memType.isRenewPackage = true;\r\n memType.LastMembershipExpiryDate = memMemberships.filter(x => x.MembershipTypeID == memType.MembershipTypeID)[0].MembershipExpiryDate;\r\n }\r\n else {\r\n memType.Quantity = 0;\r\n memType.isRenewPackage = false;\r\n }\r\n }\r\n\r\n return memType;\r\n })\r\n\r\n memberpackageDetails.membershipPackage = membershipPackage;\r\n return memberpackageDetails;\r\n\r\n },\r\n ApplyMembershipCoupon(membershipPackageProds, membershipCoupon, couponCode) {\r\n\r\n membershipPackageProds = membershipPackageProds.map(m => {\r\n\r\n if (!(m.MembershipType == \"AddOn\" && m.Quantity == 0) && !(m.MembershipType == \"Membership\" && m.Users.length == 0)) {\r\n\r\n let membershipTypeDiscount = membershipCoupon.MembershipTypes.find(x => x.MembershipTypeID == m.MembershipTypeID);\r\n\r\n\r\n var itemtax = 0;\r\n var itemTAmount = 0;\r\n var memTotalTax = m.TotalTax ? m.TotalTax : 0;\r\n var memSubTotal = m.SubTotal ? m.SubTotal : 0;\r\n\r\n if (membershipTypeDiscount) {\r\n\r\n m.CouponCodeExTax = 0;\r\n m.CouponCodeTax = 0;\r\n m.CouponCodeIncTax = 0;\r\n\r\n if (membershipTypeDiscount.hasOwnProperty('DollarDiscountExTax')) {\r\n\r\n if (m.TotalAmount >= membershipTypeDiscount.DollarDiscountIncTax && membershipTypeDiscount.DollarDiscountIncTax > 0) {\r\n\r\n m.CouponCodeExTax = membershipTypeDiscount.DollarDiscountExTax;\r\n m.CouponCodeTax = membershipTypeDiscount.DollarDiscountTax;\r\n m.CouponCodeIncTax = membershipTypeDiscount.DollarDiscountIncTax;\r\n\r\n itemTAmount = Math.round((memSubTotal - membershipTypeDiscount.DollarDiscountExTax) * 100) / 100;\r\n itemtax = Math.round((memTotalTax - m.CouponCodeTax) * 100) / 100;\r\n }\r\n else {\r\n\r\n itemTAmount = memSubTotal;\r\n itemtax = memTotalTax;\r\n }\r\n }\r\n else if (membershipTypeDiscount.hasOwnProperty('PercentageDiscount')) {\r\n\r\n if (membershipTypeDiscount.PercentageDiscount > 0) {\r\n\r\n m.CouponCodeExTax = parseFloat((Math.round((memSubTotal * ((membershipTypeDiscount.PercentageDiscount / 100))) * 100) / 100).toFixed(2));\r\n m.CouponCodeTax = Math.round((memTotalTax * (membershipTypeDiscount.PercentageDiscount / 100)) * 100) / 100;\r\n m.CouponCodeIncTax = Math.round((m.CouponCodeExTax + m.CouponCodeTax) * 100) / 100;\r\n\r\n itemTAmount = Math.round((memSubTotal - m.CouponCodeExTax) * 100) / 100;\r\n itemtax = Math.round((memTotalTax - m.CouponCodeTax) * 100) / 100;\r\n }\r\n else {\r\n\r\n itemTAmount = memSubTotal;\r\n itemtax = memTotalTax;\r\n }\r\n }\r\n\r\n m.ExtraDays = membershipTypeDiscount.ExtraDays ? membershipTypeDiscount.ExtraDays : 0;\r\n m.ExtraMonths = membershipTypeDiscount.ExtraMonths ? membershipTypeDiscount.ExtraMonths : 0;\r\n m.CouponCodeApplied = couponCode;\r\n\r\n if (!membershipTypeDiscount.hasOwnProperty('DollarDiscountExTax') && !membershipTypeDiscount.hasOwnProperty('PercentageDiscount')) {\r\n m.PriceAfterCoupon = m.SubTotal;\r\n m.TaxAfterCoupon = m.TotalTax;\r\n m.TotalAmountAfterCoupon = m.TotalAmount;\r\n }\r\n else {\r\n m.PriceAfterCoupon = itemTAmount;\r\n m.TaxAfterCoupon = itemtax;\r\n m.TotalAmountAfterCoupon = Math.round((itemTAmount + itemtax) * 100) / 100;\r\n }\r\n\r\n if (m.CouponCodeIncTax == 0 && (m.ExtraMonths != 0 || m.ExtraDays != 0)) {\r\n m.NoFinancialDis = true;\r\n }\r\n }\r\n }\r\n\r\n return m;\r\n })\r\n\r\n return membershipPackageProds;\r\n },\r\n MMBReturnProduct(index, product, booking) {\r\n return {\r\n ProductLineNo: index + 1,\r\n ProductID: product.ProductID,\r\n Quantity: product.Quantity > 0 ? -Math.abs(product.Quantity) : Math.abs(product.Quantity),\r\n LinePriceExTax: product.ProductLinePriceExclTax > 0 ? -Math.abs(product.ProductLinePriceExclTax) : Math.abs(product.ProductLinePriceExclTax),\r\n LinePriceTax: product.ProductLineTaxTax > 0 ? -Math.abs(product.ProductLineTaxTax) : Math.abs(product.ProductLineTaxTax),\r\n LinePriceIncTax: product.ProductLinePriceInclTax > 0 ? -Math.abs(product.ProductLinePriceInclTax) : Math.abs(product.ProductLinePriceInclTax),\r\n LinePaidExTax: product.ProductLinePriceExclTax > 0 ? -Math.abs(product.ProductLinePriceExclTax) : Math.abs(product.ProductLinePriceExclTax),\r\n LinePaidTax: product.ProductLineTaxTax > 0 ? -Math.abs(product.ProductLineTaxTax) : Math.abs(product.ProductLineTaxTax),\r\n LinePaidIncTax: product.ProductLinePriceInclTax > 0 ? -Math.abs(product.ProductLinePriceInclTax) : Math.abs(product.ProductLinePriceInclTax),\r\n TourEventID: booking.TourEventID,\r\n TourProductID: product.TourProductID,\r\n CostRateID: product.CostRateID,\r\n BookingID: booking.BookingID\r\n };\r\n },\r\n MMBReturnUniqueProduct(index, product, booking, actualQty, remainingQty) {\r\n\r\n let prodLinePriceExTax = (Math.abs(product.ProductLinePriceExclTax / actualQty) * remainingQty);\r\n let prodLineLinePriceTax = (Math.abs(product.ProductLineTaxTax / actualQty) * remainingQty);\r\n let prodLineIncTax = (Math.abs(product.ProductLinePriceInclTax / actualQty) * remainingQty);\r\n\r\n return {\r\n ProductLineNo: index + 1,\r\n ProductID: product.ProductID,\r\n Quantity: -Math.abs(remainingQty),\r\n LinePriceExTax: -Math.abs(prodLinePriceExTax),\r\n LinePriceTax: -Math.abs(prodLineLinePriceTax),\r\n LinePriceIncTax: -Math.abs(prodLineIncTax),\r\n LinePaidExTax: -Math.abs(prodLinePriceExTax),\r\n LinePaidTax: -Math.abs(prodLineLinePriceTax),\r\n LinePaidIncTax: -Math.abs(prodLineIncTax),\r\n TourEventID: booking.TourEventID,\r\n TourProductID: product.TourProductID,\r\n CostRateID: product.CostRateID,\r\n BookingID: booking.BookingID\r\n };\r\n },\r\n MMBReturnUniqueCoupinNonItems(ReturnCouponAppliedQty, newp, product, couponProd, index, trans) {\r\n\r\n if (ReturnCouponAppliedQty > 0) {\r\n\r\n newp.LinePriceExTax = -(Math.abs(product.ProductLinePriceExclTax / Math.abs(product.Quantity)) * couponProd.TimesUsed);\r\n newp.LinePriceTax = -(Math.abs(product.ProductLineTaxTax / Math.abs(product.Quantity)) * couponProd.TimesUsed);\r\n newp.LinePriceIncTax = -(Math.abs(product.ProductLinePriceInclTax / Math.abs(product.Quantity)) * couponProd.TimesUsed);\r\n newp.LinePaidExTax = -(Math.abs(product.ProductLinePriceExclTax / Math.abs(product.Quantity)) * couponProd.TimesUsed);\r\n newp.LinePaidTax = -(Math.abs(product.ProductLineTaxTax / Math.abs(product.Quantity)) * couponProd.TimesUsed);\r\n newp.LinePaidIncTax = -(Math.abs(product.ProductLinePriceInclTax / Math.abs(product.Quantity)) * couponProd.TimesUsed);\r\n trans.Products.push(newp);\r\n\r\n if (ReturnCouponAppliedQty > 0) {\r\n\r\n let returnRemainingnUniProds = Object.assign({}, newp);\r\n\r\n returnRemainingnUniProds.LinePriceExTax = -(Math.abs(product.ProductLinePriceExclTax / Math.abs(product.Quantity)) * ReturnCouponAppliedQty);\r\n returnRemainingnUniProds.LinePriceTax = -(Math.abs(product.ProductLineTaxTax / Math.abs(product.Quantity)) * ReturnCouponAppliedQty);\r\n returnRemainingnUniProds.LinePriceIncTax = -(Math.abs(product.ProductLinePriceInclTax / Math.abs(product.Quantity)) * ReturnCouponAppliedQty);\r\n returnRemainingnUniProds.LinePaidExTax = -(Math.abs(product.ProductLinePriceExclTax / Math.abs(product.Quantity)) * ReturnCouponAppliedQty);\r\n returnRemainingnUniProds.LinePaidTax = -(Math.abs(product.ProductLineTaxTax / Math.abs(product.Quantity)) * ReturnCouponAppliedQty);\r\n returnRemainingnUniProds.LinePaidIncTax = -(Math.abs(product.ProductLinePriceInclTax / Math.abs(product.Quantity)) * ReturnCouponAppliedQty);\r\n returnRemainingnUniProds.ProductLineNo = index + 1;\r\n returnRemainingnUniProds.Quantity = -Math.abs(ReturnCouponAppliedQty);\r\n returnRemainingnUniProds.CouponCodeApplied = null;\r\n\r\n index++;\r\n trans.Products.push(returnRemainingnUniProds);\r\n }\r\n\r\n }\r\n return index;\r\n },\r\n GetMMBModifyProduct(index, product, booking) {\r\n return {\r\n ProductLineNo: index + 1,\r\n ProductID: product.ProductID,\r\n Quantity: -Math.abs(product.Quantity - product.newQuantity),\r\n LinePriceExTax: -Math.round((Math.abs((product.ProductLinePriceExclTax / (product.Quantity)) * (product.Quantity - product.newQuantity))) * 100) / 100,\r\n LinePriceTax: -Math.round((Math.abs((product.ProductLineTaxTax / (product.Quantity)) * (product.Quantity - product.newQuantity))) * 100) / 100,\r\n LinePriceIncTax: -Math.round((Math.abs((product.ProductLinePriceInclTax / (product.Quantity)) * (product.Quantity - product.newQuantity))) * 100) / 100,\r\n LinePaidExTax: -Math.round((Math.abs((product.ProductLinePriceExclTax / (product.Quantity)) * (product.Quantity - product.newQuantity))) * 100) / 100,\r\n LinePaidTax: -Math.round((Math.abs((product.ProductLineTaxTax / (product.Quantity)) * (product.Quantity - product.newQuantity))) * 100) / 100,\r\n LinePaidIncTax: -Math.round((Math.abs((product.ProductLinePriceInclTax / (product.Quantity)) * (product.Quantity - product.newQuantity))) * 100) / 100,\r\n TourEventID: booking.TourEventID,\r\n TourProductID: product.TourProductID,\r\n CostRateID: product.CostRateID,\r\n BookingID: booking.BookingID,\r\n BookingStatus: \"Modify Tickets\"\r\n };\r\n },\r\n AddBookingUDFs(bookingUDFS, trans, newp, bkngID) {\r\n\r\n if (bookingUDFS && bookingUDFS.bookingUDFs.filter(x => x.BookingTypeID === bkngID).length > 0 && trans.Products.length >= 0) {\r\n let bkngUdfs = [];\r\n\r\n bookingUDFS.bookingUDFs.filter(x => x.BookingTypeID === bkngID).map(booking => {\r\n\r\n if (booking.UDFCategories && booking.UDFCategories.length > 0) {\r\n booking.UDFCategories.map(udfCategories => {\r\n\r\n if (udfCategories.UserDefinedFields && udfCategories.UserDefinedFields.length > 0) {\r\n udfCategories.UserDefinedFields.filter(x => x.toureventID === newp.TourEventID && (x.Value.length > 0 || x.Value === true)).map(UDF => {\r\n\r\n let val = UDF.UDFType !== \"Bit\" ? UDF.Value : UDF.Value === true ? 1 : 0;\r\n let userdefine = { \"UDFName\": UDF.UDFName, \"UDFValue\": val };\r\n bkngUdfs.push(userdefine);\r\n });\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n });\r\n\r\n if (bkngUdfs && bkngUdfs.length > 0) {\r\n newp.BookingUDFs = bkngUdfs;\r\n }\r\n }\r\n },\r\n getOrderProductPrice(product) {\r\n return ShowOrderItemPriceAs.toLowerCase() == \"inctax\" ? product.PriceIncTax : product.PriceExTax\r\n },\r\n IsRequiredOptionsSelectedForOrderItem(Product) {\r\n if (Product.Options && Product.Options.length > 0) {\r\n return Product.Options.every(option => {\r\n if (option.IsRequired == false || option.Products.find(x => x.IsSelected) != undefined) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n })\r\n } else {\r\n return true;\r\n }\r\n },\r\n getOrderProductsTotalPrice(foodproducts) {\r\n let amount = {\r\n price: 0,\r\n subtotal: 0,\r\n tax: 0,\r\n total: 0\r\n }\r\n if (foodproducts && foodproducts.length > 0) {\r\n foodproducts.forEach(p => {\r\n let pPriceIncTax = p.PriceIncTax;\r\n let pOptionPriceIncTax = 0;\r\n let pPriceExTax = p.PriceExTax;\r\n let pOptionPriceExTax = 0;\r\n let pPriceTax = p.PriceTax;\r\n let pOptionPriceTax = 0;\r\n\r\n if (p.Options && p.Options.length > 0) {\r\n p.Options.forEach(option => {\r\n if (option.Products && option.Products.length > 0) {\r\n option.Products.filter(p => p.IsSelected).forEach(p => {\r\n pOptionPriceIncTax += p.PriceIncTax;\r\n pOptionPriceExTax += p.PriceExTax;\r\n pOptionPriceTax += p.PriceTax;\r\n });\r\n }\r\n });\r\n }\r\n amount.price += (pPriceExTax + pOptionPriceExTax);\r\n amount.subtotal += (pPriceExTax + pOptionPriceExTax) * p.Quantity;\r\n amount.tax += (pPriceTax + pOptionPriceTax) * p.Quantity;\r\n amount.total += (pPriceIncTax + pOptionPriceIncTax) * p.Quantity;\r\n });\r\n }\r\n return amount;\r\n },\r\n GetMembershipPackageFromApi(coupons, membershipID) {\r\n\r\n let membershipPackage = null;\r\n if (coupons && coupons.length > 0) {\r\n\r\n membershipPackage === null && coupons.map(coupon => {\r\n\r\n if (membershipPackage === null && coupon.MembershipPackages.filter(x => x.MembershipPackageID === membershipID).length > 0) {\r\n membershipPackage = coupon.MembershipPackages.filter(x => x.MembershipPackageID === membershipID)[0];\r\n }\r\n });\r\n\r\n return membershipPackage;\r\n }\r\n },\r\n CalculateMultiMerchantTotal(events, gatickets, membershippackage, giftcards, donations, transactionfee, cashless, donationProducts) {\r\n\r\n let totalObj = {\r\n merchant1Total: 0,\r\n merchant2Total: 0\r\n };\r\n\r\n ///////////////////////// Merchant 1 Calculation /////////////////////////////////////\r\n\r\n if (events && events.length > 0) {\r\n\r\n events.filter(x => x.UseAlternateMerchantOnline === false).map(e => {\r\n\r\n e.TourProducts.map(prods => {\r\n totalObj.merchant1Total += this.IsNotFullPay(e.PaymentOption) ? prods.ProductSelectedTotalAmount : prods.ProductTotalAmount;\r\n // totalObj.merchant1Total += prods.ProductTotalAmount;\r\n })\r\n\r\n e.CouponItems.map(coupon => {\r\n totalObj.merchant1Total -= coupon.TotalAmount;\r\n })\r\n });\r\n }\r\n\r\n if (gatickets && gatickets.length > 0) {\r\n totalObj.merchant1Total += gatickets.filter(x => x.UseAlternateMerchantOnline === false).map(({ TotalAmount }) => TotalAmount).reduce((sum, i) => sum + i, 0)\r\n }\r\n\r\n if (membershippackage && membershippackage.length > 0 && membershippackage[0].UseAlternateMerchantOnline === false) {\r\n\r\n membershippackage[0].MembershipProducts.map(m => {\r\n\r\n if (m.hasOwnProperty('CouponCodeApplied') && m.CouponCodeApplied.length > 0) {\r\n totalObj.merchant1Total += m.TotalAmountAfterCoupon ? m.TotalAmountAfterCoupon : 0;\r\n }\r\n else {\r\n if ((m.Users && m.Users.length > 0) || (m.MembershipType === 'AddOn')) {\r\n totalObj.merchant1Total += m.TotalAmount ? m.TotalAmount : 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n if (giftcards && giftcards.length > 0) {\r\n totalObj.merchant1Total += giftcards.filter(x => x.UseAlternateMerchantOnline === false).map(({ CartTotalAmount }) => CartTotalAmount).reduce((sum, i) => sum + i, 0)\r\n }\r\n\r\n if (donations && donations.hasOwnProperty('isdonationApplied') && donations.isdonationApplied && !donations.UseAlternateMerchantOnline) {\r\n totalObj.merchant1Total += parseFloat(donations.price);\r\n }\r\n\r\n if (transactionfee && transactionfee.hasOwnProperty('ProductID') && transactionfee.UseAlternateMerchantOnline === false) {\r\n let transactionFee = genfunction.TransactionFee(events, donations, transactionfee, cashless, membershippackage, gatickets, giftcards, null, donationProducts)\r\n if (transactionFee) {\r\n totalObj.merchant1Total += Math.round(parseFloat(transactionFee) * 100) / 100;\r\n\r\n }\r\n }\r\n\r\n if (donationProducts && donationProducts.length > 0) {\r\n totalObj.merchant1Total += donationProducts.filter(x => x.UseAlternateMerchantOnline === false).map(({ Amount }) => Amount).reduce((sum, i) => sum + i, 0)\r\n }\r\n\r\n\r\n ///////////////////////// Merchant 1 Calculation End ////////////////////////////////////\r\n\r\n\r\n ///////////////////////// Merchant 2 Calculation //////////////////////////////////////\r\n if (events && events.length > 0) {\r\n\r\n events.filter(x => x.UseAlternateMerchantOnline === true).map(e => {\r\n\r\n e.TourProducts.map(prods => {\r\n totalObj.merchant2Total += this.IsNotFullPay(e.PaymentOption) ? prods.ProductSelectedTotalAmount : prods.ProductTotalAmount;\r\n })\r\n\r\n e.CouponItems.map(coupon => {\r\n totalObj.merchant2Total -= coupon.TotalAmount;\r\n })\r\n });\r\n\r\n }\r\n\r\n if (gatickets && gatickets.length > 0) {\r\n totalObj.merchant2Total += gatickets.filter(x => x.UseAlternateMerchantOnline === true).map(({ TotalAmount }) => TotalAmount).reduce((sum, i) => sum + i, 0)\r\n }\r\n\r\n if (membershippackage && membershippackage.length > 0 && membershippackage[0].UseAlternateMerchantOnline === true) {\r\n\r\n membershippackage[0].MembershipProducts.map(m => {\r\n\r\n if (m.hasOwnProperty('CouponCodeApplied') && m.CouponCodeApplied.length > 0) {\r\n totalObj.merchant2Total += m.TotalAmountAfterCoupon ? m.TotalAmountAfterCoupon : 0;\r\n }\r\n else {\r\n if ((m.Users && m.Users.length > 0) || (m.MembershipType === 'AddOn')) {\r\n totalObj.merchant2Total += m.TotalAmount ? m.TotalAmount : 0;\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n if (giftcards && giftcards.length > 0) {\r\n totalObj.merchant2Total += giftcards.filter(x => x.UseAlternateMerchantOnline === true).map(({ CartTotalAmount }) => CartTotalAmount).reduce((sum, i) => sum + i, 0)\r\n }\r\n\r\n if (donations && donations.hasOwnProperty('isdonationApplied') && donations.isdonationApplied && donations.UseAlternateMerchantOnline) {\r\n totalObj.merchant2Total += parseFloat(donations.price);\r\n }\r\n\r\n if (transactionfee && transactionfee.hasOwnProperty('ProductID') && transactionfee.UseAlternateMerchantOnline === true) {\r\n\r\n let transactionFee = genfunction.TransactionFee(events, donations, transactionfee, cashless, membershippackage, gatickets, giftcards, null, donationProducts)\r\n if (transactionFee) {\r\n totalObj.merchant2Total += Math.round(parseFloat(transactionFee) * 100) / 100;\r\n }\r\n }\r\n\r\n if (donationProducts && donationProducts.length > 0) {\r\n totalObj.merchant2Total += donationProducts.filter(x => x.UseAlternateMerchantOnline === true).map(({ Amount }) => Amount).reduce((sum, i) => sum + i, 0)\r\n }\r\n\r\n ///////////////////////// Merchant 2 Calculation End ////////////////////////////////////\r\n\r\n ///////////////////////// Redeemed Giftcard Amount ////////////////////////////////////\r\n totalObj.merchant1Total = this.Rounded(totalObj.merchant1Total);\r\n totalObj.merchant2Total = this.Rounded(totalObj.merchant2Total);\r\n\r\n if (cashless && cashless.length > 0) {\r\n\r\n if (totalObj.merchant1Total > 0) {\r\n totalObj.merchant1Total -= cashless.map(({ HoldAmount }) => HoldAmount).reduce((sum, i) => sum + i, 0);\r\n }\r\n else if (totalObj.merchant2Total > 0) {\r\n totalObj.merchant2Total -= cashless.map(({ HoldAmount }) => HoldAmount).reduce((sum, i) => sum + i, 0);\r\n }\r\n\r\n\r\n\r\n if (totalObj.merchant1Total < 0) {\r\n\r\n totalObj.merchant2Total = totalObj.merchant2Total - Math.abs(totalObj.merchant1Total);\r\n totalObj.merchant1Total = 0;\r\n\r\n if (totalObj.merchant2Total < 0) {\r\n totalObj.merchant2Total = 0;\r\n }\r\n }\r\n }\r\n\r\n ///////////////////////// Redeemed Giftcard End ////////////////////////////////////\r\n\r\n return totalObj;\r\n },\r\n CalculateEventFlexibleAmount(event, paymentOption, amountSelected) {\r\n\r\n event.PaymentOption = paymentOption;\r\n event.TotalSelectedAmount = amountSelected;\r\n\r\n event.TicketSelectedAmount = 0;\r\n event.TaxSelectedAmount = 0;\r\n\r\n if (event.PaymentOption === \"FullPay\") {\r\n event.TourProducts.forEach(product => {\r\n\r\n var itemp = product.ProductAmount;\r\n var itemtax = product.ProductTaxAmount;\r\n\r\n product.ProductSelectedAmount = itemp;\r\n product.ProductSelectedTaxAmount = itemtax;\r\n product.ProductSelectedTotalAmount = product.ProductSelectedAmount + product.ProductSelectedTaxAmount;\r\n\r\n event.TicketSelectedAmount += itemp;\r\n event.TaxSelectedAmount += itemtax;\r\n\r\n\r\n });\r\n }\r\n else if (event.PaymentOption === \"MinimumPay\") {\r\n event.TourProducts.forEach(product => {\r\n\r\n var itemp = (product.ProductAmount * product.MinDepositPercent) / 100;\r\n var itemtax = (product.ProductTaxAmount * product.MinDepositPercent) / 100;\r\n\r\n // itemp = Math.round(itemp * 100) / 100;\r\n // itemtax = Math.round(itemtax * 100) / 100;\r\n\r\n product.ProductSelectedAmount = Math.round(itemp * 100) / 100;\r\n product.ProductSelectedTaxAmount = Math.round(itemtax * 100) / 100;\r\n product.ProductSelectedTotalAmount = Math.round((itemp + itemtax) * 100) / 100;\r\n\r\n event.TicketSelectedAmount += Math.round(itemp * 100) / 100;;\r\n event.TaxSelectedAmount += Math.round(itemtax * 100) / 100;\r\n\r\n });\r\n }\r\n else if (event.PaymentOption === \"OtherPay\") {\r\n let remainingAmount = event.TotalSelectedAmount;\r\n event.TourProducts.forEach(product => {\r\n if (product.PriceMatrix && product.PriceMatrix.length > 0) {\r\n\r\n var itemp = 0;\r\n var itemtax = 0;\r\n var itemTotalAmount = 0;\r\n\r\n if (remainingAmount > product.ProductTotalAmount) {\r\n itemTotalAmount = Math.round(product.ProductTotalAmount * 100) / 100;\r\n remainingAmount -= itemTotalAmount;\r\n }\r\n else {\r\n itemTotalAmount = Math.round(remainingAmount * 100) / 100;;\r\n remainingAmount = 0;\r\n\r\n }\r\n\r\n\r\n product.PriceMatrix[0].Taxes.forEach(tax => {\r\n\r\n itemp = Math.round((itemTotalAmount / ((tax.TaxPercentage / 100) + 1)) * 100) / 100;\r\n itemtax = Math.round((itemTotalAmount - itemp) * 100) / 100;\r\n\r\n\r\n });\r\n\r\n product.ProductSelectedAmount = itemp;\r\n product.ProductSelectedTaxAmount = itemtax;\r\n product.ProductSelectedTotalAmount = itemTotalAmount;\r\n\r\n event.TicketSelectedAmount += itemp;\r\n event.TaxSelectedAmount += itemtax;\r\n\r\n }\r\n\r\n });\r\n }\r\n return event;\r\n },\r\n\r\n GetProductsTotalPrice(products) {\r\n let amount = {\r\n subtotal: 0,\r\n tax: 0,\r\n total: 0\r\n }\r\n if (products && products.length > 0) {\r\n products.forEach(p => {\r\n\r\n amount.subtotal += this.IsNotFullPay(p.PaymentOption) ? p.TicketSelectedAmount : p.TicketAmount;\r\n amount.tax += this.IsNotFullPay(p.PaymentOption) ? p.TaxSelectedAmount : p.TaxAmount;\r\n amount.total += this.IsNotFullPay(p.PaymentOption) ? p.TotalSelectedAmount : p.TotalAmount;\r\n });\r\n }\r\n return amount;\r\n },\r\n\r\n IsNotNullOrEmptyOrUndefined(item) {\r\n return (item && item.toString().trim().length > 0 ? true : false);\r\n },\r\n\r\n IsEditEvent(bookingTypes, event) {\r\n\r\n const bookType = bookingTypes.filter(x => x.BookingTypeID === event.BookingTypeID)[0];\r\n\r\n if (bookType && (this.IsShowPartPaymentSelection(event, bookType) || bookType.ShowTourProductsBasedOnGroupSize)) {\r\n return true\r\n }\r\n return false;\r\n\r\n },\r\n\r\n IsOrganization(events) {\r\n\r\n if (events && events.length > 0) {\r\n let eventIndex = events.findIndex(x => x.OrganizationID && x.OrganizationID.toString().trim().length > 0);\r\n\r\n if (eventIndex >= 0)\r\n return true;\r\n\r\n }\r\n return false;\r\n },\r\n\r\n IsShowPartPaymentSelection(event, bkngType, groupSize) {\r\n\r\n let isShowPartPaymentSelection = false;\r\n\r\n if (event && event.hasOwnProperty(\"TourProducts\") && event.BookingTypeID === bkngType.BookingTypeID) {\r\n\r\n if (genfunction.IsNotFullPay(event.PaymentOption)) {\r\n return true;\r\n }\r\n\r\n if (event.TourProducts.filter(p => p.AvailableOnline && p.PriceMatrix !== undefined && p.PriceMatrix.length > 0 && p.TourProductID !== bkngType.ChaperoneTourProductID).length > 0) {\r\n\r\n event.TourProducts.filter(p => p.AvailableOnline && p.PriceMatrix !== undefined && p.PriceMatrix.length > 0 && p.TourProductID !== bkngType.ChaperoneTourProductID\r\n && (this.IsNotNullOrEmptyOrUndefined(groupSize) && p.AffectsCapacity ? p.LimitDisplayOnGroupSize && p.GroupSize === groupSize : true))\r\n\r\n .map((product) => {\r\n if (product.MinDepositPercent > 0.00 && product.MinDepositPercent < 100.00)\r\n isShowPartPaymentSelection = true;\r\n })\r\n }\r\n }\r\n\r\n return isShowPartPaymentSelection;\r\n\r\n },\r\n\r\n IsNotFullPay(paymentOption) {\r\n return this.IsNotNullOrEmptyOrUndefined(paymentOption) && paymentOption !== \"FullPay\" ? true : false\r\n },\r\n IsNullOrUndefineReturnZero(amount) {\r\n return amount === undefined || amount === null || amount === '' ? 0 : amount\r\n },\r\n\r\n MinimumDepositCalculation(event, tourEventID, chaperoneTourProductID) {\r\n let MinDeposit = 0;\r\n\r\n if (event && event.hasOwnProperty(\"TourProducts\") && event.TourEventID === tourEventID && event.TourProducts.filter(x => x.Quantity !== 0 && x.TourProductID !== chaperoneTourProductID).length > 0)\r\n event.TourProducts.filter(x => x.Quantity !== 0 && event.TourEventID === tourEventID && x.TourProductID !== chaperoneTourProductID).map((product) => {\r\n MinDeposit += (product.MinDepositPercent * product.ProductTotalAmount) / 100;\r\n })\r\n\r\n return Math.round(MinDeposit * 100) / 100;\r\n },\r\n\r\n CalculateAmountSelectedForMembers(events, bookingTypes) {\r\n\r\n events.forEach(event => {\r\n if (genfunction.IsNotFullPay(event.PaymentOption)) {\r\n\r\n if (event.PaymentOption === \"MinimumPay\") {\r\n\r\n let ChaperoneTourProductID = bookingTypes && bookingTypes.length > 0 ? bookingTypes.filter(x => x.BookingTypeID === event.BookingTypeID)[0].ChaperoneTourProductID : null;\r\n event.TotalSelectedAmount = this.MinimumDepositCalculation(event, event.TourEventID, ChaperoneTourProductID);\r\n\r\n }\r\n else if (event.PaymentOption === \"OtherPay\") {\r\n\r\n event.OtherAmount = this.IsNotNullOrEmptyOrUndefined(event.OtherAmount) ? event.OtherAmount : event.TotalSelectedAmount;\r\n\r\n let ChaperoneTourProductID = bookingTypes && bookingTypes.length > 0 ? bookingTypes.filter(x => x.BookingTypeID === event.BookingTypeID)[0].ChaperoneTourProductID : null;\r\n let MinDeposit = this.MinimumDepositCalculation(event, event.TourEventID, ChaperoneTourProductID);\r\n\r\n event.TotalSelectedAmount = event.TotalSelectedAmount >= event.TotalAmount ? event.TotalAmount :\r\n (event.OtherAmount < MinDeposit ? MinDeposit : event.OtherAmount);\r\n\r\n }\r\n this.CalculateEventFlexibleAmount(event, event.PaymentOption, event.TotalSelectedAmount);\r\n }\r\n });\r\n },\r\n\r\n ConvertBookingtoTickets(booking) {\r\n let index = 0;\r\n let bookingTickets = {};\r\n\r\n bookingTickets.BookingID = booking.BookingID;\r\n bookingTickets.NodeNo = nodeNo;\r\n bookingTickets.ProcessType = \"Ticket\";\r\n bookingTickets.Tickets = [];\r\n\r\n booking.BookingProducts.filter(x => x.TicketsPrinted < x.Quantity && x.TicketCollectionRequired === false).forEach(tickets => {\r\n let newp = {\r\n TicketLineNo: index + 1,\r\n ProductID: tickets.ProductID,\r\n TourProductID: tickets.TourProductID,\r\n Quantity: tickets.Quantity,\r\n UnitPriceExTax: tickets.ProductLinePriceExclTax,\r\n UnitPriceTax: tickets.ProductLineTaxTax,\r\n UnitPriceIncTax: tickets.ProductLinePriceInclTax,\r\n };\r\n\r\n bookingTickets.Tickets.push(newp);\r\n index++;\r\n });\r\n return bookingTickets;\r\n\r\n },\r\n\r\n AddCashlessAndAdditionalPayment(cashless, additionalPayment) {\r\n\r\n let cashlesstotal = 0;\r\n\r\n if (cashless && cashless.length > 0) {\r\n cashlesstotal = cashless ? cashless.map(({ HoldAmount }) => HoldAmount).reduce((sum, i) => sum + i, 0) : 0;\r\n }\r\n\r\n return this.Rounded(additionalPayment + cashlesstotal);\r\n },\r\n\r\n Rounded(value) {\r\n return Math.round(value * 100) / 100;\r\n },\r\n\r\n TransactionFeeForPartialPayment(transactionfee, enteredAmountToPay, cashlesstotal) {\r\n\r\n let tFee = this.GetTransactionFeeForPartialPayment(transactionfee, enteredAmountToPay, cashlesstotal);\r\n\r\n if (tFee > 0 && (!transactionfee.Taxes[0].TaxIncluded)) {\r\n tFee += this.ApplyTransactionFeeTax(transactionfee, tFee);\r\n }\r\n\r\n return tFee;\r\n },\r\n GetTransactionFeeForPartialPayment(transactionfee, enteredAmountToPay, cashlesstotal) {\r\n let transFee = 0;\r\n\r\n if (transactionfee && transactionfee.hasOwnProperty('ProductID')) {\r\n\r\n if (transactionfee.Price > 0) {\r\n if (!transactionfee.PriceIsAPercentage) {\r\n\r\n transFee = ((enteredAmountToPay - cashlesstotal) || cashlesstotal > 0) ?\r\n parseFloat(transactionfee.Price) : 0;\r\n\r\n }\r\n else {\r\n transFee = this.Rounded((((enteredAmountToPay - cashlesstotal).toFixed(2)) * transactionfee.Price) / 100);\r\n }\r\n\r\n return transFee;\r\n }\r\n }\r\n\r\n return 0;\r\n\r\n },\r\n\r\n GetValueFromCountryAndState(countryandstates, country, columnName) {\r\n if (country != \"\" && countryandstates && countryandstates.length > 0 && countryandstates.filter(x => x.Country == country).length > 0) {\r\n return countryandstates.filter(x => x.Country == country)[0][columnName];\r\n }\r\n\r\n if (columnName === \"PostalCodeName\")\r\n return \"ZIP Code\";\r\n else if (columnName === \"CityText\")\r\n return \"City\";\r\n else if (columnName === \"OrganizationText\")\r\n return \"Organization\";\r\n else return true;\r\n\r\n },\r\n\r\n IsObjectNotNullOrEmptyOrUndefined(item) {\r\n return item !== null && item !== undefined && item.length > 0 ? true : false;\r\n\r\n },\r\n CalculateMultiMerchantTotalForMMB(event, cashless, transactionfee, enteredAmountToPay, booking) {\r\n let totalObj = {\r\n merchant1Total: 0,\r\n merchant2Total: 0\r\n };\r\n\r\n let isUseAlternateMerchant = booking && booking.hasOwnProperty('BookingID') ? booking.UseAlternateMerchantOnline : null;\r\n let cashlesstotal = cashless.map(({ HoldAmount }) => HoldAmount).reduce((sum, i) => sum + i, 0);\r\n\r\n ///////////////////////// Merchant 1 Calculation /////////////////////////////////////\r\n\r\n if ((this.IsObjectNotNullOrEmptyOrUndefined(event) && event[0].UseAlternateMerchantOnline === false) || isUseAlternateMerchant === false) {\r\n\r\n totalObj.merchant1Total += enteredAmountToPay;\r\n }\r\n\r\n if (transactionfee && transactionfee.hasOwnProperty('ProductID') && transactionfee.UseAlternateMerchantOnline === false) {\r\n let transactionFee = genfunction.TransactionFeeForPartialPayment(transactionfee, enteredAmountToPay, cashlesstotal);\r\n if (transactionFee) {\r\n totalObj.merchant1Total += this.Rounded(parseFloat(transactionFee));\r\n\r\n }\r\n }\r\n\r\n ///////////////////////// Merchant 1 Calculation End ////////////////////////////////////\r\n\r\n\r\n ///////////////////////// Merchant 2 Calculation //////////////////////////////////////\r\n\r\n if ((this.IsObjectNotNullOrEmptyOrUndefined(event) && event[0].UseAlternateMerchantOnline === true) || isUseAlternateMerchant === true) {\r\n\r\n totalObj.merchant2Total += enteredAmountToPay;\r\n }\r\n\r\n if (transactionfee && transactionfee.hasOwnProperty('ProductID') && transactionfee.UseAlternateMerchantOnline === true) {\r\n\r\n let transactionFee = this.TransactionFeeForPartialPayment(transactionfee, enteredAmountToPay, cashlesstotal);\r\n if (transactionFee) {\r\n totalObj.merchant2Total += this.Rounded(parseFloat(transactionFee));\r\n }\r\n }\r\n\r\n ///////////////////////// Merchant 2 Calculation End ////////////////////////////////////\r\n\r\n ///////////////////////// Redeemed Giftcard Amount ////////////////////////////////////\r\n totalObj.merchant1Total = this.Rounded(totalObj.merchant1Total);\r\n totalObj.merchant2Total = this.Rounded(totalObj.merchant2Total);\r\n\r\n if (cashless && cashless.length > 0) {\r\n\r\n if (totalObj.merchant1Total > 0) {\r\n totalObj.merchant1Total -= cashless.map(({ HoldAmount }) => HoldAmount).reduce((sum, i) => sum + i, 0);\r\n }\r\n else if (totalObj.merchant2Total > 0) {\r\n totalObj.merchant2Total -= cashless.map(({ HoldAmount }) => HoldAmount).reduce((sum, i) => sum + i, 0);\r\n }\r\n\r\n\r\n\r\n if (totalObj.merchant1Total < 0) {\r\n\r\n totalObj.merchant2Total = totalObj.merchant2Total - Math.abs(totalObj.merchant1Total);\r\n totalObj.merchant1Total = 0;\r\n\r\n if (totalObj.merchant2Total < 0) {\r\n totalObj.merchant2Total = 0;\r\n }\r\n }\r\n }\r\n\r\n ///////////////////////// Redeemed Giftcard End ////////////////////////////////////\r\n\r\n return totalObj;\r\n\r\n }\r\n\r\n}\r\n\r\n","import { CouponManager, genfunction } from \"helpers\";\r\n\r\nconst { DefaultCostRateID } = window['runConfig'];\r\n\r\nexport default {\r\n\r\n ApplyCouponsToEvents(events, coupons, TourProducts, couponAlreadyApply, couponCode) {\r\n\r\n let index = 0;\r\n coupons.forEach(coupon => {\r\n\r\n let applyDisProdID = coupon.TourProducts && coupon.TourProducts.length > 0 ? coupon.TourProducts[0].ApplyDiscountToTourProductID : 0;\r\n\r\n let tourProd = TourProducts.find(x => x.TourProductID == applyDisProdID);\r\n\r\n events.filter(e => e.PaymentOption ? e.PaymentOption === \"FullPay\" || e.PaymentOption === \"MinimumPay\" : true).forEach(event => {\r\n\r\n if (event.CouponItems.length < 1) {\r\n event.CouponItems = [];\r\n }\r\n else {\r\n if (coupon.RequireUniqueCouponCode) {\r\n\r\n let sum = 0;\r\n event.CouponItems.forEach(obj => {\r\n if (obj.isUniqueCoupon)\r\n sum += obj.Quantity;\r\n })\r\n\r\n coupon.MaxProductsLimit += sum;\r\n\r\n }\r\n\r\n event.CouponItems = event.CouponItems.filter(x => x.CouponID != coupon.CouponID);\r\n }\r\n\r\n let eventProds = this.SortProductsPriceWise(event.TourProducts);\r\n\r\n eventProds.forEach(product => {\r\n\r\n var prod = coupon.TourProducts.find(x => x.TourProductID == product.TourProductID);\r\n\r\n if (prod) {\r\n\r\n let couponObj = {\r\n\r\n CouponID: coupon.CouponID,\r\n CouponCode: coupon.CouponCode,\r\n ApplyDiscountProductID: tourProd.PriceMatrix ? tourProd.PriceMatrix[0].ProductID : 0,\r\n ApplyDiscountTourProductID: tourProd.TourProductID,\r\n ApplyDiscountTourProductName: tourProd.TourProductName,\r\n TourEventID: event.TourEventID,\r\n TourProductID: product.TourProductID,\r\n TourProductName: product.TourProductName,\r\n UniqueCouponCode: coupon.RequireUniqueCouponCode ? couponCode : coupon.CouponCode,\r\n isUniqueCoupon: coupon.RequireUniqueCouponCode ? true : false,\r\n Quantity: product.Quantity,\r\n CouponHoldRef: null,\r\n ProdQuantity: product.Quantity\r\n }\r\n\r\n couponObj.isPercentage = prod.hasOwnProperty(\"PercentageDiscount\") ? true : false;\r\n couponObj.Discount = prod.hasOwnProperty(\"PercentageDiscount\") ? genfunction.IsNullOrUndefineReturnZero(prod.PercentageDiscount) : genfunction.IsNullOrUndefineReturnZero(prod.DollarDiscount);\r\n\r\n\r\n let ProductAmount = genfunction.IsNotFullPay(event.PaymentOption) ? product.ProductSelectedAmount : product.ProductAmount;\r\n let ProductTaxAmount = genfunction.IsNotFullPay(event.PaymentOption) ? product.ProductSelectedTaxAmount : product.ProductTaxAmount;\r\n\r\n if (coupon.RequireUniqueCouponCode) {\r\n\r\n if (coupon.MaxProductsLimit <= 0) {\r\n return;\r\n }\r\n\r\n couponObj.CouponHoldRef = coupon.CouponHoldRef;\r\n couponObj.Quantity = product.Quantity <= coupon.MaxProductsLimit ? product.Quantity : coupon.MaxProductsLimit;\r\n couponObj.TicketAmount = couponObj.isPercentage ? Math.round(CouponManager.CalculateTicketOddQuantities(ProductAmount / product.Quantity, couponObj.Quantity, couponObj.Discount, product, event.PaymentOption) * 100) / 100 : Math.round(CouponManager.CalculateDollarTicketPrice(ProductAmount, prod.DollarDiscount, couponObj.Quantity, product, event.PaymentOption) * 100) / 100;\r\n couponObj.TicketTax = couponObj.isPercentage ? Math.round(CouponManager.CalculateTaxOddQuantities(ProductTaxAmount / product.Quantity, couponObj.Quantity, couponObj.Discount, product, event.PaymentOption) * 100) / 100 : Math.round(CouponManager.CalculateDollarTicketTax(couponObj.TicketAmount, prod.DollarDiscount * couponObj.Quantity, couponObj.Quantity, product, event.PaymentOption) * 100) / 100;\r\n\r\n\r\n coupon.MaxProductsLimit -= couponObj.Quantity;\r\n }\r\n else {\r\n couponObj.TicketAmount = couponObj.isPercentage ? Math.round(ProductAmount * (couponObj.Discount / 100) * 100) / 100 : Math.round(CouponManager.CalculateDollarTicketPrice(ProductAmount, genfunction.IsNullOrUndefineReturnZero(prod.DollarDiscount), product.Quantity, product, event.PaymentOption) * 100) / 100;\r\n couponObj.TicketTax = couponObj.isPercentage ? Math.round(ProductTaxAmount * (couponObj.Discount / 100) * 100) / 100 : Math.round(CouponManager.CalculateDollarTicketTax(couponObj.TicketAmount, genfunction.IsNullOrUndefineReturnZero(prod.DollarDiscount) * product.Quantity, couponObj.Quantity, product, event.PaymentOption) * 100) / 100;\r\n }\r\n\r\n\r\n couponObj.TotalAmount = couponObj.TicketAmount + couponObj.TicketTax;\r\n this.OnePennyDifference(product, couponObj, event.PaymentOption);\r\n\r\n let itemIndex = event.CouponItems.findIndex(x => x.TourProductID == product.TourProductID &&\r\n (genfunction.IsNotFullPay(event.PaymentOption) ? x.TotalSelectedAmount : x.TotalAmount) < couponObj.TotalAmount);\r\n\r\n if (itemIndex >= 0) {\r\n event.CouponItems[itemIndex] = couponObj;\r\n\r\n }\r\n\r\n else {\r\n\r\n if (event.CouponItems.find(x => x.TourProductID == product.TourProductID &&\r\n (genfunction.IsNotFullPay(event.PaymentOption) ? x.TotalSelectedAmount : x.TotalAmount) >= couponObj.TotalAmount)) {\r\n couponAlreadyApply = true;\r\n return;\r\n }\r\n\r\n event.CouponItems.push(couponObj);\r\n }\r\n\r\n }\r\n })\r\n })\r\n index++;\r\n })\r\n\r\n return couponAlreadyApply;\r\n },\r\n\r\n RemoveUniqueCouponNotApplied(events, couponCode) {\r\n let remove = 0;\r\n events.map(obj => {\r\n\r\n if (obj.CouponItems && obj.CouponItems.filter(x => x.isUniqueCoupon && x.CouponHoldRef == couponCode).length > 0) {\r\n remove += 1;\r\n }\r\n });\r\n\r\n return remove > 0 ? false : true;\r\n },\r\n\r\n CalcuateCouponDiscounts(products) {\r\n let totalDiscount = 0;\r\n\r\n products.map(product => (\r\n\r\n product.CouponItems.map(e =>\r\n\r\n totalDiscount += e.TotalAmount\r\n )\r\n ));\r\n\r\n return products.map(({ TotalAmount }) => TotalAmount).reduce((sum, i) => sum + i, 0) - totalDiscount;\r\n },\r\n\r\n CalculateDollarTicketPrice(ExTaxAmount, DollarPercent, ApplyQty, Product, PaymentOption) {\r\n\r\n if (Product.PriceMatrix && Product.PriceMatrix[0].Taxes[0].TaxIncluded) {\r\n if (DollarPercent * ApplyQty > (genfunction.IsNotFullPay(PaymentOption) ? Product.ProductSelectedTotalAmount : Product.ProductTotalAmount)) {\r\n return genfunction.IsNotFullPay(PaymentOption) ? Product.ProductSelectedAmount : Product.ProductAmount;\r\n }\r\n\r\n if (DollarPercent > (ExTaxAmount / Product.Quantity) && ApplyQty != Product.Quantity) {\r\n return (ExTaxAmount / Product.Quantity) * ApplyQty;\r\n }\r\n\r\n return DollarPercent * ApplyQty / (1 + (Product.PriceMatrix[0].Taxes[0].TaxPercentage / 100));\r\n }\r\n if (Product.PriceMatrix && Product.PriceMatrix[0].Taxes[0].TaxIncluded == false) {\r\n\r\n if (DollarPercent * ApplyQty > ExTaxAmount) {\r\n return ExTaxAmount;\r\n }\r\n\r\n if (DollarPercent > Product.IndividualPrice && ApplyQty != Product.Quantity) {\r\n return Product.IndividualPrice * ApplyQty;\r\n }\r\n\r\n return DollarPercent * ApplyQty;\r\n }\r\n\r\n return 0;\r\n },\r\n\r\n CalculateDollarTicketTax(ExTaxAmount, DollarPercent, ApplyQty, Product, PaymentOption) {\r\n\r\n if (Product.PriceMatrix && Product.PriceMatrix[0].Taxes[0].TaxIncluded) {\r\n if (DollarPercent > (genfunction.IsNotFullPay(PaymentOption) ? Product.ProductSelectedAmount : Product.ProductAmount) && Product.Quantity == 1) {\r\n return (genfunction.IsNotFullPay(PaymentOption) ? Product.ProductSelectedTaxAmount : Product.ProductTaxAmount);\r\n }\r\n\r\n if (DollarPercent > ((genfunction.IsNotFullPay(PaymentOption) ? Product.ProductSelectedAmount : Product.ProductAmount)\r\n / Product.Quantity) && Product.Quantity != ApplyQty) {\r\n return (Product.ProductTaxAmount / Product.Quantity) * ApplyQty;\r\n }\r\n\r\n return DollarPercent - ExTaxAmount;\r\n }\r\n\r\n if (Product.PriceMatrix[0].Taxes[0].TaxIncluded == false) {\r\n if (DollarPercent > ExTaxAmount) {\r\n return (ExTaxAmount * (Product.PriceMatrix[0].Taxes[0].TaxPercentage / 100));\r\n }\r\n\r\n return (DollarPercent * (Product.PriceMatrix[0].Taxes[0].TaxPercentage / 100));\r\n }\r\n\r\n return 0;\r\n },\r\n\r\n UniqueCouponPostRequest(couponObj, events, bookingCoupons) {\r\n\r\n let holdReq = 0;\r\n let eventProdsTotal = 0;\r\n let error = '';\r\n\r\n if (events && events.length > 0) {\r\n events.forEach(event => {\r\n\r\n event.TourProducts.forEach((product) => {\r\n if (product.Quantity > 0 && couponObj.TourProducts.filter(x => x.TourProductID == product.Quantity)) {\r\n eventProdsTotal += product.Quantity;\r\n }\r\n });\r\n });\r\n }\r\n\r\n if (couponObj.MaxProductsPerPurchase < eventProdsTotal) {\r\n holdReq = couponObj.MaxProductsPerPurchase;\r\n }\r\n else {\r\n holdReq = eventProdsTotal;\r\n }\r\n\r\n couponObj.TimesUsed += holdReq;\r\n\r\n if (couponObj.TimesUsed > couponObj.MaxTransactionsPerCoupon) {\r\n error = 'This Coupon is used maximum number of times.';\r\n }\r\n\r\n //Create Unique Coupon Hold Request\r\n let UniqueCouponHolds = [];\r\n let UniqueCoupon = {};\r\n UniqueCoupon.UniqueCouponCode = couponObj.UniqueCouponCode;\r\n UniqueCoupon.HoldsRequested = holdReq;\r\n UniqueCouponHolds.push(UniqueCoupon);\r\n\r\n return { 'UniqueCoupon': UniqueCouponHolds, 'Error': error }\r\n },\r\n\r\n CalculateTicketOddQuantities(ExProductsTotal, ProdQuantities, Discount, Product, PaymentOption) {\r\n\r\n if (Product.PriceMatrix && Product.PriceMatrix[0].Taxes[0].TaxIncluded) {\r\n if (Discount == 100) {\r\n return ((genfunction.IsNotFullPay(PaymentOption) ? Product.ProductSelectedAmount : Product.ProductAmount) / Product.Quantity) * ProdQuantities;\r\n }\r\n\r\n return (ExProductsTotal * ProdQuantities) * (Discount / 100);\r\n }\r\n\r\n if (Product.PriceMatrix && Product.PriceMatrix[0].Taxes[0].TaxIncluded == false) {\r\n if (Discount == 100) {\r\n return Math.round(ExProductsTotal * ProdQuantities * 100) / 100;\r\n }\r\n else {\r\n return Math.round((ExProductsTotal * ProdQuantities) * (Discount / 100) * 100) / 100\r\n }\r\n }\r\n },\r\n\r\n CalculateTaxOddQuantities(ExTaxTotal, ProdQuantities, Discount, Product, PaymentOption) {\r\n\r\n if (Product.PriceMatrix && Product.PriceMatrix[0].Taxes[0].TaxIncluded) {\r\n if (Discount == 100) {\r\n return ((genfunction.IsNotFullPay(PaymentOption) ? Product.ProductSelectedTaxAmount : Product.ProductTaxAmount) / Product.Quantity) * ProdQuantities;\r\n }\r\n\r\n\r\n return (ExTaxTotal * ProdQuantities) * (Discount / 100);\r\n }\r\n\r\n if (Product.PriceMatrix && Product.PriceMatrix[0].Taxes[0].TaxIncluded == false) {\r\n if (Discount == 100) {\r\n return Math.round(ExTaxTotal * ProdQuantities * 100) / 100;\r\n }\r\n else {\r\n return Math.round((ExTaxTotal * ProdQuantities) * (Discount / 100) * 100) / 100;\r\n }\r\n }\r\n\r\n },\r\n\r\n RemoveProductItem(newevents, eventID, productID) {\r\n let noproducteventid = 0;\r\n newevents = newevents.map(obj => {\r\n if (obj.TourEventID === eventID) {\r\n obj.CouponItems = obj.CouponItems.filter(p => p.TourProductID !== productID);\r\n if (obj.CouponItems.length === 0) {\r\n noproducteventid = obj.TourEventID;\r\n }\r\n }\r\n return obj;\r\n });\r\n\r\n\r\n return newevents;\r\n },\r\n\r\n RemoveUnusedCoupon(newcouponTours, newevents) {\r\n newcouponTours = newcouponTours.map(c => {\r\n c.Accessable = false;\r\n newevents.map(e => {\r\n\r\n if (e.CouponItems.find(x => x.CouponID == c.CouponID) !== undefined) {\r\n c.Accessable = true;\r\n }\r\n });\r\n\r\n return c;\r\n });\r\n\r\n newcouponTours = newcouponTours.filter(x => x.Accessable).map(x => {\r\n return x;\r\n });\r\n\r\n return newcouponTours;\r\n },\r\n\r\n UpdateMaxProductLimit(newcouponTours, newevents, eventID, prodID) {\r\n let prodCoupon = null;\r\n let event = newevents.find(x => x.TourEventID === eventID);\r\n if (event) {\r\n prodCoupon = event.CouponItems.find(x => x.TourProductID == prodID);\r\n }\r\n\r\n if (prodCoupon && prodCoupon.isUniqueCoupon) {\r\n newcouponTours = newcouponTours.map(c => {\r\n\r\n if (c.CouponID === prodCoupon.CouponID) {\r\n c.MaxProductsLimit += prodCoupon.Quantity;\r\n }\r\n return c;\r\n });\r\n }\r\n\r\n return newcouponTours;\r\n },\r\n\r\n SortProductsPriceWise(eventProducts) {\r\n let eventProds = eventProducts;\r\n return eventProds.sort((a, b) => b.IndividualPrice - a.IndividualPrice);\r\n },\r\n\r\n OnePennyDifference(product, coupon, PaymentOption) {\r\n if (product.PriceMatrix && product.PriceMatrix[0].Taxes[0].TaxIncluded && coupon.Quantity == product.Quantity) {\r\n if (Math.round((coupon.TotalAmount - (\r\n\r\n (genfunction.IsNotFullPay(PaymentOption) ? product.ProductSelectedTotalAmount : product.ProductTotalAmount) * (coupon.Discount / 100))) * 100) / 100 === 0.01) {\r\n coupon.TotalAmount -= 0.01;\r\n coupon.TicketTax -= 0.01;\r\n\r\n }\r\n }\r\n }\r\n}","export default {\r\n\r\n initialerrorstate: {\r\n first_name: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n last_name: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n email: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n number: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n cvv: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n month: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n year: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n address1: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n address2: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n phone_number: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n city: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n state: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n zip: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n country: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n memberno: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n MonthSelect: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n YearSelect: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n shipping_address1: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n shipping_address2: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n shipping_phone_number: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n shipping_city: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n shipping_state: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n shipping_zip: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n shipping_country: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n MonthAndYear: {\r\n errorstate: false,\r\n errortext: \"\"\r\n }\r\n }\r\n}","export default {\r\n\r\n initialfieldsstate: {\r\n first_name: {\r\n value: \"\"\r\n },\r\n last_name: {\r\n value: \"\"\r\n },\r\n email: {\r\n value: \"\"\r\n },\r\n checkBoxMember: {\r\n value: false\r\n },\r\n memberno: {\r\n value: \"\"\r\n },\r\n address1: {\r\n value: \"\"\r\n },\r\n address2: {\r\n value: \"\"\r\n },\r\n phone_number: {\r\n value: \"\"\r\n },\r\n city: {\r\n value: \"\"\r\n },\r\n state: {\r\n value: \"\"\r\n },\r\n zip: {\r\n value: \"\"\r\n },\r\n country: {\r\n value: \"\"\r\n },\r\n MonthSelect: {\r\n value: \"\"\r\n },\r\n YearSelect: {\r\n value: \"\"\r\n },\r\n billingAddressSame: {\r\n value: true\r\n },\r\n shipping_address1: {\r\n value: \"\"\r\n },\r\n shipping_address2: {\r\n value: \"\"\r\n },\r\n shipping_phone_number: {\r\n value: \"\"\r\n },\r\n shipping_city: {\r\n value: \"\"\r\n },\r\n shipping_state: {\r\n value: \"\"\r\n },\r\n shipping_zip: {\r\n value: \"\"\r\n },\r\n shipping_country: {\r\n value: \"\"\r\n }\r\n }\r\n}","export default {\r\n\r\n GetCustomersListToUpdateUDFs(membershipPackage, membershipTypesUDFs, customerResponse) {\r\n let CustomerUDFsCollection = [];\r\n\r\n membershipPackage.forEach(memPack => {\r\n\r\n memPack.MembershipProducts.forEach(memType => {\r\n\r\n if (memType.MembershipType === \"Membership\" && memType.Users && memType.Users.length > 0) {\r\n\r\n memType.Users.forEach(u => {\r\n CustomerUDFsCollection.push(this.GenerateCustomerUDFs(memType.MembershipTypeID, u, membershipTypesUDFs, customerResponse));\r\n });\r\n }\r\n })\r\n });\r\n\r\n return CustomerUDFsCollection;\r\n },\r\n GenerateCustomerUDFs(memTypeID, user, membershipTypesUDFs, customerResponse) {\r\n let customerUdfObj = {};\r\n customerUdfObj.CustomerID = 0;\r\n customerUdfObj.CustomerUDFs = [];\r\n\r\n //Update Customer ID\r\n if (customerResponse && customerResponse.length > 0) {\r\n if (user.firstName == customerResponse[0].FirstName && user.lastName == customerResponse[0].LastName) {\r\n customerUdfObj.CustomerID = customerResponse[0].CustomerID;\r\n }\r\n else {\r\n customerResponse[0].LinkedIndividuals.map(u => {\r\n\r\n if (user.firstName == u.FirstName && user.lastName == u.LastName) {\r\n customerUdfObj.CustomerID = u.CustomerID;\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (membershipTypesUDFs.filter(x => x.MembershipTypeID === memTypeID).length > 0 && membershipTypesUDFs.filter(x => x.MembershipTypeID === memTypeID)[0].UDFCategories != null) {\r\n membershipTypesUDFs.filter(x => x.MembershipTypeID === memTypeID)[0].UDFCategories.map((udfCategorey, i) => {\r\n\r\n udfCategorey.UserDefinedFields.map((udf) => {\r\n\r\n if (udf.hasOwnProperty('Users') && udf.Users.filter(x => x.userID == user.userNo).length > 0) {\r\n let udfUser = udf.Users.filter(x => x.userID == user.userNo)[0];\r\n let udfObj = {\r\n \"UDFName\": udf.UDFName,\r\n \"UDFType\": udf.UDFType,\r\n \"UDFValue\": udfUser.userUDFValue\r\n }\r\n\r\n customerUdfObj.CustomerUDFs.push(udfObj);\r\n }\r\n })\r\n });\r\n }\r\n\r\n return customerUdfObj;\r\n },\r\n UpdateMembershipUDFsWithCustomerUDFValue(membershipPackage, membershipTypesUDFs, customerUdfs) {\r\n\r\n let aa = 0;\r\n\r\n if (membershipPackage.MembershipProducts && membershipPackage.MembershipProducts.length > 0) {\r\n\r\n membershipPackage.MembershipProducts.forEach(memType => {\r\n\r\n if (memType.MembershipType === \"Membership\" && memType.Users.length > 0) {\r\n\r\n let memTypeUdfs = this.GetMembrshipTypeUDF(memType.MembershipTypeID, membershipTypesUDFs);\r\n\r\n if (memTypeUdfs) {\r\n memType.Users.forEach(u => {\r\n\r\n let customerUDF = this.GetCustomerUDF(u.userNo, customerUdfs);\r\n\r\n memTypeUdfs.UDFCategories.forEach(udfCategorey => {\r\n\r\n udfCategorey.UserDefinedFields.forEach(udf => {\r\n\r\n if (customerUDF) {\r\n let val = this.GetCustomerUDFValue(customerUDF, udf);\r\n\r\n if (val) {\r\n let usr = { userID: u.userNo, userUDFValue: val };\r\n udf.Users.push(usr);\r\n }\r\n }\r\n })\r\n });\r\n\r\n });\r\n\r\n membershipTypesUDFs = membershipTypesUDFs.filter(x => x.MembershipTypeID !== memType.MembershipTypeID);\r\n membershipTypesUDFs.push(memTypeUdfs);\r\n }\r\n }\r\n });\r\n }\r\n\r\n return membershipTypesUDFs;\r\n },\r\n GetMembrshipTypeUDF(membershipTypeID, membershipTypesUDFs) {\r\n\r\n let memTypeUDFs = null;\r\n\r\n if (membershipTypesUDFs && membershipTypesUDFs.length > 0 && membershipTypesUDFs.filter(x => x.MembershipTypeID === membershipTypeID).length > 0) {\r\n memTypeUDFs = membershipTypesUDFs.filter(x => x.MembershipTypeID === membershipTypeID)[0];\r\n }\r\n\r\n return memTypeUDFs;\r\n },\r\n GetCustomerUDF(customerNo, customerUdfs) {\r\n let cstUdfs = null;\r\n\r\n if (customerUdfs && customerUdfs.length > 0 && customerUdfs.filter(x => x.CustomerID === customerNo).length > 0) {\r\n cstUdfs = customerUdfs.filter(x => x.CustomerID === customerNo)[0];\r\n }\r\n\r\n return cstUdfs;\r\n },\r\n GetCustomerUDFValue(cstUDFs, UDF) {\r\n\r\n let value = null;\r\n\r\n if (cstUDFs.CustomerUDFs && cstUDFs.CustomerUDFs.filter(x => x.UDFCategoryName === UDF.UDFCategoryName && x.UDFName === UDF.UDFName && x.UDFType === UDF.UDFType).length > 0) {\r\n value = cstUDFs.CustomerUDFs.filter(x => x.UDFCategoryName === UDF.UDFCategoryName && x.UDFName === UDF.UDFName && x.UDFType === UDF.UDFType)[0].UDFValue;\r\n }\r\n\r\n return value;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","export const BOOKINGTYPES_LOADING = 'REDUX_SAGA_BOOKINGTYPES_LOADING';\r\nexport const GET_BOOKINGTYPES_DATA_SUCCESS = 'REDUX_SAGA_GET_BOOKINGTYPES_DATA_SUCCESS';\r\nexport const GET_BOOKINGTYPES_DATA_ERROR = 'REDUX_SAGA_GET_BOOKINGTYPES_DATA_ERROR';\r\nexport const GET_BOOKINGTYPE_DATA = 'REDUX_SAGA_GET_BOOKINGTYPE_DATA';\r\nexport const RESET_BOOKINGTYPES_DATA = 'REDUX_SAGA_RESET_BOOKINGTYPES_DATA';\r\nexport const REMOVE_UNUSED_BOOKINGTYPES = 'REDUX_SAGA_REMOVE_UNUSED_BOOKINGTYPES';\r\n\r\nexport const actionGetBookingTypes = (dispatch, id, isDisplay) => {\r\n dispatch({ type: BOOKINGTYPES_LOADING, id: id, isDisplay: isDisplay })\r\n};\r\n\r\nexport const actionResetBookingTypes = (dispatch) => {\r\n dispatch({ type: RESET_BOOKINGTYPES_DATA })\r\n}\r\n\r\nexport const actionRemoveUnusedBookingTypes = (dispatch) => {\r\n dispatch({ type: REMOVE_UNUSED_BOOKINGTYPES })\r\n}\r\n\r\n","export const loadState = (key, defaultValue) => {\n try {\n let path = process.env.PUBLIC_URL;\n const serializedState = sessionStorage.getItem(path + key);\n if (serializedState === null) {\n return defaultValue;\n }\n return JSON.parse(serializedState);\n } catch (error) {\n return defaultValue;\n }\n}\n\nexport const saveState = (key, obj) => {\n try {\n let path = process.env.PUBLIC_URL;\n sessionStorage.setItem(path + key, JSON.stringify(obj))\n } catch (error) {\n\n }\n}\n","import { genfunction } from \"helpers\";\r\nimport {\r\n BOOKINGTYPES_LOADING, GET_BOOKINGTYPE_DATA, GET_BOOKINGTYPES_DATA_SUCCESS,\r\n GET_BOOKINGTYPES_DATA_ERROR, RESET_BOOKINGTYPES_DATA, REMOVE_UNUSED_BOOKINGTYPES\r\n} from \"../actions/actionBookingTypes\";\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nconst sessionKey = \"bookingTypes\";\r\n\r\nconst initialState = {\r\n bookingID: 0,\r\n bookingTypes: loadState(sessionKey, []),\r\n bookingType: {},\r\n loading: false,\r\n bookingTypesError: ''\r\n};\r\n\r\nfunction reducerBookingTypes(state = initialState, action) {\r\n switch (action.type) {\r\n case BOOKINGTYPES_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n bookingTypes: loadState(sessionKey, []),\r\n bookingType: {},\r\n bookingTypesError: ''\r\n };\r\n }\r\n\r\n case GET_BOOKINGTYPES_DATA_SUCCESS: {\r\n\r\n let bookingTypes = [\r\n ...state.bookingTypes\r\n ]\r\n\r\n if (bookingTypes.length > 0 && action.events && action.events.length > 0)\r\n bookingTypes = genfunction.RemoveUnUsedBookingTypes(bookingTypes, action.events);\r\n\r\n action.payload !== \"nocontent\" && action.payload.forEach(bookingType => {\r\n\r\n if (bookingTypes.find(x => x.BookingTypeID === bookingType.BookingTypeID)) {\r\n bookingTypes = bookingTypes.filter(x => x.BookingTypeID !== bookingType.BookingTypeID);\r\n }\r\n\r\n bookingTypes.push(bookingType);\r\n });\r\n\r\n\r\n saveState(sessionKey, bookingTypes);\r\n\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n bookingTypes: bookingTypes,\r\n bookingType: bookingTypes && bookingTypes.length > 0 ? bookingTypes[0] : {},\r\n bookingTypesError: ''\r\n };\r\n }\r\n\r\n case REMOVE_UNUSED_BOOKINGTYPES: {\r\n let bkngTypes = [\r\n ...state.bookingTypes\r\n ]\r\n\r\n if (bkngTypes.length > 0 && action.events && action.events.length > 0) {\r\n bkngTypes = genfunction.RemoveUnUsedBookingTypes(bkngTypes, action.events);\r\n bkngTypes.push(bkngTypes);\r\n }\r\n\r\n saveState(sessionKey, bkngTypes);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n bookingTypes: bkngTypes,\r\n bookingType: bkngTypes && bkngTypes.length > 0 ? bkngTypes[0] : {},\r\n bookingTypesError: ''\r\n };\r\n }\r\n\r\n case GET_BOOKINGTYPE_DATA: {\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n bookingType: action.payload,\r\n bookingTypesError: ''\r\n };\r\n }\r\n case RESET_BOOKINGTYPES_DATA: {\r\n\r\n saveState(sessionKey, []);\r\n\r\n return {\r\n ...state,\r\n bookingType: {},\r\n loading: false,\r\n bookingTypes: [],\r\n bookingTypesError: ''\r\n };\r\n }\r\n case GET_BOOKINGTYPES_DATA_ERROR: {\r\n return {\r\n ...state,\r\n loading: false,\r\n bookingTypes: action.payload,\r\n bookingTypesError: action.error\r\n }\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerBookingTypes;","export const APPLOADER_START = 'REDUX_APPLOADER_START';\r\nexport const APPLOADER_END = 'REDUX_APPLOADER_END';\r\n\r\nexport const actionStartAppLoader = (dispatch) => {\r\n dispatch({ type: APPLOADER_START });\r\n};\r\n\r\nexport const actionEndAppLoader = (dispatch) => {\r\n dispatch({ type: APPLOADER_END });\r\n};","import { APPLOADER_START, APPLOADER_END } from \"../actions/actionAppLoader\";\r\nconst initialState = {\r\n loading: false\r\n};\r\n\r\nfunction reducerAppLoader(state = initialState, action) {\r\n switch (action.type) {\r\n case APPLOADER_START: {\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n }\r\n case APPLOADER_END: {\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerAppLoader;\r\n","export const SHOPCART_ADD_EVENT = 'REDUX_SHOPCART_ADD_EVENT';\r\nexport const SHOPCART_ADD_EVENT_WITH_TOURHOLD = 'REDUX_SHOPCART_ADD_EVENT_WITH_TOURHOLD';\r\nexport const SHOPCART_REMOVE_EVENT = 'REDUX_SHOPCART_REMOVE_EVENT';\r\nexport const SHOPCART_ADD_TOUR_PRODUCT = 'REDUX_SHOPCART_ADD_TOUR_PRODUCT';\r\n\r\nexport const SHOPCART_REMOVE_TOUR_PRODUCT = 'REDUX_SHOPCART_REMOVE_TOUR_PRODUCT';\r\nexport const SHOPCART_REMOVE_TOUR_PRODUCT_WITH_TOURHOLD = 'REDUX_SHOPCART_REMOVE_TOUR_PRODUCT_WITH_TOURHOLD';\r\nexport const SHOPCART_REMOVE_TOUR_PRODUCT_WITH_TOURHOLD_LOADING = 'REDUX_SHOPCART_REMOVE_TOUR_PRODUCT_WITH_TOURHOLD_LOADING';\r\n\r\nexport const SHOPCART_RESET_STATE = 'REDUX_SHOPCART_RESET_STATE';\r\nexport const SHOPCART_RESET_STATE_WITH_TOURHOLD_LOADING = 'REDUX_SHOPCART_RESET_STATE_WITH_TOURHOLD_LOADING';\r\nexport const SHOPCART_REMOVE_SINGLE_TOUR_WITH_TOURHOLD_LOADING = 'REDUX_SHOPCART_REMOVE_SINGLE_TOUR_WITH_TOURHOLD_LOADING';\r\n\r\n\r\nexport const SHOPCART_SET_TOUR_PRODUCT_QUANTITY = 'REDUX_SHOPCART_SET_TOUR_PRODUCT_QUANTITY';\r\nexport const SHOPCART_SET_TOUR_PRODUCT_QUANTITY_WITH_TOURHOLD = 'REDUX_SHOPCART_SET_TOUR_PRODUCT_QUANTITY_WITH_TOURHOLD';\r\nexport const SHOPCART_SET_TOUR_PRODUCT_QUANTITY_WITH_TOURHOLD_LOADING = 'REDUX_SHOPCART_SET_TOUR_PRODUCT_QUANTITY_WITH_TOURHOLD_LOADING';\r\nexport const SHOPCART_ERROR = 'REDUX_SHOPCART_ERROR';\r\nexport const SHOPCART_RESET_ERROR = 'REDUX_SHOPCART_RESET_ERROR';\r\nexport const SHOPCART_APPLYCOUPON_TO_EVENTS = 'REDUX_SHOPCART_APPLYCOUPON_TO_EVENTS';\r\nexport const SHOPCART_APPLYCOUPON_TO_GATICKETS = 'REDUX_SHOPCART_APPLYCOUPON_TO_GATICKETS';\r\nexport const REMOVE_COUPON = 'REDUX_SAGA_REMOVE_COUPON';\r\n\r\n\r\nexport const SHOPCART_ADD_GIFTCARD = 'REDUX_SHOPCART_ADD_GIFTCARD';\r\nexport const SHOPCART_DELETE_GIFTCARD = 'REDUX_SHOPCART_DELETE_GIFTCARD';\r\nexport const SHOPCART_UPDATE_GIFTCARD = 'REDUX_SHOPCART_UPDATE_GIFTCARD';\r\nexport const SHOPCART_COUPONAPPLIED_RESET = 'REDUX_SHOPCART_COUPONAPPLIED_RESET';\r\nexport const SHOPCART_RESET_STATE_WITH_UNIQUECOUPONHOLD = 'REDUX_SHOPCART_RESET_STATE_WITH_UNIQUECOUPONHOLD';\r\nexport const SHOPCART_COUPONREMOVE_RESET = 'REDUX_SHOPCART_COUPONREMOVE_RESET';\r\n\r\n\r\nexport const SHOPCART_APPLY_MEMBERSHIP_COSTRATES_ON_EVENTS = 'REDUX_SHOPCART_APPLY_MEMBERSHIP_COSTRATES_ON_EVENTS';\r\n\r\n\r\nexport const SHOPCART_REMOVE_GATICKET_COUPONS = 'REDUX_SHOPCART_REMOVE_GATICKET_COUPONS';\r\nexport const SHOPCART_REMOVE_GIFTCARDS = 'REDUX_SHOPCART_REMOVE_GIFTCARDS';\r\nexport const SHOPCART_REMOVE_ALL_COUPONS = 'REDUX_SHOPCART_REMOVE_ALL_COUPONS';\r\nexport const SHOPCART_RESET_GIFTCARDS = 'REDUX_SHOPCART_RESET_GIFTCARDS';\r\nexport const SHOPCART_RESET_MEMBERSHIP = 'REDUX_SHOPCART_RESET_MEMBERSHIP';\r\nexport const SHOPCART_RESET_IDME = 'REDUX_SHOPCART_RESET_IDME';\r\nexport const SHOPCART_UPDATE_MEMBERSHIPEMAIL = 'REDUX_SHOPCART_UPDATE_MEMBERSHIPEMAIL';\r\n\r\nexport const SHOPCART_APPLY_DONATION = 'REDUX_SHOPCART_APPLY_DONATION';\r\nexport const SHOPCART_RESET_DONATION = 'REDUX_SHOPCART_RESET_DONATION';\r\nexport const UPDATE_DONATION_POPUP_INCREASE = 'REDUX_UPDATE_DONATION_POPUP_INCREASE';\r\nexport const RESET_DONATION_POPUP_INCREASE = 'REDUX_RESET_DONATION_POPUP_INCREASE';\r\n\r\nexport const SHOPCART_ADD_PERSON_MEMBERSHIPTYPE = 'REDUX_SHOPCART_ADD_PERSON_MEMBERSHIPTYPE';\r\nexport const SHOPCART_REMOVE_PERSON_MEMBERSHIPTYPE = 'REDUX_SHOPCART_REMOVE_PERSON_MEMBERSHIPTYPE';\r\nexport const SHOPCART_ADD_ADDON_MEMBERSHIP = 'REDUX_SHOPCART_ADD_ADDON_MEMBERSHIP';\r\nexport const SHOPCART_ADD_MEMBERSHIP_PACKAGE = 'REDUX_SHOPCART_ADD_MEMBERSHIP_PACKAGE';\r\nexport const SHOPCART_RESET_MEMBERSHIP_PACKAGE = 'REDUX_SHOPCART_RESET_MEMBERSHIP_PACKAGE';\r\nexport const SHOPCART_APPLYCOUPON_TO_MEMBERSHIP_PACKAGE = 'REDUX_SHOPCART_APPLYCOUPON_TO_MEMBERSHIP_PACKAGE';\r\nexport const SHOPCART_REMOVECOUPON_FROM_MEMBERSHIPTYPE = 'REDUX_SHOPCART_REMOVECOUPON_FROM_MEMBERSHIPTYPE';\r\n\r\nexport const SHOPCART_GATICKET_ADD = 'REDUX_SHOPCART_GATICKET_ADD';\r\nexport const SHOPCART_GATICKET_REMOVE = 'REDUX_SHOPCART_GATICKET_REMOVE';\r\nexport const SHOPCART_GATICKET_UPDATE_QUANTITY = 'REDUX_SHOPCART_GATICKET_UPDATE_QUANTITY';\r\nexport const SHOPCART_RESET_GATICKET = 'REDUX_SHOPCART_RESET_GATICKET';\r\n\r\nexport const SHOPCART_SET_MANAGEMYBOOKING = 'REDUX_SHOPCART_SET_MANAGEMYBOOKING';\r\nexport const SHOPCART_SET_REFUNDTYPE = 'REDUX_SHOPCART_SET_REFUNDTYPE';\r\nexport const SHOPCART_SET_ADDITIONALBOOKING_AMOUNT = 'REDUX_SHOPCART_SET_ADDITIONALBOOKING_AMOUNT';\r\nexport const SHOPCART_SET_MMB_AMOUNT_TO_PAY = 'REDUX_SHOPCART_SET_MMB_AMOUNT_TO_PAY';\r\nexport const SHOPCART_APPLY_MEMBER_COSTRATE = 'REDUX_SHOPCART_APPLY_MEMBER_COSTRATE';\r\n\r\nexport const SHOPCART_APPLY_IDME_COSTRATES_ON_EVENTS = 'REDUX_SHOPCART_APPLY_IDME_COSTRATES_ON_EVENTS';\r\n\r\nexport const SHOPCART_ADD_ORDER_PRODUCT = 'REDUX_SHOPCART_ADD_ORDER_PRODUCT';\r\nexport const SHOPCART_UPDATE_ORDER_PRODUCT = 'REDUX_SHOPCART_UPDATE_ORDER_PRODUCT';\r\nexport const SHOPCART_UPDATE_ORDER_PRODUCTS = 'REDUX_SHOPCART_UPDATE_ORDER_PRODUCTS';\r\nexport const SHOPCART_DELETE_ORDER_PRODUCT = 'REDUX_SHOPCART_DELETE_ORDER_PRODUCT';\r\nexport const SHOPCART_RESET_ORDER_PRODUCTS = 'REDUX_SHOPCART_RESET_ORDER_PRODUCTS';\r\n\r\nexport const SHOPCART_VERIFY_VALID_MEMBER = 'REDUX_SHOPCART_VERIFY_VALID_MEMBER';\r\nexport const SHOPCART_SHOW_TRANSACTION_FEE = 'REDUX_SHOPCART_SHOW_TRANSACTION_FEE';\r\n\r\nexport const SHOPCART_UPDATE_DONATION_PRODUCT = 'REDUX_SHOPCART_UPDATE_DONATION_PRODUCT';\r\nexport const SHOPCART_DELETE_DONATION_PRODUCT = 'REDUX_SHOPCART_DELETE_DONATION_PRODUCT';\r\nexport const SHOPCART_RESET_DONATION_PRODUCT = 'REDUX_SHOPCART_RESET_DONATION_PRODUCT';\r\n\r\n\r\nexport const SHOPCART_SET_ENTERED_AMOUNT_TO_PAY = 'REDUX_SHOPCART_SET_ENTERED_AMOUNT_TO_PAY';\r\n\r\n\r\nexport const actionShopCartAddEventWithTourHold = (dispatch, event, cartevent, organizationID, groupSize, paymentOption, amountSelected, isEditEvent) => {\r\n dispatch({ type: SHOPCART_ADD_EVENT_WITH_TOURHOLD, payload: { event: event, cartevent: cartevent }, organizationID, groupSize, paymentOption, amountSelected, isEditEvent });\r\n};\r\n\r\nexport const actionShopCartAddEvent = (dispatch, event) => {\r\n dispatch({ type: SHOPCART_ADD_EVENT, payload: event });\r\n};\r\n\r\nexport const actionShopCartRemoveEventAction = (dispatch, TourEventID) => {\r\n dispatch({ type: SHOPCART_REMOVE_EVENT, payload: TourEventID });\r\n};\r\n\r\nexport const actionShopCartAddTour = (dispatch, TourEventID, tourprduct) => {\r\n dispatch({ type: SHOPCART_ADD_TOUR_PRODUCT, payload: { TourEventID: TourEventID, tourprduct: tourprduct } });\r\n};\r\n\r\nexport const actionShopCartRemoveTour = (dispatch, TourEventID, TourProductID) => {\r\n dispatch({ type: SHOPCART_REMOVE_TOUR_PRODUCT, payload: { TourEventID: TourEventID, TourProductID: TourProductID } });\r\n};\r\n\r\nexport const actionShopCartRemoveTourWithTourHold = (dispatch, CartEvent, TourEventID, TourProductID) => {\r\n dispatch({ type: SHOPCART_REMOVE_TOUR_PRODUCT_WITH_TOURHOLD_LOADING, payload: { CartEvent: CartEvent, TourEventID: TourEventID, TourProductID: TourProductID } });\r\n};\r\n\r\nexport const actionShopCartResetState = (dispatch) => {\r\n dispatch({ type: SHOPCART_RESET_STATE });\r\n};\r\n\r\nexport const actionShopCartResetStateWithTourHold = (dispatch, CartEvent) => {\r\n dispatch({ type: SHOPCART_RESET_STATE_WITH_TOURHOLD_LOADING, payload: CartEvent });\r\n};\r\n\r\nexport const actionShopCartRemoveSingleTourWithTourHold = (dispatch, CartEvent, TourEventID) => {\r\n dispatch({ type: SHOPCART_REMOVE_SINGLE_TOUR_WITH_TOURHOLD_LOADING, payload: { CartEvent: CartEvent, TourEventID: TourEventID } });\r\n};\r\n\r\nexport const actionShopCartAddProductQuanity = (dispatch, TourEventID, TourProductID, Quantity) => {\r\n dispatch({ type: SHOPCART_SET_TOUR_PRODUCT_QUANTITY, payload: { TourEventID: TourEventID, TourProductID: TourProductID, Quantity: Quantity } });\r\n};\r\n\r\nexport const actionShopCartAddProductQuanityWithTourHold = (dispatch, CartEvent, TourEventID, TourProductID, Quantity) => {\r\n dispatch({ type: SHOPCART_SET_TOUR_PRODUCT_QUANTITY_WITH_TOURHOLD_LOADING, payload: { CartEvent: CartEvent, TourEventID: TourEventID, TourProductID: TourProductID, Quantity: Quantity } });\r\n};\r\n\r\nexport const actionShopCartApplyCouponCodesToEvents = (dispatch, Coupon, tourProduct, CouponHoldRef) => {\r\n dispatch({ type: SHOPCART_APPLYCOUPON_TO_EVENTS, payload: Coupon, tourProduct: tourProduct, CouponHoldRef });\r\n};\r\n\r\nexport const actionRemoveCoupon = (dispatch, TourEventID, TourProductID) => {\r\n dispatch({ type: REMOVE_COUPON, payload: { TourEventID: TourEventID, TourProductID: TourProductID } });\r\n};\r\n\r\nexport const actionShopCardAddGiftCard = (dispatch, giftcard) => {\r\n dispatch({ type: SHOPCART_ADD_GIFTCARD, payload: giftcard });\r\n};\r\n\r\nexport const actionShopCardDeleteGiftCard = (dispatch, GiftcardHoldRef) => {\r\n dispatch({ type: SHOPCART_DELETE_GIFTCARD, payload: GiftcardHoldRef });\r\n};\r\n\r\nexport const actionShopCartUpdateGiftCard = (dispatch, cashless) => {\r\n dispatch({ type: SHOPCART_UPDATE_GIFTCARD, payload: cashless });\r\n};\r\n\r\nexport const actionResetCouponAlreadyApplied = (dispatch) => {\r\n dispatch({ type: SHOPCART_COUPONAPPLIED_RESET });\r\n}\r\n\r\nexport const actionShopCartResetStateWithUniqueCouponHold = (dispatch) => {\r\n dispatch({ type: SHOPCART_RESET_STATE_WITH_UNIQUECOUPONHOLD });\r\n};\r\n\r\nexport const actionResetCouponRemoveReset = (dispatch) => {\r\n dispatch({ type: SHOPCART_COUPONREMOVE_RESET });\r\n}\r\n\r\nexport const actionShopCartApplyMembershipOnEvents = (dispatch, costrate, extraitems, memberNo, memberEmail, memberLastName) => {\r\n dispatch({ type: SHOPCART_APPLY_MEMBERSHIP_COSTRATES_ON_EVENTS, payload: { costrate: costrate, extraitems: extraitems, memberNo: memberNo, memberEmail: memberEmail, memberLastName: memberLastName } });\r\n};\r\n\r\nexport const actionShopCartValidMember = (dispatch, costrate, memberNo, memberEmail, memberLastName) => {\r\n dispatch({ type: SHOPCART_VERIFY_VALID_MEMBER, payload: { costrate: costrate, memberNo: memberNo, memberEmail: memberEmail, memberLastName: memberLastName } });\r\n};\r\n\r\nexport const actionShopCartRemoveCoupons = (dispatch) => {\r\n dispatch({ type: SHOPCART_REMOVE_ALL_COUPONS });\r\n};\r\n\r\nexport const actionShopCartRemoveGATicketCoupons = (dispatch, couponCode) => {\r\n dispatch({ type: SHOPCART_REMOVE_GATICKET_COUPONS, payload: couponCode })\r\n}\r\n\r\nexport const actionShopCartRemoveGiftcards = (dispatch) => {\r\n dispatch({ type: SHOPCART_REMOVE_GIFTCARDS });\r\n};\r\n\r\nexport const actionShopCartResetGiftcards = (dispatch) => {\r\n dispatch({ type: SHOPCART_RESET_GIFTCARDS });\r\n};\r\n\r\nexport const actionShopCartResetMembership = (dispatch) => {\r\n dispatch({ type: SHOPCART_RESET_MEMBERSHIP });\r\n};\r\n\r\nexport const actionShopCartResetIDME = (dispatch) => {\r\n dispatch({ type: SHOPCART_RESET_IDME });\r\n};\r\n\r\nexport const actionShopCartUpdateMembershipEmail = (dispatch, newEmail) => {\r\n dispatch({ type: SHOPCART_UPDATE_MEMBERSHIPEMAIL, payload: newEmail });\r\n};\r\n\r\nexport const actionShopCartApplyDonation = (dispatch, productID, productName, price, othersAmount, useAlternateMerchantOnline) => {\r\n dispatch({ type: SHOPCART_APPLY_DONATION, payload: { productID: productID, productName: productName, price: price, othersAmount: othersAmount, useAlternateMerchantOnline: useAlternateMerchantOnline } });\r\n};\r\n\r\nexport const actionShopCartResetDonation = (dispatch) => {\r\n dispatch({ type: SHOPCART_RESET_DONATION })\r\n};\r\n\r\nexport const actionShopCartUpdatePopupCounts = (dispatch) => {\r\n dispatch({ type: UPDATE_DONATION_POPUP_INCREASE })\r\n}\r\n\r\nexport const actionShopCartResetDonations = (dispatch) => {\r\n dispatch({ type: RESET_DONATION_POPUP_INCREASE })\r\n}\r\n\r\nexport const actionShopCartAddMembershipPackage = (dispatch, memberPackage, isRenew) => {\r\n dispatch({ type: SHOPCART_ADD_MEMBERSHIP_PACKAGE, payload: memberPackage, isRenew: isRenew })\r\n}\r\n\r\nexport const actionShopCartResetMembershipPackage = (dispatch) => {\r\n dispatch({ type: SHOPCART_RESET_MEMBERSHIP_PACKAGE })\r\n}\r\n\r\nexport const actionShopCartRemoveCouponFromMembershiptype = (dispatch, memberTypeID) => {\r\n dispatch({ type: SHOPCART_REMOVECOUPON_FROM_MEMBERSHIPTYPE, payload: memberTypeID })\r\n}\r\n\r\nexport const actionShopCartAddGATicket = (dispatch, Products) => {\r\n dispatch({ type: SHOPCART_GATICKET_ADD, payload: Products })\r\n}\r\n\r\nexport const actionShopCartRemoveGATicket = (dispatch, ProductID) => {\r\n dispatch({ type: SHOPCART_GATICKET_REMOVE, payload: { ProductID } })\r\n}\r\n\r\nexport const actionShopCartGATicketUpdateQuanity = (dispatch, ProductID, Quantity) => {\r\n dispatch({ type: SHOPCART_GATICKET_UPDATE_QUANTITY, payload: { ProductID, Quantity } })\r\n}\r\n\r\nexport const actionShopCartResetGATicket = (dispatch) => {\r\n dispatch({ type: SHOPCART_RESET_GATICKET })\r\n}\r\n\r\nexport const actionShopCartSetManageMyBooking = (dispatch, managebooking, managebookingmodifytickets) => {\r\n dispatch({ type: SHOPCART_SET_MANAGEMYBOOKING, payload: { managebooking: managebooking, managebookingmodifytickets: managebookingmodifytickets } })\r\n}\r\n\r\nexport const actionShopCartSetRefundType = (dispatch, refundType) => {\r\n dispatch({ type: SHOPCART_SET_REFUNDTYPE, payload: { refundType: refundType } })\r\n}\r\n\r\nexport const actionShopCartSetAdditionalBookingAmount = (dispatch, amount) => {\r\n dispatch({ type: SHOPCART_SET_ADDITIONALBOOKING_AMOUNT, payload: { amount: amount } })\r\n}\r\n\r\nexport const actionShopCartSetMmbAmountToPay = (dispatch, amounttopay) => {\r\n dispatch({ type: SHOPCART_SET_MMB_AMOUNT_TO_PAY, payload: { amounttopay: amounttopay } })\r\n}\r\n\r\nexport const actionShopCartApplyMemberCostrate = (dispatch, costrate, memberNo, memberEmail, memberLastName) => {\r\n dispatch({ type: SHOPCART_APPLY_MEMBER_COSTRATE, payload: { costrate: costrate, memberNo: memberNo, memberEmail: memberEmail, memberLastName: memberLastName } });\r\n};\r\n\r\nexport const actionShopCartApplyidmeCostratesOnEvents = (dispatch, costrate, extraitems) => {\r\n dispatch({ type: SHOPCART_APPLY_IDME_COSTRATES_ON_EVENTS, payload: { costrate: costrate, extraitems: extraitems } });\r\n};\r\n\r\nexport const actionShopCartResetError = (dispatch) => {\r\n dispatch({ type: SHOPCART_RESET_ERROR })\r\n}\r\n\r\nexport const actionAddOrderProduct = (dispatch, foodProduct) => {\r\n dispatch({ type: SHOPCART_ADD_ORDER_PRODUCT, payload: foodProduct })\r\n};\r\n\r\nexport const actionUpdateOrderProduct = (dispatch, foodProduct) => {\r\n dispatch({ type: SHOPCART_UPDATE_ORDER_PRODUCT, payload: foodProduct })\r\n};\r\n\r\nexport const actionUpdateOrderProducts = (dispatch, foodProducts) => {\r\n dispatch({ type: SHOPCART_UPDATE_ORDER_PRODUCTS, payload: foodProducts })\r\n};\r\n\r\nexport const actionDeleteOrderProduct = (dispatch, foodProduct) => {\r\n dispatch({ type: SHOPCART_DELETE_ORDER_PRODUCT, payload: foodProduct })\r\n};\r\n\r\nexport const actionShopcartResetOrderProducts = (dispatch) => {\r\n dispatch({ type: SHOPCART_RESET_ORDER_PRODUCTS })\r\n}\r\n\r\nexport const actionShopCartShowTransFee = (dispatch, check) => {\r\n dispatch({ type: SHOPCART_SHOW_TRANSACTION_FEE, payload: check })\r\n};\r\n\r\nexport const actionShopCartUpdateDonationProduct = (dispatch, donationProducts) => {\r\n dispatch({ type: SHOPCART_UPDATE_DONATION_PRODUCT, payload: donationProducts });\r\n}\r\n\r\nexport const actionShopCartDeleteDonationProduct = (dispatch, productID) => {\r\n dispatch({ type: SHOPCART_DELETE_DONATION_PRODUCT, payload: productID });\r\n}\r\n\r\nexport const actionShopCartResetDonationProduct = (dispatch) => {\r\n dispatch({ type: SHOPCART_RESET_DONATION_PRODUCT });\r\n}\r\n\r\nexport const actionShopCartSetEnteredAmountToPay = (dispatch, amount) => {\r\n dispatch({ type: SHOPCART_SET_ENTERED_AMOUNT_TO_PAY, payload: { enteredAmountToPay: amount } })\r\n}\r\n","import {\r\n SHOPCART_ADD_EVENT, SHOPCART_ERROR, SHOPCART_RESET_ERROR, SHOPCART_REMOVE_EVENT, SHOPCART_ADD_TOUR_PRODUCT,\r\n SHOPCART_REMOVE_TOUR_PRODUCT, SHOPCART_RESET_STATE, SHOPCART_SET_TOUR_PRODUCT_QUANTITY,\r\n SHOPCART_SET_TOUR_PRODUCT_QUANTITY_WITH_TOURHOLD_LOADING,\r\n SHOPCART_REMOVE_TOUR_PRODUCT_WITH_TOURHOLD_LOADING,\r\n SHOPCART_APPLYCOUPON_TO_EVENTS, SHOPCART_APPLYCOUPON_TO_GATICKETS, REMOVE_COUPON,\r\n SHOPCART_ADD_GIFTCARD, SHOPCART_DELETE_GIFTCARD,\r\n SHOPCART_UPDATE_GIFTCARD, SHOPCART_COUPONAPPLIED_RESET, SHOPCART_COUPONREMOVE_RESET,\r\n SHOPCART_APPLY_MEMBERSHIP_COSTRATES_ON_EVENTS, SHOPCART_REMOVE_ALL_COUPONS,\r\n SHOPCART_RESET_GIFTCARDS, SHOPCART_RESET_MEMBERSHIP, SHOPCART_RESET_IDME\r\n , SHOPCART_UPDATE_MEMBERSHIPEMAIL, SHOPCART_APPLY_DONATION, SHOPCART_RESET_DONATION,\r\n UPDATE_DONATION_POPUP_INCREASE, RESET_DONATION_POPUP_INCREASE, SHOPCART_ADD_MEMBERSHIP_PACKAGE, SHOPCART_RESET_MEMBERSHIP_PACKAGE,\r\n SHOPCART_GATICKET_ADD, SHOPCART_GATICKET_REMOVE, SHOPCART_GATICKET_UPDATE_QUANTITY, SHOPCART_RESET_GATICKET,\r\n SHOPCART_REMOVE_GATICKET_COUPONS, SHOPCART_APPLYCOUPON_TO_MEMBERSHIP_PACKAGE, SHOPCART_REMOVECOUPON_FROM_MEMBERSHIPTYPE, SHOPCART_SET_MANAGEMYBOOKING,\r\n SHOPCART_SET_REFUNDTYPE, SHOPCART_SET_ADDITIONALBOOKING_AMOUNT, SHOPCART_SET_MMB_AMOUNT_TO_PAY, SHOPCART_SET_ENTERED_AMOUNT_TO_PAY, SHOPCART_APPLY_MEMBER_COSTRATE,\r\n SHOPCART_APPLY_IDME_COSTRATES_ON_EVENTS, SHOPCART_ADD_ORDER_PRODUCT, SHOPCART_UPDATE_ORDER_PRODUCT, SHOPCART_DELETE_ORDER_PRODUCT,\r\n SHOPCART_UPDATE_ORDER_PRODUCTS, SHOPCART_RESET_ORDER_PRODUCTS,\r\n SHOPCART_VERIFY_VALID_MEMBER, SHOPCART_SHOW_TRANSACTION_FEE, SHOPCART_UPDATE_DONATION_PRODUCT,\r\n SHOPCART_DELETE_DONATION_PRODUCT, SHOPCART_RESET_DONATION_PRODUCT\r\n\r\n} from \"../actions/actionShopCart\";\r\nimport { genfunction } from 'helpers';\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\nimport { CouponManager } from 'helpers';\r\nconst { DefaultCostRateID } = window['runConfig'];\r\n\r\nconst sessionKey = \"ShopCartEvents\";\r\nconst sessionKey2 = \"ShopCartCashless\";\r\nconst sessionKey3 = \"CouponCodes\";\r\nconst sessionKey4 = \"TourProducts\";\r\nconst sessionKey5 = \"UseMembershipValidation\";\r\nconst sessionKey6 = \"UseDonation\";\r\nconst sessionKey7 = \"MembershipPackages\";\r\nconst sessionKey8 = \"GATickets\";\r\nconst sessionKey9 = \"ManageMyBooking\";\r\nconst sessionKey10 = \"ManageBookingAppliedTicketsModification\";\r\nconst sessionKey11 = \"RefundType\";\r\nconst sessionKey12 = \"MMBAmountToPay\";\r\nconst sessionKey13 = \"IDMEApply\";\r\nconst sessionKey14 = \"ShopCartOrderProduct\";\r\nconst sessionKey15 = \"ShopCartShowTransFee\";\r\nconst sessionKey16 = \"DonationProducts\";\r\nconst sessionKey17 = \"EnteredAmountToPay\";\r\n\r\nconst initialState = {\r\n events: loadState(sessionKey, []),\r\n cashless: loadState(sessionKey2, []),\r\n tourCoupons: loadState(sessionKey3, []),\r\n tourProducts: loadState(sessionKey4, []),\r\n loading: false,\r\n couponAlreadyApplied: false,\r\n removeCoupon: '',\r\n membershipValidation: loadState(sessionKey5, {\r\n ismembershipApplied: false,\r\n membershipcostrate: DefaultCostRateID,\r\n membershipMembrNo: 0,\r\n memberEmail: \"\",\r\n memberLastName: \"\",\r\n applycostRates: false\r\n }),\r\n donation: loadState(sessionKey6, {\r\n isdonationApplied: false,\r\n productID: 0,\r\n productName: '',\r\n otherAmount: false,\r\n price: 0,\r\n popupCounts: 0,\r\n UseAlternateMerchantOnline: false\r\n }),\r\n MembershipPackages: loadState(sessionKey7, []),\r\n GATickets: loadState(sessionKey8, []),\r\n membershipIsRenew: false,\r\n managemybooking: loadState(sessionKey9, false),\r\n managebookingticketsmodification: loadState(sessionKey10, false),\r\n refundType: loadState(sessionKey11, ''),\r\n additionalbookingamount: 0,\r\n mmbAmountToPay: loadState(sessionKey12, 0),\r\n IDME: loadState(sessionKey13, {\r\n isIdMeApplied: false,\r\n idmecostrate: DefaultCostRateID\r\n }),\r\n orderProducts: loadState(sessionKey14, []),\r\n showTransactionFee: loadState(sessionKey15, false),\r\n donationProducts: loadState(sessionKey16, []),\r\n enteredAmountToPay: loadState(sessionKey17, 0),\r\n error: ''\r\n};\r\n\r\nfunction reducerShopCart(state = initialState, action) {\r\n switch (action.type) {\r\n case SHOPCART_ADD_EVENT: {\r\n\r\n let newevents = [\r\n ...state.events\r\n ]\r\n\r\n if (genfunction.IsNotNullOrEmptyOrUndefined(action.paymentOption))\r\n genfunction.CalculateEventFlexibleAmount(action.payload, action.paymentOption, action.amountSelected);\r\n\r\n if (newevents.filter(x => x.TourEventID === action.payload.TourEventID).length > 0) {\r\n let eventIndex = newevents.findIndex(x => x.TourEventID === action.payload.TourEventID);\r\n newevents[eventIndex] = genfunction.UpdateEvent(newevents, action.payload, action.isEditEvent);\r\n }\r\n else {\r\n newevents = [\r\n ...state.events,\r\n action.payload\r\n ]\r\n }\r\n\r\n //Update Coupons\r\n let trcoupons = [\r\n ...state.tourCoupons\r\n ]\r\n\r\n let trProducts = [\r\n ...state.tourProducts\r\n ]\r\n\r\n newevents = genfunction.calculateeventsamount(newevents);\r\n CouponManager.ApplyCouponsToEvents(newevents, trcoupons, trProducts);\r\n\r\n newevents.filter(e => e.TourEventID == action.payload.TourEventID).map(e => {\r\n e.OrganizationID = genfunction.IsNotNullOrEmptyOrUndefined(action.organizationID) ? action.organizationID : \"\";\r\n e.GroupSize = action.groupSize;\r\n });\r\n\r\n saveState(sessionKey, newevents);\r\n\r\n return { ...state, events: newevents, loading: false };\r\n }\r\n case SHOPCART_REMOVE_EVENT: {\r\n\r\n let newevents = [\r\n ...state.events\r\n ]\r\n newevents = newevents.filter((item) => {\r\n return item.TourEventID !== action.payload;\r\n });\r\n\r\n newevents = genfunction.calculateeventsamount(newevents);\r\n\r\n saveState(sessionKey, newevents);\r\n\r\n return {\r\n ...state,\r\n events: newevents,\r\n error: '',\r\n loading: false\r\n };\r\n }\r\n case SHOPCART_ADD_TOUR_PRODUCT: {\r\n\r\n let newevents = [\r\n ...state.events\r\n ]\r\n newevents = newevents.map(obj => {\r\n if (obj.TourEventID === action.payload.TourEventID) {\r\n obj.TourProducts.push(action.payload.tourprduct);\r\n }\r\n return obj;\r\n });\r\n newevents = genfunction.calculateeventsamount(newevents);\r\n\r\n saveState(sessionKey, newevents);\r\n\r\n return {\r\n ...state,\r\n events: newevents,\r\n loading: false\r\n };\r\n }\r\n case SHOPCART_REMOVE_TOUR_PRODUCT: {\r\n\r\n let newevents = [\r\n ...state.events\r\n ]\r\n let noproducteventid = 0;\r\n newevents = newevents.map(obj => {\r\n if (obj.TourEventID === action.payload.TourEventID) {\r\n obj.TourProducts = obj.TourProducts.filter(tproduct => tproduct.TourProductID !== action.payload.TourProductID);\r\n if (obj.TourProducts.length === 0) {\r\n noproducteventid = obj.TourEventID;\r\n }\r\n }\r\n return obj;\r\n });\r\n\r\n if (noproducteventid > 0) {\r\n newevents = newevents.filter(event => event.TourEventID !== noproducteventid)\r\n }\r\n\r\n //Update Coupons\r\n let trcoupons = [\r\n ...state.tourCoupons\r\n ]\r\n\r\n let trProducts = [\r\n ...state.tourProducts\r\n ]\r\n\r\n newevents = CouponManager.RemoveProductItem(newevents, action.payload.TourEventID, action.payload.TourProductID);\r\n newevents = genfunction.calculateeventsamount(newevents);\r\n\r\n trcoupons = CouponManager.RemoveUnusedCoupon(trcoupons, newevents);\r\n CouponManager.ApplyCouponsToEvents(newevents, trcoupons, trProducts);\r\n saveState(sessionKey, newevents);\r\n\r\n return {\r\n ...state,\r\n events: newevents,\r\n tourCoupons: trcoupons,\r\n loading: false\r\n };\r\n }\r\n case SHOPCART_SET_TOUR_PRODUCT_QUANTITY: {\r\n\r\n let newevents = [\r\n ...state.events\r\n ]\r\n newevents = newevents.map(obj => {\r\n if (obj.TourEventID === action.payload.TourEventID) {\r\n obj.TourProducts.find(tproduct => tproduct.TourProductID == action.payload.TourProductID).Quantity = action.payload.Quantity;\r\n }\r\n return obj;\r\n });\r\n\r\n newevents = genfunction.calculateeventsamount(newevents);\r\n\r\n //Update Coupons\r\n let trcoupons = [\r\n ...state.tourCoupons\r\n ]\r\n\r\n let trProducts = [\r\n ...state.tourProducts\r\n ]\r\n\r\n newevents = genfunction.calculateeventsamount(newevents);\r\n CouponManager.ApplyCouponsToEvents(newevents, trcoupons, trProducts);\r\n saveState(sessionKey, newevents);\r\n\r\n return {\r\n ...state,\r\n events: newevents,\r\n loading: false,\r\n error: ''\r\n };\r\n }\r\n case SHOPCART_RESET_STATE: {\r\n\r\n var membershipObj = {\r\n ismembershipApplied: false,\r\n membershipcostrate: DefaultCostRateID,\r\n membershipMembrNo: 0,\r\n memberEmail: \"\",\r\n memberLastName: \"\",\r\n applycostRates: false\r\n };\r\n\r\n var donationObj = {\r\n isdonationApplied: false,\r\n productID: 0,\r\n productName: '',\r\n otherAmount: false,\r\n price: 0,\r\n popupCounts: 0,\r\n UseAlternateMerchantOnline: false\r\n };\r\n\r\n var idmeObj = {\r\n isIdMeApplied: false,\r\n idmecostrate: DefaultCostRateID\r\n };\r\n\r\n saveState(sessionKey, []);\r\n saveState(sessionKey2, []);\r\n saveState(sessionKey3, []);\r\n saveState(sessionKey4, []);\r\n saveState(sessionKey5, membershipObj);\r\n saveState(sessionKey6, donationObj);\r\n saveState(sessionKey7, []);\r\n saveState(sessionKey8, []);\r\n saveState(sessionKey9, false);\r\n saveState(sessionKey10, false);\r\n saveState(sessionKey11, '');\r\n saveState(sessionKey12, 0);\r\n saveState(sessionKey13, idmeObj);\r\n saveState(sessionKey14, []);\r\n saveState(sessionKey15, false);\r\n saveState(sessionKey16, []);\r\n saveState(sessionKey17, 0);\r\n return {\r\n ...state,\r\n events: [],\r\n tourCoupons: [],\r\n tourProducts: [],\r\n loading: false,\r\n cashless: [],\r\n couponAlreadyApplied: false,\r\n removeCoupon: '',\r\n membershipValidation: membershipObj,\r\n donation: donationObj,\r\n MembershipPackages: [],\r\n GATickets: [],\r\n membershipIsRenew: false,\r\n managemybooking: false,\r\n managebookingticketsmodification: false,\r\n refundType: '',\r\n additionalbookingamount: 0,\r\n mmbAmountToPay: 0,\r\n IDME: idmeObj,\r\n orderProducts: [],\r\n showTransactionFee: false,\r\n donationProducts: [],\r\n enteredAmountToPay: 0,\r\n error: ''\r\n };\r\n }\r\n\r\n case SHOPCART_SET_TOUR_PRODUCT_QUANTITY_WITH_TOURHOLD_LOADING: {\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n }\r\n case SHOPCART_REMOVE_TOUR_PRODUCT_WITH_TOURHOLD_LOADING: {\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n }\r\n\r\n case SHOPCART_APPLYCOUPON_TO_EVENTS: {\r\n\r\n //Save Coupon\r\n let trcoupons = [\r\n ...state.tourCoupons\r\n ]\r\n\r\n if (trcoupons.length > 0 && trcoupons.filter(x => x.CouponID == action.tourCoupon[0].CouponID).length > 0) {\r\n trcoupons = trcoupons.filter(x => x.CouponID != action.tourCoupon[0].CouponID);\r\n }\r\n\r\n action.tourCoupon[0].CouponHoldRef = action.CouponHoldRef;\r\n\r\n if (action.tourCoupon[0].RequireUniqueCouponCode) {\r\n action.tourCoupon[0].MaxProductsLimit = action.tourCoupon[0].MaxProductsPerPurchase;\r\n }\r\n\r\n trcoupons.push(action.tourCoupon[0]);\r\n\r\n //Save Tour Product\r\n let trProducts = [\r\n ...state.tourProducts\r\n ]\r\n\r\n if (trProducts.filter(x => x.TourProductID == action.tourProduct[0].TourProductID).length > 0) {\r\n trProducts = trProducts.filter(x => x.TourProductID != action.tourProduct[0].TourProductID);\r\n }\r\n\r\n trProducts.push(action.tourProduct[0]);\r\n saveState(sessionKey4, trProducts);\r\n\r\n //Apply Coupons and Update Events\r\n let newevents = [\r\n ...state.events\r\n ]\r\n\r\n let couponAlreadyApply = false;\r\n let isRemoveCoupon = false;\r\n\r\n newevents = genfunction.calculateeventsamount(newevents);\r\n couponAlreadyApply = CouponManager.ApplyCouponsToEvents(newevents, trcoupons, trProducts, couponAlreadyApply, action.couponCode);\r\n\r\n\r\n saveState(sessionKey, newevents);\r\n saveState(sessionKey3, trcoupons);\r\n\r\n if (action.tourCoupon[0].RequireUniqueCouponCode) {\r\n isRemoveCoupon = CouponManager.RemoveUniqueCouponNotApplied(newevents, action.CouponHoldRef);\r\n\r\n if (isRemoveCoupon) {\r\n trcoupons = trcoupons.filter(x => x.RequireUniqueCouponCode && x.CouponID != action.tourCoupon[0].CouponID);\r\n saveState(sessionKey3, trcoupons);\r\n }\r\n }\r\n\r\n return {\r\n ...state,\r\n events: newevents,\r\n tourCoupons: trcoupons,\r\n tourProducts: trProducts,\r\n loading: false,\r\n couponAlreadyApplied: couponAlreadyApply,\r\n removeCoupon: isRemoveCoupon ? action.CouponHoldRef : ''\r\n };\r\n }\r\n\r\n case SHOPCART_APPLYCOUPON_TO_GATICKETS: {\r\n let tickets = [\r\n ...state.GATickets\r\n ]\r\n\r\n let newtickets = tickets.map(ticket => {\r\n let couponproduct = action.payload.GATickets.find(x => x.ProductID === ticket.ProductID);\r\n if (couponproduct && couponproduct.Price < couponproduct.OriginalPrice) {\r\n ticket.Price = couponproduct.Price;\r\n ticket.OriginalPrice = couponproduct.OriginalPrice\r\n ticket.CouponCodeApplied = action.payload.CouponCode;\r\n }\r\n return ticket;\r\n })\r\n\r\n newtickets = genfunction.calculategaticketamount(newtickets);\r\n\r\n saveState(sessionKey8, newtickets);\r\n return {\r\n ...state,\r\n GATickets: newtickets\r\n };\r\n }\r\n\r\n case REMOVE_COUPON: {\r\n\r\n let newevents = [\r\n ...state.events\r\n ]\r\n\r\n let newcouponTours = [\r\n ...state.tourCoupons\r\n ]\r\n\r\n //Update Coupon MaxProductLimit Quantity, if Coupon is Unique.\r\n newcouponTours = CouponManager.UpdateMaxProductLimit(newcouponTours, newevents, action.payload.TourEventID, action.payload.TourProductID);\r\n\r\n newevents = CouponManager.RemoveProductItem(newevents, action.payload.TourEventID, action.payload.TourProductID)\r\n newevents = genfunction.calculateeventsamount(newevents);\r\n saveState(sessionKey, newevents);\r\n\r\n //Remove Coupon, if not in used.\r\n newcouponTours = CouponManager.RemoveUnusedCoupon(newcouponTours, newevents);\r\n\r\n saveState(sessionKey3, newcouponTours);\r\n\r\n return {\r\n ...state,\r\n events: newevents,\r\n tourCoupons: newcouponTours,\r\n loading: false\r\n };\r\n }\r\n case SHOPCART_ADD_GIFTCARD: {\r\n let newcashless = [\r\n ...state.cashless,\r\n action.payload\r\n ]\r\n\r\n saveState(sessionKey2, newcashless);\r\n\r\n return { ...state, cashless: newcashless, loading: false };\r\n }\r\n case SHOPCART_UPDATE_GIFTCARD: {\r\n saveState(sessionKey2, action.payload);\r\n return { ...state, cashless: action.payload, loading: false };\r\n }\r\n case SHOPCART_DELETE_GIFTCARD: {\r\n\r\n let newcashless = [\r\n ...state.cashless\r\n ]\r\n newcashless = newcashless.filter((item) => {\r\n return item.GiftcardHoldRef !== action.payload;\r\n });\r\n\r\n saveState(sessionKey2, newcashless);\r\n\r\n return {\r\n ...state,\r\n cashless: newcashless,\r\n loading: false\r\n };\r\n }\r\n\r\n case SHOPCART_COUPONAPPLIED_RESET: {\r\n return {\r\n ...state,\r\n loading: false,\r\n couponAlreadyApplied: false\r\n };\r\n }\r\n case SHOPCART_COUPONREMOVE_RESET: {\r\n return {\r\n ...state,\r\n loading: false,\r\n removeCoupon: ''\r\n };\r\n }\r\n default: {\r\n return state;\r\n }\r\n\r\n case SHOPCART_APPLY_MEMBERSHIP_COSTRATES_ON_EVENTS: {\r\n\r\n let newevents = [\r\n ...state.events\r\n ]\r\n\r\n\r\n newevents = genfunction.ApplyMembershipPricesOnEvents(newevents, action.payload.costrate, action.payload.extraitems, DefaultCostRateID);\r\n\r\n var membershipObj = {\r\n ismembershipApplied: true,\r\n membershipcostrate: action.payload.costrate,\r\n membershipMembrNo: action.payload.memberNo,\r\n memberEmail: action.payload.memberEmail,\r\n memberLastName: action.payload.memberLastName,\r\n applycostRates: true\r\n }\r\n\r\n var idmeObj = {\r\n isIdMeApplied: false,\r\n idmecostrate: DefaultCostRateID\r\n }\r\n\r\n saveState(sessionKey, newevents);\r\n saveState(sessionKey5, membershipObj)\r\n saveState(sessionKey13, idmeObj)\r\n\r\n return {\r\n ...state,\r\n events: newevents,\r\n membershipValidation: membershipObj,\r\n IDME: idmeObj\r\n };\r\n\r\n }\r\n\r\n case SHOPCART_VERIFY_VALID_MEMBER: {\r\n\r\n\r\n var membershipObj = {\r\n ismembershipApplied: true,\r\n membershipcostrate: action.payload.costrate,\r\n membershipMembrNo: action.payload.memberNo,\r\n memberEmail: action.payload.memberEmail,\r\n memberLastName: action.payload.memberLastName,\r\n applycostRates: false\r\n }\r\n\r\n saveState(sessionKey5, membershipObj)\r\n\r\n return {\r\n ...state,\r\n membershipValidation: membershipObj,\r\n };\r\n }\r\n\r\n\r\n case SHOPCART_REMOVE_ALL_COUPONS: {\r\n\r\n let newevents = [\r\n ...state.events\r\n ]\r\n\r\n newevents = newevents.map(obj => {\r\n\r\n //obj.coupon\r\n obj.CouponItems = [];\r\n\r\n return obj;\r\n });\r\n\r\n newevents = genfunction.calculateeventsamount(newevents);\r\n\r\n\r\n saveState(sessionKey, newevents);\r\n saveState(sessionKey3, []);\r\n saveState(sessionKey4, []);\r\n\r\n return {\r\n ...state,\r\n tourCoupons: [],\r\n tourProducts: [],\r\n loading: false,\r\n couponAlreadyApplied: false,\r\n removeCoupon: ''\r\n };\r\n }\r\n case SHOPCART_RESET_GIFTCARDS: {\r\n saveState(sessionKey2, []);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n cashless: []\r\n };\r\n }\r\n\r\n case SHOPCART_RESET_MEMBERSHIP: {\r\n\r\n var membershipObj = {\r\n ismembershipApplied: false,\r\n membershipcostrate: DefaultCostRateID,\r\n membershipMembrNo: 0,\r\n memberEmail: \"\",\r\n memberLastName: \"\",\r\n applycostRates: false\r\n }\r\n\r\n saveState(sessionKey5, membershipObj)\r\n\r\n return {\r\n ...state,\r\n membershipValidation: membershipObj\r\n };\r\n\r\n }\r\n case SHOPCART_RESET_IDME: {\r\n\r\n var idmeObj = {\r\n isIdMeApplied: false,\r\n idmecostrate: DefaultCostRateID\r\n }\r\n saveState(sessionKey13, idmeObj)\r\n\r\n return {\r\n ...state,\r\n IDME: idmeObj\r\n };\r\n\r\n }\r\n case SHOPCART_UPDATE_MEMBERSHIPEMAIL: {\r\n\r\n var membershipObj = {\r\n ...state.membershipValidation\r\n }\r\n\r\n membershipObj.memberEmail = action.payload;\r\n\r\n saveState(sessionKey5, membershipObj)\r\n\r\n return {\r\n ...state,\r\n membershipValidation: membershipObj\r\n };\r\n\r\n }\r\n\r\n case SHOPCART_APPLY_DONATION: {\r\n\r\n var donationObj = {\r\n ...state.donation\r\n }\r\n\r\n donationObj.isdonationApplied = true;\r\n donationObj.productID = action.payload.productID;\r\n donationObj.productName = action.payload.productName;\r\n donationObj.price = action.payload.price;\r\n donationObj.otherAmount = action.payload.othersAmount;\r\n donationObj.UseAlternateMerchantOnline = action.payload.useAlternateMerchantOnline;\r\n\r\n saveState(sessionKey6, donationObj);\r\n\r\n return {\r\n ...state,\r\n donation: donationObj\r\n }\r\n }\r\n\r\n case SHOPCART_RESET_DONATION: {\r\n var donationObj = {\r\n ...state.donation\r\n }\r\n\r\n donationObj.isdonationApplied = false;\r\n donationObj.productID = 0;\r\n donationObj.productName = '';\r\n donationObj.price = 0;\r\n donationObj.otherAmount = false;\r\n donationObj.UseAlternateMerchantOnline = false;\r\n\r\n\r\n saveState(sessionKey6, donationObj);\r\n\r\n return {\r\n ...state,\r\n donation: donationObj\r\n }\r\n }\r\n\r\n case UPDATE_DONATION_POPUP_INCREASE: {\r\n\r\n var donationObj = {\r\n ...state.donation\r\n }\r\n\r\n donationObj.popupCounts = 1;\r\n saveState(sessionKey6, donationObj);\r\n\r\n return {\r\n ...state,\r\n donation: donationObj\r\n }\r\n }\r\n\r\n case RESET_DONATION_POPUP_INCREASE: {\r\n\r\n var donationObj = {\r\n isdonationApplied: false,\r\n productID: 0,\r\n productName: '',\r\n otherAmount: false,\r\n price: 0,\r\n popupCounts: 0,\r\n UseAlternateMerchantOnline: false\r\n };\r\n\r\n saveState(sessionKey6, donationObj);\r\n\r\n return {\r\n ...state,\r\n donation: donationObj\r\n }\r\n }\r\n\r\n case SHOPCART_ADD_MEMBERSHIP_PACKAGE: {\r\n\r\n var membershipPackagesObj = [...state.MembershipPackages];\r\n\r\n membershipPackagesObj = membershipPackagesObj.filter(function (el) {\r\n return el != null;\r\n });\r\n\r\n if (membershipPackagesObj && membershipPackagesObj.filter(x => x.MembershipPackageID === action.payload.MembershipPackageID).length > 0) {\r\n let memberPackIndex = membershipPackagesObj.findIndex(x => x.MembershipPackageID === action.payload.MembershipPackageID);\r\n membershipPackagesObj[memberPackIndex] = action.payload;\r\n }\r\n else {\r\n membershipPackagesObj.push(action.payload);\r\n }\r\n\r\n\r\n membershipPackagesObj = genfunction.CalculateMembershipPackages(membershipPackagesObj);\r\n\r\n saveState(sessionKey7, membershipPackagesObj);\r\n\r\n return {\r\n ...state, MembershipPackages: membershipPackagesObj,\r\n membershipIsRenew: action.isRenew\r\n }\r\n }\r\n\r\n case SHOPCART_RESET_MEMBERSHIP_PACKAGE: {\r\n saveState(sessionKey7, []);\r\n\r\n return {\r\n ...state,\r\n MembershipPackages: []\r\n };\r\n }\r\n\r\n case SHOPCART_GATICKET_ADD: {\r\n let gatickets = [\r\n ...state.GATickets\r\n ]\r\n action.payload.forEach(ticket => {\r\n\r\n let existticket = gatickets.find(x => x.ProductID === ticket.ProductID)\r\n if (existticket) {\r\n existticket.Quantity += ticket.Quantity;\r\n }\r\n else {\r\n gatickets.push(ticket);\r\n }\r\n });\r\n\r\n gatickets = genfunction.calculategaticketamount(gatickets);\r\n saveState(sessionKey8, gatickets);\r\n return {\r\n ...state,\r\n GATickets: gatickets\r\n };\r\n }\r\n\r\n case SHOPCART_GATICKET_REMOVE: {\r\n let gatickets = [\r\n ...state.GATickets\r\n ]\r\n gatickets = gatickets.filter(x => (x.ProductID === action.payload.ProductID) ? false : true);\r\n\r\n gatickets = genfunction.calculategaticketamount(gatickets);\r\n saveState(sessionKey8, gatickets);\r\n return {\r\n ...state,\r\n GATickets: gatickets\r\n };\r\n }\r\n\r\n case SHOPCART_GATICKET_UPDATE_QUANTITY: {\r\n let gatickets = [\r\n ...state.GATickets\r\n ]\r\n let existticket = gatickets.find(x => x.ProductID === action.payload.ProductID)\r\n if (existticket && existticket.Quantity > 0) {\r\n existticket.Quantity = action.payload.Quantity;\r\n }\r\n else {\r\n gatickets = gatickets.filter(x => x.ProductID !== action.payload.ProductID);\r\n }\r\n\r\n gatickets = genfunction.calculategaticketamount(gatickets);\r\n saveState(sessionKey8, gatickets);\r\n return {\r\n ...state,\r\n GATickets: gatickets\r\n };\r\n }\r\n\r\n case SHOPCART_RESET_GATICKET: {\r\n saveState(sessionKey8, []);\r\n\r\n return {\r\n ...state,\r\n GATickets: []\r\n };\r\n }\r\n\r\n case SHOPCART_RESET_ORDER_PRODUCTS: {\r\n saveState(sessionKey14, []);\r\n\r\n return {\r\n ...state,\r\n orderProducts: []\r\n };\r\n }\r\n\r\n case SHOPCART_REMOVE_GATICKET_COUPONS: {\r\n\r\n let gatickets = [\r\n ...state.GATickets\r\n ]\r\n\r\n let newtickets = gatickets.map(ticket => {\r\n if (ticket.CouponCodeApplied && ticket.CouponCodeApplied == action.payload) {\r\n ticket.CouponCodeApplied = null;\r\n ticket.Price = ticket.OriginalPrice;\r\n }\r\n return ticket;\r\n })\r\n gatickets = genfunction.calculategaticketamount(newtickets);\r\n saveState(sessionKey8, newtickets);\r\n return {\r\n ...state,\r\n GATickets: newtickets\r\n };\r\n }\r\n\r\n case SHOPCART_APPLYCOUPON_TO_MEMBERSHIP_PACKAGE: {\r\n let membershipPackagesObj = [...state.MembershipPackages];\r\n\r\n membershipPackagesObj[0].MembershipProducts = genfunction.ApplyMembershipCoupon(membershipPackagesObj[0].MembershipProducts, action.payload.MembershipPackages, action.payload.CouponCode);\r\n\r\n saveState(sessionKey7, membershipPackagesObj);\r\n\r\n return {\r\n ...state, MembershipPackages: membershipPackagesObj\r\n }\r\n }\r\n\r\n case SHOPCART_REMOVECOUPON_FROM_MEMBERSHIPTYPE: {\r\n let membershipPackagesObj = [...state.MembershipPackages];\r\n\r\n membershipPackagesObj[0].MembershipProducts = membershipPackagesObj[0].MembershipProducts.map(m => {\r\n if (m.MembershipTypeID == action.payload) {\r\n m.CouponCodeApplied = '';\r\n m.CouponCodeExTax = 0;\r\n m.CouponCodeTax = 0;\r\n m.CouponCodeIncTax = 0;\r\n m.ExtraDays = '';\r\n m.ExtraMonths = '';\r\n m.PriceAfterCoupon = 0;\r\n m.TaxAfterCoupon = 0;\r\n m.TotalAmountAfterCoupon = 0;\r\n m.NoFinancialDis = false;\r\n }\r\n\r\n return m;\r\n })\r\n\r\n saveState(sessionKey7, membershipPackagesObj);\r\n\r\n return {\r\n ...state, MembershipPackages: membershipPackagesObj\r\n }\r\n }\r\n\r\n case SHOPCART_SET_MANAGEMYBOOKING: {\r\n let managemybooking = { ...state.managemybooking };\r\n let managebkngticketsmodification = { ...state.managebookingticketsmodification };\r\n\r\n managemybooking = action.payload.managebooking;\r\n managebkngticketsmodification = action.payload.managebookingmodifytickets;\r\n\r\n saveState(sessionKey9, managemybooking);\r\n saveState(sessionKey10, managebkngticketsmodification);\r\n\r\n return {\r\n ...state, managemybooking: managemybooking, managebookingticketsmodification: managebkngticketsmodification\r\n }\r\n }\r\n\r\n case SHOPCART_SET_REFUNDTYPE: {\r\n let refundTyp = { ...state.refundType };\r\n\r\n refundTyp = action.payload.refundType;\r\n saveState(sessionKey11, refundTyp);\r\n\r\n return {\r\n ...state, refundType: refundTyp\r\n }\r\n }\r\n\r\n case SHOPCART_SET_ADDITIONALBOOKING_AMOUNT: {\r\n let additionalbookingamt = { ...state.additionalbookingamount };\r\n additionalbookingamt = action.payload.amount;\r\n\r\n return {\r\n ...state, additionalbookingamount: additionalbookingamt\r\n }\r\n }\r\n\r\n case SHOPCART_SET_MMB_AMOUNT_TO_PAY: {\r\n let mmbAmountToPay = { ...state.mmbAmountToPay };\r\n mmbAmountToPay = action.payload.amounttopay;\r\n\r\n saveState(sessionKey12, mmbAmountToPay);\r\n\r\n return {\r\n ...state, mmbAmountToPay: mmbAmountToPay\r\n }\r\n\r\n }\r\n\r\n case SHOPCART_SET_ENTERED_AMOUNT_TO_PAY: {\r\n let enteredAmountToPay = { ...state.enteredAmountToPay };\r\n enteredAmountToPay = action.payload.enteredAmountToPay;\r\n\r\n saveState(sessionKey17, enteredAmountToPay);\r\n\r\n return {\r\n ...state, enteredAmountToPay: enteredAmountToPay\r\n }\r\n }\r\n\r\n case SHOPCART_APPLY_MEMBER_COSTRATE: {\r\n\r\n var membershipObj = {\r\n ismembershipApplied: true,\r\n membershipcostrate: action.payload.costrate,\r\n membershipMembrNo: action.payload.memberNo,\r\n memberEmail: action.payload.memberEmail,\r\n memberLastName: action.payload.memberLastName,\r\n applycostRates: true\r\n }\r\n\r\n saveState(sessionKey5, membershipObj)\r\n\r\n return {\r\n ...state,\r\n membershipValidation: membershipObj\r\n };\r\n }\r\n\r\n case SHOPCART_APPLY_IDME_COSTRATES_ON_EVENTS: {\r\n\r\n let newevents = [\r\n ...state.events\r\n ]\r\n\r\n var idmeObj = {\r\n isIdMeApplied: true,\r\n idmecostrate: action.payload.costrate\r\n }\r\n\r\n var membershipObj = {\r\n ismembershipApplied: false,\r\n membershipcostrate: DefaultCostRateID,\r\n membershipMembrNo: 0,\r\n memberEmail: \"\",\r\n memberLastName: \"\",\r\n applycostRates: false\r\n }\r\n\r\n newevents = genfunction.ApplyMembershipPricesOnEvents(newevents, action.payload.costrate, action.payload.extraitems, DefaultCostRateID);\r\n\r\n saveState(sessionKey, newevents);\r\n saveState(sessionKey5, membershipObj);\r\n saveState(sessionKey13, idmeObj);\r\n\r\n return {\r\n ...state,\r\n events: newevents,\r\n IDME: idmeObj,\r\n membershipValidation: membershipObj\r\n };\r\n\r\n }\r\n case SHOPCART_ADD_ORDER_PRODUCT: {\r\n let newOrderProduct = [\r\n ...state.orderProducts,\r\n action.payload\r\n ]\r\n\r\n saveState(sessionKey14, newOrderProduct);\r\n\r\n return {\r\n ...state,\r\n orderProducts: newOrderProduct,\r\n loading: false\r\n };\r\n }\r\n case SHOPCART_UPDATE_ORDER_PRODUCT: {\r\n let newOrderProduct = [\r\n ...state.orderProducts,\r\n ]\r\n\r\n let fp = newOrderProduct.find(x => x.UniqueID === action.payload.UniqueID);\r\n fp = action.payload;\r\n\r\n saveState(sessionKey14, newOrderProduct);\r\n\r\n return {\r\n ...state,\r\n orderProducts: newOrderProduct,\r\n loading: false\r\n };\r\n }\r\n case SHOPCART_UPDATE_ORDER_PRODUCTS: {\r\n let newOrderProduct = [\r\n ...action.payload\r\n ]\r\n\r\n saveState(sessionKey14, newOrderProduct);\r\n\r\n return {\r\n ...state,\r\n orderProducts: newOrderProduct,\r\n loading: false\r\n };\r\n }\r\n case SHOPCART_DELETE_ORDER_PRODUCT: {\r\n let newOrderProduct = [\r\n ...state.orderProducts,\r\n ]\r\n\r\n newOrderProduct = newOrderProduct.filter(x => x.UniqueID !== action.payload.UniqueID);\r\n\r\n saveState(sessionKey14, newOrderProduct);\r\n\r\n return {\r\n ...state,\r\n orderProducts: newOrderProduct,\r\n loading: false\r\n };\r\n }\r\n\r\n case SHOPCART_SHOW_TRANSACTION_FEE: {\r\n let showTransFee = { ...state.showTransactionFee };\r\n showTransFee = action.payload;\r\n saveState(sessionKey15, showTransFee);\r\n\r\n return {\r\n ...state,\r\n showTransactionFee: showTransFee,\r\n loading: false\r\n };\r\n }\r\n\r\n case SHOPCART_UPDATE_DONATION_PRODUCT: {\r\n let donationProducts = [...state.donationProducts];\r\n let newdonationProducts = action.payload;\r\n\r\n newdonationProducts.forEach(newdonationproduct => {\r\n donationProducts = donationProducts.filter(x => x.ProductID != newdonationproduct.ProductID);\r\n donationProducts.push(newdonationproduct);\r\n });\r\n\r\n saveState(sessionKey16, donationProducts);\r\n return {\r\n ...state,\r\n donationProducts: donationProducts,\r\n loading: false\r\n }\r\n }\r\n\r\n case SHOPCART_DELETE_DONATION_PRODUCT: {\r\n let donationProducts = [...state.donationProducts];\r\n let productID = action.payload;\r\n donationProducts = donationProducts.filter(x => x.ProductID != productID);\r\n saveState(sessionKey16, donationProducts);\r\n return {\r\n ...state,\r\n donationProducts: donationProducts,\r\n loading: false\r\n }\r\n }\r\n\r\n case SHOPCART_RESET_DONATION_PRODUCT: {\r\n saveState(sessionKey16, []);\r\n\r\n return {\r\n ...state,\r\n donationProducts: []\r\n };\r\n }\r\n\r\n case SHOPCART_ERROR: {\r\n\r\n return {\r\n ...state,\r\n error: action.error\r\n }\r\n }\r\n\r\n case SHOPCART_RESET_ERROR: {\r\n return {\r\n ...state,\r\n error: ''\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default reducerShopCart;\r\n","export const EXTRAITEMS_LOADING = 'REDUX_SAGA_EXTRAITEMS_LOADING';\r\nexport const GET_EXTRAITEMS_DATA_SUCCESS = 'REDUX_SAGA_GET_EXTRAITEMS_DATA_SUCCESS';\r\nexport const GET_EXTRAITEMS_DATA_ERROR = 'REDUX_SAGA_GET_EXTRAITEMS_DATA_ERROR';\r\nexport const GET_EXTRAITEM_OBJECT = \"REDUX_SAGA_GET_EXTRAITEM_OBJECT\";\r\nexport const GET_EXTRAITEM_OBJECT_AFTER_MEMBERSHIP = \"REDUX_SAGA_GET_EXTRAITEM_OBJECT_AFTER_MEMBERSHIP\";\r\nexport const UPDATE_PRODUCT_QUANTITY = \"REDUX_SAGA_UPDATE_PRODUCT_QUANTITY\";\r\nexport const RESET_EXTRAITEMS = \"REDUX_SAGA_RESET_EXTRAITEMS\";\r\nexport const RESET_ERROR_MSG = \"REDUX_SAGA_RESET_ERROR_MSG\";\r\nexport const SET_ADDTOCART = \"REDUX_SAGA_SET_ADDTOCART\"\r\n\r\nexport const actionGetExtraItems = (dispatch, ID, checkBookingTypeObj, isDisplayArea, nextTourDate,\r\n isListView, currentView, tourEventsList) => {\r\n dispatch({\r\n type: EXTRAITEMS_LOADING,\r\n payload: ID,\r\n checkBookingTypeObj: checkBookingTypeObj,\r\n isDisplayArea: isDisplayArea,\r\n nextTourDate: nextTourDate,\r\n isListView: isListView,\r\n currentView: currentView,\r\n tourEventsList: tourEventsList\r\n })\r\n};\r\n\r\nexport const actionGetExtraItem = (dispatch, TourEventID, IsMembershipApplied, MemberCostRate, IsIDME, IsIDMECostRate, OrganizationCostRate) => {\r\n dispatch({\r\n type: GET_EXTRAITEM_OBJECT, payload: TourEventID, IsMembershipApplied: IsMembershipApplied, MemberCostRate: MemberCostRate, IsIDME: IsIDME, IsIDMECostRate: IsIDMECostRate\r\n , OrganizationCostRate: OrganizationCostRate\r\n })\r\n};\r\n\r\nexport const actionGetExtraItemAfterMembership = (dispatch, TourData, TourEventID, IsMembershipApplied, MemberCostRate, IsIDME, IsIDMECostRate, OrganizationCostRate) => {\r\n dispatch({\r\n type: GET_EXTRAITEM_OBJECT_AFTER_MEMBERSHIP, payload: TourData, TourEventID: TourEventID, IsMembershipApplied: IsMembershipApplied, MemberCostRate: MemberCostRate,\r\n IsIDME: IsIDME, IsIDMECostRate: IsIDMECostRate, OrganizationCostRate: OrganizationCostRate\r\n\r\n })\r\n};\r\n\r\nexport const actionIncreaseQuantity = (dispatch, productID, Quantity, ItemExist, MinimumTickets, MaximumTickets) => {\r\n dispatch({ type: UPDATE_PRODUCT_QUANTITY, payload: productID, Quantity: Quantity, ItemExist: ItemExist, MinimumTickets: MinimumTickets, MaximumTickets: MaximumTickets })\r\n};\r\n\r\nexport const actionResetExtraItems = (dispatch) => {\r\n dispatch({ type: RESET_EXTRAITEMS })\r\n};\r\n\r\nexport const actionResetErrorMessage = (dispatch) => {\r\n dispatch({ type: RESET_ERROR_MSG })\r\n};\r\n\r\nexport const actionSetAddToCart = (dispatch) => {\r\n dispatch({ type: SET_ADDTOCART })\r\n}","import {\r\n EXTRAITEMS_LOADING, GET_EXTRAITEMS_DATA_SUCCESS, GET_EXTRAITEMS_DATA_ERROR,\r\n GET_EXTRAITEM_OBJECT, GET_EXTRAITEM_OBJECT_AFTER_MEMBERSHIP, UPDATE_PRODUCT_QUANTITY, RESET_EXTRAITEMS, RESET_ERROR_MSG, SET_ADDTOCART\r\n} from \"../actions/actionExtraItems\";\r\nimport { genfunction } from 'helpers';\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nconst { DefaultCostRateID } = window['runConfig'];\r\n\r\nconst sessionKey = \"ExtraItem\";\r\n\r\n\r\nconst initialState = {\r\n extramItems: [],\r\n extraItem: loadState(sessionKey, {}), //{},\r\n loading: false,\r\n extramItemsError: '',\r\n isAddToCart: false\r\n};\r\n\r\nfunction reducerExtraItems(state = initialState, action) {\r\n switch (action.type) {\r\n case EXTRAITEMS_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n extramItemsError: '',\r\n isAddToCart: false\r\n };\r\n }\r\n\r\n case GET_EXTRAITEMS_DATA_SUCCESS: {\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n extramItems: action.payload,\r\n extramItemsError: '',\r\n isAddToCart: false\r\n };\r\n }\r\n case GET_EXTRAITEM_OBJECT: {\r\n\r\n let newextraItems = JSON.parse(JSON.stringify(state.extramItems));\r\n let extraItm = JSON.parse(JSON.stringify(state.extraItem));\r\n\r\n let extraItem = {};\r\n\r\n if (newextraItems && newextraItems.length > 0) {\r\n extraItem = { ...newextraItems.filter(x => x.TourEventID == action.payload)[0] };\r\n }\r\n else if (extraItm && extraItm.hasOwnProperty('TourEventID')) {\r\n extraItem = extraItm;\r\n }\r\n\r\n extraItem.CouponItems = [];\r\n let costrate = 0;\r\n\r\n if (genfunction.IsNotNullOrEmptyOrUndefined(action.OrganizationCostRate)) {\r\n costrate = action.OrganizationCostRate;\r\n }\r\n else if (action.IsMembershipApplied) {\r\n costrate = action.MemberCostRate;\r\n }\r\n else if (action.IsIDME) {\r\n costrate = action.IsIDMECostRate;\r\n }\r\n else {\r\n costrate = DefaultCostRateID;\r\n }\r\n\r\n\r\n if (extraItem.TourProducts && extraItem.TourProducts.length > 0) {\r\n extraItem.TourProducts = extraItem.TourProducts.filter(x => x.PriceMatrix !== undefined).map(e => {\r\n\r\n\r\n e.IsCouponApplied = false;\r\n\r\n if (!e.hasOwnProperty(\"Quantity\")) {\r\n e.Quantity = 0;\r\n }\r\n if (e.hasOwnProperty(\"PriceMatrix\")) {\r\n let pmatrix;\r\n\r\n if (e.PriceMatrix.length > 1 && e.PriceMatrix.find(x => x.CostRateID == costrate) !== undefined)\r\n pmatrix = e.PriceMatrix.find(x => x.CostRateID == costrate);\r\n else\r\n pmatrix = e.PriceMatrix[0];\r\n\r\n e.PriceMatrix = [];\r\n e.PriceMatrix.push(pmatrix);\r\n }\r\n\r\n return e;\r\n });\r\n }\r\n\r\n saveState(sessionKey, extraItem);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n extraItem: extraItem,\r\n extramItemsError: '',\r\n isAddToCart: false\r\n }\r\n }\r\n\r\n case GET_EXTRAITEM_OBJECT_AFTER_MEMBERSHIP: {\r\n\r\n let extraItem = JSON.parse(JSON.stringify(action.payload));\r\n let extramItems = JSON.parse(JSON.stringify(state.extramItems));\r\n \r\n let costrate = 0;\r\n\r\n if (genfunction.IsNotNullOrEmptyOrUndefined(action.OrganizationCostRate)) {\r\n costrate = action.OrganizationCostRate;\r\n }\r\n else if (action.IsMembershipApplied) {\r\n costrate = action.MemberCostRate;\r\n }\r\n else if (action.IsIDME) {\r\n costrate = action.IsIDMECostRate;\r\n }\r\n else {\r\n costrate = DefaultCostRateID;\r\n }\r\n\r\n extraItem = genfunction.ApplyMembershipPricesOnTourEvent(extraItem, costrate, extramItems, DefaultCostRateID);\r\n\r\n saveState(sessionKey, extraItem);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n extraItem: extraItem,\r\n extramItemsError: '',\r\n isAddToCart: false\r\n }\r\n }\r\n\r\n case UPDATE_PRODUCT_QUANTITY:\r\n\r\n let isCheckOut = false;\r\n let newExtraItem = { ...state.extraItem };\r\n newExtraItem.TourProducts = newExtraItem.TourProducts.map(e => {\r\n if (e.TourProductID == action.payload) {\r\n e.Quantity = action.Quantity;\r\n e.MaximumTickets = action.MaximumTickets;\r\n e.MinimumTickets = action.MinimumTickets;\r\n }\r\n\r\n if (e.Quantity > 0 && e.AffectsCapacity) {\r\n isCheckOut = true\r\n }\r\n\r\n if (action.ItemExist) {\r\n isCheckOut = true;\r\n }\r\n\r\n return e;\r\n });\r\n\r\n newExtraItem = genfunction.calculateeventsamount([newExtraItem])[0]\r\n\r\n saveState(sessionKey, newExtraItem);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n extraItem: newExtraItem,\r\n extramItemsError: '',\r\n isAddToCart: isCheckOut\r\n }\r\n\r\n case GET_EXTRAITEMS_DATA_ERROR: {\r\n return {\r\n ...state,\r\n loading: false,\r\n extramItemsError: action.error\r\n\r\n }\r\n }\r\n\r\n case RESET_EXTRAITEMS: {\r\n\r\n saveState(sessionKey, {});\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n extramItemsError: '',\r\n isAddToCart: false,\r\n extramItems: [],\r\n extraItem: {}\r\n }\r\n }\r\n\r\n case RESET_ERROR_MSG: {\r\n return {\r\n ...state,\r\n loading: false,\r\n extramItemsError: ''\r\n }\r\n }\r\n\r\n case SET_ADDTOCART: {\r\n\r\n let newExtraItem = { ...state.extraItem }\r\n let isAddToCart;\r\n\r\n if (newExtraItem && newExtraItem.TourProducts && newExtraItem.TourProducts.length > 0)\r\n isAddToCart = newExtraItem.TourProducts.filter(p => p.Quantity > 0).length > 0 ? true : false;\r\n\r\n return {\r\n ...state,\r\n isAddToCart: isAddToCart\r\n }\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerExtraItems;","export const GET_MEMEBER_INFO_LOADING = 'REDUX_SAGA_GET_MEMEBER_INFO_LOADING';\r\nexport const POST_MEMBER_INFO_LOADING = 'REDUX_SAGA_POST_MEMBER_INFO_LOADING';\r\nexport const MEMBER_DATA_SUCCESS = 'REDUX_SAGA_MEMBER_DATA_SUCCESS';\r\nexport const MEMBER_DATA_ERROR = 'REDUX_SAGA_MEMBER_DATA_ERROR';\r\n\r\nexport const actionGetMemberInfo = (dispatch, getdata) => {\r\n dispatch({ type: GET_MEMEBER_INFO_LOADING, payload: getdata })\r\n};\r\n\r\nexport const actionPostMemberInfo = (dispatch, postdata) => {\r\n dispatch({ type: POST_MEMBER_INFO_LOADING, payload: postdata })\r\n};\r\n\r\n\r\n//Didn't find its been used anywhere incode.","import { GET_MEMEBER_INFO_LOADING, POST_MEMBER_INFO_LOADING, MEMBER_DATA_SUCCESS, MEMBER_DATA_ERROR } from \"../actions/actionMember\";\r\n\r\nconst initialState = {\r\n MemberInfo: {},\r\n loading: false,\r\n MemberInfoError: ''\r\n};\r\n\r\nfunction reducerMember(state = initialState, action) {\r\n switch (action.type) {\r\n case GET_MEMEBER_INFO_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n MemberInfo: {},\r\n MemberInfoError: ''\r\n };\r\n }\r\n\r\n case POST_MEMBER_INFO_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n MemberInfo: {},\r\n MemberInfoError: ''\r\n };\r\n }\r\n\r\n case MEMBER_DATA_SUCCESS: {\r\n return {\r\n ...state,\r\n loading: false,\r\n MemberInfo: action.payload[0],\r\n MemberInfoError: ''\r\n };\r\n }\r\n case MEMBER_DATA_ERROR: {\r\n return {\r\n ...state,\r\n loading: false,\r\n MemberInfo: {},\r\n MemberInfoError: action.error\r\n }\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerMember;","export const START_PAYMENT_TRANSACTION_LOADING = 'REDUX_SAGA_START_PAYMENT_TRANSACTION_LOADING';\r\nexport const START_PAYMENT_TRANSACTION_SUCCESS = 'REDUX_SAGA_START_PAYMENT_TRANSACTION_SUCCESS';\r\nexport const START_PAYMENT_TRANSACTION_ERROR = 'REDUX_SAGA_START_PAYMENT_TRANSACTION_ERROR';\r\nexport const RESET_PAYMENT_TRANSACTION = 'REDUX_SAGA_RESET_PAYMENT_TRANSACTION';\r\n\r\nexport const actionPostPaymentTransaction = (dispatch, token, customer, recaptchaToken) => {\r\n dispatch({ type: START_PAYMENT_TRANSACTION_LOADING, token, customer, recaptchaToken });\r\n};\r\n\r\nexport const actionResetPaymentTransaction = (dispatch) => {\r\n dispatch({ type: RESET_PAYMENT_TRANSACTION });\r\n};","import {\r\n START_PAYMENT_TRANSACTION_LOADING, START_PAYMENT_TRANSACTION_SUCCESS,\r\n START_PAYMENT_TRANSACTION_ERROR, RESET_PAYMENT_TRANSACTION\r\n} from \"../actions/actionPaymentTransaction\";\r\n\r\nconst initialState = {\r\n Payment: {},\r\n loading: false,\r\n PaymentInfoError: ''\r\n};\r\n\r\nfunction reducerPaymentTransaction(state = initialState, action) {\r\n switch (action.type) {\r\n case START_PAYMENT_TRANSACTION_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n Payment: {},\r\n PaymentInfoError: ''\r\n };\r\n }\r\n case START_PAYMENT_TRANSACTION_SUCCESS: {\r\n return {\r\n ...state,\r\n loading: false,\r\n Payment: action.payload[0],\r\n PaymentInfoError: ''\r\n };\r\n }\r\n case START_PAYMENT_TRANSACTION_ERROR: {\r\n\r\n let error = \"\";\r\n if (action.error.Errors) {\r\n error = action.error.Errors[0].ErrorMessage\r\n }\r\n else\r\n error = action.error.message;\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n Payment: {},\r\n PaymentInfoError: error\r\n }\r\n }\r\n case RESET_PAYMENT_TRANSACTION: {\r\n return {\r\n ...state,\r\n loading: false,\r\n Payment: {},\r\n PaymentInfoError: ''\r\n }\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerPaymentTransaction;","export const GET_IP_LOADING = 'REDUX_SAGA_GET_IP_LOADING';\r\nexport const GET_IP_SUCCESS = 'REDUX_SAGA_GET_IP_SUCCESS';\r\nexport const GET_IP_ERROR = 'REDUX_SAGA_GET_IP_ERROR';\r\n\r\nexport const actionGetIP = (dispatch) => {\r\n dispatch({ type: GET_IP_LOADING })\r\n};","import { GET_IP_LOADING, GET_IP_SUCCESS, GET_IP_ERROR } from \"../actions/actionIP\";\r\n\r\nconst initialState = {\r\n IpInfo: {},\r\n loading: false,\r\n IpInfoError: ''\r\n};\r\n\r\nfunction reducerIP(state = initialState, action) {\r\n switch (action.type) {\r\n case GET_IP_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n IpInfo: {},\r\n IpInfoError: ''\r\n };\r\n }\r\n\r\n case GET_IP_SUCCESS: {\r\n window['info'].ip = action.payload;\r\n return {\r\n ...state,\r\n loading: false,\r\n IpInfo: action.payload,\r\n IpInfoError: ''\r\n };\r\n }\r\n case GET_IP_ERROR: {\r\n return {\r\n ...state,\r\n loading: false,\r\n IpInfo: {},\r\n IpInfoError: action.error\r\n }\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerIP;","export const CALENDARNAV_CALENDAR_VIEW = 'REDUX_CALENDARNAV_CALENDAR_VIEW';\nexport const CALENDARNAV_LIST_VIEW = 'REDUX_CALENDARNAV_LIST_VIEW';\nexport const CALENDARNAV_HYBRID_VIEW = 'REDUX_CALENDARNAV_HYBRID_VIEW';\nexport const CALENDARNAV_RESET = 'REDUX_CALENDARNAV_RESET';\n\nexport const actionCalendarNavCalendarView = (dispatch) => {\n dispatch({ type: CALENDARNAV_CALENDAR_VIEW });\n};\n\nexport const actionCalendarNavListView = (dispatch) => {\n dispatch({ type: CALENDARNAV_LIST_VIEW });\n};\n\nexport const actionCalendarHyridView = (dispatch) => {\n dispatch({ type: CALENDARNAV_HYBRID_VIEW });\n};\n\nexport const actionCalendarNavReset = (dispatch) => {\n dispatch({ type: CALENDARNAV_RESET });\n};\n","import {\n CALENDARNAV_CALENDAR_VIEW, CALENDARNAV_LIST_VIEW, CALENDARNAV_HYBRID_VIEW, CALENDARNAV_RESET\n} from \"../actions/actionCalendarNavBar\";\n\nconst initialState = {\n viewType: ''\n};\n\nfunction reducerCalendarView(state = initialState, action) {\n switch (action.type) {\n case CALENDARNAV_CALENDAR_VIEW: {\n return { ...state, viewType: 'CalendarView' }\n }\n case CALENDARNAV_LIST_VIEW: {\n return { ...state, viewType: 'ListView' }\n }\n case CALENDARNAV_HYBRID_VIEW: {\n return { ...state, viewType: 'HybridView' }\n }\n case CALENDARNAV_RESET: {\n return { ...state, viewType: '' }\n }\n default: {\n return state;\n }\n }\n}\n\nexport default reducerCalendarView;\n\n","export const START_DISCARD_TIME = 'REDUX_START_DISCARD_TIME';\r\nexport const PAUSE_DISCARD_TIME = 'REDUX_PAUSE_DISCARD_TIME';\r\nexport const RESET_DISCARD_TIME = 'REDUX_RESET_DISCARD_TIME';\r\nexport const DECREASE_DISCARD_TIME = 'REDUX_DECREASE_DISCARD_TIME';\r\n\r\nexport const actionStartDiscardTime = (dispatch, timerid) => {\r\n dispatch({ type: START_DISCARD_TIME, payload: { timerid: timerid } });\r\n};\r\n\r\nexport const actionPauseDiscardTime = (dispatch) => {\r\n dispatch({ type: PAUSE_DISCARD_TIME });\r\n};\r\n\r\nexport const actionDecreaseDiscardTime = (dispatch) => {\r\n dispatch({ type: DECREASE_DISCARD_TIME });\r\n};\r\n\r\nexport const actionResetDiscardTime = (dispatch) => {\r\n dispatch({ type: RESET_DISCARD_TIME });\r\n};","import { START_DISCARD_TIME, PAUSE_DISCARD_TIME, DECREASE_DISCARD_TIME, RESET_DISCARD_TIME } from \"../actions/actionCardDiscardTime\";\r\nconst { CartDiscardTime } = window['runConfig'];\r\nconst initialState = {\r\n DiscardTime: 60 * CartDiscardTime,\r\n timerid: 0\r\n};\r\n\r\nfunction reducerCardDiscardTime(state = initialState, action) {\r\n switch (action.type) {\r\n case START_DISCARD_TIME: {\r\n return {\r\n ...state,\r\n DiscardTime: state.DiscardTime - 1,\r\n timerid: action.payload.timerid\r\n };\r\n }\r\n case PAUSE_DISCARD_TIME: {\r\n clearInterval(state.timerid)\r\n return {\r\n ...state,\r\n timerid: 0\r\n };\r\n }\r\n case DECREASE_DISCARD_TIME: {\r\n return {\r\n ...state,\r\n DiscardTime: state.DiscardTime - 1\r\n };\r\n }\r\n case RESET_DISCARD_TIME: {\r\n clearInterval(state.timerid)\r\n return {\r\n ...state,\r\n DiscardTime: 60 * CartDiscardTime,\r\n timerid: 0\r\n };\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerCardDiscardTime;\r\n","export const DISPLAYAREAS_LOADING = 'REDUX_SAGA_DISPLAYAREAS_LOADING';\r\nexport const DISPLAYAREAS_BY_ID_LOADING = 'REDUX_SAGA_DISPLAYAREAS_BY_ID_LOADING';\r\nexport const DISPLAYAREAS_BY_ID_AND_TYPE_LOADING = 'REDUX_SAGA_DISPLAYAREAS_BY_ID_AND_TYPE_LOADING';\r\nexport const GET_DISPLAYAREAS_DATA_SUCCESS = 'REDUX_SAGA_GET_DISPLAYAREAS_DATA_SUCCESS';\r\nexport const RESET_DISPLAYAREAS = \"REDUX_SAGA_RESET_DISPLAYAREAS\";\r\nexport const GET_DISPLAYAREAS_DATA_ERROR = 'REDUX_SAGA_GET_DISPLAYAREAS_DATA_ERROR';\r\n\r\nexport const actionGetDisplayAreasByType = (dispatch, type, id, isDisplay) => {\r\n dispatch({ type: DISPLAYAREAS_LOADING, displayAreaType: type, id: id, isDisplay: isDisplay })\r\n};\r\n\r\nexport const actionGetDisplayAreasById = (dispatch, id) => {\r\n dispatch({ type: DISPLAYAREAS_BY_ID_LOADING, payload: id })\r\n};\r\n\r\nexport const actionGetDisplayAreasByIdAndType = (dispatch, id, type) => {\r\n dispatch({ type: DISPLAYAREAS_BY_ID_AND_TYPE_LOADING, id, displayAreaType:type })\r\n};\r\n\r\nexport const actionResetDisplayAreas = (dispatch) => {\r\n dispatch({ type: RESET_DISPLAYAREAS })\r\n};\r\n","import {\r\n DISPLAYAREAS_LOADING, DISPLAYAREAS_BY_ID_LOADING, DISPLAYAREAS_BY_ID_AND_TYPE_LOADING,\r\n GET_DISPLAYAREAS_DATA_SUCCESS,\r\n GET_DISPLAYAREAS_DATA_ERROR, RESET_DISPLAYAREAS\r\n} from \"../actions/actionDisplayAreas\";\r\n\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nconst sessionKey = \"DisplayAreaNos\";\r\n\r\nconst initialState = {\r\n displayAreaID: 0,\r\n displayAreas: [],\r\n displayArea: loadState(sessionKey, {}),\r\n loading: false,\r\n displayAreasError: '',\r\n isDisplay: false\r\n};\r\n\r\nfunction reducerDisplayAreas(state = initialState, action) {\r\n switch (action.type) {\r\n case DISPLAYAREAS_LOADING:\r\n case DISPLAYAREAS_BY_ID_LOADING:\r\n case DISPLAYAREAS_BY_ID_AND_TYPE_LOADING: {\r\n return {\r\n ...state,\r\n displayAreas: [],\r\n loading: true,\r\n displayAreasError: ''\r\n };\r\n }\r\n\r\n case GET_DISPLAYAREAS_DATA_SUCCESS: {\r\n\r\n let newObj = {};\r\n\r\n if (action.id !== null && action.id !== undefined) {\r\n let newDisplayAreas = JSON.parse(JSON.stringify(action.payload));\r\n newObj = { ...newDisplayAreas.filter(x => x.DisplayAreaNo == action.id)[0] };\r\n saveState(sessionKey, newObj);\r\n }\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n displayAreas: action.payload,\r\n displayArea: newObj,\r\n isDisplay: action.isDisplay,\r\n displayAreasError: ''\r\n };\r\n }\r\n\r\n case GET_DISPLAYAREAS_DATA_ERROR: {\r\n return {\r\n ...state,\r\n loading: false,\r\n isDisplay: false,\r\n displayAreas: action.payload,\r\n displayAreasError: action.error\r\n }\r\n }\r\n case RESET_DISPLAYAREAS: {\r\n\r\n saveState(sessionKey, {});\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n isDisplay: false,\r\n displayArea: {},\r\n displayAreas: [],\r\n displayAreasError: ''\r\n }\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerDisplayAreas;","export const COUPON_LOADING = 'REDUX_SAGA_COUPON_LOADING';\r\nexport const GET_COUPON_DATA_SUCCESS = 'REDUX_SAGA_GET_COUPON_DATA_SUCCESS';\r\nexport const GET_COUPON_DATA_ERROR = 'REDUX_SAGA_GET_COUPON_DATA_ERROR';\r\nexport const COUPON_END_LOADING = 'REDUX_SAGA_COUPON_END_LOADING';\r\nexport const RESET_COUPON = 'REDUX_SAGA_RESET_COUPON';\r\n\r\n\r\nexport const actionGetCoupon = (dispatch, coupnCode) => {\r\n dispatch({ type: COUPON_LOADING, coupnCode: coupnCode })\r\n};\r\n\r\nexport const actionEndCouponLoading = (dispatch) => {\r\n dispatch({ type: COUPON_END_LOADING })\r\n};\r\n\r\nexport const actionResetCoupon = (dispatch) => {\r\n dispatch({ type: RESET_COUPON })\r\n}","import {\r\n COUPON_LOADING, GET_COUPON_DATA_SUCCESS,\r\n GET_COUPON_DATA_ERROR, COUPON_END_LOADING, RESET_COUPON\r\n} from \"../actions/actionCoupon\";\r\n\r\nconst initialState = {\r\n tourCoupon: {},\r\n loading: false,\r\n couponError: ''\r\n};\r\n\r\nfunction reducerCoupon(state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case COUPON_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n couponError: ''\r\n };\r\n }\r\n\r\n case GET_COUPON_DATA_SUCCESS: {\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n tourCoupon: action.payload,\r\n couponError: ''\r\n };\r\n }\r\n\r\n\r\n case GET_COUPON_DATA_ERROR: {\r\n return {\r\n ...state,\r\n loading: false,\r\n tourCoupon: {},\r\n couponError: action.error\r\n }\r\n }\r\n\r\n case COUPON_END_LOADING: {\r\n return {\r\n ...state,\r\n loading: false\r\n }\r\n }\r\n\r\n case RESET_COUPON: {\r\n return {\r\n ...state,\r\n tourCoupon: {},\r\n loading: false,\r\n couponError: ''\r\n }\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerCoupon;","import {\r\n TOURPRODUCT_LOADING, GET_TOURPRODUCT_DATA_SUCCESS,\r\n GET_TOURPRODUCT_DATA_ERROR\r\n} from \"../actions/actionTourProduct\";\r\n\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nconst sessionKey = \"TourProducts\";\r\n\r\nconst initialState = {\r\n tourProduct: {},\r\n loading: false,\r\n tourProductError: ''\r\n};\r\n\r\nfunction reducerTourProduct(state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case TOURPRODUCT_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n tourProductError: ''\r\n };\r\n }\r\n\r\n case GET_TOURPRODUCT_DATA_SUCCESS: {\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n tourProduct: action.payload,\r\n tourProductError: ''\r\n };\r\n }\r\n\r\n case GET_TOURPRODUCT_DATA_ERROR: {\r\n return {\r\n ...state,\r\n loading: false,\r\n tourProduct: action.payload,\r\n tourProductError: action.error\r\n }\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerTourProduct;","export const TOURPRODUCT_LOADING = 'REDUX_SAGA_TOURPRODUCT_LOADING';\r\nexport const GET_TOURPRODUCT_DATA_SUCCESS = 'REDUX_SAGA_GET_TOURPRODUCT_DATA_SUCCESS';\r\nexport const GET_TOURPRODUCT_DATA_ERROR = 'REDUX_SAGA_GET_TOURPRODUCT_DATA_ERROR';\r\n\r\nexport const actionGetTourProduct = (dispatch,tourProductID,priceDate,CostRateID) => {\r\n dispatch({ \r\n\r\n type: TOURPRODUCT_LOADING , \r\n tourProductID : tourProductID, \r\n priceDate : priceDate, \r\n CostRateID : CostRateID \r\n })\r\n};\r\n\r\n\r\n","export const GIFTCARD_HOLD_LOADNG = 'REDUX_SAGA_GIFTCARD_HOLD_LOADNG';\r\nexport const GIFTCARD_HOLD_SUCCESS = 'REDUX_SAGA_GIFTCARD_HOLD_SUCCESS';\r\nexport const GIFTCARD_HOLD_ERROR = 'REDUX_SAGA_GIFTCARD_HOLD_ERROR';\r\nexport const GIFTCARD_HOLD_RESET = 'REDUX_SAGA_GIFTCARD_HOLD_RESET'\r\n\r\nexport const GIFTCARD_HOLD_DELETE_LOADNG = 'REDUX_SAGA_GIFTCARD_HOLD_DELETE_LOADNG';\r\nexport const GIFTCARD_HOLD_DELETE_SUCESS = 'REDUX_SAGA_GIFTCARD_HOLD_DELETE'\r\n\r\nexport const GIFTCARD_HOLD_RECALCULATE_LOADNG = 'REDUX_SAGA_GIFTCARD_HOLD_RECALCULATE_LOADNG';\r\nexport const GIFTCARD_HOLD_RECALCULATE_SUCESS = 'REDUX_SAGA_GIFTCARD_HOLD_RECALCULATE_SUCESS'\r\n\r\nexport const actionAddGiftCardHold = (dispatch, giftCardNo) => {\r\n dispatch({ type: GIFTCARD_HOLD_LOADNG, giftCardNo });\r\n};\r\n\r\nexport const actionResetGiftCardHoldState = (dispatch) => {\r\n dispatch({ type: GIFTCARD_HOLD_RESET });\r\n}\r\n\r\nexport const actionDeleteGiftCardHold = (dispatch, GiftcardHoldRef) => {\r\n dispatch({ type: GIFTCARD_HOLD_DELETE_LOADNG, GiftcardHoldRef });\r\n}\r\n\r\nexport const actionRecalculateGiftCardHold = (dispatch) => {\r\n dispatch({ type: GIFTCARD_HOLD_RECALCULATE_LOADNG });\r\n}","import {\r\n GIFTCARD_HOLD_LOADNG, GIFTCARD_HOLD_SUCCESS, GIFTCARD_HOLD_ERROR, GIFTCARD_HOLD_RESET,\r\n GIFTCARD_HOLD_DELETE_LOADNG,GIFTCARD_HOLD_RECALCULATE_LOADNG\r\n} from \"../actions/actionGiftCardHold\";\r\n\r\nconst initialState = {\r\n GiftCardHold: {},\r\n GiftCardHoldLoading: false,\r\n GiftCardHoldError: ''\r\n};\r\n\r\nfunction reducerGiftCardHold(state = initialState, action) {\r\n switch (action.type) {\r\n case(GIFTCARD_HOLD_LOADNG):\r\n case (GIFTCARD_HOLD_DELETE_LOADNG):\r\n case (GIFTCARD_HOLD_RECALCULATE_LOADNG): {\r\n return {\r\n ...state,\r\n GiftCardHoldLoading: true,\r\n GiftCardHold: {},\r\n GiftCardHoldError: ''\r\n };\r\n }\r\n case GIFTCARD_HOLD_SUCCESS: {\r\n return {\r\n ...state,\r\n GiftCardHoldLoading: false,\r\n GiftCardHold: action.payload[0],\r\n GiftCardHoldError: ''\r\n };\r\n }\r\n case GIFTCARD_HOLD_ERROR: {\r\n\r\n let error = \"\";\r\n if (action.error.Errors) {\r\n error = action.error.Errors[0].ErrorMessage\r\n }\r\n else\r\n error = action.error.message;\r\n\r\n return {\r\n ...state,\r\n GiftCardHoldLoading: false,\r\n GiftCardHold: {},\r\n GiftCardHoldError: error\r\n }\r\n }\r\n case GIFTCARD_HOLD_RESET: {\r\n return {\r\n ...state,\r\n GiftCardHoldLoading: false,\r\n GiftCardHold: {},\r\n GiftCardHoldError: ''\r\n };\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerGiftCardHold;","export const START_POST_UNIQUECOUPON_HOLDS_LOADING = 'REDUX_SAGA_START_POST_UNIQUECOUPON_HOLDS_LOADING';\r\nexport const START_POST_UNIQUECOUPON_HOLDS_SUCCESS = 'REDUX_SAGA_START_POST_UNIQUECOUPON_HOLDS_SUCCESS';\r\nexport const START_POST_UNIQUECOUPON_HOLDS_ERROR = 'REDUX_SAGA_START_POST_UNIQUECOUPON_HOLDS_ERROR';\r\nexport const START_POST_UNIQUECOUPON_HOLDS_RESET = 'REDUX_SAGA_START_POST_UNIQUECOUPON_HOLDS_RESET';\r\nexport const START_POST_UNIQUECOUPON_HOLDS_DELETE = 'REDUX_SAGA_START_POST_UNIQUECOUPON_HOLDS_DELETE';\r\n\r\n\r\nexport const actionPostUniqueCoupon = (dispatch, uniqueCoupon) => {\r\n dispatch({ type: START_POST_UNIQUECOUPON_HOLDS_LOADING, uniqueCoupon });\r\n};\r\n\r\nexport const actionDeleteUniqueCoupon = (dispatch, UniqueCOuponHoldRef) => {\r\n dispatch({ type: START_POST_UNIQUECOUPON_HOLDS_DELETE, UniqueCOuponHoldRef });\r\n}\r\n\r\nexport const actionResetUniqueCouponCardHoldState = (dispatch) => {\r\n dispatch({ type: START_POST_UNIQUECOUPON_HOLDS_RESET });\r\n}","import {\r\n START_POST_UNIQUECOUPON_HOLDS_LOADING, START_POST_UNIQUECOUPON_HOLDS_SUCCESS, START_POST_UNIQUECOUPON_HOLDS_RESET,\r\n START_POST_UNIQUECOUPON_HOLDS_ERROR\r\n} from \"../actions/actionUniqueCouponHolds\";\r\n\r\nconst initialState = {\r\n UniqueCoupon: {},\r\n loading: false,\r\n UniqueCouponError: ''\r\n};\r\n\r\nfunction reducerUniqueCouponHolds(state = initialState, action) {\r\n switch (action.type) {\r\n case START_POST_UNIQUECOUPON_HOLDS_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n UniqueCoupon: {},\r\n UniqueCouponError: ''\r\n };\r\n }\r\n case START_POST_UNIQUECOUPON_HOLDS_SUCCESS: {\r\n return {\r\n ...state,\r\n loading: false,\r\n UniqueCoupon: action.payload[0],\r\n UniqueCouponError: ''\r\n };\r\n }\r\n case START_POST_UNIQUECOUPON_HOLDS_RESET: {\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n UniqueCoupon: {},\r\n UniqueCouponError: ''\r\n }\r\n }\r\n case START_POST_UNIQUECOUPON_HOLDS_ERROR: {\r\n\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n UniqueCoupon: {},\r\n UniqueCouponError: action.error\r\n }\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerUniqueCouponHolds;","export const GET_MEMBERVALIDATION_INFO_LOADING = 'REDUX_SAGA_GET_MEMBERVALIDATION_INFO_LOADING';\r\nexport const MEMBERVALIDATION_DATA_SUCCESS = 'REDUX_SAGA_MEMBERVALIDATION_DATA_SUCCESS';\r\nexport const MEMBERVALIDATION_DATA_ERROR = 'REDUX_SAGA_MEMBERVALIDATION_DATA_ERROR';\r\nexport const MEMBERVALIDATION_DATA_RESET = 'REDUX_SAGA_MEMBERVALIDATION_DATA_RESET';\r\nexport const MEMBERVALIDATION_LOADING_RESET = 'REDUX_SAGA_MEMBERVALIDATION_LOADING_RESET';\r\nexport const GET_MEMBERVALIDATION_START_LOADING = 'REDUX_SAGA_GET_MEMBERVALIDATION_START_LOADING';\r\n\r\n\r\n\r\nexport const actionGetMemberValidation = (dispatch, memberNo, lastName, email, phone, street, checkDate) => {\r\n dispatch({\r\n type: GET_MEMBERVALIDATION_INFO_LOADING,\r\n payload: {\r\n memberNo: memberNo, lastName: lastName,\r\n email: email, phone: phone, street: street, checkDate: checkDate\r\n }\r\n })\r\n};\r\n\r\nexport const actionResetMemberValidation = (dispatch) => {\r\n dispatch({ type: MEMBERVALIDATION_DATA_RESET });\r\n}\r\n\r\nexport const actionEndMemberValidationLoading = (dispatch) => {\r\n dispatch({ type: MEMBERVALIDATION_LOADING_RESET });\r\n}\r\n\r\nexport const actionStartLoadingOnRemoveMembership = (dispatch) => {\r\n dispatch({ type: GET_MEMBERVALIDATION_START_LOADING });\r\n}\r\n\r\nexport const actionSetErrorMemberValidation = (dispatch, err) => {\r\n dispatch({ type: MEMBERVALIDATION_DATA_ERROR, error: err });\r\n\r\n}","import {\r\n GET_MEMBERVALIDATION_INFO_LOADING, MEMBERVALIDATION_DATA_SUCCESS,\r\n MEMBERVALIDATION_DATA_ERROR, MEMBERVALIDATION_DATA_RESET,\r\n MEMBERVALIDATION_LOADING_RESET, GET_MEMBERVALIDATION_START_LOADING\r\n} from \"../actions/actionMemberValidation\";\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nconst sessionKey = \"memberValidation\";\r\n\r\nconst initialState = {\r\n membervalidation: loadState(sessionKey, {}),\r\n loading: false,\r\n membervalidationError: ''\r\n};\r\n\r\nfunction memberValidationReducer(state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_MEMBERVALIDATION_START_LOADING: {\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n }\r\n\r\n case GET_MEMBERVALIDATION_INFO_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n membervalidationError: ''\r\n };\r\n }\r\n\r\n case MEMBERVALIDATION_DATA_SUCCESS: {\r\n\r\n saveState(sessionKey, action.payload)\r\n\r\n return {\r\n ...state,\r\n membervalidation: action.payload,\r\n loading: false,\r\n membervalidationError: ''\r\n };\r\n }\r\n\r\n case MEMBERVALIDATION_DATA_RESET: {\r\n\r\n saveState(sessionKey, {})\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n membervalidation: {},\r\n membervalidationError: ''\r\n }\r\n }\r\n\r\n case MEMBERVALIDATION_LOADING_RESET: {\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n membervalidationError: ''\r\n }\r\n }\r\n\r\n case MEMBERVALIDATION_DATA_ERROR: {\r\n\r\n saveState(sessionKey, action.payload)\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n membervalidation: action.payload,\r\n membervalidationError: action.error\r\n }\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default memberValidationReducer;","export const FORMERROR_RESETFORMERRORSTATE = 'REDUX_FORMERROR_RESETFORMERRORSTATE';\r\nexport const FORMERROR_SETFORMERRORSTATE = 'REDUX_FORMERROR_SETFORMERRORSTATE';\r\nexport const RESET_FORM_FIELDVALUES_STATE = 'REDUX_RESET_FORM_FIELDVALUES_STATE';\r\nexport const SET_FROM_FIELDVALUE_STATE = 'REDUX_SET_FROM_FIELDVALUE_STATE';\r\n\r\nexport const actionResetFormErrorState = (dispatch) => {\r\n dispatch({ type: FORMERROR_RESETFORMERRORSTATE });\r\n};\r\n\r\nexport const actionSetFormErrorState = (dispatch, errorfield, errortext, errorstate) => {\r\n dispatch({ type: FORMERROR_SETFORMERRORSTATE, payload: { errorfield: errorfield, errortext: errortext, errorstate: errorstate } });\r\n};\r\n\r\nexport const actionResetFieldValuesState = (dispatch) => {\r\n dispatch({ type: RESET_FORM_FIELDVALUES_STATE });\r\n};\r\n\r\nexport const actionSetFieldValueState = (dispatch, field, value) => {\r\n dispatch({ type: SET_FROM_FIELDVALUE_STATE, payload: { field: field, value: value } });\r\n};","import { FORMERROR_RESETFORMERRORSTATE, FORMERROR_SETFORMERRORSTATE , RESET_FORM_FIELDVALUES_STATE , SET_FROM_FIELDVALUE_STATE} from \"../actions/actionFormError\";\r\nimport { formerrorstate } from 'helpers';\r\nimport { formfields } from 'helpers';\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nconst sessionKey = \"formfields\";\r\n\r\nconst initialState = {\r\n errorstate: formerrorstate.initialerrorstate,\r\n formfields : loadState(sessionKey, formfields.initialfieldsstate) \r\n \r\n};\r\n\r\nfunction formerrorreducer(state = initialState, action) {\r\n switch (action.type) {\r\n case FORMERROR_RESETFORMERRORSTATE: {\r\n return {\r\n ...state,\r\n errorstate: formerrorstate.initialerrorstate\r\n };\r\n }\r\n case FORMERROR_SETFORMERRORSTATE: {\r\n let newerrorstate = {...state.errorstate}\r\n newerrorstate[action.payload.errorfield] = {\r\n errorstate: action.payload.errorstate,\r\n errortext: action.payload.errortext\r\n }\r\n return {\r\n ...state,\r\n errorstate: newerrorstate\r\n }\r\n }\r\n case RESET_FORM_FIELDVALUES_STATE: {\r\n\r\n saveState(sessionKey, formfields.initialfieldsstate)\r\n\r\n return {\r\n ...state,\r\n formfields: formfields.initialfieldsstate\r\n };\r\n }\r\n case SET_FROM_FIELDVALUE_STATE: {\r\n\r\n let newformfields = {...state.formfields}\r\n newformfields[action.payload.field] = {\r\n value: action.payload.value\r\n }\r\n\r\n saveState(sessionKey, newformfields)\r\n\r\n return {\r\n ...state,\r\n formfields: newformfields\r\n }\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default formerrorreducer;\r\n","export const GET_DONATION_INFO_LOADING = 'REDUX_SAGA_GET_DONATION_INFO_LOADING';\r\nexport const DONATION_DATA_SUCCESS = 'REDUX_SAGA_DONATION_DATA_SUCCESS';\r\nexport const DONATION_DATA_ERROR = 'REDUX_SAGA_DONATION_DATA_ERROR';\r\nexport const DONATION_DATA_RESET = 'REDUX_SAGA_DONATION_DATA_RESET';\r\n\r\nexport const actionGetDonation = (dispatch, productId, productType) => {\r\n dispatch({\r\n type: GET_DONATION_INFO_LOADING,\r\n payload: { productId: productId, productType: productType }\r\n })\r\n};\r\n\r\n\r\nexport const actionResetDonations = (dispatch) => {\r\n dispatch({ type: DONATION_DATA_RESET })\r\n};","import {\r\n GET_DONATION_INFO_LOADING, DONATION_DATA_SUCCESS,\r\n DONATION_DATA_RESET, DONATION_DATA_ERROR\r\n} from \"../actions/actionDonation\";\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nconst sessionKey1 = \"donation\";\r\n\r\nconst initialState = {\r\n donations: loadState(sessionKey1, []),\r\n loading: false,\r\n donationError: ''\r\n};\r\n\r\nfunction donationreducer(state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_DONATION_INFO_LOADING: {\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n }\r\n\r\n\r\n case DONATION_DATA_SUCCESS: {\r\n\r\n saveState(sessionKey1, action.payload)\r\n\r\n return {\r\n ...state,\r\n donations: action.payload,\r\n donationError: ''\r\n };\r\n }\r\n\r\n case DONATION_DATA_RESET: {\r\n\r\n saveState(sessionKey1, [])\r\n\r\n return {\r\n ...state,\r\n donations: [],\r\n donationError: ''\r\n };\r\n }\r\n \r\n case DONATION_DATA_ERROR: {\r\n\r\n saveState(sessionKey1, action.payload)\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n donationError: action.error\r\n }\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default donationreducer;","export const GET_TRANSACTIONFEE_INFO_LOADING = 'REDUX_SAGA_GET_TRANSACTIONFEE_INFO_LOADING';\r\nexport const TRANSACTIONFEE_DATA_SUCCESS = 'REDUX_SAGA_TRANSACTIONFEE_DATA_SUCCESS';\r\nexport const TRANSACTIONFEE_DATA_ERROR = 'REDUX_SAGA_TRANSACTIONFEE_DATA_ERROR';\r\nexport const TRANSACTIONFEE_DATA_RESET = 'REDUX_SAGA_TRANSACTIONFEE_DATA_RESET';\r\n\r\nexport const actionGetTransactionFee = (dispatch, productId, productType) => {\r\n dispatch({\r\n type: GET_TRANSACTIONFEE_INFO_LOADING,\r\n payload: { productId: productId, productType: productType }\r\n })\r\n};\r\n\r\nexport const actionResetTransactionFee = (dispatch) => {\r\n dispatch({ type: TRANSACTIONFEE_DATA_RESET })\r\n};","import {\r\n GET_TRANSACTIONFEE_INFO_LOADING, TRANSACTIONFEE_DATA_SUCCESS,\r\n TRANSACTIONFEE_DATA_ERROR, TRANSACTIONFEE_DATA_RESET\r\n} from \"../actions/actionTransactionFee\";\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nconst sessionKey1 = \"transactionFee\";\r\n\r\nconst initialState = {\r\n transactionFee: loadState(sessionKey1, []),\r\n loading: false,\r\n transactionFeeError: ''\r\n};\r\n\r\nfunction reducerTransactionFee(state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_TRANSACTIONFEE_INFO_LOADING: {\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n }\r\n\r\n\r\n case TRANSACTIONFEE_DATA_SUCCESS: {\r\n\r\n saveState(sessionKey1, action.payload)\r\n\r\n return {\r\n ...state,\r\n transactionFee: action.payload,\r\n transactionFeeError: ''\r\n };\r\n }\r\n\r\n case TRANSACTIONFEE_DATA_RESET: {\r\n\r\n saveState(sessionKey1, [])\r\n\r\n return {\r\n ...state,\r\n transactionFee: [],\r\n transactionFeeError: ''\r\n };\r\n }\r\n\r\n case TRANSACTIONFEE_DATA_ERROR: {\r\n\r\n saveState(sessionKey1, action.payload)\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n transactionFeeError: action.error\r\n }\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerTransactionFee;","export const GET_MEMBERSHIPPACKAGES_INFO_LOADING = 'REDUX_SAGA_GET_MEMBERSHIPPACKAGES_INFO_LOADING';\r\nexport const MEMBERSHIPPACKAGES_DATA_SUCCESS = 'REDUX_SAGA_MEMBERSHIPPACKAGES_DATA_SUCCESS';\r\nexport const MEMBERSHIPPACKAGES_DATA_ERROR = 'REDUX_SAGA_MEMBERSHIPPACKAGES_DATA_ERROR';\r\nexport const MEMBERSHIPPACKAGES_DATA_RESET = 'REDUX_SAGA_MEMBERSHIPPACKAGES_DATA_RESET';\r\nexport const GET_MEMBERSHIPPACKAGE_OBJECT = 'REDUX_SAGA_GET_MEMBERSHIPPACKAGE_OBJECT';\r\nexport const UPDATE_MEMBERSHIPPACKAGE = 'REDUX_SAGA_UPDATE_MEMBERSHIPPACKAGE';\r\nexport const DELETE_MEMBERSHIPTYPEPERSON = 'REDUX_SAGA_DELETE_MEMBERSHIPTYPEPERSON';\r\nexport const UPDATE_MEMBERSHIPADDONS_QUANTITY = 'REDUX_SAGA_UPDATE_MEMBERSHIPADDONS_QUANTITY';\r\nexport const UPDATE_PACKAGE_FOR_RENEW = 'REDUX_SAGA_UPDATE_PACKAGE_FOR_RENEW';\r\nexport const UPDATE_FAMILYMEMBERS_NOT_PART_OF_PACKAGE = 'REDUX_SAGA_UPDATE_FAMILYMEMBERS_NOT_PART_OF_PACKAGE';\r\nexport const MEMBERSHIPPACKAGE_DATA_RESET = 'REDUX_SAGA_MEMBERSHIPPACKAGE_DATA_RESET';\r\n\r\nexport const actionGetMembershipPackages = (dispatch, DisplayAreaNo) => {\r\n dispatch({\r\n type: GET_MEMBERSHIPPACKAGES_INFO_LOADING,\r\n payload: { DisplayAreaNo: DisplayAreaNo }\r\n })\r\n};\r\n\r\nexport const actionGetMembershipPackage = (dispatch, memberpackID) => {\r\n dispatch({\r\n type: GET_MEMBERSHIPPACKAGE_OBJECT,\r\n payload: { memberpackID: memberpackID }\r\n })\r\n}\r\n\r\nexport const actionUpdateMembershipPackage = (dispatch, membershipPackageDetails, isEdit) => {\r\n dispatch({ type: UPDATE_MEMBERSHIPPACKAGE, payload: { membershipPackageDetails: membershipPackageDetails, isEdit: isEdit } })\r\n};\r\n\r\nexport const actionDeleteMembershipTypePerson = (dispatch, MembershipPackageID, membershipTypeID, userNo) => {\r\n dispatch({ type: DELETE_MEMBERSHIPTYPEPERSON, payload: { MembershipPackageID: MembershipPackageID, membershipTypeID: membershipTypeID, userNo: userNo } })\r\n};\r\n\r\nexport const actionUpdateMembershipAddonsQuantity = (dispatch, membershipType) => {\r\n dispatch({ type: UPDATE_MEMBERSHIPADDONS_QUANTITY, payload: membershipType })\r\n};\r\n\r\nexport const actionResetMembershipPackages = (dispatch) => {\r\n dispatch({ type: MEMBERSHIPPACKAGES_DATA_RESET })\r\n};\r\n\r\nexport const actionResetMembershipPackage = (dispatch) => {\r\n dispatch({ type: MEMBERSHIPPACKAGE_DATA_RESET })\r\n};\r\n\r\nexport const actionUpdatePackageForRenew = (dispatch, packageID, memberMemberships, customer) => {\r\n dispatch({ type: UPDATE_PACKAGE_FOR_RENEW, payload: { packageID: packageID, memberMemberships: memberMemberships, customer: customer } })\r\n};\r\n\r\n\r\nexport const actionUpdateFamilyMemberNotPartOfPackage = (dispatch, userNo, isAdded) => {\r\n dispatch({ type: UPDATE_FAMILYMEMBERS_NOT_PART_OF_PACKAGE, payload: { userNo: userNo, isAdded: isAdded } })\r\n};\r\n","import {\r\n GET_MEMBERSHIPPACKAGES_INFO_LOADING, MEMBERSHIPPACKAGES_DATA_SUCCESS,\r\n MEMBERSHIPPACKAGES_DATA_ERROR, MEMBERSHIPPACKAGES_DATA_RESET, GET_MEMBERSHIPPACKAGE_OBJECT,\r\n UPDATE_MEMBERSHIPPACKAGE, DELETE_MEMBERSHIPTYPEPERSON, UPDATE_MEMBERSHIPADDONS_QUANTITY, UPDATE_PACKAGE_FOR_RENEW,\r\n UPDATE_FAMILYMEMBERS_NOT_PART_OF_PACKAGE, MEMBERSHIPPACKAGE_DATA_RESET\r\n} from \"../actions/actionMembershipPackages\";\r\nimport { genfunction } from 'helpers';\r\nimport { ExposurePlus1Sharp } from \"@material-ui/icons\";\r\n\r\nconst initialState = {\r\n membershippackages: [],\r\n membershipPackage: {},\r\n loading: false,\r\n membershippackagesError: '',\r\n familymembersnotpartofPackage: []\r\n};\r\n\r\nfunction reducerMembershipPackages(state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_MEMBERSHIPPACKAGES_INFO_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n membershippackagesError: ''\r\n };\r\n }\r\n\r\n case MEMBERSHIPPACKAGES_DATA_SUCCESS: {\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n membershippackages: action.payload,\r\n membershippackagesError: ''\r\n };\r\n }\r\n\r\n case GET_MEMBERSHIPPACKAGE_OBJECT: {\r\n\r\n let mempackages = JSON.parse(JSON.stringify(state.membershippackages));\r\n let memPackage = { ...mempackages.filter(x => x.MembershipPackageID == action.payload.memberpackID)[0] };\r\n\r\n if (memPackage && memPackage.hasOwnProperty(\"MembershipProducts\")) {\r\n\r\n memPackage.MembershipProducts = memPackage.MembershipProducts.map(e => {\r\n\r\n if (e.MembershipType === \"Membership\") {\r\n\r\n if (e.hasOwnProperty(\"Users\") == false) {\r\n e.Users = []\r\n }\r\n\r\n }\r\n else if (e.MembershipType === \"AddOn\" && !e.hasOwnProperty(\"Quantity\")) {\r\n e.Quantity = 0;\r\n }\r\n\r\n return e;\r\n });\r\n\r\n mempackages = mempackages.filter(x => x.MembershipPackageID !== memPackage.MembershipPackageID);\r\n\r\n mempackages.push(memPackage);\r\n }\r\n\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n membershippackages: mempackages,\r\n membershipPackage: memPackage,\r\n membershippackagesError: ''\r\n }\r\n }\r\n\r\n case UPDATE_MEMBERSHIPPACKAGE: {\r\n\r\n let mempackages = JSON.parse(JSON.stringify(state.membershippackages));\r\n let memPackage = action.payload.isEdit ? action.payload.membershipPackageDetails : { ...mempackages.filter(x => x.MembershipPackageID == action.payload.membershipPackageDetails.MembershipPackageID)[0] };\r\n\r\n memPackage.MembershipProducts = memPackage.MembershipProducts.map(e => {\r\n\r\n if (e.MembershipType === \"Membership\" && action.payload.membershipPackageDetails.isEdit) {\r\n e.Users = e.Users.filter(x => x.userNo != action.payload.membershipPackageDetails.userNo);\r\n }\r\n\r\n if (e.MembershipType === \"Membership\" && e.MembershipTypeID == action.payload.membershipPackageDetails.membershipTypeID) {\r\n\r\n var user = {\r\n isPrimaryMember: action.payload.membershipPackageDetails.isPrimaryMember,\r\n firstName: action.payload.membershipPackageDetails.firstName,\r\n lastName: action.payload.membershipPackageDetails.lastName,\r\n email: action.payload.membershipPackageDetails.email,\r\n dob: action.payload.membershipPackageDetails.dob,\r\n phone: action.payload.membershipPackageDetails.phone,\r\n address1: action.payload.membershipPackageDetails.address1,\r\n address2: action.payload.membershipPackageDetails.address2,\r\n city: action.payload.membershipPackageDetails.city,\r\n state: action.payload.membershipPackageDetails.state,\r\n zipcode: action.payload.membershipPackageDetails.zipcode,\r\n country: action.payload.membershipPackageDetails.country,\r\n userNo: 0,\r\n UniquePackageRef: action.payload.membershipPackageDetails.UniquePackageRef,\r\n isRenewal: action.payload.membershipPackageDetails.isRenewal,\r\n MembershipExpiryDate: action.payload.membershipPackageDetails.MembershipExpiryDate,\r\n notPartOfPackage: action.payload.membershipPackageDetails.notPartOfPackage\r\n }\r\n\r\n if (action.payload.membershipPackageDetails.isEdit) {\r\n user.userNo = action.payload.membershipPackageDetails.userNo;\r\n e.Users.push(user);\r\n }\r\n else {\r\n if (action.payload.membershipPackageDetails.userNo < 1) {\r\n user.userNo = Math.floor((Math.random() * 100000) + 100000);\r\n user.UDFs = [];\r\n }\r\n else {\r\n user.userNo = action.payload.membershipPackageDetails.userNo;\r\n }\r\n\r\n e.Users.push(user);\r\n }\r\n }\r\n\r\n return e;\r\n });\r\n\r\n\r\n mempackages = mempackages.filter(x => x.MembershipPackageID !== memPackage.MembershipPackageID);\r\n mempackages.push(memPackage);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n membershippackages: mempackages,\r\n membershipPackage: memPackage,\r\n membershippackagesError: ''\r\n }\r\n\r\n\r\n }\r\n\r\n case DELETE_MEMBERSHIPTYPEPERSON: {\r\n\r\n let mempackages = JSON.parse(JSON.stringify(state.membershippackages));\r\n let memPackage = { ...mempackages.filter(x => x.MembershipPackageID == action.payload.MembershipPackageID)[0] };\r\n\r\n memPackage.MembershipProducts = memPackage.MembershipProducts.map(e => {\r\n\r\n if (e.MembershipType === \"Membership\" && e.MembershipTypeID == action.payload.membershipTypeID) {\r\n e.Users = e.Users.filter(x => x.userNo != action.payload.userNo);\r\n }\r\n\r\n return e;\r\n });\r\n\r\n mempackages = mempackages.filter(x => x.MembershipPackageID !== memPackage.MembershipPackageID);\r\n mempackages.push(memPackage);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n membershippackages: mempackages,\r\n membershipPackage: memPackage,\r\n membershippackagesError: ''\r\n }\r\n }\r\n\r\n case UPDATE_MEMBERSHIPADDONS_QUANTITY: {\r\n\r\n let mempackages = JSON.parse(JSON.stringify(state.membershippackages));\r\n let memPackage = { ...mempackages.filter(x => x.MembershipPackageID == action.payload.MembershipPackageID)[0] };\r\n\r\n memPackage.MembershipProducts = memPackage.MembershipProducts.map(e => {\r\n\r\n if (e.MembershipType === \"AddOn\" && e.MembershipTypeID == action.payload.MembershipTypeID) {\r\n if (e.hasOwnProperty(\"Quantity\") && e.Quantity == 0) {\r\n e.Quantity = 1;\r\n }\r\n else {\r\n e.Quantity = 0;\r\n }\r\n\r\n e.isRenewPackage = action.payload.isRenewPackage;\r\n }\r\n\r\n return e;\r\n });\r\n\r\n mempackages = mempackages.filter(x => x.MembershipPackageID !== memPackage.MembershipPackageID);\r\n mempackages.push(memPackage);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n membershippackages: mempackages,\r\n membershipPackage: memPackage,\r\n membershippackagesError: ''\r\n }\r\n\r\n }\r\n case MEMBERSHIPPACKAGES_DATA_ERROR: {\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n membershippackagesError: action.error,\r\n familymembersnotpartofPackage: []\r\n }\r\n }\r\n\r\n case MEMBERSHIPPACKAGES_DATA_RESET: {\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n membershippackagesError: '',\r\n familymembersnotpartofPackage: [],\r\n membershippackages: [],\r\n membershipPackage: {}\r\n };\r\n }\r\n\r\n case UPDATE_PACKAGE_FOR_RENEW: {\r\n\r\n let mempackages = JSON.parse(JSON.stringify(state.membershippackages));\r\n let memPackage = { ...mempackages.filter(x => x.MembershipPackageID == action.payload.packageID)[0] };\r\n\r\n var membersnotpartofPackage = { ...state.familymembersnotpartofPackage }\r\n\r\n if (memPackage) {\r\n\r\n let memberpackageDetails = genfunction.UpdateMembershipPackageForRenew(memPackage, action.payload.memberMemberships.membermerberhips[0], action.payload.customer);\r\n memPackage = memberpackageDetails.membershipPackage;\r\n membersnotpartofPackage = memberpackageDetails.userslist;\r\n\r\n mempackages = mempackages.filter(x => x.MembershipPackageID !== action.payload.packageID);\r\n mempackages.push(memPackage);\r\n }\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n membershippackages: mempackages,\r\n membershipPackage: memPackage,\r\n familymembersnotpartofPackage: membersnotpartofPackage,\r\n membershippackagesError: ''\r\n }\r\n }\r\n\r\n case MEMBERSHIPPACKAGE_DATA_RESET: {\r\n\r\n return {\r\n ...state,\r\n membershipPackage: {}\r\n };\r\n\r\n }\r\n case UPDATE_FAMILYMEMBERS_NOT_PART_OF_PACKAGE: {\r\n\r\n var membersnotpartofPackage = [...state.familymembersnotpartofPackage];\r\n\r\n var member = { ...membersnotpartofPackage.filter(x => x.userNo == action.payload.userNo)[0] };\r\n\r\n if (action.payload.isAdded) {\r\n member.notpartofPackage = false;\r\n }\r\n else {\r\n member.notpartofPackage = true;\r\n }\r\n\r\n membersnotpartofPackage = membersnotpartofPackage.filter(x => x.userNo != action.payload.userNo);\r\n membersnotpartofPackage.push(member);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n familymembersnotpartofPackage: membersnotpartofPackage,\r\n }\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerMembershipPackages;","export const GET_GATICKET_LOADING = 'REDUX_SAGA_GET_GATICKET_LOADING';\r\nexport const GATICKET_DATA_SUCCESS = 'REDUX_SAGA_GATICKET_DATA_SUCCESS';\r\nexport const GATICKETDISPLAYAREA_DATA_SUCCESS = 'REDUX_SAGA_GATICKETDISPLAYAREA_DATA_SUCCESS';\r\nexport const GATICKET_DATA_ERROR = 'REDUX_SAGA_GATICKET_DATA_ERROR';\r\nexport const GATICKET_UPDATE_QUANTITY = 'REDUX_SAGA_GATICKET_UPDATE_QUANTITY';\r\n\r\nexport const actionGetGATickets = (dispatch, DisplayArea, GACouponCode) => {\r\n dispatch({\r\n type: GET_GATICKET_LOADING,\r\n payload: { DisplayArea, GACouponCode }\r\n })\r\n};\r\n\r\nexport const actionUpdateQuantityToProduct = (dispatch, ProductID, Quantity) => {\r\n dispatch({\r\n type: GATICKET_UPDATE_QUANTITY,\r\n payload: { ProductID, Quantity }\r\n })\r\n}","import {\r\n GET_GATICKET_LOADING, GATICKET_DATA_SUCCESS, GATICKET_DATA_ERROR,\r\n GATICKETDISPLAYAREA_DATA_SUCCESS, GATICKET_UPDATE_QUANTITY\r\n} from \"../actions/actionGATicket\";\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nimport { genfunction } from 'helpers';\r\n\r\nconst sessionKey = \"GATickets_View\";\r\n\r\nconst initialState = {\r\n GATickets: loadState(sessionKey, []),\r\n loading: false,\r\n GATicketsError: '',\r\n GADisplayAreas: []\r\n};\r\n\r\nfunction reducerGaTicket(state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_GATICKET_LOADING: {\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n }\r\n\r\n\r\n case GATICKET_DATA_SUCCESS: {\r\n\r\n let newGATickets = action.payload.map(obj => ({ ...obj, Quantity: 0, TicketAmount: 0, TaxAmount: 0, TotalAmount: 0 }))\r\n let oldGATickets = state.GATickets.filter(oldticket => {\r\n let existticket = newGATickets.find(newticket => newticket.ProductID == oldticket.ProductID);\r\n if (existticket == undefined)\r\n return true;\r\n });\r\n\r\n saveState(sessionKey, [...newGATickets, ...oldGATickets]);\r\n return {\r\n ...state,\r\n GATickets: [...newGATickets, ...oldGATickets],\r\n loading: false,\r\n GATicketsError: ''\r\n };\r\n }\r\n\r\n case GATICKETDISPLAYAREA_DATA_SUCCESS: {\r\n return {\r\n ...state,\r\n GADisplayAreas: action.payload,\r\n };\r\n }\r\n\r\n case GATICKET_UPDATE_QUANTITY: {\r\n let oldticketstate = [\r\n ...state.GATickets\r\n ]\r\n let gatickets = oldticketstate.map(obj => {\r\n let ticket = { ...obj };\r\n if (ticket.ProductID === action.payload.ProductID) {\r\n ticket.Quantity = action.payload.Quantity;\r\n }\r\n return ticket;\r\n })\r\n\r\n gatickets = genfunction.calculategaticketamount(gatickets);\r\n\r\n return {\r\n ...state,\r\n GATickets: gatickets,\r\n };\r\n }\r\n\r\n case GATICKET_DATA_ERROR: {\r\n\r\n let error = \"\";\r\n if (action.error.Errors) {\r\n error = action.error.Errors[0].ErrorMessage\r\n }\r\n else\r\n error = action.error.message;\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n GATickets: [],\r\n GATicketsError: error\r\n }\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerGaTicket;","export const GET_LOSTMEMBER_INFO_LOADING = 'REDUX_SAGA_GET_LOSTMEMBER_INFO_LOADING';\r\nexport const LOSTMEMBER_DATA_SUCCESS = 'REDUX_SAGA_LOSTMEMBER_DATA_SUCCESS';\r\nexport const LOSTMEMBER_DATA_ERROR = 'REDUX_SAGA_LOSTMEMBER_DATA_ERROR';\r\nexport const LOSTMEMBER_DATA_RESET = 'REDUX_SAGA_LOSTMEMBER_DATA_RESET';\r\n\r\nexport const actionSendEmail = (dispatch, request) => {\r\n dispatch({ type: GET_LOSTMEMBER_INFO_LOADING, payload: request })\r\n};\r\n\r\n\r\nexport const actionResetSendEmail = (dispatch) => {\r\n dispatch({ type: LOSTMEMBER_DATA_RESET })\r\n};\r\n","import {\r\n GET_LOSTMEMBER_INFO_LOADING, LOSTMEMBER_DATA_SUCCESS,\r\n LOSTMEMBER_DATA_ERROR, LOSTMEMBER_DATA_RESET\r\n} from \"../actions/actionLostMember\";\r\n\r\nconst initialState = {\r\n emailsend: false,\r\n loading: false,\r\n lostmemberError: ''\r\n};\r\n\r\nfunction reducerLostMember(state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_LOSTMEMBER_INFO_LOADING: {\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n }\r\n\r\n\r\n case LOSTMEMBER_DATA_SUCCESS: {\r\n\r\n return {\r\n ...state,\r\n emailsend: true,\r\n lostmemberError: ''\r\n };\r\n }\r\n\r\n case LOSTMEMBER_DATA_ERROR: {\r\n\r\n return {\r\n ...state,\r\n lostmember: false,\r\n lostmemberError: action.error\r\n };\r\n }\r\n\r\n case LOSTMEMBER_DATA_RESET: {\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n emailsend: false,\r\n lostmemberError: ''\r\n }\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerLostMember;","import {\r\n MEMBER_MEMBERSHIP_LOADING, MEMBER_MEMBERSHIP_SUCCESS,\r\n MEMBER_MEMBERSHIP_ERROR, RESET_MEMBER_MEMBERSHIP\r\n} from \"../actions/actionMemberMemberships\";\r\n\r\nconst initialState = {\r\n membermerberhips: [],\r\n loading: false,\r\n membermerberhipsError: ''\r\n};\r\n\r\nfunction reducerMemberMemberships(state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case MEMBER_MEMBERSHIP_LOADING: {\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n }\r\n\r\n case MEMBER_MEMBERSHIP_SUCCESS: {\r\n\r\n return {\r\n ...state,\r\n membermerberhips: action.payload,\r\n membermerberhipsError: ''\r\n };\r\n }\r\n\r\n case RESET_MEMBER_MEMBERSHIP: {\r\n\r\n return {\r\n ...state,\r\n membermerberhips: [],\r\n membermerberhipsError: ''\r\n };\r\n }\r\n\r\n case MEMBER_MEMBERSHIP_ERROR: {\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n membermerberhipsError: action.error\r\n }\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerMemberMemberships;","\r\nexport const MEMBER_MEMBERSHIP_LOADING = 'REDUX_SAGA_MEMBER_MEMBERSHIP_LOADING';\r\nexport const MEMBER_MEMBERSHIP_SUCCESS = 'REDUX_SAGA_MEMBER_MEMBERSHIP_SUCCESS';\r\nexport const MEMBER_MEMBERSHIP_ERROR = 'REDUX_SAGA_MEMBER_MEMBERSHIP_ERROR';\r\nexport const RESET_MEMBER_MEMBERSHIP = 'REDUX_SAGA_RESET_MEMBER_MEMBERSHIP';\r\n\r\nexport const actionGetMemberMemberships = (dispatch, customerId) => {\r\n dispatch({ type: MEMBER_MEMBERSHIP_LOADING, customerId: customerId });\r\n};\r\n","\r\nexport const CUSTOMER_LOADING = 'REDUX_SAGA_CUSTOMER_LOADING';\r\nexport const CUSTOMER_SUCCESS = 'REDUX_SAGA_CUSTOMER_SUCCESS';\r\nexport const CUSTOMER_ERROR = 'REDUX_SAGA_CUSTOMER_ERROR';\r\nexport const RESET_CUSTOMER = 'REDUX_SAGA_RESET_CUSTOMER';\r\n\r\nexport const actionGetCustomer = (dispatch, customerId, cstemail) => {\r\n dispatch({ type: CUSTOMER_LOADING, customerId: customerId, cstemail: cstemail });\r\n};\r\n\r\nexport const actionResetCustomer = (dispatch) => {\r\n dispatch({ type: RESET_CUSTOMER })\r\n};\r\n","import {\r\n CUSTOMER_LOADING, CUSTOMER_SUCCESS,\r\n CUSTOMER_ERROR, RESET_CUSTOMER\r\n} from \"../actions/actionCustomer\";\r\n\r\nconst initialState = {\r\n customer: [],\r\n loading: false,\r\n customerError: ''\r\n};\r\n\r\nfunction reducerCustomer(state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case CUSTOMER_LOADING: {\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n }\r\n\r\n case CUSTOMER_SUCCESS: {\r\n\r\n return {\r\n ...state,\r\n customer: action.payload,\r\n customerError: ''\r\n };\r\n }\r\n\r\n case CUSTOMER_ERROR: {\r\n\r\n return {\r\n ...state,\r\n customer: [],\r\n customerError: action.error\r\n };\r\n }\r\n\r\n case RESET_CUSTOMER: {\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n customer: [],\r\n customerError: ''\r\n }\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerCustomer;","export const GET_BOOKING_INFO_LOADING = 'REDUX_SAGA_GET_BOOKING_INFO_LOADING';\r\nexport const BOOKING_DATA_SUCCESS = 'REDUX_SAGA_BOOKING_DATA_SUCCESS';\r\nexport const BOOKING_DATA_ERROR = 'REDUX_SAGA_BOOKING_DATA_ERROR';\r\nexport const BOOKING_DATA_RESET = 'REDUX_SAGA_BOOKING_DATA_RESET';\r\nexport const BOOKING_DATA_UPDATE_QUANTITY = 'REDUX_SAGA_BOOKING_DATA_UPDATE_QUANTITY';\r\n\r\nexport const actionGetBooking = (dispatch, bookingID, email, lastName) => {\r\n dispatch({ type: GET_BOOKING_INFO_LOADING, payload: { bookingID: bookingID, email: email, lastName: lastName } });\r\n};\r\n\r\nexport const actionResetBooking = (dispatch) => {\r\n dispatch({ type: BOOKING_DATA_RESET })\r\n};\r\n\r\nexport const actionUpdateQuantity = (dispatch, prodID, quantity) => {\r\n dispatch({ type: BOOKING_DATA_UPDATE_QUANTITY, payload: { prodID: prodID, quantity: quantity } })\r\n}","import {\r\n GET_BOOKING_INFO_LOADING, BOOKING_DATA_SUCCESS,\r\n BOOKING_DATA_ERROR, BOOKING_DATA_RESET, BOOKING_DATA_UPDATE_QUANTITY\r\n} from \"../actions/actionBooking\";\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nconst sessionKey1 = \"bookingrecord\";\r\n\r\nconst initialState = {\r\n booking: loadState(sessionKey1, []),\r\n loading: false,\r\n bookingError: ''\r\n};\r\n\r\nfunction reducerBooking(state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case GET_BOOKING_INFO_LOADING: {\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n }\r\n\r\n case BOOKING_DATA_SUCCESS: {\r\n\r\n saveState(sessionKey1, action.payload)\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n booking: action.payload,\r\n bookingError: ''\r\n };\r\n }\r\n\r\n case BOOKING_DATA_RESET: {\r\n\r\n saveState(sessionKey1, [])\r\n\r\n return {\r\n ...state,\r\n booking: [],\r\n loading: false,\r\n bookingError: ''\r\n };\r\n }\r\n\r\n case BOOKING_DATA_ERROR: {\r\n\r\n saveState(sessionKey1, [])\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n bookingError: action.error\r\n }\r\n }\r\n\r\n case BOOKING_DATA_UPDATE_QUANTITY: {\r\n\r\n let booking = { ...state.booking }\r\n\r\n booking[0].BookingProducts = booking[0].BookingProducts.map(prod => {\r\n\r\n if (prod.TourProductID == action.payload.prodID) {\r\n prod.newQuantity = action.payload.quantity;\r\n prod.isModify = true;\r\n }\r\n\r\n return prod;\r\n });\r\n\r\n saveState(sessionKey1, booking);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n booking: booking\r\n }\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerBooking;","import {\r\n GITCARD_DISPLAYAREAS_LOADING, GET_GITCARD_DISPLAYAREAS_DATA_SUCCESS,\r\n GET_GITCARD_DISPLAYAREAS_DATA_ERROR, RESET_GITCARD_DISPLAYAREAS\r\n} from \"../actions/actionGiftCardDisplayAreas\";\r\n\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nconst sessionKey = \"GiftCardDisplayAreaNos\";\r\n\r\nconst initialState = {\r\n giftcardsdisplayAreas: [],\r\n giftcarddisplayArea: loadState(sessionKey, {}),\r\n loading: false,\r\n giftcardsdisplayAreasError: ''\r\n};\r\n\r\nfunction reducerGiftCardDisplayAreas(state = initialState, action) {\r\n switch (action.type) {\r\n case GITCARD_DISPLAYAREAS_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n giftcardsdisplayAreasError: ''\r\n };\r\n }\r\n\r\n case GET_GITCARD_DISPLAYAREAS_DATA_SUCCESS: {\r\n\r\n let newObj = {};\r\n\r\n if (action.id !== null && action.id !== undefined) {\r\n let newDisplayAreas = JSON.parse(JSON.stringify(action.payload));\r\n newObj = { ...newDisplayAreas.filter(x => x.DisplayAreaNo == action.id)[0] };\r\n\r\n saveState(sessionKey, newObj);\r\n }\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n giftcardsdisplayAreas: action.payload,\r\n giftcarddisplayArea: newObj,\r\n giftcardsdisplayAreasError: ''\r\n };\r\n }\r\n\r\n case GET_GITCARD_DISPLAYAREAS_DATA_ERROR: {\r\n return {\r\n ...state,\r\n loading: false,\r\n giftcardsdisplayAreas: action.payload,\r\n giftcardsdisplayAreasError: action.error\r\n }\r\n }\r\n case RESET_GITCARD_DISPLAYAREAS: {\r\n\r\n saveState(sessionKey, {});\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n giftcarddisplayArea: {},\r\n giftcardsdisplayAreas: [],\r\n giftcardsdisplayAreasError: ''\r\n }\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerGiftCardDisplayAreas;","export const GITCARD_DISPLAYAREAS_LOADING = 'REDUX_SAGA_GITCARD_DISPLAYAREAS_LOADING';\r\nexport const GET_GITCARD_DISPLAYAREAS_DATA_SUCCESS = 'REDUX_SAGA_GET_GITCARD_DISPLAYAREAS_DATA_SUCCESS';\r\nexport const RESET_GITCARD_DISPLAYAREAS = \"REDUX_SAGA_RESET_GITCARD_DISPLAYAREAS\";\r\nexport const GET_GITCARD_DISPLAYAREAS_DATA_ERROR = 'REDUX_SAGA_GET_GITCARD_DISPLAYAREAS_DATA_ERROR';\r\n\r\nexport const actionGetGiftCardDisplayAreas = (dispatch) => {\r\n dispatch({ type: GITCARD_DISPLAYAREAS_LOADING })\r\n};\r\n\r\nexport const actionResetGiftCardDisplayAreas = (dispatch) => {\r\n dispatch({ type: RESET_GITCARD_DISPLAYAREAS })\r\n};","export const GITCARD_LOADING = 'REDUX_SAGA_GITCARD_LOADING';\r\nexport const GET_GITCARD_DATA_SUCCESS = 'REDUX_SAGA_GET_GITCARD_DATA_SUCCESS';\r\nexport const RESET_GITCARD = \"REDUX_SAGA_RESET_GITCARD\";\r\nexport const GET_GITCARD_DATA_ERROR = 'REDUX_SAGA_GET_GITCARD_DATA_ERROR';\r\nexport const UPATE_GITCARD_DATA = 'REDUX_SAGA_UPATE_GITCARD_DATA';\r\nexport const UPDATE_GIFTCARD_QUANTITY = 'REDUX_SAGA_UPDATE_GIFTCARD_QUANTITY';\r\nexport const UPDATE_GIFTCARD_CUSTOMAMOUNT = 'REDUX_SAGA_UPDATE_GIFTCARD_CUSTOMAMOUNT';\r\nexport const ADDTOCART_GIFTCARD = 'REDUX_SAGA_ADDTOCART_GIFTCARD';\r\nexport const REMOVE_GIFTCARD = 'REDUX_SAGA_REMOVE_GIFTCARD';\r\n\r\nexport const actionGetGiftCards = (dispatch, displayAreaNo) => {\r\n dispatch({ type: GITCARD_LOADING, payload: { displayAreaNo: displayAreaNo } })\r\n};\r\n\r\nexport const actionUpdateGiftCardDropDown = (dispatch, key, price) => {\r\n dispatch({ type: UPATE_GITCARD_DATA, payload: { key: key, price: price } })\r\n};\r\n\r\nexport const actionUpdateGiftCrdQuantity = (dispatch, ProductID, Quantity, IsCheckOut) => {\r\n dispatch({ type: UPDATE_GIFTCARD_QUANTITY, payload: { ProductID, Quantity, IsCheckOut } })\r\n}\r\n\r\nexport const actionUpdateGiftCardCustomAmout = (dispatch, ProductID, Value) => {\r\n dispatch({ type: UPDATE_GIFTCARD_CUSTOMAMOUNT, payload: { ProductID, Value } })\r\n}\r\n\r\nexport const actionAddToCartGiftCards = (dispatch, DisplayArea) => {\r\n dispatch({ type: ADDTOCART_GIFTCARD, payload: { DisplayArea } })\r\n};\r\n\r\nexport const actionRemoveGiftCard = (dispatch, ProductID) => {\r\n dispatch({ type: REMOVE_GIFTCARD, payload: { ProductID } })\r\n}\r\n\r\nexport const actionResetGiftCards = (dispatch) => {\r\n dispatch({ type: RESET_GITCARD })\r\n};","import {\r\n GITCARD_LOADING, GET_GITCARD_DATA_SUCCESS,\r\n RESET_GITCARD, GET_GITCARD_DATA_ERROR, UPATE_GITCARD_DATA, UPDATE_GIFTCARD_QUANTITY,\r\n UPDATE_GIFTCARD_CUSTOMAMOUNT, REMOVE_GIFTCARD, ADDTOCART_GIFTCARD\r\n} from \"../actions/actionGiftCards\";\r\n\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nconst sessionKey = \"GiftCard\";\r\n\r\nconst initialState = {\r\n giftcards: loadState(sessionKey, []),\r\n loading: false,\r\n giftcardsError: ''\r\n};\r\n\r\nfunction reducerGiftCards(state = initialState, action) {\r\n switch (action.type) {\r\n case GITCARD_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n giftcardsError: ''\r\n };\r\n }\r\n\r\n case GET_GITCARD_DATA_SUCCESS: {\r\n\r\n let previousGiftCards = [...state.giftcards];\r\n\r\n let newGiftCards = action.payload;\r\n\r\n //if (previousGiftCards.length === 0 || (action.payload.length > 0 && previousGiftCards.length > 0 && action.payload[0].DisplayArea !== previousGiftCards[0].DisplayArea)) {\r\n\r\n newGiftCards = newGiftCards.map(m => {\r\n m.Qty = 0;\r\n m.CartQty = 0;\r\n m.TotalAmount = 0;\r\n m.CartTotalAmount = 0;\r\n m.AddedToCart = false;\r\n\r\n if (m.hasOwnProperty('MaxPrice')) {\r\n m.CustomAmount = 0;\r\n m.InvalidAmount = false;\r\n }\r\n\r\n if (previousGiftCards && previousGiftCards.length > 0) {\r\n previousGiftCards.push(m);\r\n }\r\n\r\n return m;\r\n })\r\n\r\n if (previousGiftCards && previousGiftCards.length > 0) {\r\n saveState(sessionKey, previousGiftCards);\r\n }\r\n else {\r\n saveState(sessionKey, newGiftCards);\r\n }\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n giftcards: previousGiftCards && previousGiftCards.length > 0 ? previousGiftCards : newGiftCards,\r\n giftcardsError: ''\r\n };\r\n }\r\n\r\n case UPATE_GITCARD_DATA: {\r\n\r\n let newGiftCards = [...state.giftcards];\r\n let prevQty = 0;\r\n\r\n newGiftCards = newGiftCards.map(m => {\r\n\r\n if (m.ProductImageURL === action.payload.key) {\r\n\r\n if (m.Qty > 0) {\r\n prevQty = m.Qty;\r\n }\r\n\r\n if (m.Price === action.payload.price) {\r\n m.isSelected = true;\r\n m.Qty = prevQty;\r\n\r\n m.TotalAmount = m.Price * m.Qty;\r\n }\r\n else {\r\n m.Qty = 0;\r\n m.TotalAmount = 0;\r\n m.isSelected = false;\r\n }\r\n }\r\n\r\n return m;\r\n })\r\n\r\n saveState(sessionKey, newGiftCards);\r\n\r\n return {\r\n ...state, giftcards: newGiftCards\r\n }\r\n }\r\n\r\n case UPDATE_GIFTCARD_QUANTITY: {\r\n\r\n let newGiftCards = [...state.giftcards];\r\n\r\n newGiftCards = newGiftCards.map(m => {\r\n\r\n if (m.ProductID === action.payload.ProductID) {\r\n m.Qty = action.payload.Quantity;\r\n m.TotalAmount = m.Price * m.Qty;\r\n\r\n if (m.AddedToCart && action.payload.IsCheckOut) {\r\n m.CartQty = action.payload.Quantity;\r\n m.CartTotalAmount = m.Price * m.CartQty;\r\n\r\n m.Qty = m.TotalAmount = 0;\r\n }\r\n }\r\n\r\n return m;\r\n })\r\n\r\n saveState(sessionKey, newGiftCards);\r\n\r\n return {\r\n ...state, giftcards: newGiftCards\r\n }\r\n\r\n }\r\n\r\n case UPDATE_GIFTCARD_CUSTOMAMOUNT: {\r\n\r\n let newGiftCards = [...state.giftcards];\r\n\r\n newGiftCards = newGiftCards.map(m => {\r\n\r\n if (m.ProductID === action.payload.ProductID) {\r\n m.TotalAmount = action.payload.Value;\r\n m.CartTotalAmount = action.payload.Value;\r\n m.Qty = 1;\r\n m.CartQty = 1;\r\n m.InvalidAmount = false;\r\n\r\n if ((action.payload.Value > m.MaxPrice) || (action.payload.Value < m.Price)) {\r\n m.InvalidAmount = true;\r\n }\r\n\r\n if (m.AddedToCart && action.payload.IsCheckOut) {\r\n m.CartTotalAmount = action.payload.Value;\r\n m.Qty = m.TotalAmount = 0;\r\n }\r\n }\r\n\r\n return m;\r\n })\r\n\r\n saveState(sessionKey, newGiftCards);\r\n\r\n return {\r\n ...state, giftcards: newGiftCards\r\n }\r\n }\r\n case ADDTOCART_GIFTCARD: {\r\n\r\n let newGiftCards = [...state.giftcards];\r\n\r\n newGiftCards = newGiftCards.map(m => {\r\n\r\n if (m.DisplayArea === action.payload.DisplayArea) {\r\n\r\n if (!m.hasOwnProperty('MaxPrice')) {\r\n\r\n m.AddedToCart = true;\r\n m.CartQty += m.Qty;\r\n m.CartTotalAmount = m.Price * m.CartQty;\r\n\r\n m.Qty = m.TotalAmount = 0;\r\n }\r\n else if (m.hasOwnProperty('MaxPrice')) {\r\n m.AddedToCart = true;\r\n m.Qty = m.TotalAmount = 0;\r\n }\r\n }\r\n\r\n return m;\r\n })\r\n\r\n saveState(sessionKey, newGiftCards);\r\n\r\n return {\r\n ...state, giftcards: newGiftCards\r\n }\r\n }\r\n\r\n case REMOVE_GIFTCARD: {\r\n\r\n let newGiftCards = [...state.giftcards];\r\n\r\n newGiftCards = newGiftCards.map(m => {\r\n\r\n if (m.ProductID === action.payload.ProductID) {\r\n m.TotalAmount = 0;\r\n m.CartTotalAmount = 0;\r\n m.Qty = 0;\r\n m.CartQty = 0;\r\n m.AddedToCart = false;\r\n }\r\n\r\n return m;\r\n })\r\n\r\n if (newGiftCards && newGiftCards.filter(x => x.CartQty > 0).length < 1) {\r\n newGiftCards = newGiftCards.map(m => {\r\n\r\n m.AddedToCart = false;\r\n return m;\r\n })\r\n }\r\n\r\n saveState(sessionKey, newGiftCards);\r\n\r\n return {\r\n ...state, giftcards: newGiftCards\r\n }\r\n\r\n }\r\n\r\n case GET_GITCARD_DATA_ERROR: {\r\n return {\r\n ...state,\r\n loading: false,\r\n giftcards: action.payload,\r\n giftcardsError: action.error\r\n }\r\n }\r\n case RESET_GITCARD: {\r\n\r\n saveState(sessionKey, []);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n giftcards: [],\r\n giftcardsError: ''\r\n }\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerGiftCards;","export const COSTRATE_LOADING = 'REDUX_SAGA_COSTRATE_LOADING';\r\nexport const GET_COSTRATE_DATA_SUCCESS = 'REDUX_SAGA_GET_COSTRATE_DATA_SUCCESS';\r\nexport const GET_COSTRATE_DATA_ERROR = 'REDUX_SAGA_GET_COSTRATE_DATA_ERROR';\r\nexport const COSTRATE_END_LOADING = 'REDUX_SAGA_COSTRATE_END_LOADING';\r\nexport const RESET_COSTRATE = 'REDUX_SAGA_RESET_COSTRATE';\r\n\r\nexport const actionGetCostRate = (dispatch, groupname, subgroup) => {\r\n dispatch({\r\n type: COSTRATE_LOADING, payload:\r\n { groupname: groupname, subgroup: subgroup }\r\n })\r\n};\r\n\r\nexport const actionResetCostRate = (dispatch) => {\r\n dispatch({ type: RESET_COSTRATE })\r\n}","import {\r\n COSTRATE_LOADING, GET_COSTRATE_DATA_SUCCESS,\r\n GET_COSTRATE_DATA_ERROR, COSTRATE_END_LOADING, RESET_COSTRATE\r\n} from \"../actions/actionCostRate\";\r\n\r\nconst initialState = {\r\n costrate: {},\r\n loading: false,\r\n costraterror: ''\r\n};\r\n\r\nfunction reducerCostRate(state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case COSTRATE_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n costraterror: ''\r\n };\r\n }\r\n\r\n case GET_COSTRATE_DATA_SUCCESS: {\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n costrate: action.payload.length > 0 ? action.payload[0] : null,\r\n costraterror: ''\r\n };\r\n }\r\n\r\n\r\n case GET_COSTRATE_DATA_ERROR: {\r\n return {\r\n ...state,\r\n loading: false,\r\n costrate: {},\r\n costraterror: action.error\r\n }\r\n }\r\n\r\n case COSTRATE_END_LOADING: {\r\n return {\r\n ...state,\r\n loading: false\r\n }\r\n }\r\n\r\n case RESET_COSTRATE: {\r\n return {\r\n ...state,\r\n costrate: {},\r\n loading: false,\r\n costraterror: ''\r\n }\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerCostRate;","export const IDMEUSERDATA_LOADING = 'REDUX_SAGA_IDMEUSERDATA_LOADING';\r\nexport const GET_IDMEUSERDATA_DATA_SUCCESS = 'REDUX_SAGA_GET_IDMEUSERDATA_DATA_SUCCESS';\r\nexport const GET_IDMEUSERDATA_DATA_ERROR = 'REDUX_SAGA_GET_IDMEUSERDATA_DATA_ERROR';\r\nexport const IDMEUSERDATA_END_LOADING = 'REDUX_SAGA_IDMEUSERDATA_END_LOADING';\r\nexport const RESET_IDMEUSERDATA = 'REDUX_SAGA_RESET_IDMEUSERDATA';\r\n\r\nexport const actionGetIDMEUSERDATA = (dispatch, token) => {\r\n dispatch({\r\n type: IDMEUSERDATA_LOADING, payload:\r\n { token: token }\r\n })\r\n};\r\n\r\nexport const actionResetIDMEUSERDATA = (dispatch) => {\r\n dispatch({ type: RESET_IDMEUSERDATA })\r\n}","import {\r\n IDMEUSERDATA_LOADING, GET_IDMEUSERDATA_DATA_SUCCESS,\r\n GET_IDMEUSERDATA_DATA_ERROR, IDMEUSERDATA_END_LOADING, RESET_IDMEUSERDATA\r\n} from \"../actions/actionIDMeUserData\";\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nconst sessionKey = \"userdata\";\r\n\r\nconst initialState = {\r\n userdata: loadState(sessionKey, {}),\r\n loading: false,\r\n userdataerror: ''\r\n};\r\n\r\n\r\nfunction reducerIDMeUserData(state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case IDMEUSERDATA_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n userdataerror: ''\r\n };\r\n }\r\n\r\n case GET_IDMEUSERDATA_DATA_SUCCESS: {\r\n\r\n saveState(sessionKey, action.payload);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n userdata: action.payload,\r\n userdataerror: ''\r\n };\r\n }\r\n\r\n case GET_IDMEUSERDATA_DATA_ERROR: {\r\n\r\n saveState(sessionKey, action.payload);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n userdata: {},\r\n userdataerror: action.error\r\n }\r\n }\r\n\r\n case IDMEUSERDATA_END_LOADING: {\r\n return {\r\n ...state,\r\n loading: false\r\n }\r\n }\r\n\r\n case RESET_IDMEUSERDATA: {\r\n\r\n saveState(sessionKey, {});\r\n\r\n return {\r\n ...state,\r\n userdata: {},\r\n loading: false,\r\n userdataerror: ''\r\n }\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerIDMeUserData;","export const USERDEFINEDFIELDS_LOADING = 'REDUX_SAGA_USERDEFINEDFIELDS_LOADING';\r\nexport const USERDEFINEDFIELDS_DATA_SUCCESS = 'REDUX_SAGA_USERDEFINEDFIELDS_DATA_SUCCESS';\r\nexport const USERDEFINEDFIELDS_ADD_UDF_TO_TOUREVENT = 'REDUX_SAGA_USERDEFINEDFIELDS_ADD_UDF_TO_TOUREVENT';\r\nexport const UPDATE_USERDEFINEDFIELD = 'REDUX_SAGA_UPDATE_USERDEFINEDFIELD';\r\nexport const RESET_USERDEFINEDFIELDS = \"REDUX_SAGA_RESET_USERDEFINEDFIELDS\";\r\nexport const USERDEFINEDFIELDS_DATA_ERROR = 'REDUX_SAGA_USERDEFINEDFIELDS_DATA_ERROR';\r\n\r\nexport const actionGetUserDefinedFields = (dispatch, type, id, listOfIds) => {\r\n dispatch({ type: USERDEFINEDFIELDS_LOADING, payload: { type: type, id: id, listOfIds: listOfIds } })\r\n};\r\n\r\nexport const actionAddUDFToTourEvent = (dispatch, bookingID, toureventID) => {\r\n dispatch({ type: USERDEFINEDFIELDS_ADD_UDF_TO_TOUREVENT, payload: { bookingID: bookingID, toureventID: toureventID } })\r\n}\r\n\r\nexport const actionUpdateUDF = (dispatch, bookingID, toureventID, categoryName, udfID, value) => {\r\n dispatch({ type: UPDATE_USERDEFINEDFIELD, payload: { bookingID: bookingID, toureventID: toureventID, categoryName: categoryName, udfID: udfID, value: value } })\r\n};\r\n\r\nexport const actionResetUDFs = (dispatch) => {\r\n dispatch({ type: RESET_USERDEFINEDFIELDS })\r\n};\r\n","import {\r\n USERDEFINEDFIELDS_LOADING, USERDEFINEDFIELDS_DATA_SUCCESS, USERDEFINEDFIELDS_ADD_UDF_TO_TOUREVENT,\r\n UPDATE_USERDEFINEDFIELD, RESET_USERDEFINEDFIELDS, USERDEFINEDFIELDS_DATA_ERROR\r\n} from \"../actions/actionBookingUserDefinedFields\";\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nconst sessionKey1 = \"userdefinedfields\";\r\nconst sessionKey2 = \"udfIDNo\";\r\n\r\nconst initialState = {\r\n bookingUDFs: loadState(sessionKey1, []),\r\n udfIDNo: loadState(sessionKey2, 0),\r\n loading: false,\r\n bookingUDFsError: ''\r\n};\r\n\r\nfunction reducerBookingUserDefinedFields(state = initialState, action) {\r\n\r\n switch (action.type) {\r\n\r\n case USERDEFINEDFIELDS_LOADING: {\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n }\r\n\r\n case USERDEFINEDFIELDS_DATA_SUCCESS: {\r\n\r\n let udfID = 0;\r\n let oldBookingUdfs = JSON.parse(JSON.stringify(state.bookingUDFs));\r\n let bkngUdfs = JSON.parse(JSON.stringify(action.payload));\r\n\r\n\r\n if (oldBookingUdfs && oldBookingUdfs.length > 0) {\r\n udfID = JSON.parse(JSON.stringify(state.udfIDNo));\r\n\r\n oldBookingUdfs.map(oldBkng => {\r\n\r\n if (bkngUdfs && bkngUdfs.length > 0 && bkngUdfs.filter(x => x.BookingTypeID === oldBkng.BookingTypeID).length < 1) {\r\n\r\n let oldBooking = oldBookingUdfs.filter(x => x.BookingTypeID == oldBkng.BookingTypeID)[0];\r\n\r\n if (oldBooking) {\r\n bkngUdfs.push(oldBooking);\r\n }\r\n }\r\n });\r\n }\r\n\r\n bkngUdfs = bkngUdfs.filter(x => x.UDFCategories).map(booking => {\r\n\r\n if (oldBookingUdfs && oldBookingUdfs.length > 0 && oldBookingUdfs.filter(x => x.BookingTypeID === booking.BookingTypeID).length > 0) {\r\n let oldBooking = oldBookingUdfs.filter(x => x.BookingTypeID == booking.BookingTypeID)[0];\r\n return oldBooking;\r\n }\r\n\r\n booking.UDFCategories.map(udfCategories => {\r\n\r\n let udfCat = { ...udfCategories };\r\n udfCategories.UserDefinedFields = [];\r\n\r\n if (udfCat.UserDefinedFields && udfCat.UserDefinedFields.length > 0) {\r\n udfCat.UserDefinedFields.map(UDF => {\r\n\r\n udfID = udfID + 1;\r\n UDF.UDFID = udfID;\r\n UDF.Value = '';\r\n UDF.toureventID = 0;\r\n udfCategories.UserDefinedFields.push(UDF);\r\n });\r\n }\r\n });\r\n\r\n return booking;\r\n });\r\n\r\n saveState(sessionKey1, bkngUdfs);\r\n saveState(sessionKey2, udfID);\r\n\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n bookingUDFs: bkngUdfs,\r\n udfIDNo: udfID,\r\n bookingUDFsError: ''\r\n };\r\n }\r\n\r\n case USERDEFINEDFIELDS_ADD_UDF_TO_TOUREVENT: {\r\n\r\n let bkngUdfs = JSON.parse(JSON.stringify(state.bookingUDFs));\r\n let booking = bkngUdfs.find(x => x.BookingTypeID === action.payload.bookingID);\r\n\r\n booking.UDFCategories = booking.UDFCategories.map(udfCategories => {\r\n\r\n if (udfCategories.UserDefinedFields.filter(x => x.toureventID === action.payload.toureventID).length < 1) {\r\n udfCategories.UserDefinedFields.filter(x => x.toureventID === 0).map(UDF => {\r\n var newUDF = Object.assign({}, UDF);\r\n newUDF.toureventID = action.payload.toureventID;\r\n udfCategories.UserDefinedFields.push(newUDF);\r\n });\r\n }\r\n\r\n return udfCategories;\r\n });\r\n\r\n bkngUdfs = bkngUdfs.filter(x => x.BookingTypeID !== action.payload.bookingID);\r\n\r\n bkngUdfs.push(booking);\r\n\r\n saveState(sessionKey1, bkngUdfs);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n bookingUDFs: bkngUdfs,\r\n bookingUDFsError: ''\r\n };\r\n }\r\n\r\n\r\n case UPDATE_USERDEFINEDFIELD: {\r\n\r\n let bkngUdfs = JSON.parse(JSON.stringify(state.bookingUDFs));\r\n let booking = bkngUdfs.find(x => x.BookingTypeID === action.payload.bookingID);\r\n\r\n booking.UDFCategories = booking.UDFCategories.map(udfCategories => {\r\n\r\n if (udfCategories.UDFCategoryName === action.payload.categoryName) {\r\n udfCategories.UserDefinedFields.map(UDF => {\r\n\r\n if (UDF.UDFID === action.payload.udfID && UDF.toureventID === action.payload.toureventID) {\r\n UDF.Value = action.payload.value;\r\n }\r\n });\r\n }\r\n\r\n return udfCategories;\r\n });\r\n\r\n bkngUdfs = bkngUdfs.filter(x => x.BookingTypeID !== action.payload.bookingID);\r\n\r\n bkngUdfs.push(booking);\r\n\r\n saveState(sessionKey1, bkngUdfs);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n bookingUDFs: bkngUdfs,\r\n bookingUDFsError: ''\r\n };\r\n }\r\n\r\n case USERDEFINEDFIELDS_DATA_ERROR: {\r\n\r\n saveState(sessionKey1, action.payload);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n bookingUDFsError: action.error\r\n }\r\n }\r\n\r\n case RESET_USERDEFINEDFIELDS: {\r\n\r\n saveState(sessionKey1, []);\r\n saveState(sessionKey2, 0);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n udfIDNo: 0,\r\n bookingUDFs: [],\r\n bookingUDFsError: ''\r\n };\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerBookingUserDefinedFields;","export const ORDERLOCATIONS_LOADING = 'REDUX_SAGA_ORDERLOCATIONS_LOADING';\r\nexport const SET_ORDERLOCATIONS = 'REDUX_SAGA_SET_ORDERLOCATIONS';\r\nexport const ORDERLOCATIONS_SUCCESS = 'REDUX_SAGA_ORDERLOCATIONS_SUCCESS';\r\nexport const ORDERLOCATIONS_ERROR = 'REDUX_SAGA_ORDERLOCATIONS_ERROR';\r\n\r\nexport const actionGetOrderLocationsByDisplayArea = (dispatch, displayArea) => {\r\n dispatch({ type: ORDERLOCATIONS_LOADING, payload: displayArea })\r\n};\r\n\r\nexport const actionSetOrderLocation = (dispatch, orderLocation) => {\r\n dispatch({ type: SET_ORDERLOCATIONS, payload: orderLocation })\r\n};","import {\r\n ORDERLOCATIONS_LOADING, SET_ORDERLOCATIONS, ORDERLOCATIONS_SUCCESS, ORDERLOCATIONS_ERROR\r\n} from \"../actions/actionOrderLocations\";\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nconst sessionKey = \"orderLocations\";\r\nconst sessionKey2 = \"orderLocation\";\r\n\r\nconst initialState = {\r\n orderLocations: loadState(sessionKey, []),\r\n orderLocation: loadState(sessionKey2, null),\r\n loading: false,\r\n error: ''\r\n};\r\n\r\nfunction reducerOrderLocations(state = initialState, action) {\r\n switch (action.type) {\r\n case ORDERLOCATIONS_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n error: ''\r\n };\r\n }\r\n\r\n case ORDERLOCATIONS_SUCCESS: {\r\n\r\n let orderLocations = [\r\n ...action.payload\r\n ]\r\n\r\n saveState(sessionKey, orderLocations);\r\n\r\n return {\r\n ...state,\r\n orderLocations: orderLocations,\r\n loading: false,\r\n error: ''\r\n };\r\n }\r\n case SET_ORDERLOCATIONS: {\r\n\r\n let orderLocation = {\r\n ...action.payload\r\n }\r\n\r\n saveState(sessionKey2, orderLocation);\r\n\r\n return {\r\n ...state,\r\n orderLocation: orderLocation\r\n };\r\n }\r\n case ORDERLOCATIONS_ERROR: {\r\n\r\n let error = \"\";\r\n if (action.error.Errors) {\r\n error = action.error.Errors[0].ErrorMessage\r\n }\r\n else\r\n error = action.error.message;\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n error: error\r\n }\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerOrderLocations;","export const ORDER_MENU_LOADING = 'REDUX_SAGA_ORDER_MENU_LOADING';\r\nexport const ORDER_MENU_SUCCESS = 'REDUX_SAGA_ORDER_MENU_SUCCESS';\r\nexport const ORDER_MENU_ERROR = 'REDUX_SAGA_ORDER_MENU_ERROR';\r\n\r\nexport const actionGetOrderMenuByDisplayArea = (dispatch, displayArea) => {\r\n dispatch({ type: ORDER_MENU_LOADING, payload: displayArea })\r\n};","import {\r\n ORDER_MENU_LOADING, ORDER_MENU_SUCCESS, ORDER_MENU_ERROR\r\n} from \"actions/actionOrdersMenu\";\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nconst sessionKey = \"orderMenu\";\r\n\r\nconst initialState = {\r\n orderMenu: loadState(sessionKey, []),\r\n loading: false,\r\n error: ''\r\n};\r\n\r\nfunction reducerOrderMenu(state = initialState, action) {\r\n switch (action.type) {\r\n case ORDER_MENU_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n error: ''\r\n };\r\n }\r\n\r\n case ORDER_MENU_SUCCESS: {\r\n\r\n let orderMenu = [\r\n ...action.payload\r\n ]\r\n\r\n saveState(sessionKey, orderMenu);\r\n\r\n return {\r\n ...state,\r\n orderMenu: orderMenu,\r\n loading: false,\r\n error: ''\r\n };\r\n }\r\n case ORDER_MENU_ERROR: {\r\n\r\n let error = \"\";\r\n if (action.error.Errors) {\r\n error = action.error.Errors[0].ErrorMessage\r\n }\r\n else\r\n error = action.error.message;\r\n\r\n saveState(sessionKey, []);\r\n\r\n return {\r\n ...state,\r\n orderMenu: [],\r\n loading: false,\r\n error: error\r\n }\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerOrderMenu;","export const MEMBERSHIP_USERDEFINEDFIELDS_LOADING = 'REDUX_SAGA_MEMBERSHIP_USERDEFINEDFIELDS_LOADING';\r\nexport const MEMBERSHIP_USERDEFINEDFIELDS_DATA_SUCCESS = 'REDUX_SAGA_MEMBERSHIP_USERDEFINEDFIELDS_DATA_SUCCESS';\r\nexport const MEMBERSHIP_USERDEFINEDFIELDS_RESET = \"REDUX_SAGA_MEMBERSHIP_USERDEFINEDFIELDS_RESET\";\r\nexport const MEMBERSHIP_USERDEFINEDFIELDS_DATA_ERROR = 'REDUX_SAGA_MEMBERSHIP_USERDEFINEDFIELDS_DATA_ERROR';\r\nexport const UPDATE_MEMBER_USERDEFINEDFIELD = 'REDUX_SAGA_UPDATE_MEMBER_USERDEFINEDFIELD';\r\nexport const UPDATE_MEMBERSHIP_USERDEFINEDFIELD_RENEW = 'REDUX_SAGA_UPDATE_MEMBERSHIP_USERDEFINEDFIELD_RENEW';\r\n\r\n\r\nexport const actionGetMembershipUserDefinedFields = (dispatch, type, id, listOfIds) => {\r\n dispatch({ type: MEMBERSHIP_USERDEFINEDFIELDS_LOADING, payload: { type: type, id: id, listOfIds: listOfIds } })\r\n};\r\n\r\nexport const actionUpdateMemberUDF = (dispatch, membershipTypeID, userNo, categoryName, udfID, value) => {\r\n dispatch({ type: UPDATE_MEMBER_USERDEFINEDFIELD, payload: { membershipTypeID: membershipTypeID, userNo: userNo, categoryName: categoryName, udfID: udfID, value: value } })\r\n};\r\n\r\nexport const actionResetMembershipUDFs = (dispatch) => {\r\n dispatch({ type: MEMBERSHIP_USERDEFINEDFIELDS_RESET });\r\n}\r\n\r\nexport const actionUpdateMembershipUdfsWithCustomerUdfsValues = (dispatch, membershipPackage, customerUdfs) => {\r\n dispatch({ type: UPDATE_MEMBERSHIP_USERDEFINEDFIELD_RENEW, payload: { membershipPackage: membershipPackage, customerUdfs: customerUdfs } })\r\n};","import {\r\n MEMBERSHIP_USERDEFINEDFIELDS_LOADING,\r\n MEMBERSHIP_USERDEFINEDFIELDS_DATA_SUCCESS,\r\n MEMBERSHIP_USERDEFINEDFIELDS_RESET,\r\n MEMBERSHIP_USERDEFINEDFIELDS_DATA_ERROR,\r\n UPDATE_MEMBER_USERDEFINEDFIELD,\r\n UPDATE_MEMBERSHIP_USERDEFINEDFIELD_RENEW\r\n\r\n} from \"../actions/actionMembershipUserDefinedFeilds\";\r\nimport { UDFs } from 'helpers';\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nconst sessionKey1 = \"membershipUdfs\";\r\n\r\nconst initialState = {\r\n membershipUdfs: loadState(sessionKey1, []),\r\n loading: false,\r\n membershipUDFsError: ''\r\n};\r\n\r\nfunction reducerMembershipUserDefinedFields(state = initialState, action) {\r\n\r\n switch (action.type) {\r\n\r\n case MEMBERSHIP_USERDEFINEDFIELDS_LOADING: {\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n }\r\n\r\n case MEMBERSHIP_USERDEFINEDFIELDS_DATA_SUCCESS: {\r\n\r\n let membershipsUdfs = JSON.parse(JSON.stringify(action.payload));\r\n\r\n membershipsUdfs = membershipsUdfs.filter(x => x.UDFCategories).map(membershipTypes => {\r\n\r\n membershipTypes.UDFCategories.map(udfCategories => {\r\n\r\n let udfCat = { ...udfCategories };\r\n udfCategories.UserDefinedFields = [];\r\n\r\n if (udfCat.UserDefinedFields && udfCat.UserDefinedFields.length > 0) {\r\n udfCat.UserDefinedFields.map(UDF => {\r\n\r\n UDF.UDFID = Math.floor(100000 + Math.random() * 900000);\r\n UDF.Value = '';\r\n UDF.Users = [];\r\n udfCategories.UserDefinedFields.push(UDF);\r\n });\r\n }\r\n });\r\n\r\n return membershipTypes;\r\n });\r\n\r\n\r\n saveState(sessionKey1, membershipsUdfs);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n membershipUdfs: membershipsUdfs,\r\n membershipUDFsError: ''\r\n };\r\n }\r\n\r\n case UPDATE_MEMBER_USERDEFINEDFIELD: {\r\n\r\n let membershipsUdfs = JSON.parse(JSON.stringify(state.membershipUdfs));\r\n let membershipType = membershipsUdfs.find(x => x.MembershipTypeID === action.payload.membershipTypeID);\r\n\r\n membershipType.UDFCategories = membershipType.UDFCategories.map(udfCategories => {\r\n\r\n udfCategories.UserDefinedFields.filter(x => x.UDFID === action.payload.udfID).map(udf => {\r\n\r\n if (udf.Users && udf.Users.length > -1 && udf.Users.filter(x => x.userID === action.payload.userNo).length == 0) {\r\n let u = { userID: action.payload.userNo, userUDFValue: action.payload.value };\r\n udf.Users.push(u)\r\n }\r\n else if (udf.Users && udf.Users.length > -1 && udf.Users.filter(x => x.userID === action.payload.userNo).length > 0) {\r\n let u = udf.Users.find(x => x.userID == action.payload.userNo);\r\n u.userUDFValue = action.payload.value;\r\n\r\n udf.Users = udf.Users.filter(x => x.userID !== action.payload.userNo);\r\n\r\n udf.Users.push(u)\r\n }\r\n });\r\n\r\n return udfCategories;\r\n });\r\n\r\n membershipsUdfs = membershipsUdfs.filter(x => x.MembershipTypeID !== action.payload.membershipTypeID);\r\n membershipsUdfs.push(membershipType);\r\n\r\n saveState(sessionKey1, membershipsUdfs);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n membershipUdfs: membershipsUdfs,\r\n membershipUDFsError: ''\r\n };\r\n }\r\n\r\n\r\n\r\n case UPDATE_MEMBERSHIP_USERDEFINEDFIELD_RENEW: {\r\n\r\n let membershipsUdfs = JSON.parse(JSON.stringify(state.membershipUdfs));\r\n let membershipPackage = JSON.parse(JSON.stringify(action.payload.membershipPackage));\r\n let customerUdfs = JSON.parse(JSON.stringify(action.payload.customerUdfs));\r\n\r\n membershipsUdfs = UDFs.UpdateMembershipUDFsWithCustomerUDFValue(membershipPackage, membershipsUdfs, customerUdfs);\r\n\r\n saveState(sessionKey1, membershipsUdfs);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n membershipUdfs: membershipsUdfs,\r\n membershipUDFsError: ''\r\n }\r\n }\r\n\r\n case MEMBERSHIP_USERDEFINEDFIELDS_DATA_ERROR: {\r\n\r\n saveState(sessionKey1, action.payload);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n membershipUDFsError: action.error\r\n }\r\n }\r\n\r\n case MEMBERSHIP_USERDEFINEDFIELDS_RESET: {\r\n\r\n saveState(sessionKey1, []);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n membershipUdfs: [],\r\n membershipUDFsError: ''\r\n };\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerMembershipUserDefinedFields;","\r\nexport const CUSTOMER_UDFS_LOADING = 'REDUX_SAGA_CUSTOMER_UDFS_LOADING';\r\nexport const CUSTOMER_UDFS_SUCCESS = 'REDUX_SAGA_CUSTOMER_UDFS_SUCCESS';\r\nexport const CUSTOMER_UDFS_ERROR = 'REDUX_SAGA_CUSTOMER_UDFS_ERROR';\r\nexport const RESET_CUSTOMER_UDFS = 'REDUX_SAGA_RESET_CUSTOMER_UDFS';\r\n\r\nexport const actionGetCustomerUdfs = (dispatch, customerIdList) => {\r\n dispatch({ type: CUSTOMER_UDFS_LOADING, customerIdList: customerIdList });\r\n};\r\n\r\nexport const actionResetCustomerUdfs = (dispatch) => {\r\n dispatch({ type: RESET_CUSTOMER_UDFS })\r\n};\r\n","import {\r\n CUSTOMER_UDFS_LOADING, CUSTOMER_UDFS_SUCCESS, CUSTOMER_UDFS_ERROR,\r\n RESET_CUSTOMER_UDFS\r\n} from \"../actions/actionCustomerUDFs\";\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nconst sessionKey1 = \"customerUdfs\";\r\n\r\nconst initialState = {\r\n customerUDFs: loadState(sessionKey1, []),\r\n loading: false,\r\n customerUDFError: ''\r\n};\r\n\r\nfunction reducerCustomerUDFs(state = initialState, action) {\r\n\r\n switch (action.type) {\r\n\r\n case CUSTOMER_UDFS_LOADING: {\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n }\r\n\r\n case CUSTOMER_UDFS_SUCCESS: {\r\n\r\n saveState(sessionKey1, action.payload);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n customerUDFs: action.payload,\r\n customerUDFError: ''\r\n };\r\n }\r\n\r\n case CUSTOMER_UDFS_ERROR: {\r\n\r\n saveState(sessionKey1, []);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n customerUDFs: [],\r\n customerUDFError: action.error\r\n }\r\n }\r\n\r\n case RESET_CUSTOMER_UDFS: {\r\n\r\n saveState(sessionKey1, []);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n customerUDFs: [],\r\n customerUDFError: ''\r\n };\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerCustomerUDFs;","export const COUNTRYANDSTATE_LOADING = 'REDUX_SAGA_COUNTRYANDSTATE_LOADING';\r\nexport const GET_COUNTRYANDSTATE_DATA_SUCCESS = 'REDUX_SAGA_GET_COUNTRYANDSTATE_DATA_SUCCESS';\r\nexport const GET_COUNTRYANDSTATE_DATA_ERROR = 'REDUX_SAGA_GET_COUNTRYANDSTATE_DATA_ERROR';\r\nexport const COUNTRYANDSTATE_END_LOADING = 'REDUX_SAGA_COUNTRYANDSTATE_END_LOADING';\r\nexport const RESET_COUNTRYANDSTATE = 'REDUX_SAGA_RESET_COUNTRYANDSTATE';\r\n\r\nexport const actionGetCountryAndState = (dispatch) => {\r\n dispatch({ type: COUNTRYANDSTATE_LOADING})\r\n};\r\n\r\nexport const actionResetCountryAndState = (dispatch) => {\r\n dispatch({ type: RESET_COUNTRYANDSTATE })\r\n}\r\n\r\n\r\n\r\n\r\n","import {\r\n COUNTRYANDSTATE_LOADING, GET_COUNTRYANDSTATE_DATA_SUCCESS,\r\n GET_COUNTRYANDSTATE_DATA_ERROR, COUNTRYANDSTATE_END_LOADING, RESET_COUNTRYANDSTATE\r\n} from \"../actions/actionCountryAndState\";\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nconst sessionKey = \"countryandstates\";\r\n\r\nconst initialState = {\r\n countryandstate: loadState(sessionKey, []),\r\n loading: false,\r\n countryandstaterror: ''\r\n};\r\n\r\nfunction reducerCountryAndState(state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case COUNTRYANDSTATE_LOADING: {\r\n saveState(sessionKey, []);\r\n return {\r\n ...state,\r\n loading: true,\r\n countryandstate: [],\r\n countryandstaterror: ''\r\n };\r\n }\r\n\r\n case GET_COUNTRYANDSTATE_DATA_SUCCESS: {\r\n let cs = [\r\n ...action.payload\r\n ]\r\n\r\n saveState(sessionKey, cs);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n countryandstate: cs,\r\n countryandstaterror: ''\r\n };\r\n }\r\n\r\n\r\n case GET_COUNTRYANDSTATE_DATA_ERROR: {\r\n return {\r\n ...state,\r\n loading: false,\r\n countryandstate: [],\r\n countryandstaterror: action.error\r\n }\r\n }\r\n\r\n case COUNTRYANDSTATE_END_LOADING: {\r\n return {\r\n ...state,\r\n loading: false\r\n }\r\n }\r\n\r\n case RESET_COUNTRYANDSTATE: {\r\n return {\r\n ...state,\r\n countryandstate: [],\r\n loading: false,\r\n countryandstaterror: ''\r\n }\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerCountryAndState;","export const ORGANIZATIONSECTION_LOADING = 'REDUX_SAGA_ORGANIZATIONSECTION_LOADING';\r\nexport const GET_ORGANIZATIONSECTION_DATA_SUCCESS = 'REDUX_SAGA_GET_ORGANIZATIONSECTION_DATA_SUCCESS';\r\nexport const GET_ORGANIZATIONSECTION_DATA_ERROR = 'REDUX_SAGA_GET_ORGANIZATIONSECTION_DATA_ERROR';\r\nexport const ORGANIZATIONSECTION_END_LOADING = 'REDUX_SAGA_ORGANIZATIONSECTION_END_LOADING';\r\nexport const RESET_ORGANIZATIONSECTION = 'REDUX_SAGA_RESET_ORGANIZATIONSECTION';\r\n\r\nexport const actionGetOrganizationSection = (dispatch, costRateList) => {\r\n dispatch({ type: ORGANIZATIONSECTION_LOADING, payload: { costRateList } })\r\n};\r\n\r\nexport const actionResetOrganizationSection = (dispatch) => {\r\n dispatch({ type: RESET_ORGANIZATIONSECTION })\r\n}\r\n\r\n","import {\r\n ORGANIZATIONSECTION_LOADING, GET_ORGANIZATIONSECTION_DATA_SUCCESS,\r\n GET_ORGANIZATIONSECTION_DATA_ERROR, ORGANIZATIONSECTION_END_LOADING, RESET_ORGANIZATIONSECTION\r\n} from \"../actions/actionOrganizationSection\";\r\n\r\nimport { loadState, saveState } from \"../helpers/sessionStorage\";\r\n\r\nconst sessionKey = \"organizationlist\";\r\n\r\nconst initialState = {\r\n organizationlist: loadState(sessionKey, []),\r\n loading: false,\r\n organizationlisterror: ''\r\n};\r\n\r\nfunction reducerOrganizationSection(state = initialState, action) {\r\n\r\n switch (action.type) {\r\n case ORGANIZATIONSECTION_LOADING: {\r\n saveState(sessionKey, []);\r\n return {\r\n ...state,\r\n loading: true,\r\n organizationlist: [],\r\n organizationlisterror: ''\r\n };\r\n }\r\n\r\n case GET_ORGANIZATIONSECTION_DATA_SUCCESS: {\r\n let orglist = [\r\n ...action.payload\r\n ]\r\n\r\n saveState(sessionKey, orglist);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n organizationlist: orglist,\r\n organizationlisterror: ''\r\n };\r\n }\r\n\r\n\r\n case GET_ORGANIZATIONSECTION_DATA_ERROR: {\r\n return {\r\n ...state,\r\n loading: false,\r\n organizationlist: [],\r\n organizationlisterror: action.error\r\n }\r\n }\r\n\r\n case ORGANIZATIONSECTION_END_LOADING: {\r\n return {\r\n ...state,\r\n loading: false\r\n }\r\n }\r\n\r\n case RESET_ORGANIZATIONSECTION: {\r\n return {\r\n ...state,\r\n organizationlist: [],\r\n loading: false,\r\n organizationlisterror: ''\r\n }\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerOrganizationSection;\r\n","import {\r\n PRODUCTS_BY_TYPE_LOADING, PRODUCTS_DATA_SUCCESS, PRODUCTS_DATA_ERROR\r\n} from \"../actions/actionProduct\";\r\n\r\nconst initialState = {\r\n products: [],\r\n loading: false,\r\n error: ''\r\n};\r\n\r\nfunction reducerProduct(state = initialState, action) {\r\n switch (action.type) {\r\n case PRODUCTS_BY_TYPE_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n products:[],\r\n error: ''\r\n };\r\n }\r\n\r\n case PRODUCTS_DATA_SUCCESS: {\r\n return {\r\n ...state,\r\n loading: false,\r\n products: action.payload,\r\n error: ''\r\n };\r\n }\r\n\r\n case PRODUCTS_DATA_ERROR: {\r\n return {\r\n ...state,\r\n loading: false,\r\n products: [],\r\n error: action.error\r\n }\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n\r\nexport default reducerProduct;","export const PRODUCTS_BY_TYPE_LOADING = 'REDUX_SAGA_PRODUCTS_BY_TYPE_LOADING';\r\nexport const PRODUCTS_DATA_SUCCESS = 'REDUX_SAGA_PRODUCTS_DATA_SUCCESS';\r\nexport const PRODUCTS_DATA_ERROR = 'REDUX_SAGA_PRODUCTS_DATA_ERROR';\r\n\r\nexport const actionGetProductsByTypeAndDisplayAreas = (dispatch, type, displayAreaNo) => {\r\n dispatch({ type: PRODUCTS_BY_TYPE_LOADING, productType: type, displayAreaNo })\r\n};","import { combineReducers } from 'redux';\nimport reducerAuthenticationToken from './reducerAuthenticationToken';\nimport reducerBookingTypes from './reducerBookingTypes';\nimport reducerAppLoader from './reducerAppLoader';\nimport reducerShopCart from './reducerShopCart'\nimport reducerExtraItems from './reducerExtraItems';\nimport reducerMember from './reducerMember';\nimport reducerPaymentTransaction from './reducerPaymentTransaction'\nimport reducerIP from './reducerIP'\nimport reducerCalendarView from './reducerCalendarView'\nimport reducerCardDiscardTime from './reducerCardDiscardTime'\nimport reducerDisplayAreas from './reducerDisplayAreas';\nimport reducerCoupon from './reducerCoupon';\nimport reducerTourProduct from './reducerTourProduct';\nimport reducerGiftCardHold from './reducerGiftCardHold';\nimport reducerUniqueCouponHolds from './reducerUniqueCouponHolds';\nimport reducerMemberValidation from './reducerMemberValidation';\nimport reducerFormError from './reducerFormError';\nimport reducerDonation from './reducerDonation';\nimport reducerTransactionFee from './reducerTransactionFee';\nimport reducerMembershipPackages from './reducerMembershipPackages';\nimport reducerGaTicket from './reducerGaTicket';\nimport reducerLostMember from './reducerLostMember';\nimport reducerMemberMemberships from './reducerMemberMemberships';\nimport reducerCustomer from './reducerCustomer';\nimport reducerBooking from './reducerBooking';\nimport reducerGiftCardDisplayAreas from './reducerGiftCardDisplayAreas';\nimport reducerGiftCards from './reducerGiftCards';\nimport reducerCostRate from './reducerCostRate';\nimport reducerIDMeUserData from './reducerIDMeUserData';\nimport reducerBookingUserDefinedFields from './reducerBookingUserDefinedFields';\nimport reducerOrderLocations from './reducerOrderLocations';\nimport reducerOrderMenu from './reducerOrderMenu';\nimport reducerMembershipUserDefinedFields from './reducerMembershipUserDefinedFields';\nimport reducerCustomerUDFs from './reducerCustomerUDFs';\nimport reducerCountryAndState from './reducerCountryAndState';\nimport reducerOrganizationSection from './reducerOrganizationSection';\nimport reducerProduct from './reducerProduct';\n\n\n\nconst rootReducer = combineReducers({\n reducerAuthenticationToken, reducerBookingTypes, reducerAppLoader,\n reducerShopCart, reducerMember, reducerPaymentTransaction,\n reducerExtraItems, reducerIP, reducerCalendarView, reducerCardDiscardTime,\n reducerDisplayAreas, reducerGiftCardHold, reducerCoupon, reducerTourProduct,\n reducerUniqueCouponHolds, reducerMemberValidation, reducerFormError, reducerDonation,\n reducerTransactionFee, reducerMembershipPackages, reducerGaTicket, reducerLostMember, reducerMemberMemberships,\n reducerCustomer, reducerBooking, reducerGiftCardDisplayAreas, reducerGiftCards, reducerCostRate, reducerIDMeUserData,\n reducerBookingUserDefinedFields, reducerOrderLocations, reducerOrderMenu, reducerMembershipUserDefinedFields,\n reducerCustomerUDFs, reducerCountryAndState, reducerProduct,reducerOrganizationSection\n});\n\nexport default rootReducer;","import CryptoAES from 'crypto-js/aes'\nimport CryptoENC from 'crypto-js/enc-utf8';\n\nconst { apiUrl, userName, password, middlewareUrl, middlewareUserName, middlewarePassword } = window['runConfig'];\n\nconst DataAccess = {\n apiUrl: CryptoAES.decrypt(apiUrl, '1271').toString(CryptoENC),\n userName: CryptoAES.decrypt(userName, '1271').toString(CryptoENC),\n password: CryptoAES.decrypt(password, '1271').toString(CryptoENC),\n middlewareUrl: CryptoAES.decrypt(middlewareUrl, '1271').toString(CryptoENC),\n middlewareUserName: CryptoAES.decrypt(middlewareUserName, '1271').toString(CryptoENC),\n middlewarePassword: CryptoAES.decrypt(middlewarePassword, '1271').toString(CryptoENC)\n}\n\nexport default DataAccess;\n","import DataAccess from './constants';\n\nconst path = 'token/'\n\nconst apiAuthentication = () => {\n const url = DataAccess.apiUrl + path + '?username=' + DataAccess.userName + '&password=' + DataAccess.password;\n fetch(url)\n .then(response => response.json)\n .then((result) => {\n return result.token;\n }\n , (error) => {\n throw new Error(error);\n });\n}\n\nexport default apiAuthentication;\n","import { put, takeEvery } from 'redux-saga/effects'\nimport { LOAD_AUTHENTICATIONTOKEN_ERROR, LOAD_AUTHENTICATIONTOKEN_SUCCESS, LOAD_AUTHENTICATIONTOKEN_LOADING } from \"../actions/actionAuthentication\";\nimport apiAuthentication from '../api/apiAuthentication';\n\nasync function fetchAsync(func) {\n const response = await func();\n if (response.ok) {\n return await response.json();\n }\n throw new Error(\"Unexpected error!!!\");\n}\n\n\nfunction* fetchAuthenticationToken() {\n try {\n const token = yield fetchAsync(apiAuthentication);\n yield put({ type: LOAD_AUTHENTICATIONTOKEN_SUCCESS, token: token });\n } catch (e) {\n yield put({ type: LOAD_AUTHENTICATIONTOKEN_ERROR, error: e.message });\n }\n}\nexport const sagaAuthenticationToken = [ // Allows concurrent fetches\n takeEvery(LOAD_AUTHENTICATIONTOKEN_LOADING, fetchAuthenticationToken)\n // Does not allow concurrent fetches\n // yield takeLatest(LOAD_USERS_LOADING, fetchUser);\n];\n\n\n//export default authenticationTokenSaga;\n","import DataAccess from './constants';\r\nimport { genfunction } from '../helpers';\r\n\r\nconst path = 'bookings?bookingid=';\r\n\r\nexport const apiBooking = (params) => {\r\n\r\n var h = new Headers();\r\n h.append(\"Authorization\", 'Basic ' + genfunction.EncodeBase64(DataAccess.userName + ':' + DataAccess.password));\r\n h.append('Content-Type', 'application/json');\r\n\r\n let url = DataAccess.apiUrl + path + params.bookingID + \"&Email=\" + params.email + \"&LastName=\" + params.lastName;\r\n\r\n const req = new Request(url, {\r\n method: 'GET',\r\n headers: h\r\n })\r\n\r\n return fetch(req);\r\n}","import DataAccess from './constants';\r\nimport { genfunction } from '../helpers';\r\nconst path = 'BookingTypes'\r\n\r\nexport const apiBookingTypes = (id, isDisplayArea) => {\r\n\r\n var h = new Headers();\r\n h.append(\"Authorization\", 'Basic ' + genfunction.EncodeBase64(DataAccess.userName + ':' + DataAccess.password));\r\n h.append('Content-Type', 'application/json');\r\n\r\n let newID = typeof id === 'object' && id !== null ? id.DisplayAreaNo : id;\r\n let newIsDisArea = typeof id === 'object' && id !== null ? id.isDisplay : isDisplayArea;\r\n\r\n const url = DataAccess.apiUrl + path + (newIsDisArea ? \"?DisplayArea=\" + newID : \"?BookingTypeID=\" + newID)\r\n\r\n const req = new Request(url, {\r\n method: 'GET',\r\n headers: h\r\n })\r\n\r\n return fetch(req);\r\n}","import DataAccess from './constants';\r\nimport { genfunction } from '../helpers';\r\n\r\nconst path = 'costrates'\r\n\r\nexport const apiCostRate = (costrateObj) => {\r\n\r\n var h = new Headers();\r\n h.append(\"Authorization\", 'Basic ' + genfunction.EncodeBase64(DataAccess.userName + ':' + DataAccess.password));\r\n h.append('Content-Type', 'application/json');\r\n\r\n let gpName = costrateObj.groupname !== undefined && costrateObj.groupname.length > 0 ? costrateObj.groupname : \"\";\r\n let subGpName = costrateObj.subgroup !== undefined && costrateObj.subgroup.length > 0 ? costrateObj.subgroup : \"\";\r\n\r\n let url = DataAccess.apiUrl + path;\r\n\r\n if (gpName && gpName.length > 0) {\r\n url += \"?GroupName=\" + gpName;\r\n }\r\n\r\n if (gpName && gpName.length > 0 && subGpName && subGpName.length > 0) {\r\n url += \"&SubGroupName=\" + subGpName;\r\n }\r\n\r\n if (gpName && gpName.length == 0 && subGpName && subGpName.length > 0) {\r\n url += \"?SubGroupName=\" + subGpName;\r\n }\r\n\r\n const req = new Request(url, {\r\n method: 'GET',\r\n headers: h\r\n })\r\n\r\n return fetch(req);\r\n}","import DataAccess from './constants';\r\nimport { genfunction } from '../helpers';\r\n\r\nconst path = 'customers?CustomerID=';\r\n\r\nexport const apiCustomer = (params) => {\r\n\r\n var h = new Headers();\r\n h.append(\"Authorization\", 'Basic ' + genfunction.EncodeBase64(DataAccess.userName + ':' + DataAccess.password));\r\n h.append('Content-Type', 'application/json');\r\n\r\n let url = DataAccess.apiUrl + path + params.customerId + \"&Email=\" + params.cstemail;\r\n\r\n const req = new Request(url, {\r\n method: 'GET',\r\n headers: h\r\n })\r\n\r\n return fetch(req);\r\n}","import _0x303548 from'crypto-js';\r\nvar _0x4be2=['000000000','chain','264365QditFG','counter','Utf8','decrypt','hostname','34AIUgEd','enc','random','input','Pkcs7','mode','constructor','11402sFcTnf','debu','stateObject','location','function\\x20*\\x5c(\\x20*\\x5c)','test','call','init','parse',':::','1009818sDIMAN','pad','AES','\\x5c+\\x5c+\\x20*(?:[a-zA-Z_$][0-9a-zA-Z_$]*)','encrypt','while\\x20(true)\\x20{}','substr','stringify','126627YNeOmC','CBC','action','gger','string','toString','139AfASgJ','167443zBytFJ','355125hOQbpD','localhost','apply','length','1233NdsiEd','11jSzbeV','7061939323383233'];var _0x1925=function(_0x5d2900,_0x3234fc){_0x5d2900=_0x5d2900-0x179;var _0xba06e2=_0x4be2[_0x5d2900];return _0xba06e2;};var _0x7e87d6=_0x1925;(function(_0x5e77ad,_0x4bf7d7){var _0x15f863=_0x1925;while(!![]){try{var _0x1e2b77=-parseInt(_0x15f863(0x195))+-parseInt(_0x15f863(0x17c))+parseInt(_0x15f863(0x19a))*-parseInt(_0x15f863(0x1a1))+parseInt(_0x15f863(0x18c))+parseInt(_0x15f863(0x190))*parseInt(_0x15f863(0x18a))+-parseInt(_0x15f863(0x184))+-parseInt(_0x15f863(0x191))*-parseInt(_0x15f863(0x18b));if(_0x1e2b77===_0x4bf7d7)break;else _0x5e77ad['push'](_0x5e77ad['shift']());}catch(_0x1757ae){_0x5e77ad['push'](_0x5e77ad['shift']());}}}(_0x4be2,0x8d943));var _0x3dfa16=function(){var _0x101f63=!![];return function(_0x6e356b,_0x364d0f){var _0xe0277c=_0x101f63?function(){var _0x4ae118=_0x1925;if(_0x364d0f){var _0x1ab943=_0x364d0f[_0x4ae118(0x18e)](_0x6e356b,arguments);return _0x364d0f=null,_0x1ab943;}}:function(){};return _0x101f63=![],_0xe0277c;};}();(function(){_0x3dfa16(this,function(){var _0x58c8bf=_0x1925,_0x24e3b0=new RegExp(_0x58c8bf(0x1a5)),_0x507ad3=new RegExp(_0x58c8bf(0x17f),'i'),_0x467d63=_0x533da6(_0x58c8bf(0x179));!_0x24e3b0[_0x58c8bf(0x1a6)](_0x467d63+_0x58c8bf(0x194))||!_0x507ad3[_0x58c8bf(0x1a6)](_0x467d63+_0x58c8bf(0x19d))?_0x467d63('0'):_0x533da6();})();}());var key=_0x303548['enc'][_0x7e87d6(0x197)][_0x7e87d6(0x17a)](_0x7e87d6(0x192)),iv=_0x303548[_0x7e87d6(0x19b)][_0x7e87d6(0x197)]['parse']('7061939323383233');export default{'CreateGuid'(){function _0x5f1197(_0x25447e){var _0xc851aa=_0x1925,_0x3e1e8e=(Math[_0xc851aa(0x19c)]()[_0xc851aa(0x189)](0x10)+_0xc851aa(0x193))[_0xc851aa(0x182)](0x2,0x8);return _0x25447e?'-'+_0x3e1e8e['substr'](0x0,0x4)+'-'+_0x3e1e8e['substr'](0x4,0x4):_0x3e1e8e;}return _0x5f1197()+_0x5f1197(!![])+_0x5f1197(!![])+_0x5f1197();},'GenerateRequest'(_0x3a7e0d){var _0x5e5d75=_0x7e87d6,_0x2d28fd=this['CreateGuid'](),_0x157d91=window[_0x5e5d75(0x1a4)][_0x5e5d75(0x199)]==''||window[_0x5e5d75(0x1a4)][_0x5e5d75(0x199)]==undefined?_0x5e5d75(0x18d):window[_0x5e5d75(0x1a4)][_0x5e5d75(0x199)],_0x5a946c=_0x2d28fd+_0x5e5d75(0x17b)+JSON[_0x5e5d75(0x183)](_0x3a7e0d)+_0x5e5d75(0x17b)+_0x157d91;return _0x5a946c;},'encrypt'(_0x36b562){var _0xef09cd=_0x7e87d6,_0x6ea7d4=_0x303548['AES'][_0xef09cd(0x180)](_0x303548['enc']['Utf8'][_0xef09cd(0x17a)](_0x36b562),key,{'keySize':0x80/0x8,'iv':iv,'mode':_0x303548[_0xef09cd(0x19f)]['CBC'],'padding':_0x303548['pad'][_0xef09cd(0x19e)]});return _0x6ea7d4;},'decrypt'(_0x81c5f0){var _0x2d53f8=_0x7e87d6,_0x518689=_0x303548[_0x2d53f8(0x17e)][_0x2d53f8(0x198)](_0x81c5f0,key,{'keySize':0x80/0x8,'iv':iv,'mode':_0x303548[_0x2d53f8(0x19f)][_0x2d53f8(0x185)],'padding':_0x303548[_0x2d53f8(0x17d)][_0x2d53f8(0x19e)]});return _0x518689['toString'](_0x303548[_0x2d53f8(0x19b)][_0x2d53f8(0x197)]);;}};function _0x533da6(_0x17466e){function _0x240d4d(_0x1d0b0f){var _0x1cd3b3=_0x1925;if(typeof _0x1d0b0f===_0x1cd3b3(0x188))return function(_0x2530ef){}[_0x1cd3b3(0x1a0)](_0x1cd3b3(0x181))[_0x1cd3b3(0x18e)](_0x1cd3b3(0x196));else(''+_0x1d0b0f/_0x1d0b0f)[_0x1cd3b3(0x18f)]!==0x1||_0x1d0b0f%0x14===0x0?function(){return!![];}[_0x1cd3b3(0x1a0)](_0x1cd3b3(0x1a2)+_0x1cd3b3(0x187))[_0x1cd3b3(0x1a7)](_0x1cd3b3(0x186)):function(){return![];}[_0x1cd3b3(0x1a0)](_0x1cd3b3(0x1a2)+'gger')['apply'](_0x1cd3b3(0x1a3));_0x240d4d(++_0x1d0b0f);}try{if(_0x17466e)return _0x240d4d;else _0x240d4d(0x0);}catch(_0x44f770){}}","import AES from '../../src/helpers/AES';\r\n\r\nclass API {\r\n\r\n inputOutputSettings = {\r\n baseurl: '',\r\n userName: '',\r\n password: '',\r\n middlewareUserName: '',\r\n middlewarePassword: ''\r\n }\r\n\r\n constructor(baseurl, username, password, middlewareUsernName, middlewarePassword) {\r\n this.inputOutputSettings.baseurl = baseurl;\r\n this.inputOutputSettings.userName = username;\r\n this.inputOutputSettings.password = password;\r\n this.inputOutputSettings.middlewareUserName = middlewareUsernName;\r\n this.inputOutputSettings.middlewarePassword = middlewarePassword;\r\n\r\n }\r\n\r\n getData = (path) => {\r\n let req = this.getReq(path);\r\n return fetch(req);\r\n }\r\n\r\n postData = (path, data, isEncrypted) => {\r\n let req = this.getReq(path, data, 'POST', isEncrypted);\r\n return fetch(req);\r\n }\r\n\r\n putData = (path, data) => {\r\n let req = this.getReq(path, data, 'PUT');\r\n return fetch(req);\r\n }\r\n\r\n deleteData = (path, data) => {\r\n let req = this.getReq(path, data, 'DELETE')\r\n return fetch(req);\r\n }\r\n\r\n\r\n\r\n getReq = (path, data, method, isEncrypted) => {\r\n let h = this.getheader(isEncrypted);\r\n let req = null;\r\n let encryptData = null;\r\n\r\n if (data) {\r\n\r\n if (isEncrypted) {\r\n encryptData = AES.encrypt(AES.GenerateRequest(data));\r\n }\r\n req = new Request(this.inputOutputSettings.baseurl + path, {\r\n method: method,\r\n headers: h,\r\n body: isEncrypted ? encryptData : JSON.stringify(data)\r\n });\r\n }\r\n else {\r\n req = new Request(this.inputOutputSettings.baseurl + path, {\r\n method: method ? 'GET' : method,\r\n headers: h\r\n });\r\n }\r\n\r\n return req;\r\n }\r\n\r\n getheader = (isEncrypted) => {\r\n let user = isEncrypted && isEncrypted === true ? this.inputOutputSettings.middlewareUserName : this.inputOutputSettings.userName;\r\n let pass = isEncrypted && isEncrypted === true ? this.inputOutputSettings.middlewarePassword : this.inputOutputSettings.password;\r\n\r\n let h = new Headers();\r\n h.append('Authorization', \"Basic \" + this.encodeBase64(user + \":\" + pass));\r\n h.append('Content-Type', 'application/json');\r\n return h;\r\n }\r\n\r\n encodeBase64 = (input) => {\r\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\n let str = input;\r\n let output = '';\r\n\r\n for (let block = 0, charCode, i = 0, map = chars;\r\n str.charAt(i | 0) || (map = '=', i % 1);\r\n output += map.charAt(63 & block >> 8 - i % 1 * 8)) {\r\n\r\n charCode = str.charCodeAt(i += 3 / 4);\r\n\r\n if (charCode > 0xFF) {\r\n console.log(\"'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.\");\r\n }\r\n\r\n block = block << 8 | charCode;\r\n }\r\n\r\n return output;\r\n }\r\n}\r\n\r\nexport default API;\r\n\r\n// export const API = (baseurl, username, password) => {\r\n\r\n// const getData = (path) => {\r\n// let req = getReq(path);\r\n// return fetch(req)\r\n// }\r\n\r\n// const postData = (path, data) => {\r\n// let req = getReq(path, data);\r\n// return fetch(req)\r\n// }\r\n\r\n// const getReq = (path, data) => {\r\n// let h = getheader()\r\n// let req = null;\r\n\r\n// if (data) {\r\n// req = new Request(baseurl + \"/\" + path, {\r\n// method: 'POST',\r\n// headers: h,\r\n// body: JSON.stringify(data)\r\n// })\r\n// }\r\n// else {\r\n// req = new Request(baseurl + \"/\" + path, {\r\n// method: 'GET',\r\n// headers: h\r\n// })\r\n// }\r\n\r\n// return req;\r\n// }\r\n\r\n// const getheader = () => {\r\n// let h = new Headers();\r\n// h.append('Accept', 'application/json')\r\n// h.append('Content-Type', 'application/json')\r\n// h.append('Authorization', \"Basic \" + encodeBase64(username + \":\" + password))\r\n// return h;\r\n// }\r\n\r\n// const encodeBase64 = (input) => {\r\n// const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\n// let str = input;\r\n// let output = '';\r\n\r\n// for (let block = 0, charCode, i = 0, map = chars;\r\n// str.charAt(i | 0) || (map = '=', i % 1);\r\n// output += map.charAt(63 & block >> 8 - i % 1 * 8)) {\r\n\r\n// charCode = str.charCodeAt(i += 3 / 4);\r\n\r\n// if (charCode > 0xFF) {\r\n// console.log(\"'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.\");\r\n// }\r\n\r\n// block = block << 8 | charCode;\r\n// }\r\n\r\n// return output;\r\n// }\r\n// }","import DataAccess from './constants';\r\nimport API from './API'\r\nconst path = 'customerudfs';\r\n\r\nlet api = new API(DataAccess.apiUrl, DataAccess.userName, DataAccess.password);\r\n\r\nexport const UpdateCustomerUdfs = (customer) => {\r\n\r\n return api.putData(path, customer);\r\n}\r\n\r\nexport const GetCustomersUdfs = (customer) => {\r\n let newpath = path + \"?CustomerIDList=\" + customer.customerIdList;\r\n return api.getData(newpath)\r\n}","import DataAccess from './constants';\r\nimport { genfunction } from '../helpers';\r\n\r\nconst path = 'Products?ProductID=';\r\n\r\nexport const apiDonation = (params) => {\r\n\r\n var h = new Headers();\r\n h.append(\"Authorization\", 'Basic ' + genfunction.EncodeBase64(DataAccess.userName + ':' + DataAccess.password));\r\n h.append('Content-Type', 'application/json');\r\n\r\n let url = DataAccess.apiUrl + path + params.productId + '&ProductType=' + params.productType;\r\n\r\n const req = new Request(url, {\r\n method: 'GET',\r\n headers: h\r\n })\r\n\r\n return fetch(req);\r\n}","import DataAccess from './constants';\r\nimport API from './API'\r\n\r\nconst path = 'DisplayAreas'\r\nlet api = new API(DataAccess.apiUrl, DataAccess.userName, DataAccess.password);\r\n\r\nexport const apiDisplayAreas = (type) => {\r\n let newpath = path + \"?type=\" + type;\r\n return api.getData(newpath)\r\n}\r\n\r\nexport const apiDisplayAreasById = (id) => {\r\n let newpath = path + \"?DisplayArea=\" + id;\r\n return api.getData(newpath)\r\n}\r\n\r\nexport const apiDisplayAreasByIdAndType = (id, type) => {\r\n let newpath = path + \"?DisplayArea=\" + id + \"&type=\" + type;\r\n return api.getData(newpath)\r\n}","import DataAccess from './constants';\nimport Moment from 'moment';\nimport { genfunction } from '../helpers';\n\nconst path = 'TourEvents'\n\nexport const apiExtraItems = (Id, NextTourDate, checkFromNextTourDate, isDisplayArea, isListView, currentView, listViewSearchDays, tourEventsList) => {\n\n let year = \"\";\n let month = \"\";\n let date = \"\";\n let url = \"\";\n let lastDay;\n\n if (tourEventsList) {\n url = DataAccess.apiUrl + path + \"?TourEventList=\" + tourEventsList;\n }\n else {\n year = Moment(NextTourDate).format('YYYY');\n month = Moment(NextTourDate).format('M');\n date = Moment(NextTourDate).format('d');\n\n if (!checkFromNextTourDate) {\n NextTourDate = year + '-' + month + '-' + 1;\n }\n\n if (isListView && listViewSearchDays) {\n\n if (NextTourDate === undefined) {\n NextTourDate = year + '-' + month + '-' + date;\n }\n\n lastDay = genfunction.AddToDateDate(NextTourDate, listViewSearchDays);\n }\n else {\n lastDay = Moment(new Date(year, month, 0, 23, 59, 59)).format('YYYY-MM-DD');\n }\n\n if (currentView && currentView === \"SingleDay\") {\n lastDay = NextTourDate;\n }\n\n if (currentView && currentView === \"WeekView\") {\n lastDay = genfunction.AddWeekDays(NextTourDate);\n }\n\n if (checkFromNextTourDate && NextTourDate === undefined) {\n NextTourDate = year + '-' + month + '-' + 1;\n }\n\n url = isDisplayArea ?\n DataAccess.apiUrl + path + \"?DisplayArea=\" + Id + \"&From=\" + NextTourDate + \"&To=\" + lastDay\n : DataAccess.apiUrl + path + \"?BookingTypeID=\" + Id + \"&From=\" + NextTourDate + \"&To=\" + lastDay;\n }\n\n url += \"&OnlineOnly=true\";\n\n var h = new Headers();\n h.append(\"Authorization\", 'Basic ' + genfunction.EncodeBase64(DataAccess.userName + ':' + DataAccess.password));\n h.append('Content-Type', 'application/json');\n\n const req = new Request(url, {\n method: 'GET',\n headers: h\n })\n\n return fetch(req);\n}\n\n\n","import DataAccess from './constants';\r\nimport API from './API'\r\n\r\nconst path = 'coupons'\r\nlet api = new API(DataAccess.apiUrl, DataAccess.userName, DataAccess.password);\r\n\r\nexport const getCouponProducts = (CouponCode) => {\r\n let newpath = path + \"?CouponCode=\" + CouponCode;\r\n return api.getData(newpath)\r\n}","import DataAccess from './constants';\r\nimport { genfunction } from '../helpers';\r\n\r\nconst path = 'Products?ProductType=gaticket';\r\n\r\nexport const apiGATicket = (params) => {\r\n\r\n var h = new Headers();\r\n h.append(\"Authorization\", 'Basic ' + genfunction.EncodeBase64(DataAccess.userName + ':' + DataAccess.password));\r\n h.append('Content-Type', 'application/json');\r\n let url = DataAccess.apiUrl + path + \"&\" + params;\r\n\r\n const req = new Request(url, {\r\n method: 'GET',\r\n headers: h\r\n })\r\n\r\n return fetch(req);\r\n}","import DataAccess from './constants';\r\nimport { genfunction } from '../helpers';\r\n\r\nconst path = 'Products?ProductType=giftcard&displayarea=';\r\n\r\nexport const apiGiftCards = (params) => {\r\n\r\n var h = new Headers();\r\n h.append(\"Authorization\", 'Basic ' + genfunction.EncodeBase64(DataAccess.userName + ':' + DataAccess.password));\r\n h.append('Content-Type', 'application/json');\r\n let url = DataAccess.apiUrl + path + params;\r\n\r\n const req = new Request(url, {\r\n method: 'GET',\r\n headers: h\r\n })\r\n\r\n return fetch(req);\r\n}","import DataAccess from './constants';\r\nimport API from './API'\r\n\r\nconst path = 'giftcardholds'\r\nlet api = new API(DataAccess.apiUrl, DataAccess.userName, DataAccess.password);\r\n\r\nexport const postGiftCardHold = (tourhold) => {\r\n return api.postData(path, tourhold);\r\n}\r\n\r\nexport const deleteGiftCardHold = (params) => {\r\n return api.deleteData(path + params, {});\r\n}","import DataAccess from './constants';\r\nimport API from './API'\r\n\r\nconst path = 'orderlocations';\r\nlet api = new API(DataAccess.apiUrl, DataAccess.userName, DataAccess.password);\r\n\r\nexport const getOrderLocationsByDisplayArea = (displayArea) => {\r\n let newpath = path + \"?displayArea=\" + displayArea;\r\n return api.getData(newpath)\r\n}","import DataAccess from './constants';\r\nimport API from './API'\r\n\r\nconst path = 'products';\r\nlet api = new API(DataAccess.apiUrl, DataAccess.userName, DataAccess.password);\r\n\r\nexport const apiGetProductsByProductType = (productType) => {\r\n let newpath = path + \"?ProductType=\" + productType;\r\n return api.getData(newpath)\r\n}\r\n\r\nexport const apiGetProductsByProductTypeAndDisplayArea = (productType, displayArea) => {\r\n let newpath = path + \"?ProductType=\" + productType + \"&DisplayArea=\" + displayArea;\r\n return api.getData(newpath)\r\n}","import DataAccess from './constants';\r\nimport { genfunction } from '../helpers';\r\n\r\nlet path = 'IDME/UserData?token='\r\n\r\nexport const apiIDMeUserData = (idmeObj) => {\r\n\r\n var h = new Headers();\r\n h.append('Content-Type', 'application/json');\r\n\r\n let url = DataAccess.apiUrl + path + idmeObj.token;\r\n\r\n var myInit = { method: 'GET' };\r\n\r\n const req = new Request(url.replace(\"v3/\", \"\"), myInit);\r\n\r\n return fetch(req);\r\n}","import DataAccess from './constants';\r\nimport { genfunction } from '../helpers';\r\nconst path = 'LostMemberNoEmail/LostMemberNo';\r\n\r\nexport const apiLostMember = (params) => {\r\n\r\n var h = new Headers();\r\n h.append(\"Authorization\", 'Basic ' + genfunction.EncodeBase64(DataAccess.userName + ':' + DataAccess.password));\r\n h.append('Content-Type', 'application/json');\r\n\r\n let url = DataAccess.apiUrl + path;\r\n\r\n if (params[0]) {\r\n url += '?LastName=' + params[0].LastName + '&Email=' + params[0].Email;\r\n }\r\n\r\n const req = new Request(url, {\r\n method: 'GET',\r\n headers: h\r\n })\r\n\r\n return fetch(req);\r\n}","import DataAccess from './constants';\r\nimport API from './API'\r\n\r\nconst path = 'customers'\r\n\r\nexport const getmember = (params) => {\r\n let api = new API(DataAccess.apiUrl, DataAccess.userName, DataAccess.password);\r\n return api.getData(path + params);\r\n}\r\n\r\nexport const postmember = (member) => {\r\n let api = new API(DataAccess.apiUrl, DataAccess.userName, DataAccess.password);\r\n return api.postData(path, member);\r\n}\r\n\r\nexport const putmember = (member) => {\r\n let api = new API(DataAccess.apiUrl, DataAccess.userName, DataAccess.password);\r\n return api.putData(path, member);\r\n}","import DataAccess from './constants';\r\nimport { genfunction } from '../helpers';\r\n\r\nconst path = 'memberships?CustomerID=';\r\n\r\nexport const apiMemberMemberships = (params) => {\r\n\r\n var h = new Headers();\r\n h.append(\"Authorization\", 'Basic ' + genfunction.EncodeBase64(DataAccess.userName + ':' + DataAccess.password));\r\n h.append('Content-Type', 'application/json');\r\n\r\n let url = DataAccess.apiUrl + path + params + '&HideFamilyMembers=false';\r\n\r\n const req = new Request(url, {\r\n method: 'GET',\r\n headers: h\r\n })\r\n\r\n return fetch(req);\r\n}","import DataAccess from './constants';\r\nimport { genfunction } from '../helpers';\r\n\r\nconst path = 'membershippackages?DisplayArea=';\r\n\r\nexport const apiMembershipPackages = (displayAreaNo) => {\r\n\r\n var h = new Headers();\r\n h.append(\"Authorization\", 'Basic ' + genfunction.EncodeBase64(DataAccess.userName + ':' + DataAccess.password));\r\n h.append('Content-Type', 'application/json');\r\n\r\n let url = DataAccess.apiUrl + path + (displayAreaNo ? displayAreaNo : 0);\r\n\r\n const req = new Request(url, {\r\n method: 'GET',\r\n headers: h\r\n })\r\n\r\n return fetch(req);\r\n}","import DataAccess from './constants';\r\nimport { genfunction } from '../helpers';\r\nimport Moment from 'moment';\r\n\r\nconst path = 'MemberValidation?CardOrMemberNo=';\r\n\r\nexport const apiMemberValidation = (params) => {\r\n\r\n var h = new Headers();\r\n h.append(\"Authorization\", 'Basic ' + genfunction.EncodeBase64(DataAccess.userName + ':' + DataAccess.password));\r\n h.append('Content-Type', 'application/json');\r\n\r\n let url = DataAccess.apiUrl + path + params.memberNo + '&LastName=' + params.lastName;\r\n\r\n if(params.email && params.email != '')\r\n {\r\n url += '&Email=' + params.email;\r\n }\r\n\r\n if (params.phone && params.phone != '') {\r\n url += '&Phone=' + params.phone;\r\n }\r\n\r\n if (params.street && params.street != '') {\r\n url += '&Street1=' + params.street;\r\n }\r\n\r\n if (params.checkDate && params.checkDate != '') {\r\n url += '&CheckDate=' + params.checkDate;\r\n }\r\n\r\n\r\n const req = new Request(url, {\r\n method: 'GET',\r\n headers: h\r\n })\r\n\r\n return fetch(req);\r\n}","import DataAccess from './constants';\r\nimport API from './API'\r\n\r\nconst path = 'TourHolds'\r\nlet api = new API(DataAccess.apiUrl, DataAccess.userName, DataAccess.password);\r\n\r\nexport const postTourHold = (tourhold) => {\r\n return api.postData(path, tourhold);\r\n}\r\n\r\n// export const deleteTourHold = (params) => {\r\n// return api.getData(path + params);\r\n// }\r\n\r\n//Remove, as we are not using it anymore.","import DataAccess from './constants';\r\nimport API from './API';\r\nconst path = '/api/Transactions'\r\n\r\nconst { PaymentMethodType } = window['runConfig'];\r\n\r\n\r\nexport const posttransaction = (postdata) => {\r\n let api = new API(DataAccess.middlewareUrl, DataAccess.userName, DataAccess.password, DataAccess.middlewareUserName, DataAccess.middlewarePassword);\r\n let token = postdata.token ? postdata.token.token : '';\r\n let paymentamount = postdata.primaryAmount; // postdata.transaction[0].Payments[0] !== undefined ? postdata.transaction[0].Payments[0].PaymentAmount : 0;\r\n let email = postdata.email;\r\n let customerName = postdata.customerName;\r\n let recaptchav3token = postdata.recaptchav3token;\r\n\r\n return api.postData(path + \"?token=\" + token + \"&amount=\" + (PaymentMethodType === \"Spreedly\" ? parseInt((paymentamount * 100).toFixed()) : parseFloat(paymentamount).toFixed(2)) + \"&alternateamount=\" + (PaymentMethodType === \"Spreedly\" ? parseInt((postdata.alternateamount * 100).toFixed()) : parseFloat(postdata.alternateamount).toFixed(2)) + \"&email=\" + email + \"&customerName=\" + customerName + \"&recaptchav3token=\" + recaptchav3token, postdata.transaction, true);\r\n}","import DataAccess from './constants';\r\nimport { genfunction } from '../helpers';\r\nimport Moment from 'moment';\r\n\r\nconst { DefaultCostRateID } = window['runConfig'];\r\nconst path = 'tourproducts?TourProductID=';\r\n\r\nexport const apiTourProduct = (tourProductID, CostRateID) => {\r\n\r\n var h = new Headers();\r\n h.append(\"Authorization\", 'Basic ' + genfunction.EncodeBase64(DataAccess.userName + ':' + DataAccess.password));\r\n h.append('Content-Type', 'application/json');\r\n\r\n var priceDate = Moment(new Date()).format('MM/DD/YYYY');\r\n\r\n const url = DataAccess.apiUrl + path + tourProductID + '&PriceDate=' + priceDate + '&CostRateID=' + DefaultCostRateID;\r\n\r\n const req = new Request(url, {\r\n method: 'GET',\r\n headers: h\r\n })\r\n\r\n return fetch(req);\r\n}","import DataAccess from './constants';\r\nimport { genfunction } from '../helpers';\r\n\r\nconst path = 'Products?ProductID=';\r\n\r\nexport const apiTransactionFee = (params) => {\r\n\r\n var h = new Headers();\r\n h.append(\"Authorization\", 'Basic ' + genfunction.EncodeBase64(DataAccess.userName + ':' + DataAccess.password));\r\n h.append('Content-Type', 'application/json');\r\n\r\n let url = DataAccess.apiUrl + path + params.productId + '&ProductType=' + params.productType;\r\n\r\n const req = new Request(url, {\r\n method: 'GET',\r\n headers: h\r\n })\r\n\r\n return fetch(req);\r\n}","import DataAccess from './constants';\r\nimport API from './API';\r\nconst path = 'UniqueCouponHolds/UniqueCouponHolds';\r\n\r\nlet api = new API(DataAccess.apiUrl, DataAccess.userName, DataAccess.password);\r\n\r\nexport const uniqueCouponPost = (uniqueCouponCode) => {\r\n return api.postData(path , uniqueCouponCode);\r\n}\r\n\r\nexport const deleteUniqueCouponHolds = (params) => {\r\n return api.deleteData(path + params, {});\r\n}","import DataAccess from './constants';\r\nimport { genfunction } from '../helpers';\r\n\r\nconst path = 'userdefinedfields?';\r\n\r\nexport const apiUserDefinedFields = (params) => {\r\n\r\n var h = new Headers();\r\n h.append(\"Authorization\", 'Basic ' + genfunction.EncodeBase64(DataAccess.userName + ':' + DataAccess.password));\r\n h.append('Content-Type', 'application/json');\r\n\r\n let url = DataAccess.apiUrl + path;\r\n\r\n if (params.payload.type === 'Booking') {\r\n\r\n if (params.payload.listOfIds.length < 1) {\r\n url += \"BookingTypeID=\" + params.payload.id;\r\n }\r\n else {\r\n url += \"BookingTypeIDList=\" + params.payload.listOfIds;\r\n }\r\n }\r\n else if (params.payload.type === 'Memberships') {\r\n if (params.payload.listOfIds.length < 1) {\r\n url += \"MembershipTypeID=\" + params.payload.id;\r\n }\r\n else {\r\n url += \"MembershipTypeIDList=\" + params.payload.listOfIds;\r\n }\r\n }\r\n\r\n const req = new Request(url, {\r\n method: 'GET',\r\n headers: h\r\n })\r\n\r\n return fetch(req);\r\n}","import DataAccess from './constants';\r\nimport { genfunction } from '../helpers';\r\n\r\nconst path = 'CountryAndStates'\r\n\r\nexport const apiCountryAndState = () => {\r\n\r\n var h = new Headers();\r\n h.append(\"Authorization\", 'Basic ' + genfunction.EncodeBase64(DataAccess.userName + ':' + DataAccess.password));\r\n h.append('Content-Type', 'application/json');\r\n\r\n let url = DataAccess.apiUrl + path ;\r\n const req = new Request(url, {\r\n method: 'GET',\r\n headers: h\r\n })\r\n\r\n return fetch(req);\r\n}","import DataAccess from './constants';\r\nimport { genfunction } from '../helpers';\r\n\r\nconst path = 'customers?CustomerType=Company&ListOnly=true';\r\n\r\nexport const apiOrganizationSection = (params) => {\r\n\r\n var h = new Headers();\r\n h.append(\"Authorization\", 'Basic ' + genfunction.EncodeBase64(DataAccess.userName + ':' + DataAccess.password));\r\n h.append('Content-Type', 'application/json');\r\n\r\n let url = DataAccess.apiUrl + path;\r\n\r\n url += '&CostRateList=' + params.costRateList;\r\n \r\n const req = new Request(url, {\r\n method: 'GET',\r\n headers: h\r\n })\r\n\r\n return fetch(req);\r\n}","import DataAccess from './constants';\r\nimport API from './API'\r\n\r\nconst path = 'bookingtickets'\r\n\r\nexport const postbookingtickets = (bookingtickets) => {\r\n let api = new API(DataAccess.apiUrl, DataAccess.userName, DataAccess.password);\r\n return api.postData(path, bookingtickets);\r\n}\r\n","import { put, takeEvery, select } from 'redux-saga/effects';\r\nimport { BOOKINGTYPES_LOADING, GET_BOOKINGTYPES_DATA_SUCCESS, GET_BOOKINGTYPES_DATA_ERROR } from \"../actions/actionBookingTypes\";\r\nimport { apiBookingTypes } from 'api';\r\n\r\nasync function fetchAsync(func, id, isDisplayArea) {\r\n const response = await func(id, isDisplayArea);\r\n if (response.ok && response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.statusText === 'Unauthorized') {\r\n throw new Error(\"Authorization has been denied for this request.\");\r\n }\r\n else if (response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n if (response.status == 400) {\r\n let error = await response.json();\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"\" + error.Errors[0].ErrorMessage.replace('Error: ', '') + \" response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to get booking types, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* fetchBookingTypesData(action) {\r\n try {\r\n\r\n const events = yield select(state => state.reducerShopCart.events);\r\n\r\n const data = yield fetchAsync(apiBookingTypes, action.id, action.isDisplay);\r\n yield put({ type: GET_BOOKINGTYPES_DATA_SUCCESS, payload: data, events: events });\r\n } catch (e) {\r\n yield put({ type: GET_BOOKINGTYPES_DATA_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nexport const sagaBookingTypes = [\r\n takeEvery(BOOKINGTYPES_LOADING, fetchBookingTypesData)\r\n];\r\n","import { put, takeEvery, select } from 'redux-saga/effects'\nimport { EXTRAITEMS_LOADING, GET_EXTRAITEMS_DATA_SUCCESS, GET_EXTRAITEMS_DATA_ERROR } from \"../actions/actionExtraItems\";\nimport { apiExtraItems } from 'api';\nimport { GET_BOOKINGTYPE_DATA, GET_BOOKINGTYPES_DATA_SUCCESS } from \"../actions/actionBookingTypes\";\nimport { apiBookingTypes } from 'api';\nimport { GET_DISPLAYAREAS_DATA_SUCCESS } from \"../actions/actionDisplayAreas\";\nimport { apiDisplayAreas } from 'api';\n\nasync function fetchAsync(func, bookingID, nextTourDate, checkFromNextTourDate, isDisplayArea, isListView, currentView, listViewSearchDays, tourEventsList) {\n\n const response = await func(bookingID, nextTourDate, checkFromNextTourDate, isDisplayArea, isListView, currentView, listViewSearchDays, tourEventsList);\n\n if (response.ok && response.status == 200) {\n return await response.json();\n }\n else if (response.status == 204) {\n return \"nocontent\";\n }\n else if (response.status == 401) {\n throw new Error('Authorization has been denied for this request.');\n }\n else if (response.status == 404) {\n throw new Error('The Requested URL was not found.');\n }\n else if (!response.ok) {\n throw new Error('An expected error has occured while getting products, Please contact administrator.');\n }\n}\n\nfunction* fetchExtraItemsData(action) {\n try {\n\n let bkngTypes = yield select(state => state.reducerBookingTypes);\n let bookingType = yield select(state => state.reducerBookingTypes.bookingType);\n\n if (bkngTypes.bookingTypes === undefined || bkngTypes.bookingTypes.length < 1) {\n bkngTypes = yield fetchAsync(apiBookingTypes, action.payload, action.isDisplayArea);\n }\n else {\n bkngTypes = bkngTypes.bookingTypes;\n }\n\n if (bkngTypes && bkngTypes.length > 0 && !bookingType.hasOwnProperty('BookingTypeID')) {\n bookingType = bkngTypes[0];\n }\n\n let areaNumber;\n\n if (action.isDisplayArea) {\n let displayAreas = yield select(state => state.reducerDisplayAreas.displayAreas);\n let displayArea = yield select(state => state.reducerDisplayAreas.displayArea);\n\n if (displayAreas.length < 1) {\n\n if (displayArea && displayArea.hasOwnProperty('DisplayAreaNo') && displayArea.DisplayAreaNo == action.payload) {\n areaNumber = displayArea;\n }\n else {\n\n const data = yield fetchAsync(apiDisplayAreas, \"bookingtypes\")\n yield put({ type: GET_DISPLAYAREAS_DATA_SUCCESS, payload: data, id: action.payload, isDisplay: true });\n\n displayAreas = yield select(state => state.reducerDisplayAreas.displayAreas);\n\n if (displayAreas && displayAreas.length > 0) {\n areaNumber = displayAreas.filter(x => x.DisplayAreaNo == action.payload)[0];\n }\n\n }\n\n }\n else {\n areaNumber = displayAreas.filter(x => x.DisplayAreaNo == action.payload)[0];\n }\n\n if ((action.nextTourDate === undefined || action.nextTourDate === null) && areaNumber) {\n\n action.nextTourDate = displayAreas.filter(x => x.DisplayAreaNo == action.payload)[0].NextTourDate;\n }\n\n const data = yield fetchAsync(apiExtraItems, action.payload, action.nextTourDate,\n action.checkBookingTypeObj, action.isDisplayArea, action.isListView, action.currentView,\n action.isListView && action.isListView == true ? areaNumber.ListViewSearchDays : undefined,\n action.tourEventsList);\n\n yield put({ type: GET_EXTRAITEMS_DATA_SUCCESS, payload: data });\n }\n else {\n if (action.checkBookingTypeObj) {\n\n\n if ((bkngTypes && bkngTypes.length > 0 && bkngTypes.find(x => x.BookingTypeID === parseInt(action.payload)) !== undefined) ||\n (bookingType && bookingType.hasOwnProperty('BookingTypeID') && bookingType.BookingTypeID === parseInt(action.payload))) {\n\n var bookingTy = bkngTypes && bkngTypes.length > 0 ? bkngTypes.find(x => x.BookingTypeID === parseInt(action.payload)) : bookingType;\n let nextTourDate = undefined;\n\n if (action.nextTourDate !== undefined && action.nextTourDate !== null) {\n nextTourDate = action.nextTourDate;\n }\n\n else if (nextTourDate === undefined && bookingTy.hasOwnProperty('NextTourDate') && bookingTy.NextTourDate) {\n nextTourDate = bookingTy.NextTourDate;\n }\n\n var forceListView = action.isListView ? action.isListView : bookingTy.ForceListView;\n\n const data = yield fetchAsync(apiExtraItems, action.payload, nextTourDate,\n action.checkBookingTypeObj, false, forceListView, action.currentView,\n forceListView ? bookingTy.ListViewSearchDays : undefined,\n action.tourEventsList)\n\n yield put({ type: GET_EXTRAITEMS_DATA_SUCCESS, payload: data });\n }\n }\n else {\n const data = yield fetchAsync(apiExtraItems, action.payload, action.nextTourDate,\n action.checkBookingTypeObj, action.isDisplayArea, null, action.currentView, null, action.tourEventsList);\n\n yield put({ type: GET_EXTRAITEMS_DATA_SUCCESS, payload: data });\n }\n }\n } catch (e) {\n yield put({ type: GET_EXTRAITEMS_DATA_ERROR, error: e.message });\n }\n}\n\nexport const sagaExtraItems = [\n takeEvery(EXTRAITEMS_LOADING, fetchExtraItemsData)\n];\n","import { put, takeEvery } from 'redux-saga/effects'\r\nimport { GET_MEMEBER_INFO_LOADING, POST_MEMBER_INFO_LOADING, MEMBER_DATA_SUCCESS, MEMBER_DATA_ERROR } from \"../actions/actionMember\";\r\nimport { getmember, postmember } from 'api';\r\n\r\nasync function fetchAsync(func, payload) {\r\n const response = await func(payload);\r\n if (response.ok) {\r\n return await response.json();\r\n }\r\n}\r\n\r\nfunction* fetchMemberInfoData(action) {\r\n try {\r\n const data = yield fetchAsync(getmember, action.payload)\r\n yield put({ type: MEMBER_DATA_SUCCESS, payload: data });\r\n } catch (e) {\r\n yield put({ type: MEMBER_DATA_ERROR, error: e.message });\r\n }\r\n}\r\n\r\nfunction* PostMemberInfoData() {\r\n try {\r\n const data = yield fetchAsync(postmember)\r\n yield put({ type: MEMBER_DATA_SUCCESS, payload: data });\r\n } catch (e) {\r\n yield put({ type: MEMBER_DATA_ERROR, error: e.message });\r\n }\r\n}\r\n\r\nexport const sagaMember = [\r\n takeEvery(GET_MEMEBER_INFO_LOADING, fetchMemberInfoData),\r\n takeEvery(POST_MEMBER_INFO_LOADING, PostMemberInfoData),\r\n];\r\n","import { put, takeEvery, select } from 'redux-saga/effects';\r\nimport { START_PAYMENT_TRANSACTION_LOADING, START_PAYMENT_TRANSACTION_SUCCESS, START_PAYMENT_TRANSACTION_ERROR } from \"../actions/actionPaymentTransaction\";\r\nimport { postmember } from 'api';\r\nimport { UpdateCustomerUdfs } from 'api';\r\nimport { posttransaction, postbookingtickets, apiBookingTypes } from 'api';\r\nimport { genfunction, UDFs } from 'helpers';\r\nimport AES from '../helpers/AES';\r\nconst { EnableAlternateMerchantOnline } = window['runConfig'];\r\n\r\nasync function fetchAsync(func, payload) {\r\n const response = await func(payload);\r\n\r\n if (response.status == 200) {\r\n\r\n if (response.url.includes('Transactions')) {\r\n\r\n const jVal = response.arrayBuffer();\r\n\r\n return await Promise.resolve(jVal).then(function (value) {\r\n let base64String = btoa(String.fromCharCode(...new Uint8Array(value)));\r\n let res = AES.decrypt(base64String);\r\n\r\n return JSON.parse(res);\r\n\r\n });\r\n }\r\n else {\r\n return await response.json();\r\n }\r\n\r\n }\r\n else if (response.status == 202 || response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n else if (response.status == 400) {\r\n\r\n if (response.url.includes('Transactions')) {\r\n\r\n const jVal = response.arrayBuffer();\r\n\r\n throw await Promise.resolve(jVal).then(function (value) {\r\n let base64String = btoa(String.fromCharCode(...new Uint8Array(value)));\r\n let res = AES.decrypt(base64String);\r\n\r\n return JSON.parse(res);\r\n\r\n });\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to update customer, response status: \" + response.status + \"\\\"}]}\");\r\n }\r\n }\r\n else if (response.status == 401) {\r\n if (response.url.includes('Transactions')) {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Middleware credentials are not valid, response status: \" + response.status + \"\\\"}]}\");\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Credentials are not valid please contact administrator for more details, response status: \" + response.status + \"\\\"}]}\");\r\n }\r\n }\r\n else if (response.status == 403) {\r\n if (response.url.includes('Transactions')) {\r\n\r\n const jVal = response.arrayBuffer();\r\n\r\n throw await Promise.resolve(jVal).then(function (value) {\r\n let base64String = btoa(String.fromCharCode(...new Uint8Array(value)));\r\n let res = AES.decrypt(base64String);\r\n return JSON.parse(res);\r\n });\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to update customer not enough privileges to perform an action, response status: \" + response.status + \"\\\"}]}\");\r\n }\r\n }\r\n else if (response.status == 422) {\r\n\r\n if (response.url.includes('Transactions')) {\r\n\r\n const jVal = response.arrayBuffer();\r\n\r\n return await Promise.resolve(jVal).then(function (value) {\r\n let base64String = btoa(String.fromCharCode(...new Uint8Array(value)));\r\n let res = AES.decrypt(base64String);\r\n\r\n throw JSON.parse(res);\r\n });\r\n }\r\n else {\r\n return await response.json();\r\n }\r\n }\r\n else {\r\n if (response.url.includes('Transactions')) {\r\n\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to perform transaction, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to update customer, response status: \" + response.status + \"\\\"}]}\");\r\n }\r\n }\r\n}\r\n\r\n\r\nfunction* SavePaymentTransactionData(action) {\r\n try {\r\n\r\n const customer = action.customer[0];\r\n const token = action.token;\r\n const recaptchaToken = action.recaptchaToken;\r\n\r\n\r\n const events = yield select(state => state.reducerShopCart.events);\r\n const cashless = yield select(state => state.reducerShopCart.cashless);\r\n const donation = yield select(state => state.reducerShopCart.donation);\r\n const transactionfee = yield select(state => state.reducerTransactionFee);\r\n const membershipPackages = yield select(state => state.reducerShopCart.MembershipPackages);\r\n const gatickets = yield select(state => state.reducerShopCart.GATickets);\r\n const orderProducts = yield select(state => state.reducerShopCart.orderProducts);\r\n const orderLocation = yield select(state => state.reducerOrderLocations.orderLocation);\r\n const reducerBooking = yield select(state => state.reducerBooking);\r\n let booking = reducerBooking && reducerBooking.booking[0] ? reducerBooking.booking[0] : null;\r\n const managebkngTicketsModify = yield select(state => state.reducerShopCart.managebookingticketsmodification);\r\n const managemybooking = yield select(state => state.reducerShopCart.managemybooking);\r\n const refundType = yield select(state => state.reducerShopCart.refundType);\r\n const addamount = yield select(state => state.reducerShopCart.additionalbookingamount);\r\n const customers = yield select(state => state.reducerCustomer);\r\n const giftcards = yield select(state => state.reducerGiftCards);\r\n const idmeshopreducer = yield select(state => state.reducerShopCart.IDME);\r\n const idmeuserdata = yield select(state => state.reducerIDMeUserData);\r\n const bookingUDFS = yield select(state => state.reducerBookingUserDefinedFields);\r\n const membershipTypesUdfs = yield select(state => state.reducerMembershipUserDefinedFields);\r\n const membershipValidation = yield select(state => state.reducerShopCart.membershipValidation);\r\n const showTransFee = yield select(state => state.reducerShopCart.showTransactionFee);\r\n const donationProducts = yield select(state => state.reducerShopCart.donationProducts);\r\n const enteredAmountToPay = yield select(state => state.reducerShopCart.enteredAmountToPay);\r\n\r\n let customerID = 0;\r\n var customerReq = null;\r\n let merchant1Amount = 0;\r\n let merchant2Amount = 0;\r\n\r\n\r\n let transaction = genfunction.convertEventstoTransaction(events, cashless, customer.CustomerID, token, donation, transactionfee.transactionFee[0], membershipPackages, gatickets, booking && booking.hasOwnProperty('BookingProducts') && booking.BookingProducts.length > 0 ? true : false, booking, managebkngTicketsModify, refundType, addamount, giftcards.giftcards, bookingUDFS, orderProducts, showTransFee, donationProducts, enteredAmountToPay);\r\n const memberValidationReducer = yield select(state => state.reducerMemberValidation);\r\n let customerPostCall = true;\r\n\r\n let userresponse = '';\r\n let customerUDFsResponse = '';\r\n let listCustomersMemberships = null;\r\n let bookingTicketsResponse = '';\r\n\r\n if (booking && booking.hasOwnProperty('BookingProducts') && booking.BookingProducts.length > 0 && managemybooking && customers.customer && customers.customer.length > 0) {\r\n\r\n if (refundType !== undefined && refundType.length < 1) {\r\n customerReq = action.customer;\r\n }\r\n }\r\n else {\r\n\r\n if (memberValidationReducer.membervalidation && memberValidationReducer.membervalidation.MemberValidation\r\n && memberValidationReducer.membervalidation.MemberValidation[0].hasOwnProperty('CustomerID')) {\r\n\r\n action.customer[0].CustomerID = memberValidationReducer.membervalidation.MemberValidation[0].CustomerID;\r\n\r\n\r\n if (membershipValidation.applycostRates) {\r\n\r\n customerPostCall = genfunction.CustomerPostCall(memberValidationReducer.membervalidation.MemberValidation[0], customer.GuestEmail);\r\n\r\n if (customerPostCall)\r\n customerID = memberValidationReducer.membervalidation.MemberValidation[0].CustomerID;\r\n }\r\n }\r\n }\r\n\r\n if (customerPostCall) {\r\n\r\n customerReq = action.customer;\r\n\r\n if (membershipPackages && membershipPackages.length > 0) {\r\n listCustomersMemberships = genfunction.GetCustomerList(membershipPackages, customerReq, customers);\r\n customerReq = listCustomersMemberships.customerRequest;\r\n }\r\n }\r\n\r\n if (idmeshopreducer.isIdMeApplied && idmeuserdata.userdata && idmeuserdata.userdata.attributes) {\r\n\r\n let obj = idmeuserdata.userdata.attributes.filter(x => x.handle === 'uuid')[0];\r\n\r\n if (obj) {\r\n customerReq[0].ExtCustomerID = obj.value;\r\n }\r\n }\r\n\r\n //Customer \r\n if (customerReq) {\r\n userresponse = yield fetchAsync(postmember, customerReq);\r\n\r\n if (userresponse == undefined || userresponse == \"nocontent\") {\r\n throw \"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to perform transaction\\\"}]}\"\r\n }\r\n\r\n if (userresponse && userresponse.length > 0) {\r\n customerID = userresponse[0].CustomerID;\r\n }\r\n }\r\n\r\n // Customer UDF's\r\n\r\n if (membershipPackages && membershipPackages.length > 0 && membershipTypesUdfs.membershipUdfs && membershipTypesUdfs.membershipUdfs.length > 0\r\n && userresponse !== undefined) {\r\n\r\n let customersUdfsList = UDFs.GetCustomersListToUpdateUDFs(membershipPackages, membershipTypesUdfs.membershipUdfs, userresponse);\r\n\r\n if (customersUdfsList && customersUdfsList.length > 0) {\r\n customerUDFsResponse = yield fetchAsync(UpdateCustomerUdfs, customersUdfsList);\r\n }\r\n\r\n if (customerUDFsResponse !== \"\" && (customerUDFsResponse == undefined || customerUDFsResponse !== \"nocontent\")) {\r\n throw \"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to perform transaction\\\"}]}\"\r\n }\r\n }\r\n\r\n if (customerPostCall) {\r\n transaction[0].CustomerID = customerID\r\n\r\n if (genfunction.IsOrganization(events)) {\r\n\r\n let eventIndex = events.findIndex(x => x.OrganizationID !== \"\")\r\n\r\n transaction[0].CustomerID = events[eventIndex].OrganizationID;\r\n transaction[0].PurchaserCustomerID = customerID;\r\n\r\n }\r\n\r\n }\r\n else {\r\n transaction[0].CustomerID = memberValidationReducer.membervalidation.MemberValidation[0].CustomerID;\r\n }\r\n\r\n if (orderProducts && orderProducts.length > 0) {\r\n transaction[0].TransactionType = \"Tab Sale\";\r\n if (orderLocation.NodeNo) {\r\n transaction[0].NodeNo = orderLocation.NodeNo;\r\n }\r\n transaction[0].TabCustomerFirstName = customer.FirstName;\r\n transaction[0].TabCustomerLastName = customer.LastName;\r\n transaction[0].TabCustomerMobile = customer.CustomerAddress[0].MobilePhone;\r\n transaction[0].TabLocationID = orderLocation.TabLocations[0].TabLocationID;\r\n transaction[0].LeaveOrderOpen = false;\r\n transaction[0].SendToKitchen = true;\r\n }\r\n\r\n //Update Transaction Request\r\n if (membershipPackages && membershipPackages.length > 0) {\r\n transaction = genfunction.UpdateTransactionCall(listCustomersMemberships.customerList, transaction, userresponse);\r\n }\r\n\r\n if (EnableAlternateMerchantOnline && (orderProducts && orderProducts.length < 1)) {\r\n let useAlternateAmount = true;\r\n\r\n if (!managemybooking) {\r\n let merchantTotalObj = genfunction.CalculateMultiMerchantTotal(events, gatickets, membershipPackages, giftcards.giftcards, donation, (showTransFee ? (transactionfee && transactionfee.transactionFee && transactionfee.transactionFee.length > 0 ? transactionfee.transactionFee[0] : null) : null), cashless, donationProducts);\r\n\r\n if (merchantTotalObj) {\r\n merchant1Amount = merchantTotalObj.merchant1Total;\r\n merchant2Amount = merchantTotalObj.merchant2Total;\r\n }\r\n }\r\n else {\r\n if (booking && booking.hasOwnProperty('UseAlternateMerchantOnline')) {\r\n useAlternateAmount = booking.UseAlternateMerchantOnline;\r\n }\r\n\r\n if (useAlternateAmount) {\r\n merchant2Amount = transaction[0].Payments[0] !== undefined ? transaction[0].Payments[0].PaymentAmount : 0;\r\n } else {\r\n merchant1Amount = transaction[0].Payments[0] !== undefined ? transaction[0].Payments[0].PaymentAmount : 0;\r\n }\r\n }\r\n\r\n }\r\n else {\r\n merchant1Amount = transaction[0].Payments[0] !== undefined ? transaction[0].Payments[0].PaymentAmount : 0;\r\n merchant2Amount = 0;\r\n }\r\n\r\n let transactionresponse = yield fetchAsync(posttransaction, { transaction: transaction, token: token, email: customer.CustomerAddress[0].Email, customerName: customer.FirstName + ' ' + customer.LastName, recaptchav3token: recaptchaToken, primaryAmount: merchant1Amount, alternateamount: merchant2Amount });\r\n\r\n if (transactionresponse == \"nocontent\") throw \"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to perform transaction\\\"}]}\"\r\n else {\r\n transactionresponse[0].Customer = customer;\r\n transactionresponse[0].Events = events;\r\n transactionresponse[0].MembershipPackages = membershipPackages;\r\n transactionresponse[0].OrderProducts = orderProducts;\r\n\r\n if (refundType === \"CancelBooking\" || refundType === \"CancelGiftCardRefund\") {\r\n transactionresponse[0].isCancelBooking = true;\r\n\r\n if (booking && booking.BookingID) {\r\n transactionresponse[0].BookingID = booking.BookingID;\r\n }\r\n }\r\n else if (refundType === \"AdditionalPayment\" && managemybooking && booking && booking.BalanceOwing === genfunction.AddCashlessAndAdditionalPayment(cashless, addamount)) {\r\n const bookingTypes = yield fetchAsync(apiBookingTypes, booking.BookingTypeID);\r\n\r\n if (bookingTypes == undefined || bookingTypes == \"nocontent\") {\r\n throw \"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to perform transaction\\\"}]}\"\r\n }\r\n else if (bookingTypes[0].DoNotGenerateTicketsAutomatically === false) {\r\n let bookingTickets = genfunction.ConvertBookingtoTickets(booking);\r\n\r\n if (bookingTickets && bookingTickets.Tickets.length > 0) {\r\n bookingTicketsResponse = yield fetchAsync(postbookingtickets, bookingTickets);\r\n\r\n if (bookingTicketsResponse == undefined || bookingTicketsResponse == \"nocontent\") {\r\n throw \"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to perform transaction\\\"}]}\"\r\n }\r\n }\r\n }\r\n }\r\n yield put({ type: START_PAYMENT_TRANSACTION_SUCCESS, payload: transactionresponse });\r\n }\r\n\r\n\r\n } catch (e) {\r\n yield put({ type: START_PAYMENT_TRANSACTION_ERROR, error: e });\r\n }\r\n}\r\n\r\n\r\nexport const sagaPaymentTransaction = [\r\n takeEvery(START_PAYMENT_TRANSACTION_LOADING, SavePaymentTransactionData),\r\n\r\n];\r\n","const path = 'https://api.ipify.org/?format=json'\r\n\r\nexport const getip = () => {\r\n\r\n let h = new Headers();\r\n h.append('Content-Type', 'application/json');\r\n let req = new Request(path, {\r\n method: 'GET',\r\n headers: h\r\n });\r\n\r\n return fetch(req);\r\n}","import { put, takeEvery, } from 'redux-saga/effects'\r\nimport { GET_IP_LOADING, GET_IP_SUCCESS, GET_IP_ERROR } from \"../actions/actionIP\";\r\nimport { getip } from '../api/ip'\r\n\r\nasync function fetchAsync(func) {\r\n const response = await func();\r\n if (response.ok) {\r\n return await response.json();\r\n }\r\n}\r\n\r\nfunction* fetchip() {\r\n try {\r\n const data = yield fetchAsync(getip)\r\n yield put({ type: GET_IP_SUCCESS, payload: data });\r\n } catch (e) {\r\n yield put({ type: GET_IP_ERROR, error: e.message });\r\n }\r\n}\r\n\r\nexport const sagaIP = [\r\n takeEvery(GET_IP_LOADING, fetchip)\r\n];\r\n","import { put, takeEvery } from 'redux-saga/effects'\r\nimport {\r\n DISPLAYAREAS_LOADING, DISPLAYAREAS_BY_ID_LOADING, DISPLAYAREAS_BY_ID_AND_TYPE_LOADING,\r\n GET_DISPLAYAREAS_DATA_SUCCESS, GET_DISPLAYAREAS_DATA_ERROR\r\n} from \"../actions/actionDisplayAreas\";\r\nimport { apiDisplayAreas, apiDisplayAreasById, apiDisplayAreasByIdAndType } from 'api';\r\n\r\nasync function fetchAsync(func, param1, param2) {\r\n const response = await func(param1, param2);\r\n\r\n if (response.ok && response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 204) {\r\n throw new Error(\"No display areas record found.\");\r\n }\r\n else if (response.status === 'Unauthorized') {\r\n throw new Error(\"Authorization has been denied for this request.\");\r\n }\r\n else {\r\n throw new Error(\"Unable to Get Display Areas, response: \" + response.statusText + \" - \" + response.status)\r\n }\r\n}\r\n\r\nfunction* fetchDisplayAreasData(action) {\r\n try {\r\n const data = yield fetchAsync(apiDisplayAreas, action.displayAreaType)\r\n yield put({ type: GET_DISPLAYAREAS_DATA_SUCCESS, payload: data, id: action.id, isDisplay: action.isDisplay });\r\n } catch (e) {\r\n yield put({ type: GET_DISPLAYAREAS_DATA_ERROR, error: e.message });\r\n }\r\n}\r\n\r\nfunction* fetchDisplayAreasByIdData(action) {\r\n try {\r\n const data = yield fetchAsync(apiDisplayAreasById, action.payload)\r\n yield put({ type: GET_DISPLAYAREAS_DATA_SUCCESS, payload: data });\r\n } catch (e) {\r\n yield put({ type: GET_DISPLAYAREAS_DATA_ERROR, error: e.message });\r\n }\r\n}\r\n\r\n\r\nfunction* fetchDisplayAreasByIdAndTypeData(action) {\r\n try {\r\n const data = yield fetchAsync(apiDisplayAreasByIdAndType, action.id, action.displayAreaType)\r\n yield put({ type: GET_DISPLAYAREAS_DATA_SUCCESS, payload: data });\r\n } catch (e) {\r\n yield put({ type: GET_DISPLAYAREAS_DATA_ERROR, error: e.message });\r\n }\r\n}\r\n\r\nexport const sagaDisplayAreas = [\r\n takeEvery(DISPLAYAREAS_LOADING, fetchDisplayAreasData),\r\n takeEvery(DISPLAYAREAS_BY_ID_LOADING, fetchDisplayAreasByIdData),\r\n takeEvery(DISPLAYAREAS_BY_ID_AND_TYPE_LOADING, fetchDisplayAreasByIdAndTypeData)\r\n];\r\n","import { put, takeEvery, select } from 'redux-saga/effects'\r\nimport {\r\n SHOPCART_ADD_EVENT, SHOPCART_ADD_EVENT_WITH_TOURHOLD, SHOPCART_ERROR,\r\n SHOPCART_SET_TOUR_PRODUCT_QUANTITY_WITH_TOURHOLD_LOADING,\r\n SHOPCART_SET_TOUR_PRODUCT_QUANTITY,\r\n SHOPCART_REMOVE_TOUR_PRODUCT_WITH_TOURHOLD_LOADING,\r\n SHOPCART_REMOVE_TOUR_PRODUCT,\r\n SHOPCART_REMOVE_EVENT,\r\n SHOPCART_RESET_STATE_WITH_TOURHOLD_LOADING,\r\n SHOPCART_REMOVE_SINGLE_TOUR_WITH_TOURHOLD_LOADING,\r\n SHOPCART_RESET_STATE, SHOPCART_RESET_STATE_WITH_UNIQUECOUPONHOLD,\r\n SHOPCART_REMOVE_GIFTCARDS,\r\n SHOPCART_REMOVE_ALL_COUPONS,\r\n SHOPCART_RESET_GIFTCARDS\r\n} from \"../actions/actionShopCart\";\r\nimport { postTourHold } from 'api';\r\nimport { deleteGiftCardHold } from 'api';\r\nimport { genfunction } from 'helpers'\r\nimport { deleteUniqueCouponHolds } from 'api';\r\n\r\nasync function fetchAsync(func, payload) {\r\n const response = await func(payload);\r\n if (response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 202 || response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n else if (response.status == 400) {\r\n throw await response.json();\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to perform tourhold, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* ShopcartAddEventWithTourHold(action) {\r\n try {\r\n let tourholds = genfunction.ConvertCartItemToTourHold(action.payload.cartevent, action.payload.event, action.isEditEvent);\r\n let tourholdresponse = yield fetchAsync(postTourHold, tourholds);\r\n let bktype = yield select(state => state.reducerBookingTypes.bookingTypes);\r\n\r\n action.payload.event.BookingTypeTerms = bktype[0].BookingTypeTerms;\r\n\r\n if (tourholdresponse == \"nocontent\") throw \"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to perform tourhold\\\"}]}\"\r\n else {\r\n action.payload.event = genfunction.SetTourHoldRef(tourholdresponse, action.payload.event);\r\n\r\n yield put({\r\n type: SHOPCART_ADD_EVENT, payload: action.payload.event, organizationID: action.organizationID\r\n , groupSize: action.groupSize, paymentOption: action.paymentOption, amountSelected: action.amountSelected, isEditEvent: action.isEditEvent\r\n });\r\n\r\n }\r\n } catch (e) {\r\n yield put({ type: SHOPCART_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\n\r\nfunction* ShopcartSetTourProductQuantityTourHold(action) {\r\n try {\r\n let tourholds = genfunction.ConvertCartItemToTourHoldIncreaseQuantity(action.payload.CartEvent, action.payload.TourEventID, action.payload.TourProductID, action.payload.Quantity);\r\n let tourholdresponse = yield fetchAsync(postTourHold, tourholds);\r\n\r\n if (tourholdresponse == \"nocontent\") throw \"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to perform tourhold\\\"}]}\"\r\n else {\r\n yield put({ type: SHOPCART_SET_TOUR_PRODUCT_QUANTITY, payload: action.payload });\r\n }\r\n } catch (e) {\r\n yield put({ type: SHOPCART_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nfunction* ShopcartRemoveTourProductWithTourHold(action) {\r\n try {\r\n let tourholds = genfunction.ConvertCartItemToTourHoldRemoveTourProduct(action.payload.CartEvent, action.payload.TourEventID, action.payload.TourProductID);\r\n\r\n let tourholdresponse = yield fetchAsync(postTourHold, tourholds);\r\n if (tourholdresponse == \"nocontent\") throw \"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to perform tourhold\\\"}]}\"\r\n else {\r\n yield put({ type: SHOPCART_REMOVE_TOUR_PRODUCT, payload: action.payload });\r\n }\r\n } catch (e) {\r\n yield put({ type: SHOPCART_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nfunction* ShopcartResetStateWithTourHold(action) {\r\n try {\r\n let tourholds = genfunction.ConvertCartItemToTourHoldResetState(action.payload);\r\n let cashlessholds = yield select(state => state.reducerShopCart.cashless);\r\n let tourholdresponse = yield fetchAsync(postTourHold, tourholds);\r\n if (tourholdresponse == \"nocontent\") throw \"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to perform tourhold\\\"}]}\"\r\n else {\r\n for (let index = 0; index < cashlessholds.length; index++) {\r\n let cashlessholdresponse = yield fetchAsync(deleteGiftCardHold, '/?GiftcardHoldRef=' + cashlessholds[index].GiftcardHoldRef);\r\n if (cashlessholdresponse != \"nocontent\")\r\n throw \"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to delete GiftCardHold\\\"}]}\"\r\n }\r\n\r\n yield put({ type: SHOPCART_RESET_STATE, payload: action.payload });\r\n }\r\n } catch (e) {\r\n yield put({ type: SHOPCART_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nfunction* actionShopCartRemoveSingleTourWithTourHold(action) { \r\n try {\r\n let tourholds = genfunction.ConvertCartTourToTourHoldResetState(action.payload.CartEvent, action.payload.TourEventID);\r\n let tourholdresponse = yield fetchAsync(postTourHold, tourholds);\r\n if (tourholdresponse == \"nocontent\") throw \"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to perform tourhold\\\"}]}\"\r\n else {\r\n yield put({ type: SHOPCART_REMOVE_EVENT, payload: action.payload.TourEventID });\r\n }\r\n } catch (e) {\r\n yield put({ type: SHOPCART_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nfunction* ShopcartResetStateWithUniqueCouponHolds(action) {\r\n try {\r\n\r\n let tourCoupons = yield select(state => state.reducerShopCart.tourCoupons);\r\n\r\n tourCoupons = tourCoupons.filter(x => x.RequireUniqueCouponCode);\r\n\r\n if (tourCoupons && tourCoupons.length > 0)\r\n for (let index = 0; index < tourCoupons.length; index++) {\r\n let uniqueCouponHoldResponse = yield fetchAsync(deleteUniqueCouponHolds, '/?CouponHoldRef=' + tourCoupons[index].CouponHoldRef);\r\n if (uniqueCouponHoldResponse != \"nocontent\")\r\n throw \"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to delete UniqueCouponHolds\\\"}]}\"\r\n }\r\n\r\n if (action.payload) {\r\n yield put({ type: SHOPCART_REMOVE_ALL_COUPONS, payload: action.payload });\r\n }\r\n } catch (e) {\r\n yield put({ type: SHOPCART_ERROR, error: e.Errors[0].ErrorMessagee });\r\n }\r\n}\r\n\r\nfunction* shopcartremovegiftcards(action) {\r\n try {\r\n let cashlessholds = yield select(state => state.reducerShopCart.cashless);\r\n\r\n for (let index = 0; index < cashlessholds.length; index++) {\r\n let cashlessholdresponse = yield fetchAsync(deleteGiftCardHold, '/?GiftcardHoldRef=' + cashlessholds[index].GiftcardHoldRef);\r\n if (cashlessholdresponse != \"nocontent\")\r\n throw \"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to delete GiftCardHold\\\"}]}\"\r\n }\r\n\r\n yield put({ type: SHOPCART_RESET_GIFTCARDS, payload: action.payload });\r\n\r\n } catch (e) {\r\n yield put({ type: SHOPCART_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nexport const sagaShopCart = [\r\n takeEvery(SHOPCART_ADD_EVENT_WITH_TOURHOLD, ShopcartAddEventWithTourHold),\r\n takeEvery(SHOPCART_SET_TOUR_PRODUCT_QUANTITY_WITH_TOURHOLD_LOADING, ShopcartSetTourProductQuantityTourHold),\r\n takeEvery(SHOPCART_REMOVE_TOUR_PRODUCT_WITH_TOURHOLD_LOADING, ShopcartRemoveTourProductWithTourHold),\r\n takeEvery(SHOPCART_RESET_STATE_WITH_TOURHOLD_LOADING, ShopcartResetStateWithTourHold),\r\n takeEvery(SHOPCART_REMOVE_SINGLE_TOUR_WITH_TOURHOLD_LOADING, actionShopCartRemoveSingleTourWithTourHold),\r\n takeEvery(SHOPCART_RESET_STATE_WITH_UNIQUECOUPONHOLD, ShopcartResetStateWithUniqueCouponHolds),\r\n takeEvery(SHOPCART_REMOVE_GIFTCARDS, shopcartremovegiftcards)\r\n];\r\n","import { put, takeEvery, select } from 'redux-saga/effects'\r\nimport {\r\n GIFTCARD_HOLD_LOADNG, GIFTCARD_HOLD_SUCCESS, GIFTCARD_HOLD_ERROR,\r\n GIFTCARD_HOLD_DELETE_LOADNG, GIFTCARD_HOLD_RESET,\r\n GIFTCARD_HOLD_RECALCULATE_LOADNG\r\n} from \"../actions/actionGiftCardHold\";\r\n\r\nimport { SHOPCART_DELETE_GIFTCARD, SHOPCART_UPDATE_GIFTCARD } from '../actions/actionShopCart'\r\nimport { postGiftCardHold, deleteGiftCardHold } from 'api';\r\nimport { genfunction } from 'helpers'\r\n\r\nasync function fetchAsync(func, payload) {\r\n const response = await func(payload);\r\n if (response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 202 || response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n else if (response.status == 400) {\r\n throw await response.json();\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to perform giftcardhold, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* AddGiftCardHold(action) {\r\n try {\r\n const events = yield select(state => state.reducerShopCart.events);\r\n const cashless = yield select(state => state.reducerShopCart.cashless);\r\n const donation = yield select(state => state.reducerShopCart.donation);\r\n const membershipPackages = yield select(state => state.reducerShopCart.MembershipPackages);\r\n const transactionfee = yield select(state => state.reducerTransactionFee);\r\n const gatickets = yield select(state => state.reducerShopCart.GATickets);\r\n const orderProducts = yield select(state => state.reducerShopCart.orderProducts);\r\n const reducerBooking = yield select(state => state.reducerBooking);\r\n const managemybkng = yield select(state => state.reducerShopCart.managemybooking);\r\n const giftcards = yield select(state => state.reducerGiftCards);\r\n const donationProducts = yield select(state => state.reducerShopCart.donationProducts);\r\n const showTransFee = yield select(state => state.reducerShopCart.showTransactionFee);\r\n const enteredAmountToPay = yield select(state => state.reducerShopCart.enteredAmountToPay);\r\n let cashlesstotal = cashless ? cashless.map(({ HoldAmount }) => HoldAmount).reduce((sum, i) => sum + i, 0) : 0;\r\n\r\n const alreadyexistcashless = cashless.find(item => item.GiftcardNo === action.giftCardNo);\r\n if (alreadyexistcashless) {\r\n throw { Errors: [{ ErrorMessage: \"This giftcard was already used in cart. Delete that giftcard from cart and try again.\" }] }\r\n }\r\n\r\n let isTransFeeApplicable = showTransFee && transactionfee.transactionFee[0] && !transactionfee.transactionFee[0].PriceIsAPercentage ? transactionfee.transactionFee[0] : undefined;\r\n let totalamount = genfunction.subproducttotal(events, cashless, donation, isTransFeeApplicable, membershipPackages, gatickets, giftcards.giftcards, orderProducts, donationProducts);\r\n\r\n if (managemybkng && reducerBooking && reducerBooking.booking[0]) {\r\n totalamount = enteredAmountToPay - cashlesstotal;\r\n\r\n if (isTransFeeApplicable) {\r\n let transFee = genfunction.TransactionFeeForPartialPayment(transactionfee.transactionFee[0], totalamount, 0);\r\n totalamount += transFee;\r\n\r\n }\r\n }\r\n\r\n let GetGiftCardHoldRequest = genfunction.GetGiftCardHoldRequest(action.giftCardNo, totalamount);\r\n let giftholdresponse = yield fetchAsync(postGiftCardHold, GetGiftCardHoldRequest);\r\n if (giftholdresponse == \"nocontent\") throw \"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to perform giftcardhold\\\"}]}\"\r\n else {\r\n yield put({ type: GIFTCARD_HOLD_SUCCESS, payload: giftholdresponse });\r\n }\r\n } catch (e) {\r\n yield put({ type: GIFTCARD_HOLD_ERROR, error: e });\r\n }\r\n}\r\n\r\nfunction* DeleteGiftCardHold(action) {\r\n try {\r\n let giftholdresponse = yield fetchAsync(deleteGiftCardHold, '/?GiftcardHoldRef=' + action.GiftcardHoldRef);\r\n if (giftholdresponse == \"nocontent\") {\r\n yield put({ type: SHOPCART_DELETE_GIFTCARD, payload: action.GiftcardHoldRef });\r\n yield put({ type: GIFTCARD_HOLD_RESET, payload: '' });\r\n }\r\n else {\r\n yield put({ type: GIFTCARD_HOLD_ERROR, error: giftholdresponse });\r\n }\r\n } catch (e) {\r\n yield put({ type: GIFTCARD_HOLD_ERROR, error: e });\r\n }\r\n}\r\n\r\nfunction* RecalculateGiftCardHold(action) {\r\n try {\r\n\r\n const events = yield select(state => state.reducerShopCart.events);\r\n const cashless = yield select(state => state.reducerShopCart.cashless);\r\n const donation = yield select(state => state.reducerShopCart.donation);\r\n const membershipPackages = yield select(state => state.reducerShopCart.MembershipPackages);\r\n const transactionfee = yield select(state => state.reducerTransactionFee);\r\n const gatickets = yield select(state => state.reducerShopCart.GATickets);\r\n const orderProducts = yield select(state => state.reducerShopCart.orderProducts);\r\n const reducerBooking = yield select(state => state.reducerBooking);\r\n const managemybkng = yield select(state => state.reducerShopCart.managemybooking);\r\n const giftcards = yield select(state => state.reducerGiftCards);\r\n const donationProducts = yield select(state => state.reducerShopCart.donationProducts);\r\n const showTransFee = yield select(state => state.reducerShopCart.showTransactionFee);\r\n const refundType = yield select(state => state.reducerShopCart.refundType);\r\n const enteredAmountToPay = yield select(state => state.reducerShopCart.enteredAmountToPay);\r\n let cashlesstotal = cashless ? cashless.map(({ HoldAmount }) => HoldAmount).reduce((sum, i) => sum + i, 0) : 0;\r\n\r\n let isTransFeeApplicable = showTransFee && transactionfee.transactionFee[0] && !transactionfee.transactionFee[0].PriceIsAPercentage ? transactionfee.transactionFee[0] : undefined;\r\n let totalamount = genfunction.subproducttotal(events, [], donation, isTransFeeApplicable, membershipPackages, gatickets, giftcards.giftcards, orderProducts, donationProducts);\r\n\r\n if (managemybkng && reducerBooking && reducerBooking.booking[0]) {\r\n let totalPaid = 0;\r\n\r\n reducerBooking.booking[0].BookingPayments.forEach(x => {\r\n totalPaid += x.PaymentAmount;\r\n })\r\n\r\n totalamount -= totalPaid;\r\n\r\n if (refundType === \"AdditionalPayment\" || (refundType === \"\" && totalamount > 0)) {\r\n totalamount = enteredAmountToPay;//- cashlesstotal;\r\n\r\n if (isTransFeeApplicable) {\r\n let transFee = genfunction.TransactionFeeForPartialPayment(transactionfee.transactionFee[0], totalamount, 0);\r\n totalamount += transFee;\r\n\r\n }\r\n }\r\n }\r\n\r\n let newcashless = genfunction.RecalculatedCashlessArray(cashless, totalamount);\r\n\r\n const toUpdateCashless = genfunction.GetGiftCardHoldRequestForUpdate(newcashless.filter(x => x.state == 'Update'));\r\n const toDeleteCashless = newcashless.filter(x => x.state == 'Delete');\r\n\r\n let giftholdresponse = '';\r\n if (toUpdateCashless.length > 0)\r\n giftholdresponse = yield fetchAsync(postGiftCardHold, toUpdateCashless);\r\n\r\n if (giftholdresponse == 'nocontent')\r\n throw \"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to update GiftCardHold\\\"}]}\"\r\n else {\r\n if (giftholdresponse != '')\r\n newcashless = genfunction.UpdateNewGiftCardHoldRef(newcashless, giftholdresponse);\r\n\r\n for (let index = 0; index < toDeleteCashless.length; index++) {\r\n let cashlessholdresponse = yield fetchAsync(deleteGiftCardHold, '/?GiftcardHoldRef=' + toDeleteCashless[index].GiftcardHoldRef);\r\n if (cashlessholdresponse != \"nocontent\")\r\n throw \"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to delete GiftCardHold\\\"}]}\"\r\n }\r\n yield put({ type: SHOPCART_UPDATE_GIFTCARD, payload: newcashless.filter(x => x.state == 'Remain' || x.state == 'Update') });\r\n yield put({ type: GIFTCARD_HOLD_RESET, payload: '' });\r\n }\r\n } catch (e) {\r\n yield put({ type: GIFTCARD_HOLD_ERROR, error: e });\r\n }\r\n}\r\n\r\nexport const sagaGiftCardHold = [\r\n takeEvery(GIFTCARD_HOLD_LOADNG, AddGiftCardHold),\r\n takeEvery(GIFTCARD_HOLD_DELETE_LOADNG, DeleteGiftCardHold),\r\n takeEvery(GIFTCARD_HOLD_RECALCULATE_LOADNG, RecalculateGiftCardHold)\r\n];\r\n\r\n\r\n\r\n","import { put, takeEvery, select } from 'redux-saga/effects'\r\nimport { COUPON_LOADING, GET_COUPON_DATA_SUCCESS, GET_COUPON_DATA_ERROR, COUPON_END_LOADING } from \"../actions/actionCoupon\";\r\nimport { GET_TOURPRODUCT_DATA_SUCCESS } from \"../actions/actionTourProduct\";\r\nimport { SHOPCART_APPLYCOUPON_TO_EVENTS, SHOPCART_APPLYCOUPON_TO_GATICKETS, SHOPCART_APPLYCOUPON_TO_MEMBERSHIP_PACKAGE } from \"../actions/actionShopCart\";\r\nimport { START_POST_UNIQUECOUPON_HOLDS_SUCCESS, START_POST_UNIQUECOUPON_HOLDS_ERROR } from \"../actions/actionUniqueCouponHolds\";\r\nimport { getCouponProducts } from 'api';\r\nimport { apiTourProduct } from 'api';\r\nimport Moment from 'moment';\r\nimport { genfunction } from 'helpers';\r\nimport { uniqueCouponPost } from 'api';\r\nimport { CouponManager } from 'helpers';\r\nimport { RestaurantMenu } from '@material-ui/icons';\r\n\r\nconst { CouponExpiryMsg, MaxTimesCouponUsed, OneCouponAllowedForMembership, NewMembershipNotAllowed, RenewMembershipNotAllowed } = window['runConfig'];\r\n\r\nasync function fetchAsync(func, code) {\r\n\r\n const response = await func(code);\r\n if (response.ok && response.statusText !== 'No Content') {\r\n return await response.json();\r\n }\r\n if (response.status == 400) {\r\n let error = await response.json();\r\n throw new Error(\"Unable to apply Coupon, \" + error.Errors[0].ErrorMessage.replace('Error: ', ''));\r\n }\r\n else if (response.status == 202 || response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n else if (response.statusText === 'Unauthorized') {\r\n throw new Error(\"Authorization has been denied for this request.\");\r\n }\r\n else {\r\n throw new Error(\"Unable to apply Coupon, response : \" + response.statusText + \" - \" + response.status)\r\n }\r\n}\r\n\r\nfunction* fetchCouponData(action) {\r\n try {\r\n const couponData = null;\r\n let bookingCoupons = [];\r\n\r\n let events = yield select(state => state.reducerShopCart.events);\r\n let membershipPackages = yield select(state => state.reducerShopCart.MembershipPackages);\r\n let gaTickets = yield select(state => state.reducerShopCart.GATickets);\r\n\r\n let couponv3Data = yield fetchAsync(getCouponProducts, action.coupnCode);\r\n if (couponData == undefined && couponv3Data == undefined\r\n && couponData.length == 0 && couponv3Data.length == 0) {\r\n throw new Error(\"Coupon Code not found, please try again with an valid Coupon Code.\");\r\n }\r\n else if (couponv3Data && couponv3Data.length > 0 && couponv3Data[0].GATickets) {\r\n let isCouponValid = false;\r\n\r\n gaTickets.map(ticket => {\r\n let couponproduct = couponv3Data[0].GATickets.find(x => x.ProductID === ticket.ProductID);\r\n if (couponproduct)\r\n isCouponValid = true\r\n\r\n })\r\n if (isCouponValid) {\r\n yield put({ type: GET_COUPON_DATA_SUCCESS, payload: couponv3Data });\r\n yield put({ type: SHOPCART_APPLYCOUPON_TO_GATICKETS, payload: { GATickets: couponv3Data[0].GATickets, CouponCode: action.coupnCode } });\r\n }\r\n else\r\n yield put({ type: GET_COUPON_DATA_ERROR, error: \"Coupon Code not found against \" + ( gaTickets.length == 1 ? \"this ticket.\" : \"these tickets.\") });\r\n }\r\n else if (couponv3Data && couponv3Data.length > 0 && couponv3Data[0].MembershipPackages && membershipPackages && membershipPackages.length > 0) {\r\n \r\n const membershipPackages = yield select(state => state.reducerShopCart.MembershipPackages);\r\n const membershipIsRenew = yield select(state => state.reducerShopCart.membershipIsRenew);\r\n\r\n let membershippackID = membershipPackages && membershipPackages.length > 0 ? membershipPackages[0].MembershipPackageID : 0;\r\n let apiMembershipPackage = genfunction.GetMembershipPackageFromApi(couponv3Data, membershippackID);\r\n\r\n if (apiMembershipPackage === null || apiMembershipPackage.MembershipPackageID !== membershippackID) {\r\n yield put({ type: GET_COUPON_DATA_ERROR, error: \"Coupon Code not found against this membership package, please try again with an valid Coupon Code.\" });\r\n }\r\n else {\r\n if (apiMembershipPackage.AllowDiscountOnJoin == false && membershipIsRenew == false) {\r\n yield put({ type: GET_COUPON_DATA_ERROR, error: NewMembershipNotAllowed });\r\n }\r\n else if (apiMembershipPackage.AllowDiscountOnRenewal == false && membershipIsRenew) {\r\n yield put({ type: GET_COUPON_DATA_ERROR, error: RenewMembershipNotAllowed });\r\n }\r\n else {\r\n if (membershipPackages && membershipPackages[0].MembershipProducts && membershipPackages[0].MembershipProducts.filter(x => x.CouponCodeApplied).length == 0) {\r\n yield put({ type: GET_COUPON_DATA_SUCCESS, payload: couponv3Data });\r\n yield put({ type: SHOPCART_APPLYCOUPON_TO_MEMBERSHIP_PACKAGE, payload: { MembershipPackages: apiMembershipPackage, CouponCode: action.coupnCode } });\r\n }\r\n else {\r\n yield put({ type: GET_COUPON_DATA_ERROR, error: OneCouponAllowedForMembership });\r\n }\r\n }\r\n }\r\n }\r\n else if (couponv3Data && couponv3Data.length > 0 && couponv3Data[0].TourProducts && events && events.length > 0) {\r\n var couponFrom = genfunction.ReturnDateOnly(couponv3Data[0].UseCouponFrom);\r\n var couponTill = genfunction.ReturnDateOnly(couponv3Data[0].UseCouponTill);\r\n var CurrentDateTimeAtLocation = genfunction.ReturnDateOnly(couponv3Data[0].CurrentDateTimeAtLocation);\r\n\r\n if (CurrentDateTimeAtLocation >= couponFrom && CurrentDateTimeAtLocation <= couponTill) {\r\n\r\n let applyDisProdID = couponv3Data[0].TourProducts && couponv3Data[0].TourProducts.length > 0 ? couponv3Data[0].TourProducts[0].ApplyDiscountToTourProductID : 0;\r\n\r\n const data = yield fetchAsync(apiTourProduct, applyDisProdID);\r\n yield put({ type: GET_TOURPRODUCT_DATA_SUCCESS, payload: data });\r\n\r\n let couponHoldRef = '';\r\n if (couponv3Data[0].RequireUniqueCouponCode) {\r\n\r\n if (couponv3Data[0].MaxProductsPerPurchase < 1) {\r\n yield put({ type: GET_COUPON_DATA_ERROR, error: \"Please check your unique coupon configuration, Max User Per Day must be greater than 0.\" });\r\n return;\r\n }\r\n\r\n if (couponv3Data[0].TimesUsed >= couponv3Data[0].MaxTransactionsPerCoupon) {\r\n yield put({ type: START_POST_UNIQUECOUPON_HOLDS_ERROR, error: MaxTimesCouponUsed });\r\n return;\r\n }\r\n\r\n //Generate UniqueCouponHold Request\r\n let uniqueCouponObj = CouponManager.UniqueCouponPostRequest(couponv3Data[0], events, bookingCoupons);\r\n\r\n if (uniqueCouponObj.Error.length > 0) {\r\n yield put({ type: START_POST_UNIQUECOUPON_HOLDS_ERROR, error: MaxTimesCouponUsed });\r\n return;\r\n }\r\n\r\n let uniqueCouponHoldsRes = yield fetchAsync(uniqueCouponPost, uniqueCouponObj.UniqueCoupon[0]);\r\n\r\n if (uniqueCouponHoldsRes == \"nocontent\") throw \"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to apply unique coupon.\\\"}]}\"\r\n else {\r\n couponHoldRef = uniqueCouponHoldsRes[0].CouponHoldRef;\r\n yield put({ type: START_POST_UNIQUECOUPON_HOLDS_SUCCESS, payload: uniqueCouponHoldsRes });\r\n }\r\n }\r\n\r\n yield put({ type: SHOPCART_APPLYCOUPON_TO_EVENTS, tourCoupon: couponv3Data, tourProduct: data, couponCode: action.coupnCode, CouponHoldRef: couponHoldRef });\r\n yield put({ type: GET_COUPON_DATA_SUCCESS, payload: couponv3Data });\r\n }\r\n else {\r\n yield put({ type: GET_COUPON_DATA_ERROR, error: CouponExpiryMsg });\r\n }\r\n }\r\n else {\r\n yield put({ type: GET_COUPON_DATA_ERROR, error: \"Coupon Code not found, please try again with an valid Coupon Code.\" });\r\n }\r\n } catch (e) {\r\n yield put({ type: GET_COUPON_DATA_ERROR, error: e.message });\r\n }\r\n}\r\n\r\n\r\nexport const sagaCoupon = [\r\n takeEvery(COUPON_LOADING, fetchCouponData)\r\n];\r\n","import { put, takeEvery, select } from 'redux-saga/effects'\r\nimport {\r\n START_POST_UNIQUECOUPON_HOLDS_ERROR,\r\n START_POST_UNIQUECOUPON_HOLDS_DELETE\r\n} from \"../actions/actionUniqueCouponHolds\";\r\nimport { deleteUniqueCouponHolds } from 'api'\r\n\r\nasync function fetchAsync(func, payload) {\r\n const response = await func(payload);\r\n if (response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 202 || response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n else if (response.status == 400) {\r\n throw await response.json();\r\n }\r\n else {\r\n throw new Error(\"Unable to perform Coupon Hold, response: \" + response.statusText + \" - \" + response.status)\r\n }\r\n}\r\n\r\nfunction* DeleteUniqueCouponHolds(action) {\r\n try {\r\n let delCoupinRes = yield fetchAsync(deleteUniqueCouponHolds, '?CouponHoldRef=' + action.UniqueCOuponHoldRef);\r\n\r\n } catch (e) {\r\n yield put({ type: START_POST_UNIQUECOUPON_HOLDS_ERROR, error: e });\r\n }\r\n}\r\n\r\nexport const sagaUniqueCouponHolds = [\r\n takeEvery(START_POST_UNIQUECOUPON_HOLDS_DELETE, DeleteUniqueCouponHolds)\r\n];","import { put, takeEvery } from 'redux-saga/effects'\r\nimport { GET_MEMBERVALIDATION_INFO_LOADING, MEMBERVALIDATION_DATA_SUCCESS, MEMBERVALIDATION_DATA_ERROR } from \"../actions/actionMemberValidation\";\r\nimport { apiMemberValidation } from 'api';\r\n\r\nasync function fetchAsync(func, param) {\r\n const response = await func(param);\r\n\r\n if (response.ok) {\r\n return await response.json();\r\n }\r\n if (response.status == 400) {\r\n let error = await response.json();\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"\" + error.Errors[0].ErrorMessage.replace('Error: ', '') + \"\\\"}]}\")\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to apply membership, response status: \" + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* fetchMemberValidationData(action) {\r\n try {\r\n const data = yield fetchAsync(apiMemberValidation, action.payload)\r\n yield put({ type: MEMBERVALIDATION_DATA_SUCCESS, payload: data });\r\n } catch (e) {\r\n yield put({ type: MEMBERVALIDATION_DATA_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nexport const sagaMemberValidation = [\r\n takeEvery(GET_MEMBERVALIDATION_INFO_LOADING, fetchMemberValidationData)\r\n];\r\n","import { GET_DONATION_INFO_LOADING, DONATION_DATA_SUCCESS, DONATION_DATA_ERROR } from \"../actions/actionDonation\";\r\nimport { apiDonation } from 'api';\r\nimport { put, takeEvery } from 'redux-saga/effects';\r\n\r\nasync function fetchAsync(func, param) {\r\n const response = await func(param);\r\n\r\n if (response.ok && response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n if (response.status == 400) {\r\n let error = await response.json();\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"\" + error.Errors[0].ErrorMessage.replace('Error: ', '') + \" response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to get donations, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* fetchDontionsData(action) {\r\n try {\r\n const data = yield fetchAsync(apiDonation, action.payload)\r\n yield put({ type: DONATION_DATA_SUCCESS, payload: data });\r\n } catch (e) {\r\n yield put({ type: DONATION_DATA_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nexport const sagaDonation = [\r\n takeEvery(GET_DONATION_INFO_LOADING, fetchDontionsData)\r\n];\r\n","import { GET_TRANSACTIONFEE_INFO_LOADING, TRANSACTIONFEE_DATA_SUCCESS, TRANSACTIONFEE_DATA_ERROR } from \"../actions/actionTransactionFee\";\r\nimport { apiTransactionFee } from 'api';\r\nimport { put, takeEvery } from 'redux-saga/effects';\r\n\r\nasync function fetchAsync(func, param) {\r\n const response = await func(param);\r\n\r\n if (response.ok && response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n if (response.status == 400) {\r\n let error = await response.json();\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"\" + error.Errors[0].ErrorMessage.replace('Error: ', '') + \" response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to get transaction fee, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* fetchTransactionFeeData(action) {\r\n try {\r\n const data = yield fetchAsync(apiTransactionFee, action.payload)\r\n yield put({ type: TRANSACTIONFEE_DATA_SUCCESS, payload: data });\r\n } catch (e) {\r\n yield put({ type: TRANSACTIONFEE_DATA_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nexport const sagaTransactionFee = [\r\n takeEvery(GET_TRANSACTIONFEE_INFO_LOADING, fetchTransactionFeeData)\r\n];\r\n","import {\r\n GET_MEMBERSHIPPACKAGES_INFO_LOADING, MEMBERSHIPPACKAGES_DATA_SUCCESS,\r\n MEMBERSHIPPACKAGES_DATA_ERROR\r\n} from \"../actions/actionMembershipPackages\";\r\nimport { apiMembershipPackages } from 'api';\r\nimport { put, takeEvery } from 'redux-saga/effects';\r\n\r\nasync function fetchAsync(func, displayAreaNo) {\r\n const response = await func(displayAreaNo);\r\n\r\n if (response.ok && response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 204) {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"No membership packages record found, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n if (response.status == 400) {\r\n let error = await response.json();\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"\" + error.Errors[0].ErrorMessage.replace('Error: ', '') + \" response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n if (response.status == 401) {\r\n let error = await response.json();\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"\" + error.Message + \" response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to get membership packages, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* fetchMembershipPackagesData(action) {\r\n try {\r\n const data = yield fetchAsync(apiMembershipPackages, action.payload.DisplayAreaNo)\r\n yield put({ type: MEMBERSHIPPACKAGES_DATA_SUCCESS, payload: data });\r\n } catch (e) {\r\n yield put({ type: MEMBERSHIPPACKAGES_DATA_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nexport const sagaMembershipPackages = [\r\n takeEvery(GET_MEMBERSHIPPACKAGES_INFO_LOADING, fetchMembershipPackagesData)\r\n];\r\n","import {\r\n GET_GATICKET_LOADING, GATICKET_DATA_SUCCESS, GATICKET_DATA_ERROR,\r\n GATICKETDISPLAYAREA_DATA_SUCCESS\r\n} from \"../actions/actionGATicket\";\r\nimport { apiDisplayAreas } from 'api';\r\nimport { apiGATicket } from 'api';\r\nimport { put, takeEvery } from 'redux-saga/effects';\r\n\r\nasync function fetchAsync(func, param) {\r\n const response = await func(param);\r\n\r\n if (response.ok && response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n else if (response.status == 400) {\r\n throw await response.json();\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to get GATickets, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* fetchGaTicketsData(action) {\r\n try {\r\n const displayAreasdata = yield fetchAsync(apiDisplayAreas, \"products\")\r\n let params = \"DisplayArea=\" + action.payload.DisplayArea;\r\n if (action.payload.GACouponCode)\r\n params += \"&GACouponCode=\" + action.payload.GACouponCode;\r\n const gaTickets = yield fetchAsync(apiGATicket, params)\r\n if (gaTickets == \"nocontent\") throw \"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to get GATickets\\\"}]}\"\r\n else {\r\n yield put({ type: GATICKETDISPLAYAREA_DATA_SUCCESS, payload: displayAreasdata });\r\n yield put({ type: GATICKET_DATA_SUCCESS, payload: gaTickets });\r\n }\r\n } catch (e) {\r\n yield put({ type: GATICKET_DATA_ERROR, error: e });\r\n }\r\n}\r\n\r\nexport const sagaGaTicket = [\r\n takeEvery(GET_GATICKET_LOADING, fetchGaTicketsData)\r\n];\r\n","import { GET_LOSTMEMBER_INFO_LOADING, LOSTMEMBER_DATA_SUCCESS, LOSTMEMBER_DATA_ERROR } from \"../actions/actionLostMember\";\r\nimport { put, takeEvery } from 'redux-saga/effects';\r\nimport { apiLostMember } from 'api';\r\n\r\nasync function fetchAsync(func, param) {\r\n const response = await func(param);\r\n\r\n if (response.ok && response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n if (response.status == 400) {\r\n let error = await response.json();\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"\" + error.Errors[0].ErrorMessage.replace('Error: ', '') + \" response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to Send Email, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* fetchLostMemberData(action) {\r\n try {\r\n const data = yield fetchAsync(apiLostMember, action.payload)\r\n yield put({ type: LOSTMEMBER_DATA_SUCCESS, payload: data });\r\n } catch (e) {\r\n yield put({ type: LOSTMEMBER_DATA_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nexport const sagaLostMember = [\r\n takeEvery(GET_LOSTMEMBER_INFO_LOADING, fetchLostMemberData)\r\n];\r\n","import { MEMBER_MEMBERSHIP_LOADING, MEMBER_MEMBERSHIP_SUCCESS, MEMBER_MEMBERSHIP_ERROR } from \"../actions/actionMemberMemberships\";\r\nimport { apiMemberMemberships } from 'api';\r\nimport { put, takeEvery } from 'redux-saga/effects';\r\n\r\nasync function fetchAsync(func, param) {\r\n const response = await func(param);\r\n\r\n if (response.ok && response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n if (response.status == 400) {\r\n let error = await response.json();\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"\" + error.Errors[0].ErrorMessage.replace('Error: ', '') + \" response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to get member memberships, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* fetchMemberMemberships(action) {\r\n try {\r\n const data = yield fetchAsync(apiMemberMemberships, action.customerId)\r\n yield put({ type: MEMBER_MEMBERSHIP_SUCCESS, payload: data });\r\n } catch (e) {\r\n yield put({ type: MEMBER_MEMBERSHIP_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nexport const sagaMemberMemberships = [\r\n takeEvery(MEMBER_MEMBERSHIP_LOADING, fetchMemberMemberships)\r\n];\r\n","import { CUSTOMER_LOADING, CUSTOMER_SUCCESS, CUSTOMER_ERROR } from \"../actions/actionCustomer\";\r\nimport { apiCustomer } from 'api';\r\nimport { put, takeEvery } from 'redux-saga/effects';\r\n\r\nasync function fetchAsync(func, param) {\r\n const response = await func(param);\r\n\r\n if (response.ok && response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n if (response.status == 400) {\r\n let error = await response.json();\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"\" + error.Errors[0].ErrorMessage.replace('Error: ', '') + \" response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to get customer, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* fetchCustomer(action) {\r\n try {\r\n const data = yield fetchAsync(apiCustomer, action)\r\n yield put({ type: CUSTOMER_SUCCESS, payload: data });\r\n } catch (e) {\r\n yield put({ type: CUSTOMER_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nexport const sagaCustomer = [\r\n takeEvery(CUSTOMER_LOADING, fetchCustomer)\r\n];\r\n","import { GET_BOOKING_INFO_LOADING, BOOKING_DATA_SUCCESS, BOOKING_DATA_ERROR } from \"../actions/actionBooking\";\r\nimport { apiBooking } from 'api';\r\nimport { put, takeEvery } from 'redux-saga/effects';\r\n\r\nasync function fetchAsync(func, param) {\r\n const response = await func(param);\r\n\r\n if (response.ok && response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n if (response.status == 400) {\r\n let error = await response.json();\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"\" + error.Errors[0].ErrorMessage.replace('Error: ', '') + \" response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to get booking details, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* fetachBooking(action) {\r\n try {\r\n const data = yield fetchAsync(apiBooking, action.payload);\r\n yield put({ type: BOOKING_DATA_SUCCESS, payload: data });\r\n } catch (e) {\r\n yield put({ type: BOOKING_DATA_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nexport const bookingSaga = [\r\n takeEvery(GET_BOOKING_INFO_LOADING, fetachBooking)\r\n];\r\n","import { put, takeEvery } from 'redux-saga/effects'\r\nimport { GITCARD_DISPLAYAREAS_LOADING, GET_GITCARD_DISPLAYAREAS_DATA_SUCCESS, GET_GITCARD_DISPLAYAREAS_DATA_ERROR } from \"../actions/actionGiftCardDisplayAreas\";\r\nimport { apiDisplayAreas } from 'api';\r\n\r\nasync function fetchAsync(func, param) {\r\n const response = await func(param);\r\n\r\n if (response.ok) {\r\n return await response.json();\r\n }\r\n else if (response.statusText === 'Unauthorized') {\r\n throw new Error(\"Authorization has been denied for this request.\");\r\n }\r\n else {\r\n throw new Error(\"Unable to Get Gift Card Display Areas, response: \" + response.statusText + \" - \" + response.status)\r\n }\r\n}\r\n\r\nfunction* fetchGiftCardDisplayAreasData(action) {\r\n try {\r\n const data = yield fetchAsync(apiDisplayAreas, \"giftcard\")\r\n yield put({ type: GET_GITCARD_DISPLAYAREAS_DATA_SUCCESS, payload: data });\r\n } catch (e) {\r\n yield put({ type: GET_GITCARD_DISPLAYAREAS_DATA_ERROR, error: e.message });\r\n }\r\n}\r\n\r\nexport const sagaGiftcarddisplayAreas = [\r\n takeEvery(GITCARD_DISPLAYAREAS_LOADING, fetchGiftCardDisplayAreasData)\r\n];\r\n","import { put, takeEvery } from 'redux-saga/effects'\r\nimport { GITCARD_LOADING, GET_GITCARD_DATA_SUCCESS, GET_GITCARD_DATA_ERROR } from \"../actions/actionGiftCards\";\r\nimport { apiGiftCards } from 'api';\r\n\r\nasync function fetchAsync(func, param) {\r\n const response = await func(param);\r\n\r\n if (response.ok) {\r\n return await response.json();\r\n }\r\n else if (response.statusText === 'Unauthorized') {\r\n throw new Error(\"Authorization has been denied for this request.\");\r\n }\r\n else {\r\n throw new Error(\"Unable to Get Gift Cards, response: \" + response.statusText + \" - \" + response.status)\r\n }\r\n}\r\n\r\nfunction* fetchGiftCardsData(action) {\r\n try {\r\n const data = yield fetchAsync(apiGiftCards, action.payload.displayAreaNo)\r\n yield put({ type: GET_GITCARD_DATA_SUCCESS, payload: data });\r\n } catch (e) {\r\n yield put({ type: GET_GITCARD_DATA_ERROR, error: e.message });\r\n }\r\n}\r\n\r\nexport const sagaGiftcards = [\r\n takeEvery(GITCARD_LOADING, fetchGiftCardsData)\r\n];\r\n","import { COSTRATE_LOADING, GET_COSTRATE_DATA_SUCCESS, GET_COSTRATE_DATA_ERROR } from \"../actions/actionCostRate\";\r\nimport { put, takeEvery } from 'redux-saga/effects';\r\nimport { apiCostRate } from 'api';\r\n\r\nasync function fetchAsync(func, param) {\r\n const response = await func(param);\r\n\r\n if (response.ok && response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n if (response.status == 400) {\r\n let error = await response.json();\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"\" + error.Errors[0].ErrorMessage.replace('Error: ', '') + \" response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to get cost rate, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* fetchCostRate(action) {\r\n try {\r\n const data = yield fetchAsync(apiCostRate, action.payload)\r\n yield put({ type: GET_COSTRATE_DATA_SUCCESS, payload: data });\r\n } catch (e) {\r\n yield put({ type: GET_COSTRATE_DATA_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nexport const sagaCostRate = [\r\n takeEvery(COSTRATE_LOADING, fetchCostRate)\r\n];\r\n","import { IDMEUSERDATA_LOADING, GET_IDMEUSERDATA_DATA_SUCCESS, GET_IDMEUSERDATA_DATA_ERROR } from \"../actions/actionIDMeUserData\";\r\nimport { put, takeEvery } from 'redux-saga/effects';\r\nimport { apiIDMeUserData } from 'api';\r\n\r\nasync function fetchAsync(func, param) {\r\n const response = await func(param);\r\n\r\n if (response.ok && response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n if (response.status == 400) {\r\n let error = await response.json();\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"\" + error.Errors[0].ErrorMessage.replace('Error: ', '') + \" response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to get ID.Me User Data, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* fetchIDMEUserData(action) {\r\n try {\r\n const data = yield fetchAsync(apiIDMeUserData, action.payload)\r\n yield put({ type: GET_IDMEUSERDATA_DATA_SUCCESS, payload: data });\r\n } catch (e) {\r\n yield put({ type: GET_IDMEUSERDATA_DATA_ERROR, error: e }); //.Errors[0].ErrorMessage\r\n }\r\n}\r\n\r\nexport const sagaIdMeUserData = [\r\n takeEvery(IDMEUSERDATA_LOADING, fetchIDMEUserData)\r\n];\r\n","import { put, takeEvery } from 'redux-saga/effects'\r\nimport { USERDEFINEDFIELDS_LOADING, USERDEFINEDFIELDS_DATA_SUCCESS, USERDEFINEDFIELDS_DATA_ERROR } from \"../actions/actionBookingUserDefinedFields\";\r\nimport { apiUserDefinedFields } from 'api';\r\n\r\nasync function fetchAsync(func, payload) {\r\n const response = await func(payload);\r\n if (response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 202 || response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n if (response.status == 400) {\r\n let error = await response.json();\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"\" + error.Errors[0].ErrorMessage.replace('Error: ', '') + \" response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to get booking user defined fields, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* GetUserDefinedFields(action) {\r\n try {\r\n let udfsresponse = yield fetchAsync(apiUserDefinedFields, action);\r\n yield put({ type: USERDEFINEDFIELDS_DATA_SUCCESS, payload: udfsresponse });\r\n } catch (e) {\r\n yield put({ type: USERDEFINEDFIELDS_DATA_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nexport const sagaBookingUserDefinedFields = [\r\n takeEvery(USERDEFINEDFIELDS_LOADING, GetUserDefinedFields),\r\n];\r\n","import { put, takeEvery } from 'redux-saga/effects'\r\nimport { ORDERLOCATIONS_LOADING, ORDERLOCATIONS_SUCCESS, ORDERLOCATIONS_ERROR } from \"../actions/actionOrderLocations\";\r\nimport { getOrderLocationsByDisplayArea } from 'api'\r\n\r\nasync function fetchAsync(func, param) {\r\n const response = await func(param);\r\n\r\n if (response.ok && response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n else if (response.status == 400) {\r\n throw await response.json();\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to get Order Locations, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* fetchOrderLocationsByDisplayArea(action) {\r\n try {\r\n const data = yield fetchAsync(getOrderLocationsByDisplayArea, action.payload)\r\n if (data == \"nocontent\") throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"No Order Locations were found.\\\"}]}\")\r\n else {\r\n yield put({ type: ORDERLOCATIONS_SUCCESS, payload: data });\r\n }\r\n } catch (e) {\r\n yield put({ type: ORDERLOCATIONS_ERROR, error: e });\r\n }\r\n}\r\n\r\nexport const sagaOrderLocations = [\r\n takeEvery(ORDERLOCATIONS_LOADING, fetchOrderLocationsByDisplayArea)\r\n];\r\n","import { put, takeEvery } from 'redux-saga/effects'\r\nimport { ORDER_MENU_LOADING, ORDER_MENU_SUCCESS, ORDER_MENU_ERROR } from \"../actions/actionOrdersMenu\";\r\nimport { apiGetProductsByProductTypeAndDisplayArea } from 'api'\r\n\r\nasync function fetchAsync(func, param1, param2) {\r\n const response = await func(param1, param2);\r\n\r\n if (response.ok && response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n else if (response.status == 400) {\r\n throw await response.json();\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to get Order Menu, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* fetchOrderMenuByDisplayArea(action) {\r\n try {\r\n const data = yield fetchAsync(apiGetProductsByProductTypeAndDisplayArea, \"foodmenusimple\", action.payload);\r\n if (data == \"nocontent\") throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"No Order Menu were found.\\\"}]}\")\r\n else {\r\n yield put({ type: ORDER_MENU_SUCCESS, payload: data });\r\n }\r\n } catch (e) {\r\n yield put({ type: ORDER_MENU_ERROR, error: e });\r\n }\r\n}\r\n\r\nexport const sagaOrderMenu = [\r\n takeEvery(ORDER_MENU_LOADING, fetchOrderMenuByDisplayArea)\r\n];\r\n","import { put, takeEvery } from 'redux-saga/effects'\r\nimport { MEMBERSHIP_USERDEFINEDFIELDS_LOADING, MEMBERSHIP_USERDEFINEDFIELDS_DATA_SUCCESS, MEMBERSHIP_USERDEFINEDFIELDS_DATA_ERROR } from \"../actions/actionMembershipUserDefinedFeilds\";\r\nimport { apiUserDefinedFields } from 'api';\r\n\r\nasync function fetchAsync(func, payload) {\r\n const response = await func(payload);\r\n if (response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 202 || response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n if (response.status == 400) {\r\n let error = await response.json();\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"\" + error.Errors[0].ErrorMessage.replace('Error: ', '') + \" response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to get memberships user defined fields, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* GetMembershipsUserDefinedFields(action) {\r\n try {\r\n let udfsresponse = yield fetchAsync(apiUserDefinedFields, action);\r\n yield put({ type: MEMBERSHIP_USERDEFINEDFIELDS_DATA_SUCCESS, payload: udfsresponse });\r\n } catch (e) {\r\n yield put({ type: MEMBERSHIP_USERDEFINEDFIELDS_DATA_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nexport const sagaMembershipUserDefinedFields = [\r\n takeEvery(MEMBERSHIP_USERDEFINEDFIELDS_LOADING, GetMembershipsUserDefinedFields),\r\n];\r\n","import { put, takeEvery } from 'redux-saga/effects'\r\nimport { CUSTOMER_UDFS_LOADING, CUSTOMER_UDFS_SUCCESS, CUSTOMER_UDFS_ERROR } from \"../actions/actionCustomerUDFs\";\r\nimport { GetCustomersUdfs } from 'api';\r\n\r\nasync function fetchAsync(func, payload) {\r\n const response = await func(payload);\r\n if (response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 202 || response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n if (response.status == 400) {\r\n let error = await response.json();\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"\" + error.Errors[0].ErrorMessage.replace('Error: ', '') + \" response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to get customer user defined fields, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* GetCustomerUserDefinedFields(action) {\r\n try {\r\n let udfsresponse = yield fetchAsync(GetCustomersUdfs, action);\r\n yield put({ type: CUSTOMER_UDFS_SUCCESS, payload: udfsresponse });\r\n } catch (e) {\r\n yield put({ type: CUSTOMER_UDFS_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nexport const sagaCustomerUDFs = [\r\n takeEvery(CUSTOMER_UDFS_LOADING, GetCustomerUserDefinedFields),\r\n];\r\n","import { COUNTRYANDSTATE_LOADING, GET_COUNTRYANDSTATE_DATA_SUCCESS, GET_COUNTRYANDSTATE_DATA_ERROR } from \"../actions/actionCountryAndState\";\r\nimport { put, takeEvery } from 'redux-saga/effects';\r\nimport { apiCountryAndState } from 'api';\r\n\r\nasync function fetchAsync(func, param) {\r\n const response = await func(param);\r\n\r\n if (response.ok && response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n if (response.status == 400) {\r\n let error = await response.json();\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"\" + error.Errors[0].ErrorMessage.replace('Error: ', '') + \" response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to get countries and states, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* fetchCountryAndState(action) {\r\n try {\r\n \r\n const data = yield fetchAsync(apiCountryAndState)\r\n yield put({ type: GET_COUNTRYANDSTATE_DATA_SUCCESS, payload: data });\r\n \r\n } catch (e) {\r\n yield put({ type: GET_COUNTRYANDSTATE_DATA_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nexport const sagaCountryAndState = [\r\n takeEvery(COUNTRYANDSTATE_LOADING, fetchCountryAndState)\r\n];\r\n","import {\r\n ORGANIZATIONSECTION_LOADING, GET_ORGANIZATIONSECTION_DATA_SUCCESS,\r\n GET_ORGANIZATIONSECTION_DATA_ERROR\r\n} from \"../actions/actionOrganizationSection\";\r\nimport { put, takeEvery } from 'redux-saga/effects';\r\nimport { apiOrganizationSection } from 'api';\r\n\r\nasync function fetchAsync(func, param) {\r\n const response = await func(param);\r\n\r\n if (response.ok && response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n if (response.status == 400) {\r\n let error = await response.json();\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"\" + error.Errors[0].ErrorMessage.replace('Error: ', '') + \" response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to get organization list, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* fetchOrganizationList(action) {\r\n try {\r\n const data = yield fetchAsync(apiOrganizationSection, action.payload)\r\n yield put({\r\n type: GET_ORGANIZATIONSECTION_DATA_SUCCESS, payload: data\r\n });\r\n } catch (e) {\r\n yield put({ type: GET_ORGANIZATIONSECTION_DATA_ERROR, error: e.Errors[0].ErrorMessage });\r\n }\r\n}\r\n\r\nexport const sagaOrganizationSection = [\r\n takeEvery(ORGANIZATIONSECTION_LOADING, fetchOrganizationList)\r\n];\r\n","import { put, takeEvery } from 'redux-saga/effects'\r\nimport { PRODUCTS_BY_TYPE_LOADING, PRODUCTS_DATA_SUCCESS, PRODUCTS_DATA_ERROR } from \"../actions/actionProduct\";\r\nimport { apiGetProductsByProductTypeAndDisplayArea } from 'api';\r\n\r\nasync function fetchAsync(func, param1, param2) {\r\n const response = await func(param1, param2);\r\n\r\n if (response.ok && response.status == 200) {\r\n return await response.json();\r\n }\r\n else if (response.status == 204) {\r\n return \"nocontent\";\r\n }\r\n else if (response.status == 400) {\r\n throw await response.json();\r\n }\r\n else {\r\n throw JSON.parse(\"{\\\"Errors\\\":[{\\\"ErrorMessage\\\":\\\"Unable to get products, response status: \" + response.status + \"\\\"}]}\")\r\n }\r\n}\r\n\r\nfunction* fetchProductDataByType(action) {\r\n try {\r\n const data = yield fetchAsync(apiGetProductsByProductTypeAndDisplayArea, action.productType, action.displayAreaNo)\r\n yield put({ type: PRODUCTS_DATA_SUCCESS, payload: data });\r\n } catch (e) {\r\n yield put({ type: PRODUCTS_DATA_ERROR, error: e.message });\r\n }\r\n}\r\n\r\nexport const sagaProduct = [\r\n takeEvery(PRODUCTS_BY_TYPE_LOADING, fetchProductDataByType)\r\n];\r\n","import { all } from 'redux-saga/effects'\nimport { sagaAuthenticationToken } from './sagaAuthenticationToken';\nimport { sagaBookingTypes } from './sagaBookingTypes';\nimport { sagaExtraItems } from './sagaExtraItems';\nimport { sagaMember } from './sagaMember'\nimport { sagaPaymentTransaction } from './sagaPaymentTransaction'\nimport { sagaIP } from './sagaIP';\nimport { sagaDisplayAreas } from './sagaDisplayAreas';\nimport { sagaShopCart } from './sagaShopCart';\nimport { sagaGiftCardHold } from './sagaGiftCardHold';\nimport { sagaCoupon } from './sagaCoupon';\nimport { sagaUniqueCouponHolds } from './sagaUniqueCouponHolds';\nimport { sagaMemberValidation } from './sagaMemberValidation';\nimport { sagaDonation } from './sagaDonation';\nimport { sagaTransactionFee } from './sagaTransactionFee';\nimport { sagaMembershipPackages } from './sagaMembershipPackages';\nimport { sagaGaTicket } from './sagaGaTicket';\nimport { sagaLostMember } from './sagaLostMember';\nimport { sagaMemberMemberships } from './sagaMemberMemberships';\nimport { sagaCustomer } from './sagaCustomer';\nimport { bookingSaga } from './sagaBooking';\nimport { sagaGiftcarddisplayAreas } from './sagaGiftcarddisplayAreas';\nimport { sagaGiftcards } from './sagaGiftcards';\nimport { sagaCostRate } from './sagaCostRate';\nimport { sagaIdMeUserData } from './sagaIdMeUserData';\nimport { sagaBookingUserDefinedFields } from './sagaBookingUserDefinedFields';\nimport { sagaOrderLocations } from './sagaOrderLocations';\nimport { sagaOrderMenu } from './sagaOrderMenu';\nimport { sagaMembershipUserDefinedFields } from './sagaMembershipUserDefinedFields';\nimport { sagaCustomerUDFs } from './sagaCustomerUDFs';\nimport { sagaCountryAndState } from './sagaCountryAndState';\nimport { sagaOrganizationSection } from './sagaOrganizationSection';\nimport { sagaProduct } from './sagaProduct';\n\nexport function* rootSaga() {\n yield all([\n ...sagaAuthenticationToken,\n ...sagaBookingTypes,\n ...sagaMember,\n ...sagaPaymentTransaction,\n ...sagaExtraItems,\n ...sagaIP,\n ...sagaDisplayAreas,\n ...sagaShopCart,\n ...sagaGiftCardHold,\n ...sagaCoupon,\n ...sagaUniqueCouponHolds,\n ...sagaMemberValidation,\n ...sagaDonation,\n ...sagaTransactionFee,\n ...sagaMembershipPackages,\n ...sagaGaTicket,\n ...sagaLostMember,\n ...sagaMemberMemberships,\n ...sagaCustomer,\n ...bookingSaga,\n ...sagaGiftcarddisplayAreas,\n ...sagaGiftcards,\n ...sagaCostRate,\n ...sagaIdMeUserData,\n ...sagaBookingUserDefinedFields,\n ...sagaOrderLocations,\n ...sagaOrderMenu,\n ...sagaMembershipUserDefinedFields,\n ...sagaCustomerUDFs,\n ...sagaCountryAndState,\n ...sagaProduct,\n ...sagaOrganizationSection\n ]);\n}\n\n//export default rootSaga;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import { colors } from '@material-ui/core';\nconst { contrastTextColor, darkColor, mainColor, lightColor, backgoundColor, backgoundColorPaper, textColor } = window['runConfig'];\n\nconst white = '#FFFFFF';\nconst black = '#000000';\n\nexport default {\n black,\n white,\n primary: {\n contrastText: contrastTextColor,\n dark: darkColor,\n main: mainColor,\n light: lightColor\n },\n secondary: {\n contrastText: white,\n dark: colors.blue[900],\n main: colors.blue['A400'],\n light: colors.blue['A400']\n },\n success: {\n contrastText: white,\n dark: colors.green[900],\n main: colors.green[600],\n light: colors.green[400]\n },\n info: {\n contrastText: white,\n dark: colors.blue[900],\n main: colors.blue[600],\n light: colors.blue[400]\n },\n warning: {\n contrastText: white,\n dark: colors.orange[900],\n main: colors.orange[600],\n light: colors.orange[400]\n },\n error: {\n contrastText: white,\n dark: colors.red[900],\n main: colors.red[600],\n light: colors.red[400]\n },\n text: {\n primary: textColor,\n secondary: textColor,\n link: colors.blue[600]\n },\n background: {\n default: backgoundColor,\n paper: backgoundColorPaper\n },\n icon: colors.blueGrey[600],\n divider: colors.grey[200]\n};\n","import palette from './palette';\n\nexport default {\n h1: {\n color: palette.text.primary,\n fontWeight: 500,\n fontSize: '35px',\n letterSpacing: '-0.24px',\n lineHeight: '40px'\n },\n h2: {\n color: palette.text.primary,\n fontWeight: 500,\n fontSize: '29px',\n letterSpacing: '-0.24px',\n lineHeight: '32px'\n },\n h3: {\n color: palette.text.primary,\n fontWeight: 500,\n fontSize: '24px',\n letterSpacing: '-0.06px',\n lineHeight: '28px'\n },\n h4: {\n color: palette.text.primary,\n fontWeight: 500,\n fontSize: '20px',\n letterSpacing: '-0.06px',\n lineHeight: '24px'\n },\n h5: {\n color: palette.text.primary,\n fontWeight: 500,\n fontSize: '16px',\n letterSpacing: '-0.05px',\n lineHeight: '20px'\n },\n h6: {\n color: palette.text.primary,\n fontWeight: 500,\n fontSize: '14px',\n letterSpacing: '-0.05px',\n lineHeight: '20px'\n },\n subtitle1: {\n color: palette.text.primary,\n fontSize: '16px',\n letterSpacing: '-0.05px',\n lineHeight: '25px'\n },\n subtitle2: {\n color: palette.text.secondary,\n fontWeight: 400,\n fontSize: '14px',\n letterSpacing: '-0.05px',\n lineHeight: '21px'\n },\n body1: {\n color: palette.text.primary,\n fontSize: '14px',\n letterSpacing: '-0.05px',\n lineHeight: '21px'\n },\n body2: {\n color: palette.text.secondary,\n fontSize: '12px',\n letterSpacing: '-0.04px',\n lineHeight: '18px'\n },\n button: {\n color: palette.text.primary,\n fontSize: '14px'\n },\n caption: {\n color: palette.text.secondary,\n fontSize: '11px',\n letterSpacing: '0.33px',\n lineHeight: '13px'\n },\n overline: {\n color: palette.text.secondary,\n fontSize: '11px',\n fontWeight: 500,\n letterSpacing: '0.33px',\n lineHeight: '13px',\n textTransform: 'uppercase'\n }\n};\n","import MuiButton from './MuiButton';\nimport MuiIconButton from './MuiIconButton';\nimport MuiPaper from './MuiPaper';\nimport MuiTableCell from './MuiTableCell';\nimport MuiTableHead from './MuiTableHead';\nimport MuiTypography from './MuiTypography';\nimport MuiCssBaseline from './MuiCssBaseline';\n\nexport default {\n MuiButton,\n MuiIconButton,\n MuiPaper,\n MuiTableCell,\n MuiTableHead,\n MuiTypography,\n MuiCssBaseline\n};\n","export default {\n contained: {\n boxShadow:\n '0 1px 1px 0 rgba(0,0,0,0.14), 0 2px 1px -1px rgba(0,0,0,0.12), 0 1px 3px 0 rgba(0,0,0,0.20)',\n backgroundColor: '#FFFFFF'\n }\n};\n","import palette from '../palette';\n\nexport default {\n root: {\n color: palette.icon,\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\n }\n }\n};\n","export default {\n elevation1: {\n boxShadow: '0 0 0 1px rgba(63,63,68,0.05), 0 1px 3px 0 rgba(63,63,68,0.15)'\n }\n};\n","import palette from '../palette';\nimport typography from '../typography';\n\nexport default {\n root: {\n ...typography.body1,\n borderBottom: `1px solid ${palette.divider}`\n }\n};\n","import { colors } from '@material-ui/core';\n\nexport default {\n root: {\n backgroundColor: colors.grey[50]\n }\n};\n","export default {\n gutterBottom: {\n marginBottom: 8\n }\n};\n","import palette from '../palette';\r\n\r\nexport default {\r\n \"@global\": {\r\n \"::-webkit-scrollbar-thumb\": {\r\n background: palette.primary.main\r\n },\r\n },\r\n};","import { createMuiTheme } from '@material-ui/core';\n\nimport palette from './palette';\nimport typography from './typography';\nimport overrides from './overrides';\n\nconst theme = createMuiTheme({\n palette,\n typography,\n overrides,\n zIndex: {\n appBar: 1200,\n drawer: 1100\n }\n});\n\nexport default theme;\n","const checked = (value, options) => {\n if (value !== true) {\n return options.message || 'must be checked';\n }\n};\n\nexport default {\n checked\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/styles';\nimport { Paper, Input } from '@material-ui/core';\nimport SearchIcon from '@material-ui/icons/Search';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n borderRadius: '4px',\n alignItems: 'center',\n padding: theme.spacing(1),\n display: 'flex',\n flexBasis: 420\n },\n icon: {\n marginRight: theme.spacing(1),\n color: theme.palette.text.secondary\n },\n input: {\n flexGrow: 1,\n fontSize: '14px',\n lineHeight: '16px',\n letterSpacing: '-0.05px'\n }\n}));\n\nconst SearchInput = props => {\n const { className, onChange, style, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n \n \n \n );\n};\n\nSearchInput.propTypes = {\n className: PropTypes.string,\n onChange: PropTypes.func,\n style: PropTypes.object\n};\n\nexport default SearchInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/styles';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'inline-block',\n borderRadius: '50%',\n flexGrow: 0,\n flexShrink: 0\n },\n sm: {\n height: theme.spacing(1),\n width: theme.spacing(1)\n },\n md: {\n height: theme.spacing(2),\n width: theme.spacing(2)\n },\n lg: {\n height: theme.spacing(3),\n width: theme.spacing(3)\n },\n neutral: {\n backgroundColor: theme.palette.neutral\n },\n primary: {\n backgroundColor: theme.palette.primary.main\n },\n info: {\n backgroundColor: theme.palette.info.main\n },\n warning: {\n backgroundColor: theme.palette.warning.main\n },\n danger: {\n backgroundColor: theme.palette.error.main\n },\n success: {\n backgroundColor: theme.palette.success.main\n }\n}));\n\nconst StatusBullet = props => {\n const { className, size, color, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n );\n};\n\nStatusBullet.propTypes = {\n className: PropTypes.string,\n color: PropTypes.oneOf([\n 'neutral',\n 'primary',\n 'info',\n 'success',\n 'warning',\n 'danger'\n ]),\n size: PropTypes.oneOf(['sm', 'md', 'lg'])\n};\n\nStatusBullet.defaultProps = {\n size: 'md',\n color: 'default'\n};\n\nexport default StatusBullet;\n","import React from 'react';\nimport { Route } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nconst RouteWithLayout = props => {\n const { layout: Layout, component: Component, ...rest } = props;\n\n return (\n (\n \n \n \n )}\n />\n );\n};\n\nRouteWithLayout.propTypes = {\n component: PropTypes.any.isRequired,\n layout: PropTypes.any.isRequired,\n path: PropTypes.string\n};\n\nexport default RouteWithLayout;\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Button } from '@material-ui/core';\r\n\r\n\r\nconst DialogeBox = props => {\r\n const { open, title, message, button1text, button2text, button1clickhandler, button2clickhandler } = props;\r\n\r\n return (\r\n \r\n {title}\r\n \r\n \r\n {message}\r\n \r\n \r\n \r\n {button1text == undefined ? null : ()}\r\n {button2text == undefined ? null : ()}\r\n \r\n \r\n );\r\n};\r\n\r\nDialogeBox.propTypes = {\r\n open: PropTypes.bool.isRequired,\r\n title: PropTypes.string.isRequired,\r\n //message: PropTypes.string.isRequired,\r\n button1text: PropTypes.string.isRequired,\r\n button1clickhandler: PropTypes.func.isRequired\r\n};\r\n\r\nexport default DialogeBox;\r\n","import React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Button, TextField } from '@material-ui/core';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport { genfunction } from 'helpers'\r\nimport { makeStyles } from '@material-ui/styles';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n wheelChairScreenAssist: {\r\n bottom: 0,\r\n position: \"fixed\",\r\n marginBottom: \"120\"\r\n }\r\n}));\r\n\r\nconst PinCodeDialogeBox = props => {\r\n const { open, title, message, button1text, button2text, button1clickhandler, button2clickhandler, pinTextChange } = props;\r\n const classes = useStyles();\r\n return (\r\n \r\n {title}\r\n \r\n \r\n {ReactHtmlParser(genfunction.replaceEscapeCharacters(message))}\r\n { pinTextChange(event.target.value) }}>\r\n \r\n \r\n \r\n {button1text == undefined ? null : ()}\r\n {button2text == undefined ? null : ()}\r\n \r\n \r\n );\r\n};\r\n\r\nPinCodeDialogeBox.propTypes = {\r\n open: PropTypes.bool.isRequired,\r\n title: PropTypes.string.isRequired,\r\n message: PropTypes.string.isRequired,\r\n button1text: PropTypes.string.isRequired,\r\n button1clickhandler: PropTypes.func.isRequired\r\n};\r\n\r\nexport default PinCodeDialogeBox;\r\n","import React from 'react';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\n\r\nconst ErrorHandling = props => {\r\n\r\n function Alert(props) {\r\n return ;\r\n }\r\n\r\n const getcolor = () => {\r\n if (props.color && props.color != \"\")\r\n return props.color;\r\n else\r\n return \"error\";\r\n }\r\n\r\n const getintialtext = () => {\r\n if (props.color && props.color == \"info\")\r\n return \"Info\";\r\n else\r\n return \"Error\";\r\n }\r\n\r\n return (\r\n
\r\n { props.handleclose() }}>\r\n { props.handleclose() }} color={getcolor()}> {getintialtext()} : {props.msg}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ErrorHandling;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Button, Input } from '@material-ui/core';\r\nimport {genfunction} from '../../helpers';\r\n\r\nimport theme from '../../theme'\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n leftrightbutton: {\r\n minWidth: \"auto\"\r\n },\r\n leftbutton: {\r\n width: \"20px\",\r\n borderTopLeftRadius: \"0px\",\r\n borderBottomLeftRadius: \"0px\"\r\n },\r\n rightbutton: {\r\n width: \"20px\",\r\n borderTopRightRadius: \"0px\",\r\n borderBottomRightRadius: \"0px\"\r\n },\r\n labelstyle: {\r\n flex: 1,\r\n padding: \"0px 5px 0px 5px\",\r\n verticalAlign: \"middle\",\r\n textAlign: \"center\"\r\n },\r\n box: {\r\n display: \"flex\",\r\n width: \"80px\"\r\n },\r\n input: {\r\n textAlign: \"center\"\r\n },\r\n boxVisble :{\r\n pointerEvents: \"none\", \r\n opacity: \"0.4\",\r\n backgroundColor:'#808080',\r\n color:'#000000'\r\n }\r\n}));\r\n\r\nconst NumberSpinner = props => {\r\n const classes = useStyles();\r\n\r\n const buttonClickHandler = (operation) => {\r\n let newvalue = 0;\r\n if (operation == \"Add\") {\r\n newvalue = props.value + props.steps;\r\n }\r\n else if (operation == \"Subtract\") {\r\n newvalue = props.value - props.steps;\r\n }\r\n\r\n if (newvalue > props.maxValue)\r\n newvalue = props.maxValue;\r\n else if (newvalue < props.minValue)\r\n newvalue = props.minValue;\r\n\r\n if (newvalue != props.value)\r\n props.changeHandler(props.refrence, newvalue);\r\n }\r\n const handleFocus = (event) => event.target.select();\r\n\r\n const textChangeHandler = (event) => {\r\n if (event.target.value != \"\") {\r\n if (isNaN(event.target.value))\r\n event.target.value = 0;\r\n\r\n let newvalue = parseInt(event.target.value);\r\n if (newvalue > props.maxValue)\r\n newvalue = props.maxValue;\r\n else if (newvalue < props.minValue)\r\n newvalue = props.minValue;\r\n\r\n if (newvalue != props.value)\r\n props.changeHandler(props.refrence, newvalue);\r\n }\r\n }\r\n\r\n const disableButton = (type) => {\r\n\r\n if (type == \"Max\")\r\n return props.value >= props.maxValue;\r\n else if (type == \"Min\")\r\n return props.value <= props.minValue;\r\n }\r\n\r\n\r\n let boxVis = props.disabled ? classes.boxVisble : '';\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nNumberSpinner.propTypes = {\r\n value: PropTypes.number,\r\n steps: PropTypes.number,\r\n minValue: PropTypes.number,\r\n maxValue: PropTypes.number\r\n};\r\n\r\nexport default NumberSpinner;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport NumberFormat from 'react-number-format';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n // '& > *': {\r\n // margin: theme.spacing(1),\r\n // },\r\n display: \"unset\"\r\n }\r\n}));\r\n\r\n\r\nfunction NumberFormatCustom(props) {\r\n const { inputRef, onChange, ...other } = props;\r\n\r\n return (\r\n {\r\n onChange({\r\n target: {\r\n name: props.name,\r\n value: values.value,\r\n },\r\n });\r\n }}\r\n thousandSeparator\r\n isNumericString\r\n prefix=\"$\"\r\n />\r\n );\r\n}\r\n\r\nNumberFormatCustom.propTypes = {\r\n inputRef: PropTypes.func.isRequired,\r\n name: PropTypes.string.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default function FormattedInputs(props) {\r\n const classes = useStyles();\r\n const [values, setValues] = React.useState({\r\n amountExceed: false\r\n });\r\n\r\n const handleChange = (event) => {\r\n\r\n if (parseFloat(event.target.value) < props.minValue || parseFloat(event.target.value) > props.maxValue) {\r\n setValues({ ...values, amountExceed: true });\r\n props.Validated(false);\r\n }\r\n else {\r\n props.Validated(true);\r\n setValues({ ...values, amountExceed: false });\r\n }\r\n\r\n props.handleOtherPrice(event);\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { TextField, Typography } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n paddingBottom: \"20px\"\r\n }\r\n}));\r\n\r\nconst UDFText = (props) => {\r\n const { UDF } = props;\r\n const classes = useStyles();\r\n\r\n const onChangeHandler = (event) => {\r\n props.changecontrolvalue(event, props.bookingID, UDF.UDFCategoryName, UDF.UDFID);\r\n }\r\n\r\n const GetUserMemberValue = () => {\r\n if (props.isMembership) {\r\n let userV = \"\";\r\n\r\n if (UDF.Users.filter(x => x.userID == props.usernumber).length > 0) {\r\n let user = UDF.Users.find(x => x.userID == props.usernumber);\r\n\r\n if (user && user.hasOwnProperty('userUDFValue')) {\r\n userV = user.userUDFValue;\r\n }\r\n\r\n return userV;\r\n }\r\n }\r\n else {\r\n return UDF.Value;\r\n }\r\n }\r\n return (\r\n
\r\n {UDF.UdfDescription}\r\n 200}\r\n inputProps={{ maxLength: UDF.UDFLength }}\r\n onChange={onChangeHandler}\r\n value={GetUserMemberValue()}\r\n {...props}\r\n sx={{ p: 4, '& .MuiInputLabel-root': { p: 4 } }}\r\n variant=\"standard\"\r\n InputLabelProps={{\r\n style: { padding: \"0 0 0 15px\" }\r\n }}\r\n />\r\n
\r\n );\r\n};\r\n\r\nUDFText.propTypes = {\r\n udf: PropTypes.object.isRequired\r\n};\r\n\r\nexport default UDFText;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { FormControlLabel, Checkbox, TextField } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n paddingBottom: \"20px\"\r\n }\r\n}));\r\n\r\nconst UDFCheckBox = (props) => {\r\n const { UDF } = props;\r\n const classes = useStyles();\r\n\r\n const changeCheckBoxValue = (event) => {\r\n props.changecontrolvalue(event, props.bookingID, UDF.UDFCategoryName, UDF.UDFID);\r\n }\r\n\r\n const GetUserMemberValue = () => {\r\n if (props.isMembership) {\r\n let userV = \"\";\r\n\r\n if (UDF.Users.filter(x => x.userID == props.usernumber).length > 0) {\r\n let user = UDF.Users.find(x => x.userID == props.usernumber);\r\n\r\n if (user && user.hasOwnProperty('userUDFValue')) {\r\n userV = user.userUDFValue;\r\n }\r\n\r\n return userV;\r\n }\r\n }\r\n else {\r\n return UDF.Value;\r\n }\r\n }\r\n\r\n return (\r\n
\r\n\r\n \r\n
\r\n );\r\n};\r\n\r\nUDFCheckBox.propTypes = {\r\n UDF: PropTypes.object.isRequired\r\n};\r\n\r\nexport default UDFCheckBox;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { TextField, Typography } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n paddingBottom: \"20px\"\r\n }\r\n}));\r\n\r\nconst UDFDateTime = (props) => {\r\n const { UDF } = props;\r\n const classes = useStyles();\r\n\r\n const onChangeHandler = (event) => {\r\n props.changecontrolvalue(event, props.bookingID, UDF.UDFCategoryName, UDF.UDFID);\r\n }\r\n\r\n const GetUserMemberValue = () => {\r\n if (props.isMembership) {\r\n let userV = \"\";\r\n\r\n if (UDF.Users.filter(x => x.userID == props.usernumber).length > 0) {\r\n let user = UDF.Users.find(x => x.userID == props.usernumber);\r\n\r\n if (user && user.hasOwnProperty('userUDFValue')) {\r\n userV = user.userUDFValue;\r\n }\r\n\r\n return userV;\r\n }\r\n }\r\n else {\r\n return UDF.Value;\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {UDF.UdfDescription}\r\n \r\n
\r\n );\r\n};\r\n\r\nUDFDateTime.propTypes = {\r\n UDF: PropTypes.object.isRequired\r\n};\r\n\r\nexport default UDFDateTime;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { TextField, Typography } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n paddingBottom: \"20px\"\r\n }\r\n}));\r\n\r\nconst UDFNumber = (props) => {\r\n const { UDF } = props;\r\n const classes = useStyles();\r\n\r\n const onChangeHandler = (event) => {\r\n props.changecontrolvalue(event, props.bookingID, UDF.UDFCategoryName, UDF.UDFID);\r\n }\r\n\r\n const GetUserMemberValue = () => {\r\n if (props.isMembership) {\r\n let userV = \"\";\r\n\r\n if (UDF.Users.filter(x => x.userID == props.usernumber).length > 0) {\r\n let user = UDF.Users.find(x => x.userID == props.usernumber);\r\n\r\n if (user && user.hasOwnProperty('userUDFValue')) {\r\n userV = user.userUDFValue;\r\n }\r\n\r\n return userV;\r\n }\r\n }\r\n else {\r\n return UDF.Value;\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {UDF.UdfDescription}\r\n \r\n
\r\n );\r\n};\r\n\r\nUDFNumber.propTypes = {\r\n UDF: PropTypes.object.isRequired\r\n};\r\n\r\nexport default UDFNumber;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Select, MenuItem, Typography } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n paddingBottom: \"20px\",\r\n marginLeft: \"15px\"\r\n }\r\n}));\r\n\r\nconst UDFSelect = (props) => {\r\n const { UDF } = props;\r\n const classes = useStyles();\r\n\r\n const onChangeHandler = (event) => {\r\n props.changecontrolvalue(event, props.bookingID, UDF.UDFCategoryName, UDF.UDFID);\r\n }\r\n\r\n const GetUserMemberValue = () => {\r\n if (props.isMembership) {\r\n let userV = \"\";\r\n\r\n if (UDF.Users.filter(x => x.userID == props.usernumber).length > 0) {\r\n let user = UDF.Users.find(x => x.userID == props.usernumber);\r\n\r\n if (user && user.hasOwnProperty('userUDFValue')) {\r\n userV = user.userUDFValue;\r\n }\r\n\r\n return userV;\r\n }\r\n }\r\n else {\r\n return UDF.Value;\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {UDF.UdfDescription}\r\n\r\n \r\n {UDF.Picklist.map(picklist => (\r\n {picklist.Option}\r\n ))}\r\n \r\n {/* */}\r\n
\r\n );\r\n};\r\n\r\nUDFSelect.propTypes = {\r\n UDF: PropTypes.object.isRequired\r\n};\r\n\r\nexport default UDFSelect;\r\n","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport NumberFormat from 'react-number-format';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\r\n}));\r\n\r\n\r\nfunction NumberFormatCustom(props) {\r\n const { inputRef, onChange, ...other } = props;\r\n\r\n return (\r\n {\r\n onChange({\r\n target: {\r\n name: props.name,\r\n value: values.value,\r\n },\r\n });\r\n }}\r\n thousandSeparator\r\n isNumericString\r\n prefix=\"$\"\r\n />\r\n );\r\n}\r\n\r\nexport default function NumberInput(props) {\r\n const classes = useStyles();\r\n const { MinValue, MaxValue, OnInputChange, onValidationChange } = props;\r\n const [isValidAmount, setIsValidAmount] = useState(true);\r\n\r\n const onChangeHandler = (event) => {\r\n if (MinValue && MaxValue) {\r\n if (parseFloat(event.target.value) < MinValue || parseFloat(event.target.value) > MaxValue) {\r\n setIsValidAmount(false);\r\n }\r\n else {\r\n setIsValidAmount(true);\r\n }\r\n }\r\n\r\n OnInputChange(event);\r\n }\r\n\r\n useEffect(() => {\r\n onValidationChange(isValidAmount)\r\n }, [isValidAmount])\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nNumberInput.propTypes = {\r\n MinValue: PropTypes.number,\r\n MaxValue: PropTypes.number,\r\n onValidationChange: PropTypes.func,\r\n OnInputChange: PropTypes.func.isRequired,\r\n};","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Card, CardContent, CardActions, Typography, Button, CardHeader } from '@material-ui/core';\r\nimport { genfunction } from 'helpers';\r\nimport ReactHtmlParser from 'react-html-parser';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n card: {\r\n \"&:hover\": {\r\n transform: 'scale(1.02)',\r\n WebkitTransform: 'scale(1.02)',\r\n boxShadow: \"inset 0 0 0 2px\",\r\n cursor: 'pointer'\r\n }\r\n },\r\n headerbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n }\r\n}));\r\n\r\nconst DisplayCard = props => {\r\n\r\n const { Title, Description, ButtonText, ButtonCallBack, ButtonCallBackReference } = props;\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n {ReactHtmlParser(genfunction.replaceEscapeCharacters(Description))}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nDisplayCard.propTypes = {\r\n Title: PropTypes.string.isRequired,\r\n Description: PropTypes.string.isRequired,\r\n ButtonText: PropTypes.string.isRequired,\r\n ButtonCallBack: PropTypes.func.isRequired,\r\n ButtonCallBackReference: PropTypes.object.isRequired\r\n};\r\n\r\nexport default DisplayCard;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Typography } from '@material-ui/core';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport { genfunction } from 'helpers'\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\r\n}));\r\n\r\nconst getSubTitle = (subTitle) => {\r\n return subTitle && subTitle != \"\" ?\r\n \r\n {ReactHtmlParser(genfunction.replaceEscapeCharacters(subTitle))}\r\n \r\n : \"\"\r\n}\r\n\r\nconst Title = (props) => {\r\n const classes = useStyles();\r\n return (\r\n
\r\n \r\n {ReactHtmlParser(genfunction.replaceEscapeCharacters(props.Header))}\r\n \r\n {getSubTitle(props.SubTitle)}\r\n {getSubTitle(props.SubTitle2)}\r\n
\r\n );\r\n};\r\n\r\nTitle.propTypes = {\r\n Header: PropTypes.string,\r\n SubTitle: PropTypes.string,\r\n SubTitle2: PropTypes.string\r\n};\r\n\r\nexport default Title;\r\n","import React from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { Avatar, Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n minHeight: 'fit-content'\n },\n avatar: {\n width: 60,\n height: 60\n },\n name: {\n marginTop: theme.spacing(1)\n }\n}));\n\nconst Profile = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n const user = {\n name: 'Centaman Dev',\n avatar: '/unset.png',\n bio: 'Dev'\n };\n\n return (\n \n \n \n {user.name}\n \n {user.bio}\n \n );\n};\n\nProfile.propTypes = {\n className: PropTypes.string\n};\n\nexport default Profile;\n","/* eslint-disable react/no-multi-comp */\n/* eslint-disable react/display-name */\nimport React, { forwardRef } from 'react';\nimport { NavLink as RouterLink } from 'react-router-dom';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { List, ListItem, Button, colors } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n item: {\n display: 'flex',\n paddingTop: 0,\n paddingBottom: 0\n },\n button: {\n color: colors.blueGrey[800],\n padding: '10px 8px',\n justifyContent: 'flex-start',\n textTransform: 'none',\n letterSpacing: 0,\n width: '100%',\n fontWeight: theme.typography.fontWeightMedium\n },\n icon: {\n color: theme.palette.icon,\n width: 24,\n height: 24,\n display: 'flex',\n alignItems: 'center',\n marginRight: theme.spacing(1)\n },\n active: {\n color: theme.palette.primary.main,\n fontWeight: theme.typography.fontWeightMedium,\n '& $icon': {\n color: theme.palette.primary.main\n }\n }\n}));\n\nconst CustomRouterLink = forwardRef((props, ref) => (\n \n \n \n));\n\nconst SidebarNav = props => {\n const { pages, className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n {pages.map(page => (\n \n \n
{page.icon}
\n {page.title}\n \n \n ))}\n \n );\n};\n\nSidebarNav.propTypes = {\n className: PropTypes.string,\n pages: PropTypes.array.isRequired\n};\n\nexport default SidebarNav;\n","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { Typography, Button, colors } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n backgroundColor: colors.grey[50]\n },\n media: {\n paddingTop: theme.spacing(2),\n height: 80,\n textAlign: 'center',\n '& > img': {\n height: '100%',\n width: 'auto'\n }\n },\n content: {\n padding: theme.spacing(1, 2)\n },\n actions: {\n padding: theme.spacing(1, 2),\n display: 'flex',\n justifyContent: 'center'\n }\n}));\n\nconst UpgradePlan = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n
\n \n
\n
\n \n Upgrade to PRO\n \n \n Upgrade to Devias Kit PRO and get even more components\n \n
\n
\n \n Upgrade\n \n
\n \n );\n};\n\nUpgradePlan.propTypes = {\n className: PropTypes.string\n};\n\nexport default UpgradePlan;\n","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { Divider, Drawer } from '@material-ui/core';\nimport DashboardIcon from '@material-ui/icons/Dashboard';\nimport PeopleIcon from '@material-ui/icons/People';\nimport ShoppingBasketIcon from '@material-ui/icons/ShoppingBasket';\nimport TextFieldsIcon from '@material-ui/icons/TextFields';\nimport ImageIcon from '@material-ui/icons/Image';\nimport AccountBoxIcon from '@material-ui/icons/AccountBox';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport LockOpenIcon from '@material-ui/icons/LockOpen';\n\nimport { Profile, SidebarNav, UpgradePlan } from './components';\n\nconst useStyles = makeStyles(theme => ({\n drawer: {\n width: 240,\n [theme.breakpoints.up('lg')]: {\n marginTop: 64,\n height: 'calc(100% - 64px)'\n }\n },\n root: {\n backgroundColor: theme.palette.white,\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n padding: theme.spacing(2)\n },\n divider: {\n margin: theme.spacing(2, 0)\n },\n nav: {\n marginBottom: theme.spacing(2)\n }\n}));\n\nconst Sidebar = props => {\n const { open, variant, onClose, className, ...rest } = props;\n\n const classes = useStyles();\n\n const pages = [\n {\n title: 'Dashboard',\n href: '/dashboard',\n icon: \n },\n {\n title: 'Users',\n href: '/users',\n icon: \n },\n {\n title: 'Products',\n href: '/products',\n icon: \n },\n {\n title: 'Authentication',\n href: '/sign-in',\n icon: \n },\n {\n title: 'Typography',\n href: '/typography',\n icon: \n },\n {\n title: 'Icons',\n href: '/icons',\n icon: \n },\n {\n title: 'Account',\n href: '/account',\n icon: \n },\n {\n title: 'Settings',\n href: '/settings',\n icon: \n }\n ];\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nSidebar.propTypes = {\n className: PropTypes.string,\n onClose: PropTypes.func,\n open: PropTypes.bool.isRequired,\n variant: PropTypes.string.isRequired\n};\n\nexport default Sidebar;\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {\r\n actionShopCartResetStateWithTourHold, actionShopCartResetStateWithUniqueCouponHold,\r\n actionShopCartResetDonation, actionShopCartResetMembershipPackage, actionShopCartResetGATicket, \r\n actionShopCartRemoveGiftcards, actionShopcartResetOrderProducts, actionResetGiftCards,\r\n actionShopCartResetDonationProduct\r\n} from 'actions';\r\nimport { actionStartDiscardTime, actionResetDiscardTime } from 'actions';\r\nimport DialogeBox from '../components/DialogeBox/DialogeBox';\r\nimport { actionResetMemberValidation } from 'actions';\r\nimport { actionResetFieldValuesState } from 'actions';\r\nimport { actionResetBookingTypes } from 'actions';\r\nimport { actionResetDonations } from 'actions';\r\nimport { actionResetTransactionFee } from 'actions';\r\nimport { actionResetExtraItems } from 'actions';\r\nimport { actionResetMembershipPackage } from 'actions';\r\nimport { actionResetCostRate } from 'actions';\r\nimport { actionResetIDMEUSERDATA } from 'actions';\r\nimport { actionResetUDFs } from 'actions';\r\nimport { actionResetMembershipUDFs } from 'actions';\r\nimport { actionResetCountryAndState } from 'actions'\r\nimport { actionResetCustomerUdfs } from 'actions';\r\n\r\nconst { ApplyTransactionFee, CartDiscardTime, CartDiscardPopupTitle, CartDiscardPopupMsg, CartDiscardPopupButton1Text, CartDiscardPopupButton2Text,\r\n CartDiscardPopupTime, PaymentMethodType } = window['runConfig'];\r\n\r\nconst CartDiscardTimeController = props => {\r\n\r\n const [open, setopen] = useState(false);\r\n const [dialogetimer, setdialogetimer] = useState(CartDiscardPopupTime);\r\n\r\n const carddiscard = useSelector(state => state.reducerCardDiscardTime);\r\n const events = useSelector(state => state.reducerShopCart.events);\r\n const MembershipPackages = useSelector(state => state.reducerShopCart.MembershipPackages);\r\n const GATickets = useSelector(state => state.reducerShopCart.GATickets);\r\n const shopcartreducer = useSelector(state => state.reducerShopCart);\r\n const bookingUDFS = useSelector(state => state.reducerBookingUserDefinedFields);\r\n const orderProducts = useSelector(state => state.reducerShopCart.orderProducts);\r\n const membershipTypesUdfs = useSelector(state => state.reducerMembershipUserDefinedFields);\r\n const giftcards = useSelector(state => state.reducerGiftCards);\r\n const customerUdfs = useSelector(state => state.reducerCustomerUDFs);\r\n const donationProducts = useSelector(state => state.reducerShopCart.donationProducts);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const ContinueButtonHandler = () => {\r\n setopen(false);\r\n setdialogetimer(CartDiscardPopupTime);\r\n SetCartTimer();\r\n }\r\n\r\n const DialogeTimeout = () => {\r\n setopen(false);\r\n setdialogetimer(CartDiscardPopupTime);\r\n actionShopCartResetDonation(dispatch);\r\n\r\n if (events && events.length > 0) {\r\n actionShopCartResetStateWithTourHold(dispatch, events);\r\n }\r\n\r\n if (shopcartreducer.tourCoupons.length > 0) {\r\n actionResetDonations(dispatch);\r\n actionShopCartResetStateWithUniqueCouponHold(dispatch);\r\n }\r\n\r\n if (shopcartreducer.cashless.length > 0) {\r\n actionShopCartRemoveGiftcards(dispatch);\r\n }\r\n\r\n actionResetDiscardTime(dispatch);\r\n actionResetMemberValidation(dispatch);\r\n actionResetBookingTypes(dispatch);\r\n actionResetExtraItems(dispatch);\r\n actionShopCartResetMembershipPackage(dispatch);\r\n actionResetMembershipPackage(dispatch);\r\n actionResetCostRate(dispatch);\r\n actionResetIDMEUSERDATA(dispatch);\r\n actionResetCountryAndState(dispatch);\r\n\r\n if (ApplyTransactionFee) {\r\n actionResetTransactionFee(dispatch);\r\n }\r\n\r\n if (bookingUDFS.bookingUDFs.length > 0) {\r\n actionResetUDFs(dispatch);\r\n }\r\n\r\n actionShopCartResetGATicket(dispatch);\r\n actionShopcartResetOrderProducts(dispatch);\r\n actionResetGiftCards(dispatch);\r\n actionShopCartResetDonationProduct(dispatch);\r\n\r\n actionResetFieldValuesState(dispatch);\r\n\r\n if (membershipTypesUdfs.membershipUdfs && membershipTypesUdfs.membershipUdfs.length > 0) {\r\n actionResetMembershipUDFs(dispatch);\r\n }\r\n\r\n if (customerUdfs.customerUDFs && customerUdfs.customerUDFs.length > 0) {\r\n actionResetCustomerUdfs(dispatch);\r\n }\r\n\r\n if (PaymentMethodType === \"GlobalPayments\") {\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 1000)\r\n }\r\n }\r\n\r\n\r\n useEffect(() => {\r\n if (open) {\r\n\r\n if (dialogetimer == 0) {\r\n DialogeTimeout();\r\n }\r\n else {\r\n const timer = setTimeout(() => {\r\n setdialogetimer(dialogetimer - 1);\r\n }, 1000);\r\n return () => {\r\n clearTimeout(timer);\r\n };\r\n }\r\n\r\n }\r\n }, [dialogetimer]);\r\n\r\n const ShowDialoge = () => {\r\n setopen(true);\r\n actionResetDiscardTime(dispatch);\r\n setdialogetimer(dialogetimer - 1);\r\n }\r\n const ShowGiftCards = () => {\r\n let res = false;\r\n if (giftcards.giftcards && giftcards.giftcards.length > 0) {\r\n if (giftcards.giftcards.filter(x => x.AddedToCart === true).length > 0) {\r\n res = true;\r\n }\r\n }\r\n\r\n return res;\r\n }\r\n const SetCartTimer = () => {\r\n if (open == false && carddiscard.timerid == 0 && (events.length > 0 || GATickets.length > 0 || MembershipPackages.length > 0 || orderProducts.length > 0 || ShowGiftCards() || donationProducts.length > 0) && CartDiscardTime > 0) {\r\n let timeid = setInterval(() => {\r\n actionStartDiscardTime(dispatch, timeid)\r\n }, 1000);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n SetCartTimer();\r\n }, [carddiscard.timerid, events.length, GATickets.length, orderProducts.length, MembershipPackages.length, ShowGiftCards(), open, donationProducts.length])\r\n\r\n useEffect(() => {\r\n if (carddiscard.timerid > 0 && CartDiscardTime > 0 && carddiscard.DiscardTime == 0 && (events.length > 0 || GATickets.length > 0 || orderProducts.length > 0 || MembershipPackages.length > 0 || ShowGiftCards() || donationProducts.length)) {\r\n ShowDialoge();\r\n }\r\n if (carddiscard.timerid > 0 && events.length == 0 && GATickets.length == 0 && MembershipPackages.length == 0 && orderProducts.length == 0 && ShowGiftCards() == false && donationProducts.length == 0 && CartDiscardTime > 0) {\r\n actionResetDiscardTime(dispatch);\r\n }\r\n })\r\n\r\n const buttontext = () => {\r\n return \"(\" + dialogetimer + \")\" + CartDiscardPopupButton1Text;\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default CartDiscardTimeController;\r\n","import React from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/styles';\nimport { AppBar, Toolbar, Badge, IconButton, Button, Hidden } from '@material-ui/core';\nimport { withRouter } from 'react-router'\nimport { useSelector } from 'react-redux';\nimport CartDiscardTimeController from 'helpers/CartDiscardTimeController';\nimport {\n Restaurant as RestaurantIcon, Person as PersonIcon, ConfirmationNumber as ConfirmationNumberIcon,\n AddShoppingCart, CardGiftcard\n} from '@material-ui/icons';\nimport Link from '@material-ui/core/Link';\nimport Icon from '@material-ui/core/Icon';\n\nconst { RedirectLogoURL, GiftCardsHeading, HeaderExtraText, TicketsHeading, MembershipsHeading, TicketLinkHeading,\n FoodOrderLinkHeading, DonationLinkHeading, ManageMyBookingButtonTitle, ManageMyBookingButtonShow } = window['runConfig'];\n\nconst useStyles = makeStyles(theme => ({\n root: {\n '& > *': {\n margin: theme.spacing(0.3)\n },\n float: 'left',\n marginLeft: '20px',\n color: 'white',\n marginTop: '5px'\n },\n flexGrow: {\n flexGrow: 1\n },\n iconSize: {\n fontSize: \"2rem\"\n },\n desktopView: {\n color: theme.palette.primary.contrastText,\n fontSize: '14px', marginTop: '5px',\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", \"sans-serif\"',\n cursor: 'pointer'\n },\n mobileView: {\n color: theme.palette.primary.contrastText,\n fontSize: '8px', marginTop: '8px',\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", \"sans-serif\"',\n cursor: 'pointer'\n },\n headerExtraTxtHide: {\n display: 'none'\n },\n headerExtraTxtShow: {\n display: 'block'\n },\n disabledlink: {\n pointerEvents: 'none'\n }\n}));\n\nconst Topbar = props => {\n const { className, onSidebarOpen, ...rest } = props;\n\n const classes = useStyles();\n\n\n\n const events = useSelector(state => state.reducerShopCart.events);\n const memberships = useSelector(state => state.reducerShopCart.MembershipPackages);\n const GATickets = useSelector(state => state.reducerShopCart.GATickets);\n const managemybkng = useSelector(state => state.reducerShopCart.managemybooking);\n const orderProducts = useSelector(state => state.reducerShopCart.orderProducts);\n const giftcards = useSelector(state => state.reducerGiftCards);\n const donationProducts = useSelector(state => state.reducerShopCart.donationProducts);\n\n const handleClick = event => {\n if (managemybkng === false) {\n if (orderProducts && orderProducts.length > 0) {\n props.history.push('/revieworderproducts');\n }\n else\n props.history.push('/Checkout');\n }\n };\n\n const CountGiftCards = () => {\n let totalGFs = 0;\n if (giftcards.giftcards && giftcards.giftcards.length > 0) {\n totalGFs = giftcards.giftcards.filter(x => x.AddedToCart === true && x.CartQty > 0).map(({ CartQty }) => CartQty).reduce((sum, i) => sum + i, 0);\n }\n\n return totalGFs;\n }\n\n\n const eventitemcount = () => {\n if ((events == null || events.length == 0) && (memberships == null || memberships.length == 0) && (GATickets == null || GATickets.length == 0) && (orderProducts == null || orderProducts.length == 0) && (giftcards.giftcards == null || giftcards.giftcards.length == 0) && (donationProducts == null || donationProducts.length == 0))\n return 0;\n else {\n let qty = 0;\n events.forEach(event => {\n event.TourProducts.forEach(product => {\n qty += product.Quantity;\n })\n });\n\n GATickets.forEach(ticket => {\n qty += ticket.Quantity;\n })\n\n donationProducts.forEach(product => {\n qty++;\n })\n\n if (memberships && memberships.length > 0) {\n qty++;\n }\n\n orderProducts.forEach(p => {\n qty += p.Quantity;\n });\n\n if (giftcards.giftcards && giftcards.giftcards.length > 0) {\n qty += CountGiftCards();\n }\n\n return qty;\n }\n }\n\n return (\n \n \n\n \n { window.location.href = RedirectLogoURL; }}>\n \n \n \n\n \n { window.location.href = RedirectLogoURL; }}>\n \n \n \n\n \n { window.location.href = RedirectLogoURL; }}>\n \n \n

{HeaderExtraText}

\n
\n \n
\n\n \n

{HeaderExtraText}

\n
\n\n \n

{HeaderExtraText}

\n
\n\n {!managemybkng ?\n \n : null}\n\n {managemybkng ? null :\n
\n\n \n\n {TicketsHeading && TicketsHeading != \"\" ?\n \n \n \n { props.history.push('/products'); }}>\n {TicketsHeading}\n \n \n : \"\"}\n\n \n\n \n\n {TicketsHeading && TicketsHeading != \"\" ?\n \n \n \n { props.history.push('/products'); }}>\n {TicketsHeading}\n \n \n : \"\"}\n \n\n \n {TicketsHeading && TicketsHeading != \"\" ?\n \n \n \n { props.history.push('/products'); }}>\n {TicketsHeading}\n \n \n : \"\"}\n \n\n \n\n {TicketLinkHeading && TicketLinkHeading != \"\" ?\n \n \n \n { props.history.push('/gatickets'); }}>\n {TicketLinkHeading}\n \n \n \n : \"\"}\n \n\n \n\n {TicketLinkHeading && TicketLinkHeading != \"\" ?\n \n \n \n { props.history.push('/gatickets'); }}>\n {TicketLinkHeading}\n \n \n \n : \"\"}\n \n\n \n\n {TicketLinkHeading && TicketLinkHeading != \"\" ?\n \n \n \n { props.history.push('/gatickets'); }}>\n {TicketLinkHeading}\n \n \n \n : \"\"}\n \n\n\n\n\n \n\n\n {MembershipsHeading && MembershipsHeading != \"\" ?\n \n \n \n { props.history.push('/memberships'); }}>\n {MembershipsHeading}\n \n \n : \"\"}\n\n \n\n \n {MembershipsHeading && MembershipsHeading != \"\" ?\n \n \n \n { props.history.push('/memberships'); }}>\n {MembershipsHeading}\n \n \n : \"\"}\n \n\n\n \n\n {MembershipsHeading && MembershipsHeading != \"\" ?\n \n \n \n { props.history.push('/memberships'); }}>\n {MembershipsHeading}\n \n \n : \"\"}\n\n \n\n \n {GiftCardsHeading && GiftCardsHeading != \"\" ?\n \n \n \n { props.history.push('/giftcards'); }}>\n {GiftCardsHeading}\n \n \n : \"\"}\n \n\n \n {GiftCardsHeading && GiftCardsHeading != \"\" ?\n \n \n \n { props.history.push('/giftcards'); }}>\n {GiftCardsHeading}\n \n \n : \"\"}\n \n\n \n {GiftCardsHeading && GiftCardsHeading != \"\" ?\n \n \n \n { props.history.push('/giftcards'); }}>\n {GiftCardsHeading}\n \n \n : \"\"}\n \n\n\n \n {FoodOrderLinkHeading && FoodOrderLinkHeading != \"\" ?\n \n \n \n { props.history.push('/orderlocation'); }}>\n {FoodOrderLinkHeading}\n \n \n : \"\"}\n \n\n \n {FoodOrderLinkHeading && FoodOrderLinkHeading != \"\" ?\n \n \n \n { props.history.push('/orderlocation'); }}>\n {FoodOrderLinkHeading}\n \n \n : \"\"}\n \n\n \n {FoodOrderLinkHeading && FoodOrderLinkHeading != \"\" ?\n \n \n \n { props.history.push('/orderlocation'); }}>\n {FoodOrderLinkHeading}\n \n \n : \"\"}\n \n\n\n \n {DonationLinkHeading && DonationLinkHeading != \"\" ?\n \n \n volunteer_activism\n { props.history.push('/donationareas'); }}>\n {DonationLinkHeading}\n \n \n : \"\"}\n \n\n \n {DonationLinkHeading && DonationLinkHeading != \"\" ?\n \n \n volunteer_activism\n { props.history.push('/donationareas'); }}>\n {DonationLinkHeading}\n \n \n : \"\"}\n \n\n \n {DonationLinkHeading && DonationLinkHeading != \"\" ?\n \n \n volunteer_activism\n { props.history.push('/donationareas'); }}>\n {DonationLinkHeading}\n \n \n : \"\"}\n \n\n
\n }\n\n
\n\n <>\n {!managemybkng && ManageMyBookingButtonShow ?\n \n : \"\"}\n\n {!managemybkng ?\n \n \n \n \n \n : \"\"}\n \n \n \n );\n};\n\nexport default withRouter(Topbar);\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { makeStyles, useTheme } from '@material-ui/styles';\nimport { useMediaQuery } from '@material-ui/core';\n\nimport { Sidebar, Topbar } from './components';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n height: '100%',\n [theme.breakpoints.down('md')]: {\n paddingTop: 60\n },\n [theme.breakpoints.up('md')]: {\n paddingTop: 56\n }\n },\n shiftContent: {\n paddingLeft: 0\n // paddingLeft: 240\n },\n content: {\n height: '100%'\n }\n}));\n\nconst Main = props => {\n const { children } = props;\n\n const classes = useStyles();\n const theme = useTheme();\n const isDesktop = useMediaQuery(theme.breakpoints.up('lg'), {\n defaultMatches: true\n });\n\n const [openSidebar, setOpenSidebar] = useState(false);\n\n const handleSidebarOpen = () => {\n setOpenSidebar(true);\n };\n\n const handleSidebarClose = () => {\n setOpenSidebar(false);\n };\n\n const shouldOpenSidebar = isDesktop ? true : openSidebar;\n\n return (\n \n \n {/* */}\n
\n {children}\n\n
\n
\n );\n};\n\nMain.propTypes = {\n children: PropTypes.node\n};\n\nexport default Main;\n","import React from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { AppBar, Toolbar } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n root: {\n boxShadow: 'none'\n }\n}));\n\nconst Topbar = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n \n \n \n \n \n
\n );\n};\n\nTopbar.propTypes = {\n className: PropTypes.string\n};\n\nexport default Topbar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\n\nimport { Topbar } from './components';\n\nconst useStyles = makeStyles(() => ({\n root: {\n paddingTop: 64,\n height: '100%'\n },\n content: {\n height: '100%'\n }\n}));\n\nconst Minimal = props => {\n const { children } = props;\n\n const classes = useStyles();\n\n return (\n
\n \n
{children}
\n
\n );\n};\n\nMinimal.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string\n};\n\nexport default Minimal;\n","import React, { useState } from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Card,\n CardHeader,\n CardContent,\n CardActions,\n Divider,\n Grid,\n Button,\n TextField\n} from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n root: {}\n}));\n\nconst AccountDetails = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n const [values, setValues] = useState({\n firstName: 'Shen',\n lastName: 'Zhi',\n email: 'shen.zhi@devias.io',\n phone: '',\n state: 'Alabama',\n country: 'USA'\n });\n\n const handleChange = event => {\n setValues({\n ...values,\n [event.target.name]: event.target.value\n });\n };\n\n const states = [\n {\n value: 'alabama',\n label: 'Alabama'\n },\n {\n value: 'new-york',\n label: 'New York'\n },\n {\n value: 'san-francisco',\n label: 'San Francisco'\n }\n ];\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {states.map(option => (\n \n {option.label}\n \n ))}\n \n \n \n \n \n \n \n \n \n \n Save details\n \n \n \n \n );\n};\n\nAccountDetails.propTypes = {\n className: PropTypes.string\n};\n\nexport default AccountDetails;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport moment from 'moment';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Card,\n CardActions,\n CardContent,\n Avatar,\n Typography,\n Divider,\n Button,\n LinearProgress\n} from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n details: {\n display: 'flex'\n },\n avatar: {\n marginLeft: 'auto',\n height: 110,\n width: 100,\n flexShrink: 0,\n flexGrow: 0\n },\n progress: {\n marginTop: theme.spacing(2)\n },\n uploadButton: {\n marginRight: theme.spacing(2)\n }\n}));\n\nconst AccountProfile = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n const user = {\n name: 'Centaman Dev',\n city: 'Los Angeles',\n country: 'USA',\n timezone: 'GTM-7',\n avatar: '/unset.png'\n };\n\n return (\n \n \n
\n
\n \n John Doe\n \n \n {user.city}, {user.country}\n \n \n {moment().format('hh:mm A')} ({user.timezone})\n \n
\n \n
\n
\n Profile Completeness: 70%\n \n
\n
\n \n \n \n Upload picture\n \n \n \n \n );\n};\n\nAccountProfile.propTypes = {\n className: PropTypes.string\n};\n\nexport default AccountProfile;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { Grid } from '@material-ui/core';\n\nimport { AccountProfile, AccountDetails } from './components';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(4)\n }\n}));\n\nconst Account = () => {\n const classes = useStyles();\n\n return (\n
\n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default Account;\n","import React, { useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport Button from '@material-ui/core/Button';\nimport ButtonGroup from '@material-ui/core/ButtonGroup';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { actionCalendarNavCalendarView, actionCalendarNavListView } from 'actions';\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n // border: \"solid 1px\",\n '& > *': {\n margin: theme.spacing(1),\n },\n },\n}));\n\n\n\nconst handleCalendarViewChange = (viewType, dispatch) => {\n\n if (viewType === \"CalendarView\") {\n actionCalendarNavCalendarView(dispatch);\n }\n else {\n actionCalendarNavListView(dispatch);\n }\n\n}\n\nconst CalendarNavBar = props => {\n const classes = useStyles();\n const dispatch = useDispatch();\n\n const bookingType = useSelector(state => state.reducerBookingTypes.bookingType);\n const displayAreasState = useSelector(state => state.reducerDisplayAreas);\n const [disableCalendarLink, setdisableCalendarLink] = React.useState(false);\n\n useEffect(() => {\n\n if (props.Path == \"/calendar/:id\") {\n\n if (props.bookingType != undefined) {\n if (props.bookingType && props.bookingType.ForceListView) {\n setdisableCalendarLink(true);\n }\n else {\n setdisableCalendarLink(false);\n }\n }\n }\n else {\n if (displayAreasState.displayAreas !== undefined && displayAreasState.displayAreas.length > 0) {\n let newDisplayAreas = JSON.parse(JSON.stringify(displayAreasState.displayAreas));\n let newObj = { ...newDisplayAreas.filter(x => x.DisplayAreaNo == props.urlID)[0] };\n\n if (newObj && newObj.ForceListView) {\n setdisableCalendarLink(true);\n }\n else {\n setdisableCalendarLink(false);\n }\n }\n }\n\n }, [bookingType, displayAreasState]);\n\n\n return (\n
\n \n \n \n \n
\n );\n}\n\nexport default CalendarNavBar;\n","import React, { useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Card, CardHeader, CardContent, Typography, Grid, Hidden } from '@material-ui/core';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { actionGetExtraItem, actionIncreaseQuantity } from 'actions';\r\nimport { genfunction } from '../../helpers';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport { NumberSpinner } from '../InputControls'\r\nimport ErrorHandling from '../ErrorHandling/ErrorHandling';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\n\r\nconst { OtherExtraItemHeader } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n hidetopheader: {\r\n display: 'none'\r\n },\r\n cardcontent: {\r\n \"&:last-child\": {\r\n paddingBottom: 5\r\n }\r\n }\r\n}));\r\n\r\nconst ExtraItemsProducts = (props) => {\r\n const classes = useStyles();\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n const dispatch = useDispatch()\r\n const reducerAppLoader = useSelector(state => state.reducerAppLoader.loading);\r\n\r\n\r\n const changeQuantityHandler = (reference, quantity) => {\r\n\r\n if (props.allowQuantityChange === false) {\r\n seterrorMsg(\"Please remove coupon code to make futher changes.\");\r\n return;\r\n }\r\n\r\n if (cartEvents && cartEvents.length > 0) {\r\n if (cartEvents[0].TourProducts.filter(x => x.AffectsCapacity).length > 0) {\r\n actionIncreaseQuantity(dispatch, reference.TourProductID, quantity, true, reference.MinimumTickets, reference.MaximumTickets);\r\n\r\n if (bkngType.AddChaperoneTickets && bkngType.ShowTourProductsBasedOnGroupSize)\r\n calculateChaperoneTickets();\r\n\r\n return;\r\n }\r\n }\r\n\r\n actionIncreaseQuantity(dispatch, reference.TourProductID, quantity, false, reference.MinimumTickets, reference.MaximumTickets);\r\n\r\n if (bkngType.AddChaperoneTickets && bkngType.ShowTourProductsBasedOnGroupSize)\r\n calculateChaperoneTickets();\r\n }\r\n\r\n const apiData = useSelector(state => state.reducerExtraItems.extraItem);\r\n const cartEvents = useSelector(state => state.reducerShopCart.events);\r\n const bookingTypes = useSelector(state => state.reducerBookingTypes.bookingTypes);\r\n const bkngType = bookingTypes && bookingTypes.length > 0 ? bookingTypes.filter(x => x.BookingTypeID == props.bookingtypeID)[0] : null;\r\n const shopcartreducer = useSelector(state => state.reducerShopCart);\r\n\r\n const calculateChaperoneTickets = () => {\r\n\r\n let TotalTickets = 0;\r\n\r\n if (apiData && apiData.TourProducts.filter(p => p.AffectsCapacity && p.TourProductID != bkngType.ChaperoneTourProductID).length > 0) {\r\n TotalTickets = apiData.TourProducts.filter(p => p.AffectsCapacity && p.TourProductID != bkngType.ChaperoneTourProductID\r\n ).reduce((a, b) => {\r\n let aqty = a.Quantity === undefined ? 0 : a.Quantity;\r\n let bqty = (b === undefined || b.Quantity === undefined) ? 0 : b.Quantity;\r\n let newobj = { Quantity: aqty + bqty }\r\n return newobj;\r\n }).Quantity;\r\n }\r\n\r\n let noOfChaperoneTickets =\r\n (TotalTickets !== 0 && bkngType.NumberOfTicketsRequiredPerChaperone !== 0) ? TotalTickets / bkngType.NumberOfTicketsRequiredPerChaperone : 0;\r\n\r\n noOfChaperoneTickets = noOfChaperoneTickets >= 1 ? noOfChaperoneTickets : 0;\r\n noOfChaperoneTickets = bkngType.RoundChaperoneTicketsUp ? Math.ceil(noOfChaperoneTickets) : Math.floor(noOfChaperoneTickets)\r\n\r\n actionIncreaseQuantity(dispatch, bkngType.ChaperoneTourProductID, noOfChaperoneTickets, false);\r\n\r\n }\r\n\r\n const CalculateMaxTickets = (TourProductID) => {\r\n let shopCartConsumed = 0;\r\n\r\n if (!props.isEditEvent)\r\n if (cartEvents && cartEvents.length > 0) {\r\n let cartTourEvent = cartEvents.find(x => x.TourEventID == apiData.TourEventID);\r\n if (cartTourEvent && cartTourEvent.TourProducts.length > 0) {\r\n shopCartConsumed = cartTourEvent.TourProducts.filter(p => p.AffectsCapacity).reduce((a, b) => {\r\n let aqty = a.Quantity === undefined ? 0 : a.Quantity;\r\n let bqty = b.Quantity === undefined ? 0 : b.Quantity;\r\n let newobj = { Quantity: aqty + bqty }\r\n return newobj;\r\n }).Quantity;\r\n }\r\n }\r\n\r\n let consumedQty = 0;\r\n if (apiData.TourProducts.filter(p => p.TourProductID != TourProductID && p.AffectsCapacity && p.TourProductID != bkngType.ChaperoneTourProductID).length > 0) {\r\n consumedQty = apiData.TourProducts.filter(p => p.TourProductID != TourProductID && p.AffectsCapacity\r\n && p.TourProductID != bkngType.ChaperoneTourProductID\r\n ).reduce((a, b) => {\r\n let aqty = a.Quantity === undefined ? 0 : a.Quantity;\r\n let bqty = (b === undefined || b.Quantity === undefined) ? 0 : b.Quantity;\r\n let newobj = { Quantity: aqty + bqty }\r\n return newobj;\r\n }).Quantity;\r\n }\r\n\r\n let MaximumTickets = genfunction.IsNotNullOrEmptyOrUndefined(props.groupSize) ? props.groupSize.toLowerCase().split(\" to \")[1] : bkngType.MaximumTickets;\r\n\r\n return bkngType !== undefined ? MaximumTickets - consumedQty - shopCartConsumed : 0;\r\n }\r\n\r\n const replaceEscapeCharacters = (item) => {\r\n var itemValue = item.split(\"\\\\r\\\\n\").join(\"
\");\r\n itemValue = itemValue.split(\"\\\\\").join(\"\");\r\n return itemValue;\r\n }\r\n\r\n useEffect(() => {\r\n\r\n if (props.isEditEvent && reducerAppLoader === false)\r\n reloadQuantity();\r\n\r\n }, [reducerAppLoader]);\r\n\r\n useEffect(() => {\r\n if (props.isMMB)\r\n actionGetExtraItem(dispatch, props.tourEventId, props.ismembershipapplied, props.membercostrate, props.isIDME, props.isIDMECostrate, props.organizationCostRate);\r\n\r\n }, [])\r\n\r\n const reloadQuantity = () => {\r\n\r\n if (cartEvents && cartEvents.length > 0 && cartEvents.find(x => x.TourEventID === props.tourEventId)) {\r\n let cartTourEvent = cartEvents.find(x => x.TourEventID === props.tourEventId);\r\n\r\n if (apiData.hasOwnProperty(\"TourProducts\")) {\r\n\r\n apiData.TourProducts.map(p => {\r\n if (cartTourEvent.TourProducts.filter(x => x.TourProductID === p.TourProductID).length > 0) {\r\n let pQty = cartTourEvent.TourProducts.filter(x => x.TourProductID === p.TourProductID)[0].Quantity;\r\n actionIncreaseQuantity(dispatch, p.TourProductID, pQty, true);\r\n\r\n }\r\n\r\n return p\r\n });\r\n }\r\n\r\n }\r\n }\r\n\r\n const errorcancelhandle = () => {\r\n seterrorMsg(\"\");\r\n }\r\n\r\n\r\n return (\r\n
\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n {apiData.hasOwnProperty(\"TourProducts\") ?\r\n apiData.TourProducts.map((product, i) => {\r\n\r\n return product.AffectsCapacity && product.AvailableOnline && product.TourProductID !== bkngType.ChaperoneTourProductID &&\r\n (genfunction.IsNotNullOrEmptyOrUndefined(props.groupSize) ? product.LimitDisplayOnGroupSize && product.GroupSize === props.groupSize : true)\r\n && product.PriceMatrix !== undefined && product.PriceMatrix.length > 0 ?\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {product.TourProductName + ' ' + genfunction.ccyFormat(product.PriceMatrix[0].Price)}\r\n \r\n\r\n \r\n {product.TourProductName + ' ' + genfunction.ccyFormat(product.PriceMatrix[0].Price)}\r\n \r\n\r\n \r\n {product.TourProductName + ' ' + genfunction.ccyFormat(product.PriceMatrix[0].Price)}\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n : null\r\n }) : null}\r\n\r\n \r\n\r\n {apiData.hasOwnProperty(\"TourProducts\") ?\r\n apiData.TourProducts.filter(x => x.AffectsCapacity == false && x.AvailableOnline == true && x.PriceMatrix !== undefined && x.PriceMatrix.length > 0\r\n && x.TourProductID !== bkngType.ChaperoneTourProductID).length > 0 ?\r\n\r\n {OtherExtraItemHeader}\r\n : null\r\n : null}\r\n\r\n \r\n {apiData.hasOwnProperty(\"TourProducts\") ?\r\n apiData.TourProducts.map(product => {\r\n\r\n return product.AffectsCapacity == false && product.AvailableOnline && product.PriceMatrix !== undefined && product.PriceMatrix.length > 0\r\n && product.TourProductID !== bkngType.ChaperoneTourProductID ?\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {product.TourProductName + ' ' + genfunction.ccyFormat(product.PriceMatrix[0].Price)}\r\n \r\n\r\n \r\n {product.TourProductName + ' ' + genfunction.ccyFormat(product.PriceMatrix[0].Price)}\r\n \r\n\r\n \r\n {product.TourProductName + ' ' + genfunction.ccyFormat(product.PriceMatrix[0].Price)}\r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n : null\r\n }) : null}\r\n\r\n \r\n\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default ExtraItemsProducts;\r\n\r\n\r\nfunction ShowStartAndEndTime(bkngType, apiData) {\r\n let time = \"\";\r\n\r\n if (bkngType) {\r\n\r\n if (bkngType.ShowStartTime) {\r\n time += genfunction.GetEventDateReceiptFormat(apiData.EventStartDateTime);\r\n }\r\n\r\n if (bkngType.ShowEndTime && !bkngType.ShowStartTime) {\r\n time += genfunction.GetEventDateReceiptFormat(apiData.EventStartDateTime);\r\n }\r\n\r\n if (bkngType.ShowEndTime && bkngType.ShowStartTime) {\r\n time += ' - ' + genfunction.AppendEndTime(apiData.EventEndDateTime);\r\n }\r\n\r\n if (!bkngType.ShowStartTime && !bkngType.ShowEndTime) {\r\n time += genfunction.GetEventDateReceiptFormatwithoutTime(apiData.EventStartDateTime);\r\n }\r\n }\r\n\r\n return time;\r\n}\r\n\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { UDFText, UDFCheckBox, UDFDateTime, UDFNumber, UDFSelect } from '../InputControls'\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\r\n}));\r\n\r\nconst UDFDataField = (props) => {\r\n\r\n const GetDataField = (type, UDF, props) => {\r\n\r\n switch (type) {\r\n case \"Text\": {\r\n if (UDF.Picklist && UDF.Picklist.length > 0) {\r\n return \r\n }\r\n return \r\n }\r\n case \"Bit\": {\r\n return \r\n }\r\n case \"Date\": {\r\n return \r\n }\r\n case \"Decimal\": {\r\n return \r\n }\r\n case \"Picklist\": {\r\n return \r\n }\r\n }\r\n }\r\n\r\n return (\r\n GetDataField(props.udf.UDFType, props.udf, props)\r\n );\r\n};\r\n\r\nexport default UDFDataField;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { Button, Card, CardHeader, CardContent, Paper, Typography, Grid, Hidden } from '@material-ui/core';\r\nimport UDFDataField from '../../components/CalendarControls/UDFDataField';\r\nimport { actionAddUDFToTourEvent, actionUpdateUDF } from 'actions';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n padding: \"7px 0px 7px 25px\"\r\n },\r\n hidetopheader: {\r\n display: 'none'\r\n }\r\n}));\r\n\r\nconst BookingUDFields = (props) => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const bookingUDFS = useSelector(state => state.reducerBookingUserDefinedFields).bookingUDFs;\r\n\r\n useEffect(() => {\r\n\r\n if (bookingUDFS && bookingUDFS.length > 0\r\n && bookingUDFS.filter(x => x.BookingTypeID === props.bookingtypeID).length > 0) {\r\n\r\n if (bookingUDFS.filter(x => x.BookingTypeID === props.bookingtypeID)[0].UDFCategories.length > 0) {\r\n\r\n bookingUDFS.filter(x => x.BookingTypeID === props.bookingtypeID)[0].UDFCategories.map((bookingUdfCategory, i) => {\r\n\r\n if (bookingUdfCategory.UserDefinedFields.filter(x => x.toureventID === props.toureventID).length < 1) {\r\n actionAddUDFToTourEvent(dispatch, props.bookingtypeID, props.toureventID);\r\n }\r\n });\r\n }\r\n }\r\n\r\n }, []);\r\n\r\n const onChangeHandler = (event, bookingID, categoryName, udfID) => {\r\n let udfValue = '';\r\n if (event.target.type != undefined && event.target.type == \"checkbox\")\r\n udfValue = event.target.checked;\r\n else\r\n udfValue = event.target.value;\r\n actionUpdateUDF(dispatch, bookingID, props.toureventID, categoryName, udfID, udfValue);\r\n }\r\n\r\n return (\r\n
\r\n\r\n {bookingUDFS.length > 0 && bookingUDFS.filter(x => x.BookingTypeID === props.bookingtypeID).length > 0 ?\r\n bookingUDFS.filter(x => x.BookingTypeID === props.bookingtypeID)[0].UDFCategories != null &&\r\n bookingUDFS.filter(x => x.BookingTypeID === props.bookingtypeID)[0].UDFCategories.map((bookingUdfCategory, i) => (\r\n \r\n \r\n \r\n {bookingUdfCategory.UserDefinedFields.filter(x => x.toureventID === props.toureventID).map((udfs) => (\r\n <>\r\n \r\n {udfs.UDFDescription} {udfs.IsRequired ? '(required)' : ''}\r\n \r\n \r\n\r\n \r\n ))}\r\n \r\n\r\n \r\n )) : null}\r\n\r\n
\r\n );\r\n}\r\n\r\nexport default BookingUDFields;\r\n\r\n\r\n\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Typography, Grid, Card, CardHeader, CardContent, Hidden } from '@material-ui/core';\r\nimport { useSelector } from 'react-redux';\r\nimport { genfunction } from 'helpers';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport { NumberSpinner } from 'components/InputControls';\r\n\r\nconst { ChaperoneHeading } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n padding: \"7px 0px 7px 25px\"\r\n },\r\n box100per: {\r\n width: \"100%\"\r\n }\r\n}));\r\n\r\nconst Chaperone = (props) => {\r\n const classes = useStyles();\r\n\r\n const bookingTypes = useSelector(state => state.reducerBookingTypes.bookingTypes);\r\n const bkngType = bookingTypes.filter(x => x.BookingTypeID == props.bookingtypeID)[0];\r\n const apiData = useSelector(state => state.reducerExtraItems.extraItem);\r\n\r\n const productPrice = (priceMatrix) => {\r\n\r\n return priceMatrix !== undefined && priceMatrix.length > 0 ?\r\n genfunction.ccyFormat(priceMatrix[0].Price) : genfunction.ccyFormat(0);\r\n }\r\n\r\n return (\r\n
\r\n\r\n {apiData.hasOwnProperty(\"TourProducts\") && apiData.TourProducts.filter(x => x.TourProductID === bkngType.ChaperoneTourProductID).length > 0 ?\r\n \r\n \r\n\r\n \r\n\r\n \r\n {apiData.TourProducts.filter(x => x.TourProductID === bkngType.ChaperoneTourProductID).map((product, i) => {\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {product.TourProductName + ' ' + productPrice(product.PriceMatrix)}\r\n \r\n\r\n \r\n {product.TourProductName + ' ' + productPrice(product.PriceMatrix)}\r\n \r\n\r\n \r\n {product.TourProductName + ' ' + productPrice(product.PriceMatrix)}\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n )\r\n })}\r\n \r\n\r\n \r\n \r\n : null}\r\n\r\n
\r\n )\r\n}\r\n\r\nexport default Chaperone","import React, { useEffect, useState, forwardRef, useImperativeHandle } from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { CardContent, FormControlLabel, CardHeader, Card, RadioGroup, Radio, Grid, FormHelperText } from '@material-ui/core'\r\nimport { genfunction } from 'helpers';\r\nimport { useSelector } from 'react-redux';\r\nimport { FormattedInputs } from 'components/InputControls';\r\n\r\nconst { CouponRemoveMsg } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n padding: \"7px 0px 7px 25px\"\r\n },\r\n box100per: {\r\n width: \"100%\"\r\n },\r\n reverseOrder: {\r\n display: 'flex',\r\n flexDirection: 'column-reverse'\r\n }\r\n\r\n}));\r\n\r\nconst PaymentSelection = forwardRef((props, ref) => {\r\n\r\n const classes = useStyles();\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n const [minDeposit, setMinDeposit] = useState(0);\r\n const [otherAmount, setOtherAmount] = useState('');\r\n\r\n const bookingTypes = useSelector(state => state.reducerBookingTypes.bookingTypes);\r\n const bkngType = bookingTypes && bookingTypes.length > 0 ? bookingTypes.filter(x => x.BookingTypeID == props.bookingtypeID)[0] : null;\r\n const apiData = useSelector(state => state.reducerExtraItems.extraItem);\r\n const reducerAppLoader = useSelector(state => state.reducerAppLoader.loading);\r\n const cartEvents = useSelector(state => state.reducerShopCart.events);\r\n\r\n const calculateMinimumDeposit = () => {\r\n\r\n // let MinDeposit = 0;\r\n\r\n // if (apiData && apiData.hasOwnProperty(\"TourProducts\") && apiData.TourEventID === props.toureventID && apiData.TourProducts.filter(x => x.Quantity !== 0 && x.TourProductID !== bkngType.ChaperoneTourProductID).length > 0)\r\n // apiData.TourProducts.filter(x => x.Quantity !== 0 && apiData.TourEventID === props.toureventID && x.TourProductID !== bkngType.ChaperoneTourProductID).map((product) => {\r\n // MinDeposit += (product.MinDepositPercent * product.ProductTotalAmount) / 100;\r\n // })\r\n\r\n // setMinDeposit(MinDeposit);\r\n // return MinDeposit;\r\n\r\n let minDeposit = genfunction.MinimumDepositCalculation(apiData, props.toureventID, bkngType.ChaperoneTourProductID);\r\n setMinDeposit(minDeposit);\r\n return minDeposit;\r\n }\r\n\r\n useEffect(() => {\r\n\r\n calculateMinimumDeposit();\r\n\r\n if (props.isEditEvent) {\r\n handleChange(props.paymentOption);\r\n }\r\n\r\n else {\r\n bkngType.DefaultToFullPayment ?\r\n props.onChangePaymentOption(\"FullPay\", apiData.TotalAmount ? apiData.TotalAmount : 0) :\r\n props.onChangePaymentOption(\"MinimumPay\", calculateMinimumDeposit())\r\n\r\n }\r\n\r\n }, [apiData]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (props.isEditEvent && reducerAppLoader === false)\r\n reloadPaymentSelected();\r\n\r\n }, [reducerAppLoader]);\r\n\r\n\r\n const reloadPaymentSelected = () => {\r\n\r\n if (cartEvents && cartEvents.length > 0 && cartEvents.find(x => x.TourEventID === props.toureventID)) {\r\n let cartTourEvent = cartEvents.find(x => x.TourEventID === props.toureventID);\r\n\r\n if (cartTourEvent && cartTourEvent.hasOwnProperty(\"PaymentOption\")) {\r\n\r\n if (cartTourEvent.PaymentOption === \"OtherPay\")\r\n setOtherAmount(cartTourEvent.TotalSelectedAmount);\r\n\r\n props.onChangePaymentOption(cartTourEvent.PaymentOption, cartTourEvent.TotalSelectedAmount);\r\n }\r\n\r\n }\r\n }\r\n\r\n useImperativeHandle(ref, () => ({\r\n validateAmountSelected() {\r\n if (props.amountSelected === \"\" || parseFloat(props.amountSelected) < minDeposit || parseFloat(props.amountSelected) > (apiData.TotalAmount ? apiData.TotalAmount : 0)) {\r\n Validated(false)\r\n return false;\r\n }\r\n else\r\n return true;\r\n }\r\n }));\r\n\r\n const handleOtherPrice = (event) => {\r\n setOtherAmount(event.target.value);\r\n props.onChangePaymentOption(\"OtherPay\", event.target.value);\r\n }\r\n\r\n const Validated = (val) => {\r\n if (val)\r\n seterrorMsg('');\r\n else\r\n seterrorMsg(\"Please enter valid amount\");\r\n }\r\n\r\n const checkIsRemoveCoupon = (value) => {\r\n\r\n if (cartEvents && cartEvents.length > 0 && cartEvents.find(x => x.TourEventID === props.toureventID)) {\r\n let cartTourEvent = cartEvents.find(x => x.TourEventID === props.toureventID);\r\n\r\n if (cartTourEvent && cartTourEvent.hasOwnProperty(\"PaymentOption\")) {\r\n\r\n if (cartTourEvent.PaymentOption !== value && value === \"OtherPay\" && cartTourEvent.CouponItems.length > 0) {\r\n seterrorMsg(CouponRemoveMsg)\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n const handleChange = (value) => {\r\n\r\n if (props.isEditEvent) {\r\n checkIsRemoveCoupon(value);\r\n }\r\n\r\n if (value === \"FullPay\") {\r\n seterrorMsg('');\r\n setOtherAmount('');\r\n props.onChangePaymentOption(value, apiData.TotalAmount ? apiData.TotalAmount : 0);\r\n\r\n }\r\n else if (value === \"MinimumPay\") {\r\n seterrorMsg('');\r\n setOtherAmount('');\r\n props.onChangePaymentOption(value, calculateMinimumDeposit());\r\n\r\n }\r\n else if (value === \"OtherPay\") {\r\n props.onChangePaymentOption(value, otherAmount)\r\n\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n\r\n handleChange(value)}>\r\n\r\n \r\n\r\n } label={\"Full Payment - \" + genfunction.ccyFormat(apiData.TotalAmount ? apiData.TotalAmount : 0)} />\r\n } label={\"Minimum Payment - \" + genfunction.ccyFormat(minDeposit)} />\r\n\r\n \r\n {bkngType.AllowFlexiblePayment ?\r\n \r\n \r\n\r\n } style={{ whiteSpace: \"pre-line\" }}\r\n label={\"Other Amount
Min (\".split(\"
\").join(\"\\n\") + genfunction.ccyFormat(minDeposit) + \")\"}\r\n />\r\n\r\n
\r\n\r\n \r\n\r\n \r\n\r\n {errorMsg}\r\n\r\n \r\n
\r\n : null}\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n )\r\n})\r\n\r\nexport default PaymentSelection","import React, { useEffect, useState, useRef } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Card, CardHeader, CardContent, Paper, Typography, Grid, Link } from '@material-ui/core';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { actionGetExtraItem, actionGetExtraItemAfterMembership } from 'actions';\r\nimport { actionShopCartAddEventWithTourHold, actionShopCartResetError, actionSetAddToCart } from 'actions';\r\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\r\nimport { genfunction } from '../../helpers';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport ErrorHandling from '../ErrorHandling/ErrorHandling';\r\nimport ExtraItemsProducts from 'components/CalendarControls/ExtraItemsProducts';\r\nimport BookingUDFields from 'components/CalendarControls/BookingUDFields';\r\nimport Chaperone from './Chaperone';\r\nimport PaymentSelection from './PaymentSelection';\r\nimport { actionStartAppLoader, actionEndAppLoader } from 'actions';\r\n\r\n\r\nconst { DisplayBookingTypeInfoCharacters, OrderItemsInCartError, PurchaseAsOrganizationButton, InvalidGroupSizeMsg } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n arrowBtn: {\r\n float: 'left',\r\n marginLeft: '10px',\r\n marginTop: '3px'\r\n },\r\n BookingInfoCls: {\r\n paddingTop: '5px',\r\n paddingLeft: '16px',\r\n paddingRight: '16px',\r\n textAlign: 'justify'\r\n },\r\n readmoreBtn: {\r\n margin: 'auto',\r\n marginBottom: '10px',\r\n // marginTop: '5px'\r\n }\r\n}));\r\n\r\nconst ExtraItemDrawer = (props) => {\r\n const classes = useStyles();\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n const [isredirectclicked, setisredirectclicked] = useState(false);\r\n const ref = useRef();\r\n\r\n const dispatch = useDispatch();\r\n const shopCartError = useSelector(state => state.reducerShopCart.error);\r\n const orderProducts = useSelector(state => state.reducerShopCart.orderProducts);\r\n const apiData = useSelector(state => state.reducerExtraItems.extraItem);\r\n const tourEvents = useSelector(state => state.reducerExtraItems.extramItems);\r\n const isAddToCart = useSelector(state => state.reducerExtraItems.isAddToCart);\r\n const cartEvents = useSelector(state => state.reducerShopCart.events);\r\n const bookingTypes = useSelector(state => state.reducerBookingTypes.bookingTypes);\r\n const bkngType = bookingTypes.filter(x => x.BookingTypeID == props.bookingtypeID)[0];\r\n const [showMoreInfo, setShowMoreInfo] = useState(false);\r\n const [readmorebtnText, setreadmorebtnText] = useState('Read More');\r\n const bookingUDFS = useSelector(state => state.reducerBookingUserDefinedFields);\r\n const organizationList = useSelector(state => state.reducerOrganizationSection.organizationlist);\r\n const [saveBtn, setsaveBtn] = React.useState(false);\r\n\r\n const [state, setState] = useState({\r\n paymentOption: \"\",\r\n amountSelected: 0,\r\n\r\n });\r\n\r\n useEffect(() => {\r\n\r\n if (isredirectclicked) {\r\n if (shopCartError.length < 1) {\r\n props.callCheckout();\r\n }\r\n if (shopCartError.length > 0) {\r\n seterrorMsg(shopCartError);\r\n setisredirectclicked(false);\r\n }\r\n }\r\n\r\n }, [shopCartError, cartEvents]);\r\n\r\n useEffect(() => {\r\n\r\n if (props.isEditEvent)\r\n actionSetAddToCart(dispatch);\r\n\r\n }, [isAddToCart, apiData])\r\n\r\n const onChangePaymentOption = (paymentOptionSelected, paymentAmountSelected) => {\r\n setState({ ...state, amountSelected: genfunction.IsNotNullOrEmptyOrUndefined(paymentAmountSelected) ? parseFloat(paymentAmountSelected) : 0, paymentOption: paymentOptionSelected });\r\n }\r\n\r\n\r\n const redirectCall = () => {\r\n\r\n if (orderProducts && orderProducts.length > 0) {\r\n seterrorMsg(OrderItemsInCartError);\r\n return;\r\n }\r\n\r\n if (ValidateBookingRequiredFields() && (genfunction.IsNotNullOrEmptyOrUndefined(props.groupSize) ? ValidateGroupQuanity() : ValidateQuanity())\r\n && (genfunction.IsShowPartPaymentSelection(apiData, bkngType, props.groupSize) ? ref.current.validateAmountSelected() : true)) {\r\n\r\n setisredirectclicked(true);\r\n\r\n setsaveBtn(true);\r\n\r\n setTimeout(() => {\r\n setsaveBtn(false);\r\n }, 1000)\r\n\r\n let filterdata = { ...apiData };\r\n filterdata.TourProducts = filterdata.TourProducts.filter(product => product.Quantity > 0);\r\n let cartdata = [...cartEvents];\r\n\r\n if (filterdata && filterdata.hasOwnProperty('BookingTypeID')) {\r\n let usealternamteMerchant = false;\r\n if (bkngType && bkngType.hasOwnProperty('UseAlternateMerchantOnline')) {\r\n usealternamteMerchant = bkngType.UseAlternateMerchantOnline;\r\n }\r\n\r\n filterdata.UseAlternateMerchantOnline = usealternamteMerchant;\r\n\r\n }\r\n actionShopCartAddEventWithTourHold(dispatch, filterdata, cartdata, props.organizationID, props.groupSize, state.paymentOption, state.amountSelected, props.isEditEvent);\r\n //props.callCheckout();\r\n }\r\n }\r\n\r\n\r\n const ValidateQuanity = () => {\r\n let MinTicket = bkngType.MinimumTickets\r\n let MaxTicket = bkngType.MaximumTickets;\r\n\r\n let CartQty = 0;\r\n let NewQty = 0;\r\n let TotalTicketCount = 0;\r\n let SeatsAvailable = tourEvents.filter(x => x.TourEventID === props.tourEventId)[0].SeatsAvailable;\r\n\r\n if (cartEvents && cartEvents.length > 0) {\r\n\r\n let cartTourEvent = cartEvents.find(x => x.TourEventID == apiData.TourEventID);\r\n if (cartTourEvent && cartTourEvent.TourProducts.length > 0) {\r\n CartQty = cartTourEvent.TourProducts.filter(p => p.AffectsCapacity).reduce((a, b) => {\r\n let aqty = a.Quantity === undefined ? 0 : a.Quantity;\r\n let bqty = b.Quantity === undefined ? 0 : b.Quantity;\r\n let newobj = { Quantity: aqty + bqty }\r\n return newobj;\r\n }).Quantity;\r\n }\r\n }\r\n\r\n NewQty = apiData.TourProducts.filter(p => p.AffectsCapacity).reduce((a, b) => {\r\n let aqty = a.Quantity === undefined ? 0 : a.Quantity;\r\n let bqty = b.Quantity === undefined ? 0 : b.Quantity;\r\n let newobj = { Quantity: aqty + bqty }\r\n return newobj;\r\n }).Quantity;\r\n\r\n TotalTicketCount = props.isEditEvent ? NewQty : CartQty + NewQty;\r\n\r\n SeatsAvailable = props.isEditEvent ? CartQty + SeatsAvailable : SeatsAvailable;\r\n\r\n if (SeatsAvailable == 0 || apiData.BookNowOption != \"Book Now\" && !props.isEditEvent) {\r\n seterrorMsg(\"Tickets no longer available, please choose another time\");\r\n return false;\r\n }\r\n else if (NewQty > SeatsAvailable) {\r\n seterrorMsg(\"Maximum of \" + SeatsAvailable + \" tickets available\");\r\n return false;\r\n }\r\n else if (TotalTicketCount < MinTicket) {\r\n seterrorMsg(\"Minimum tickets per order is \" + MinTicket)\r\n return false;\r\n }\r\n else if (TotalTicketCount > MaxTicket) {\r\n seterrorMsg(\"Maximum of \" + MaxTicket + \" tickets allowed\")\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n const ValidateGroupQuanity = () => {\r\n const groupTicket = props.groupSize.toLowerCase().split(\" to \");\r\n\r\n let MinTicket = groupTicket[0];\r\n let MaxTicket = groupTicket[1];\r\n\r\n let CartQty = 0;\r\n let NewQty = 0;\r\n let TotalTicketCount = 0;\r\n let ChaperoneQty = 0;\r\n let SeatsAvailable = 0;\r\n\r\n if (cartEvents && cartEvents.length > 0) {\r\n\r\n let cartTourEvent = cartEvents.find(x => x.TourEventID == apiData.TourEventID);\r\n if (cartTourEvent && cartTourEvent.TourProducts.length > 0) {\r\n CartQty = cartTourEvent.TourProducts.filter(p => p.AffectsCapacity).reduce((a, b) => {\r\n let aqty = a.Quantity === undefined ? 0 : a.Quantity;\r\n let bqty = b.Quantity === undefined ? 0 : b.Quantity;\r\n let newobj = { Quantity: aqty + bqty }\r\n return newobj;\r\n }).Quantity;\r\n }\r\n }\r\n\r\n NewQty = apiData.TourProducts.filter(p => p.AffectsCapacity\r\n && p.TourProductID != bkngType.ChaperoneTourProductID).reduce((a, b) => {\r\n let aqty = a.Quantity === undefined ? 0 : a.Quantity;\r\n let bqty = b.Quantity === undefined ? 0 : b.Quantity;\r\n let newobj = { Quantity: aqty + bqty }\r\n return newobj;\r\n }).Quantity;\r\n\r\n\r\n let chaperoneTourProduct = apiData.TourProducts.filter(p => p.AffectsCapacity && p.TourProductID === bkngType.ChaperoneTourProductID);\r\n if (chaperoneTourProduct && chaperoneTourProduct.length > 0) {\r\n\r\n ChaperoneQty = apiData.TourProducts.filter(p => p.AffectsCapacity && p.TourProductID === bkngType.ChaperoneTourProductID)[0].Quantity;\r\n }\r\n\r\n TotalTicketCount = NewQty + ChaperoneQty;\r\n\r\n SeatsAvailable = props.isEditEvent ? CartQty + apiData.SeatsAvailable : apiData.SeatsAvailable;\r\n\r\n if (NewQty < MinTicket || NewQty > MaxTicket) {\r\n seterrorMsg(InvalidGroupSizeMsg + props.groupSize)\r\n return false;\r\n }\r\n\r\n else if (TotalTicketCount > SeatsAvailable) {\r\n seterrorMsg(\"Maximum of \" + SeatsAvailable + \" tickets available\");\r\n return false;\r\n }\r\n else if (SeatsAvailable == 0 || (apiData.BookNowOption != \"Book Now\" && !props.isEditEvent)) {\r\n seterrorMsg(\"Tickets no longer available, please choose another time\");\r\n return false;\r\n }\r\n\r\n else\r\n return true;\r\n }\r\n\r\n\r\n const ShowMoreInfoClick = () => {\r\n\r\n if (readmorebtnText === 'Read More') {\r\n setShowMoreInfo(true);\r\n setreadmorebtnText('Read Less');\r\n }\r\n else {\r\n setShowMoreInfo(false);\r\n setreadmorebtnText('Read More');\r\n }\r\n }\r\n\r\n\r\n const replaceEscapeCharacters = (item) => {\r\n var itemValue = item.split(\"\\\\r\\\\n\").join(\"
\");\r\n itemValue = itemValue.split(\"\\\\\").join(\"\");\r\n return itemValue;\r\n }\r\n\r\n useEffect(() => {\r\n\r\n if (tourEvents && tourEvents.length > 0 && tourEvents !== 'nocontent' && tourEvents.find(x => x.TourEventID === props.tourEventId)) {\r\n let organizationCostRate = genfunction.IsNotNullOrEmptyOrUndefined(props.organizationID) && organizationList.length > 0 ? organizationList.filter(x => x.CustomerID === props.organizationID)[0].CostRateID : \"\";\r\n\r\n if (!props.isEditEvent || (!props.isContinueToExtraItemDrawer && apiData.TourEventID !== props.tourEventId)) {\r\n actionGetExtraItem(dispatch, props.tourEventId, props.ismembershipapplied, props.membercostrate, props.isIDME, props.isIDMECostrate, organizationCostRate)\r\n }\r\n else if (props.isEditEvent && !props.isContinueToExtraItemDrawer && (props.ismembershipapplied || props.isIDME)) {\r\n actionGetExtraItemAfterMembership(dispatch, apiData, props.tourEventId, props.ismembershipapplied, props.membercostrate, props.isIDME, props.isIDMECostrate, organizationCostRate)\r\n }\r\n }\r\n\r\n }, [tourEvents]);\r\n\r\n useEffect(() => {\r\n\r\n if (apiData && apiData.TourEventID !== props.tourEventId)\r\n actionStartAppLoader(dispatch);\r\n\r\n else\r\n actionEndAppLoader(dispatch);\r\n }, [apiData])\r\n\r\n\r\n const errorcancelhandle = () => {\r\n seterrorMsg(\"\");\r\n actionShopCartResetError(dispatch);\r\n }\r\n\r\n const GetBookingInfo = (bookingInfo) => {\r\n\r\n if (showMoreInfo) {\r\n return bookingInfo.substring(0, bookingInfo.length - 1);\r\n }\r\n\r\n return bookingInfo.substring(0, DisplayBookingTypeInfoCharacters);\r\n }\r\n\r\n\r\n const ValidateBookingRequiredFields = () => {\r\n let validate = true;\r\n\r\n if (bookingUDFS.bookingUDFs.length > 0 && bookingUDFS.bookingUDFs.filter(x => x.BookingTypeID === props.bookingtypeID).length > 0) {\r\n let booking = bookingUDFS.bookingUDFs.filter(x => x.BookingTypeID == props.bookingtypeID)[0];\r\n\r\n if (booking.UDFCategories && booking.UDFCategories.length > 0) {\r\n booking.UDFCategories.map(udfCategories => {\r\n\r\n let udfCat = { ...udfCategories };\r\n\r\n if (udfCat.UserDefinedFields && udfCat.UserDefinedFields.length > 0 && validate) {\r\n udfCat.UserDefinedFields.filter(x => x.toureventID > 0).map(UDF => {\r\n\r\n if (UDF.IsRequired && UDF.hasOwnProperty('Value') && validate) {\r\n\r\n if ((UDF.UDFType === \"Text\" || UDF.UDFType === \"Decimal\" || UDF.UDFType === \"Date\") && UDF.Value.length < 1) {\r\n validate = false;\r\n seterrorMsg('Please fill all required UDFs.');\r\n }\r\n else if (UDF.UDFType === \"Bit\" && (UDF.Value === false || UDF.Value.length < 1)) {\r\n validate = false;\r\n seterrorMsg('Please fill all required UDFs.');\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n return validate;\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {window.matchMedia(\"(min-width: 600px)\").matches ? \"\" : { props.toggleDrawer(\"right\", false) }} />}\r\n {apiData.hasOwnProperty(\"EventName\") ? apiData.EventName : null}\r\n \r\n \r\n \r\n {bkngType !== undefined && bkngType.hasOwnProperty(\"BookingTypeInfo\") ? ReactHtmlParser(replaceEscapeCharacters(GetBookingInfo(bkngType.BookingTypeInfo ? bkngType.BookingTypeInfo : \"\"))) : null}\r\n \r\n\r\n\r\n ShowMoreInfoClick()}\r\n style={{ display: bkngType.BookingTypeInfo && bkngType.BookingTypeInfo.length < DisplayBookingTypeInfoCharacters ? 'none' : 'block' }}\r\n >\r\n {readmorebtnText}\r\n \r\n\r\n \r\n {bkngType.AllowedCustomerTypes === 'All' && !bkngType.ShowTourProductsBasedOnGroupSize && !genfunction.IsNotNullOrEmptyOrUndefined(props.organizationID) ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n \r\n\r\n \r\n\r\n \r\n\r\n {bkngType.AddChaperoneTickets && bkngType.ShowTourProductsBasedOnGroupSize ? : null}\r\n\r\n \r\n\r\n {genfunction.IsShowPartPaymentSelection(apiData, bkngType, props.groupSize) ? : null}\r\n\r\n \r\n\r\n \r\n\r\n \r\n Tax = {genfunction.ccyFormat(apiData.TaxAmount ? apiData.TaxAmount : 0)}\r\n \r\n\r\n \r\n Total = {genfunction.ccyFormat(apiData.TotalAmount ? apiData.TotalAmount : 0)}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default ExtraItemDrawer;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Card, CardHeader, CardContent, Typography, Grid, TextField, Radio, FormControlLabel, RadioGroup } from '@material-ui/core';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport { genfunction } from 'helpers';\r\nimport ErrorHandling from '../ErrorHandling/ErrorHandling';\r\nimport { Autocomplete } from '@material-ui/lab';\r\nimport { actionGetOrganizationSection, actionResetOrganizationSection } from 'actions/actionOrganizationSection';\r\nimport { actionStartAppLoader, actionEndAppLoader } from '../../actions/actionAppLoader';\r\n\r\nconst { OrganizationNameHeader, OrganizationInstructionText, OrganizationChangePopupMsg, PurchaseOrganizationBookingNotAllowedForMembership } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\r\n box100per: {\r\n width: \"100%\"\r\n },\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n OrganizationInfoCls: {\r\n padding: '16px',\r\n textAlign: 'justify'\r\n },\r\n\r\n}));\r\n\r\nconst OrganizationSection = (props) => {\r\n const classes = useStyles();\r\n\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n const [colorState, setColorState] = React.useState('');\r\n const dispatch = useDispatch();\r\n\r\n const reducerOrganizationSection = useSelector(state => state.reducerOrganizationSection);\r\n const bookingTypes = useSelector(state => state.reducerBookingTypes.bookingTypes);\r\n const bkngType = bookingTypes && bookingTypes.length > 0 ? bookingTypes.filter(x => x.BookingTypeID == props.bookingtypeID)[0] : null;\r\n const cartEvents = useSelector(state => state.reducerShopCart.events);\r\n const membershipPackages = useSelector(state => state.reducerShopCart.MembershipPackages);\r\n\r\n useEffect(() => {\r\n\r\n if (reducerOrganizationSection.organizationlisterror !== undefined && reducerOrganizationSection.organizationlisterror.length > 0) {\r\n seterrorMsg(reducerOrganizationSection.organizationlisterror);\r\n }\r\n }, [reducerOrganizationSection.organizationlisterror]);\r\n\r\n useEffect(() => {\r\n if (reducerOrganizationSection.loading)\r\n actionStartAppLoader(dispatch)\r\n else\r\n actionEndAppLoader(dispatch);\r\n }, [reducerOrganizationSection.loading]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n\r\n if (bkngType.RestrictCompanyListByCostRate) {\r\n let costRateList = Object.keys(bkngType.AllowedCostRateIDs).map(function (k) { return bkngType.AllowedCostRateIDs[k].CostRateID }).join(\",\");\r\n actionGetOrganizationSection(dispatch, costRateList.toString());\r\n\r\n }\r\n else\r\n actionResetOrganizationSection(dispatch);\r\n\r\n if (genfunction.IsNotNullOrEmptyOrUndefined(props.organizationID))\r\n handleChange(\"Organization\");\r\n\r\n\r\n }, [])\r\n\r\n const errorcancelhandle = () => {\r\n if (reducerOrganizationSection.organizationlisterror.length > 0)\r\n actionResetOrganizationSection(dispatch)\r\n\r\n seterrorMsg(\"\");\r\n }\r\n\r\n const handleChange = (value) => {\r\n\r\n if (value === \"Organization\")\r\n props.handleChange(true)\r\n\r\n else {\r\n props.handleChange(false);\r\n props.onChange(null);\r\n }\r\n\r\n }\r\n\r\n const validateChangeOrganization = (event, value) => {\r\n\r\n if (membershipPackages && membershipPackages.length > 0) {\r\n setColorState('info');\r\n seterrorMsg(PurchaseOrganizationBookingNotAllowedForMembership);\r\n }\r\n else if (genfunction.IsOrganization(cartEvents)) {\r\n\r\n let indexOrg = cartEvents.findIndex(x => x.OrganizationID !== \"\" && x.TourEventID !== props.tourEventId);\r\n\r\n if (indexOrg >= 0 && value && cartEvents[indexOrg].OrganizationID !== value.CustomerID)\r\n seterrorMsg(OrganizationChangePopupMsg);\r\n else\r\n props.onChange(value);\r\n }\r\n\r\n else\r\n props.onChange(value);\r\n }\r\n\r\n return (\r\n
\r\n \r\n\r\n \r\n \r\n\r\n \r\n {bkngType.AllowedCustomerTypes === \"All\" && bkngType.ShowTourProductsBasedOnGroupSize ?\r\n\r\n \r\n \r\n \r\n handleChange(value)}\r\n >\r\n\r\n } label=\"Purchase as an Individual\" />\r\n } label=\"Purchase as an Organization\" />\r\n \r\n \r\n \r\n\r\n \r\n : null\r\n }\r\n {props.showOrganization || bkngType.RequireCompanyName || (!bkngType.ShowTourProductsBasedOnGroupSize && props.isContinueToGroupDrawer) ?\r\n\r\n \r\n\r\n \r\n \r\n {reducerOrganizationSection.organizationlist && reducerOrganizationSection.organizationlist.length > 0 ?\r\n {\r\n if (option.hasOwnProperty('CustomerName')) {\r\n return option.CustomerName;\r\n }\r\n\r\n return option.toString();\r\n }}\r\n value={genfunction.IsNotNullOrEmptyOrUndefined(props.organizationID) ?\r\n reducerOrganizationSection.organizationlist.filter(x => x.CustomerID === props.organizationID)[0] : \"\"}\r\n\r\n style={{ width: \"100%\" }}\r\n renderInput={(params) => }\r\n\r\n >\r\n\r\n : \"\"}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {ReactHtmlParser(genfunction.replaceEscapeCharacters(OrganizationInstructionText))}\r\n \r\n \r\n \r\n \r\n : null}\r\n\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default OrganizationSection;\r\n\r\n\r\n","import React, { useState } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Card, CardHeader, CardContent, Typography, Grid, TextField } from '@material-ui/core';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport { genfunction } from 'helpers';\r\nimport { Autocomplete } from '@material-ui/lab';\r\nimport { DialogeBox } from 'components/DialogeBox';\r\nimport { actionShopCartRemoveSingleTourWithTourHold } from 'actions';\r\n\r\nconst { GroupSizeHeader, GroupSizeChangePopupMsg, ClearCartEventPopupButton1Text, ClearCartEventPopupButton2Text } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\r\n box100per: {\r\n width: \"100%\"\r\n },\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n GroupInfoCls: {\r\n padding: '16px',\r\n textAlign: 'justify'\r\n }\r\n}));\r\n\r\nconst GroupSizeSection = (props) => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const [clearCartPopUp, setClearCartPopUp] = useState(false);\r\n\r\n\r\n const bookingTypes = useSelector(state => state.reducerBookingTypes.bookingTypes);\r\n const bkngType = bookingTypes && bookingTypes.length > 0 ? bookingTypes.filter(x => x.BookingTypeID == props.bookingtypeID)[0] : null;\r\n const cartEvents = useSelector(state => state.reducerShopCart.events);\r\n\r\n const validateChangeGroupSize = (event, value) => {\r\n\r\n if (props.isEditEvent && cartEvents && cartEvents.length > 0 && cartEvents.find(x => x.TourEventID == props.tourEventId)) {\r\n let cartTourEvent = cartEvents.find(x => x.TourEventID == props.tourEventId);\r\n\r\n if (value && cartTourEvent.GroupSize !== value.GroupSize)\r\n setClearCartPopUp(true);\r\n else\r\n props.onChange(value);\r\n }\r\n\r\n else\r\n props.onChange(value);\r\n }\r\n\r\n const continueButtonHandler = () => {\r\n setClearCartPopUp(false);\r\n }\r\n\r\n const clearButtonHandler = (value) => {\r\n\r\n actionShopCartRemoveSingleTourWithTourHold(dispatch, cartEvents, props.tourEventId)\r\n\r\n setClearCartPopUp(false);\r\n props.toggleIsEdit(false);\r\n props.onChange(null);\r\n\r\n }\r\n\r\n return (\r\n
\r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n {ReactHtmlParser(genfunction.replaceEscapeCharacters(bkngType.GroupSizeMessage))}\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n {bkngType.GroupSizeOptions && bkngType.GroupSizeOptions.length > 0 ?\r\n\r\n {\r\n if (option.hasOwnProperty('GroupSize')) {\r\n return option.GroupSize;\r\n }\r\n return option.toString();\r\n }}\r\n value={props.groupSize}\r\n\r\n style={{ width: \"100%\" }}\r\n renderInput={(params) => }\r\n\r\n >\r\n\r\n : \"\"}\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default GroupSizeSection;\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Paper, Typography, Grid, Link } from '@material-ui/core';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\r\nimport ErrorHandling from '../ErrorHandling/ErrorHandling';\r\nimport OrganizationSection from './OrganizationSection';\r\nimport GroupSizeSection from './GroupSizeSection';\r\nimport { genfunction } from 'helpers';\r\nimport { actionGetExtraItem } from 'actions';\r\n\r\nconst { NoExtraItemFoundMsg } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n arrowBtn: {\r\n float: 'left',\r\n marginLeft: '10px',\r\n marginTop: '3px'\r\n },\r\n section: {\r\n marginTop: '10px',\r\n borderRadius: \"0\",\r\n width: \"100%\"\r\n },\r\n\r\n}));\r\n\r\nconst GroupReservationDrawer = (props) => {\r\n const classes = useStyles();\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n const [showOrganization, setShowOrganization] = useState(false);\r\n const [disableBeforeLoading, setDisableBeforeLoading] = useState(true);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const bookingTypes = useSelector(state => state.reducerBookingTypes.bookingTypes);\r\n const bkngType = bookingTypes.filter(x => x.BookingTypeID == props.bookingtypeID)[0];\r\n const tourEvents = useSelector(state => state.reducerExtraItems.extramItems);\r\n const tourEvent = tourEvents && tourEvents.length > 0 ? tourEvents.filter(x => x.TourEventID == props.tourEventId)[0] : null;\r\n const reducerAppLoader = useSelector(state => state.reducerAppLoader.loading);\r\n const organizationList = useSelector(state => state.reducerOrganizationSection.organizationlist);\r\n\r\n useEffect(() => {\r\n if (reducerAppLoader === false)\r\n setDisableBeforeLoading(false);\r\n\r\n }, [reducerAppLoader])\r\n\r\n const continueHandler = () => {\r\n\r\n if (validateOrganization() && validateGroupSize()) {\r\n\r\n let organizationCostRate = genfunction.IsNotNullOrEmptyOrUndefined(props.organizationID) && organizationList.length > 0 ? organizationList.filter(x => x.CustomerID === props.organizationID)[0].CostRateID : \"\";\r\n actionGetExtraItem(dispatch, props.tourEventId, props.ismembershipapplied, props.membercostrate, props.isIDME, props.isIDMECostrate, organizationCostRate)\r\n\r\n props.goToExtraItemOrGroupDrawer(true);\r\n }\r\n }\r\n\r\n const validateGroupSize = () => {\r\n\r\n if (bkngType.ShowTourProductsBasedOnGroupSize && props.groupSize === \"\") {\r\n seterrorMsg(\"Please select Group Size\")\r\n return false\r\n }\r\n else if (bkngType.ShowTourProductsBasedOnGroupSize && tourEvent.TourProducts.findIndex(x => x.LimitDisplayOnGroupSize && x.GroupSize === props.groupSize) == -1) {\r\n seterrorMsg(NoExtraItemFoundMsg)\r\n return false\r\n }\r\n else\r\n return true\r\n }\r\n\r\n const validateOrganization = () => {\r\n if ((bkngType.RequireCompanyName || showOrganization || (!bkngType.ShowTourProductsBasedOnGroupSize && props.isContinueToGroupDrawer)) && props.organizationID === \"\") {\r\n seterrorMsg(\"Please select an organization\")\r\n return false\r\n }\r\n else\r\n return true\r\n }\r\n\r\n const handleChange = (value) => {\r\n setShowOrganization(value);\r\n }\r\n\r\n const errorcancelhandle = () => {\r\n seterrorMsg(\"\");\r\n }\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {window.matchMedia(\"(min-width: 600px)\").matches ? \"\" : { props.toggleDrawer(\"right\", false) }} />}\r\n {tourEvent ? tourEvent.EventName : null}\r\n \r\n \r\n\r\n \r\n {bkngType.RequireCompanyName || bkngType.AllowedCustomerTypes === 'All' ?\r\n \r\n : null}\r\n\r\n \r\n\r\n \r\n {bkngType.ShowTourProductsBasedOnGroupSize ?\r\n \r\n : null}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n
\r\n );\r\n}\r\n\r\nexport default GroupReservationDrawer;\r\n","import React, { useEffect, Children, useState } from 'react';\nimport BigCalendar from 'react-big-calendar';\nimport \"react-big-calendar/lib/css/react-big-calendar.css\";\nimport Drawer from '@material-ui/core/Drawer';\nimport { makeStyles } from '@material-ui/core/styles';\nimport moment from 'moment';\nimport { Button, Grid, Typography } from \"@material-ui/core\";\nimport ExtraItemDrawer from 'components/CalendarControls/ExtraItemDrawer';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { actionGetExtraItems, actionResetErrorMessage } from 'actions';\nimport Moment from 'moment';\nimport ErrorHandling from '../ErrorHandling/ErrorHandling';\nimport { actionResetDisplayAreas } from 'actions';\nimport { genfunction } from '../../helpers';\nimport { withRouter } from 'react-router';\nimport { actionShopCartSetManageMyBooking, actionShopCartResetMembership, actionShopCartResetIDME } from 'actions';\nimport { actionResetBooking } from 'actions';\nimport GroupReservationDrawer from './GroupReservationDrawer';\n\n\nconst { DefaultColor, EventNotAvailable, DefaultCostRateID, CalendarHeight, CalendarWidth, CalendarScreenDatTimeAlreadyBuyMsg,\n CalendarStartingHour, UnableToBuyTicketShowBookNowEnabled, UnableToBuyTicketShowBookNowDisabled, CalendarScreenMessage1, CalendarScreenMessage2 } = window['runConfig'];\nconst localizer = BigCalendar.momentLocalizer(moment);\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(3)\n },\n content: {\n marginTop: theme.spacing(2)\n },\n list: {\n width: 400,\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", \"sans-serif\"'\n }\n ,\n list2: {\n width: '100%',\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", \"sans-serif\"'\n }\n}));\n\nconst CalendarControl = (props) => {\n\n const classes = useStyles();\n\n let apiData = false;\n const dispatch = useDispatch();\n\n const tourEvents = useSelector(state => state.reducerExtraItems.extramItems);\n const bookingType = useSelector(state => state.reducerBookingTypes.bookingType);\n const errExtraItem = useSelector(state => state.reducerExtraItems.extramItemsError);\n const bookingTypes = useSelector(state => state.reducerBookingTypes.bookingTypes);\n const displayArea = useSelector(state => state.reducerDisplayAreas);\n const displayAreasState = useSelector(state => state.reducerDisplayAreas);\n const shopcartreducer = useSelector(state => state.reducerShopCart);\n const reducerBooking = useSelector(state => state.reducerBooking);\n const extraItem = useSelector(state => state.reducerExtraItems.extraItem);\n\n const [currentview, setcurrentview] = useState(\"\");\n const [nextWeekDate, setnextWeekDate] = useState('');\n\n\n useEffect(() => {\n GetMonthlyRecords();\n }, []);\n\n useEffect(() => {\n\n if (nextWeekDate) {\n actionGetExtraItems(dispatch, props.urlID, true, displayArea.isDisplay ? true : false,\n Moment(nextWeekDate).format('YYYY-MM-DD'), null, \"WeekView\", null);\n }\n\n }, [nextWeekDate]);\n\n const GetMonthlyRecords = () => {\n\n let propsEvent = props.location.event;\n\n if (props.Path == \"/calendar/:id\") {\n actionResetDisplayAreas(dispatch);\n actionGetExtraItems(dispatch, props.urlID, true, false);\n }\n else {\n\n if (displayAreasState.displayAreas !== undefined && displayAreasState.displayAreas.length > 0) {\n let newDisplayAreas = JSON.parse(JSON.stringify(displayAreasState.displayAreas));\n let newObj = { ...newDisplayAreas.filter(x => x.DisplayAreaNo == props.urlID)[0] };\n\n propsEvent && Moment(propsEvent.EventDate).format('YYYY-MM') !== Moment(newObj.NextTourDate).format('YYYY-MM') ?\n actionGetExtraItems(dispatch, props.urlID, false, true, propsEvent.EventDate, null, null)\n :\n actionGetExtraItems(dispatch, props.urlID, true, true, newObj.NextTourDate, null, null);\n }\n else {\n propsEvent && Moment(propsEvent.EventDate).format('YYYY-MM') !== Moment(displayAreasState.displayArea.NextTourDate).format('YYYY-MM') ?\n actionGetExtraItems(dispatch, props.urlID, false, true, propsEvent.EventDate, null, null)\n :\n actionGetExtraItems(dispatch, props.urlID, true, true, displayAreasState.displayArea.NextTourDate, null, null);\n }\n }\n };\n\n\n const GetCostRate = () => {\n let cstrate = 0;\n\n if (shopcartreducer.membershipValidation.ismembershipApplied) {\n cstrate = shopcartreducer.membershipValidation.membershipcostrate;\n }\n else if (shopcartreducer.IDME.isIdMeApplied) {\n cstrate = shopcartreducer.IDME.idmecostrate;\n }\n else {\n cstrate = DefaultCostRateID;\n }\n\n return cstrate;\n }\n\n\n const GetDefaultDate = () => {\n\n if (bookingType !== undefined && bookingType.hasOwnProperty(\"NextTourDate\")) {\n var year = Moment(bookingType.NextTourDate).format('YYYY');\n var month = Moment(bookingType.NextTourDate).format('MM');\n var dt = Moment(bookingType.NextTourDate).format('DD');\n\n return new Date(year, month - 1, dt);\n }\n else {\n var today = props.location.event ? new Date(props.location.event.EventDate) : new Date();\n return new Date(today.getFullYear(), today.getMonth(), today.getDate());\n }\n }\n\n if (tourEvents == undefined || tourEvents.length <= 0) {\n apiData = false;\n }\n else {\n apiData = true;\n }\n\n const constredirect = (products) => {\n props.constredirect(products);\n }\n\n let events = [];\n\n const ConvertTourEventsToEvents = (tourEvents) => {\n\n if ((tourEvents == 'nocontent' || tourEvents === undefined) ||\n (tourEvents.length > 0 && !tourEvents[0].hasOwnProperty(\"TourEventID\"))) {\n return;\n }\n\n for (let j = 0; j < tourEvents.length; j++) {\n\n if (bookingTypes === undefined) {\n return;\n }\n\n const bookType = bookingTypes.filter(x => x.BookingTypeID == tourEvents[j].BookingTypeID)[0];\n\n if (tourEvents[j].BookNowOption === 'Past Event' || tourEvents[j].BookNowOption === 'Cancelled') {\n continue;\n }\n\n if (tourEvents[j].BookNowOption === 'Sold Out' &&\n tourEvents[j].EventStartDateTime < tourEvents[j].CurrentDateTimeAtLocation) {\n continue;\n }\n\n if (tourEvents[j].TourDisplayDays && tourEvents[j].TourDisplayDays > 0) {\n let lastdisplaydate = new Date(tourEvents[j].CurrentDateTimeAtLocation);\n lastdisplaydate.setDate(lastdisplaydate.getDate() + tourEvents[j].TourDisplayDays);\n if (new Date(tourEvents[j].EventStartDateTime) > lastdisplaydate)\n continue;\n }\n\n var event = {\n\n toureventID: tourEvents[j].TourEventID,\n allDay: false,\n start: new Date(tourEvents[j].EventStartDateTime),\n end: new Date(tourEvents[j].EventEndDateTime),\n title: StartAndEndTime(tourEvents, j, bookType) + GetWebDisplayName(tourEvents, j, bookType),\n color: tourEvents[j].DisplayColor,\n level: tourEvents[j].DisplayColorLevel,\n isExtraItem: false,\n startDate: Moment(tourEvents[j].EventStartDateTime).format('YYYY-MM-DD'),\n bookingTypeID: tourEvents[j].BookingTypeID,\n isSaleable: tourEvents[j].BookNowOption === 'Book Now' ? true : false,\n isSingleTour: false,\n notavailableReason: ''\n }\n\n\n\n\n if (bookType != undefined && bookType.hasOwnProperty(\"ShowAvailability\") && bookType.ShowAvailability) {\n\n if (event.isSaleable)\n event.title += ' (' + tourEvents[j].SeatsAvailable + ' ' + bookType.AvailabilityText + ')';\n else\n event.title += ' (' + tourEvents[j].BookNowOption + ')';\n event.notavailableReason = tourEvents[j].BookNowOption;\n }\n\n if (shopcartreducer.managemybooking && reducerBooking.booking[0]) {\n\n if (reducerBooking.booking[0].TourEventID === event.toureventID) {\n event.isSaleable = false;\n event.title += ' (' + CalendarScreenDatTimeAlreadyBuyMsg + ')';\n event.notavailableReason = CalendarScreenDatTimeAlreadyBuyMsg;\n }\n }\n\n if (!event.isSaleable) {\n event.color = EventNotAvailable\n }\n\n var startEvent = Moment(tourEvents[j].EventStartDateTime).format('YYYY-MM-DD');\n\n if (!displayArea.isDisplay && events !== undefined &&\n events.filter(x => x.startDate == startEvent && x.isExtraItem).length == 0) {\n\n for (let k = 0; k < tourEvents[j].TourProducts.length; k++) {\n\n if (tourEvents[j].TourProducts[k].ShowOnCalendar) {\n\n var e = Object.assign({}, event);\n\n e.start = new Date(Moment(tourEvents[j].EventStartDateTime).format('YYYY-MM-DD 23:59:59'));\n e.end = new Date(Moment(tourEvents[j].EventEndDateTime).format('YYYY-MM-DD 23:59:59'));\n e.isExtraItem = true;\n e.isSingleTour = tourEvents.filter(x => Moment(x.EventStartDateTime).format('YYYY-MM-DD') == startEvent && x.BookNowOption !== 'Past Event' && x.BookNowOption !== 'Cancelled' && x.BookNowOption !== 'Sold Out').length > 1 ? false : true;\n\n if (tourEvents[j].TourProducts[k].hasOwnProperty(\"PriceMatrix\")) {\n let pmatrix;\n\n if (tourEvents[j].TourProducts[k].PriceMatrix && tourEvents[j].TourProducts[k].PriceMatrix.length > 1)\n pmatrix = tourEvents[j].TourProducts[k].PriceMatrix.find(x => x.CostRateID == GetCostRate());\n else\n pmatrix = tourEvents[j].TourProducts[k].PriceMatrix ? tourEvents[j].TourProducts[k].PriceMatrix[0] : undefined;\n\n if (pmatrix) {\n e.title = tourEvents[j].TourProducts[k].TourProductName + ' ' + genfunction.ccyFormat(pmatrix ? pmatrix.Price : 0)\n events.push(e)\n }\n }\n }\n }\n }\n\n events.push(event);\n }\n }\n\n if (apiData) {\n ConvertTourEventsToEvents(tourEvents);\n }\n\n const [state, setState] = useState({\n right: false,\n tourEventId: 0,\n bookingTypeID: 0,\n errorMsg: '',\n bookingunsoldReson: '',\n isContinueToExtraItemDrawer: false,\n isContinueToGroupDrawer: false,\n organizationID: \"\",\n groupSize: \"\",\n isEditEvent: false\n });\n\n useEffect(() => {\n reloadEventForGroups(props.location.event);\n }, [bookingTypes, tourEvents]);\n\n const toggleDrawer = (side, open, event) => {\n\n if (event && event.type === 'keydown' && (event.key === 'Tab' || event.key === 'Shift')) {\n return;\n }\n\n if (state.errorMsg.length > 0) {\n return;\n }\n\n if (event) {\n\n if ((event.isExtraItem && event.isSingleTour == false) || !event.isSaleable) {\n setState({ ...state, errorMsg: event.notavailableReason.length > 0 ? UnableToBuyTicketShowBookNowEnabled + event.notavailableReason : UnableToBuyTicketShowBookNowDisabled, bookingunsoldReson: event.notavailableReason.length > 0 ? event.notavailableReason : 'Sold Out' });\n return;\n }\n\n setState({ ...state, [side]: open, tourEventId: event.toureventID, bookingTypeID: event.bookingTypeID, bookingunsoldReson: '' });\n }\n else {\n\n props.location.event = null;\n setState({ ...state, [side]: open, tourEventId: 0, bookingunsoldReson: '', groupSize: \"\", organizationID: \"\", isContinueToExtraItemDrawer: false, isContinueToGroupDrawer: false, isEditEvent: false });\n }\n };\n\n const checkIsReloadEvent = (event) => {\n\n let reloadEvent = false;\n\n if (genfunction.IsEditEvent(bookingTypes, extraItem)) {\n\n if (shopcartreducer.events && shopcartreducer.events.length > 0 && shopcartreducer.events.find(x => x.TourEventID == event.toureventID)) {\n reloadEvent = true;\n event = shopcartreducer.events.filter(x => x.TourEventID == event.toureventID)[0];\n\n }\n\n reloadEvent ? reloadEventForGroups(event) : toggleDrawer('right', true, event);\n\n }\n else {\n toggleDrawer('right', true, event);\n }\n\n }\n\n const reloadEventForGroups = (event) => {\n\n if (event && event.hasOwnProperty(\"TourEventID\")) {\n\n setState({\n ...state,\n right: true,\n tourEventId: event.TourEventID,\n bookingTypeID: event.BookingTypeID,\n selectedDate: new Date(event.EventDate),\n groupSize: event.GroupSize,\n organizationID: event.OrganizationID,\n isContinueToGroupDrawer: event.OrganizationID !== \"\" ? true : false,\n isEditEvent: true\n });\n }\n\n }\n\n const setIsEditEvent = (value) => {\n setState({\n ...state, isEditEvent: value\n });\n }\n\n const goToExtraItemOrGroupDrawer = (value) => {\n setState({ ...state, isContinueToExtraItemDrawer: value, isContinueToGroupDrawer: !value });\n }\n\n const showGroupDrawer = () => {\n\n const bType = bookingTypes.filter(x => x.BookingTypeID == state.bookingTypeID)[0];\n\n if (bType && !state.isContinueToExtraItemDrawer) {\n if (bType.RequireCompanyName || bType.ShowTourProductsBasedOnGroupSize || state.isContinueToGroupDrawer)\n return true;\n }\n\n return false\n }\n\n const onChangeOrganization = (value) => {\n\n value ? setState({ ...state, organizationID: value.CustomerID }) : setState({ ...state, organizationID: \"\" })\n }\n\n const onChangeGroupSize = (value) => {\n\n value ? setState({ ...state, groupSize: value.GroupSize }) : setState({ ...state, groupSize: \"\" })\n\n }\n\n const sideList = side => {\n\n return (\n < div className={window.matchMedia(\"(min-width: 600px)\").matches ? classes.list : classes.list2} role=\"presentation\" >\n\n {showGroupDrawer() ?\n\n \n :\n \n\n }\n\n )\n };\n\n const onView = (view) => {\n setcurrentview(view);\n }\n\n useEffect(() => {\n\n if (currentview === \"week\") {\n if (nextWeekDate) {\n actionGetExtraItems(dispatch, props.urlID, true, displayArea.isDisplay ? true : false,\n Moment(nextWeekDate).format('YYYY-MM-DD'), null, \"WeekView\");\n }\n }\n\n if (currentview === \"month\") {\n var today = new Date();\n var date = new Date(today.getFullYear(), (today.getMonth()), today.getDate());\n\n if (currentview === \"\" || currentview === \"month\") {\n\n var headerValue = document.getElementsByClassName('rbc-toolbar-label')[0].textContent;\n var month = moment(headerValue).format('MM');\n var year = moment(headerValue).format('YYYY');\n var newMonth = year + '-' + month + '-' + 1;\n\n if (today.getMonth() + 1 == month) {\n actionGetExtraItems(dispatch, props.urlID, true, displayArea.isDisplay ? true : false, Moment(date).format('YYYY-MM-DD'));\n }\n else {\n actionGetExtraItems(dispatch, props.urlID, false, displayArea.isDisplay ? true : false, Moment(newMonth).format('YYYY-MM-DD'));\n }\n\n }\n }\n }, [currentview]);\n\n const FetchNewMonthDataHandler = (event) => {\n\n var defaultDate = GetDefaultDate();\n var today = new Date();\n var date = new Date(today.getFullYear(), (today.getMonth()), today.getDate());\n\n if (currentview === \"\" || currentview === \"month\") {\n if (defaultDate.getMonth() == event.getMonth()) {\n actionGetExtraItems(dispatch, props.urlID, true, displayArea.isDisplay ? true : false, Moment(event).format('YYYY-MM-DD'));\n }\n else if (event >= date) {\n actionGetExtraItems(dispatch, props.urlID, false, displayArea.isDisplay ? true : false, Moment(event).format('YYYY-MM-DD'));\n }\n }\n\n if (currentview === \"day\") {\n actionGetExtraItems(dispatch, props.urlID, true, displayArea.isDisplay ? true : false, Moment(event).format('YYYY-MM-DD'), null, \"SingleDay\");\n }\n }\n\n const errorcancelhandle = () => {\n actionResetErrorMessage(dispatch);\n setState({ ...state, right: false, errorMsg: '', bookingunsoldReson: '' });\n }\n\n // example implementation of a wrapper\n const ColoredDateCellWrapper = ({ children, value }) =>\n React.cloneElement(Children.only(children), {\n style: {\n ...children.style,\n backgroundColor: BackgroundColor(value)\n },\n });\n\n\n const eventStyleGetter = (event) => {\n var style = {\n backgroundColor: event.color !== undefined ? event.color : DefaultColor,\n borderRadius: '0px',\n opacity: 1,\n border: '0px',\n display: (currentview === \"week\" || currentview === \"day\") && event.isExtraItem !== undefined && event.isExtraItem ? 'none' : 'block',\n cursor: event.isExtraItem !== undefined && event.isExtraItem && event.isSingleTour == false ? 'default' : 'pointer',\n 'pointer-events': event.isExtraItem !== undefined && event.isExtraItem && event.isSingleTour == false ? 'none' : 'auto',\n 'font-weight': event.isExtraItem !== undefined && event.isExtraItem ? 'unset' : 'bold'\n };\n return {\n style: style\n }\n }\n\n const BackgroundColor = (date) => {\n\n if (!displayArea.isDisplay) {\n let a = Moment(date).format('YYYY-MM-DD');\n\n if (events !== undefined && events.length > 0) {\n let event = events.filter(x => x.startDate == a && x.isExtraItem == false)[0];\n\n if (event !== undefined) {\n if (event.color !== undefined) {\n return event.color;\n }\n\n return DefaultColor;\n\n }\n }\n }\n\n };\n\n\n\n const minTime = new Date();\n minTime.setHours(CalendarStartingHour, 0, 0);\n\n const constredirecttofindmybpooking = () => {\n actionResetBooking(dispatch);\n actionShopCartResetMembership(dispatch);\n actionShopCartResetIDME(dispatch);\n actionShopCartSetManageMyBooking(dispatch, false, false);\n\n props.history.push({\n pathname: '/findmybooking'\n })\n\n }\n\n const redirecttoconfirmbookingchanges = (event) => {\n\n if (shopcartreducer.managemybooking && reducerBooking.booking[0] && event.isSaleable) {\n\n if (reducerBooking.booking[0].TourEventID !== event.toureventID) {\n props.history.push({\n pathname: '/confimbookingchanges',\n eventID: event.toureventID,\n ismembershipapplied: shopcartreducer.membershipValidation.membershipcostrate,\n membercostrate: shopcartreducer.membershipValidation.membershipcostrate,\n bookingtypeID: event.bookingTypeID\n\n })\n }\n }\n else {\n if (event.notavailableReason.length > 0) {\n setState({ ...state, errorMsg: event.notavailableReason.length > 0 ? UnableToBuyTicketShowBookNowEnabled + event.notavailableReason : UnableToBuyTicketShowBookNowDisabled, bookingunsoldReson: event.notavailableReason.length > 0 ? event.notavailableReason : 'Sold Out' });\n return;\n }\n }\n }\n\n\n return (\n \n\n 0 ? errExtraItem : state.errorMsg} open={errExtraItem.length > 0 || state.errorMsg != \"\" ? true : false} handleclose={errorcancelhandle} />\n \n\n {shopcartreducer.managemybooking && reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty('AllowDateTimeChanges') && !reducerBooking.booking[0].AllowDateTimeChanges ?\n <>\n \n\n \n {reducerBooking.booking[0].hasOwnProperty('NoChangesMessage') ? reducerBooking.booking[0].NoChangesMessage : 'Date Time Changes are not allowed.'}\n \n \n \n \n :\n <>\n {\n shopcartreducer.managemybooking ?\n \n\n \n {CalendarScreenMessage1} {moment(reducerBooking.booking[0].EventStartDateTime).format('dddd,MMMM D')} at {moment(reducerBooking.booking[0].EventStartDateTime).format('LT')} {CalendarScreenMessage2}\n \n \n : null\n }\n\n\n\n {events !== undefined ?\n {\n shopcartreducer.managemybooking ? redirecttoconfirmbookingchanges(event) :\n checkIsReloadEvent(event, 'right', true)\n }}\n onView={onView}\n onNavigate={(event) => {\n FetchNewMonthDataHandler(event);\n }}\n views={['month', 'week', 'day']}\n defaultDate={GetDefaultDate()}\n eventPropGetter={(eventStyleGetter)}\n components={{\n dateCellWrapper: ColoredDateCellWrapper\n }}\n formats={{\n dayRangeHeaderFormat: ({ start, end }) => {\n\n if (moment(nextWeekDate).format('DD/MM/YYYY') !== moment(start).format('DD/MM/YYYY')) {\n setnextWeekDate(start);\n }\n\n return (moment(start).format('MMMM DD')) + ' - ' + (moment(end).format('MMMM DD'));\n },\n monthHeaderFormat: \"MMMM YYYY\",\n }}\n />\n : null\n }\n
\n toggleDrawer('right', false)}>\n {sideList('right')}\n \n
\n \n\n\n }\n
\n
\n );\n}\n\nexport default withRouter(CalendarControl);\n\nfunction StartAndEndTime(tourEvents, j, bookType) {\n let time = \"\";\n\n if (bookType) {\n if (bookType.ShowStartTime) {\n time += Moment(tourEvents[j].EventStartDateTime).format('hh:mm a');\n }\n\n if (bookType.ShowEndTime && !bookType.ShowStartTime) {\n time += Moment(tourEvents[j].EventEndDateTime).format('hh:mm a')\n }\n\n if (bookType.ShowEndTime && bookType.ShowStartTime) {\n time += ' - ' + Moment(tourEvents[j].EventEndDateTime).format('hh:mm a')\n }\n\n time += ' ';\n }\n return time;\n}\n\nfunction GetWebDisplayName(tourEvents, j, bookingType) {\n return bookingType ? tourEvents[j].EventName : '';\n}\n","import React, { useEffect } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Button, Grid, TextField } from '@material-ui/core';\nimport Search from '@material-ui/icons/Search';\nimport Moment from 'moment';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n justifyContent: \"center\",\n marginBottom: '20px'\n },\n container: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n textField: {\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1),\n width: 200,\n },\n searchBtn: {\n marginTop: '8px',\n marginLeft: '5px'\n }\n}));\n\nconst DateSearch = props => {\n\n const [state, setState] = React.useState({\n textFieldValue: ''\n });\n\n const handleOnChange = (event) => {\n\n if (event.target.value !== \"\") {\n\n var date_regex = /^(19|20)\\d\\d([- /.])(0[1-9]|1[012])\\2(0[1-9]|[12][0-9]|3[01])$/;\n if (!(date_regex.test(event.target.value))) {\n return false;\n }\n\n setState({ ...state, textFieldValue: event.target.value })\n\n props.SearchDates(event.target.value);\n }\n }\n\n useEffect(() => {\n setState({ ...state, textFieldValue: props.defaultDate });\n }, [props.defaultDate]);\n\n useEffect(() => {\n //props.SearchDates(props.defaultDate);\n }, []);\n\n const classes = useStyles();\n return (\n \n \n\n \n );\n}\n\nexport default DateSearch;\n","import Moment from 'moment';\nimport React, { useEffect } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Grid, Button } from \"@material-ui/core\";\nimport ButtonGroup from '@material-ui/core/ButtonGroup';\nimport { useSelector, useDispatch } from 'react-redux';\nimport ErrorHandling from '../ErrorHandling/ErrorHandling';\nimport { genfunction } from '../../helpers';\nimport Card from '@material-ui/core/Card';\nimport CardHeader from '@material-ui/core/CardHeader';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardActions from '@material-ui/core/CardActions';\nimport Typography from '@material-ui/core/Typography';\nimport { red } from '@material-ui/core/colors';\nimport palette from '../../theme/palette'\nimport ExtraItemDrawer from 'components/CalendarControls/ExtraItemDrawer';\nimport Drawer from '@material-ui/core/Drawer';\nimport { actionGetExtraItems, actionResetExtraItems } from 'actions';\nimport DateSearch from '../DateSearch/DateSearch';\nimport { actionResetDisplayAreas } from 'actions';\nimport { withRouter } from 'react-router';\nimport { actionShopCartSetManageMyBooking } from 'actions';\nimport { actionResetBooking } from 'actions';\nimport GroupReservationDrawer from './GroupReservationDrawer';\n\nconst { DefaultColor, DefaultCostRateID, SearchRecordInfo, CalendarScreenMessage1, CalendarScreenMessage2 } = window['runConfig'];\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(3),\n justifyContent: \"center\"\n },\n content: {\n marginTop: theme.spacing(2)\n },\n list: {\n width: 400,\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", \"sans-serif\"'\n },\n list2: {\n width: '100%',\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", \"sans-serif\"'\n },\n card: {\n maxWidth: 350,\n minWidth: 300,\n margin: 10,\n },\n avatar: {\n backgroundColor: red[500],\n },\n CardHeader: {\n backgroundColor: palette.primary.light\n },\n actions: {\n display: \"flex\",\n justifyContent: \"center\",\n },\n pagination: {\n display: \"flex\",\n justifyContent: \"center\"\n }\n}));\n\nconst CalendarListView = (props) => {\n\n const classes = useStyles();\n const dispatch = useDispatch();\n\n const [state, setState] = React.useState({\n right: false,\n tourEventId: 0,\n bookingTypeID: 0,\n errorMsg: '',\n pagedEvents: [],\n navigatedToDate: null,\n disablePreviousButton: true,\n isContinueToExtraItemDrawer: false,\n isContinueToGroupDrawer: false,\n organizationID: \"\",\n groupSize: \"\",\n isEditEvent: false\n });\n\n let tourEvents = useSelector(state => state.reducerExtraItems.extramItems);\n const errExtraItem = useSelector(state => state.reducerExtraItems.extramItemsError);\n const displayAreasState = useSelector(state => state.reducerDisplayAreas);\n const bookingTypes = useSelector(state => state.reducerBookingTypes);\n const shopcartreducer = useSelector(state => state.reducerShopCart);\n const calendarNavState = useSelector(state => state.reducerCalendarView);\n const reducerBooking = useSelector(state => state.reducerBooking);\n\n useEffect(() => {\n\n let propsEvent = props.location.event;\n if (props.Path == \"/calendar/:id\") {\n\n actionResetDisplayAreas(dispatch);\n actionGetExtraItems(dispatch, props.urlID, true, false, null, true, null);\n\n }\n else {\n\n if (displayAreasState.displayAreas !== undefined && displayAreasState.displayAreas.length > 0) {\n let newDisplayAreas = JSON.parse(JSON.stringify(displayAreasState.displayAreas));\n let newObj = { ...newDisplayAreas.filter(x => x.DisplayAreaNo == props.urlID)[0] };\n\n propsEvent ?\n actionGetExtraItems(dispatch, props.urlID, true, true, propsEvent.EventDate, true, null)\n :\n actionGetExtraItems(dispatch, props.urlID, true, true, newObj.NextTourDate, true, null);\n }\n else {\n\n propsEvent ?\n actionGetExtraItems(dispatch, props.urlID, true, true, propsEvent.EventDate, true, null)\n :\n actionGetExtraItems(dispatch, props.urlID, true, true, displayAreasState.displayArea.NextTourDate, true, null);\n }\n }\n }, []);\n\n useEffect(() => {\n\n if (!state.isEditEvent) {\n\n if (calendarNavState.viewType == \"ListView\") {\n setState({ ...state, pagedEvents: tourEvents })\n }\n }\n\n }, [tourEvents]);\n\n\n useEffect(() => {\n reloadEventForGroups(props.location.event);\n }, [bookingTypes, tourEvents]);\n\n const toggleDrawer = (side, open, event) => {\n\n if (event && event.type === 'keydown' && (event.key === 'Tab' || event.key === 'Shift')) {\n return;\n }\n\n if (state.errorMsg.length > 0) {\n return;\n }\n\n if (event)\n setState({ ...state, [side]: open, tourEventId: event.TourEventID, bookingTypeID: event.BookingTypeID });\n else {\n\n props.location.event = null;\n setState({ ...state, [side]: open, tourEventId: 0, groupSize: \"\", organizationID: \"\", isContinueToExtraItemDrawer: false, isContinueToGroupDrawer: false, isEditEvent: false });\n }\n };\n\n const checkIsReloadEvent = (event) => {\n\n let reloadEvent = false;\n\n if (genfunction.IsEditEvent(bookingTypes.bookingTypes, event)) {\n\n if (shopcartreducer.events && shopcartreducer.events.length > 0 && shopcartreducer.events.find(x => x.TourEventID == event.TourEventID)) {\n reloadEvent = true;\n event = shopcartreducer.events.filter(x => x.TourEventID == event.TourEventID)[0];\n }\n\n reloadEvent ? reloadEventForGroups(event) : toggleDrawer('right', true, event);\n\n }\n else {\n toggleDrawer('right', true, event);\n }\n }\n\n\n\n const reloadEventForGroups = (event) => {\n\n if (event && event.hasOwnProperty(\"TourEventID\")) {\n\n setState({\n ...state,\n right: true,\n tourEventId: event.TourEventID,\n bookingTypeID: event.BookingTypeID,\n selectedDate: new Date(event.EventDate),\n groupSize: event.GroupSize,\n organizationID: event.OrganizationID,\n isContinueToGroupDrawer: event.OrganizationID !== \"\" ? true : false,\n isEditEvent: true,\n pagedEvents: calendarNavState.viewType == \"ListView\" ? tourEvents : \"\"\n });\n }\n\n }\n\n const setIsEditEvent = (value) => {\n setState({\n ...state, isEditEvent: value\n });\n }\n\n const goToExtraItemOrGroupDrawer = (value) => {\n setState({ ...state, isContinueToExtraItemDrawer: value, isContinueToGroupDrawer: !value });\n }\n\n const showGroupDrawer = () => {\n\n const bType = bookingTypes.bookingTypes.filter(x => x.BookingTypeID == state.bookingTypeID)[0];\n\n if (bType && !state.isContinueToExtraItemDrawer) {\n if (bType.RequireCompanyName || bType.ShowTourProductsBasedOnGroupSize || state.isContinueToGroupDrawer)\n return true;\n }\n\n return false\n }\n\n const onChangeOrganization = (value) => {\n\n value ? setState({ ...state, organizationID: value.CustomerID }) : setState({ ...state, organizationID: \"\" })\n }\n\n const onChangeGroupSize = (value) => {\n\n value ? setState({ ...state, groupSize: value.GroupSize }) : setState({ ...state, groupSize: \"\" })\n\n }\n\n const sideList = side => {\n\n return (\n < div className={window.matchMedia(\"(min-width: 600px)\").matches ? classes.list : classes.list2} role=\"presentation\" >\n\n {showGroupDrawer() ?\n\n \n :\n \n\n }\n )\n };\n\n const constredirect = (products) => {\n props.constredirect(products);\n }\n\n const errorcancelhandle = () => {\n actionResetExtraItems(dispatch);\n setState({ ...state, right: false, errorMsg: '' });\n }\n\n const onPageChange = (event, page) => {\n var startIndex = (page - 1) * 7;\n var endIndex = (startIndex + 7) > tourEvents.length ? (tourEvents.length) : (startIndex + 7)\n setState({ ...state, pagedEvents: tourEvents.slice(startIndex, endIndex) })\n }\n\n const enableDisablePreviousButton = (startDate) => {\n var today = Moment(new Date()).format('YYYY-MM-DD');\n if (startDate <= today) {\n return true;\n }\n else {\n return false;\n }\n }\n\n const GetSearchDays = () => {\n if (displayAreasState && displayAreasState.isDisplay) {\n return displayAreasState.displayArea ? displayAreasState.displayArea.ListViewSearchDays : 0;\n }\n else {\n return bookingTypes.bookingType ? bookingTypes.bookingType.ListViewSearchDays : 0;\n }\n }\n\n function GetFilterDates(startDate) {\n var disable = enableDisablePreviousButton(startDate);\n setState({ ...state, disablePreviousButton: disable });\n props.onFilter(startDate);\n }\n\n const onNavigation = (startDate) => {\n var disable = enableDisablePreviousButton(startDate);\n setState({ ...state, navigatedToDate: startDate, disablePreviousButton: disable });\n props.onFilter(startDate);\n }\n\n const GetDefaultCostRate = (PriceMatrix) => {\n let pamtrix = undefined;\n let costrate = DefaultCostRateID;\n\n if (shopcartreducer.membershipValidation.ismembershipApplied) {\n costrate = shopcartreducer.membershipValidation.membershipcostrate;\n }\n\n if (shopcartreducer.IDME.isIdMeApplied) {\n costrate = shopcartreducer.IDME.idmecostrate;\n }\n\n if (PriceMatrix.length > 1) {\n pamtrix = PriceMatrix.find(x => x.CostRateID == costrate);\n }\n else {\n pamtrix = PriceMatrix && PriceMatrix.length > 0 ? PriceMatrix[0] : undefined;\n }\n\n return pamtrix;\n }\n\n const CheckShowAvailability = (availableSeats, bookingTypeID) => {\n\n let bookingType = bookingTypes.bookingTypes.find(x => x.BookingTypeID == bookingTypeID);\n\n if (bookingType !== undefined && bookingType.ShowAvailability) {\n return '(' + availableSeats + ' ' + bookingType.AvailabilityText + ')';\n }\n\n return '';\n }\n\n const WebDisplayName = (webName, bookingTypeID) => {\n\n let bookingType = bookingTypes.bookingTypes.find(x => x.BookingTypeID == bookingTypeID);\n\n return bookingType ? webName : '';\n }\n\n const redirecttoconfirmbookingchanges = (event) => {\n\n if (shopcartreducer.managemybooking && reducerBooking.booking[0]) {\n\n if (reducerBooking.booking[0].TourEventID !== event.TourEventID) {\n props.history.push({\n pathname: '/confimbookingchanges',\n eventID: event.TourEventID,\n ismembershipapplied: shopcartreducer.membershipValidation.membershipcostrate,\n membercostrate: shopcartreducer.membershipValidation.membershipcostrate,\n bookingtypeID: event.BookingTypeID\n\n })\n }\n }\n }\n\n const constredirecttofindmybpooking = () => {\n actionResetBooking(dispatch);\n actionShopCartSetManageMyBooking(dispatch, false, false);\n\n props.history.push({\n pathname: '/findmybooking'\n })\n\n }\n\n const EventIsSaleAble = (event) => {\n if (event && event.BookNowOption != 'Book Now') {\n return true;\n }\n\n if (shopcartreducer.managemybooking && reducerBooking.booking[0]) {\n\n if (reducerBooking.booking[0].TourEventID === event.TourEventID) {\n return true;\n }\n }\n\n }\n return (\n
\n\n \n\n { 0 ? errExtraItem : state.errorMsg}\n open={errExtraItem.length > 0 || state.errorMsg != \"\" ? true : false}\n handleclose={errorcancelhandle} />}\n\n {shopcartreducer.managemybooking && reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty('AllowDateTimeChanges') && !reducerBooking.booking[0].AllowDateTimeChanges ?\n <>\n \n\n \n {reducerBooking.booking[0].hasOwnProperty('NoChangesMessage') ? reducerBooking.booking[0].NoChangesMessage : 'Date Time Changes are not allowed.'}\n \n \n \n \n :\n <>\n {state.pagedEvents !== undefined\n && state.pagedEvents.length > 0\n ?\n \n : null}\n\n {shopcartreducer.managemybooking ?\n \n\n \n {CalendarScreenMessage1} {Moment(reducerBooking.booking[0].EventStartDateTime).format('dddd,MMMM D')} at {Moment(reducerBooking.booking[0].EventStartDateTime).format('LT')} {CalendarScreenMessage2}\n \n \n : null}\n\n\n {state.pagedEvents !== undefined &&\n state.pagedEvents.length > 0\n && state.pagedEvents[0].hasOwnProperty(\"EventEndDateTime\") ?\n\n state.pagedEvents.map((e, i) => {\n\n if (e.BookNowOption === \"Past Event\" || e.BookNowOption === \"Cancelled\") {\n return null;\n }\n\n else if (e.TourDisplayDays && e.TourDisplayDays > 0) {\n let lastdisplaydate = new Date(e.CurrentDateTimeAtLocation);\n lastdisplaydate.setDate(lastdisplaydate.getDate() + e.TourDisplayDays);\n if (new Date(e.EventStartDateTime) > lastdisplaydate)\n return null;\n }\n\n return e.BookNowOption !== \"Past Event\" && e.BookNowOption !== \"Cancelled\" ?\n\n \n 0 ? e.DisplayColor : DefaultColor }}\n title={\n {Moment(e.EventStartDateTime).format('MMMM DD, YYYY')}\n\n }\n subheader={\n {Moment(e.EventStartDateTime).format('dddd hh:mm a') + ' - ' + Moment(e.EventEndDateTime).format('hh:mm a')}\n }\n />\n \n \n {WebDisplayName(e.EventName, e.BookingTypeID)}\n \n\n {e.TourProducts && e.TourProducts.length > 0 && e.TourProducts.map(product =>\n \n\n {product.ShowOnCalendar && product.AffectsCapacity && product.hasOwnProperty('PriceMatrix') && product.PriceMatrix !== undefined && GetDefaultCostRate(product.PriceMatrix) !== undefined ?\n ' ' + product.TourProductName + ' '\n + genfunction.ccyFormat(GetDefaultCostRate(product.PriceMatrix).Price)\n : null}\n\n \n )}\n\n {e.TourProducts && e.TourProducts.length > 0 && e.TourProducts.map(product =>\n \n\n {product.ShowOnCalendar && product.AffectsCapacity == false && product.hasOwnProperty('PriceMatrix') && product.PriceMatrix !== undefined && GetDefaultCostRate(product.PriceMatrix) !== undefined ?\n ' ' + product.TourProductName + ' '\n + genfunction.ccyFormat(GetDefaultCostRate(product.PriceMatrix).Price)\n : null}\n\n \n )}\n\n {e.BookNowOption === 'Book Now' ?\n \n {CheckShowAvailability(e.SeatsAvailable, e.BookingTypeID)}\n \n : null}\n \n\n \n \n \n \n : null\n })\n\n :\n \n {SearchRecordInfo}\n \n }\n\n
\n toggleDrawer('right', false)}>\n {sideList('right')}\n \n
\n \n \n {state.disablePreviousButton == true ?\n :\n }\n\n {state.pagedEvents !== undefined &&\n state.pagedEvents.length > 0\n && state.pagedEvents[0].hasOwnProperty(\"EventEndDateTime\") ?\n \n : }\n \n }\n
\n
\n );\n}\nexport default withRouter(CalendarListView);\n","import Moment from 'moment';\r\nimport React, { useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Grid, Button, FormControl, InputLabel, Select, MenuItem, Hidden } from \"@material-ui/core\";\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport ErrorHandling from '../ErrorHandling/ErrorHandling';\r\nimport { genfunction } from '../../helpers';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardHeader from '@material-ui/core/CardHeader';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport CardActions from '@material-ui/core/CardActions';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport ExtraItemDrawer from 'components/CalendarControls/ExtraItemDrawer';\r\nimport Drawer from '@material-ui/core/Drawer';\r\nimport { actionGetExtraItems, actionResetExtraItems } from 'actions';\r\nimport { withRouter } from 'react-router';\r\nimport { actionShopCartSetManageMyBooking } from 'actions';\r\nimport { actionResetBooking } from 'actions';\r\nimport * as underscore from 'underscore'\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\r\nimport StaticDatePicker from '@mui/lab/StaticDatePicker';\r\nimport TextField from '@mui/material/TextField';\r\nimport Badge from '@mui/material/Badge';\r\nimport PickersDay from '@mui/lab/PickersDay';\r\nimport GroupReservationDrawer from './GroupReservationDrawer';\r\n\r\nconst { DefaultCostRateID, CalendarScreenMessage1, CalendarScreenMessage2, HybridViewDefaultLargeImage, HybridViewDefaultSmallImage, Currency, NoEventMessage } = window['runConfig'];\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3),\r\n justifyContent: \"center\"\r\n },\r\n list: {\r\n width: 400,\r\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", \"sans-serif\"'\r\n }\r\n ,\r\n list2: {\r\n width: '100%',\r\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", \"sans-serif\"'\r\n },\r\n image: {\r\n marginBottom: \"10px\"\r\n },\r\n CardHeader: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n TimeSlotSelect: {\r\n marginLeft: 8,\r\n marginRight: 8\r\n },\r\n badgeDot: {\r\n [theme.breakpoints.up('md')]: {\r\n right: \"25% !important\"\r\n }\r\n },\r\n staticcal: {\r\n width: \"100% !important\",\r\n },\r\n hidden: {\r\n visibility: \"hidden\"\r\n },\r\n visible: {\r\n visibility: \"visible\"\r\n },\r\n '@global': {\r\n '.MuiPickerStaticWrapper-root': {\r\n width: \"100% !important\",\r\n minWidth: \"100% !important\"\r\n },\r\n '.css-epd502': {\r\n width: \"100% !important\"\r\n },\r\n '.MuiCalendarPicker-root': {\r\n width: \"100% !important\"\r\n },\r\n '.css-1n2mv2k': {\r\n display: \"flex !important\",\r\n flexDirection: \"row !important\"\r\n },\r\n '.css-mvmu1r': {\r\n paddingTop: \"5px !important\",\r\n // paddingBottom: \"5px !important\",\r\n display: \"flex !important\",\r\n flexDirection: \"row !important\"\r\n },\r\n '.css-1n2mv2k span': {\r\n flexGrow: \"1 !important\",\r\n width: \"auto !important\",\r\n [theme.breakpoints.up('md')]: {\r\n fontSize: \"1.2rem !important\"\r\n }\r\n },\r\n '.Badge_Price': {\r\n flexGrow: \"1 !important\",\r\n justifyContent: \"center !important\"\r\n },\r\n '.MuiPickersDay-root': {\r\n [theme.breakpoints.up('md')]: {\r\n fontSize: \"1.2rem !important\"\r\n }\r\n },\r\n '.MuiPickersDay-dayOutsideMonth': {\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"20px !important\",\r\n }\r\n },\r\n '.MuiPickersDay-dayWithMargin': {\r\n [theme.breakpoints.down('xs')]: {\r\n width: \"20px !important\",\r\n }\r\n }\r\n }\r\n}));\r\n\r\nconst CalendarHybridView = (props) => {\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const [state, setState] = React.useState({\r\n right: false,\r\n tourEventId: 0,\r\n bookingTypeID: 0,\r\n errorMsg: '',\r\n TourEventTimeSlot: [],\r\n selectedDate: undefined,\r\n isContinueToExtraItemDrawer: false,\r\n isContinueToGroupDrawer: false,\r\n organizationID: \"\",\r\n groupSize: \"\",\r\n isEditEvent: false\r\n });\r\n\r\n let tourEvents = useSelector(state => state.reducerExtraItems.extramItems);\r\n const errExtraItem = useSelector(state => state.reducerExtraItems.extramItemsError);\r\n const displayAreasState = useSelector(state => state.reducerDisplayAreas);\r\n const bookingTypes = useSelector(state => state.reducerBookingTypes);\r\n const shopcartreducer = useSelector(state => state.reducerShopCart);\r\n const reducerBooking = useSelector(state => state.reducerBooking);\r\n\r\n useEffect(() => {\r\n\r\n let propsEvent = props.location.event;\r\n if (props.Path == \"/calendar/:id\") {\r\n\r\n propsEvent && Moment(propsEvent.EventDate).format('YYYY-MM') !== Moment(bookingTypes.bookingType.NextTourDate).format('YYYY-MM') ?\r\n actionGetExtraItems(dispatch, props.urlID, false, false, propsEvent.EventDate, false, null)\r\n :\r\n actionGetExtraItems(dispatch, props.urlID, true, false, bookingTypes.bookingType.NextTourDate, false, null);\r\n\r\n }\r\n else {\r\n\r\n if (displayAreasState.displayAreas !== undefined && displayAreasState.displayAreas.length > 0) {\r\n let displayarea = displayAreasState.displayAreas.find(x => x.DisplayAreaNo == props.urlID);\r\n\r\n propsEvent && Moment(propsEvent.EventDate).format('YYYY-MM') !== Moment(displayarea.NextTourDate).format('YYYY-MM') ?\r\n actionGetExtraItems(dispatch, props.urlID, false, true, propsEvent.EventDate, false, null)\r\n :\r\n actionGetExtraItems(dispatch, props.urlID, true, true, displayarea.NextTourDate, false, null);\r\n }\r\n else {\r\n\r\n propsEvent && Moment(propsEvent.EventDate).format('YYYY-MM') !== Moment(displayAreasState.displayArea.NextTourDate).format('YYYY-MM') ?\r\n actionGetExtraItems(dispatch, props.urlID, false, true, propsEvent.EventDate, false, null)\r\n :\r\n actionGetExtraItems(dispatch, props.urlID, true, true, displayAreasState.displayArea.NextTourDate, false, null);\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (state.selectedDate && tourEvents && tourEvents.length > 0) {\r\n let BookingInfoFilter = underscore.filter(tourEvents, (item) => {\r\n return item.BookNowOption == 'Book Now'\r\n && item.BookingInfo && item.BookingInfo.length > 0\r\n && item.EventDate == Moment(state.selectedDate).format('YYYY-MM-DD')\r\n });\r\n\r\n let BookingInfoGroup = underscore.groupBy(BookingInfoFilter, (tourEvent) => { return tourEvent.BookingInfo });\r\n\r\n if (BookingInfoGroup && Object.keys(BookingInfoGroup).length == 1 && BookingInfoGroup[Object.keys(BookingInfoGroup)[0]].length > 0) {\r\n setState({ ...state, TourEventTimeSlot: BookingInfoFilter });\r\n }\r\n\r\n\r\n }\r\n\r\n }, [state.selectedDate, tourEvents]);\r\n\r\n useEffect(() => {\r\n getFirstEventDate();\r\n }, [bookingTypes, tourEvents]);\r\n\r\n const hideSelectButtonOnSingleBooking = () => {\r\n if (state.selectedDate && tourEvents && tourEvents.length > 0) {\r\n let BookingInfoFilter = underscore.filter(tourEvents, (item) => {\r\n return item.BookNowOption == 'Book Now'\r\n && item.BookingInfo && item.BookingInfo.length > 0\r\n && item.EventDate == Moment(state.selectedDate).format('YYYY-MM-DD')\r\n });\r\n\r\n let BookingInfoGroup = underscore.groupBy(BookingInfoFilter, (tourEvent) => { return tourEvent.BookingInfo });\r\n\r\n if (BookingInfoGroup && Object.keys(BookingInfoGroup).length == 1)\r\n return true;\r\n }\r\n\r\n }\r\n\r\n const toggleDrawer = (side, open, event) => {\r\n if (event)\r\n setState({ ...state, [side]: open, tourEventId: event.TourEventID, bookingTypeID: event.BookingTypeID });\r\n else {\r\n\r\n props.location.event = null;\r\n setState({ ...state, [side]: open, tourEventId: 0, groupSize: \"\", organizationID: \"\", isContinueToExtraItemDrawer: false, isContinueToGroupDrawer: false, isEditEvent: false });\r\n }\r\n };\r\n\r\n const checkIsReloadEvent = (event) => {\r\n\r\n let reloadEvent = false;\r\n\r\n if (genfunction.IsEditEvent(bookingTypes.bookingTypes, event)) {\r\n\r\n if (shopcartreducer.events && shopcartreducer.events.length > 0 && shopcartreducer.events.find(x => x.TourEventID == event.TourEventID)) {\r\n reloadEvent = true;\r\n event = shopcartreducer.events.filter(x => x.TourEventID == event.TourEventID)[0];\r\n }\r\n\r\n reloadEvent ? reloadEventForGroups(event) : toggleDrawer('right', true, event);\r\n\r\n }\r\n else {\r\n toggleDrawer('right', true, event);\r\n }\r\n }\r\n\r\n const reloadEventForGroups = (event) => {\r\n\r\n if (event && event.hasOwnProperty(\"TourEventID\")) {\r\n\r\n setState({\r\n ...state,\r\n right: true,\r\n tourEventId: event.TourEventID,\r\n bookingTypeID: event.BookingTypeID,\r\n selectedDate: new Date(event.EventDate),\r\n groupSize: event.GroupSize,\r\n organizationID: event.OrganizationID,\r\n isContinueToGroupDrawer: event.OrganizationID !== \"\" ? true : false,\r\n isEditEvent: true\r\n });\r\n }\r\n\r\n }\r\n\r\n const setIsEditEvent = (value) => {\r\n setState({\r\n ...state, isEditEvent: value\r\n });\r\n }\r\n\r\n const goToExtraItemOrGroupDrawer = (value) => {\r\n setState({ ...state, isContinueToExtraItemDrawer: value, isContinueToGroupDrawer: !value });\r\n }\r\n\r\n const showGroupDrawer = () => {\r\n\r\n const bType = bookingTypes.bookingTypes.filter(x => x.BookingTypeID == state.bookingTypeID)[0];\r\n\r\n if (bType && !state.isContinueToExtraItemDrawer) {\r\n if (bType.RequireCompanyName || bType.ShowTourProductsBasedOnGroupSize || state.isContinueToGroupDrawer)\r\n return true;\r\n }\r\n\r\n return false\r\n }\r\n const onChangeOrganization = (value) => {\r\n\r\n value ? setState({ ...state, organizationID: value.CustomerID }) : setState({ ...state, organizationID: \"\" })\r\n }\r\n\r\n const onChangeGroupSize = (value) => {\r\n\r\n value ? setState({ ...state, groupSize: value.GroupSize }) : setState({ ...state, groupSize: \"\" })\r\n\r\n }\r\n\r\n const sideList = side => {\r\n\r\n return (\r\n < div className={window.matchMedia(\"(min-width: 600px)\").matches ? classes.list : classes.list2} role=\"presentation\" >\r\n\r\n {showGroupDrawer() ?\r\n\r\n \r\n :\r\n \r\n\r\n }\r\n )\r\n };\r\n\r\n const constredirect = (products) => {\r\n setState({ ...state, selectedDate: undefined });\r\n props.constredirect(products);\r\n }\r\n\r\n const errorcancelhandle = () => {\r\n actionResetExtraItems(dispatch);\r\n setState({ ...state, right: false, errorMsg: '' });\r\n }\r\n\r\n const GetBookingInfoLargeImageURL = () => {\r\n if (props.Path == \"/calendar/:id\") {\r\n return bookingTypes.bookingType ? genfunction.replaceEscapeCharacters(bookingTypes.bookingType.LargeImageURL) : \"\";\r\n }\r\n else if (props.Path == \"/calendar/Area/:id\") {\r\n return displayAreasState.displayArea ? genfunction.replaceEscapeCharacters(displayAreasState.displayArea.LargeImageURL) : \"\";\r\n }\r\n return \"\";\r\n }\r\n\r\n const GetBookingInfoBookingInfoDetails = () => {\r\n if (props.Path == \"/calendar/:id\") {\r\n let bookingInfoDetails = '';\r\n\r\n if (bookingTypes.bookingTypes && bookingTypes.bookingTypes.length > 0 && bookingTypes.bookingTypes.filter(x => x.BookingTypeID === parseInt(props.urlID).length > 0)) {\r\n return bookingInfoDetails = bookingTypes.bookingTypes.filter(x => x.BookingTypeID === parseInt(props.urlID))[0].BookingInfoDetails;\r\n }\r\n }\r\n else if (props.Path == \"/calendar/Area/:id\") {\r\n return displayAreasState.displayArea ? displayAreasState.displayArea.BookingInfoDetails : \" \";\r\n }\r\n return \"\";\r\n }\r\n\r\n const GetTourEventsGroup = () => {\r\n\r\n let BookingInfoFilter = underscore.filter(tourEvents, (item) => {\r\n return item.BookNowOption == 'Book Now'\r\n && item.BookingInfo && item.BookingInfo.length > 0\r\n && item.EventDate == Moment(state.selectedDate).format('YYYY-MM-DD')\r\n });\r\n\r\n let BookingInfoGroup = underscore.groupBy(BookingInfoFilter, (tourEvent) => { return tourEvent.BookingInfo });\r\n return BookingInfoGroup;\r\n }\r\n\r\n const GetFilterDates = (date) => {\r\n actionGetExtraItems(dispatch, props.urlID, true, displayAreasState.isDisplay ? true : false, date);\r\n }\r\n\r\n const GetDefaultCostRate = (PriceMatrix) => {\r\n let pamtrix = undefined;\r\n let costrate = shopcartreducer.ismembershipApplied ? shopcartreducer.membershipcostrate : DefaultCostRateID;\r\n \r\n if (PriceMatrix.length > 1) {\r\n pamtrix = PriceMatrix.find(x => x.CostRateID == costrate);\r\n }\r\n else {\r\n pamtrix = PriceMatrix && PriceMatrix.length > 0 ? PriceMatrix[0] : undefined;\r\n }\r\n\r\n return pamtrix;\r\n }\r\n\r\n const redirecttoconfirmbookingchanges = (event) => {\r\n\r\n if (shopcartreducer.managemybooking && reducerBooking.booking[0]) {\r\n\r\n if (reducerBooking.booking[0].TourEventID !== event.TourEventID) {\r\n props.history.push({\r\n pathname: '/confimbookingchanges',\r\n eventID: event.TourEventID,\r\n ismembershipapplied: shopcartreducer.membershipValidation.membershipcostrate,\r\n membercostrate: shopcartreducer.membershipValidation.membershipcostrate,\r\n bookingtypeID: event.BookingTypeID\r\n\r\n })\r\n }\r\n }\r\n }\r\n\r\n const constredirecttofindmybpooking = () => {\r\n actionResetBooking(dispatch);\r\n actionShopCartSetManageMyBooking(dispatch, false, false);\r\n\r\n props.history.push({\r\n pathname: '/findmybooking'\r\n })\r\n\r\n }\r\n\r\n const GetBookingInfoText = (BookingInfoText) => {\r\n return BookingInfoText.substring(0, 100) + \"...\";\r\n }\r\n\r\n const BookingInfoClickHandler = (BookingInfo) => {\r\n\r\n let BookingInfoFilter = underscore.filter(tourEvents, (item) => {\r\n return item.BookingInfo == BookingInfo\r\n && item.BookNowOption == 'Book Now'\r\n && item.EventDate == Moment(state.selectedDate).format('YYYY-MM-DD')\r\n });\r\n\r\n // if (BookingInfoFilter && BookingInfoFilter.length == 1) {\r\n // if (shopcartreducer.managemybooking)\r\n // redirecttoconfirmbookingchanges(getTourEvent(BookingInfoFilter[0].TourEventID))\r\n // else\r\n // toggleDrawer('right', true, getTourEvent(BookingInfoFilter[0].TourEventID))\r\n // }\r\n // else\r\n setState({ ...state, TourEventTimeSlot: BookingInfoFilter });\r\n }\r\n\r\n const StartAndEndTime = (tourEvent, bookingTypeID) => {\r\n let time = \"\";\r\n let bookType = bookingTypes.bookingTypes.find(x => x.BookingTypeID == bookingTypeID);\r\n\r\n if (bookType) {\r\n if (bookType.ShowStartTime) {\r\n time += Moment(tourEvent.EventStartDateTime).format('hh:mm a');\r\n }\r\n\r\n if (bookType.ShowEndTime && !bookType.ShowStartTime) {\r\n time += Moment(tourEvent.EventEndDateTime).format('hh:mm a')\r\n }\r\n\r\n if (bookType.ShowEndTime && bookType.ShowStartTime) {\r\n time += ' - ' + Moment(tourEvent.EventEndDateTime).format('hh:mm a')\r\n }\r\n\r\n time += ' ';\r\n }\r\n return time;\r\n }\r\n\r\n const GetWebDisplayName = (tourEvent, bookingTypeID) => {\r\n let bookType = bookingTypes.bookingTypes.find(x => x.BookingTypeID == bookingTypeID);\r\n return bookType ? tourEvent.EventName : '';\r\n }\r\n\r\n const GetAvailabilityText = (tourEvent, bookingTypeID) => {\r\n let bookType = bookingTypes.bookingTypes.find(x => x.BookingTypeID == bookingTypeID);\r\n if (bookType != undefined && bookType.ShowAvailability)\r\n return ' (' + tourEvent.SeatsAvailable + ' ' + bookType.AvailabilityText + ')';\r\n else\r\n return ' (' + tourEvent.BookNowOption + ')';\r\n }\r\n\r\n const showTourList = (BookingInfo) => {\r\n if (state.TourEventTimeSlot == undefined || state.TourEventTimeSlot.length == 0)\r\n return false;\r\n else\r\n return state.TourEventTimeSlot.find(item => item.BookingInfo == BookingInfo);\r\n }\r\n\r\n const getTourEvent = (TourEventID) => {\r\n return tourEvents.find(x => x.TourEventID == TourEventID);\r\n }\r\n\r\n const getFirstEventDate = () => {\r\n if (state.selectedDate == undefined) {\r\n if (props.match.path == \"/calendar/:id\" && bookingTypes && bookingTypes.bookingTypes && bookingTypes.bookingTypes.length > 0) {\r\n let bookingType = bookingTypes.bookingTypes.find(x => x.BookingTypeID == props.urlID && x.NextTourDate && x.NextTourDate.length > 0);\r\n if (bookingType) {\r\n setState({ ...state, selectedDate: new Date(Moment(bookingType.NextTourDate)) });\r\n }\r\n else {\r\n setState({ ...state, selectedDate: new Date(Moment()) });\r\n }\r\n }\r\n else if (props.match.path == \"/calendar/Area/:id\") {\r\n let btypes = bookingTypes.bookingTypes.filter(x => x.NextTourDate && x.NextTourDate.length > 0);\r\n if (btypes && btypes.length > 0) {\r\n setState({ ...state, selectedDate: new Date(Moment(btypes.NextTourDate)) });\r\n }\r\n else if (tourEvents && tourEvents != \"nocontent\") {\r\n let tourevent = tourEvents.find(event => { return event.BookingInfo && event.BookingInfo.length > 0 && event.BookNowOption == 'Book Now' });\r\n if (tourevent)\r\n setState({ ...state, selectedDate: new Date(Moment(tourevent.EventDate)) });\r\n }\r\n }\r\n }\r\n else {\r\n if (tourEvents && tourEvents != \"nocontent\" && tourEvents.length > 0) {\r\n let tourevent = tourEvents.find(event => {\r\n return event.EventDate >= Moment(new Date()).format('YYYY-MM-DD') && event.BookNowOption == 'Book Now'\r\n\r\n });\r\n\r\n if (tourevent)\r\n setState({ ...state, selectedDate: new Date(Moment(tourevent.EventDate)), TourEventTimeSlot: [] });\r\n else {\r\n setState({ ...state, selectedDate: new Date() });\r\n }\r\n }\r\n }\r\n\r\n reloadEventForGroups(props.location.event);\r\n\r\n }\r\n\r\n const hasEvent = (date) => {\r\n if (tourEvents && tourEvents != \"nocontent\" && tourEvents.length > 0 && date) {\r\n let tourevent = tourEvents.find(event => { return event.BookingInfo && event.BookingInfo.length > 0 && event.BookNowOption == 'Book Now' && event.EventDate == Moment(date).format('YYYY-MM-DD') });\r\n return tourevent;\r\n }\r\n }\r\n\r\n const getEventPrice = (date) => {\r\n if (tourEvents && tourEvents != \"nocontent\") {\r\n let tourevent = tourEvents.find(event => { return event.BookingInfo && event.BookingInfo.length > 0 && event.BookNowOption == 'Book Now' && event.EventDate == Moment(date).format('YYYY-MM-DD') });\r\n if (tourevent && tourevent.TourProducts && tourevent.TourProducts.length > 0) {\r\n let product = tourevent.TourProducts.find(x => x.ShowOnCalendar && x.AffectsCapacity && x.PriceMatrix);\r\n if (product) {\r\n let PriceMatrix = GetDefaultCostRate(product.PriceMatrix);\r\n if (PriceMatrix) {\r\n return Currency + PriceMatrix.Price\r\n }\r\n }\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n const hasMultipleBookingType = () => {\r\n let BookingTypeGroup = underscore.groupBy(bookingTypes.bookingTypes, (bookingType) => { return bookingType.BookingTypeID });\r\n if (BookingTypeGroup && Object.keys(BookingTypeGroup).length > 1)\r\n return true;\r\n else\r\n return false;\r\n }\r\n\r\n const StaticCalenderView = () => {\r\n return (\r\n \r\n \r\n {\r\n setState({ ...state, selectedDate: newValue, TourEventTimeSlot: [], isEditEvent: false });\r\n\r\n }}\r\n\r\n onMonthChange={(day) => {\r\n //setState({ ...state, selectedDate: day, TourEventTimeSlot: [] });\r\n setState({ ...state, selectedDate: new Date(Moment(day)), TourEventTimeSlot: [], isEditEvent: false });\r\n if (tourEvents.length == 0 || Moment(state.selectedDate).format('YYYY-MM') !== Moment(day).format('YYYY-MM')) {\r\n let newdate = Moment(day).format('YYYY-MM-DD');\r\n GetFilterDates(newdate);\r\n }\r\n }}\r\n renderDay={(day, _value, DayComponentProps) => {\r\n\r\n const isSelected = hasEvent(day);\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }}\r\n renderInput={(params) => }\r\n />\r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n\r\n 0 ? errExtraItem : state.errorMsg}\r\n open={errExtraItem.length > 0 || state.errorMsg != \"\" ? true : false}\r\n handleclose={errorcancelhandle} />\r\n\r\n {shopcartreducer.managemybooking && reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty('AllowDateTimeChanges') && !reducerBooking.booking[0].AllowDateTimeChanges ?\r\n <>\r\n \r\n\r\n \r\n {reducerBooking.booking[0].hasOwnProperty('NoChangesMessage') ? reducerBooking.booking[0].NoChangesMessage : 'Date Time Changes are not allowed.'}\r\n \r\n \r\n \r\n \r\n :\r\n <>\r\n {shopcartreducer.managemybooking ?\r\n \r\n\r\n \r\n {CalendarScreenMessage1} {Moment(reducerBooking.booking[0].EventStartDateTime).format('dddd,MMMM D')} at {Moment(reducerBooking.booking[0].EventStartDateTime).format('LT')} {CalendarScreenMessage2}\r\n \r\n \r\n : null}\r\n\r\n \r\n \"LargeImage\"\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {hasEvent(state.selectedDate) ?\r\n underscore.map(GetTourEventsGroup(), (items, key) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \"LargeImage\"\r\n \r\n \r\n \r\n \r\n {GetBookingInfoText(genfunction.replaceEscapeCharacters(items[0].BookingInfoText))}\r\n \r\n \r\n \r\n \r\n\r\n {showTourList(items[0].BookingInfo) ?\r\n \r\n \r\n Please select an available option\r\n {\r\n shopcartreducer.managemybooking ?\r\n redirecttoconfirmbookingchanges(getTourEvent(event.target.value))\r\n :\r\n checkIsReloadEvent(getTourEvent(event.target.value), 'right', true)\r\n }}\r\n >\r\n {state.TourEventTimeSlot.map((event) => {\r\n return ({StartAndEndTime(event, event.BookingTypeID) + GetWebDisplayName(event, event.BookingTypeID) + GetAvailabilityText(event, event.BookingTypeID)})\r\n })}\r\n \r\n \r\n \r\n : \"\"}\r\n \r\n \r\n \r\n )\r\n })\r\n : {Moment(state.selectedDate).format('DD-MMM-YYYY')}{NoEventMessage}}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {ReactHtmlParser(genfunction.replaceEscapeCharacters(GetBookingInfoBookingInfoDetails() ? GetBookingInfoBookingInfoDetails() : \"\"))}\r\n \r\n \r\n\r\n
\r\n toggleDrawer('right', false)}>\r\n {sideList('right')}\r\n \r\n
\r\n }\r\n
\r\n );\r\n}\r\nexport default withRouter(CalendarHybridView);\r\n","import React, { useEffect } from 'react';\r\nimport moment from 'moment';\r\nimport CalendarNavBar from '../../components/CalendarControls/CalendarNavBar';\r\nimport CalendarControl from '../../components/CalendarControls/CalendarControl';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { actionGetExtraItems, actionResetExtraItems } from 'actions'\r\nimport { actionStartAppLoader, actionEndAppLoader } from '../../actions/actionAppLoader';\r\nimport { actionCalendarNavListView, actionCalendarNavCalendarView, actionCalendarHyridView } from 'actions';\r\nimport { genfunction } from '../../helpers';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { actionGetDisplayAreasByType } from 'actions';\r\nimport { actionResetPaymentTransaction } from 'actions';\r\nimport { actionGetBookingTypes } from 'actions';\r\nimport { actionCalendarNavReset } from 'actions';\r\nimport CalendarListView from '../../components/CalendarControls/CalendarListView';\r\nimport CalendarHybridView from '../../components/CalendarControls/CalendarHybridView';\r\nimport { actionGetUserDefinedFields } from 'actions';\r\nconst { CalendarScreenHeading } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3)\r\n },\r\n content: {\r\n textAlign: \"center\"\r\n }\r\n\r\n}));\r\n\r\nconst Calendar = (props) => {\r\n const constredirect = (products) => {\r\n props.history.push({\r\n pathname: '/checkout',\r\n products: products\r\n })\r\n }\r\n\r\n const dispatch = useDispatch();\r\n const classes = useStyles();\r\n\r\n const calendarNavState = useSelector(state => state.reducerCalendarView);\r\n const displayAreasState = useSelector(state => state.reducerDisplayAreas);\r\n const bookingTypes = useSelector(state => state.reducerBookingTypes);\r\n const events = useSelector(state => state.reducerShopCart.events);\r\n const paymenttranstate = useSelector(state => state.reducerPaymentTransaction.Payment);\r\n const bookingType = useSelector(state => state.reducerBookingTypes.bookingType);\r\n const membershipPackages = useSelector(state => state.reducerShopCart.MembershipPackages);\r\n const gaTickets = useSelector(state => state.reducerShopCart.GATickets);\r\n const giftcards = useSelector(state => state.reducerGiftCards);\r\n const bookingUDFS = useSelector(state => state.reducerBookingUserDefinedFields);\r\n const shopcartreducer = useSelector(state => state.reducerShopCart);\r\n const donationProducts = useSelector(state => state.reducerShopCart.donationProducts);\r\n\r\n useEffect(() => {\r\n if (events && events.length == 0 && membershipPackages && membershipPackages.length == 0 && gaTickets && gaTickets.length == 0 &&\r\n giftcards.giftcards && giftcards.giftcards.length == 0 && donationProducts && donationProducts.length == 0 && paymenttranstate.hasOwnProperty(\"ReceiptNo\") && paymenttranstate.ReceiptNo.toString().length > 0) {\r\n actionResetPaymentTransaction(dispatch);\r\n }\r\n }, []);\r\n\r\n\r\n useEffect(() => {\r\n actionCalendarNavReset(dispatch);\r\n\r\n var id = props.match.params.id;\r\n if (props.match.path == \"/calendar/:id\") {\r\n actionGetBookingTypes(dispatch, id, false);\r\n\r\n if (shopcartreducer.managemybooking === false) { // && bookingUDFS.bookingUDFs.length < 1\r\n actionGetUserDefinedFields(dispatch, 'Booking', id, '');\r\n }\r\n\r\n }\r\n\r\n if (props.match.path == \"/calendar/Area/:id\") {\r\n actionGetDisplayAreasByType(dispatch, \"bookingtypes\", id, true);\r\n actionGetBookingTypes(dispatch, id, true);\r\n }\r\n\r\n }, []);\r\n\r\n\r\n useEffect(() => {\r\n if (props.match.path == \"/calendar/Area/:id\" && bookingTypes.bookingTypes.length > 0) {\r\n let bookingListOfIds = null;\r\n\r\n bookingTypes.bookingTypes.map(obj => {\r\n\r\n bookingListOfIds += obj.BookingTypeID;\r\n bookingListOfIds += \",\";\r\n });\r\n\r\n if (bookingListOfIds.length > 0) {\r\n bookingListOfIds = bookingListOfIds.substr(0, bookingListOfIds.length - 1);\r\n }\r\n\r\n if (shopcartreducer.managemybooking === false) { // && bookingUDFS.bookingUDFs.length < 1\r\n actionGetUserDefinedFields(dispatch, 'Booking', '', bookingListOfIds.toString());\r\n }\r\n }\r\n }, [bookingTypes])\r\n\r\n useEffect(() => {\r\n\r\n if ((bookingTypes.bookingTypes && bookingTypes.bookingTypes.length > 0 && bookingTypes.loading === false) && (displayAreasState && displayAreasState.displayAreas && displayAreasState.displayAreas.length > 0)) {\r\n\r\n if (props.match.path == \"/calendar/:id\" && bookingTypes.bookingTypes.find(x => x.BookingTypeID === parseInt(props.match.params.id)) === undefined) {\r\n return;\r\n }\r\n\r\n adjustView();\r\n }\r\n else if (props.match.path == \"/calendar/:id\" && bookingTypes.bookingTypes && bookingTypes.bookingTypes.length > 0) {\r\n\r\n if (props.match.path == \"/calendar/:id\" && bookingTypes.bookingTypes.find(x => x.BookingTypeID === parseInt(props.match.params.id)) === undefined) {\r\n return;\r\n }\r\n\r\n adjustView();\r\n }\r\n else if (props.match.path == \"/calendar/Area/:id\" && displayAreasState && displayAreasState.displayAreas && displayAreasState.displayAreas.length > 0) {\r\n adjustView();\r\n }\r\n\r\n }, [bookingTypes.bookingTypes, displayAreasState.displayAreas])\r\n\r\n\r\n const CheckIsForceListView = () => {\r\n if (props.match.path == \"/calendar/Area/:id\" && displayAreasState\r\n && displayAreasState.displayAreas\r\n && displayAreasState.displayAreas.length > 0) {\r\n let displayArea = displayAreasState.displayAreas.find(x => x.DisplayAreaNo == props.match.params.id);\r\n if (displayArea) {\r\n if (displayArea.ForceListView) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n }\r\n else if (props.match.path == \"/calendar/:id\" && bookingTypes.bookingTypes != undefined && bookingTypes.bookingTypes.length > 0) {\r\n var bkngTyp = bookingTypes.bookingTypes.find(x => x.BookingTypeID === parseInt(props.match.params.id));\r\n if (bkngTyp) {\r\n return bkngTyp.ForceListView;\r\n }\r\n\r\n // return bookingTypes.bookingTypes[0].ForceListView;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n const CheckIsDefaultHybridView = () => {\r\n if (props.match.path == \"/calendar/Area/:id\" && displayAreasState\r\n && displayAreasState.displayAreas\r\n && displayAreasState.displayAreas.length > 0) {\r\n let displayArea = displayAreasState.displayAreas.find(x => x.DisplayAreaNo == props.match.params.id);\r\n if (displayArea) {\r\n if (displayArea.DefaultHybridView) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n }\r\n else if (props.match.path == \"/calendar/:id\" && bookingTypes.bookingTypes != undefined && bookingTypes.bookingTypes.length > 0) {\r\n var bkngTyp = bookingTypes.bookingTypes.find(x => x.BookingTypeID === parseInt(props.match.params.id));\r\n if (bkngTyp) {\r\n return bkngTyp.DefaultHybridView;\r\n }\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n const adjustView = () => {\r\n if (CheckIsDefaultHybridView()) {\r\n actionCalendarHyridView(dispatch);\r\n }\r\n else if (CheckIsForceListView()) {\r\n actionCalendarNavListView(dispatch);\r\n }\r\n else {\r\n if (calendarNavState.viewType === \"\") {\r\n if (window.innerWidth < 850) {\r\n actionCalendarNavListView(dispatch);\r\n }\r\n else {\r\n actionCalendarNavCalendarView(dispatch);\r\n }\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (extramItemsstate.loading === true || bookingUDFS.loading === true) {\r\n actionStartAppLoader(dispatch);\r\n }\r\n else {\r\n actionEndAppLoader(dispatch);\r\n }\r\n })\r\n\r\n const GetFilterDates = (fromDate) => {\r\n\r\n var Id = props.match.params.id;\r\n var showDisplay = false;\r\n let bookingType = {};\r\n let displayArea = {};\r\n\r\n if (props.match.path == \"/calendar/Area/:id\") {\r\n showDisplay = true;\r\n displayArea = displayAreasState.displayAreas.length > 0 ? displayAreasState.displayAreas.find(x => x.DisplayAreaNo == Id) : undefined;\r\n }\r\n else {\r\n\r\n bookingType = bookingTypes.bookingTypes.find(x => x.BookingTypeID == Id);\r\n\r\n if (bookingType !== undefined &&\r\n bookingType.hasOwnProperty('NextTourDate') && bookingType.NextTourDate.length > 0) {\r\n if (moment(genfunction.AddToDateDate(fromDate)).format('YYYY-MM-DD') <\r\n moment(bookingType.NextTourDate).format('YYYY-MM-DD')) {\r\n actionResetExtraItems(dispatch);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n if (bookingType !== undefined) {\r\n actionGetExtraItems(dispatch, Id, true, showDisplay, fromDate, true);\r\n }\r\n }\r\n\r\n const extramItemsstate = useSelector(state => state.reducerExtraItems);\r\n\r\n return (\r\n
\r\n {calendarNavState.viewType !== \"\" && calendarNavState.viewType !== \"HybridView\" ?\r\n <>\r\n
\r\n {CalendarScreenHeading}\r\n
\r\n \r\n \r\n : \"\"}\r\n {calendarNavState.viewType !== \"\" && calendarNavState.viewType === \"CalendarView\" ? : null}\r\n {calendarNavState.viewType !== \"\" && calendarNavState.viewType === \"ListView\" ? : null}\r\n {calendarNavState.viewType !== \"\" && calendarNavState.viewType === \"HybridView\" ? : null}\r\n
\r\n );\r\n}\r\n\r\nexport default Calendar;\r\n","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { Card, CardContent, Grid, Typography, Avatar } from '@material-ui/core';\nimport ArrowDownwardIcon from '@material-ui/icons/ArrowDownward';\nimport MoneyIcon from '@material-ui/icons/Money';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n height: '100%'\n },\n content: {\n alignItems: 'center',\n display: 'flex'\n },\n title: {\n fontWeight: 700\n },\n avatar: {\n backgroundColor: theme.palette.error.main,\n height: 56,\n width: 56\n },\n icon: {\n height: 32,\n width: 32\n },\n difference: {\n marginTop: theme.spacing(2),\n display: 'flex',\n alignItems: 'center'\n },\n differenceIcon: {\n color: theme.palette.error.dark\n },\n differenceValue: {\n color: theme.palette.error.dark,\n marginRight: theme.spacing(1)\n }\n}));\n\nconst Budget = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n \n \n \n \n BUDGET\n \n $24,000\n \n \n \n \n \n \n \n
\n \n \n 12%\n \n \n Since last month\n \n
\n
\n \n );\n};\n\nBudget.propTypes = {\n className: PropTypes.string\n};\n\nexport default Budget;\n","import uuid from 'uuid/v1';\n\nexport default [\n {\n id: uuid(),\n ref: 'CDD1049',\n amount: 30.5,\n customer: {\n name: 'Ekaterina Tankova'\n },\n createdAt: 1555016400000,\n status: 'pending'\n },\n {\n id: uuid(),\n ref: 'CDD1048',\n amount: 25.1,\n customer: {\n name: 'Cao Yu'\n },\n createdAt: 1555016400000,\n status: 'delivered'\n },\n {\n id: uuid(),\n ref: 'CDD1047',\n amount: 10.99,\n customer: {\n name: 'Alexa Richardson'\n },\n createdAt: 1554930000000,\n status: 'refunded'\n },\n {\n id: uuid(),\n ref: 'CDD1046',\n amount: 96.43,\n customer: {\n name: 'Anje Keizer'\n },\n createdAt: 1554757200000,\n status: 'pending'\n },\n {\n id: uuid(),\n ref: 'CDD1045',\n amount: 32.54,\n customer: {\n name: 'Clarke Gillebert'\n },\n createdAt: 1554670800000,\n status: 'delivered'\n },\n {\n id: uuid(),\n ref: 'CDD1044',\n amount: 16.76,\n customer: {\n name: 'Adam Denisov'\n },\n createdAt: 1554670800000,\n status: 'delivered'\n }\n];\n","import React, { useState } from 'react';\nimport clsx from 'clsx';\nimport moment from 'moment';\nimport PerfectScrollbar from 'react-perfect-scrollbar';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Card,\n CardActions,\n CardHeader,\n CardContent,\n Button,\n Divider,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Tooltip,\n TableSortLabel\n} from '@material-ui/core';\nimport ArrowRightIcon from '@material-ui/icons/ArrowRight';\n\nimport mockData from './data';\nimport { StatusBullet } from 'components';\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n content: {\n padding: 0\n },\n inner: {\n minWidth: 800\n },\n statusContainer: {\n display: 'flex',\n alignItems: 'center'\n },\n status: {\n marginRight: theme.spacing(1)\n },\n actions: {\n justifyContent: 'flex-end'\n }\n}));\n\nconst statusColors = {\n delivered: 'success',\n pending: 'info',\n refunded: 'danger'\n};\n\nconst LatestOrders = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n const [orders] = useState(mockData);\n\n return (\n \n \n New entry\n \n }\n title=\"Latest Orders\"\n />\n \n \n \n
\n \n \n \n Order Ref\n Customer\n \n \n \n Date\n \n \n \n Status\n \n \n \n {orders.map(order => (\n \n {order.ref}\n {order.customer.name}\n \n {moment(order.createdAt).format('DD/MM/YYYY')}\n \n \n
\n \n {order.status}\n
\n
\n \n ))}\n
\n
\n
\n
\n
\n \n \n \n View all \n \n \n \n );\n};\n\nLatestOrders.propTypes = {\n className: PropTypes.string\n};\n\nexport default LatestOrders;\n","import uuid from 'uuid/v1';\nimport moment from 'moment';\n\nexport default [\n {\n id: uuid(),\n name: 'Dropbox',\n imageUrl: 'unset.png',\n updatedAt: moment().subtract(2, 'hours')\n },\n {\n id: uuid(),\n name: 'Medium Corporation',\n imageUrl: 'unset.png',\n updatedAt: moment().subtract(2, 'hours')\n },\n {\n id: uuid(),\n name: 'Slack',\n imageUrl: 'unset.png',\n updatedAt: moment().subtract(3, 'hours')\n },\n {\n id: uuid(),\n name: 'Lyft',\n imageUrl: 'unset.png',\n updatedAt: moment().subtract(5, 'hours')\n },\n {\n id: uuid(),\n name: 'GitHub',\n imageUrl: 'unset.png',\n updatedAt: moment().subtract(9, 'hours')\n }\n];\n","import React, { useState } from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Card,\n CardHeader,\n CardContent,\n CardActions,\n Button,\n Divider,\n List,\n ListItem,\n ListItemAvatar,\n ListItemText,\n IconButton\n} from '@material-ui/core';\nimport ArrowRightIcon from '@material-ui/icons/ArrowRight';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\n\nimport mockData from './data';\n\nconst useStyles = makeStyles(() => ({\n root: {\n height: '100%'\n },\n content: {\n padding: 0\n },\n image: {\n height: 48,\n width: 48\n },\n actions: {\n justifyContent: 'flex-end'\n }\n}));\n\nconst LatestProducts = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n const [products] = useState(mockData);\n\n return (\n \n \n \n \n \n {products.map((product, i) => (\n \n \n \n \n \n \n \n \n \n ))}\n \n \n \n \n \n View all \n \n \n \n );\n};\n\nLatestProducts.propTypes = {\n className: PropTypes.string\n};\n\nexport default LatestProducts;\n","import palette from 'theme/palette';\n\nexport const data = {\n labels: ['1 Aug', '2 Aug', '3 Aug', '4 Aug', '5 Aug', '6 Aug'],\n datasets: [\n {\n label: 'This year',\n backgroundColor: palette.primary.main,\n data: [18, 5, 19, 27, 29, 19, 20]\n },\n {\n label: 'Last year',\n backgroundColor: palette.neutral,\n data: [11, 20, 12, 29, 30, 25, 13]\n }\n ]\n};\n\nexport const options = {\n responsive: true,\n maintainAspectRatio: false,\n animation: false,\n legend: { display: false },\n cornerRadius: 20,\n tooltips: {\n enabled: true,\n mode: 'index',\n intersect: false,\n borderWidth: 1,\n borderColor: palette.divider,\n backgroundColor: palette.white,\n titleFontColor: palette.text.primary,\n bodyFontColor: palette.text.secondary,\n footerFontColor: palette.text.secondary\n },\n layout: { padding: 0 },\n scales: {\n xAxes: [\n {\n barThickness: 12,\n maxBarThickness: 10,\n barPercentage: 0.5,\n categoryPercentage: 0.5,\n ticks: {\n fontColor: palette.text.secondary\n },\n gridLines: {\n display: false,\n drawBorder: false\n }\n }\n ],\n yAxes: [\n {\n ticks: {\n fontColor: palette.text.secondary,\n beginAtZero: true,\n min: 0\n },\n gridLines: {\n borderDash: [2],\n borderDashOffset: [2],\n color: palette.divider,\n drawBorder: false,\n zeroLineBorderDash: [2],\n zeroLineBorderDashOffset: [2],\n zeroLineColor: palette.divider\n }\n }\n ]\n }\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { Bar } from 'react-chartjs-2';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Card,\n CardHeader,\n CardContent,\n CardActions,\n Divider,\n Button\n} from '@material-ui/core';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport ArrowRightIcon from '@material-ui/icons/ArrowRight';\n\nimport { data, options } from './chart';\n\nconst useStyles = makeStyles(() => ({\n root: {},\n chartContainer: {\n height: 400,\n position: 'relative'\n },\n actions: {\n justifyContent: 'flex-end'\n }\n}));\n\nconst LatestSales = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n \n Last 7 days \n \n }\n title=\"Latest Sales\"\n />\n \n \n
\n \n
\n
\n \n \n \n Overview \n \n \n \n );\n};\n\nLatestSales.propTypes = {\n className: PropTypes.string\n};\n\nexport default LatestSales;\n","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Card,\n CardContent,\n Grid,\n Typography,\n Avatar,\n LinearProgress\n} from '@material-ui/core';\nimport InsertChartIcon from '@material-ui/icons/InsertChartOutlined';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n height: '100%'\n },\n content: {\n alignItems: 'center',\n display: 'flex'\n },\n title: {\n fontWeight: 700\n },\n avatar: {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n height: 56,\n width: 56\n },\n icon: {\n height: 32,\n width: 32\n },\n progress: {\n marginTop: theme.spacing(3)\n }\n}));\n\nconst TasksProgress = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n \n \n \n \n TASKS PROGRESS\n \n 75.5%\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nTasksProgress.propTypes = {\n className: PropTypes.string\n};\n\nexport default TasksProgress;\n","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { Card, CardContent, Grid, Typography, Avatar } from '@material-ui/core';\nimport AttachMoneyIcon from '@material-ui/icons/AttachMoney';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n height: '100%',\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText\n },\n content: {\n alignItems: 'center',\n display: 'flex'\n },\n title: {\n fontWeight: 700\n },\n avatar: {\n backgroundColor: theme.palette.white,\n color: theme.palette.primary.main,\n height: 56,\n width: 56\n },\n icon: {\n height: 32,\n width: 32\n }\n}));\n\nconst TotalProfit = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n \n \n \n \n TOTAL PROFIT\n \n \n $23,200\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nTotalProfit.propTypes = {\n className: PropTypes.string\n};\n\nexport default TotalProfit;\n","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { Card, CardContent, Grid, Typography, Avatar } from '@material-ui/core';\nimport ArrowUpwardIcon from '@material-ui/icons/ArrowUpward';\nimport PeopleIcon from '@material-ui/icons/PeopleOutlined';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n height: '100%'\n },\n content: {\n alignItems: 'center',\n display: 'flex'\n },\n title: {\n fontWeight: 700\n },\n avatar: {\n backgroundColor: theme.palette.success.main,\n height: 56,\n width: 56\n },\n icon: {\n height: 32,\n width: 32\n },\n difference: {\n marginTop: theme.spacing(2),\n display: 'flex',\n alignItems: 'center'\n },\n differenceIcon: {\n color: theme.palette.success.dark\n },\n differenceValue: {\n color: theme.palette.success.dark,\n marginRight: theme.spacing(1)\n }\n}));\n\nconst TotalUsers = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n \n \n \n \n TOTAL USERS\n \n 1,600\n \n \n \n \n \n \n \n
\n \n \n 16%\n \n \n Since last month\n \n
\n
\n \n );\n};\n\nTotalUsers.propTypes = {\n className: PropTypes.string\n};\n\nexport default TotalUsers;\n","import React from 'react';\nimport { Doughnut } from 'react-chartjs-2';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles, useTheme } from '@material-ui/styles';\nimport {\n Card,\n CardHeader,\n CardContent,\n IconButton,\n Divider,\n Typography\n} from '@material-ui/core';\nimport LaptopMacIcon from '@material-ui/icons/LaptopMac';\nimport PhoneIphoneIcon from '@material-ui/icons/PhoneIphone';\nimport RefreshIcon from '@material-ui/icons/Refresh';\nimport TabletMacIcon from '@material-ui/icons/TabletMac';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n height: '100%'\n },\n chartContainer: {\n position: 'relative',\n height: '300px'\n },\n stats: {\n marginTop: theme.spacing(2),\n display: 'flex',\n justifyContent: 'center'\n },\n device: {\n textAlign: 'center',\n padding: theme.spacing(1)\n },\n deviceIcon: {\n color: theme.palette.icon\n }\n}));\n\nconst UsersByDevice = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n const theme = useTheme();\n\n const data = {\n datasets: [\n {\n data: [63, 15, 22],\n backgroundColor: [\n theme.palette.primary.main,\n theme.palette.error.main,\n theme.palette.warning.main\n ],\n borderWidth: 8,\n borderColor: theme.palette.white,\n hoverBorderColor: theme.palette.white\n }\n ],\n labels: ['Desktop', 'Tablet', 'Mobile']\n };\n\n const options = {\n legend: {\n display: false\n },\n responsive: true,\n maintainAspectRatio: false,\n animation: false,\n cutoutPercentage: 80,\n layout: { padding: 0 },\n tooltips: {\n enabled: true,\n mode: 'index',\n intersect: false,\n borderWidth: 1,\n borderColor: theme.palette.divider,\n backgroundColor: theme.palette.white,\n titleFontColor: theme.palette.text.primary,\n bodyFontColor: theme.palette.text.secondary,\n footerFontColor: theme.palette.text.secondary\n }\n };\n\n const devices = [\n {\n title: 'Desktop',\n value: '63',\n icon: ,\n color: theme.palette.primary.main\n },\n {\n title: 'Tablet',\n value: '15',\n icon: ,\n color: theme.palette.error.main\n },\n {\n title: 'Mobile',\n value: '23',\n icon: ,\n color: theme.palette.warning.main\n }\n ];\n\n return (\n \n \n \n \n }\n title=\"Users By Device\"\n />\n \n \n
\n \n
\n
\n {devices.map(device => (\n \n {device.icon}\n {device.title}\n \n {device.value}%\n \n
\n ))}\n \n
\n \n );\n};\n\nUsersByDevice.propTypes = {\n className: PropTypes.string\n};\n\nexport default UsersByDevice;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { Grid } from '@material-ui/core';\n\nimport {\n Budget,\n TotalUsers,\n TasksProgress,\n TotalProfit,\n LatestSales,\n UsersByDevice,\n LatestProducts,\n LatestOrders\n} from './components';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(4)\n }\n}));\n\nconst Dashboard = () => {\n const classes = useStyles();\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default Dashboard;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/styles';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(4)\n },\n iframe: {\n width: '100%',\n minHeight: 640,\n border: 0\n }\n}));\n\nconst Icons = () => {\n const classes = useStyles();\n\n return (\n
\n \n
\n );\n};\n\nexport default Icons;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { Grid, Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(4)\n },\n content: {\n paddingTop: 150,\n textAlign: 'center'\n },\n image: {\n marginTop: 50,\n display: 'inline-block',\n maxWidth: '100%',\n width: 560\n }\n}));\n\nconst NotFound = () => {\n const classes = useStyles();\n\n return (\n
\n \n \n
\n \n 404: The page you are looking for isn???t here\n \n \n You either tried some shady route or you came here by mistake.\n Whichever it is, try using the navigation\n \n
\n \n \n
\n );\n};\n\nexport default NotFound;\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Card, CardContent, CardActions, Typography, Button, CardHeader } from '@material-ui/core';\r\nimport { genfunction } from 'helpers';\r\nimport ReactHtmlParser from 'react-html-parser';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n card: {\r\n \"&:hover\": {\r\n transform: 'scale(1.02)',\r\n WebkitTransform: 'scale(1.02)',\r\n boxShadow: \"inset 0 0 0 2px\",\r\n cursor: 'pointer'\r\n }\r\n },\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n }\r\n}));\r\n\r\nconst ProductCard = props => {\r\n\r\n const { className, area} = props;\r\n const classes = useStyles();\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {ReactHtmlParser(genfunction.replaceEscapeCharacters(area.DisplayText))}\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ProductCard;\r\n","import React, { useEffect } from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { Grid } from '@material-ui/core';\nimport { ProductCard } from './components';\nimport { useDispatch, useSelector } from 'react-redux';\nimport ErrorHandling from '../../components/ErrorHandling/ErrorHandling';\nimport { actionGetDisplayAreasByType, actionResetDisplayAreas } from 'actions';\nimport { actionStartAppLoader, actionEndAppLoader } from '../../actions/actionAppLoader';\nimport { actionResetBookingTypes } from 'actions';\nimport { actionCalendarNavReset } from 'actions';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(3)\n },\n pagination: {\n marginTop: theme.spacing(3),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end'\n },\n TourPaddingLS: {\n paddingTop: \"100px\"\n },\n TourPaddingSS: {\n paddingTop: \"50px\"\n }\n}));\n\nconst ProductList = (props) => {\n\n const constredirect = (product) => {\n\n if (product.hasOwnProperty(\"UniqueBookingTypeID\")) {\n props.history.push({\n pathname: '/calendar/' + product.UniqueBookingTypeID\n })\n }\n else {\n props.history.push({\n pathname: '/calendar/Area/' + product.DisplayAreaNo\n })\n }\n\n }\n\n const dispatch = useDispatch()\n\n useEffect(() => {\n actionGetDisplayAreasByType(dispatch, \"bookingtypes\", null, false);\n actionCalendarNavReset(dispatch);\n }, []);\n\n\n const classes = useStyles();\n const displayAreasState = useSelector(state => state.reducerDisplayAreas);\n const error = useSelector(state => state.reducerDisplayAreas.displayAreasError);\n const events = useSelector(state => state.reducerShopCart.events);\n const bookingTypes = useSelector(state => state.reducerBookingTypes.bookingTypes);\n\n if (events && events.length < 1 && bookingTypes && bookingTypes.length > 0) {\n actionResetBookingTypes(dispatch);\n }\n\n useEffect(() => {\n\n if (displayAreasState.loading == true) {\n actionStartAppLoader(dispatch);\n }\n else {\n actionEndAppLoader(dispatch);\n }\n\n })\n\n const errorcancelhandle = () => {\n actionResetDisplayAreas(dispatch);\n }\n\n if (displayAreasState.displayAreas === undefined) {\n return
\n 0 ? true : false}\n handleclose={errorcancelhandle} />\n
\n }\n\n return (\n\n
\n\n
\n \n {displayAreasState.displayAreas.map((area, i) => {\n return area.ShowOnline && area !== undefined ?\n \n \n \n\n : null\n })}\n\n \n
\n
\n );\n};\n\nexport default ProductList;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { Grid} from '@material-ui/core';\nimport { SearchInput } from 'components';\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n row: {\n height: '60px',\n display: 'flex',\n alignItems: 'center',\n marginTop: theme.spacing(1)\n },\n spacer: {\n flexGrow: 1\n },\n searchInput : {\n marginRight: theme.spacing(2),\n boxShadow: \"inset 0 0 0 2px \"\n }\n}));\n\nconst ProductsToolbar = props => {\n const { className, ...rest } = props;\n const classes = useStyles();\n\n return (\n \n \n \n \n );\n};\n\nexport default ProductsToolbar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Card,\n CardHeader,\n CardContent,\n CardActions,\n Grid,\n Divider,\n FormControlLabel,\n Checkbox,\n Typography,\n Button\n} from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n root: {},\n item: {\n display: 'flex',\n flexDirection: 'column'\n }\n}));\n\nconst Notifications = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n
\n \n \n \n \n \n \n Notifications\n \n \n }\n label=\"Email\"\n />\n \n }\n label=\"Push Notifications\"\n />\n }\n label=\"Text Messages\"\n />\n \n }\n label=\"Phone calls\"\n />\n \n \n \n Messages\n \n \n }\n label=\"Email\"\n />\n }\n label=\"Push Notifications\"\n />\n \n }\n label=\"Phone calls\"\n />\n \n \n \n \n \n \n Save\n \n \n \n \n );\n};\n\nNotifications.propTypes = {\n className: PropTypes.string\n};\n\nexport default Notifications;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Card,\n CardHeader,\n CardContent,\n CardActions,\n Divider,\n Button,\n TextField\n} from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n root: {}\n}));\n\nconst Password = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n const [values, setValues] = useState({\n password: '',\n confirm: ''\n });\n\n const handleChange = event => {\n setValues({\n ...values,\n [event.target.name]: event.target.value\n });\n };\n\n return (\n \n
\n \n \n \n \n \n \n \n \n \n Update\n \n \n \n \n );\n};\n\nPassword.propTypes = {\n className: PropTypes.string\n};\n\nexport default Password;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { Grid } from '@material-ui/core';\n\nimport { Notifications, Password } from './components';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(4)\n }\n}));\n\nconst Settings = () => {\n const classes = useStyles();\n\n return (\n
\n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default Settings;\n","import React, { Fragment } from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { Grid, Typography as MuiTypography } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(4)\n }\n}));\n\nconst variants = {\n h1: 'Nisi euismod ante senectus consequat phasellus ut',\n h2: 'Nisi euismod ante senectus consequat phasellus ut',\n h3: 'Nisi euismod ante senectus consequat phasellus ut',\n h4: 'Nisi euismod ante senectus consequat phasellus ut',\n h5: 'Nisi euismod ante senectus consequat phasellus ut',\n h6: 'Nisi euismod ante senectus consequat phasellus ut',\n subtitle1: 'Leo varius justo aptent arcu urna felis pede nisl',\n subtitle2: 'Leo varius justo aptent arcu urna felis pede nisl',\n body1:\n 'Justo proin curabitur dictumst semper auctor, consequat tempor, nostra aenean neque turpis nunc. Leo. Sapien aliquet facilisi turpis, elit facilisi praesent porta metus leo. Dignissim amet dis nec ac integer inceptos erat dis Turpis sodales ad torquent. Dolor, erat convallis.Laoreet velit a fames commodo tristique hendrerit sociosqu rhoncus vel sapien penatibus facilisis faucibus ad. Mus purus vehicula imperdiet tempor lectus, feugiat Sapien erat viverra netus potenti mattis purus turpis. Interdum curabitur potenti tristique. Porta velit dignissim tristique ultrices primis.',\n body2:\n 'Justo proin curabitur dictumst semper auctor, consequat tempor, nostra aenean neque turpis nunc. Leo. Sapien aliquet facilisi turpis, elit facilisi praesent porta metus leo. Dignissim amet dis nec ac integer inceptos erat dis Turpis sodales ad torquent. Dolor, erat convallis.',\n caption: 'Accumsan leo pretium conubia ullamcorper.',\n overline: 'Accumsan leo pretium conubia ullamcorper.',\n button: 'Vivamus ultrices rutrum fames dictumst'\n};\n\nconst Typography = () => {\n const classes = useStyles();\n\n return (\n
\n \n {Object.keys(variants).map((key, i) => (\n \n \n {key}\n \n \n {variants[key]}\n \n \n ))}\n \n
\n );\n};\n\nexport default Typography;\n","import React, { useState } from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport PerfectScrollbar from 'react-perfect-scrollbar';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Card,\n CardActions,\n CardContent,\n Avatar,\n Checkbox,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Typography,\n TablePagination\n} from '@material-ui/core';\n\nimport { getInitials } from 'helpers';\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n content: {\n padding: 0\n },\n inner: {\n minWidth: 1050\n },\n nameContainer: {\n display: 'flex',\n alignItems: 'center'\n },\n avatar: {\n marginRight: theme.spacing(2)\n },\n actions: {\n justifyContent: 'flex-end'\n }\n}));\n\nconst UsersTable = props => {\n const { className, users, ...rest } = props;\n\n const classes = useStyles();\n\n const [selectedUsers, setSelectedUsers] = useState([]);\n const [rowsPerPage, setRowsPerPage] = useState(10);\n const [page, setPage] = useState(0);\n\n const handleSelectAll = event => {\n const { users } = props;\n\n let selectedUsers;\n\n if (event.target.checked) {\n selectedUsers = users.map(user => user.id);\n } else {\n selectedUsers = [];\n }\n\n setSelectedUsers(selectedUsers);\n };\n\n const handleSelectOne = (event, id) => {\n const selectedIndex = selectedUsers.indexOf(id);\n let newSelectedUsers = [];\n\n if (selectedIndex === -1) {\n newSelectedUsers = newSelectedUsers.concat(selectedUsers, id);\n } else if (selectedIndex === 0) {\n newSelectedUsers = newSelectedUsers.concat(selectedUsers.slice(1));\n } else if (selectedIndex === selectedUsers.length - 1) {\n newSelectedUsers = newSelectedUsers.concat(selectedUsers.slice(0, -1));\n } else if (selectedIndex > 0) {\n newSelectedUsers = newSelectedUsers.concat(\n selectedUsers.slice(0, selectedIndex),\n selectedUsers.slice(selectedIndex + 1)\n );\n }\n\n setSelectedUsers(newSelectedUsers);\n };\n\n const handlePageChange = (event, page) => {\n setPage(page);\n };\n\n const handleRowsPerPageChange = event => {\n setRowsPerPage(event.target.value);\n };\n\n return (\n \n \n \n
\n \n \n \n \n 0 &&\n selectedUsers.length < users.length\n }\n onChange={handleSelectAll}\n />\n \n Name\n Email\n Location\n Phone\n Registration date\n \n \n \n {users.slice(0, rowsPerPage).map(user => (\n \n \n handleSelectOne(event, user.id)}\n value=\"true\"\n />\n \n \n
\n \n {getInitials(user.name)}\n \n {user.name}\n
\n
\n {user.email}\n \n {user.address.city}, {user.address.state},{' '}\n {user.address.country}\n \n {user.phone}\n \n {moment(user.createdAt).format('DD/MM/YYYY')}\n \n \n ))}\n
\n
\n
\n
\n
\n \n \n \n \n );\n};\n\nUsersTable.propTypes = {\n className: PropTypes.string,\n users: PropTypes.array.isRequired\n};\n\nexport default UsersTable;\n","export default (name = '') =>\n name\n .replace(/\\s+/, ' ')\n .split(' ')\n .slice(0, 2)\n .map(v => v && v[0].toUpperCase())\n .join('');\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/styles';\nimport { Button } from '@material-ui/core';\n\nimport { SearchInput } from 'components';\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n row: {\n height: '42px',\n display: 'flex',\n alignItems: 'center',\n marginTop: theme.spacing(1)\n },\n spacer: {\n flexGrow: 1\n },\n importButton: {\n marginRight: theme.spacing(1)\n },\n exportButton: {\n marginRight: theme.spacing(1)\n },\n searchInput: {\n marginRight: theme.spacing(1)\n }\n}));\n\nconst UsersToolbar = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n
\n \n \n \n \n Add user\n \n
\n
\n \n
\n \n );\n};\n\nUsersToolbar.propTypes = {\n className: PropTypes.string\n};\n\nexport default UsersToolbar;\n","import uuid from 'uuid/v1';\n\nexport default [\n {\n id: uuid(),\n name: 'Ekaterina Tankova',\n address: {\n country: 'USA',\n state: 'West Virginia',\n city: 'Parkersburg',\n street: '2849 Fulton Street'\n },\n email: 'ekaterina.tankova@devias.io',\n phone: '304-428-3097',\n avatarUrl: '/unset.png',\n createdAt: 1555016400000\n },\n {\n id: uuid(),\n name: 'Cao Yu',\n address: {\n country: 'USA',\n state: 'Bristow',\n city: 'Iowa',\n street: '1865 Pleasant Hill Road'\n },\n email: 'cao.yu@devias.io',\n avatarUrl: '/unset.png',\n phone: '712-351-5711',\n createdAt: 1555016400000\n },\n {\n id: uuid(),\n name: 'Alexa Richardson',\n address: {\n country: 'USA',\n state: 'Georgia',\n city: 'Atlanta',\n street: '4894 Lakeland Park Drive'\n },\n email: 'alexa.richardson@devias.io',\n phone: '770-635-2682',\n avatarUrl: '/unset.png',\n createdAt: 1555016400000\n },\n {\n id: uuid(),\n name: 'Anje Keizer',\n address: {\n country: 'USA',\n state: 'Ohio',\n city: 'Dover',\n street: '4158 Hedge Street'\n },\n email: 'anje.keizer@devias.io',\n avatarUrl: '/unset.png',\n phone: '908-691-3242',\n createdAt: 1554930000000\n },\n {\n id: uuid(),\n name: 'Clarke Gillebert',\n address: {\n country: 'USA',\n state: 'Texas',\n city: 'Dallas',\n street: '75247'\n },\n email: 'clarke.gillebert@devias.io',\n phone: '972-333-4106',\n avatarUrl: '/unset.png',\n createdAt: 1554757200000\n },\n {\n id: uuid(),\n name: 'Adam Denisov',\n address: {\n country: 'USA',\n state: 'California',\n city: 'Bakerfield',\n street: '317 Angus Road'\n },\n email: 'adam.denisov@devias.io',\n phone: '858-602-3409',\n avatarUrl: '/unset.png',\n createdAt: 1554670800000\n },\n {\n id: uuid(),\n name: 'Ava Gregoraci',\n address: {\n country: 'USA',\n state: 'California',\n city: 'Redondo Beach',\n street: '2188 Armbrester Drive'\n },\n email: 'ava.gregoraci@devias.io',\n avatarUrl: '/unset.png',\n phone: '415-907-2647',\n createdAt: 1554325200000\n },\n {\n id: uuid(),\n name: 'Emilee Simchenko',\n address: {\n country: 'USA',\n state: 'Nevada',\n city: 'Las Vegas',\n street: '1798 Hickory Ridge Drive'\n },\n email: 'emilee.simchenko@devias.io',\n phone: '702-661-1654',\n avatarUrl: '/unset.png',\n createdAt: 1523048400000\n },\n {\n id: uuid(),\n name: 'Kwak Seong-Min',\n address: {\n country: 'USA',\n state: 'Michigan',\n city: 'Detroit',\n street: '3934 Wildrose Lane'\n },\n email: 'kwak.seong.min@devias.io',\n avatarUrl: '/unset.png',\n phone: '313-812-8947'\n },\n {\n id: uuid(),\n name: 'Merrile Burgett',\n address: {\n country: 'USA',\n state: 'Utah',\n city: 'Salt Lake City',\n street: '368 Lamberts Branch Road'\n },\n email: 'merrile.burgett@devias.io',\n phone: '801-301-7894',\n avatarUrl: '/unset.png',\n createdAt: 1522702800000\n }\n];\n","import React, { useState } from 'react';\nimport { makeStyles } from '@material-ui/styles';\n\nimport { UsersToolbar, UsersTable } from './components';\nimport mockData from './data';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(3)\n },\n content: {\n marginTop: theme.spacing(2)\n }\n}));\n\nconst UserList = () => {\n const classes = useStyles();\n\n const [users] = useState(mockData);\n\n return (\n
\n \n
\n \n
\n
\n );\n};\n\nexport default UserList;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { genfunction } from 'helpers'\nimport CancelIcon from '@material-ui/icons/Cancel'\n\nimport {\n Card, CardContent, Typography, CardHeader, IconButton,\n Table, TableBody, TableCell, TableRow, Hidden, Button\n} from '@material-ui/core';\n\nimport { NumberSpinner } from '../../../components/InputControls'\nimport { withRouter } from 'react-router'\nimport { useDispatch, useSelector } from 'react-redux';\nimport ErrorHandling from '../../../components/ErrorHandling/ErrorHandling';\nimport Moment from 'moment';\nimport { actionDeleteUniqueCoupon } from 'actions';\nimport { actionRemoveCoupon, actionShopCartResetError, actionCalendarNavReset } from 'actions';\n\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n tourheaderbox: {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText\n },\n tourheadertext: {\n marginTop: \"8px\"\n },\n labelbold: {\n fontWeight: \"bold\",\n fontSize: \"18px\"\n },\n tablecell: {\n padding: \"5px\"\n }\n}));\n\nconst BookingTypeCard = props => {\n\n const { className, products } = props;\n const dispatch = useDispatch();\n const displateState = useSelector(state => state.reducerDisplayAreas);\n const [errorMsg, seterrorMsg] = useState(\"\");\n const classes = useStyles();\n\n const bookingTypes = useSelector(state => state.reducerBookingTypes.bookingTypes);\n const shopCartError = useSelector(state => state.reducerShopCart.error);\n\n\n const CalculateMaxTickets = (TourEventID, TourProductID) => {\n\n let event = products.find(event => event.TourEventID == TourEventID);\n\n let fproduct = event.TourProducts.filter(p => p.TourProductID != TourProductID && p.AffectsCapacity);\n let consumedQty = 0;\n if (fproduct && fproduct.length > 0) {\n consumedQty = fproduct.reduce((a, b) => {\n let aqty = a.Quantity === undefined ? 0 : a.Quantity;\n let bqty = b.Quantity === undefined ? 0 : b.Quantity;\n let newobj = { Quantity: aqty + bqty }\n return newobj;\n }).Quantity;\n }\n return event.TourProducts[0].MaximumTickets - consumedQty;\n }\n\n useEffect(() => {\n if (shopCartError && shopCartError.length > 0) {\n seterrorMsg(shopCartError)\n }\n }, [shopCartError])\n\n const changeQuantityHandler = (reference, value) => {\n\n if (ValidateQuanity(reference.eventId, reference.tourProductID, value)) {\n props.changeQuantityHandler(reference, value)\n }\n }\n\n const DeleteCouponsHolds = (CouponID) => {\n\n let removeCoupon = false;\n\n props.products.map(prod => {\n\n if (prod.CouponItems.filter(x => x.CouponID == CouponID && x.isUniqueCoupon).length < 2) {\n removeCoupon = true;\n }\n\n });\n\n return removeCoupon;\n }\n\n const removeclickhandler = (TourEventId, TourProductID, couponItems) => {\n\n\n let coupItem = couponItems ? couponItems.find(x => x.TourProductID == TourProductID && x.isUniqueCoupon) : null;\n\n if (coupItem) {\n if (DeleteCouponsHolds(coupItem.TourCouponID)) {\n actionDeleteUniqueCoupon(dispatch, coupItem.CouponHoldRef);\n }\n }\n\n CheckBeforeRemove(TourEventId, TourProductID);\n\n actionRemoveCoupon(dispatch, TourEventId, TourProductID);\n\n props.removeclickhandler(TourEventId, TourProductID);\n }\n\n const editClickHandler = (product) => {\n\n actionCalendarNavReset(dispatch);\n let bookType = bookingTypes.filter(x => x.BookingTypeID === product.BookingTypeID)[0];\n\n props.history.push({\n\n pathname: bookType.hasOwnProperty(\"UniqueBookingTypeID\") ? '/calendar/' + bookType.UniqueBookingTypeID : '/calendar/Area/' + bookType.DisplayArea,\n event: product\n })\n }\n\n const errorcancelhandle = () => {\n seterrorMsg(\"\");\n actionShopCartResetError(dispatch);\n }\n\n const CheckBeforeRemove = (TourEventId, TourProductID) => {\n let event = products.find(event => event.TourEventID == TourEventId);\n let MinTicket = event.TourProducts[0].MinimumTickets;\n let MaxTicket = event.TourProducts[0].MaximumTickets;\n\n let fproduct = event.TourProducts.filter(p => p.TourProductID != TourProductID & p.AffectsCapacity);\n let consumedQty = 0;\n if (fproduct && fproduct.length > 0) {\n consumedQty = fproduct.reduce((a, b) => {\n let aqty = a.Quantity === undefined ? 0 : a.Quantity;\n let bqty = b.Quantity === undefined ? 0 : b.Quantity;\n let newobj = { Quantity: aqty + bqty }\n return newobj;\n }).Quantity;\n }\n\n if (consumedQty < MinTicket) {\n seterrorMsg(\"Minimum tickets for this event is \" + MinTicket + \", please add more tickets.\")\n return false;\n }\n }\n\n const ValidateQuanity = (TourEventId, TourProductID, changedqty) => {\n\n let event = products.find(event => event.TourEventID == TourEventId);\n let MinTicket = event.TourProducts[0].MinimumTickets;\n let MaxTicket = event.TourProducts[0].MaximumTickets;\n let selectedTPQty;\n\n if (event.TourProducts.find(x => x.TourProductID == TourProductID && x.AffectsCapacity)) {\n selectedTPQty = event.TourProducts.find(x => x.TourProductID == TourProductID && x.AffectsCapacity).Quantity;\n }\n\n let fproduct = event.TourProducts.filter(p => p.AffectsCapacity);\n let consumedQty = 0;\n if (fproduct && fproduct.length > 0) {\n consumedQty = fproduct.reduce((a, b) => {\n let aqty = a.Quantity === undefined ? 0 : a.Quantity;\n let bqty = b.Quantity === undefined ? 0 : b.Quantity;\n let newobj = { Quantity: aqty + bqty }\n return newobj;\n }).Quantity;\n }\n\n let newQty = changedqty - selectedTPQty;\n consumedQty = consumedQty + newQty;\n\n if (event.SeatsAvailable == 0 || event.BookNowOption != \"Book Now\") {\n seterrorMsg(\"Tickets not longer available, please choose another time\");\n return false;\n }\n else if (consumedQty > event.SeatsAvailable) {\n seterrorMsg(\"Maximum of \" + event.SeatsAvailable + \" tickets available\");\n return false;\n }\n else if (consumedQty < MinTicket) {\n seterrorMsg(\"Minimum tickets per order is \" + MinTicket)\n return false;\n }\n else if (consumedQty > MaxTicket) {\n seterrorMsg(\"Maximum of \" + MaxTicket + \" tickets allowed\")\n return false;\n }\n else {\n return true;\n }\n\n }\n\n\n const VisibleStartAndEndTime = (bookingtypeID, starttime) => {\n\n let time = \"\";\n\n const bookType = bookingTypes.filter(x => x.BookingTypeID == bookingtypeID)[0];\n\n if (bookType) {\n if (bookType.ShowStartTime && bookType.ShowEndTime) {\n time += Moment(starttime.EventStartDateTime).format('hh:mm a') + ' - ' + Moment(starttime.EventEndDateTime).format('hh:mm a');\n }\n\n if (bookType.ShowStartTime && !bookType.ShowEndTime) {\n time += Moment(starttime.EventStartDateTime).format('hh:mm a');\n }\n\n if (!bookType.ShowStartTime && bookType.ShowEndTime) {\n time += Moment(starttime.EventEndDateTime).format('hh:mm a');\n }\n }\n\n return time;\n\n }\n\n const ShowWebDisplayName = (bookingtypeID, webName) => {\n\n const bookType = bookingTypes.filter(x => x.BookingTypeID == bookingtypeID)[0];\n return bookType ? webName : '';\n }\n return (\n products.map(product => (\n \n {window.matchMedia(\"(max-width: 500px)\").matches ? '' : genfunction.GetEventDate(product.EventStartDateTime)}}\n title={window.matchMedia(\"(max-width: 500px)\").matches ? ShowWebDisplayName(product.BookingTypeID, product.EventName) + ' ' + VisibleStartAndEndTime(product.BookingTypeID, product) + ' ' + genfunction.GetEventDate(product.EventStartDateTime) : ShowWebDisplayName(product.BookingTypeID, product.EventName) + ' ' + VisibleStartAndEndTime(product.BookingTypeID, product)}\n titleTypographyProps={{ color: \"inherit\" }}\n style={window.matchMedia(\"(max-width: 500px)\").matches ? { textAlign: 'center' } : { textAlign: 'left' }}\n />\n \n \n \n \n {product.TourProducts.map(item => (\n \n \n {!genfunction.IsEditEvent(bookingTypes, product) ?\n\n removeclickhandler(product.TourEventID, item.TourProductID, product.CouponItems)}\n >\n \n \n : null\n\n }\n \n {item.TourProductName}\n \n\n {genfunction.IsEditEvent(bookingTypes, product) ?\n { changeQuantityHandler(refrence, value) }}\n >\n\n :\n { changeQuantityHandler(refrence, value) }}>\n\n }\n \n \n {genfunction.ccyFormat(item.PriceMatrix[0].Price)}\n {genfunction.ccyFormat(genfunction.priceRow(item.Quantity, item.PriceMatrix ? item.PriceMatrix[0].Price : 0))}\n \n \n {genfunction.ccyFormat(genfunction.priceRow(item.Quantity, item.PriceMatrix && item.PriceMatrix.length > 0 ? item.PriceMatrix[0].Price : 0))}\n \n \n ))}\n\n \n \n Subtotal\n {genfunction.ccyFormat(product.TicketAmount)}\n \n \n \n Tax\n {genfunction.ccyFormat(product.TaxAmount)}\n \n \n\n \n {genfunction.IsEditEvent(bookingTypes, product) ?\n : null}\n \n\n Total\n {genfunction.ccyFormat(product.TotalAmount)}\n \n\n \n
\n
\n \n\n ))\n );\n};\n\nBookingTypeCard.propTypes = {\n products: PropTypes.array.isRequired,\n removeclickhandler: PropTypes.func\n};\n\nexport default withRouter(BookingTypeCard);\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport * as underscore from 'underscore'\r\nimport {\r\n TableCell, TableRow, IconButton\r\n} from '@material-ui/core';\r\nimport { genfunction } from 'helpers';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport { actionRemoveCoupon, actionShopCartRemoveGATicketCoupons } from 'actions';\r\nimport { actionDeleteUniqueCoupon } from 'actions';\r\n\r\nimport { useDispatch } from 'react-redux';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\r\n couponAmount: {\r\n color: 'red'\r\n }\r\n}));\r\n\r\nconst CouponItems = (props) => {\r\n\r\n const dispatch = useDispatch();\r\n const classes = useStyles();\r\n\r\n const DeleteCouponsHolds = (CouponID) => {\r\n if (props.products) {\r\n if (props.products.CouponItems.filter(x => x.CouponID == CouponID && x.isUniqueCoupon).length < 2) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n const removeclickhandler = (eventid, productid, couponID, couponRefHold) => {\r\n if (couponRefHold !== null) {\r\n if (DeleteCouponsHolds(couponID)) {\r\n actionDeleteUniqueCoupon(dispatch, couponRefHold);\r\n }\r\n }\r\n actionRemoveCoupon(dispatch, eventid, productid)\r\n }\r\n\r\n const getGATicketCoupon = () => {\r\n let filter = props.gatickets.filter(ticket => ticket.CouponCodeApplied || ticket.CouponCodeApplied != null)\r\n let group = underscore.groupBy(filter, (ticket) => { return ticket.CouponCodeApplied; });\r\n return group;\r\n }\r\n\r\n const getGATicketDiscount = (couponcode) => {\r\n let filter = props.gatickets.filter(ticket => ticket.CouponCodeApplied === couponcode)\r\n var totalDiscount = underscore.reduce(filter, ((memoizer, ticket) => memoizer + (ticket.OriginalTotalAmount - ticket.TotalAmount)), 0);\r\n return totalDiscount;\r\n }\r\n\r\n const getGATicketAmount = () => {\r\n var totalAmount = underscore.reduce(props.gatickets, ((memoizer, ticket) => memoizer + ticket.OriginalTotalAmount), 0);\r\n return totalAmount;\r\n }\r\n\r\n const getDonationProductAmount = () => {\r\n let total = 0;\r\n props.donationProducts.forEach(product => {\r\n total += product.Amount;\r\n });\r\n return total;\r\n }\r\n\r\n const removeGATicketCouponClickHandler = (couponCode) => {\r\n actionShopCartRemoveGATicketCoupons(dispatch, couponCode);\r\n }\r\n\r\n return (\r\n <>\r\n {/* TourEventCoupon */}\r\n {props.products ?\r\n \r\n {props.products.EventName}\r\n {genfunction.ccyFormat(\r\n genfunction.IsNotFullPay(props.products.PaymentOption) ? props.products.TotalSelectedAmount : props.products.TotalAmount)}\r\n : null}\r\n {props.products && props.products.CouponItems.length > 0 ?\r\n props.products.CouponItems.map(e =>\r\n \r\n \r\n removeclickhandler(e.TourEventID, e.TourProductID, e.CouponID, e.CouponHoldRef)}>\r\n \r\n {' ' + e.ApplyDiscountTourProductName + ' (' + e.UniqueCouponCode + ')'}\r\n \r\n -{genfunction.ccyFormat(\r\n genfunction.IsNotFullPay(e.PaymentOption) ? e.TotalSelectedAmount : e.TotalAmount)}\r\n \r\n ) : null\r\n }\r\n\r\n {props.donationProducts && props.donationProducts.length > 0 ?\r\n \r\n {\"Donations\"}\r\n {genfunction.ccyFormat(getDonationProductAmount())}\r\n : null}\r\n \r\n {/* GATicketCoupon */}\r\n {props.gatickets && props.gatickets.length > 0 ?\r\n \r\n {\"Tickets\"}\r\n {genfunction.ccyFormat(getGATicketAmount())}\r\n : null}\r\n {props.gatickets && props.gatickets.length > 0 ?\r\n underscore.map(getGATicketCoupon(), (items, groupby) => {\r\n return (\r\n \r\n \r\n removeGATicketCouponClickHandler(groupby)}\r\n >\r\n \r\n {'Ticket Coupon (' + groupby + \")\"}\r\n \r\n -{genfunction.ccyFormat(getGATicketDiscount(groupby))}\r\n \r\n )\r\n }) : null}\r\n\r\n \r\n );\r\n}\r\n\r\nexport default CouponItems;","import React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles, makeStyles } from '@material-ui/styles';\r\nimport { genfunction } from 'helpers'\r\nimport CancelIcon from '@material-ui/icons/Cancel'\r\nimport {\r\n Card, CardContent, CardHeader, Grid, IconButton,\r\n Table, TableBody, TableCell, TableRow, Typography\r\n} from '@material-ui/core';\r\nimport CouponItems from '../components/CouponItems';\r\nimport { actionShopCartResetDonation, actionShopCartRemoveCouponFromMembershiptype } from 'actions';\r\n\r\nimport { actionDeleteGiftCardHold } from 'actions';\r\nimport { actionGetTransactionFee } from 'actions';\r\n\r\nconst { TransactionFeeProductID, ApplyTransactionFee } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n labelbold: {\r\n fontWeight: \"bold\",\r\n fontSize: \"18px\"\r\n },\r\n paybutton: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n width: \"100%\",\r\n marginTop: \"10px\"\r\n },\r\n spacer: {\r\n flexGrow: 1\r\n },\r\n row: {\r\n height: '42px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginTop: theme.spacing(1)\r\n },\r\n center: {\r\n position: \"relative\",\r\n margin: \"auto\",\r\n bottom: \"70%\"\r\n },\r\n diplaynone: {\r\n display: \"none\"\r\n },\r\n textaligncenter: {\r\n textAlign: \"center\"\r\n },\r\n hidden: {\r\n visibility: \"hidden\"\r\n },\r\n cashlessvalue: {\r\n color: theme.palette.error.main\r\n },\r\n couponAmount: {\r\n color: 'red'\r\n }\r\n}));\r\n\r\nconst PayableCard = props => {\r\n const { products, cashless, membershipPackages, gatickets, orderProducts, donationProducts } = props;\r\n\r\n let hasitems = (products && products.length) > 0\r\n || (membershipPackages && membershipPackages.length > 0)\r\n || (gatickets && gatickets.length > 0)\r\n || (orderProducts && orderProducts.length > 0)\r\n || (donationProducts && donationProducts.length > 0);\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const donation = useSelector(state => state.reducerShopCart.donation);\r\n const transactionfee = useSelector(state => state.reducerTransactionFee);\r\n const giftcards = useSelector(state => state.reducerGiftCards);\r\n const showTransFee = useSelector(state => state.reducerShopCart.showTransactionFee);\r\n\r\n\r\n if (giftcards.giftcards && giftcards.giftcards.length > 0) {\r\n if (giftcards.giftcards.filter(x => x.AddedToCart === true).length > 0) {\r\n hasitems = true;\r\n }\r\n }\r\n\r\n const removecashlesskhandler = (GiftcardHoldRef) => {\r\n actionDeleteGiftCardHold(dispatch, GiftcardHoldRef);\r\n }\r\n\r\n const RemoveDonation = () => {\r\n actionShopCartResetDonation(dispatch);\r\n }\r\n\r\n useEffect(() => {\r\n if (ApplyTransactionFee && TransactionFeeProductID > 0) {\r\n actionGetTransactionFee(dispatch, TransactionFeeProductID, 'transactionfee');\r\n }\r\n }, [])\r\n\r\n const GetMembershipTypeDiscount = (memTypeID) => {\r\n let filter = membershipPackages[0].MembershipProducts.filter(x => x.MembershipTypeID === memTypeID)[0];\r\n var totalDiscount = 0;\r\n\r\n if (filter.MembershipType == \"AddOn\") {\r\n totalDiscount = filter.CouponCodeIncTax;\r\n }\r\n else {\r\n totalDiscount = filter.Users.length * filter.CouponCodeIncTax;\r\n }\r\n\r\n return totalDiscount;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {donation.isdonationApplied ? \r\n \r\n RemoveDonation()}>\r\n \r\n {' ' + donation.productName}\r\n \r\n {genfunction.ccyFormat(parseFloat(donation.price))}\r\n : null}\r\n\r\n {products.map(product => (\r\n \r\n ))}\r\n\r\n {gatickets && gatickets.length > 0 ?\r\n \r\n : \"\"}\r\n\r\n {donationProducts && donationProducts.length > 0 ?\r\n \r\n : \"\"}\r\n\r\n {orderProducts && orderProducts.length > 0 ?\r\n \r\n {\"Order\"}\r\n {genfunction.ccyFormat(genfunction.getOrderProductsTotalPrice(orderProducts).total)}\r\n : \"\"}\r\n\r\n {membershipPackages && membershipPackages.length > 0 ?\r\n \r\n : \"\"}\r\n\r\n {membershipPackages && membershipPackages.length > 0 ?\r\n membershipPackages.map(pack => (\r\n pack.MembershipProducts.filter(x => x.MembershipType === \"Membership\" && x.Users.length > 0 || x.MembershipType === \"AddOn\" && x.Quantity > 0)\r\n .map(memType => (\r\n <>\r\n \r\n \r\n\r\n {' ' + memType.ProductName}\r\n \r\n {genfunction.ccyFormat((memType.Users !== undefined ? memType.TotalAmount * memType.Users.length : memType.TotalAmount))}\r\n \r\n {memType.hasOwnProperty('CouponCodeApplied') && memType.CouponCodeApplied.length > 0 ?\r\n \r\n \r\n actionShopCartRemoveCouponFromMembershiptype(dispatch, memType.MembershipTypeID)}>\r\n \r\n {memType.ProductName + '(' + memType.CouponCodeApplied + \")\"}\r\n \r\n {memType.hasOwnProperty('NoFinancialDis') && memType.NoFinancialDis ?\r\n Time Extension applied\r\n :\r\n - {genfunction.ccyFormat(GetMembershipTypeDiscount(memType.MembershipTypeID))}\r\n }\r\n\r\n \r\n : ''}\r\n \r\n\r\n ))\r\n )\r\n ) : null}\r\n\r\n {showTransFee && transactionfee.transactionFee[0] && transactionfee.transactionFee[0].Price > 0 && transactionfee.transactionFee !== \"nocontent\" ? \r\n\r\n \r\n \r\n {transactionfee.transactionFee[0].ProductName}\r\n \r\n {genfunction.ccyFormat(parseFloat(genfunction.TransactionFee(products, donation, transactionfee.transactionFee[0], cashless, membershipPackages, gatickets, giftcards.giftcards, orderProducts, donationProducts)))}\r\n : null}\r\n\r\n {cashless.map(objcashless => (\r\n \r\n \r\n removecashlesskhandler(objcashless.GiftcardHoldRef)}\r\n >\r\n \r\n \r\n {'Giftcard Applied - ' + genfunction.maskGiftCardNo(objcashless.GiftcardNo)}\r\n {'-' + genfunction.ccyFormat(objcashless.HoldAmount)}\r\n \r\n ))}\r\n \r\n Amount To Pay\r\n {genfunction.ccyFormat(genfunction.subproducttotal(products, cashless, donation, (showTransFee ? transactionfee.transactionFee[0] : null), membershipPackages, gatickets, giftcards.giftcards, orderProducts, donationProducts))}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n No item in the cart\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n );\r\n};\r\n\r\nPayableCard.propTypes = {\r\n products: PropTypes.array.isRequired\r\n};\r\n\r\nexport default PayableCard;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles, makeStyles } from '@material-ui/styles';\r\nimport { CircularProgress, Typography } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n center: {\r\n position: \"relative\",\r\n margin: \"auto\",\r\n bottom: \"70%\",\r\n height: \"0px\"\r\n },\r\n diplaynone: {\r\n display: \"none\"\r\n },\r\n textaligncenter: {\r\n textAlign: \"center\"\r\n }\r\n}));\r\n\r\nconst ProcessingBox = props => {\r\n const { isshow, title, text1, text2 } = props;\r\n const classes = useStyles();\r\n return (\r\n\r\n
\r\n
\r\n \r\n {title}\r\n {text1}\r\n {text2}\r\n
\r\n
\r\n\r\n );\r\n};\r\n\r\nProcessingBox.propTypes = {\r\n isshow: PropTypes.bool.isRequired,\r\n title: PropTypes.string.isRequired,\r\n text1: PropTypes.string.isRequired,\r\n text2: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default ProcessingBox;\r\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { Typography, Button, Card, CardHeader, CardContent, CardActions, Grid, Link } from '@material-ui/core';\nimport { CheckCircleOutlineOutlined } from '@material-ui/icons';\nimport { genfunction } from '../../../helpers'\nimport theme from '../../../theme'\nimport DataAccess from '../../../api/constants';\nimport Moment from 'moment';\nimport { actionResetBookingTypes } from 'actions';\nimport { useDispatch, useSelector } from 'react-redux';\n\nconst { CustomMessageforconfirmpage, BookingTypeBarcodeHeader, PaymentCompleteTitle, ConfirmationReceiptMessage,\n DisableMemberPassBarcode, RedirectWaiverSigner, WaiverSignMessage, ShowReadableBarcode } = window['runConfig'];\n\nconst useStyles = makeStyles(theme => ({\n center: {\n position: \"relative\",\n margin: \"auto\",\n maxWidth: \"400px\"\n },\n diplaynone: {\n display: \"none\"\n },\n textaligncenter: {\n textAlign: \"center\"\n },\n headerbox: {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n textAlign: \"left\"\n },\n footerbox: {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n textAlign: \"left\",\n padding: \"16px\"\n },\n headertext: {\n marginTop: \"8px\",\n marginRight: \"10px\"\n },\n image: {\n border: \"5px solid white\"\n }\n\n}));\n\nconst PaymentCompletebox = props => {\n const { isshow, transaction } = props;\n const classes = useStyles();\n const dispatch = useDispatch();\n\n const bookingTypes = useSelector(state => state.reducerBookingTypes.bookingTypes);\n const ALLGATickets = useSelector(state => state.reducerGaTicket.GATickets);\n\n const onClickHandler = () => {\n actionResetBookingTypes(dispatch);\n props.onClickHandler()\n }\n\n const VisibleStartAndEndTime = (tourEvent) => {\n\n let time = \"\";\n\n const bookType = bookingTypes.filter(x => x.BookingTypeID == tourEvent.BookingTypeID)[0];\n\n if (bookType) {\n if (bookType.ShowStartTime && bookType.ShowEndTime) {\n time += genfunction.GetEventDateReceiptFormat(tourEvent.EventStartDateTime) + ' - ' + Moment(tourEvent.EventEndDateTime).format('hh:mm a');\n }\n\n if (bookType.ShowStartTime && !bookType.ShowEndTime) {\n time += genfunction.GetEventDateReceiptFormat(tourEvent.EventStartDateTime);\n }\n\n if (!bookType.ShowStartTime && bookType.ShowEndTime) {\n time += genfunction.GetEventDateReceiptFormat(tourEvent.EventEndDateTime);\n }\n\n if (!bookType.ShowStartTime && !bookType.ShowEndTime) {\n time += genfunction.GetEventDateReceiptFormatwithoutTime(tourEvent.EventStartDateTime);\n }\n }\n\n return time;\n }\n\n const ShowWebDisplayName = (tourEvent) => {\n const bookType = bookingTypes.filter(x => x.BookingTypeID == tourEvent.BookingTypeID)[0];\n return bookType ? tourEvent.EventName : '';\n }\n\n const ShowTicketDisplayName = (ticket) => {\n const t = ALLGATickets.find(x => x.ProductID === ticket.ProductID);\n return t && t.ProductName ? t.ProductName : '';\n }\n\n const ShowWaiverLinks = (tourEvent) => {\n const bookType = bookingTypes.find(x => x.BookingTypeID == tourEvent.BookingTypeID);\n return bookType && bookType.WaiverRequired;\n }\n\n const getEvent = (toureventid) => {\n if (toureventid)\n return transaction.Events.find(x => x.TourEventID == toureventid)\n }\n\n const getGATickets = () => {\n const tickets = transaction.Products.filter(ticket => ticket.GATickets && ticket.GATickets.length > 0);\n return tickets;\n }\n\n const GetGiftCards = () => {\n let giftcards = transaction.Products.filter(x => x.Giftcards && x.Giftcards.length > 0);\n return giftcards;\n }\n const groupbyTourEvent = () => {\n let products = [];\n transaction.Products.map(item => {\n let itemobj = products.find(x => x.TourEventID == item.TourEventID);\n if (itemobj == null || itemobj == undefined) {\n if (item.TourEventID !== undefined) {\n products.push(item);\n }\n }\n })\n return products;\n }\n\n const GetMembershipPackage = () => {\n\n let membershippackage = [];\n let memPack = {\n packagename: transaction.MembershipPackages[0] && transaction.MembershipPackages[0].hasOwnProperty(\"PackageName\") ? transaction.MembershipPackages[0].PackageName : \"\",\n expiry: '',\n primaryMemberNo: 0\n };\n\n if (transaction.Products && transaction.Products.length > 0) {\n transaction.Products.map(item => {\n if (item.hasOwnProperty(\"MemberCustomerID\") && item.hasOwnProperty(\"MembershipPackageID\")) {\n if (item.MemberCustomerID === transaction.CustomerID) {\n\n memPack.expiry = item.MembershipExpiryDate;\n memPack.primaryMemberNo = item.MemberNo;\n\n if (membershippackage.length == 0) {\n membershippackage.push(memPack);\n }\n }\n }\n });\n }\n\n return membershippackage;\n }\n\n const getProductOptions = (product) => {\n if (product.Options) {\n\n let productWithOptions = product.Options.filter(x => x.Products && x.Products.length > 0 && x.Products.find(y => y.IsSelected == true) != undefined);\n if (productWithOptions && productWithOptions.length > 0) {\n return (\n productWithOptions.map(option => {\n return (\n option.Products.map(opproduct => {\n return (\n opproduct.IsSelected ?\n \n {genfunction.replaceEscapeCharacters(opproduct.ProductName)}\n : \"\"\n )\n }))\n })\n );\n }\n }\n\n return \"\";\n }\n\n const hasAnyBarcodesToShow = () => {\n let hasBarcodes = false;\n if (getGATickets().length > 0 || groupbyTourEvent().length > 0 || GetMembershipPackage().length > 0 || GetGiftCards().length > 0) {\n hasBarcodes = true;\n }\n return hasBarcodes;\n }\n\n if (transaction.hasOwnProperty('Products') == false)\n return (\"\");\n else {\n\n let amounts = genfunction.GetTotalAmount(transaction.Products)\n\n return (\n
\n
\n \n {PaymentCompleteTitle}\n Thank you {transaction.Customer.FirstName + \" \" + transaction.Customer.LastName}!\n {ConfirmationReceiptMessage}\n {transaction.Customer.CustomerAddress[0].Email}\n {transaction.TabID ?\n {\"Order #: \" + transaction.TabID + \" | \" + \"Location : \" + transaction.TabLocationName}\n : \"\"}\n \n Receipt # {transaction.ReceiptNo}}\n title={\"Transaction Summary\"}\n titleTypographyProps={{ color: \"inherit\" }}\n />\n \n \n \n {transaction.OrderProducts.map(product => {\n return (\n \n \n \n {product.Quantity}x{genfunction.replaceEscapeCharacters(product.ProductName)}\n \n {getProductOptions(product)}\n \n \n \n {genfunction.ccyFormat(genfunction.getOrderProductsTotalPrice([product]).subtotal)}\n \n \n \n )\n })}\n \n \n Total Sales\n Total Tax\n \n \n {genfunction.ccyFormat(amounts.totalExclTax)}\n {genfunction.ccyFormat(amounts.totalTax)}\n \n \n \n \n \n \n Total Paid\n \n \n {genfunction.ccyFormat(amounts.totalInclTax)}\n \n \n \n \n {hasAnyBarcodesToShow() ?\n \n \n \n {\n getGATickets().length > 0 ? getGATickets().map(ticket => (\n ticket.GATickets.map(gaticket => (\n
\n {ShowTicketDisplayName(ticket)}\n \"Logo\"\n
\n ))\n : null\n }\n\n {\n GetMembershipPackage().length > 0 && GetMembershipPackage().map(item => (\n
\n {item.packagename}\n {'Expire : ' + genfunction.GetEventDateReceiptFormatwithoutTime(item.expiry)}\n {DisableMemberPassBarcode ?\n \"Logo\" ({\r\n\r\n box100per: {\r\n width: \"100%\",\r\n height: \"50px\",\r\n margin: \"5% 0% 5% 0%\"\r\n }\r\n}));\r\n\r\nconst FreeTicketForm = (props) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n \r\n {FreeBookingMessage1}\r\n \r\n
\r\n \r\n {FreeBookingMessage2}\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default FreeTicketForm;","import React, { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Grid, InputAdornment, InputLabel, FormControl, Select, MenuItem, FormHelperText } from '@material-ui/core';\r\nimport { actionResetFormErrorState, actionSetFormErrorState, actionSetFieldValueState } from 'actions';\r\nimport CryptoENC from 'crypto-js/enc-utf8';\r\nimport CryptoAES from 'crypto-js/aes'\r\nimport { useGoogleReCaptcha } from 'react-google-recaptcha-v3';\r\nimport theme from '../../theme';\r\nimport { CreditCard, VpnKey, DateRange } from '@material-ui/icons';\r\nimport { genfunction } from 'helpers';\r\nimport { actionPostPaymentTransaction } from 'actions';\r\n\r\nconst { spreedlyEnvironment, RecaptchaV3Client, StreetAddressTypeID, BillingAddressTypeID, UseStreetAddressForAVS } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\r\n iframebox: {\r\n marginTop: \"-13px\",\r\n height: \"31px\"\r\n },\r\n iconforiframe: {\r\n marginTop: \"18px\"\r\n },\r\n displaynone: {\r\n display: \"none\"\r\n },\r\n box100per: {\r\n width: \"100%\"\r\n },\r\n}));\r\n\r\nlet iframeinputstyle = \"font-family: Roboto, Helvetica, Arial, sans-serif; padding: 4px 5px 4px 30px; font-size: 16px;\"\r\n\r\n\r\nconst { forwardRef, useRef, useImperativeHandle } = React;\r\n\r\nconst Spreedly = forwardRef((props, ref) => {\r\n\r\n const customer = useSelector(state => state.reducerCustomer);\r\n const reducerBooking = useSelector(state => state.reducerBooking);\r\n let booking = {};\r\n\r\n if (reducerBooking.booking[0] != null) {\r\n booking = reducerBooking.booking[0];\r\n }\r\n\r\n\r\n useImperativeHandle(ref, () => ({\r\n\r\n TransactionCall(requiredFields) {\r\n requiredFields[\"eligible_for_card_updater\"] = 'false';\r\n window.Spreedly.tokenizeCreditCard(requiredFields);\r\n },\r\n ZeroDollarTransactionCall(requiredFields) {\r\n\r\n var client = GetClient(requiredFields[\"first_name\"], requiredFields[\"last_name\"],\r\n requiredFields[\"email\"], UseStreetAddressForAVS ? requiredFields[\"address1\"] : '',\r\n requiredFields[\"address2\"], requiredFields[\"city\"],\r\n requiredFields[\"state\"], requiredFields[\"zip\"], requiredFields[\"country\"], requiredFields[\"phone_number\"], requiredFields[\"shipping_address1\"], requiredFields[\"shipping_address2\"],\r\n requiredFields[\"shipping_city\"], requiredFields[\"shipping_state\"], requiredFields[\"shipping_zip\"], requiredFields[\"shipping_country\"], requiredFields[\"shipping_phone_number\"]);\r\n\r\n if (RecaptchaV3Client && RecaptchaV3Client != '') {\r\n executeRecaptcha(\"checkout\").then(recaptchaToken => {\r\n paymentTokenHandler({ token: null }, client, recaptchaToken);\r\n }).catch(error => {\r\n seterrorMsg(\"Recaptcha token not fetched\")\r\n })\r\n }\r\n else {\r\n paymentTokenHandler({ token: null }, client, \"\");\r\n }\r\n },\r\n CardOnFileTransaction() {\r\n\r\n let cardonfileToken = booking.hasOwnProperty('PaymentToken') && booking.PaymentToken.length > 0 ?\r\n booking.PaymentToken.substring(9, booking.PaymentToken.length) : '';\r\n\r\n if (RecaptchaV3Client && RecaptchaV3Client != '') {\r\n executeRecaptcha(\"checkout\").then(recaptchaToken => {\r\n paymentTokenHandler({ token: cardonfileToken }, customer.customer && customer.customer.length > 0 ? customer.customer : \"\", recaptchaToken);\r\n }).catch(error => {\r\n seterrorMsg(\"Recaptcha token not fetched\")\r\n })\r\n }\r\n else {\r\n paymentTokenHandler({ token: cardonfileToken }, customer.customer && customer.customer.length > 0 ? customer.customer : \"\", \"\");\r\n }\r\n },\r\n\r\n ReloadSpreedly() {\r\n window.Spreedly.reload();\r\n },\r\n PaymentLoaded() {\r\n return window.Spreedly;\r\n }\r\n\r\n }));\r\n\r\n\r\n //const Spreedly = props => {\r\n\r\n const dispatch = useDispatch();\r\n const environmentKey = CryptoAES.decrypt(spreedlyEnvironment, '1271').toString(CryptoENC);\r\n const { executeRecaptcha } = useGoogleReCaptcha();\r\n const classes = useStyles();\r\n\r\n const errorstate = useSelector(state => state.reducerFormError.errorstate);\r\n const formfields = useSelector(state => state.reducerFormError.formfields);\r\n\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n\r\n useEffect(() => {\r\n const script = document.createElement(\"script\");\r\n script.src = \"https://core.spreedly.com/iframe/iframe-v1.min.js\";\r\n script.async = true;\r\n document.body.appendChild(script);\r\n script.onload = () => scriptLoaded();\r\n }, []);\r\n\r\n const GetClient = (firstName, lastName, email, street1, stree2, city, state, postCode, country, mobilePhone, shipping_address1, shipping_address2, shipping_city, shipping_state,\r\n shipping_zip, shipping_country, shipping_phone_number) => {\r\n\r\n var client = [\r\n {\r\n \"CustomerType\": \"Individual\",\r\n \"FirstName\": firstName,\r\n \"LastName\": lastName,\r\n \"CreatedAsGuest\": true,\r\n \"GuestEmail\": email,\r\n \"DateOfBirth\": \"\",\r\n \"CustomerAddress\": [\r\n {\r\n \"IsPrimaryAddress\": true,\r\n \"AddressTypeID\": StreetAddressTypeID,\r\n \"Email\": email,\r\n \"Street1\": street1,\r\n \"Street2\": stree2,\r\n \"CitySuburb\": city,\r\n \"State\": state,\r\n \"Postcode\": postCode,\r\n \"Country\": country,\r\n \"MobilePhone\": mobilePhone\r\n },\r\n {\r\n \"IsPrimaryAddress\": false,\r\n \"AddressTypeID\": BillingAddressTypeID,\r\n \"Email\": email,\r\n \"Street1\": shipping_address1,\r\n \"Street2\": shipping_address2,\r\n \"CitySuburb\": shipping_city,\r\n \"State\": shipping_state,\r\n \"Postcode\": shipping_zip,\r\n \"Country\": shipping_country,\r\n \"MobilePhone\": shipping_phone_number\r\n }\r\n ],\r\n \"LinkedIndividuals\": []\r\n }\r\n ]\r\n\r\n return client;\r\n }\r\n\r\n const reseterrorfield = () => {\r\n window.Spreedly.setStyle(\"number\", iframeinputstyle + \"width:100%;border-bottom: 1px solid gray;\")\r\n window.Spreedly.setStyle(\"cvv\", iframeinputstyle + \"width:25%;border-bottom: 1px solid gray;\")\r\n actionResetFormErrorState(dispatch);\r\n }\r\n\r\n const errorfield = (errorfield, errortext, errorstate) => {\r\n actionSetFormErrorState(dispatch, errorfield, errortext, errorstate)\r\n\r\n if (errorfield === \"number\")\r\n window.Spreedly.setStyle(\"number\", iframeinputstyle + \"width:100%;border-bottom: 2px solid \" + theme.palette.error.main + \"; \");\r\n else if (errorfield === \"cvv\")\r\n window.Spreedly.setStyle(\"cvv\", iframeinputstyle + \"width:25%;border-bottom: 2px solid \" + theme.palette.error.main + \"; \");\r\n }\r\n\r\n const scriptLoaded = () => {\r\n\r\n window.Spreedly.on(\"ready\", () => {\r\n window.Spreedly.setFieldType(\"cvv\", \"text\");\r\n window.Spreedly.setFieldType(\"number\", \"text\");\r\n window.Spreedly.setNumberFormat(\"prettyFormat\");\r\n window.Spreedly.setStyle(\"number\", iframeinputstyle + \"width:100%;border-bottom: 1px solid gray;\")\r\n window.Spreedly.setStyle(\"cvv\", iframeinputstyle + \"width:25%;border-bottom: 1px solid gray;\")\r\n });\r\n\r\n window.Spreedly.on('errors', (errors) => {\r\n for (var i = 0; i < errors.length; i++) {\r\n if (errors[i].key === \"errors.blank\" || errors[i].key === \"errors.invalid\" ||\r\n errors[i].key === \"errors.blank_card_type\" || errors[i].key === \"errors.expired\") {\r\n errorfield(errors[i].attribute, errors[i].message, true);\r\n window.Spreedly.transferFocus(errors[i].attribute);\r\n }\r\n else {\r\n window.Spreedly.transferFocus(errors[i].attribute);\r\n }\r\n };\r\n });\r\n\r\n window.Spreedly.on('paymentMethod', (token, pmData) => {\r\n\r\n reseterrorfield();\r\n\r\n var client = GetClient(pmData.first_name, pmData.last_name, pmData.email, UseStreetAddressForAVS ? pmData.address1 : '',\r\n pmData.address2, pmData.city, pmData.state, pmData.zip, pmData.country, pmData.phone_number, pmData.shipping_address1, pmData.shipping_address2, pmData.shipping_city, pmData.shipping_state,\r\n pmData.shipping_zip, pmData.shipping_country, pmData.shipping_phone_number);\r\n\r\n if (RecaptchaV3Client && RecaptchaV3Client != '') {\r\n executeRecaptcha(\"checkout\").then(recaptchaToken => {\r\n paymentTokenHandler({ token: token, cardtype: pmData.card_type, cardnumber: pmData.number }, client, recaptchaToken);\r\n }).catch(error => {\r\n seterrorMsg(\"Recaptcha token not fetched\")\r\n })\r\n }\r\n else {\r\n paymentTokenHandler({ token: token, cardtype: pmData.card_type, cardnumber: pmData.number }, client, \"\");\r\n }\r\n });\r\n\r\n window.Spreedly.init(environmentKey, {\r\n \"numberEl\": \"spreedly-number\",\r\n \"cvvEl\": \"spreedly-cvv\"\r\n });\r\n\r\n window.Spreedly.on('fieldEvent', function (name, type, activeEl, inputProperties) {\r\n if ((name == \"cvv\" || name == \"number\") && (type == \"input\" || type == \"mouseout\" || type == \"tab\" || type == \"shiftTab\")) {\r\n window.Spreedly.validate();\r\n }\r\n });\r\n\r\n\r\n window.Spreedly.on('validation', function (inputProperties) {\r\n\r\n if (inputProperties && inputProperties.numberLength > 0) {\r\n if (inputProperties.cvvLength < 1) {\r\n errorfield(\"cvv\", \"cvv is required\", true);\r\n }\r\n else if (!inputProperties.validCvv) {\r\n errorfield(\"cvv\", \"cvv entered is not valid\", true);\r\n }\r\n else {\r\n errorfield(\"cvv\", \"\", false);\r\n }\r\n }\r\n else {\r\n errorfield(\"cvv\", \"\", false);\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n const fieldhandleChange = (event) => {\r\n\r\n if (event.target.name === \"MonthSelect\" || event.target.name === \"YearSelect\")\r\n actionSetFieldValueState(dispatch, event.target.name, event.target.value);\r\n else\r\n actionSetFieldValueState(dispatch, event.currentTarget.name, event.target.value);\r\n };\r\n\r\n const paymentTokenHandler = (token, client, recaptchaToken) => {\r\n actionPostPaymentTransaction(dispatch, token, client, recaptchaToken);\r\n }\r\n\r\n return (\r\n
\r\n {/* className={showFreeTicket || paymenttranstate.loading ? classes.displaynone : classes.visible} */}\r\n\r\n \r\n \r\n
\r\n \r\n Card Number\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n {errorstate.number.errortext}\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n CVV\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n {errorstate.cvv.errortext}\r\n
\r\n
\r\n \r\n \r\n \r\n Month\r\n \r\n }\r\n >\r\n {genfunction.GetMonths().map((month, i) => ({month}))}\r\n \r\n {errorstate.month.errortext}\r\n \r\n \r\n\r\n \r\n \r\n \r\n Year\r\n \r\n }\r\n >\r\n {genfunction.GetYears(10).map((year, i) => ({year}))}\r\n \r\n {errorstate.year.errortext}\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n );\r\n});\r\n\r\nexport default Spreedly;\r\n","import React from 'react'\r\nimport { useSelector } from 'react-redux';\r\nimport { Typography } from '@material-ui/core';\r\nimport { genfunction } from 'helpers';\r\n\r\nconst { Merchant1, Merchant2 } = window['runConfig'];\r\n\r\nconst MultiPayments = () => {\r\n\r\n const events = useSelector(state => state.reducerShopCart.events);\r\n const cashless = useSelector(state => state.reducerShopCart.cashless);\r\n const donation = useSelector(state => state.reducerShopCart.donation);\r\n const transactionfee = useSelector(state => state.reducerTransactionFee);\r\n const giftcards = useSelector(state => state.reducerGiftCards);\r\n const showTransFee = useSelector(state => state.reducerShopCart.showTransactionFee);\r\n const membershipPackages = useSelector(state => state.reducerShopCart.MembershipPackages);\r\n const gaTickets = useSelector(state => state.reducerShopCart.GATickets);\r\n const orderProducts = useSelector(state => state.reducerShopCart.orderProducts);\r\n const donationProducts = useSelector(state => state.reducerShopCart.donationProducts);\r\n const manageMyBooking = useSelector(state => state.reducerShopCart.managemybooking);\r\n const enteredAmountToPay = useSelector(state => state.reducerShopCart.enteredAmountToPay);\r\n\r\n\r\n let merchantTotals = 0;\r\n let merchant1Total = 0;\r\n let merchant2Total = 0;\r\n\r\n\r\n merchantTotals = manageMyBooking ?\r\n genfunction.CalculateMultiMerchantTotalForMMB(events, cashless, (showTransFee ? transactionfee.transactionFee[0] : null), enteredAmountToPay) : genfunction.CalculateMultiMerchantTotal(events, gaTickets, membershipPackages, giftcards.giftcards, donation, (showTransFee ? transactionfee.transactionFee[0] : null), cashless, donationProducts);\r\n\r\n merchant1Total = merchantTotals.merchant1Total;\r\n merchant2Total = merchantTotals.merchant2Total;\r\n\r\n return (\r\n
\r\n {merchant1Total > 0 && merchant2Total > 0 ?\r\n <>\r\n The total\r\n {' ' + (manageMyBooking ? genfunction.ccyFormat(merchant1Total + merchant2Total) : genfunction.ccyFormat(genfunction.subproducttotal(events, cashless, donation, (showTransFee ? transactionfee.transactionFee[0] : null), membershipPackages, gaTickets, giftcards.giftcards, orderProducts, donationProducts))) + ' '}\r\n will be charged in two payments:\r\n
\r\n {Merchant1}: {' ' + genfunction.ccyFormat(merchant1Total) + ' '}\r\n {Merchant2}: {' ' + genfunction.ccyFormat(merchant2Total) + ' '}\r\n :\r\n\r\n merchant1Total > 0 || merchant2Total > 0 ?\r\n\r\n \r\n The total\r\n {' ' + (manageMyBooking ? genfunction.ccyFormat(merchant1Total + merchant2Total) : genfunction.ccyFormat(genfunction.subproducttotal(events, cashless, donation, (showTransFee ? transactionfee.transactionFee[0] : null), membershipPackages, gaTickets, giftcards.giftcards, orderProducts, donationProducts))) + ' '}\r\n will appear on your statement as {merchant1Total > 0 ? Merchant1 : Merchant2} \r\n : null\r\n\r\n }\r\n
\r\n )\r\n}\r\n\r\nexport default MultiPayments\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Button, Checkbox, FormHelperText, FormControl, Grid, InputAdornment, InputLabel, Link, MenuItem, Select, Typography } from '@material-ui/core';\r\nimport { makeStyles, useTheme } from '@material-ui/styles';\r\nimport { CreditCard, VpnKey, DateRange, Label } from '@material-ui/icons';\r\nimport { actionPostPaymentTransaction, actionShopCartShowTransFee, actionShopCartSetMmbAmountToPay } from 'actions';\r\nimport { useGoogleReCaptcha } from 'react-google-recaptcha-v3';\r\nimport CryptoAES from 'crypto-js/aes'\r\nimport CryptoENC from 'crypto-js/enc-utf8';\r\nimport { actionSetFormErrorState } from 'actions';\r\nimport ErrorHandling from '../ErrorHandling/ErrorHandling';\r\nimport { red } from '@material-ui/core/colors';\r\nimport './Globalpayments.css';\r\nimport DialogeBox from '../DialogeBox/DialogeBox';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport MultiPayments from '../../views/Checkout/components/MultiPayments';\r\nimport { genfunction } from 'helpers'\r\n\r\nconst { BillingAddressTypeID, GPCardNumberErrorMsg, GPCVVErrorMsg, GPExpiryErrorMsg, GlobalPaymentsApiKey,\r\n GlobalPaymentsEnvironment, GlobalPaymentsBaseURL, GlobalPaymentsEnableAutocomplete, TermsnConditionCheckMsg,\r\n StreetAddressTypeID, RecaptchaV3Client, TermsnConditionCheckBoxText, UseStreetAddressForAVS, EnableAlternateMerchantOnline, ApplyTransactionFee } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n primarycolor: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n heading: {\r\n marginTop: \"-18px\",\r\n color: \"#000000\",\r\n \"font-size\": \"11px\",\r\n \"font-family\": \"Roboto, Helvetica, Arial, sans-serif\",\r\n \"font-weight\": \"400\",\r\n \"letter-spacing\": \"-0.05px\",\r\n \"transform\": \"translate(0, 1.5px) scale(0.75)\",\r\n \"transform-origin\": \"top left\"\r\n },\r\n iconforiframe: {\r\n \"z-index\": \"1 !important\",\r\n \"margin-top\": \"20px\"\r\n },\r\n box100per: {\r\n \"margin-top\": \"-72px\"\r\n },\r\n mmbfakedisableButton: {\r\n \"margin-top\": \"-72px\"\r\n },\r\n errorTxt: {\r\n color: \"#e53935\"\r\n },\r\n errorInput: {\r\n border: red\r\n },\r\n hidden: {\r\n visibility: \"hidden\"\r\n },\r\n visible: {\r\n visibility: \"visible\"\r\n },\r\n FullWidth: {\r\n width: \"100%\"\r\n },\r\n PayBtnDisable: {\r\n 'pointer-events': 'none !important'\r\n },\r\n PayBtnUnDisable: {\r\n 'pointer-events': 'auto !important'\r\n }\r\n\r\n}));\r\n\r\n\r\nconst { forwardRef, useRef, useImperativeHandle } = React;\r\n\r\nconst GlobalPayments = forwardRef((props, ref) => {\r\n\r\n useImperativeHandle(ref, () => ({\r\n\r\n refPayByCardOnFile() {\r\n PayByCardOnFile();\r\n },\r\n refReload() {\r\n Reload();\r\n }\r\n\r\n }));\r\n\r\n\r\n let val = 0;\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const dispatch = useDispatch();\r\n const { executeRecaptcha } = useGoogleReCaptcha();\r\n\r\n const orderProducts = useSelector(state => state.reducerShopCart.orderProducts);\r\n const errorstate = useSelector(state => state.reducerFormError.errorstate);\r\n const formfields = useSelector(state => state.reducerFormError.formfields);\r\n const events = useSelector(state => state.reducerShopCart.events);\r\n const membershipPackages = useSelector(state => state.reducerShopCart.MembershipPackages);\r\n const gatickets = useSelector(state => state.reducerShopCart.GATickets);\r\n const giftcards = useSelector(state => state.reducerGiftCards);\r\n const customer = useSelector(state => state.reducerCustomer);\r\n const reducerBooking = useSelector(state => state.reducerBooking);\r\n const donationProducts = useSelector(state => state.reducerShopCart.donationProducts);\r\n const showTransFee = useSelector(state => state.reducerShopCart.showTransactionFee);\r\n const transactionfee = useSelector(state => state.reducerTransactionFee);\r\n const cashless = useSelector(state => state.reducerShopCart.cashless);\r\n let cashlesstotal = cashless.map(({ HoldAmount }) => HoldAmount).reduce((sum, i) => sum + i, 0);\r\n const donation = useSelector(state => state.reducerShopCart.donation);\r\n let shopcartamounttoPay = useSelector(state => state.reducerShopCart.mmbAmountToPay);\r\n const refundType = useSelector(state => state.reducerShopCart.refundType);\r\n let enteredAmountToPay = useSelector(state => state.reducerShopCart.enteredAmountToPay);\r\n const PaymentInfoError = useSelector(state => state.reducerPaymentTransaction.PaymentInfoError);\r\n\r\n const [showPayBtn, setShowPayBtn] = useState(false);\r\n const [tncchecked, settncChecked] = React.useState(false);\r\n const [opentnc, setopentnc] = useState(false);\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n const [cardDetails, setCardDetails] = useState({});\r\n\r\n let cardNumberRef = useRef();\r\n let cvvRef = useRef();\r\n let expiryDateRef = useRef();\r\n let submitRef = useRef();\r\n\r\n const tnccheckeHandle = (event) => {\r\n settncChecked(event.target.checked);\r\n };\r\n\r\n useEffect(() => {\r\n // if (val == 0) {\r\n const script = document.createElement(\"script\");\r\n script.src = GlobalPaymentsBaseURL;\r\n script.async = true;\r\n document.body.appendChild(script);\r\n script.onload = () => scriptLoaded();\r\n // val++;\r\n // }\r\n }, []);\r\n\r\n\r\n useEffect(() => {\r\n\r\n if ((events.length > 0 || membershipPackages.length > 0 || gatickets.length > 0 || orderProducts.length > 0 || ShowGiftCards() || donationProducts.length > 0) || props.AdditionBooking && tncchecked) {\r\n setShowPayBtn(true);\r\n }\r\n else {\r\n setShowPayBtn(false);\r\n }\r\n }, [events, tncchecked, formfields])\r\n\r\n useEffect(() => {\r\n\r\n if (errorMsg && errorMsg.length > 0 || PaymentInfoError && PaymentInfoError.length > 0) {\r\n if (window && window.toggleButtonState) {\r\n window.toggleButtonState(true);\r\n }\r\n }\r\n\r\n }, [errorMsg, PaymentInfoError]);\r\n\r\n\r\n const Reload = () => {\r\n\r\n if (cardNumberRef.current && cvvRef.current && expiryDateRef.current && submitRef.current) {\r\n cardNumberRef.current.innerHTML = \"\";\r\n cvvRef.current.innerHTML = \"\";\r\n expiryDateRef.current.innerHTML = \"\";\r\n submitRef.current.innerHTML = \"\";\r\n }\r\n\r\n window.GlobalPayments.configure({\r\n \"X-GP-Api-Key\": CryptoAES.decrypt(GlobalPaymentsApiKey, '1271').toString(CryptoENC),\r\n \"X-GP-Environment\": GlobalPaymentsEnvironment,\r\n enableAutocomplete: GlobalPaymentsEnableAutocomplete,\r\n });\r\n\r\n var cardForm = window.GlobalPayments.ui.form({\r\n fields: {\r\n \"card-number\": {\r\n target: \"#card-number\",\r\n placeholder: \"???????????? ???????????? ???????????? ????????????\",\r\n },\r\n \"card-expiration\": {\r\n target: \"#card-expiration\",\r\n placeholder: \"MM / YYYY\",\r\n },\r\n \"card-cvv\": {\r\n target: \"#card-cvv\",\r\n placeholder: \"?????????\",\r\n },\r\n submit: {\r\n target: \"#submit\",\r\n text: \"Pay\",\r\n },\r\n },\r\n styles: {\r\n //adding a radius on all text inputs\r\n\r\n \"#secure-payment-field.card-number\": {\r\n \"font-family\": \"Roboto, Helvetica, Arial, sans-serif\",\r\n \"padding\": \"4px 5px 4px 30px\",\r\n \"font-size\": \"16px\",\r\n \"border\": \"none !important\",\r\n \"border-bottom\": \"1px solid gray !important\",\r\n \"width\": \"100% !important\"\r\n },\r\n\r\n \".card-number.card-type-amex\": {\r\n \"background\": \"#f3faff url(https://hps.github.io/token/gp-1.0.0/images/logo-amex@2x.png) no-repeat right\",\r\n \"background-position-y\": \"-12px\",\r\n \"background-size\": \"55px 98px\"\r\n },\r\n \".card-number.card-type-discover\": {\r\n \"background\": \"#f3faff url(https://hps.github.io/token/gp-1.0.0/images/logo-discover@2x.png) no-repeat right\",\r\n \"background-position-y\": \"-11px\",\r\n \"background-size\": \"90px 96px\"\r\n },\r\n \".card-number.card-type-jcb\": {\r\n \"background\": \"#f3faff url(https://hps.github.io/token/gp-1.0.0/images/logo-jcb@2x.png) no-repeat right\",\r\n \"background-position-y\": \"-6px\",\r\n \"background-size\": \"48px 82px\"\r\n },\r\n \".card-number.card-type-mastercard\": {\r\n \"background\": \"#f3faff url(https://hps.github.io/token/gp-1.0.0/images/logo-mastercard@2x.png) no-repeat right\",\r\n \"background-position-y\": \"-3px\",\r\n \"background-size\": \"60px 64px\"\r\n },\r\n \".card-number.card-type-visa\": {\r\n \"background\": \"#f3faff url(https://hps.github.io/token/gp-1.0.0/images/logo-visa@2x.png) no-repeat right\",\r\n \"background-position-y\": \"-6px\",\r\n \"background-size\": \"70px 75px\"\r\n },\r\n\r\n \"#secure-payment-field.card-cvv\": {\r\n \"font-family\": \"Roboto, Helvetica, Arial, sans-serif\",\r\n \"padding\": \"4px 5px 4px 30px\",\r\n \"font-size\": \"16px\",\r\n \"border\": \"none !important\",\r\n \"border-bottom\": \"1px solid gray !important\",\r\n \"width\": \"25% !important\"\r\n },\r\n\r\n \"#secure-payment-field.card-expiration\": {\r\n \"font-family\": \"Roboto, Helvetica, Arial, sans-serif\",\r\n \"padding\": \"4px 5px 4px 30px\",\r\n \"font-size\": \"16px\",\r\n \"border\": \"none !important\",\r\n \"border-bottom\": \"1px solid gray !important\",\r\n \"width\": \"25% !important\"\r\n },\r\n\r\n \"input[type=text]:focus-visible, input[type=tel]:focus-visible\": {\r\n \"outline\": \"none !important\",\r\n \"border\": \"none !important\",\r\n \"border-bottom\": \"1px solid gray !important\",\r\n },\r\n\r\n \"#secure-payment-field.submit:hover\": {\r\n \"text-decoration\": \"none\",\r\n \"background-color\": \"rgba(0, 0, 0, 0.04)\",\r\n \"color\": \"#000000\"\r\n },\r\n \"input.invalid\": {\r\n \"-webkit-box-shadow\": \"inset 0px 0px 4px 0px #ff0a0a\",\r\n \"box-shadow\": \"inset 0px 0px 4px 0px #ff0a0a\",\r\n \"border-color\": \"#ff8282\"\r\n },\r\n\r\n \"button[type=button]\": {\r\n \"background-color\": theme.palette.primary.main,\r\n \"color\": theme.palette.primary.contrastText,\r\n \"flex-basis\": \"100%\",\r\n \"font-size\": \"14px\",\r\n \"margin\": \"0 auto\",\r\n \"height\": \"38px\",\r\n \"box-sizing\": \"border-box\",\r\n \"border\": \"none\",\r\n \"border-radius\": \"4px\",\r\n \"cursor\": \"pointer\",\r\n \"position\": \"relative\",\r\n \"align-items\": \"center\",\r\n \"font-weight\": \"500 !important\",\r\n \"line-height\": \"1.75\",\r\n \"text-transform\": \"uppercase\",\r\n \"letter-spacing\": \"0.02857em\",\r\n \"font-family\": \"Roboto Helvetica Arial sans-serif !important\"\r\n },\r\n \"button:active\": {\r\n \"filter\": \"brightness(112%)\"\r\n }\r\n }\r\n });\r\n\r\n return cardForm;\r\n }\r\n const scriptLoaded = () => {\r\n\r\n var cardForm = Reload();\r\n var isCallInititaed = false;\r\n\r\n window.GlobalPayments.on(\"error\", (resp) => {\r\n if (props.showFreeTicket === false) {\r\n seterrorMsg(\"Global Payment is not configured correctly, please contact administrator for more details.\");\r\n }\r\n });\r\n\r\n cardForm.on(\"token-success\", (resp) => {\r\n if (!isCallInititaed) {\r\n window.toggleButtonState(false);\r\n setCardDetails(resp);\r\n }\r\n\r\n });\r\n\r\n function timeout(ms) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n }\r\n async function updatetsates() {\r\n ResetCreditCard();\r\n await timeout(3000);\r\n }\r\n\r\n cardForm.on(\"token-error\", function (resp) {\r\n\r\n window.toggleButtonState(true);\r\n\r\n updatetsates();\r\n\r\n if (resp && resp.error) {\r\n\r\n if (resp.error.detail && resp.error.detail.length > 0 && resp.error.detail[0].hasOwnProperty('data_path')) {\r\n\r\n if (resp.error.detail[0].data_path.includes('card_number') || resp.error.detail[0].data_path.includes('card-number')) {\r\n errorfield('number', GPCardNumberErrorMsg, true);\r\n }\r\n\r\n if (resp.error.detail[0].data_path.includes('security')) {\r\n errorfield('cvv', GPCVVErrorMsg, true);\r\n }\r\n\r\n if (resp.error.detail[0].data_path.includes('expiry_year') || resp.error.detail[0].data_path.includes('card-expiration')) {\r\n errorfield('MonthAndYear', GPExpiryErrorMsg, true);\r\n }\r\n\r\n if (resp.error.detail[0].description.includes('expiry')) {\r\n errorfield('MonthAndYear', GPExpiryErrorMsg, true);\r\n }\r\n }\r\n\r\n if (resp.error.code && resp.error.code.includes('invalid_card')) {\r\n errorfield('number', GPCardNumberErrorMsg, true);\r\n }\r\n }\r\n\r\n });\r\n\r\n cardForm.on(\"card-number-test\", (resp) => {\r\n if (resp.valid)\r\n errorfield('number', '', false);\r\n });\r\n\r\n cardForm.on(\"card-expiration-test\", (resp) => {\r\n if (resp.valid)\r\n errorfield('MonthAndYear', '', false);\r\n });\r\n\r\n\r\n cardForm.on(\"card-cvv-test\", (resp) => {\r\n if (resp.valid)\r\n errorfield('cvv', '', false);\r\n });\r\n\r\n // called during callbacks, changes CSS of Submit button if all 3 callbacks return true\r\n // by calling addStylesheet on cardForm (PayFields) object\r\n window.toggleButtonState = (isEnabled) => {\r\n\r\n cardForm.addStylesheet(isEnabled ? {\r\n \"button\": {\r\n \"color\": \"#FFFFFF\",\r\n \"background-color\": \"#0000FF\",\r\n \"pointer-events\": \"auto\",\r\n \"cursor\": \"pointer\"\r\n }\r\n } : {\r\n \"button\": {\r\n \"background\": \"#e0f1ff\",\r\n \"color\": \" #808080\",\r\n \"pointer-events\": \"none\",\r\n \"cursor\": \"not-allowed\"\r\n }\r\n });\r\n\r\n if (!isEnabled) {\r\n isCallInititaed = true;\r\n } else {\r\n isCallInititaed = false;\r\n }\r\n };\r\n\r\n };\r\n\r\n const PayByCardOnFile = () => {\r\n\r\n var booking = reducerBooking.booking[0];\r\n\r\n let cardonfileToken = \"\";\r\n let cardMaskedNum = \"\";\r\n let cardType = \"\";\r\n\r\n if (booking && booking.hasOwnProperty('PaymentToken') && booking.PaymentToken.length > 10) {\r\n cardonfileToken = booking.PaymentToken.substring(booking.PaymentToken.length - 10);\r\n }\r\n\r\n if (booking && booking.hasOwnProperty('PaymentDescription') && booking.PaymentDescription.length > 10) {\r\n cardType = booking.PaymentDescription.substring(0, booking.PaymentDescription.indexOf('-') - 1).trim();\r\n cardMaskedNum = booking.PaymentDescription.substring(booking.PaymentDescription.indexOf('-') + 1, booking.PaymentDescription.length).trim();\r\n }\r\n\r\n if (RecaptchaV3Client && RecaptchaV3Client != '') {\r\n executeRecaptcha(\"checkout\").then(recaptchaToken => {\r\n paymentTokenHandler({ token: cardonfileToken, cardtype: cardType, cardnumber: cardMaskedNum }, customer.customer && customer.customer.length > 0 ? customer.customer : \"\", recaptchaToken);\r\n }).catch(error => {\r\n seterrorMsg(\"Recaptcha token not fetched\")\r\n })\r\n }\r\n else {\r\n paymentTokenHandler({ token: cardonfileToken, cardtype: cardType, cardnumber: cardMaskedNum }, customer.customer && customer.customer.length > 0 ? customer.customer : \"\", \"\");\r\n }\r\n }\r\n\r\n\r\n const PurchaseItems = (resp) => {\r\n\r\n if (resp.hasOwnProperty('cvv_present') && resp.cvv_present === false) {\r\n errorfield('cvv', 'Card CVV is required.', true);\r\n window.toggleButtonState(true);\r\n return;\r\n }\r\n\r\n if (!props.ValidatePaymentFields()) {\r\n window.toggleButtonState(true);\r\n return;\r\n }\r\n\r\n if (props.ValidatePaymentFields()) {\r\n\r\n ResetCreditCard();\r\n\r\n if (props.mmbPayBy === undefined || props.mmbPayBy !== \"CardOnFile\") {\r\n\r\n var client = GetClient(formfields.first_name.value, formfields.last_name.value, formfields.email.value.trim(), UseStreetAddressForAVS ? formfields.address1.value : '',\r\n formfields.address2.value, formfields.city.value, formfields.state.value, formfields.zip.value, formfields.country.value, formfields.phone_number.value,\r\n formfields.shipping_address1.value, formfields.shipping_address2.value, formfields.shipping_city.value, formfields.shipping_state.value,\r\n formfields.shipping_zip.value, formfields.shipping_country.value, formfields.shipping_phone_number.value);\r\n\r\n if (!props.showFreeTicket) {\r\n if (RecaptchaV3Client && RecaptchaV3Client != '') {\r\n executeRecaptcha(\"checkout\").then(recaptchaToken => {\r\n paymentTokenHandler({ token: resp.temporary_token, cardtype: resp.card.type, cardnumber: resp.card.masked_card_number }, client, recaptchaToken);\r\n }).catch(error => {\r\n seterrorMsg(\"Recaptcha token not fetched\")\r\n })\r\n }\r\n else {\r\n paymentTokenHandler({ token: resp.temporary_token, cardtype: resp.card.type, cardnumber: resp.card.masked_card_number }, client, \"\");\r\n }\r\n }\r\n\r\n if (props.showFreeTicket) {\r\n if (RecaptchaV3Client && RecaptchaV3Client != '') {\r\n executeRecaptcha(\"checkout\").then(recaptchaToken => {\r\n paymentTokenHandler({ token: null }, client, recaptchaToken);\r\n }).catch(error => {\r\n seterrorMsg(\"Recaptcha token not fetched\")\r\n })\r\n }\r\n else {\r\n paymentTokenHandler({ token: null }, client, \"\");\r\n }\r\n }\r\n }\r\n }\r\n else if (props.managemyBooking && props.mmbPayBy === \"CardOnFile\") {\r\n PayByCardOnFile();\r\n }\r\n }\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (cardDetails && cardDetails.hasOwnProperty('temporary_token') && cardDetails.temporary_token.length > 0) {\r\n PurchaseItems(cardDetails);\r\n }\r\n }, [cardDetails])\r\n\r\n const ResetCreditCard = () => {\r\n\r\n errorfield('number', '', false);\r\n errorfield('cvv', '', false);\r\n errorfield('MonthAndYear', '', false);\r\n }\r\n\r\n const ShowGiftCards = () => {\r\n let res = false;\r\n if (giftcards.giftcards && giftcards.giftcards.length > 0) {\r\n if (giftcards.giftcards.filter(x => x.AddedToCart === true).length > 0) {\r\n res = true;\r\n }\r\n }\r\n return res;\r\n }\r\n\r\n const errorfield = (errorfield, errortext, errorstate) => {\r\n actionSetFormErrorState(dispatch, errorfield, errortext, errorstate);\r\n }\r\n\r\n const paymentTokenHandler = (token, client, recaptchaToken) => {\r\n actionPostPaymentTransaction(dispatch, token, client, recaptchaToken);\r\n }\r\n\r\n const GetClient = (firstName, lastName, email, street1, stree2, city, state, postCode, country, mobilePhone, shipping_address1, shipping_address2, shipping_city, shipping_state,\r\n shipping_zip, shipping_country, shipping_phone_number) => {\r\n\r\n var client = [\r\n {\r\n \"CustomerType\": \"Individual\",\r\n \"FirstName\": firstName,\r\n \"LastName\": lastName,\r\n \"CreatedAsGuest\": true,\r\n \"GuestEmail\": email,\r\n \"DateOfBirth\": \"\",\r\n \"CustomerAddress\": [\r\n {\r\n \"IsPrimaryAddress\": true,\r\n \"AddressTypeID\": StreetAddressTypeID,\r\n \"Email\": email,\r\n \"Street1\": street1,\r\n \"Street2\": stree2,\r\n \"CitySuburb\": city,\r\n \"State\": state,\r\n \"Postcode\": postCode,\r\n \"Country\": country,\r\n \"MobilePhone\": mobilePhone\r\n },\r\n {\r\n \"IsPrimaryAddress\": false,\r\n \"AddressTypeID\": BillingAddressTypeID,\r\n \"Email\": email,\r\n \"Street1\": shipping_address1,\r\n \"Street2\": shipping_address2,\r\n \"CitySuburb\": shipping_city,\r\n \"State\": shipping_state,\r\n \"Postcode\": shipping_zip,\r\n \"Country\": shipping_country,\r\n \"MobilePhone\": shipping_phone_number\r\n }\r\n ],\r\n \"LinkedIndividuals\": []\r\n }\r\n ]\r\n\r\n return client;\r\n }\r\n\r\n const errorcancelhandle = () => {\r\n seterrorMsg(\"\");\r\n }\r\n\r\n const getTNC = () => {\r\n return ReactHtmlParser(TermsnConditionCheckMsg);\r\n }\r\n\r\n const GetTransOptionalText = () => {\r\n let optionalTxt = '';\r\n if (transactionfee.transactionFee && transactionfee.transactionFee.length > 0) {\r\n optionalTxt = transactionfee.transactionFee[0].TransactionFeeOptionalText;\r\n\r\n if (refundType === \"AdditionalPayment\" || (refundType === \"\" && shopcartamounttoPay > 0))\r\n optionalTxt += ' [' + genfunction.ccyFormat(parseFloat(genfunction.TransactionFeeForPartialPayment(transactionfee.transactionFee[0], enteredAmountToPay, cashlesstotal))) + ']';\r\n\r\n else\r\n optionalTxt += ' [' + genfunction.ccyFormat(parseFloat(genfunction.TransactionFee(events, donation, transactionfee.transactionFee[0], cashless, membershipPackages, gatickets, giftcards.giftcards, orderProducts, donationProducts))) + ']';\r\n }\r\n\r\n return optionalTxt;\r\n }\r\n\r\n\r\n const showOptionalTransactionFee = () => {\r\n let showText = false;\r\n\r\n if (transactionfee.transactionFee && transactionfee.transactionFee.length > 0) {\r\n\r\n if (transactionfee.transactionFee[0].TransactionFeeByDefault === false && transactionfee.transactionFee[0].TransactionFeeOptional === false) {\r\n showText = false;\r\n } else {\r\n showText = true;\r\n }\r\n }\r\n\r\n return showText;\r\n }\r\n\r\n useEffect(() => {\r\n\r\n if (transactionfee.transactionFee && transactionfee.transactionFee.length > 0) {\r\n if (transactionfee.transactionFee[0].TransactionFeeByDefault || (transactionfee.transactionFee[0].TransactionFeeByDefault === false && transactionfee.transactionFee[0].TransactionFeeOptional === false)) {\r\n actionShopCartShowTransFee(dispatch, true);\r\n }\r\n }\r\n\r\n }, [transactionfee])\r\n\r\n const transFeeCheckHandler = (event) => {\r\n actionShopCartShowTransFee(dispatch, event.target.checked);\r\n\r\n let transFee;\r\n if (props.managemyBooking) {\r\n\r\n if (refundType === \"AdditionalPayment\" || (refundType === \"\" && shopcartamounttoPay > 0)) {\r\n transFee = genfunction.TransactionFeeForPartialPayment(transactionfee.transactionFee[0], enteredAmountToPay, cashlesstotal)\r\n }\r\n else {\r\n transFee = genfunction.TransactionFee(events, donation, transactionfee.transactionFee[0], cashless, membershipPackages, gatickets, giftcards.giftcards, orderProducts, donationProducts);\r\n }\r\n\r\n let amoutToPay = event.target.checked ? genfunction.Rounded(shopcartamounttoPay + transFee) : genfunction.Rounded(shopcartamounttoPay - transFee);\r\n actionShopCartSetMmbAmountToPay(dispatch, amoutToPay);\r\n }\r\n\r\n };\r\n\r\n return (\r\n
\r\n 0} handleclose={errorcancelhandle} />\r\n {props.showFreeTicket === false ?\r\n <>\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n {errorstate.number.errorstate ? errorstate.number.errortext : ''}\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n {errorstate.cvv.errortext}\r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n {errorstate.MonthAndYear.errortext}\r\n
\r\n
\r\n\r\n {ApplyTransactionFee && showOptionalTransactionFee() ?\r\n < Grid item xs={12} sm={12}>\r\n \r\n \r\n {GetTransOptionalText()}\r\n \r\n
\r\n : null}\r\n\r\n \r\n \r\n \r\n {TermsnConditionCheckBoxText}\r\n { setopentnc(true) }} > Terms and Conditions \r\n \r\n\r\n \r\n \r\n {tncchecked && EnableAlternateMerchantOnline ? : null}\r\n \r\n\r\n \r\n <>\r\n
\r\n
\r\n Pay\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n :\r\n <>\r\n \r\n \r\n \r\n {TermsnConditionCheckBoxText}\r\n { setopentnc(true) }} > Terms and Conditions \r\n \r\n \r\n \r\n PurchaseItems(null)}>Pay\r\n \r\n \r\n }\r\n\r\n { setopentnc(false) }}>\r\n\r\n
\r\n );\r\n});\r\n\r\nexport default GlobalPayments;\r\n","const { StreetAddressTypeID, BillingAddressTypeID } = window['runConfig'];\r\n\r\nexport default {\r\n\r\n GetClient(firstName, lastName, email, street1, stree2, city, state, postCode, country, mobilePhone, shipping_address1, shipping_address2, shipping_city, shipping_state,\r\n shipping_zip, shipping_country, shipping_phone_number) {\r\n\r\n var client = [\r\n {\r\n \"CustomerType\": \"Individual\",\r\n \"FirstName\": firstName,\r\n \"LastName\": lastName,\r\n \"CreatedAsGuest\": true,\r\n \"GuestEmail\": email,\r\n \"DateOfBirth\": \"\",\r\n \"CustomerAddress\": [\r\n {\r\n \"IsPrimaryAddress\": true,\r\n \"AddressTypeID\": StreetAddressTypeID,\r\n \"Email\": email,\r\n \"Street1\": street1,\r\n \"Street2\": stree2,\r\n \"CitySuburb\": city,\r\n \"State\": state,\r\n \"Postcode\": postCode,\r\n \"Country\": country,\r\n \"MobilePhone\": mobilePhone\r\n },\r\n {\r\n \"IsPrimaryAddress\": false,\r\n \"AddressTypeID\": BillingAddressTypeID,\r\n \"Email\": email,\r\n \"Street1\": shipping_address1,\r\n \"Street2\": shipping_address2,\r\n \"CitySuburb\": shipping_city,\r\n \"State\": shipping_state,\r\n \"Postcode\": shipping_zip,\r\n \"Country\": shipping_country,\r\n \"MobilePhone\": shipping_phone_number\r\n }\r\n ],\r\n \"LinkedIndividuals\": []\r\n }\r\n ]\r\n\r\n return client;\r\n }\r\n}","import React, { useState } from 'react';\r\nimport { Spreedly, GlobalPayments } from './index'\r\nimport PropTypes from 'prop-types';\r\n\r\nconst { forwardRef, useRef, useImperativeHandle } = React;\r\n\r\n//const Payments = props => {\r\nconst Payments = forwardRef((props, ref) => {\r\n\r\n const { type, showFreeTkt, managemyBooking, mmbPayBy } = props;\r\n\r\n const spreedlyRef = useRef();\r\n const globalPaymentsRef = useRef();\r\n\r\n\r\n useImperativeHandle(ref, () => ({\r\n\r\n SpreedlyTransactionCall(requiredFields) {\r\n spreedlyRef.current.TransactionCall(requiredFields);\r\n },\r\n SpreedlyZeroDollarTransactionCall(requiredFields) {\r\n spreedlyRef.current.ZeroDollarTransactionCall(requiredFields);\r\n },\r\n ReloadSpreedly() {\r\n spreedlyRef.current.ReloadSpreedly();\r\n },\r\n PaymentLoaded() {\r\n spreedlyRef.current.PaymentLoaded();\r\n },\r\n SpreedlyCardOnFileTransaction() {\r\n spreedlyRef.current.CardOnFileTransaction();\r\n },\r\n PayByCardOnFile() {\r\n globalPaymentsRef.current.refPayByCardOnFile();\r\n },\r\n GPReload() {\r\n globalPaymentsRef.current.refReload();\r\n }\r\n }));\r\n\r\n return (\r\n
\r\n {type === 'Spreedly' ? : null}\r\n\r\n {type === 'GlobalPayments' ?\r\n : null}\r\n\r\n
\r\n );\r\n});\r\n\r\nPayments.propTypes = {\r\n type: PropTypes.string.isRequired,\r\n tokenization: PropTypes.func.isRequired\r\n};\r\n\r\nexport default Payments;\r\n","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Card, CardContent, Grid, CardHeader, Button, TextField, FormControl, FormControlLabel, FormHelperText, Checkbox, Typography, Link } from '@material-ui/core';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport { useGoogleReCaptcha } from 'react-google-recaptcha-v3';\r\nimport MaskedInput from 'react-text-mask'\r\nimport { Autocomplete } from '@material-ui/lab';\r\nimport { createFilterOptions } from '@material-ui/lab/Autocomplete';\r\nimport ProcessingBox from './ProcessingBox'\r\nimport PaymentCompletebox from './PaymentCompletebox'\r\nimport { actionEndMemberValidationLoading, actionResetPaymentTransaction } from 'actions';\r\nimport {\r\n actionShopCartResetState, actionShopCartResetStateWithUniqueCouponHold,\r\n actionShopCartRemoveGiftcards, actionShopCartApplyMembershipOnEvents, actionShopCartResetMembership, actionShopCartResetIDME,\r\n actionShopCartUpdateMembershipEmail, actionShopCartResetMembershipPackage, actionShopCartApplyidmeCostratesOnEvents,\r\n actionShopCartValidMember, actionShopCartShowTransFee\r\n} from 'actions';\r\nimport { actionResetFormErrorState, actionSetFormErrorState, actionSetFieldValueState } from 'actions';\r\nimport ErrorHandling from '../../../components/ErrorHandling/ErrorHandling';\r\nimport DialogeBox from '../../../components/DialogeBox/DialogeBox';\r\nimport { genfunction } from 'helpers'\r\nimport { formstates } from '../';\r\nimport FreeTicketForm from '../components/FreeTicketForm';\r\nimport CryptoAES from 'crypto-js/aes'\r\nimport CryptoENC from 'crypto-js/enc-utf8';\r\nimport { actionGetMemberValidation, actionResetMemberValidation } from 'actions';\r\nimport { actionGetExtraItems, actionResetExtraItems } from 'actions';\r\nimport { actionGetCostRate, actionResetCostRate } from 'actions';\r\nimport { actionGetIDMEUSERDATA, actionResetIDMEUSERDATA } from 'actions';\r\nimport { actionGetCountryAndState, actionResetCountryAndState } from 'actions';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport { actionStartAppLoader, actionEndAppLoader } from '../../../actions/actionAppLoader';\r\nimport { actionResetGiftCards } from 'actions';\r\nimport { actionGetDonation } from 'actions';\r\nimport { actionResetMembershipPackages } from 'actions';\r\nimport { actionResetUDFs } from 'actions';\r\nimport { actionResetMembershipUDFs } from 'actions';\r\nimport Payments from '../../../components/Payments/Payments';\r\nimport { actionResetCustomerUdfs } from 'actions';\r\nimport MultiPayments from './MultiPayments';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\n\r\nconst { forwardRef, useRef, useImperativeHandle } = React;\r\n\r\nconst { RedirectAfterCheckout, Titleforloadingpayment, Subtitle1forloadingpayment, Subtitle2forloadingpayment,\r\n EmailRegex, DefaultCostRateID, MembershipCostRateMatches, CouponAndGiftcardAlreadyApplied, Membershipsuccess,\r\n HideMemberValidation, UserMembershipValidatedEmailAndLastName, RemoveMembershipCouponAndGiftcard, TermsnConditionCheckBoxText, TermsnConditionCheckMsg,\r\n RemoveMembershipsuccess, IamMember, LastNameAndEmailORPhoneORAddressForMembership, RequiredEmailORPhoneORAddressForMembership,\r\n PaymentFormHeading, RecaptchaV3Client, UseStreetAddressForAVS, StreetAddressTypeID, BillingAddressTypeID, ShowFullAddressOnCheckout,\r\n CheckForIDmeValidProducts, IDmeAPIurl, IDmeClientID, IDmeRedirectURI, IDmeResponseType, IDmeScope, IDmeHeading, IDmeSuccessMsg,\r\n IDmeInvalidGroup, IDmeResponseTypeError, IDmeInvalidClient, IDmeInvalidRedirectUri, IDmeAccessDenied, AddPersonZipCodeLength,\r\n AddPersonCityLength, AddPersonStateLength, AddPersonCountryLength, AddPersonAddress1Length, AddPersonAddress2Length, AddPersonEmailLength,\r\n AddPersonFirstNameLength, AddPersonLastNameLength, PaymentMethodType, PhoneNumberMandatory, ValidMemberMsg, ApplyTransactionFee, EnableAlternateMerchantOnline } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n primarycolor: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n box100per: {\r\n width: \"100%\"\r\n },\r\n iconforiframe: {\r\n marginTop: \"18px\"\r\n },\r\n iframebox: {\r\n marginTop: \"-13px\",\r\n height: \"31px\"\r\n },\r\n hidden: {\r\n visibility: \"hidden\"\r\n },\r\n displaynone: {\r\n display: \"none\"\r\n },\r\n visible: {\r\n visibility: \"visible\"\r\n },\r\n btnAlign: {\r\n marginTop: '10px'\r\n },\r\n imMember: {\r\n marginTop: '15px'\r\n },\r\n clearButton: {\r\n \"& .MuiButtonBase-root.MuiAutocomplete-clearIndicator\": {\r\n color: theme.palette.primary.main\r\n\r\n }\r\n }\r\n}));\r\n\r\nfunction TextMaskCustom(props) {\r\n const { inputRef, onChange, value, ...other } = props;\r\n let pnMask = ['(', /[1-9]/, /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/];\r\n return (\r\n {\r\n inputRef(ref ? ref.inputElement : null);\r\n }}\r\n onChange={onChange}\r\n mask={pnMask}\r\n />\r\n );\r\n}\r\n\r\nlet PaymentForm = forwardRef((props, ref) => {\r\n\r\n const paymentsRef = useRef();\r\n const classes = useStyles();\r\n const [pfstate, setpfstate] = useState(formstates.initialpaystate);\r\n //const [errorstate, seterrorstate] = useState(formstates.initialerrorstate)\r\n const dispatch = useDispatch();\r\n const { executeRecaptcha } = useGoogleReCaptcha();\r\n\r\n\r\n useImperativeHandle(ref, () => ({\r\n ReloadGateways() {\r\n ReloadGateway();\r\n }\r\n }));\r\n\r\n const events = useSelector(state => state.reducerShopCart.events);\r\n const cashless = useSelector(state => state.reducerShopCart.cashless);\r\n const errorstate = useSelector(state => state.reducerFormError.errorstate);\r\n const formfields = useSelector(state => state.reducerFormError.formfields);\r\n const transactionfee = useSelector(state => state.reducerTransactionFee);\r\n const membershipPackages = useSelector(state => state.reducerShopCart.MembershipPackages);\r\n const gatickets = useSelector(state => state.reducerShopCart.GATickets);\r\n const orderProducts = useSelector(state => state.reducerShopCart.orderProducts);\r\n const giftcards = useSelector(state => state.reducerGiftCards);\r\n const costrate = useSelector(state => state.reducerCostRate);\r\n const idmeuserdata = useSelector(state => state.reducerIDMeUserData);\r\n const bookingUDFS = useSelector(state => state.reducerBookingUserDefinedFields);\r\n const membershipTypesUdfs = useSelector(state => state.reducerMembershipUserDefinedFields);\r\n const countryandstates = useSelector(state => state.reducerCountryAndState.countryandstate);\r\n const customerUdfs = useSelector(state => state.reducerCustomerUDFs);\r\n const showTransFee = useSelector(state => state.reducerShopCart.showTransactionFee);\r\n const bookingTypes = useSelector(state => state.reducerBookingTypes.bookingTypes);\r\n const donationProducts = useSelector(state => state.reducerShopCart.donationProducts);\r\n\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n const [opentnc, setopentnc] = useState(false);\r\n const [tncchecked, settncChecked] = React.useState(false);\r\n const [colorState, setColorState] = React.useState('');\r\n const [removeMembershipState, setremoveMembershipState] = React.useState(false);\r\n const [removemembershipcouponandgifts, setremovemembershipcouponandgifts] = React.useState(false);\r\n\r\n var requiredFields = {};\r\n let inputreferences = [];\r\n\r\n inputreferences.first_name = React.useRef();\r\n inputreferences.last_name = React.useRef();\r\n inputreferences.email = React.useRef();\r\n inputreferences.phone_number = React.useRef();\r\n inputreferences.address1 = React.useRef();\r\n inputreferences.country = React.useRef();\r\n inputreferences.state = React.useRef();\r\n inputreferences.city = React.useRef();\r\n inputreferences.zip = React.useRef();\r\n inputreferences.memberno = React.useRef();\r\n inputreferences.shipping_phone_number = React.useRef();\r\n inputreferences.shipping_address1 = React.useRef();\r\n inputreferences.shipping_city = React.useRef();\r\n inputreferences.shipping_state = React.useRef();\r\n inputreferences.shipping_zip = React.useRef();\r\n inputreferences.shipping_country = React.useRef();\r\n\r\n const paymenttranstate = useSelector(state => {\r\n return (\r\n {\r\n loading: state.reducerPaymentTransaction.loading,\r\n haspaid: state.reducerPaymentTransaction.Payment.hasOwnProperty('Products'),\r\n paymentinfo: state.reducerPaymentTransaction.Payment,\r\n errormsg: state.reducerPaymentTransaction.PaymentInfoError\r\n }\r\n )\r\n\r\n });\r\n\r\n const ShowGiftCards = () => {\r\n let res = false;\r\n if (giftcards.giftcards && giftcards.giftcards.length > 0) {\r\n if (giftcards.giftcards.filter(x => x.AddedToCart === true).length > 0) {\r\n res = true;\r\n }\r\n }\r\n\r\n return res;\r\n }\r\n\r\n useEffect(() => {\r\n if (paymenttranstate.haspaid) {\r\n actionResetMemberValidation(dispatch);\r\n setTimeout(() => { window.scrollTo(0, 0) }, 0);\r\n\r\n }\r\n }, [paymenttranstate.haspaid])\r\n\r\n useEffect(() => {\r\n\r\n if (transactionfee.transactionFee && transactionfee.transactionFee.length > 0) {\r\n if (transactionfee.transactionFee[0].TransactionFeeByDefault || (transactionfee.transactionFee[0].TransactionFeeByDefault === false && transactionfee.transactionFee[0].TransactionFeeOptional === false)) {\r\n actionShopCartShowTransFee(dispatch, true);\r\n }\r\n }\r\n\r\n }, [transactionfee])\r\n\r\n\r\n useEffect(() => {\r\n if ((events.length > 0 || membershipPackages.length > 0 || gatickets.length > 0 || orderProducts.length > 0 || ShowGiftCards() || (donationProducts && donationProducts.length > 0)) && paymenttranstate.haspaid) {\r\n actionShopCartResetState(dispatch);\r\n if (bookingUDFS.bookingUDFs.length > 0) {\r\n actionResetUDFs(dispatch);\r\n }\r\n }\r\n\r\n if (ShowGiftCards() === true && paymenttranstate.haspaid) {\r\n actionResetGiftCards(dispatch);\r\n }\r\n\r\n\r\n })\r\n\r\n useEffect(() => {\r\n\r\n if (paymenttranstate.haspaid) {\r\n if (membershipTypesUdfs.membershipUdfs && membershipTypesUdfs.membershipUdfs.length > 0) {\r\n actionResetMembershipUDFs(dispatch);\r\n }\r\n\r\n if (customerUdfs.customerUDFs && customerUdfs.customerUDFs.length > 0) {\r\n actionResetCustomerUdfs(dispatch);\r\n }\r\n }\r\n\r\n\r\n }, [paymenttranstate.haspaid])\r\n\r\n\r\n useEffect(() => {\r\n\r\n if ((events.length > 0 || membershipPackages.length > 0 || gatickets.length > 0 || orderProducts.length > 0 || ShowGiftCards() || (donationProducts && donationProducts.length > 0)) && tncchecked) {\r\n setpfstate({\r\n ...pfstate,\r\n disablepay: false\r\n })\r\n }\r\n else if (pfstate.disablepay == false) {\r\n setpfstate({\r\n ...pfstate,\r\n disablepay: true\r\n })\r\n }\r\n\r\n let btnStatus = document.getElementById(\"btnApplyMembership\");\r\n\r\n if (formfields.checkBoxMember.value === true &&\r\n btnStatus.name !== \"Remove\" &&\r\n removeMembershipState === false) {\r\n setpfstate({\r\n ...pfstate,\r\n disablepay: true\r\n })\r\n }\r\n\r\n }, [events, tncchecked, formfields])\r\n\r\n\r\n const getTNC = () => {\r\n return ReactHtmlParser(TermsnConditionCheckMsg);\r\n }\r\n\r\n const tnccheckeHandle = (event) => {\r\n settncChecked(event.target.checked);\r\n };\r\n\r\n const transFeeCheckHandler = (event) => {\r\n actionShopCartShowTransFee(dispatch, event.target.checked);\r\n };\r\n\r\n const filterOptions = createFilterOptions({\r\n stringify: (option) => option.Country + '' + option.State,\r\n });\r\n\r\n const errorcancelhandle = () => {\r\n actionResetPaymentTransaction(dispatch);\r\n\r\n seterrorMsg(\"\");\r\n\r\n if (colorState !== 'info') {\r\n actionResetIDMEUSERDATA(dispatch);\r\n actionResetCostRate(dispatch);\r\n }\r\n }\r\n\r\n const onClickPaymentHandler = () => {\r\n\r\n actionResetPaymentTransaction(dispatch);\r\n actionShopCartResetMembership(dispatch);\r\n actionShopCartResetIDME(dispatch);\r\n actionResetMemberValidation(dispatch);\r\n actionShopCartResetMembershipPackage(dispatch);\r\n actionResetExtraItems(dispatch);\r\n actionGetDonation(dispatch);\r\n actionResetMembershipPackages(dispatch);\r\n actionResetCostRate(dispatch);\r\n actionResetCountryAndState(dispatch);\r\n\r\n if (bookingUDFS.bookingUDFs.length > 0) {\r\n actionResetUDFs(dispatch);\r\n }\r\n\r\n if (membershipTypesUdfs.membershipUdfs && membershipTypesUdfs.membershipUdfs.length > 0) {\r\n actionResetMembershipUDFs(dispatch);\r\n }\r\n\r\n if (customerUdfs.customerUDFs && customerUdfs.customerUDFs.length > 0) {\r\n actionResetCustomerUdfs(dispatch);\r\n }\r\n\r\n ReloadGateway();\r\n\r\n window.location.href = RedirectAfterCheckout;\r\n }\r\n\r\n\r\n const ReloadGateway = () => {\r\n if (PaymentMethodType === \"Spreedly\") {\r\n paymentsRef.current.ReloadSpreedly();\r\n }\r\n else {\r\n paymentsRef.current.GPReload();\r\n }\r\n }\r\n\r\n const reseterrorfield = () => {\r\n actionResetFormErrorState(dispatch);\r\n }\r\n\r\n const errorfield = (errorfield, errortext, errorstate) => {\r\n actionSetFormErrorState(dispatch, errorfield, errortext, errorstate)\r\n }\r\n\r\n const checkfieldvalidation = (fields) => {\r\n for (let prop in fields) {\r\n if (fields[prop] == \"\") {\r\n errorfield(prop, prop + \" is required.\", true)\r\n inputreferences[prop].current.focus();\r\n window.scrollBy(0, -65);\r\n return false\r\n }\r\n else {\r\n errorfield(prop, \"\", false)\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n const ValidateQuanity = () => {\r\n\r\n let isvalid = true;\r\n events.forEach(event => {\r\n\r\n if (genfunction.IsEditEvent(bookingTypes, event))\r\n return;\r\n\r\n let MinTicket = event.TourProducts[0].MinimumTickets;\r\n\r\n let fproduct = event.TourProducts.filter(p => p.AffectsCapacity);\r\n let consumedQty = 0;\r\n if (fproduct && fproduct.length > 0) {\r\n consumedQty = fproduct.reduce((a, b) => {\r\n let aqty = a.Quantity === undefined ? 0 : a.Quantity;\r\n let bqty = b.Quantity === undefined ? 0 : b.Quantity;\r\n let newobj = { Quantity: aqty + bqty }\r\n return newobj;\r\n }).Quantity;\r\n }\r\n\r\n if (consumedQty < MinTicket) {\r\n seterrorMsg(\"Minimum tickets for event is \" + MinTicket + \", please add more tickets.\")\r\n isvalid = false;\r\n }\r\n });\r\n\r\n return isvalid;\r\n }\r\n\r\n const billingAddressSameAsAbover = () => {\r\n\r\n if (formfields.billingAddressSame.value) {\r\n formfields.shipping_address1.value = formfields.address1.value;\r\n formfields.shipping_address2.value = formfields.address2.value;\r\n formfields.shipping_city.value = formfields.city.value;\r\n formfields.shipping_state.value = formfields.state.value;\r\n formfields.shipping_zip.value = formfields.zip.value;\r\n formfields.shipping_country.value = formfields.country.value;\r\n formfields.shipping_phone_number.value = formfields.phone_number.value;\r\n }\r\n }\r\n\r\n const BindRequiredFields = () => {\r\n\r\n requiredFields = {};\r\n\r\n if (PhoneNumberMandatory || (orderProducts && orderProducts.length > 0)) {\r\n requiredFields[\"phone_number\"] = formfields.phone_number.value.trim();\r\n requiredFields[\"shipping_phone_number\"] = formfields.shipping_phone_number.value;\r\n }\r\n\r\n requiredFields[\"email\"] = formfields.email.value.trim();\r\n if (UseStreetAddressForAVS)\r\n requiredFields[\"address1\"] = formfields.address1.value;\r\n requiredFields[\"country\"] = formfields.country.value;\r\n requiredFields[\"city\"] = formfields.city.value;\r\n requiredFields[\"state\"] = formfields.state.value;\r\n\r\n if (formfields.zip.value.length > 5)\r\n requiredFields[\"zip\"] = formfields.zip.value.substring(0, 5);\r\n else\r\n requiredFields[\"zip\"] = formfields.zip.value;\r\n\r\n requiredFields[\"first_name\"] = formfields.first_name.value;\r\n requiredFields[\"last_name\"] = formfields.last_name.value;\r\n\r\n requiredFields[\"shipping_address1\"] = formfields.shipping_address1.value;\r\n requiredFields[\"shipping_city\"] = formfields.shipping_city.value;\r\n requiredFields[\"shipping_state\"] = formfields.shipping_state.value;\r\n requiredFields[\"shipping_zip\"] = formfields.shipping_zip.value;\r\n requiredFields[\"shipping_country\"] = formfields.shipping_country.value;\r\n\r\n if (ShowFullAddressOnCheckout == false) {\r\n requiredFields[\"address1\"] = requiredFields[\"country\"] = requiredFields[\"city\"] = requiredFields[\"state\"] = undefined;\r\n requiredFields[\"shipping_address1\"] = requiredFields[\"shipping_country\"] = requiredFields[\"shipping_city\"] = requiredFields[\"shipping_state\"] = undefined;\r\n }\r\n\r\n if (checkfieldvalidation(requiredFields) == false) { return; }\r\n if (validateEmail(requiredFields[\"email\"]) == false) {\r\n errorfield(\"email\", \"Please enter a valid email address\", true);\r\n inputreferences['email'].current.focus();\r\n window.scrollBy(0, -65);\r\n return;\r\n }\r\n else if (requiredFields[\"phone_number\"] && validatePhoneNum(requiredFields[\"phone_number\"]) == false) {\r\n errorfield(\"phone_number\", \"Please enter a valid phone #\", true);\r\n inputreferences['phone_number'].current.focus();\r\n window.scrollBy(0, -65);\r\n return;\r\n }\r\n else if (requiredFields[\"shipping_phone_number\"] && validatePhoneNum(requiredFields[\"shipping_phone_number\"]) == false) {\r\n errorfield(\"shipping_phone_number\", \"Please enter a valid phone #\", true);\r\n inputreferences['shipping_phone_number'].current.focus();\r\n window.scrollBy(0, -65);\r\n return;\r\n }\r\n else {\r\n\r\n if (PhoneNumberMandatory || (orderProducts && orderProducts.length == 0)) {\r\n requiredFields[\"phone_number\"] = formfields.phone_number.value;\r\n requiredFields[\"shipping_phone_number\"] = formfields.shipping_phone_number.value;\r\n }\r\n\r\n requiredFields[\"address2\"] = formfields.address2.value;\r\n requiredFields[\"shipping_address2\"] = formfields.shipping_address2.value;\r\n\r\n if (shopcartreducer.membershipValidation.ismembershipApplied &&\r\n (shopcartreducer.membershipValidation.memberEmail !== formfields.email.value\r\n || shopcartreducer.membershipValidation.memberLastName !== formfields.last_name.value)) {\r\n setColorState('');\r\n seterrorMsg(UserMembershipValidatedEmailAndLastName);\r\n return;\r\n }\r\n }\r\n\r\n return requiredFields;\r\n }\r\n\r\n const ValidatePaymentFields = () => {\r\n setColorState('');\r\n\r\n if (ValidateQuanity() == false)\r\n return;\r\n\r\n billingAddressSameAsAbover();\r\n\r\n reseterrorfield();\r\n\r\n requiredFields = BindRequiredFields();\r\n\r\n return requiredFields ? true : false;\r\n }\r\n\r\n const submitPaymentForm = () => {\r\n\r\n if (ValidatePaymentFields()) {\r\n\r\n if (genfunction.subproducttotal(events, cashless, donation, (showTransFee ? transactionfee.transactionFee[0] : null), membershipPackages, gatickets, giftcards.giftcards, orderProducts, donationProducts) > 0) {\r\n requiredFields[\"month\"] = formfields.MonthSelect.value;\r\n requiredFields[\"year\"] = formfields.YearSelect.value;\r\n //reseterrorfield();\r\n paymentsRef.current.SpreedlyTransactionCall(requiredFields);\r\n }\r\n else {\r\n paymentsRef.current.SpreedlyZeroDollarTransactionCall(requiredFields);\r\n }\r\n }\r\n }\r\n\r\n const onClickPayBtn = useDebouncedCallback(submitPaymentForm, 5000, { leading: true });\r\n\r\n function validateEmail(email) {\r\n var re = new RegExp(EmailRegex);\r\n return re.test(String(email).toLowerCase());\r\n }\r\n\r\n function validatePhoneNum(phoneNum) {\r\n let cusNumber = phoneNum.replace(/\\D/g, \"\");\r\n if (cusNumber != \"\" && cusNumber.length < 10) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n const fieldhandleChange = (event) => {\r\n if (event.currentTarget.name === \"checkBoxMember\")\r\n actionSetFieldValueState(dispatch, event.currentTarget.name, event.target.checked);\r\n else\r\n actionSetFieldValueState(dispatch, event.currentTarget.name, event.target.value);\r\n\r\n };\r\n\r\n const onChangeCountry = (event, value) => {\r\n actionSetFieldValueState(dispatch, \"country\", value === null ? \"\" : value.Country);\r\n onChangeState(event, null);\r\n }\r\n\r\n const onChangeState = (event, value) => {\r\n actionSetFieldValueState(dispatch, \"state\", value === null ? \"\" : value.State);\r\n\r\n }\r\n\r\n const onChangeShippingCountry = (event, value) => {\r\n if (value === null) {\r\n actionSetFieldValueState(dispatch, \"shipping_country\", \"\")\r\n actionSetFieldValueState(dispatch, \"shipping_state\", \"\")\r\n }\r\n else\r\n actionSetFieldValueState(dispatch, \"shipping_country\", value.Country);\r\n\r\n onChangeShippingState(event, null);\r\n\r\n }\r\n const onChangeShippingState = (event, value) => {\r\n actionSetFieldValueState(dispatch, \"shipping_state\", value === null ? \"\" : value.State);\r\n\r\n }\r\n useEffect(() => {\r\n if (countryandstates === undefined || countryandstates.length == 0)\r\n actionGetCountryAndState(dispatch);\r\n\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (countryandstates && countryandstates.length > 0) {\r\n if (formfields.country.value == \"\")\r\n actionSetFieldValueState(dispatch, \"country\", countryandstates[0].Country);\r\n if (formfields.shipping_country.value == \"\") {\r\n actionSetFieldValueState(dispatch, \"shipping_country\", countryandstates[0].Country);\r\n }\r\n }\r\n }, [countryandstates]);\r\n\r\n const openerrorpopup = () => {\r\n return (paymenttranstate.errormsg != \"\" || errorMsg != \"\")\r\n }\r\n\r\n //Membership Validation\r\n\r\n const [open, setOpen] = React.useState(false);\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleCloseDialog = (event) => {\r\n actionSetFieldValueState(dispatch, \"email\", event.currentTarget.name);\r\n actionShopCartUpdateMembershipEmail(dispatch, event.currentTarget.name);\r\n setOpen(false);\r\n };\r\n\r\n const memberValidationReducer = useSelector(state => state.reducerMemberValidation);\r\n const shopcartreducer = useSelector(state => state.reducerShopCart);\r\n const tourEvents = useSelector(state => state.reducerExtraItems.extramItems);\r\n const donation = useSelector(state => state.reducerShopCart.donation);\r\n\r\n useEffect(() => {\r\n if (memberValidationReducer.loading)\r\n actionStartAppLoader(dispatch)\r\n else\r\n actionEndAppLoader(dispatch);\r\n }, [memberValidationReducer.loading]);\r\n\r\n\r\n useEffect(() => {\r\n if (memberValidationReducer && (shopcartreducer.membershipValidation.ismembershipApplied === false)) {\r\n if (memberValidationReducer.membervalidationError && memberValidationReducer.membervalidationError.length > 0) {\r\n\r\n setColorState('');\r\n seterrorMsg(memberValidationReducer.membervalidationError);\r\n }\r\n\r\n if (memberValidationReducer.membervalidation && memberValidationReducer.membervalidation.MemberValidation !== undefined) {\r\n\r\n if (!genfunction.ValidateMemberValidate(memberValidationReducer.membervalidation.MemberValidation[0])) {\r\n seterrorMsg(LastNameAndEmailORPhoneORAddressForMembership);\r\n actionResetMemberValidation(dispatch);\r\n return;\r\n }\r\n\r\n if (events && events.length > 0) {\r\n\r\n if (memberValidationReducer.membervalidation.MemberValidation[0].hasOwnProperty('AlertMessage')\r\n ) {\r\n setColorState('info');\r\n seterrorMsg(memberValidationReducer.membervalidation.MemberValidation[0].AlertMessage);\r\n actionSetFieldValueState(dispatch, \"memberno\", \"\");\r\n actionResetMemberValidation(dispatch);\r\n\r\n return;\r\n }\r\n\r\n if (memberValidationReducer.membervalidation.MemberValidation[0].hasOwnProperty('CostRateID')) {\r\n if (DefaultCostRateID == memberValidationReducer.membervalidation.MemberValidation[0].CostRateID) {\r\n setColorState('info');\r\n seterrorMsg(MembershipCostRateMatches)\r\n actionSetFieldValueState(dispatch, \"memberno\", \"\");\r\n actionResetMemberValidation(dispatch);\r\n return;\r\n }\r\n\r\n if (DefaultCostRateID != memberValidationReducer.membervalidation.MemberValidation[0].CostRateID) {\r\n if (shopcartreducer.cashless.length > 0 || shopcartreducer.tourCoupons.length > 0) {\r\n RemoveCouponsAndGiftCards();\r\n }\r\n\r\n GetTourEvents();\r\n }\r\n }\r\n\r\n }\r\n else if ((membershipPackages && membershipPackages.length > 0) || (gatickets && gatickets.length > 0) || ShowGiftCards() || (orderProducts && orderProducts.length > 0) || (donationProducts && donationProducts.length > 0)) {\r\n setColorState('info');\r\n seterrorMsg(ValidMemberMsg);\r\n\r\n actionShopCartValidMember(dispatch,\r\n memberValidationReducer.membervalidation.MemberValidation[0].CostRateID,\r\n formfields.memberno.value,\r\n formfields.email.value,\r\n formfields.last_name.value);\r\n }\r\n }\r\n }\r\n else {\r\n if (memberValidationReducer.membervalidation !== undefined && memberValidationReducer.membervalidation.MemberValidation !== undefined && memberValidationReducer.loading) {\r\n actionEndMemberValidationLoading(dispatch);\r\n }\r\n }\r\n }, [memberValidationReducer]);\r\n\r\n useEffect(() => {\r\n if ((shopcartreducer.IDME.isIdMeApplied || shopcartreducer.membershipValidation.ismembershipApplied) && removeMembershipState === false) {\r\n if (genfunction.IsOrganization(events)) {\r\n setremoveMembershipState(true);\r\n actionResetMemberValidation(dispatch);\r\n\r\n if (events && events.length > 0) {\r\n RemoveCouponsAndGiftCards();\r\n GetTourEvents();\r\n }\r\n else if ((membershipPackages && membershipPackages.length > 0) || (gatickets && gatickets.length > 0) || ShowGiftCards() || (orderProducts && orderProducts.length > 0) || (donationProducts && donationProducts.length > 0)) {\r\n RemoveMembership();\r\n }\r\n }\r\n }\r\n }, [events])\r\n\r\n useEffect(() => {\r\n\r\n if (memberValidationReducer.membervalidation &&\r\n memberValidationReducer.membervalidation.MemberValidation !== undefined\r\n && (shopcartreducer.membershipValidation.ismembershipApplied === false) && events.length > 0 && formfields.checkBoxMember.value == true) {\r\n\r\n actionShopCartApplyMembershipOnEvents(dispatch, memberValidationReducer.membervalidation.MemberValidation[0].CostRateID, tourEvents, formfields.memberno.value, formfields.email.value, formfields.last_name.value);\r\n\r\n if (memberValidationReducer.membervalidation.MemberValidation[0].EmailMatched == false\r\n && document.getElementById('Email').value !== memberValidationReducer.membervalidation.MemberValidation[0].EmailOnFile) {\r\n handleClickOpen();\r\n }\r\n\r\n if (removemembershipcouponandgifts) {\r\n setColorState('info');\r\n seterrorMsg(CouponAndGiftcardAlreadyApplied);\r\n }\r\n else {\r\n if (colorState !== 'info') {\r\n setColorState('info');\r\n seterrorMsg(Membershipsuccess);\r\n\r\n if (idmeuserdata && idmeuserdata.userdata.hasOwnProperty('attributes') && idmeuserdata.userdataerror.length < 1) {\r\n actionResetCostRate(dispatch);\r\n actionResetIDMEUSERDATA(dispatch);\r\n }\r\n }\r\n }\r\n }\r\n\r\n let btnStatus = document.getElementById(\"btnApplyMembership\");\r\n\r\n if (btnStatus && btnStatus.name === \"Remove\" && removeMembershipState) {\r\n\r\n actionShopCartApplyMembershipOnEvents(dispatch, DefaultCostRateID, tourEvents, 0, \"\", \"\");\r\n RemoveMembership();\r\n }\r\n else if (genfunction.IsOrganization(events) && shopcartreducer.IDME.isIdMeApplied && removeMembershipState) {\r\n\r\n actionShopCartApplyidmeCostratesOnEvents(dispatch, DefaultCostRateID, tourEvents);\r\n RemoveMembership();\r\n }\r\n }, [tourEvents]);\r\n\r\n useEffect(() => {\r\n genfunction.CalculateAmountSelectedForMembers(events, bookingTypes);\r\n\r\n }, [tourEvents, events])\r\n\r\n const RemoveMembership = () => {\r\n\r\n actionShopCartResetMembership(dispatch);\r\n actionShopCartResetIDME(dispatch);\r\n actionEndMemberValidationLoading(dispatch);\r\n actionSetFieldValueState(dispatch, \"memberno\", \"\");\r\n actionSetFieldValueState(dispatch, \"checkBoxMember\", false);\r\n\r\n setColorState('info');\r\n\r\n if (removemembershipcouponandgifts)\r\n seterrorMsg(RemoveMembershipCouponAndGiftcard)\r\n else\r\n seterrorMsg(RemoveMembershipsuccess)\r\n\r\n setremoveMembershipState(false);\r\n\r\n }\r\n\r\n const GetTourEvents = () => {\r\n\r\n let eventslist = genfunction.GetTourEventsList(events);\r\n actionGetExtraItems(dispatch, null, null, null, null, null, null, eventslist);\r\n }\r\n\r\n const RemoveCouponsAndGiftCards = () => {\r\n\r\n if (shopcartreducer.cashless.length > 0) {\r\n actionShopCartRemoveGiftcards(dispatch);\r\n setremovemembershipcouponandgifts(true);\r\n }\r\n\r\n if (shopcartreducer.tourCoupons.length > 0) {\r\n actionShopCartResetStateWithUniqueCouponHold(dispatch);\r\n setremovemembershipcouponandgifts(true);\r\n }\r\n }\r\n\r\n const MemberValidation = (memberno) => {\r\n\r\n errorcancelhandle();\r\n setColorState('');\r\n setremovemembershipcouponandgifts(false);\r\n\r\n var requiredFields1 = {};\r\n requiredFields1[\"memberno\"] = document.getElementById(\"memberno\").value;\r\n requiredFields1[\"last_name\"] = document.getElementById(\"Lname\").value;\r\n var email = document.getElementById(\"Email\").value.trim();\r\n var phone = document.getElementById(\"phone_number\").value;\r\n var address = '';\r\n\r\n if ((ShowFullAddressOnCheckout)) {\r\n address = document.getElementById(\"address1\").value;\r\n }\r\n var buttonState = document.getElementById(\"btnApplyMembership\").name;\r\n\r\n if (buttonState === \"Apply\") {\r\n\r\n if (checkfieldvalidation(requiredFields1) == false) { return; }\r\n\r\n if (email.length < 1 && phone.length < 1 && address.length < 1) {\r\n seterrorMsg(RequiredEmailORPhoneORAddressForMembership);\r\n return;\r\n }\r\n\r\n if (email.length > 0 && validateEmail(email) == false) {\r\n errorfield(\"email\", \"Please enter a valid email address\", true);\r\n inputreferences['email'].current.focus();\r\n window.scrollBy(0, -65);\r\n return;\r\n }\r\n\r\n if (memberno.trim().length > 1) {\r\n\r\n if (memberValidationReducer.membervalidation &&\r\n memberValidationReducer.membervalidation.MemberValidation !== undefined) {\r\n actionResetMemberValidation(dispatch);\r\n }\r\n\r\n if (events && events.length > 0) {\r\n let latestDate = genfunction.GetLatestTourEvent(events);\r\n actionGetMemberValidation(dispatch, memberno, requiredFields1[\"last_name\"], email, phone, address, latestDate);\r\n }\r\n else if ((membershipPackages && membershipPackages.length > 0) || (gatickets && gatickets.length > 0) || ShowGiftCards() || (orderProducts && orderProducts.length > 0) || (donationProducts && donationProducts.length > 0)) {\r\n actionGetMemberValidation(dispatch, memberno, requiredFields1[\"last_name\"], email, phone, address, null);\r\n }\r\n }\r\n }\r\n else {\r\n\r\n setremoveMembershipState(true);\r\n actionResetMemberValidation(dispatch);\r\n\r\n if (events && events.length > 0) {\r\n RemoveCouponsAndGiftCards();\r\n GetTourEvents();\r\n }\r\n if ((membershipPackages && membershipPackages.length > 0) || (gatickets && gatickets.length > 0) || ShowGiftCards() || (orderProducts && orderProducts.length > 0) || (donationProducts && donationProducts.length > 0)) {\r\n RemoveMembership();\r\n }\r\n }\r\n }\r\n\r\n //Membership Validation End\r\n\r\n\r\n //IDme Intregration Start\r\n\r\n useEffect(() => {\r\n if (events && events.length > 0 && window.location.href.includes('?#access_token=') && window.location.href.includes('token_type') && window.location.href.includes('expires_in')\r\n && !idmeuserdata.loading && !idmeuserdata.userdata.hasOwnProperty('attributes') && idmeuserdata.userdataerror.length < 1) {\r\n\r\n let indexOfAccessToken = parseInt(window.location.href.indexOf('access_token=')) + 13;\r\n let idmeAccessToken = window.location.href.substr(indexOfAccessToken, 32);\r\n actionGetIDMEUSERDATA(dispatch, idmeAccessToken);\r\n }\r\n\r\n if (events && events.length > 0 && window.location.href.includes('?#error=invalid_scope')) {\r\n seterrorMsg(IDmeInvalidGroup);\r\n }\r\n\r\n if (events && events.length > 0 && window.location.href.includes('?#error=unsupported_response_type')) {\r\n seterrorMsg(IDmeResponseTypeError);\r\n }\r\n\r\n if (events && events.length > 0 && window.location.href.includes('?#error=invalid_client')) {\r\n seterrorMsg(IDmeInvalidClient);\r\n }\r\n\r\n if (events && events.length > 0 && window.location.href.includes('?#error=invalid_redirect_uri')) {\r\n seterrorMsg(IDmeInvalidRedirectUri);\r\n }\r\n\r\n if (events && events.length > 0 && window.location.href.includes('?#error=access_denied')) {\r\n seterrorMsg(IDmeAccessDenied);\r\n }\r\n\r\n }, [window.location.href]);\r\n\r\n useEffect(() => {\r\n\r\n if (idmeuserdata.userdata &&\r\n idmeuserdata.userdata.hasOwnProperty('attributes') && idmeuserdata.userdata.hasOwnProperty('status')) {\r\n\r\n let group = '';\r\n let subgroups = '';\r\n\r\n if (idmeuserdata.userdata.status.length > 0) {\r\n group = idmeuserdata.userdata.status[0].group;\r\n subgroups = idmeuserdata.userdata.status[0].subgroups;\r\n }\r\n\r\n actionGetCostRate(dispatch, group, subgroups);\r\n }\r\n\r\n if (idmeuserdata.userdataerror.hasOwnProperty('Errors') && idmeuserdata.userdataerror.Errors.length > 0 && errorMsg.length == 0) {\r\n seterrorMsg(idmeuserdata.userdataerror.Errors[0].ErrorMessage)\r\n }\r\n }, [idmeuserdata]);\r\n\r\n useEffect(() => {\r\n\r\n if (costrate.costrate.hasOwnProperty('CostRateID') && costrate.costrate.CostRateID > -1 && shopcartreducer.IDME.idmecostrate !== costrate.costrate.CostRateID\r\n && costrate.loading === false && !genfunction.IsOrganization(events)) {\r\n GetTourEvents();\r\n }\r\n\r\n if (costrate.costraterror.length > 0) {\r\n seterrorMsg(costrate.costraterror);\r\n }\r\n }, [costrate.costrate]);\r\n\r\n useEffect(() => {\r\n if (costrate.costrate.hasOwnProperty('CostRateID') && costrate.costrate.CostRateID > -1 && shopcartreducer.IDME.isIdMeApplied === false\r\n && events.length > 0 && !genfunction.IsOrganization(events)) {\r\n actionShopCartApplyidmeCostratesOnEvents(dispatch, costrate.costrate.CostRateID, tourEvents);\r\n if (colorState !== 'info') {\r\n setColorState('info');\r\n seterrorMsg(IDmeSuccessMsg)\r\n }\r\n }\r\n\r\n }, [tourEvents]);\r\n\r\n const ConnectIDME = () => {\r\n\r\n let idmeApiurl = CryptoAES.decrypt(IDmeAPIurl, '1271').toString(CryptoENC);\r\n let idmeclientID = CryptoAES.decrypt(IDmeClientID, '1271').toString(CryptoENC);\r\n\r\n let idmeurl = idmeApiurl + idmeclientID + '&redirect_uri=' + IDmeRedirectURI + '&response_type=' + IDmeResponseType + '&scopes=' + IDmeScope;\r\n return idmeurl;\r\n }\r\n\r\n const ShowIDME = () => {\r\n\r\n let show = false;\r\n let costrate = DefaultCostRateID;\r\n\r\n if (shopcartreducer.membershipValidation.ismembershipApplied) {\r\n costrate = shopcartreducer.membershipValidation.membershipcostrate;\r\n }\r\n\r\n if (shopcartreducer.IDME.isIdMeApplied) {\r\n costrate = shopcartreducer.IDME.idmecostrate;\r\n }\r\n\r\n events && events.length > 0 && events.map(e => {\r\n e.TourProducts.map(prods => {\r\n if (prods.hasOwnProperty('PriceMatrix') &&\r\n prods.PriceMatrix.filter(x => x.CostRateID === costrate && x.VerifyGroupMembership === true).length > 0) {\r\n show = true;\r\n }\r\n })\r\n });\r\n\r\n if (show && genfunction.IsOrganization(events)) {\r\n show = false;\r\n }\r\n\r\n if (shopcartreducer.IDME.isIdMeApplied) {\r\n show = false;\r\n }\r\n\r\n return show && CheckForIDmeValidProducts;\r\n }\r\n\r\n //IDme Intregration End\r\n\r\n const changeBillingAddress = () => {\r\n actionSetFieldValueState(dispatch, 'billingAddressSame', !formfields.billingAddressSame.value);\r\n }\r\n let displayclass = \"\";\r\n if (paymenttranstate.loading)\r\n displayclass = classes.hidden;\r\n else if (paymenttranstate.haspaid)\r\n displayclass = classes.displaynone;\r\n\r\n\r\n\r\n const GetTransOptionalText = () => {\r\n let optionalTxt = '';\r\n if (transactionfee.transactionFee && transactionfee.transactionFee.length > 0) {\r\n\r\n optionalTxt = transactionfee.transactionFee[0].TransactionFeeOptionalText;\r\n\r\n optionalTxt += ' [' + genfunction.ccyFormat(parseFloat(genfunction.TransactionFee(events, donation, transactionfee.transactionFee[0], cashless, membershipPackages, gatickets, giftcards.giftcards, orderProducts, donationProducts))) + ']';\r\n }\r\n\r\n return optionalTxt;\r\n }\r\n\r\n const showOptionalTransactionFee = () => {\r\n let showText = false;\r\n\r\n if (transactionfee.transactionFee && transactionfee.transactionFee.length > 0) {\r\n\r\n if (transactionfee.transactionFee[0].TransactionFeeByDefault === false && transactionfee.transactionFee[0].TransactionFeeOptional === false) {\r\n showText = false;\r\n } else {\r\n showText = true;\r\n }\r\n }\r\n\r\n return showText;\r\n }\r\n\r\n let showFreeTicket = ((events && events.length > 0) || (gatickets && gatickets.length > 0) || (membershipPackages && membershipPackages.length > 0) || (orderProducts && orderProducts.length) || (donationProducts && donationProducts.length > 0)) > 0 && genfunction.subproducttotal(events, cashless, donation, (showTransFee ? transactionfee.transactionFee[0] : null), membershipPackages, gatickets, giftcards.giftcards, orderProducts, donationProducts) == 0 ? true : false;\r\n\r\n let memberemailonFile = GetEmailOnFileVal(memberValidationReducer);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {HideMemberValidation === false && !genfunction.IsOrganization(events) ?\r\n \r\n \r\n \r\n {IamMember}\r\n \r\n : null}\r\n\r\n {formfields.checkBoxMember.value ?\r\n \r\n \r\n : null}\r\n {formfields.checkBoxMember.value ?\r\n \r\n \r\n : null}\r\n\r\n {ShowIDME() ?\r\n \r\n
\r\n {IDmeHeading}\r\n \r\n \r\n \r\n

\r\n \r\n Verification by ID.me ???\r\n What is ID.me?\r\n \r\n

\r\n
\r\n
\r\n : null}\r\n\r\n \r\n 0)) ? \"Phone #\" : \"Phone # (Optional)\"}\r\n onChange={fieldhandleChange}\r\n value={formfields.phone_number.value}\r\n inputRef={inputreferences['phone_number']}\r\n fullWidth={true}\r\n\r\n error={errorstate.phone_number.errorstate}\r\n helperText={errorstate.phone_number.errortext}\r\n InputProps={{\r\n inputComponent: TextMaskCustom,\r\n inputMode: 'numeric', pattern: '[0-9]*'\r\n }}\r\n >\r\n \r\n \r\n\r\n\r\n {ShowFullAddressOnCheckout ?\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n\r\n {countryandstates.length > 0 ?\r\n \r\n {\r\n if (option.hasOwnProperty('Country')) {\r\n return option.Country;\r\n }\r\n return option;\r\n }}\r\n value={formfields.country.value}\r\n // defaultValue={ countryandstates[0]}\r\n renderOption={(option) => (\r\n <>\r\n \r\n {` ${option.Country} `}\r\n )}\r\n\r\n style={{ width: \"100%\" }}\r\n renderInput={(params) =>\r\n (\r\n )}\r\n\r\n />\r\n {errorstate.country.errortext}\r\n \r\n : \"\"}\r\n\r\n \r\n\r\n \r\n {/* */}\r\n\r\n {countryandstates.length > 0 ?\r\n \r\n x.Country == formfields.country.value).map(o => o.hasOwnProperty(\"Picklist\") ? o.Picklist : [])[0]\r\n : []\r\n }\r\n fullWidth={true}\r\n onChange={onChangeState}\r\n getOptionLabel={(option) => {\r\n if (option.hasOwnProperty('State')) {\r\n return option.State;\r\n }\r\n return option;\r\n }}\r\n value={formfields.state.value}\r\n\r\n style={{ width: \"100%\" }}\r\n renderInput={(params) =>\r\n (\r\n )}\r\n\r\n />\r\n {errorstate.state.errortext}\r\n \r\n : \"\"}\r\n\r\n \r\n \r\n : \"\"}\r\n \r\n \r\n \r\n {ShowFullAddressOnCheckout ?\r\n <>\r\n \r\n \r\n \r\n \r\n changeBillingAddress()}\r\n checked={formfields.billingAddressSame.value}\r\n />\r\n }\r\n label=\"Billing Address same as above\"\r\n />\r\n \r\n {formfields.billingAddressSame.value == false ?\r\n <>\r\n \r\n Billing Address\r\n \r\n\r\n \r\n 0)) ? \"Phone #\" : \"Phone # (Optional)\"}\r\n inputRef={inputreferences['shipping_phone_number']}\r\n onChange={fieldhandleChange}\r\n value={formfields.shipping_phone_number.value}\r\n fullWidth={true}\r\n error={errorstate.shipping_phone_number.errorstate}\r\n helperText={errorstate.shipping_phone_number.errortext}\r\n InputProps={{\r\n inputComponent: TextMaskCustom,\r\n inputMode: 'numeric', pattern: '[0-9]*'\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {countryandstates.length > 0 ?\r\n \r\n {\r\n if (option.hasOwnProperty('Country')) {\r\n return option.Country;\r\n }\r\n return option;\r\n }}\r\n value={formfields.shipping_country.value}\r\n renderOption={(option) => (\r\n <>\r\n \r\n {` ${option.Country} `}\r\n )}\r\n\r\n style={{ width: \"100%\" }}\r\n renderInput={(params) =>\r\n (\r\n )}\r\n\r\n />\r\n {errorstate.shipping_country.errortext}\r\n \r\n : \"\"}\r\n\r\n \r\n \r\n\r\n {countryandstates.length > 0 ?\r\n \r\n\r\n x.Country == formfields.shipping_country.value).map(o => o.hasOwnProperty(\"Picklist\") ? o.Picklist : [])[0]\r\n : []\r\n }\r\n fullWidth={true}\r\n onChange={onChangeShippingState}\r\n getOptionLabel={(option) => {\r\n if (option.hasOwnProperty('State')) {\r\n return option.State;\r\n }\r\n return option;\r\n }}\r\n value={formfields.shipping_state.value}\r\n style={{ width: \"100%\" }}\r\n renderInput={(params) =>\r\n (\r\n )}\r\n\r\n />\r\n {errorstate.shipping_state.errortext}\r\n \r\n : \"\"}\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n : \"\"}\r\n {showFreeTicket ? : null}\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n {PaymentMethodType === \"Spreedly\" ?\r\n <>\r\n {ApplyTransactionFee && showOptionalTransactionFee() && showFreeTicket === false ?\r\n < Grid item xs={12}>\r\n \r\n \r\n {GetTransOptionalText()}\r\n \r\n
\r\n : null}\r\n\r\n < Grid item xs={12}>\r\n \r\n \r\n {TermsnConditionCheckBoxText}\r\n { setopentnc(true) }} > Terms and Conditions \r\n \r\n\r\n
\r\n \r\n {tncchecked && EnableAlternateMerchantOnline && (orderProducts && orderProducts.length < 1) ? : null}\r\n \r\n \r\n \r\n : null}\r\n\r\n
\r\n \r\n \r\n \r\n { setopentnc(false) }}>\r\n \r\n {\"Confirmation\"}\r\n \r\n \r\n Email does not match. Email on file is {memberemailonFile}. Would you like to use this email or update the email address on file?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n );\r\n\r\n});\r\n\r\nexport default PaymentForm;\r\n\r\nfunction GetEmailOnFileVal(memberValidationReducer) {\r\n return memberValidationReducer.membervalidation !== undefined\r\n && memberValidationReducer.membervalidation.MemberValidation !== undefined\r\n && memberValidationReducer.membervalidation.MemberValidation[0] !== undefined\r\n && memberValidationReducer.membervalidation.MemberValidation[0].hasOwnProperty(\"EmailOnFile\") ?\r\n memberValidationReducer.membervalidation.MemberValidation[0].EmailOnFile : '';\r\n}\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { TextField, Button, Card, CardContent, CardHeader, Grid } from '@material-ui/core';\r\nimport { actionGetCoupon, actionResetCoupon, actionEndCouponLoading } from 'actions';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport ErrorHandling from '../../../components/ErrorHandling/ErrorHandling';\r\nimport PinCodeDialogeBox from '../../../components/DialogeBox/PinCodeDialogeBox'\r\nimport { genfunction } from '../../../helpers'\r\nimport { actionAddGiftCardHold, actionResetGiftCardHoldState, actionRecalculateGiftCardHold } from 'actions';\r\nimport { actionStartAppLoader, actionEndAppLoader } from 'actions';\r\nimport { actionShopCardAddGiftCard, actionResetCouponAlreadyApplied, actionResetCouponRemoveReset } from 'actions';\r\nimport { actionResetUniqueCouponCardHoldState } from 'actions';\r\nimport { actionDeleteUniqueCoupon } from 'actions';\r\n\r\nconst { HighestCouponAlreadyApplied, HideCoupons, HideGiftCards, GiftCardEnterPinTitle, GiftCardEnterPinSubTitle1, UseGiftcardPIN, CouponNotApplicableOnOtherPaymentMsg } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n btnAlign: {\r\n marginTop: '17px'\r\n }\r\n}));\r\n\r\nconst CouponGiftCard = props => {\r\n const [state, setState] = React.useState({ couponCode: '' });\r\n const { products } = props;\r\n const classes = useStyles();\r\n const [giftCardno, setgiftCardno] = useState(\"\");\r\n const [Pin, setPin] = useState(\"\");\r\n const [showPinPopUp, setShowPinPopUp] = useState(\"\");\r\n const [errormsg, seterrormsg] = useState(\"\");\r\n const [colorState, setColorState] = React.useState('');\r\n\r\n const dispatch = useDispatch();\r\n const { GiftCardHold, GiftCardHoldLoading, GiftCardHoldError } = useSelector(state => state.reducerGiftCardHold);\r\n const events = useSelector(state => state.reducerShopCart.events);\r\n const cashless = useSelector(state => state.reducerShopCart.cashless);\r\n const donation = useSelector(state => state.reducerShopCart.donation);\r\n const transactionfee = useSelector(state => state.reducerTransactionFee);\r\n const membershipPackages = useSelector(state => state.reducerShopCart.MembershipPackages);\r\n const gatickets = useSelector(state => state.reducerShopCart.GATickets);\r\n const orderProducts = useSelector(state => state.reducerShopCart.orderProducts);\r\n const giftcards = useSelector(state => state.reducerGiftCards);\r\n const donationProducts = useSelector(state => state.reducerShopCart.donationProducts);\r\n const showTransFee = useSelector(state => state.reducerShopCart.showTransactionFee);\r\n\r\n useEffect(() => {\r\n seterrormsg(GiftCardHoldError)\r\n }, [GiftCardHoldError]);\r\n\r\n\r\n useEffect(() => {\r\n if (GiftCardHoldLoading)\r\n actionStartAppLoader(dispatch)\r\n else\r\n actionEndAppLoader(dispatch);\r\n }, [GiftCardHoldLoading]);\r\n\r\n useEffect(() => {\r\n if (GiftCardHold.GiftcardHoldRef)\r\n ValidateAndAddGiftCard(GiftCardHold)\r\n }, [GiftCardHold]);\r\n\r\n useEffect(() => {\r\n RecalculationGiftCard();\r\n }, [events, donation, showTransFee])\r\n\r\n const ValidateAndAddGiftCard = (giftcardholdresponse) => {\r\n if (giftcardholdresponse.HoldAmount == 0) {\r\n seterrormsg('Giftcard is already consumed');\r\n }\r\n else {\r\n actionShopCardAddGiftCard(dispatch, giftcardholdresponse);\r\n actionResetGiftCardHoldState(dispatch);\r\n }\r\n }\r\n\r\n const RecalculationGiftCard = () => {\r\n const totalamount = genfunction.subproducttotal(events, cashless, donation, (showTransFee ? transactionfee.transactionFee[0] : null), membershipPackages, gatickets, giftcards.giftcards, orderProducts, donationProducts);\r\n if (totalamount != 0 && cashless.length > 0) {\r\n actionRecalculateGiftCardHold(dispatch);\r\n }\r\n }\r\n\r\n const CheckGiftCard = (giftcardNo) => {\r\n const totalamount = genfunction.subproducttotal(events, cashless, donation, (showTransFee ? transactionfee.transactionFee[0] : null), membershipPackages, gatickets, giftcards.giftcards, orderProducts, donationProducts);\r\n if (totalamount <= 0) {\r\n seterrormsg('Please add item in cart before applying Giftcard.')\r\n }\r\n else if (giftCardno == '') {\r\n seterrormsg('Please enter Giftcard number.')\r\n }\r\n else {\r\n\r\n if (UseGiftcardPIN == \"false\") {\r\n actionAddGiftCardHold(dispatch, giftcardNo);\r\n setgiftCardno('');\r\n }\r\n else {\r\n setPin(\"\");\r\n setShowPinPopUp(true);\r\n }\r\n }\r\n }\r\n\r\n const hasamount = () => {\r\n const totalamount = genfunction.subproducttotal(events, cashless, donation, (showTransFee ? transactionfee.transactionFee[0] : null), membershipPackages, gatickets, giftcards.giftcards, orderProducts, donationProducts);\r\n return totalamount > 0;\r\n }\r\n\r\n const openerrorpopup = () => {\r\n return (errormsg != \"\")\r\n }\r\n\r\n const errorcancelhandle = () => {\r\n actionResetGiftCardHoldState(dispatch);\r\n actionResetUniqueCouponCardHoldState(dispatch);\r\n actionResetCouponAlreadyApplied(dispatch);\r\n actionResetCoupon(dispatch);\r\n setgiftCardno('');\r\n seterrormsg('');\r\n }\r\n\r\n const reducerCoupon = useSelector(state => state.reducerCoupon);\r\n const shopcartreducer = useSelector(state => state.reducerShopCart);\r\n const uniqueCouponHolds = useSelector(state => state.reducerUniqueCouponHolds);\r\n\r\n const handleChange = (e) => {\r\n\r\n setState({ ...state, couponCode: e.target.value });\r\n }\r\n\r\n useEffect(() => {\r\n if (reducerCoupon.couponError !== undefined && reducerCoupon.couponError.length > 0) {\r\n seterrormsg(reducerCoupon.couponError);\r\n }\r\n }, [reducerCoupon.couponError]);\r\n\r\n useEffect(() => {\r\n if (shopcartreducer !== undefined && shopcartreducer.couponAlreadyApplied) {\r\n seterrormsg(HighestCouponAlreadyApplied);\r\n }\r\n }, [shopcartreducer.couponAlreadyApplied]);\r\n\r\n useEffect(() => {\r\n if (uniqueCouponHolds !== undefined && uniqueCouponHolds.UniqueCouponError.length > 0) {\r\n seterrormsg(uniqueCouponHolds.UniqueCouponError);\r\n actionEndCouponLoading(dispatch);\r\n }\r\n }, [uniqueCouponHolds.UniqueCouponError]);\r\n\r\n useEffect(() => {\r\n if (shopcartreducer !== undefined && shopcartreducer.removeCoupon.length > 0) {\r\n actionDeleteUniqueCoupon(dispatch, shopcartreducer.removeCoupon);\r\n actionResetCouponRemoveReset(dispatch);\r\n }\r\n }, [shopcartreducer.removeCoupon]);\r\n\r\n useEffect(() => {\r\n if (reducerCoupon.loading)\r\n actionStartAppLoader(dispatch)\r\n else\r\n actionEndAppLoader(dispatch);\r\n }, [reducerCoupon.loading]);\r\n\r\n const redirectCall = (couponCode) => {\r\n\r\n if (couponCode.length > 0) {\r\n\r\n if (!CheckUniqueCouponAlreadyApplied(couponCode)) {\r\n actionGetCoupon(dispatch, couponCode);\r\n setState({ ...state, couponCode: '' });\r\n\r\n if (shopcartreducer.events.filter(x => x.PaymentOption === \"OtherPay\").length > 0) {\r\n setColorState('info');\r\n seterrormsg(CouponNotApplicableOnOtherPaymentMsg)\r\n }\r\n }\r\n else {\r\n seterrormsg(\"Unique Coupon already applied, please remove existing coupon and try again.\");\r\n }\r\n }\r\n }\r\n\r\n const CheckUniqueCouponAlreadyApplied = (couponCode) => {\r\n\r\n let exist = false;\r\n if (events && events.length > 0) {\r\n\r\n events.map(e => {\r\n\r\n if (e.CouponItems.filter(x => x.UniqueCouponCode == couponCode && x.isUniqueCoupon).length > 0) {\r\n exist = true;\r\n }\r\n });\r\n }\r\n\r\n return exist;\r\n }\r\n\r\n const GetPinPopupButtonText = () => {\r\n if (UseGiftcardPIN == \"optional\")\r\n return \"Skip, I don???t have one\";\r\n else if (UseGiftcardPIN == \"required\")\r\n return \"Cancel\";\r\n }\r\n\r\n const PinConfirmHandler = () => {\r\n if (Pin == undefined || Pin == \"\") {\r\n seterrormsg(\"Please Enter valid Pin\")\r\n }\r\n else {\r\n setShowPinPopUp(false);\r\n actionAddGiftCardHold(dispatch, giftCardno + \"--\" + Pin);\r\n setgiftCardno('');\r\n }\r\n }\r\n\r\n const PinCancelHandler = () => {\r\n setShowPinPopUp(false);\r\n if (UseGiftcardPIN == \"optional\") {\r\n actionAddGiftCardHold(dispatch, giftCardno);\r\n }\r\n }\r\n\r\n const onChangePinHandler = (pin) => {\r\n setPin(pin);\r\n }\r\n\r\n const GiftCardsOnly = () => {\r\n let res = false;\r\n\r\n if (giftcards.giftcards && giftcards.giftcards.length > 0 && giftcards.giftcards.filter(x => x.AddedToCart === true).length > 0) {\r\n res = true;\r\n }\r\n\r\n if ((events && events.length > 0) || (membershipPackages && membershipPackages.length > 0) || (gatickets && gatickets.length > 0) || (orderProducts && orderProducts.length > 0) || (donationProducts && donationProducts.length > 0)) {\r\n res = false;\r\n }\r\n\r\n return res;\r\n }\r\n return (\r\n \r\n \r\n \r\n {HideCoupons === false || HideGiftCards === false ?\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {HideCoupons === false ? \r\n handleChange(e)}\r\n label=\"Enter Coupon Code\"\r\n value={state.couponCode}\r\n />\r\n \r\n : null}\r\n\r\n {HideGiftCards === false ? \r\n {\r\n setgiftCardno(event.target.value);\r\n }} />\r\n \r\n : null}\r\n\r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n\r\n \r\n );\r\n};\r\n\r\nexport default CouponGiftCard;\r\n","import React from 'react';\r\nimport { Typography } from '@material-ui/core';\r\nimport { useSelector } from 'react-redux';\r\nimport { genfunction } from 'helpers'\r\nconst { CartDiscardMsg, CartDiscardTime } = window['runConfig'];\r\n\r\n\r\n\r\nconst CartDiscardTimeInfo = props => {\r\n\r\n const carddiscard = useSelector(state => state.reducerCardDiscardTime);\r\n const events = useSelector(state => state.reducerShopCart.events);\r\n const MembershipPackages = useSelector(state => state.reducerShopCart.MembershipPackages);\r\n const GATickets = useSelector(state => state.reducerShopCart.GATickets);\r\n const giftcards = useSelector(state => state.reducerGiftCards);\r\n const orderProducts = useSelector(state => state.reducerShopCart.orderProducts);\r\n const donationProducts = useSelector(state => state.reducerShopCart.donationProducts);\r\n\r\n const ShowGiftCards = () => {\r\n let res = false;\r\n if (giftcards.giftcards && giftcards.giftcards.length > 0) {\r\n if (giftcards.giftcards.filter(x => x.AddedToCart === true).length > 0) {\r\n res = true;\r\n }\r\n }\r\n\r\n return res;\r\n }\r\n\r\n function millisecondsToTime(milli) {\r\n var seconds = Math.floor((milli / 1000) % 60);\r\n var minutes = Math.floor((milli / (60 * 1000)) % 60);\r\n return minutes + \":\" + genfunction.PaddingString(seconds, \"0\", 2);\r\n }\r\n\r\n return (\r\n (events.length > 0 || MembershipPackages.length > 0 || GATickets.length > 0 || orderProducts.length > 0 || ShowGiftCards() || donationProducts.length > 0) && CartDiscardTime > 0 ?\r\n\r\n \r\n {CartDiscardMsg} {\" \"} {millisecondsToTime(carddiscard.DiscardTime * 1000)}\r\n : \"\"\r\n\r\n );\r\n};\r\n\r\nexport default CartDiscardTimeInfo;\r\n","import React, { useEffect } from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { actionGetDonation } from 'actions';\r\nimport { actionShopCartUpdatePopupCounts } from 'actions';\r\nimport { FormattedInputs } from '../../../components/InputControls';\r\nimport { makeStyles } from '@material-ui/styles';\r\n\r\nconst { DonationProductID, DonationHeading, DonationDetails, InvalidDOnationAmount } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n primarycolor: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n errorFont: {\r\n color: 'red'\r\n }\r\n}));\r\n\r\nexport default function DonationPopUp(props) {\r\n\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n if (DonationProductID !== undefined) {\r\n actionGetDonation(dispatch, DonationProductID, 'donation');\r\n }\r\n }, []);\r\n\r\n const dispatch = useDispatch();\r\n const donations = useSelector(state => state.reducerDonation);\r\n const events = useSelector(state => state.reducerShopCart.events);\r\n const donation = useSelector(state => state.reducerShopCart.donation);\r\n const donationProducts = useSelector(state => state.reducerShopCart.donationProducts);\r\n const membershipPackages = useSelector(state => state.reducerShopCart.MembershipPackages);\r\n const gatickets = useSelector(state => state.reducerShopCart.GATickets);\r\n const giftcards = useSelector(state => state.reducerGiftCards);\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [showOthers, setshowOthers] = React.useState(false);\r\n const [donationPrice, setdonationPrice] = React.useState(0);\r\n const [productName, setproductName] = React.useState('');\r\n const [errorMsg, seterrorMsg] = React.useState('');\r\n\r\n const ShowGiftCards = () => {\r\n let res = false;\r\n if (giftcards.giftcards && giftcards.giftcards.length > 0) {\r\n if (giftcards.giftcards.filter(x => x.AddedToCart === true).length > 0) {\r\n res = true;\r\n }\r\n }\r\n\r\n return res;\r\n }\r\n\r\n if (props.showDialog && open === false && ((events && events.length > 0) || (gatickets && gatickets.length > 0) || (membershipPackages && membershipPackages.length > 0) || (donationProducts && donationProducts.length > 0) || ShowGiftCards()) && donation.popupCounts === 0 && donationProducts.length == 0) {\r\n setOpen(true);\r\n actionShopCartUpdatePopupCounts(dispatch)\r\n }\r\n\r\n const Validated = (val) => {\r\n if (val)\r\n seterrorMsg('');\r\n else\r\n seterrorMsg(InvalidDOnationAmount);\r\n }\r\n\r\n const ApplyDonation = () => {\r\n\r\n if (donationPrice === \"\" || donationPrice === 0 || donationPrice < 0.1) {\r\n Validated(false);\r\n return;\r\n }\r\n\r\n if (errorMsg !== '' && errorMsg.length > 0) {\r\n return;\r\n }\r\n\r\n props.ApplyDonation(DonationProductID, productName, donationPrice, showOthers ? true : false);\r\n props.CloseDonationPopUp();\r\n setOpen(false);\r\n }\r\n\r\n const handleClose = () => {\r\n props.CloseDonationPopUp();\r\n setOpen(false);\r\n Validated(true);\r\n };\r\n\r\n const handleChange = (event) => {\r\n\r\n if (event.target.value === \"Other\") {\r\n setdonationPrice('');\r\n setshowOthers(true)\r\n }\r\n else {\r\n setshowOthers(false);\r\n setdonationPrice(event.target.value);\r\n setproductName(event.target.name);\r\n Validated(true);\r\n }\r\n };\r\n\r\n const handleOtherPrice = (event) => {\r\n setdonationPrice(event.target.value);\r\n setproductName(event.target.name);\r\n }\r\n\r\n return (\r\n
\r\n \r\n {DonationHeading}\r\n \r\n \r\n {DonationDetails}\r\n \r\n \r\n {errorMsg}\r\n \r\n \r\n\r\n {donations.donations !== \"nocontent\" && donations.donations.length > 0 ?\r\n donations.donations.map((dona, i) => {\r\n\r\n return dona.Price > 0 ?\r\n\r\n dona.hasOwnProperty(\"MaxPrice\") ?\r\n
\r\n } label=\"Other\" onChange={handleChange} />\r\n {showOthers ?\r\n : null}\r\n\r\n
\r\n :\r\n } label={'$' + dona.Price} onChange={handleChange} />\r\n\r\n : null\r\n }) : null}\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Card, CardContent, CardHeader, Grid, Typography, Button } from '@material-ui/core';\r\nimport ErrorHandling from '../../../components/ErrorHandling/ErrorHandling';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport { FormattedInputs } from '../../../components/InputControls';\r\nimport { actionGetDonation } from 'actions';\r\n\r\nconst { DonationHeading, DonationDetails, ShowDonationsSections, DonationProductID, InvalidDOnationAmount } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n itemsmarginR: {\r\n 'margin-right': '10px',\r\n display: 'block !important'\r\n },\r\n donateBtn: {\r\n justifyContent: 'center',\r\n display: 'flex',\r\n marginTop: '10px'\r\n },\r\n errorFont: {\r\n color: 'red'\r\n }\r\n}));\r\n\r\n\r\nconst Donations = props => {\r\n\r\n const donations = useSelector(state => state.reducerDonation);\r\n const donation = useSelector(state => state.reducerShopCart.donation);\r\n\r\n const [showOthers, setshowOthers] = React.useState(false);\r\n const [donationPrice, setdonationPrice] = React.useState(0);\r\n const [productName, setproductName] = React.useState('');\r\n const [checkexist, setcheckexist] = React.useState(false);\r\n const [validateMsg, setvalidateMsg] = useState('');\r\n\r\n const [errormsg, seterrormsg] = useState(\"\");\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n if (DonationProductID !== undefined && (donations.donations.length === 0 || donations.donations.length === undefined))\r\n actionGetDonation(dispatch, DonationProductID, 'donation');\r\n }, []);\r\n\r\n\r\n useEffect(() => {\r\n if (donation.isdonationApplied === false) {\r\n setcheckexist(false);\r\n setdonationPrice(0);\r\n }\r\n }, [donation.isdonationApplied]);\r\n\r\n const openerrorpopup = () => {\r\n return (errormsg != \"\")\r\n }\r\n\r\n const errorcancelhandle = () => {\r\n\r\n seterrormsg('');\r\n }\r\n\r\n\r\n const ApplyDonation = () => {\r\n\r\n if (donationPrice === \"\" || donationPrice === 0 || donationPrice < 0.1) {\r\n Validated(false);\r\n return;\r\n }\r\n\r\n if (validateMsg !== '' && validateMsg.length > 0) {\r\n return;\r\n }\r\n\r\n props.ApplyDonation(DonationProductID, productName, donationPrice, showOthers ? true : false);\r\n }\r\n\r\n const Validated = (val) => {\r\n if (val)\r\n setvalidateMsg('');\r\n else\r\n setvalidateMsg(InvalidDOnationAmount);\r\n }\r\n\r\n const handleChange = (event) => {\r\n\r\n setcheckexist(true);\r\n\r\n if (event.target.value === \"Other\") {\r\n setshowOthers(true)\r\n setdonationPrice('');\r\n }\r\n else {\r\n setshowOthers(false);\r\n setdonationPrice(event.target.value);\r\n setproductName(event.target.name);\r\n setvalidateMsg('');\r\n }\r\n };\r\n\r\n const handleOtherPrice = (event) => {\r\n setdonationPrice(event.target.value);\r\n setproductName(event.target.name);\r\n \r\n if (donation && donation.isdonationApplied && donation.otherAmount) {\r\n setshowOthers(true);\r\n setcheckexist(true);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n\r\n {ShowDonationsSections ?\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {DonationDetails}\r\n \r\n \r\n \r\n \r\n {validateMsg}\r\n \r\n \r\n \r\n\r\n \r\n\r\n {donations.donations !== \"nocontent\" && donations.donations.length > 0 ?\r\n donations.donations.map((dona, i) => {\r\n\r\n return dona.Price > 0 ?\r\n\r\n dona.hasOwnProperty(\"MaxPrice\") ?\r\n\r\n
\r\n\r\n } label=\"Other\" onChange={handleChange} />\r\n\r\n {showOthers || (checkexist === false && donation.otherAmount) ?\r\n\r\n : null}\r\n\r\n
\r\n :\r\n\r\n } label={'$' + dona.Price} onChange={handleChange} />\r\n\r\n : null\r\n }) : null}\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n : null}\r\n\r\n
\r\n );\r\n};\r\n\r\nexport default Donations;\r\n","import React, { useState } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { genfunction } from 'helpers'\r\nimport CancelIcon from '@material-ui/icons/Cancel'\r\nimport {\r\n Card, CardContent, Typography, CardHeader, IconButton,\r\n Table, TableBody, TableCell, TableRow, Hidden, Tab\r\n} from '@material-ui/core';\r\nimport { withRouter } from 'react-router';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { NumberSpinner } from '../../../components/InputControls'\r\nimport { actionShopCartAddMembershipPackage } from 'actions';\r\nimport ErrorHandling from '../../../components/ErrorHandling/ErrorHandling';\r\nimport { actionRecalculateGiftCardHold } from 'actions';\r\n\r\nconst { MinimumMembershipQuantityError } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n tourheadertext: {\r\n marginTop: \"8px\"\r\n },\r\n tourbox: {\r\n marginBottom: \"10px\"\r\n },\r\n labelbold: {\r\n fontWeight: \"bold\",\r\n fontSize: \"18px\"\r\n },\r\n tablecell: {\r\n padding: \"5px\"\r\n },\r\n AddHoverOnIcons: {\r\n cursor: \"pointer !important\"\r\n }\r\n}));\r\n\r\nconst MembershipPackagesCard = props => {\r\n\r\n const { className } = props;\r\n const dispatch = useDispatch();\r\n const classes = useStyles();\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n const cashless = useSelector(state => state.reducerShopCart.cashless);\r\n\r\n\r\n const changeQuantityHandler = (reference, quantity, memTypeID, mempack) => {\r\n //Check Min and Max Quantity\r\n //need to add\r\n\r\n mempack.MembershipProducts = mempack.MembershipProducts.map(memprod => {\r\n\r\n if (memprod.MembershipType === \"AddOn\" && memprod.MembershipTypeID == memTypeID) {\r\n memprod.Quantity = quantity;\r\n }\r\n\r\n return memprod;\r\n })\r\n\r\n actionShopCartAddMembershipPackage(dispatch, mempack);\r\n }\r\n\r\n const removemembershipType = (memPackage, memType) => {\r\n\r\n if (memType && memType.MinQuantity < 1) {\r\n memPackage.MembershipProducts = memPackage.MembershipProducts.map(m => {\r\n\r\n if (m.MembershipTypeID == memType.MembershipTypeID) {\r\n if (m.MembershipType === \"Membership\") {\r\n m.Users = [];\r\n }\r\n else if (m.MembershipType === \"AddOn\") {\r\n m.Quantity = 0;\r\n }\r\n }\r\n return m;\r\n });\r\n\r\n actionShopCartAddMembershipPackage(dispatch, memPackage);\r\n }\r\n else {\r\n seterrorMsg('Minimum Quantity for this Membership is ' + memType.MinQuantity + ', You Can not remove it.');\r\n }\r\n }\r\n\r\n const removeUserFromMembershipType = (memPackage, memProdType, user) => {\r\n\r\n if (user && user.isPrimaryMember) {\r\n seterrorMsg(user.firstName + ' ' + user.lastName + ' is primary member, you cannot remove it.');\r\n return;\r\n }\r\n\r\n if (memProdType && memProdType.MinQuantity < 1 || (memProdType.MembershipType == \"Membership\" && memProdType.Users.length > memProdType.MinQuantity)) {\r\n\r\n memPackage.MembershipProducts = memPackage.MembershipProducts.map(m => {\r\n\r\n if (m.MembershipTypeID == m.MembershipTypeID && m.MembershipType === \"Membership\") {\r\n\r\n m.Users = m.Users.filter(x => x.userNo != user.userNo);\r\n }\r\n\r\n return m;\r\n });\r\n\r\n actionShopCartAddMembershipPackage(dispatch, memPackage);\r\n\r\n if (cashless && cashless.length > 0) {\r\n actionRecalculateGiftCardHold(dispatch);\r\n }\r\n }\r\n else {\r\n seterrorMsg('Minimum Quantity for this Membership is ' + memProdType.MinQuantity + ', You Can not remove it.');\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n\r\n const errorcancelhandle = () => {\r\n seterrorMsg(\"\");\r\n }\r\n\r\n const replaceEscapeCharacters = (item) => {\r\n var itemValue = item.split(\"\\\\r\\\\n\").join(\"
\");\r\n itemValue = itemValue.split(\"\\\\\").join(\"\");\r\n return itemValue;\r\n }\r\n\r\n\r\n const EditMembershipPackage = (membership) => {\r\n\r\n props.history.push({\r\n pathname: '/memberships/join/' + membership.MembershipPackageID\r\n })\r\n }\r\n\r\n return (\r\n props.membershipPackages ?\r\n props.membershipPackages.map(memPackage => (\r\n \r\n { EditMembershipPackage(memPackage) }}\r\n />\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {memPackage.MembershipProducts.filter(x => x.MembershipType === \"Membership\" && x.Users.length > 0).map(memProdType => (\r\n\r\n <>\r\n {replaceEscapeCharacters(memProdType.ProductName)}\r\n {memProdType.MembershipDuration}\r\n {genfunction.ccyFormat(memProdType.Price)}\r\n {genfunction.ccyFormat(memProdType.Price * memProdType.Users.length)}\r\n \r\n {\r\n memProdType.MembershipType === \"Membership\" && memProdType.Users.length > 0 && memProdType.Users.map(user => (\r\n \r\n \r\n \r\n \r\n \r\n removeUserFromMembershipType(memPackage, memProdType, user)}\r\n >\r\n \r\n \r\n \r\n {user.firstName + ' ' + user.lastName}\r\n\r\n \r\n\r\n \r\n \r\n \r\n removeUserFromMembershipType(memPackage, memProdType, user)}\r\n >\r\n \r\n \r\n \r\n {user.firstName + ' ' + user.lastName}\r\n\r\n \r\n\r\n \r\n\r\n ))\r\n }\r\n ))}\r\n\r\n {memPackage.MembershipProducts.filter(x => x.MembershipType === \"AddOn\" && x.Quantity > 0).map(memProdType => (\r\n\r\n \r\n \r\n removemembershipType(memPackage, memProdType)}\r\n >\r\n \r\n \r\n \r\n {replaceEscapeCharacters(memProdType.ProductName)}\r\n\r\n {genfunction.ccyFormat(memProdType.Price)}\r\n\r\n \r\n {genfunction.ccyFormat(memProdType.Price)}\r\n \r\n \r\n {genfunction.ccyFormat(genfunction.priceRow(1, memProdType.Price))}\r\n \r\n \r\n\r\n ))}\r\n\r\n\r\n \r\n \r\n Subtotal\r\n {genfunction.ccyFormat(memPackage.SubTotal)}\r\n \r\n \r\n \r\n Tax\r\n {genfunction.ccyFormat(memPackage.TotalTax)}\r\n \r\n \r\n \r\n Total\r\n {genfunction.ccyFormat(memPackage.TotalAmount)}\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n\r\n )) : null\r\n );\r\n};\r\n\r\n\r\nexport default withRouter(MembershipPackagesCard);\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { genfunction } from 'helpers'\r\nimport CancelIcon from '@material-ui/icons/Cancel'\r\nimport {\r\n Card, CardContent, CardHeader, IconButton,\r\n Table, TableBody, TableCell, TableRow, Hidden\r\n} from '@material-ui/core';\r\n\r\nimport { NumberSpinner } from '../../../components/InputControls'\r\nimport { withRouter } from 'react-router'\r\nimport ErrorHandling from '../../../components/ErrorHandling/ErrorHandling';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n tourheadertext: {\r\n marginTop: \"8px\"\r\n },\r\n labelbold: {\r\n fontWeight: \"bold\",\r\n fontSize: \"18px\"\r\n },\r\n tablecell: {\r\n padding: \"5px\"\r\n }\r\n}));\r\n\r\nconst GATicketCard = props => {\r\n\r\n const { products } = props;\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n const classes = useStyles();\r\n\r\n const changeQuantityHandler = (reference, value) => {\r\n props.changeQuantityHandler(reference, value);\r\n }\r\n\r\n const removeclickhandler = (ProductID) => {\r\n props.removeclickhandler(ProductID);\r\n }\r\n\r\n const errorcancelhandle = () => {\r\n seterrorMsg(\"\");\r\n }\r\n\r\n const MaxTicketQuantity = (ProductID) => {\r\n let ticket = products.find(p => p.ProductID === ProductID);\r\n let fproduct = products.filter(p => p.ProductID === ProductID);\r\n let consumedQty = 0;\r\n if (fproduct && fproduct.length > 0) {\r\n consumedQty = fproduct.reduce((a, b) => {\r\n let aqty = a.Quantity === undefined ? 0 : a.Quantity;\r\n let bqty = b.Quantity === undefined ? 0 : b.Quantity;\r\n let newobj = { Quantity: aqty + bqty }\r\n return newobj;\r\n }).Quantity;\r\n }\r\n return ticket.MaxQuantity - consumedQty;\r\n }\r\n\r\n const getTotalAmount = () => {\r\n let amount = {\r\n ticketamount: 0,\r\n tax: 0,\r\n total: 0,\r\n }\r\n\r\n products.forEach(ticket => {\r\n amount.ticketamount += ticket.OriginalTicketAmount;\r\n amount.tax += ticket.OriginalTaxAmount;\r\n amount.total += ticket.OriginalTotalAmount;\r\n });\r\n\r\n return amount;\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {products.map(ticket => (\r\n \r\n \r\n removeclickhandler(ticket.ProductID, ticket.OriginalPrice)}\r\n >\r\n \r\n \r\n \r\n {ticket.ProductName}\r\n \r\n { changeQuantityHandler(refrence, value) }}>\r\n \r\n \r\n {genfunction.ccyFormat(ticket.OriginalPrice)}\r\n {genfunction.ccyFormat(genfunction.priceRow(ticket.Quantity, ticket.OriginalPrice))}\r\n \r\n \r\n {genfunction.ccyFormat(genfunction.priceRow(ticket.Quantity, ticket.OriginalPrice))}\r\n \r\n \r\n ))}\r\n\r\n \r\n \r\n Subtotal\r\n {genfunction.ccyFormat(getTotalAmount().ticketamount)}\r\n \r\n \r\n \r\n Tax\r\n {genfunction.ccyFormat(getTotalAmount().tax)}\r\n \r\n \r\n \r\n Total\r\n {genfunction.ccyFormat(getTotalAmount().total)}\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nGATicketCard.propTypes = {\r\n products: PropTypes.array.isRequired,\r\n removeclickhandler: PropTypes.func\r\n};\r\n\r\nexport default withRouter(GATicketCard);\r\n","import React, { useState } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { genfunction } from 'helpers'\r\nimport CancelIcon from '@material-ui/icons/Cancel'\r\nimport { Card, CardContent, CardHeader, IconButton, Table, TableBody, TableCell, TableRow, Hidden, TextField } from '@material-ui/core';\r\n\r\nimport { NumberSpinner } from '../../../components/InputControls'\r\nimport { withRouter } from 'react-router'\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport ErrorHandling from '../../../components/ErrorHandling/ErrorHandling';\r\nimport { actionUpdateGiftCrdQuantity, actionUpdateGiftCardCustomAmout, actionRemoveGiftCard } from 'actions';\r\nimport { actionRecalculateGiftCardHold } from 'actions';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n tourheadertext: {\r\n marginTop: \"8px\"\r\n },\r\n labelbold: {\r\n fontWeight: \"bold\",\r\n fontSize: \"18px\"\r\n },\r\n tablecell: {\r\n padding: \"5px\"\r\n }\r\n}));\r\n\r\nconst GiftCards = props => {\r\n\r\n const { className, products } = props;\r\n const dispatch = useDispatch();\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n const classes = useStyles();\r\n\r\n const giftcards = useSelector(state => state.reducerGiftCards);\r\n const cashless = useSelector(state => state.reducerShopCart.cashless);\r\n\r\n const GiftCardsTotal = () => {\r\n let total = 0;\r\n total = giftcards ? giftcards.giftcards.map(({ CartTotalAmount }) => CartTotalAmount).reduce((sum, i) => sum + i, 0) : 0;\r\n return total;\r\n }\r\n\r\n const changeQuantityHandler = (refrence, value) => {\r\n actionUpdateGiftCrdQuantity(dispatch, refrence.tourProductID, value, true);\r\n }\r\n\r\n\r\n const UpdateCustomAmout = (event) => {\r\n\r\n if (parseFloat(event.target.value) >= 0) {\r\n var gc = giftcards.giftcards.find(x => x.ProductID === parseInt(event.target.id));\r\n\r\n if (gc && parseFloat(event.target.value) <= gc.MaxPrice && parseFloat(event.target.value) >= gc.Price) {\r\n actionUpdateGiftCardCustomAmout(dispatch, parseInt(event.target.id), parseFloat(event.target.value), true);\r\n }\r\n\r\n }\r\n }\r\n\r\n const CustomGiftCardVal = (prodID) => {\r\n\r\n let val = false;\r\n\r\n if (giftcards.giftcards && giftcards.giftcards.length > 0) {\r\n if (giftcards.giftcards.find(x => x.ProductID === prodID) !== undefined) {\r\n val = giftcards.giftcards.find(x => x.ProductID === prodID).CartTotalAmount;\r\n }\r\n }\r\n\r\n return val;\r\n }\r\n\r\n const RemoveGC = (prodID) => {\r\n\r\n if (prodID > 0) {\r\n actionRemoveGiftCard(dispatch, prodID);\r\n\r\n if (cashless && cashless.length > 0) {\r\n actionRecalculateGiftCardHold(dispatch);\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {giftcards.giftcards.filter(x => x.CartQty > 0 || (x.MaxPrice !== undefined && x.TotalAmount > 0)).map(gc => (\r\n \r\n \r\n RemoveGC(gc.ProductID)}\r\n >\r\n \r\n \r\n \r\n {gc.ProductName}\r\n \r\n {gc.hasOwnProperty(\"MaxPrice\") ?\r\n \r\n :\r\n { changeQuantityHandler(refrence, value) }}\r\n >}\r\n\r\n \r\n \r\n {/* {genfunction.ccyFormat(gc.hasOwnProperty(\"MaxPrice\") ? gc.TotalAmount : gc.Price)} */}\r\n {genfunction.ccyFormat(genfunction.priceRow(gc.hasOwnProperty(\"MaxPrice\") ? 1 : gc.CartQty, gc.hasOwnProperty(\"MaxPrice\") ? gc.CartTotalAmount : gc.Price))}\r\n \r\n \r\n {genfunction.ccyFormat(genfunction.priceRow(gc.CartQty, gc.Price))}\r\n \r\n \r\n ))}\r\n\r\n\r\n \r\n \r\n Total\r\n {genfunction.ccyFormat(GiftCardsTotal())}\r\n \r\n\r\n\r\n\r\n \r\n
\r\n
\r\n \r\n\r\n )\r\n};\r\n\r\nexport default withRouter(GiftCards);\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { genfunction } from 'helpers'\r\nimport CancelIcon from '@material-ui/icons/Cancel'\r\nimport {\r\n Card, CardContent, CardHeader, IconButton,\r\n Table, TableBody, TableCell, TableRow, Hidden,\r\n Typography\r\n} from '@material-ui/core';\r\n\r\nimport { NumberSpinner } from '../../../components/InputControls'\r\nimport { withRouter } from 'react-router'\r\nimport ErrorHandling from '../../../components/ErrorHandling/ErrorHandling';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n tourheadertext: {\r\n marginTop: \"8px\"\r\n },\r\n labelbold: {\r\n fontWeight: \"bold\",\r\n fontSize: \"18px\"\r\n },\r\n tablecell: {\r\n padding: \"5px\",\r\n alignSelf: \"\"\r\n }\r\n}));\r\n\r\nconst OrderItemsCard = props => {\r\n\r\n const { products } = props;\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n const classes = useStyles();\r\n\r\n const changeQuantityHandler = (reference, value) => {\r\n props.changeQuantityHandler(reference, value);\r\n }\r\n\r\n const removeclickhandler = (ProductID) => {\r\n props.removeclickhandler(ProductID);\r\n }\r\n\r\n const errorcancelhandle = () => {\r\n seterrorMsg(\"\");\r\n }\r\n\r\n const getProductOptions = (product) => {\r\n if (product.Options) {\r\n\r\n let productWithOptions = product.Options.filter(x => x.Products && x.Products.length > 0 && x.Products.find(y => y.IsSelected == true) != undefined);\r\n if (productWithOptions && productWithOptions.length > 0) {\r\n return (\r\n productWithOptions.map(option => {\r\n return (\r\n option.Products.map(opproduct => {\r\n return (\r\n opproduct.IsSelected ?\r\n \r\n {genfunction.replaceEscapeCharacters(opproduct.ProductName)}\r\n : \"\"\r\n )\r\n }))\r\n })\r\n );\r\n }\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n const getTotalAmount = () => {\r\n let amount = {\r\n subtotal: 0,\r\n tax: 0,\r\n total: 0,\r\n }\r\n\r\n let foodAmount = genfunction.getOrderProductsTotalPrice(products);\r\n amount.subtotal += foodAmount.subtotal;\r\n amount.tax += foodAmount.tax;\r\n amount.total += foodAmount.total;\r\n\r\n return amount;\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {products.map(product => (\r\n \r\n \r\n removeclickhandler(product)}\r\n >\r\n \r\n \r\n \r\n \r\n {genfunction.replaceEscapeCharacters(product.ProductName)}\r\n {getProductOptions(product)}\r\n \r\n \r\n {product.Quantity}\r\n \r\n \r\n {genfunction.ccyFormat(genfunction.getOrderProductsTotalPrice([product]).price)}\r\n {genfunction.ccyFormat(genfunction.getOrderProductsTotalPrice([product]).subtotal)}\r\n \r\n \r\n {genfunction.ccyFormat(genfunction.getOrderProductsTotalPrice([product]).subtotal)}\r\n \r\n \r\n ))}\r\n\r\n \r\n \r\n Subtotal\r\n {genfunction.ccyFormat(getTotalAmount().subtotal)}\r\n \r\n \r\n \r\n Tax\r\n {genfunction.ccyFormat(getTotalAmount().tax)}\r\n \r\n \r\n \r\n Total\r\n {genfunction.ccyFormat(getTotalAmount().total)}\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nOrderItemsCard.propTypes = {\r\n products: PropTypes.array.isRequired,\r\n removeclickhandler: PropTypes.func\r\n};\r\n\r\nexport default withRouter(OrderItemsCard);\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { genfunction } from 'helpers'\r\nimport CancelIcon from '@material-ui/icons/Cancel'\r\nimport {\r\n Card, CardContent, CardHeader, IconButton,\r\n Table, TableBody, TableCell, TableRow, Hidden\r\n} from '@material-ui/core';\r\n\r\nimport { NumberSpinner } from '../../../components/InputControls'\r\nimport { withRouter } from 'react-router'\r\nimport ErrorHandling from '../../../components/ErrorHandling/ErrorHandling';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n tourheadertext: {\r\n marginTop: \"8px\"\r\n },\r\n labelbold: {\r\n fontWeight: \"bold\",\r\n fontSize: \"18px\"\r\n },\r\n tablecell: {\r\n padding: \"5px\"\r\n }\r\n}));\r\n\r\nconst DonationProductCard = props => {\r\n\r\n const { products } = props;\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n const classes = useStyles();\r\n\r\n const removeclickhandler = (ProductID) => {\r\n props.removeclickhandler(ProductID);\r\n }\r\n\r\n const errorcancelhandle = () => {\r\n seterrorMsg(\"\");\r\n }\r\n\r\n const getTotalAmount = () => {\r\n let amount = {\r\n total: 0\r\n }\r\n\r\n products.forEach(product => {\r\n amount.total += product.Amount;\r\n });\r\n\r\n return amount;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {products.map(ticket => (\r\n \r\n \r\n removeclickhandler(ticket.ProductID)}\r\n >\r\n \r\n \r\n \r\n {ticket.ProductName}\r\n {genfunction.ccyFormat(ticket.Amount)}\r\n \r\n ))}\r\n\r\n \r\n \r\n \r\n Total {genfunction.ccyFormat(getTotalAmount().total)}\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nDonationProductCard.propTypes = {\r\n products: PropTypes.array.isRequired,\r\n removeclickhandler: PropTypes.func\r\n};\r\n\r\nexport default withRouter(DonationProductCard);\r\n","import React, { useEffect, useState, useRef } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Grid, Container, Link, Button } from '@material-ui/core';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport {\r\n GoogleReCaptchaProvider,\r\n} from 'react-google-recaptcha-v3';\r\n\r\nimport {\r\n BookingTypeCard, CouponGiftCard, Donations, PayableCard, PaymentForm, CartDiscardTimeInfo,\r\n DonationPopUp, MembershipPackagesCard, GATicketCard, GiftCards,\r\n OrderItemsCard, DonationProductCard\r\n} from './components';\r\n\r\nimport {\r\n actionShopCartResetStateWithTourHold,\r\n actionShopCartAddProductQuanityWithTourHold,\r\n actionShopCartRemoveTourWithTourHold,\r\n actionShopCartResetStateWithUniqueCouponHold,\r\n actionShopCartResetMembership, actionShopCartResetIDME, actionShopCartResetMembershipPackage,\r\n actionShopCartRemoveGATicket, actionShopCartGATicketUpdateQuanity, actionShopCartResetGATicket, actionShopCartRemoveGiftcards,\r\n actionDeleteOrderProduct, actionShopcartResetOrderProducts, actionShopCartResetDonation, actionShopCartApplyDonation,\r\n actionShopCartDeleteDonationProduct, actionShopCartResetDonationProduct,\r\n actionShopCartResetDonations\r\n} from 'actions';\r\n\r\nimport { actionResetMemberValidation } from 'actions';\r\nimport { actionResetExtraItems } from 'actions';\r\nimport { actionResetFieldValuesState } from 'actions';\r\nimport { actionResetBookingTypes } from 'actions';\r\nimport { actionResetDonations } from 'actions';\r\nimport { actionResetTransactionFee } from 'actions';\r\nimport { actionResetBooking } from 'actions';\r\nimport { actionResetGiftCards } from 'actions';\r\nimport { actionResetMembershipPackages } from 'actions';\r\nimport { actionResetCostRate } from 'actions';\r\nimport { actionResetIDMEUSERDATA } from 'actions';\r\nimport { actionResetUDFs } from 'actions';\r\nimport { actionResetMembershipUDFs } from 'actions';\r\nimport { actionResetCountryAndState } from 'actions'\r\nimport { actionResetCustomerUdfs } from 'actions';\r\n\r\nconst { ApplyTransactionFee, ShowDonationPopUp, RecaptchaV3Client, HideCoupons, HideGiftCards, PaymentMethodType } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n content: {\r\n //marginTop: theme.spacing(2)\r\n //textAlign: 'center'\r\n },\r\n closebutton: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n DialogeHeader: {\r\n backgroundColor: theme.palette.success.main,\r\n color: theme.palette.success.contrastText\r\n },\r\n DialogeHeaderText: {\r\n color: theme.palette.success.contrastText\r\n },\r\n hidden: {\r\n visibility: \"hidden\"\r\n },\r\n paymentbox: {\r\n height: \"100%\"\r\n },\r\n linkbutton: {\r\n padding: \"0px 5px 0px 0px\"\r\n },\r\n diplaynone: {\r\n display: 'none'\r\n }\r\n}));\r\n\r\nconst Checkout = (props) => {\r\n\r\n const gatewayRef = useRef();\r\n const classes = useStyles();\r\n\r\n const events = useSelector(state => state.reducerShopCart.events);\r\n const cashless = useSelector(state => state.reducerShopCart.cashless);\r\n const gaTickets = useSelector(state => state.reducerShopCart.GATickets);\r\n const orderProducts = useSelector(state => state.reducerShopCart.orderProducts);\r\n const orderLocation = useSelector(state => state.reducerOrderLocations.orderLocation);\r\n const shopcartreducer = useSelector(state => state.reducerShopCart);\r\n const membershipPackages = useSelector(state => state.reducerShopCart.MembershipPackages);\r\n const giftcards = useSelector(state => state.reducerGiftCards);\r\n const bookingUDFS = useSelector(state => state.reducerBookingUserDefinedFields);\r\n const membershipTypesUdfs = useSelector(state => state.reducerMembershipUserDefinedFields);\r\n const customerUdfs = useSelector(state => state.reducerCustomerUDFs);\r\n const donationProducts = useSelector(state => state.reducerShopCart.donationProducts);\r\n const donations = useSelector(state => state.reducerDonation);\r\n\r\n const [opendonationPopup, setopendonationPopup] = useState(true);\r\n\r\n const CloseDonationPopUp = () => {\r\n setopendonationPopup(false);\r\n }\r\n\r\n const ApplyDonation = (productID, productName, price, OthersAmount) => {\r\n\r\n let useAltMerchant = false;\r\n\r\n if (donations.donations && donations.donations.length > 0) {\r\n useAltMerchant = donations.donations[0].UseAlternateMerchantOnline\r\n }\r\n\r\n actionShopCartApplyDonation(dispatch, productID, productName, price, OthersAmount, useAltMerchant);\r\n }\r\n const paymenttranstate = useSelector(state => {\r\n return (\r\n {\r\n haspaid: state.reducerPaymentTransaction.Payment.hasOwnProperty('Products')\r\n }\r\n )\r\n });\r\n\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n\r\n if ((events && events.length === 0) && (membershipPackages && membershipPackages.length == 0) && gaTickets && gaTickets.length == 0 && giftcards.giftcards && giftcards.giftcards.length == 0 && donationProducts && donationProducts.length == 0) {\r\n\r\n actionResetFieldValuesState(dispatch);\r\n actionResetTransactionFee(dispatch);\r\n actionShopCartResetMembership(dispatch);\r\n actionShopCartResetIDME(dispatch);\r\n\r\n if (shopcartreducer.membershipValidation.ismembershipApplied) {\r\n actionResetMemberValidation(dispatch);\r\n }\r\n }\r\n\r\n }, [events, membershipPackages, gaTickets, giftcards.giftcards, donationProducts])\r\n\r\n const removeclickhandler = (eventid, productid) => {\r\n actionShopCartRemoveTourWithTourHold(dispatch, events, eventid, productid)\r\n }\r\n\r\n const changeQuantityHandler = (reference, quantity) => {\r\n actionShopCartAddProductQuanityWithTourHold(dispatch, events, reference.eventId, reference.tourProductID, quantity);\r\n }\r\n\r\n const removeGATicketClickHandler = (ProductId) => {\r\n actionShopCartRemoveGATicket(dispatch, ProductId)\r\n }\r\n\r\n const removeOrderProductClickHandler = (product) => {\r\n actionDeleteOrderProduct(dispatch, product);\r\n }\r\n\r\n const changeGATicketQuantityHandler = (reference, quantity) => {\r\n actionShopCartGATicketUpdateQuanity(dispatch, reference.tourProductID, quantity);\r\n }\r\n\r\n const remoteDonationProductClickHandler = (productID) => {\r\n actionShopCartDeleteDonationProduct(dispatch, productID);\r\n }\r\n\r\n const goBack = () => {\r\n\r\n if (events && events.length > 0) {\r\n props.history.push('/products');\r\n return;\r\n }\r\n\r\n if (membershipPackages && membershipPackages.length > 0) {\r\n props.history.push('/memberships');\r\n return;\r\n }\r\n\r\n else if (gaTickets && gaTickets.length > 0) {\r\n props.history.push('/gatickets');\r\n return;\r\n }\r\n\r\n else if (donationProducts && donationProducts.length > 0) {\r\n props.history.push('/donation/Area/' + donationProducts[donationProducts.length - 1].DisplayArea);\r\n return;\r\n }\r\n\r\n else if (giftcards.giftcards && giftcards.giftcards.length > 0) {\r\n props.history.push('/giftcards');\r\n return;\r\n }\r\n\r\n else if (orderProducts && orderProducts.length > 0) {\r\n if (orderLocation) {\r\n let tabLocationID = orderLocation.TabLocations[0].TabLocationID;\r\n props.history.push('/ordermenu/' + tabLocationID);\r\n }\r\n else {\r\n actionShopcartResetOrderProducts(dispatch);\r\n props.history.push('/orderlocation');\r\n }\r\n return;\r\n }\r\n }\r\n\r\n const ShowGiftCards = () => {\r\n let res = false;\r\n if (giftcards.giftcards && giftcards.giftcards.length > 0) {\r\n if (giftcards.giftcards.filter(x => x.AddedToCart === true).length > 0) {\r\n res = true;\r\n }\r\n }\r\n\r\n return res;\r\n }\r\n\r\n\r\n let displayclass = \"\";\r\n if (paymenttranstate.haspaid)\r\n displayclass = classes.hidden;\r\n\r\n return (\r\n \r\n {ShowDonationPopUp ? : null}\r\n Checkout\r\n \r\n \r\n {(events && events.length > 0)\r\n || (membershipPackages && membershipPackages.length > 0)\r\n || (gaTickets && gaTickets.length > 0)\r\n || (orderProducts && orderProducts.length > 0)\r\n || (donationProducts && donationProducts.length > 0)\r\n || ShowGiftCards() ?\r\n \r\n {\r\n actionResetExtraItems(dispatch);\r\n goBack()\r\n }}\r\n >\r\n Continue Shopping\r\n \r\n\r\n {\r\n\r\n if (events && events.length > 0) {\r\n actionShopCartResetStateWithTourHold(dispatch, events);\r\n }\r\n\r\n if (shopcartreducer.donation.isdonationApplied) {\r\n actionShopCartResetDonation(dispatch);\r\n }\r\n\r\n if (shopcartreducer.tourCoupons.length > 0) {\r\n actionResetDonations(dispatch);\r\n actionShopCartResetStateWithUniqueCouponHold(dispatch);\r\n }\r\n\r\n if (shopcartreducer.cashless.length > 0) {\r\n actionShopCartRemoveGiftcards(dispatch);\r\n }\r\n\r\n actionResetMemberValidation(dispatch);\r\n actionResetFieldValuesState(dispatch);\r\n actionResetBookingTypes(dispatch);\r\n actionShopCartResetMembershipPackage(dispatch);\r\n actionResetExtraItems(dispatch);\r\n actionResetMembershipPackages(dispatch);\r\n actionShopCartResetMembership(dispatch);\r\n actionShopCartResetIDME(dispatch);\r\n\r\n if (ApplyTransactionFee) {\r\n actionResetTransactionFee(dispatch);\r\n }\r\n\r\n actionShopCartResetGATicket(dispatch);\r\n actionShopCartResetDonationProduct(dispatch);\r\n actionShopcartResetOrderProducts(dispatch);\r\n actionResetBooking(dispatch);\r\n actionResetGiftCards(dispatch);\r\n actionResetCostRate(dispatch);\r\n actionResetIDMEUSERDATA(dispatch);\r\n actionResetCountryAndState(dispatch);\r\n\r\n if (bookingUDFS.bookingUDFs.length > 0) {\r\n actionResetUDFs(dispatch);\r\n }\r\n\r\n if (membershipTypesUdfs.membershipUdfs && membershipTypesUdfs.membershipUdfs.length > 0) {\r\n actionResetMembershipUDFs(dispatch);\r\n }\r\n\r\n if (customerUdfs.customerUDFs && customerUdfs.customerUDFs.length > 0) {\r\n actionResetCustomerUdfs(dispatch);\r\n }\r\n\r\n\r\n gatewayRef.current.ReloadGateways();\r\n\r\n actionShopCartResetDonations(dispatch);\r\n\r\n }}\r\n >\r\n Clear Cart\r\n \r\n \r\n : \"\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {events && events.length > 0 ?\r\n \r\n \r\n : null}\r\n\r\n {gaTickets && gaTickets.length > 0 ?\r\n \r\n \r\n \r\n : null}\r\n\r\n {orderProducts && orderProducts.length > 0 ?\r\n \r\n \r\n : null}\r\n {donationProducts && donationProducts.length > 0 ? \r\n \r\n : null}\r\n\r\n\r\n \r\n \r\n \r\n\r\n 0 ? '' : classes.diplaynone}>\r\n \r\n \r\n\r\n\r\n 0 && !HideCoupons) || (membershipPackages && membershipPackages.length > 0) || (gaTickets && gaTickets.length > 0) || (orderProducts && orderProducts.length > 0) || (donationProducts && donationProducts.length > 0) || ShowGiftCards() ? '' : classes.diplaynone}>\r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n\r\n\r\n 0) || (membershipPackages && membershipPackages.length > 0) || (gaTickets && gaTickets.length > 0) || (orderProducts && orderProducts.length > 0) || (donationProducts && donationProducts.length > 0) || ShowGiftCards() ? '' : classes.diplaynone}>\r\n \r\n \r\n\r\n \r\n \r\n \r\n {RecaptchaV3Client && RecaptchaV3Client != \"\" ?\r\n \r\n \r\n \r\n : }\r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Checkout;\r\n","export default {\r\n initialpaystate: {\r\n disablepay: true,\r\n firstname: \"\",\r\n lastname: \"\",\r\n email: \"\"\r\n },\r\n\r\n initialDialogstate: {\r\n open: false,\r\n dialogetitle: \"\",\r\n dialogemessage: \"\",\r\n },\r\n\r\n\r\n initialerrorhandler: {\r\n open: false,\r\n dialogemessage: \"\",\r\n }\r\n\r\n}","import React from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Card, CardContent, CardActions, Typography, Button, CardHeader } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n card: {\r\n \"&:hover\": {\r\n transform: 'scale(1.02)',\r\n WebkitTransform: 'scale(1.02)',\r\n boxShadow: \"inset 0 0 0 2px\",\r\n cursor: 'pointer'\r\n }\r\n },\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n }\r\n}));\r\n\r\nconst MembershipCard = props => {\r\n const classes = useStyles();\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {props.membership.PackageName}\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default MembershipCard;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Grid } from '@material-ui/core';\r\nimport { MembershipCard } from './components/';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { actionGetMembershipPackages, actionResetMembershipPackage } from 'actions';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport ErrorHandling from '../../components/ErrorHandling/ErrorHandling';\r\nimport { actionStartAppLoader, actionEndAppLoader } from '../../actions/actionAppLoader';\r\nimport { actionResetPaymentTransaction } from 'actions';\r\nimport { genfunction } from 'helpers';\r\n\r\nconst { MembershipPackagesDisplayAreaNo, PurchaseMembershipNotAllowedForOrganizationBooking } = window['runConfig'];\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3)\r\n },\r\n pagination: {\r\n marginTop: theme.spacing(3),\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end'\r\n }\r\n}));\r\n\r\n\r\nconst MembershipList = (props) => {\r\n const classes = useStyles();\r\n\r\n const dispatch = useDispatch();\r\n const membershipPackages = useSelector(state => state.reducerShopCart.MembershipPackages);\r\n const reducerMembershipPackages = useSelector(state => state.reducerMembershipPackages);\r\n const events = useSelector(state => state.reducerShopCart.events);\r\n const paymenttranstate = useSelector(state => state.reducerPaymentTransaction.Payment);\r\n const gaTickets = useSelector(state => state.reducerShopCart.GATickets);\r\n const giftcards = useSelector(state => state.reducerGiftCards);\r\n const donationProducts = useSelector(state => state.reducerShopCart.donationProducts);\r\n const [colorState, setColorState] = React.useState('');\r\n const [error, seterror] = useState(\"\");\r\n\r\n useEffect(() => {\r\n if (events && events.length == 0 && membershipPackages && membershipPackages.length == 0 && gaTickets && gaTickets.length == 0 &&\r\n giftcards.giftcards && giftcards.giftcards.length == 0 && donationProducts && donationProducts.length == 0 && paymenttranstate.hasOwnProperty(\"ReceiptNo\") && paymenttranstate.ReceiptNo.toString().length > 0) {\r\n actionResetPaymentTransaction(dispatch);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (membershipPackages && membershipPackages.length < 1 && reducerMembershipPackages && reducerMembershipPackages.membershipPackage && reducerMembershipPackages.membershipPackage.hasOwnProperty('MembershipPackageID')) {\r\n actionResetMembershipPackage(dispatch);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (reducerMembershipPackages && reducerMembershipPackages.membershippackagesError && reducerMembershipPackages.membershippackagesError.length > 0) {\r\n seterror(reducerMembershipPackages.membershippackagesError);\r\n }\r\n }, [reducerMembershipPackages.membershippackagesError]);\r\n\r\n useEffect(() => {\r\n\r\n if (reducerMembershipPackages.loading == true) {\r\n actionStartAppLoader(dispatch);\r\n }\r\n else {\r\n actionEndAppLoader(dispatch);\r\n }\r\n\r\n })\r\n\r\n useEffect(() => {\r\n actionGetMembershipPackages(dispatch, MembershipPackagesDisplayAreaNo);\r\n }, []);\r\n\r\n const errorcancelhandle = () => {\r\n seterror('');\r\n }\r\n\r\n const Joinredirect = (membership) => {\r\n\r\n if (membershipPackages && membershipPackages.length > 0 && membershipPackages.filter(x => x.MembershipPackageID == membership.MembershipPackageID).length == 0) {\r\n seterror('You already have one membership package in your cart!');\r\n }\r\n else if (genfunction.IsOrganization(events)) {\r\n setColorState('info');\r\n seterror(PurchaseMembershipNotAllowedForOrganizationBooking);\r\n }\r\n else {\r\n props.history.push({\r\n pathname: '/memberships/join/' + membership.MembershipPackageID\r\n })\r\n }\r\n }\r\n\r\n const RenewRedirect = (membership) => {\r\n \r\n if (genfunction.IsOrganization(events)) {\r\n setColorState('info');\r\n seterror(PurchaseMembershipNotAllowedForOrganizationBooking);\r\n }\r\n else {\r\n props.history.push({\r\n pathname: '/memberships/membervalidate/' + membership.MembershipPackageID\r\n })\r\n }\r\n }\r\n\r\n return (\r\n\r\n
\r\n 0 ? error : ''}\r\n open={error.length > 0 ? true : false} handleclose={errorcancelhandle} />\r\n
\r\n \r\n\r\n {reducerMembershipPackages.membershippackages.map((membership, i) => {\r\n return membership !== undefined ?\r\n \r\n \r\n \r\n\r\n : null\r\n })}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default MembershipList;\r\n","import React, { useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport { Height } from '@material-ui/icons';\r\nimport { Typography, Hidden } from '@material-ui/core';\r\nconst { MembershipDetails, SuccessRenewMsg } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n mainHeading: {\r\n padding: theme.spacing(1),\r\n textAlign: 'center',\r\n color: theme.palette.text.secondary\r\n },\r\n SuccessMsg: {\r\n padding: theme.spacing(1),\r\n textAlign: 'center',\r\n color: theme.palette.text.secondary\r\n },\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n }\r\n}));\r\n\r\nexport default function MembershipHeader(props) {\r\n\r\n const classes = useStyles();\r\n return (\r\n\r\n //Desktop and Laptop (smDown)\r\n //Tablet (xsDown mdUp)\r\n //Mobile (smUp)\r\n\r\n\r\n
\r\n \r\n \r\n\r\n \r\n \r\n {MembershipDetails}\r\n \r\n\r\n \r\n {props.displayMsg} {props.membershipPackage.PackageName}.\r\n \r\n \r\n\r\n \r\n \r\n {MembershipDetails}\r\n \r\n\r\n \r\n {props.displayMsg} {props.membershipPackage.PackageName}.\r\n \r\n \r\n\r\n \r\n \r\n {MembershipDetails}\r\n \r\n\r\n \r\n {props.displayMsg} {props.membershipPackage.PackageName}.\r\n \r\n \r\n\r\n\r\n \r\n {props.isRenew ? SuccessRenewMsg : ''}\r\n \r\n \r\n \r\n
\r\n );\r\n};","import React from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport Card from '@mui/material/Card';\r\nimport CardHeader from '@mui/material/CardHeader';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Grid, Typography, Hidden } from '@material-ui/core';\r\nimport UDFDataField from '../CalendarControls/UDFDataField';\r\nimport { actionUpdateMemberUDF } from 'actions';\r\n\r\nconst { MembershipUDFsHeading } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3)\r\n },\r\n primarycolor: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n height: '40px'\r\n },\r\n largetourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n height: '60px'\r\n },\r\n removeFontSize: {\r\n fontSize: 'initial !important'\r\n }\r\n}));\r\n\r\nconst MembershipUDF = (props) => {\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const membershipTypesUdfs = useSelector(state => state.reducerMembershipUserDefinedFields);\r\n\r\n const onChangeHandler = (event, bookingID, categoryName, udfID) => {\r\n let udfValue = '';\r\n if (event.target.type != undefined && event.target.type == \"checkbox\")\r\n udfValue = event.target.checked;\r\n else\r\n udfValue = event.target.value;\r\n actionUpdateMemberUDF(dispatch, props.MembershipTypeID, props.userNo, categoryName, udfID, udfValue);\r\n }\r\n\r\n return (\r\n
\r\n \r\n {membershipTypesUdfs.membershipUdfs && membershipTypesUdfs.membershipUdfs.length > 0 &&\r\n membershipTypesUdfs.membershipUdfs.filter(x => x.MembershipTypeID === props.MembershipTypeID).length > 0 ?\r\n membershipTypesUdfs.membershipUdfs.filter(x => x.MembershipTypeID === props.MembershipTypeID)[0].UDFCategories != null &&\r\n membershipTypesUdfs.membershipUdfs.filter(x => x.MembershipTypeID === props.MembershipTypeID)[0].UDFCategories.map((udfCategorey, i) => (\r\n\r\n \r\n \r\n \r\n\r\n\r\n {udfCategorey.UserDefinedFields.map((udfs) => (\r\n \r\n \r\n \r\n \r\n {udfs.UDFDescription} {udfs.IsRequired ? '(required)' : ''}\r\n \r\n \r\n\r\n \r\n \r\n {udfs.UDFDescription} {udfs.IsRequired ? '(required)' : ''}\r\n \r\n \r\n\r\n \r\n \r\n {udfs.UDFDescription} {udfs.IsRequired ? '(required)' : ''}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n )) : null}\r\n\r\n \r\n\r\n
\r\n )\r\n};\r\n\r\nexport default MembershipUDF;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport PersonAddIcon from '@material-ui/icons/PersonAdd';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Typography, MenuItem, Hidden, TextField, Divider, Link, TableRow, FormHelperText } from '@material-ui/core';\r\nimport { genfunction } from '../../../helpers';\r\nimport { NumberSpinner } from '../../../components/InputControls';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Moment from 'moment';\r\nimport Select from '@material-ui/core/Select';\r\n\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\n\r\n\r\nimport {\r\n actionUpdateMembershipPackage, actionDeleteMembershipTypePerson, actionUpdateMembershipAddonsQuantity,\r\n actionUpdateFamilyMemberNotPartOfPackage, actionUpdatePackageForRenew, actionResetMembershipPackage\r\n} from 'actions';\r\nimport { actionShopCartAddMembershipPackage } from 'actions';\r\nimport { actionGetCountryAndState, actionResetCountryAndState } from 'actions';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport ErrorHandling from '../../../components/ErrorHandling/ErrorHandling';\r\nimport { FormControl } from '@material-ui/core';\r\nimport { actionSetFieldValueState, actionResetFieldValuesState } from 'actions';\r\nimport DialogeBox from '../../../components/DialogeBox/DialogeBox';\r\nimport { Table, TableBody, TableCell, TableHead } from '@material-ui/core';\r\nimport { actionResetMemberValidation } from 'actions';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport MaskedInput from 'react-text-mask';\r\nimport MembershipUDF from '../../../components/UDFs/MembershipUDF';\r\nimport { actionGetMembershipUserDefinedFields, actionUpdateMembershipUdfsWithCustomerUdfsValues, actionResetMembershipUDFs } from 'actions';\r\nimport { actionResetCustomerUdfs } from 'actions';\r\n\r\nimport { Autocomplete } from '@material-ui/lab';\r\nimport { createFilterOptions } from '@material-ui/lab/Autocomplete';\r\n\r\nconst { AddPersonFirstNameLength, AddPersonLastNameLength, AddPersonEmailLength, AddPersonDOBLength, AddPersonZipCodeLength, AddPersonCityLength,\r\n AddPersonStateLength, AddPersonCountryLength, AddPersonAddress1Length, AddPersonAddress2Length, DOBRegex, EmailRegex, ValidateMembershipMinQuantity,\r\n TryDeletePrimaryRecordOnMembership, ConfirmMsgRemovePersonFromMemberPackage, DisplayMemPackageDiscriptionCharacters, PackageDiscriptionHeading,\r\n ValidateMembershipMaxQuantity, PackageMaxQtyMsg, PackageMinQtyMsg, OrderItemsInCartError\r\n} = window['runConfig'];\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3)\r\n },\r\n primarycolor: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n mainHeading: {\r\n padding: theme.spacing(2),\r\n textAlign: 'center',\r\n color: theme.palette.text.secondary\r\n },\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n minHeight: '40px',\r\n maxHeight: '70px'\r\n },\r\n dialogTitleHeader: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n height: '50px'\r\n },\r\n smalltourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n minHeight: '25px',\r\n maxHeight: '60px'\r\n },\r\n hr: {\r\n display: 'block',\r\n height: '1px',\r\n border: 0,\r\n borderTop: '1px solid #ccc',\r\n padding: 0\r\n },\r\n displaynone: {\r\n display: \"none\"\r\n },\r\n visible: {\r\n visibility: \"visible\"\r\n },\r\n box100per: {\r\n width: \"100%\"\r\n },\r\n AddHoverOnIcons: {\r\n cursor: \"pointer !important\"\r\n },\r\n tablecell: {\r\n padding: \"5px\"\r\n },\r\n errorColor: {\r\n color: 'red !mportant'\r\n },\r\n defaultColor: {\r\n color: theme.palette.text.secondary\r\n },\r\n udfWidth: {\r\n\r\n minWidth: 300,\r\n\r\n },\r\n clearButton: {\r\n \"& .MuiButtonBase-root.MuiAutocomplete-clearIndicator\": {\r\n color: theme.palette.primary.main\r\n\r\n }\r\n }\r\n\r\n}));\r\n\r\nfunction TextMaskCustom(props) {\r\n const { inputRef, onChange, value, ...other } = props;\r\n let pnMask = ['(', /[1-9]/, /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/];\r\n return (\r\n {\r\n inputRef(ref ? ref.inputElement : null);\r\n }}\r\n onChange={onChange}\r\n mask={pnMask}\r\n />\r\n );\r\n}\r\n\r\nexport default function MembershipTypes(props) {\r\n\r\n let memberPackage;\r\n let usersnotpartofpackage;\r\n const dispatch = useDispatch();\r\n\r\n\r\n const membershippackagesreducer = useSelector(state => state.reducerMembershipPackages);\r\n const orderProducts = useSelector(state => state.reducerShopCart.orderProducts);\r\n memberPackage = membershippackagesreducer.membershipPackage;\r\n usersnotpartofpackage = membershippackagesreducer.familymembersnotpartofPackage;\r\n const membermemberhisps = useSelector(state => state.reducerMemberMemberships);\r\n const memberValidationReducer = useSelector(state => state.reducerMemberValidation);\r\n const [isredirectclicked, setisredirectclicked] = useState(false);\r\n const memmemberhisps = useSelector(state => state.reducerMemberMemberships);\r\n const customer = useSelector(state => state.reducerCustomer);\r\n const membershipTypesUdfs = useSelector(state => state.reducerMembershipUserDefinedFields);\r\n const customerUdfs = useSelector(state => state.reducerCustomerUDFs);\r\n const shopcartMembershipPackage = useSelector(state => state.reducerShopCart.MembershipPackages);\r\n const countryandstates = useSelector(state => state.reducerCountryAndState.countryandstate);\r\n\r\n\r\n //Intialize States\r\n const [errorstate, seterrorstate] = React.useState({\r\n initialerrorstate: {\r\n first_name: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n last_name: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n email: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n membershipType: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n age: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n address1: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n city: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n state: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n zipcode: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n country: {\r\n errorstate: false,\r\n errortext: \"\"\r\n }\r\n }\r\n });\r\n\r\n const filterOptions = createFilterOptions({\r\n stringify: (option) => option.Country + '' + option.State,\r\n });\r\n\r\n const [state, setState] = React.useState({\r\n memberpackageDetail: {\r\n popupTitle: 'Add Person',\r\n isPrimaryMember: false,\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n dob: '',\r\n phone: '',\r\n address1: '',\r\n address2: '',\r\n city: '',\r\n state: '',\r\n zipcode: '',\r\n country: '',\r\n membershipPackageID: props.membershipPackage.hasOwnProperty(\"MembershipPackageID\") ? props.membershipPackage.MembershipPackageID : 0,\r\n membershipTypeID: 0,\r\n membershipTypeName: '',\r\n isRenewal: false,\r\n userNo: Math.floor((Math.random() * 100000) + 100000),// 0,\r\n isEdit: false,\r\n UniquePackageRef: '',\r\n MembershipExpiryDate: '',\r\n PreviousMembershipType: '',\r\n notPartOfPackage: false\r\n }\r\n });\r\n\r\n window.history.pushState({ name: \"browserBack\" }, \"on browser back click\", window.location.href);\r\n\r\n useEffect(() => {\r\n\r\n if (props.isRenewPackage && usersnotpartofpackage && usersnotpartofpackage.length == 0) {\r\n setopenMembership(true);\r\n }\r\n\r\n }, [props.isRenewPackage])\r\n\r\n useEffect(() => {\r\n if (countryandstates === undefined || countryandstates.length == 0)\r\n actionGetCountryAndState(dispatch);\r\n\r\n }, [])\r\n\r\n const onChangeCountry = (event, value) => {\r\n var memberpackageDetail = { ...state.memberpackageDetail };\r\n\r\n memberpackageDetail.country = (value === null ? '' : value.Country);\r\n setState({ ...state, memberpackageDetail: memberpackageDetail })\r\n actionSetFieldValueState(dispatch, \"country\", memberpackageDetail.country);\r\n\r\n memberpackageDetail.state = \"\";\r\n setState({ ...state, memberpackageDetail: memberpackageDetail });\r\n actionSetFieldValueState(dispatch, \"state\", \"\");\r\n\r\n }\r\n const onChangeState = (event, value) => {\r\n var memberpackageDetail = { ...state.memberpackageDetail };\r\n\r\n memberpackageDetail.state = value === null ? \"\" : value.State\r\n setState({ ...state, memberpackageDetail: memberpackageDetail });\r\n actionSetFieldValueState(dispatch, \"state\", memberpackageDetail.state);\r\n\r\n }\r\n\r\n const handleCloseMembership = () => {\r\n var memberpackageDetail = { ...state.memberpackageDetail };\r\n\r\n if (memberpackageDetail.isPrimaryMember && !memberpackageDetail.isEdit) {\r\n\r\n props.history.push({\r\n pathname: '/memberships'\r\n })\r\n }\r\n else {\r\n setOpen(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n\r\n if (!props.shopcartmember) {\r\n handleClickOpen();\r\n var memberpackageDetail = { ...state.memberpackageDetail };\r\n memberpackageDetail.isPrimaryMember = true;\r\n memberpackageDetail.popupTitle = \"Primary Member\";\r\n memberpackageDetail.country = countryandstates && countryandstates.length > 0 ? countryandstates[0].Country : '';\r\n setState({ ...state, memberpackageDetail: memberpackageDetail })\r\n }\r\n else {\r\n actionUpdateMembershipPackage(dispatch, props.membershipPackage, true);\r\n memberPackage = props.membershipPackage;\r\n }\r\n\r\n\r\n if (props.isRenewPackage) {\r\n\r\n props.membershipPackage.MembershipProducts && props.membershipPackage.MembershipProducts.map(e => {\r\n\r\n if (e.MembershipType === \"Membership\" && e.Users.length > 0) {\r\n\r\n e.Users.map(u => {\r\n if (u.isPrimaryMember) {\r\n actionSetFieldValueState(dispatch, \"first_name\", u.firstName === undefined ? '' : u.firstName);\r\n actionSetFieldValueState(dispatch, \"last_name\", u.lastName === undefined ? '' : u.lastName);\r\n actionSetFieldValueState(dispatch, \"email\", u.email === undefined ? '' : u.email);\r\n actionSetFieldValueState(dispatch, \"phone_number\", u.phone === undefined ? '' : u.phone);\r\n actionSetFieldValueState(dispatch, \"address1\", u.address1 === undefined ? '' : u.address1);\r\n actionSetFieldValueState(dispatch, \"address2\", u.address2 === undefined ? '' : u.address2);\r\n actionSetFieldValueState(dispatch, \"city\", u.city === undefined ? '' : u.city);\r\n actionSetFieldValueState(dispatch, \"state\", u.state === undefined ? '' : u.state);\r\n actionSetFieldValueState(dispatch, \"zip\", u.zipcode === undefined ? '' : u.zipcode);\r\n actionSetFieldValueState(dispatch, \"country\", u.country === undefined ? '' : u.country);\r\n\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n //actionGetMembershipUserDefinedFields(dispatch, 'Memberships', null, GetMembershipTypes());\r\n }, []);\r\n\r\n //props\r\n\r\n useEffect(() => {\r\n\r\n if (props.membershipTypeIDs && props.membershipTypeIDs.length > 0 && membershipTypesUdfs.membershipUdfs && membershipTypesUdfs.membershipUdfs.length < 1)\r\n actionGetMembershipUserDefinedFields(dispatch, 'Memberships', null, props.membershipTypeIDs);\r\n }, [props.membershipTypeIDs]);\r\n\r\n let [membershipUdfsUpdated, setmembershipUdfsUpdated] = React.useState(0);\r\n\r\n useEffect(() => {\r\n\r\n if (membershipUdfsUpdated == 0 && customerUdfs.customerUDFs && customerUdfs.customerUDFs.length > 0 && membershipTypesUdfs.membershipUdfs && membershipTypesUdfs.membershipUdfs.length > 0 && CountTotalMembers() > 0) {\r\n actionUpdateMembershipUdfsWithCustomerUdfsValues(dispatch, props.membershipPackage, customerUdfs.customerUDFs);\r\n setmembershipUdfsUpdated(setmembershipUdfsUpdated++);\r\n }\r\n\r\n }, [setmembershipUdfsUpdated, membershipTypesUdfs.membershipUdfs]);\r\n\r\n //Dialog Fields Start\r\n const [open, setOpen] = React.useState(false);\r\n\r\n //Dialog Membership Start\r\n const [openMembership, setopenMembership] = React.useState(false);\r\n\r\n //Confirmation Dialog\r\n const [confirmopen, setconfirmOpen] = React.useState({\r\n dialogBox: false,\r\n packageID: 0,\r\n memTypeID: 0,\r\n useNo: 0,\r\n deletemsg: ''\r\n });\r\n\r\n\r\n const handleClickOpen = () => {\r\n\r\n var memberpackageDetail = { ...state.memberpackageDetail };\r\n\r\n memberpackageDetail.popupTitle = 'Add Person';\r\n memberpackageDetail.isPrimaryMember = false;\r\n memberpackageDetail.firstName = '';\r\n memberpackageDetail.lastName = '';\r\n memberpackageDetail.email = '';\r\n memberpackageDetail.dob = 'DOB';\r\n memberpackageDetail.phone = '';\r\n memberpackageDetail.address1 = '';\r\n memberpackageDetail.address2 = '';\r\n memberpackageDetail.city = '';\r\n memberpackageDetail.state = '';\r\n memberpackageDetail.zipcode = '';\r\n memberpackageDetail.country = '';\r\n memberpackageDetail.MembershipPackageID = props.membershipPackage.hasOwnProperty(\"MembershipPackageID\") ? props.membershipPackage.MembershipPackageID : 0;\r\n memberpackageDetail.membershipTypeID = 0;\r\n memberpackageDetail.membershipTypeName = '';\r\n memberpackageDetail.PreviousMembershipType = '';\r\n memberpackageDetail.isEdit = false;\r\n memberpackageDetail.userNo = Math.floor((Math.random() * 100000) + 100000); //0;\r\n memberpackageDetail.MembershipTypeID = 0;\r\n memberpackageDetail.notPartOfPackage = false;\r\n\r\n setState({ ...state, memberpackageDetail: memberpackageDetail })\r\n\r\n var initialerrorstate = { ...errorstate.initialerrorstate };\r\n\r\n initialerrorstate.first_name.errorstate = false;\r\n initialerrorstate.first_name.errortext = \"\";\r\n initialerrorstate.last_name.errorstate = false;\r\n initialerrorstate.last_name.errortext = \"\";\r\n initialerrorstate.email.errorstate = false;\r\n initialerrorstate.email.errortext = \"\";\r\n initialerrorstate.membershipType.errorstate = false;\r\n initialerrorstate.membershipType.errortext = \"\";\r\n initialerrorstate.age.errorstate = false;\r\n initialerrorstate.age.errortext = \"\";\r\n\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n\r\n setOpen(true);\r\n\r\n };\r\n\r\n useEffect(() => {\r\n\r\n var memberpackageDetail = { ...state.memberpackageDetail };\r\n if (memberpackageDetail && !memberpackageDetail.isEdit &&\r\n memberpackageDetail.membershipTypeID < 1\r\n && props.membershipPackage\r\n && (memberpackageDetail.popupTitle === 'Add Person' || memberpackageDetail.popupTitle === 'Add - Person' || memberpackageDetail.popupTitle === 'Primary Member')) {\r\n\r\n if (props.membershipPackage.MembershipProducts\r\n && props.membershipPackage.MembershipProducts.filter(x => x.MembershipType === \"Membership\").length == 1) {\r\n let membershipObj = props.membershipPackage.MembershipProducts.filter(x => x.MembershipType === \"Membership\")[0];\r\n fieldhandleChange(null, membershipObj);\r\n }\r\n }\r\n\r\n }, [props.membershipPackage, state])\r\n\r\n const handleClose = (event, reason) => {\r\n\r\n if (reason === \"backdropClick\" || reason === \"escapeKeyDown\") {\r\n setOpen(true);\r\n }\r\n else {\r\n\r\n var memberpackageDetail = { ...state.memberpackageDetail };\r\n if (memberpackageDetail.isPrimaryMember && !memberpackageDetail.isEdit) {\r\n\r\n if (shopcartMembershipPackage && shopcartMembershipPackage.length < 1 &&\r\n membershipTypesUdfs.membershipUdfs && membershipTypesUdfs.membershipUdfs.length > 0) {\r\n\r\n actionResetMembershipUDFs(dispatch);\r\n }\r\n\r\n actionResetMembershipPackage(dispatch);\r\n props.history.push({\r\n pathname: '/memberships'\r\n })\r\n }\r\n else {\r\n setOpen(false);\r\n }\r\n }\r\n };\r\n\r\n const GetUserDOB = (user) => {\r\n let userDOB = \"\";\r\n\r\n if (user.hasOwnProperty('dob') && user.dob.length > 0 && user.dob != \"DOB\") {\r\n userDOB = Moment(user.dob).format('YYYY-MM-DD');\r\n }\r\n\r\n return userDOB;\r\n }\r\n //Edit Person\r\n const EditPerson = (member, memTypeID) => {\r\n\r\n var memberpackageDetail = { ...state.memberpackageDetail };\r\n var membershipType = memberPackage.MembershipProducts.filter(x => x.MembershipTypeID == memTypeID)[0];\r\n\r\n if (membershipType) {\r\n var user = membershipType.Users.filter(x => x.userNo == member.userNo && x.email == member.email)[0];\r\n if (user) {\r\n memberpackageDetail.popupTitle = user.isPrimaryMember ? 'Edit - Primary Member' : 'Edit - Person';\r\n memberpackageDetail.isPrimaryMember = user.isPrimaryMember;\r\n memberpackageDetail.firstName = user.firstName;\r\n memberpackageDetail.lastName = user.lastName;\r\n memberpackageDetail.email = user.email;\r\n memberpackageDetail.dob = GetUserDOB(user);\r\n memberpackageDetail.phone = user.phone;\r\n memberpackageDetail.address1 = user.address1;\r\n memberpackageDetail.address2 = user.address2;\r\n memberpackageDetail.city = user.city;\r\n memberpackageDetail.state = user.state;\r\n memberpackageDetail.zipcode = user.zipcode;\r\n memberpackageDetail.country = user.country;\r\n memberpackageDetail.isRenewal = user.isRenewal;\r\n memberpackageDetail.UniquePackageRef = user.UniquePackageRef;\r\n memberpackageDetail.MembershipExpiryDate = user.MembershipExpiryDate;\r\n memberpackageDetail.MembershipPackageID = memberPackage.MembershipPackageID;\r\n memberpackageDetail.membershipTypeID = membershipType.MembershipTypeID;\r\n memberpackageDetail.membershipTypeName = replaceEscapeCharacters(membershipType.ProductName);\r\n memberpackageDetail.PreviousMembershipType = user.PreviousMembershipType;\r\n memberpackageDetail.userNo = user.userNo;\r\n memberpackageDetail.isEdit = true;\r\n memberpackageDetail.notPartOfPackage = user.notPartOfPackage;\r\n\r\n }\r\n }\r\n\r\n setState({ ...state, memberpackageDetail: memberpackageDetail })\r\n\r\n setOpen(true);\r\n }\r\n\r\n //Delete Person\r\n const DeletePerson = (memberTypeID, member) => {\r\n\r\n if (member.isPrimaryMember) {\r\n seterrorMsg(TryDeletePrimaryRecordOnMembership);\r\n }\r\n else {\r\n\r\n setconfirmOpen({\r\n dialogBox: true, packageID: memberPackage.MembershipPackageID,\r\n memTypeID: memberTypeID, useNo: member.userNo,\r\n deletemsg: ConfirmMsgRemovePersonFromMemberPackage + ' ' + member.firstName + ' ' + member.lastName + '?'\r\n });\r\n }\r\n }\r\n\r\n\r\n const ConfirmDeletePerson = () => {\r\n var deleteConfirmState = { ...confirmopen };\r\n actionDeleteMembershipTypePerson(dispatch, deleteConfirmState.packageID, deleteConfirmState.memTypeID, deleteConfirmState.useNo);\r\n\r\n\r\n if (usersnotpartofpackage && usersnotpartofpackage.length > 0 && usersnotpartofpackage.filter(x => x.userNo == deleteConfirmState.useNo && x.membershipTypeID == 0\r\n && x.MembershipExpiryDate == '').length > 0) {\r\n actionUpdateFamilyMemberNotPartOfPackage(dispatch, deleteConfirmState.useNo, false);\r\n }\r\n\r\n setconfirmOpen({\r\n dialogBox: false, packageID: 0,\r\n memTypeID: 0, useNo: 0, deletemsg: ''\r\n });\r\n }\r\n\r\n const CancelPersonDelete = () => {\r\n\r\n setconfirmOpen({\r\n dialogBox: false, packageID: 0,\r\n memTypeID: 0, useNo: 0, deletemsg: ''\r\n });\r\n }\r\n\r\n function validateEmail(email) {\r\n var re = new RegExp(EmailRegex);\r\n return re.test(String(email).toLowerCase());\r\n }\r\n\r\n function validateDOB(dob) {\r\n var re = new RegExp(DOBRegex);\r\n let resultRegex = re.test(String(dob).toLowerCase());\r\n if (resultRegex) {\r\n let isValidRange = Moment(dob).isBetween(Moment('1899-12-31'), Moment());\r\n return isValidRange;\r\n }\r\n else\r\n return resultRegex;\r\n }\r\n\r\n //Enable Confirm Buttom\r\n const [confirmBtn, setconfirmBtn] = React.useState(true);\r\n\r\n const ValidateMemberPackageQuantities = () => {\r\n let validRequest = false;\r\n\r\n if (memberPackage && memberPackage.MembershipProducts && memberPackage.MembershipProducts.length > 0) {\r\n memberPackage.MembershipProducts = memberPackage.MembershipProducts.map(memType => {\r\n\r\n if (memType.MembershipType === \"Membership\" && ((memType.Users.length < memType.MinQuantity) || (memType.Users.length > memType.MaxQuantity))) {\r\n validRequest = true;\r\n }\r\n\r\n if (memType.MembershipType === \"AddOn\") {\r\n if (((memType.Quantity < memType.MinQuantity) || (memType.Quantity > memType.MaxQuantity))) {\r\n validRequest = true;\r\n }\r\n }\r\n\r\n return memType;\r\n });\r\n }\r\n\r\n return validRequest;\r\n }\r\n\r\n const PersonNamesDuplicateCheck = (membership) => {\r\n\r\n let exist = false;\r\n if (memberPackage && memberPackage.MembershipProducts && membership.isEdit == false) {\r\n memberPackage.MembershipProducts.filter(x => x.MembershipType === \"Membership\").map(m => {\r\n\r\n if (m.Users && m.Users.length > 0 && m.Users.filter(x => x.firstName.toLowerCase() == membership.firstName.toLowerCase() && x.lastName.toLowerCase() == membership.lastName.toLowerCase()).length > 0) {\r\n exist = true;\r\n }\r\n })\r\n }\r\n\r\n return exist;\r\n }\r\n\r\n //Save Button MultipleClicks\r\n const [saveBtn, setsaveBtn] = React.useState(false);\r\n\r\n const saveDialog = () => {\r\n\r\n setsaveBtn(true);\r\n\r\n setTimeout(() => {\r\n setsaveBtn(false);\r\n }, 1000)\r\n\r\n if (!ValidateMembershipType()) {\r\n seterrorMsg('Please fill the required UDFs.');\r\n return;\r\n }\r\n //Add Validation\r\n var initialerrorstate = { ...errorstate.initialerrorstate };\r\n\r\n if (state.memberpackageDetail.firstName.trim().length < 1) {\r\n initialerrorstate.first_name.errorstate = true;\r\n initialerrorstate.first_name.errortext = \"First Name is required.\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n else {\r\n initialerrorstate.first_name.errorstate = false;\r\n initialerrorstate.first_name.errortext = \"\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n\r\n if (state.memberpackageDetail.lastName.trim().length < 1) {\r\n initialerrorstate.last_name.errorstate = true;\r\n initialerrorstate.last_name.errortext = \"Last Name is required.\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n } else {\r\n initialerrorstate.last_name.errorstate = false;\r\n initialerrorstate.last_name.errortext = \"\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n\r\n if (state.memberpackageDetail.membershipTypeID < 1) {\r\n initialerrorstate.membershipType.errorstate = true;\r\n initialerrorstate.membershipType.errortext = \"Membership Type is required.\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n else {\r\n initialerrorstate.membershipType.errorstate = false;\r\n initialerrorstate.membershipType.errortext = \"\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n\r\n if (state.memberpackageDetail.isPrimaryMember && state.memberpackageDetail.email.trim().length < 1) {\r\n initialerrorstate.email.errorstate = true;\r\n initialerrorstate.email.errortext = \"Email is required.\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n else if (state.memberpackageDetail.email.length > 0 && validateEmail(state.memberpackageDetail.email) == false) {\r\n initialerrorstate.email.errorstate = true;\r\n initialerrorstate.email.errortext = \"Please enter a valid email address.\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n else {\r\n initialerrorstate.email.errorstate = false;\r\n initialerrorstate.email.errortext = \"\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n\r\n if (state.memberpackageDetail.dob) {\r\n if (state.memberpackageDetail.dob.length > 0\r\n && state.memberpackageDetail.dob != \"DOB\"\r\n && validateDOB(state.memberpackageDetail.dob) == false) {\r\n\r\n initialerrorstate.age.errorstate = true;\r\n initialerrorstate.age.errortext = \"Please enter a valid date of birth.\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n else {\r\n initialerrorstate.age.errorstate = false;\r\n initialerrorstate.age.errortext = \"\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n }\r\n\r\n\r\n if (state.memberpackageDetail.isPrimaryMember) {\r\n\r\n if (state.memberpackageDetail.address1.trim().length < 1) {\r\n initialerrorstate.address1.errorstate = true;\r\n initialerrorstate.address1.errortext = \"Address 1 is required.\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n } else {\r\n initialerrorstate.address1.errorstate = false;\r\n initialerrorstate.address1.errortext = \"\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n\r\n if (state.memberpackageDetail.city.trim().length < 1) {\r\n initialerrorstate.city.errorstate = true;\r\n initialerrorstate.city.errortext = \"City is required.\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n } else {\r\n initialerrorstate.city.errorstate = false;\r\n initialerrorstate.city.errortext = \"\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n\r\n if (state.memberpackageDetail.state.trim().length < 1) {\r\n initialerrorstate.state.errorstate = true;\r\n initialerrorstate.state.errortext = \"State is required.\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n } else {\r\n initialerrorstate.state.errorstate = false;\r\n initialerrorstate.state.errortext = \"\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n\r\n if (state.memberpackageDetail.zipcode.trim().length < 1) {\r\n initialerrorstate.zipcode.errorstate = true;\r\n initialerrorstate.zipcode.errortext = \"Zipcode is required.\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n } else {\r\n initialerrorstate.zipcode.errorstate = false;\r\n initialerrorstate.zipcode.errortext = \"\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n\r\n if (state.memberpackageDetail.country.trim().length < 1) {\r\n initialerrorstate.country.errorstate = true;\r\n initialerrorstate.country.errortext = \"Country is required.\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n } else {\r\n initialerrorstate.country.errorstate = false;\r\n initialerrorstate.country.errortext = \"\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n }\r\n\r\n if (initialerrorstate.first_name.errorstate || initialerrorstate.last_name.errorstate || initialerrorstate.membershipType.errorstate || initialerrorstate.email.errorstate || initialerrorstate.age.errorstate ||\r\n initialerrorstate.address1.errorstate || initialerrorstate.city.errorstate || initialerrorstate.state.errorstate || initialerrorstate.zipcode.errorstate || initialerrorstate.country.errorstate) {\r\n setOpen(true);\r\n }\r\n else {\r\n var ageDiff = parseInt(calculateAge(new Date(state.memberpackageDetail.dob)));\r\n\r\n var memType = memberPackage.MembershipProducts.filter(x => x.MembershipTypeID == state.memberpackageDetail.membershipTypeID)[0];\r\n\r\n if (memType.AgeBasedMembership && (ageDiff < memType.MinAge || ageDiff > memType.MaxAge)) {\r\n initialerrorstate.age.errorstate = true;\r\n initialerrorstate.age.errortext = \"Please enter a valid DOB, Min Age is \" + memType.MinAge + \" and Max Age is : \" + memType.MaxAge;\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n else {\r\n if (PersonNamesDuplicateCheck(state.memberpackageDetail) == false) {\r\n actionUpdateMembershipPackage(dispatch, state.memberpackageDetail, false);\r\n\r\n if (state.memberpackageDetail.notPartOfPackage) {\r\n actionUpdateFamilyMemberNotPartOfPackage(dispatch, state.memberpackageDetail.userNo, true);\r\n }\r\n\r\n setOpen(false);\r\n }\r\n else {\r\n seterrorMsg('First Name and Last Name is already used.');\r\n }\r\n }\r\n }\r\n }\r\n\r\n const fieldhandleChange = (event, mem) => {\r\n\r\n var memberpackageDetail = { ...state.memberpackageDetail };\r\n\r\n if (mem) {\r\n let memTypeID = parseInt(mem.MembershipTypeID);\r\n memberpackageDetail.membershipTypeID = memTypeID;\r\n memberpackageDetail.membershipTypeName = mem.ProductName;\r\n\r\n setState({ ...state, memberpackageDetail: memberpackageDetail })\r\n }\r\n\r\n if (event && event.target.name === \"fname\") {\r\n memberpackageDetail.firstName = event.target.value;\r\n memberpackageDetail.MembershipPackageID = props.membershipPackage.hasOwnProperty(\"MembershipPackageID\") ? props.membershipPackage.MembershipPackageID : 0;\r\n setState({ ...state, memberpackageDetail: memberpackageDetail });\r\n\r\n if (memberpackageDetail.isPrimaryMember) {\r\n actionSetFieldValueState(dispatch, \"first_name\", event.target.value);\r\n }\r\n }\r\n\r\n if (event && event.target.name === \"lname\") {\r\n memberpackageDetail.lastName = event.target.value;\r\n setState({ ...state, memberpackageDetail: memberpackageDetail });\r\n\r\n if (memberpackageDetail.isPrimaryMember) {\r\n actionSetFieldValueState(dispatch, \"last_name\", event.target.value);\r\n }\r\n }\r\n\r\n if (event && event.target.name === \"email\") {\r\n memberpackageDetail.email = event.target.value;\r\n setState({ ...state, memberpackageDetail: memberpackageDetail });\r\n\r\n if (memberpackageDetail.isPrimaryMember) {\r\n actionSetFieldValueState(dispatch, \"email\", event.target.value);\r\n }\r\n }\r\n\r\n if (event && event.target.name === \"dob\") {\r\n memberpackageDetail.dob = Moment(event.target.value).format('YYYY-MM-DD');\r\n setState({ ...state, memberpackageDetail: memberpackageDetail })\r\n }\r\n\r\n if (memberpackageDetail.dob === \"Invalid date\") {\r\n memberpackageDetail.dob = \"\";\r\n setState({ ...state, memberpackageDetail: memberpackageDetail })\r\n }\r\n\r\n if (event && event.target.name === \"phone\") {\r\n memberpackageDetail.phone = event.target.value;\r\n setState({ ...state, memberpackageDetail: memberpackageDetail });\r\n\r\n if (memberpackageDetail.isPrimaryMember) {\r\n actionSetFieldValueState(dispatch, \"phone_number\", event.target.value);\r\n }\r\n }\r\n\r\n if (event && event.target.name === \"membershipType\") {\r\n let memTypeID = parseInt(event.currentTarget.id);\r\n memberpackageDetail.membershipTypeID = memTypeID;\r\n memberpackageDetail.membershipTypeName = event.target.value;\r\n\r\n setState({ ...state, memberpackageDetail: memberpackageDetail })\r\n }\r\n\r\n if (event && event.target.name === \"address1\") {\r\n memberpackageDetail.address1 = event.target.value;\r\n setState({ ...state, memberpackageDetail: memberpackageDetail });\r\n actionSetFieldValueState(dispatch, \"address1\", event.target.value);\r\n }\r\n\r\n if (event && event.target.name === \"address2\") {\r\n memberpackageDetail.address2 = event.target.value;\r\n setState({ ...state, memberpackageDetail: memberpackageDetail });\r\n actionSetFieldValueState(dispatch, \"address2\", event.target.value);\r\n }\r\n\r\n if (event && event.target.name === \"city\") {\r\n memberpackageDetail.city = event.target.value;\r\n setState({ ...state, memberpackageDetail: memberpackageDetail });\r\n actionSetFieldValueState(dispatch, \"city\", event.target.value);\r\n }\r\n\r\n // if (event && event.target.name === \"state\") {\r\n // memberpackageDetail.state = event.target.value;\r\n // setState({ ...state, memberpackageDetail: memberpackageDetail });\r\n // actionSetFieldValueState(dispatch, \"state\", event.target.value);\r\n\r\n // }\r\n\r\n if (event && event.target.name === \"zipcode\") {\r\n memberpackageDetail.zipcode = event.target.value;\r\n setState({ ...state, memberpackageDetail: memberpackageDetail });\r\n actionSetFieldValueState(dispatch, \"zip\", event.target.value);\r\n }\r\n\r\n // if (event && event.target.name === \"country\") {\r\n\r\n // memberpackageDetail.country = event.target.value;\r\n // setState({ ...state, memberpackageDetail: memberpackageDetail });\r\n // actionSetFieldValueState(dispatch, \"country\", event.target.value);\r\n // }\r\n };\r\n\r\n //Dialog Fields End\r\n\r\n //Error Handling Start\r\n\r\n const [errorMsg, seterrorMsg] = React.useState('');\r\n\r\n const errorcancelhandle = () => {\r\n seterrorMsg('');\r\n }\r\n\r\n //Error Handling Start\r\n\r\n\r\n const changeQuantityHandler = (memberType) => {\r\n //Check Min and Max Quantity\r\n //need to add\r\n memberType.MembershipPackageID = memberPackage.MembershipPackageID;\r\n actionUpdateMembershipAddonsQuantity(dispatch, memberType);\r\n }\r\n\r\n const ConfirmMembershipPackage = () => {\r\n\r\n if (orderProducts && orderProducts.length > 0) {\r\n seterrorMsg(OrderItemsInCartError);\r\n return;\r\n }\r\n\r\n if (props.isRenewPackage) {\r\n let err = ValidateMembersUDFs();\r\n if (err.length > 0) {\r\n seterrorMsg(err);\r\n return;\r\n }\r\n }\r\n\r\n if (CountTotalMembers() > memberPackage.MaximumMembersInPackage) {\r\n seterrorMsg(PackageMaxQtyMsg + memberPackage.MaximumMembersInPackage);\r\n }\r\n else if (CountTotalMembers() < memberPackage.MinimumMembersInPackage) {\r\n seterrorMsg(PackageMinQtyMsg + memberPackage.MinimumMembersInPackage + ' membership(s).');\r\n }\r\n else {\r\n actionShopCartAddMembershipPackage(dispatch, memberPackage, props.isRenewPackage);\r\n props.constnextredirect();\r\n }\r\n }\r\n\r\n const CountTotalMembers = () => {\r\n\r\n let totalMembers = 0;\r\n\r\n if (memberPackage) {\r\n memberPackage.MembershipProducts.filter(x => x.MembershipType === \"Membership\").map(m => {\r\n\r\n if (m.Users && m.Users.length > 0) {\r\n\r\n totalMembers += m.Users.length;\r\n }\r\n });\r\n }\r\n\r\n return totalMembers;\r\n }\r\n\r\n function calculateAge(birthday) { // birthday is a date\r\n var ageDifMs = Date.now() - birthday;\r\n var ageDate = new Date(ageDifMs); // miliseconds from epoch\r\n return Math.abs(ageDate.getUTCFullYear() - 1970);\r\n }\r\n\r\n //Click on Cancel Membership Package\r\n const constredirect = () => {\r\n\r\n if (shopcartMembershipPackage && shopcartMembershipPackage.length < 1) {\r\n\r\n if (props.isRenewPackage) {\r\n actionResetMemberValidation(dispatch);\r\n actionResetCustomerUdfs(dispatch);\r\n }\r\n\r\n if (membershipTypesUdfs.membershipUdfs && membershipTypesUdfs.membershipUdfs.length > 0) {\r\n actionResetMembershipUDFs(dispatch);\r\n }\r\n\r\n actionResetFieldValuesState(dispatch);\r\n actionResetMembershipPackage(dispatch);\r\n }\r\n\r\n props.history.push({\r\n pathname: '/memberships'\r\n })\r\n }\r\n\r\n const [showMoreInfo, setShowMoreInfo] = React.useState(false);\r\n const [readmorebtnText, setreadmorebtnText] = React.useState('Read More');\r\n\r\n const ShowMoreInfoClick = () => {\r\n\r\n if (readmorebtnText === 'Read More') {\r\n setShowMoreInfo(true);\r\n setreadmorebtnText('Read Less');\r\n }\r\n else {\r\n setShowMoreInfo(false);\r\n setreadmorebtnText('Read More');\r\n }\r\n }\r\n\r\n\r\n const GetMembershipPackageDis = (discription) => {\r\n\r\n if (discription) {\r\n if (showMoreInfo) {\r\n return discription.substring(0, discription.length - 1);\r\n }\r\n\r\n return discription.substring(0, DisplayMemPackageDiscriptionCharacters);\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n\r\n const AddReviewMemberToPackage = (user) => {\r\n\r\n var memberpackageDetail = { ...state.memberpackageDetail };\r\n\r\n if (user) {\r\n memberpackageDetail.popupTitle = 'Add - Person';\r\n memberpackageDetail.isPrimaryMember = false;\r\n memberpackageDetail.firstName = user.firstName;\r\n memberpackageDetail.lastName = user.lastName;\r\n memberpackageDetail.email = user.email;\r\n memberpackageDetail.dob = GetUserDOB(user);\r\n memberpackageDetail.phone = user.phone;\r\n memberpackageDetail.address1 = user.address1;\r\n memberpackageDetail.address2 = user.address2;\r\n memberpackageDetail.city = user.city;\r\n memberpackageDetail.state = user.state;\r\n memberpackageDetail.zipcode = user.zipcode;\r\n memberpackageDetail.isRenewal = user.isRenewal;\r\n memberpackageDetail.UniquePackageRef = user.UniquePackageRef;\r\n memberpackageDetail.MembershipExpiryDate = user.MembershipExpiryDate;\r\n memberpackageDetail.MembershipPackageID = memberPackage.MembershipPackageID;\r\n memberpackageDetail.membershipTypeID = 0;\r\n memberpackageDetail.membershipTypeName = '';\r\n memberpackageDetail.userNo = user.userNo;\r\n memberpackageDetail.isEdit = false;\r\n memberpackageDetail.notPartOfPackage = user.notpartofPackage;\r\n }\r\n\r\n\r\n setState({ ...state, memberpackageDetail: memberpackageDetail })\r\n\r\n setOpen(true);\r\n\r\n }\r\n\r\n //Membership Popup\r\n const BackMembershipPopup = () => {\r\n actionResetMemberValidation(dispatch);\r\n actionResetFieldValuesState(dispatch);\r\n setisredirectclicked(true);\r\n }\r\n\r\n useEffect(() => {\r\n\r\n if (isredirectclicked) {\r\n setisredirectclicked(false);\r\n let memPackID = 0;\r\n\r\n if (memberPackage && memberPackage.hasOwnProperty('MembershipPackageID')) {\r\n memPackID = memberPackage.MembershipPackageID;\r\n }\r\n\r\n props.history.push({\r\n pathname: '/memberships/membervalidate/' + memPackID\r\n })\r\n }\r\n\r\n }, [isredirectclicked]);\r\n\r\n const RenewMembershp = (mp) => {\r\n\r\n //Update Primar Record\r\n\r\n if (customer.customer.length > 0) {\r\n actionSetFieldValueState(dispatch, \"first_name\", customer.customer[0].FirstName);\r\n actionSetFieldValueState(dispatch, \"last_name\", customer.customer[0].LastName);\r\n actionSetFieldValueState(dispatch, \"email\", customer.customer[0].GuestEmail);\r\n actionSetFieldValueState(dispatch, \"phone_number\", customer.customer[0].CustomerAddress[0].MobilePhone);\r\n actionSetFieldValueState(dispatch, \"address1\", customer.customer[0].CustomerAddress[0].Street1);\r\n actionSetFieldValueState(dispatch, \"address2\", customer.customer[0].CustomerAddress[0].Street2);\r\n actionSetFieldValueState(dispatch, \"city\", customer.customer[0].CustomerAddress[0].CitySuburb);\r\n actionSetFieldValueState(dispatch, \"state\", customer.customer[0].CustomerAddress[0].State);\r\n actionSetFieldValueState(dispatch, \"zip\", customer.customer[0].CustomerAddress[0].Postcode);\r\n actionSetFieldValueState(dispatch, \"country\", customer.customer[0].CustomerAddress[0].Country);\r\n }\r\n\r\n actionUpdatePackageForRenew(dispatch, mp.MembershipPackageID, memmemberhisps, customer.customer);\r\n setopenMembership(false);\r\n\r\n props.history.push({\r\n pathname: '/memberships/renew/' + mp.MembershipPackageID\r\n })\r\n }\r\n\r\n const renewmembershipsdistinct = () => {\r\n const renewmemshipscollection = [];\r\n\r\n membermemberhisps.membermerberhips[0].Memberships.filter(x => x.IsRenewed == false).map(x => {\r\n\r\n if (renewmemshipscollection.filter(y => y.MembershipPackageID == x.MembershipPackageID).length == 0) {\r\n renewmemshipscollection.push(x);\r\n }\r\n });\r\n\r\n return renewmemshipscollection;\r\n }\r\n const classes = useStyles();\r\n\r\n //Show Fields\r\n\r\n let displayclass = \"\";\r\n if (state.memberpackageDetail.isPrimaryMember)\r\n displayclass = classes.visible;\r\n else\r\n displayclass = classes.displaynone;\r\n\r\n\r\n const replaceEscapeCharacters = (item) => {\r\n var itemValue = item.split(\"\\\\r\\\\n\").join(\"
\");\r\n itemValue = itemValue.split(\"\\\\\").join(\"\");\r\n return itemValue;\r\n }\r\n\r\n const GetMembershipTypeQty = (memPackage, memTypeProd) => {\r\n\r\n let availQty = '';\r\n\r\n if (memTypeProd) {\r\n\r\n if (memTypeProd.MinQuantity > 0) {\r\n availQty = '(Min Qty : ' + memTypeProd.MinQuantity + ', Max Qty : ' + memTypeProd.MaxQuantity + ')';\r\n }\r\n\r\n if (memTypeProd.MinQuantity < 1 || memTypeProd.MinQuantity == memTypeProd.MaxQuantity) {\r\n availQty = '(Max Qty : ' + memTypeProd.MaxQuantity + ')';\r\n }\r\n\r\n if (memTypeProd.MaxQuantity >= memPackage.MaximumMembersInPackage && memTypeProd.MinQuantity > 0) {\r\n availQty = '(Min Qty : ' + memTypeProd.MinQuantity + ')';\r\n }\r\n\r\n if (memTypeProd.MaxQuantity >= memPackage.MaximumMembersInPackage && memTypeProd.MinQuantity < 1) {\r\n availQty = '';\r\n }\r\n\r\n if (memTypeProd.MinQuantity == memPackage.MaximumMembersInPackage) {\r\n availQty = '';\r\n }\r\n }\r\n\r\n return availQty;\r\n }\r\n\r\n const GetDefaultMembershipName = (membershipTypeName) => {\r\n\r\n let memtypename = '';\r\n\r\n if (props.membershipPackage && props.membershipPackage.MembershipProducts)\r\n if (props.membershipPackage.MembershipProducts.filter(x => x.MembershipType === \"Membership\").length == 1) {\r\n memtypename = props.membershipPackage.MembershipProducts.filter(x => x.MembershipType === \"Membership\")[0].ProductName;\r\n }\r\n else {\r\n memtypename = membershipTypeName;\r\n }\r\n\r\n return memtypename;\r\n }\r\n\r\n const ValidateMembershipType = () => {\r\n let valid = true;\r\n var memberpackageDetail = { ...state.memberpackageDetail };\r\n\r\n if (membershipTypesUdfs.membershipUdfs && membershipTypesUdfs.membershipUdfs.length > 0) {\r\n\r\n membershipTypesUdfs.membershipUdfs.filter(x => x.MembershipTypeID == memberpackageDetail.membershipTypeID).filter(x => x.UDFCategories).map(udfCategorey => {\r\n\r\n if (udfCategorey.UDFCategories && udfCategorey.UDFCategories.length > 0 && valid) {\r\n\r\n udfCategorey.UDFCategories.map(udfCate => {\r\n udfCate.UserDefinedFields.map((udf) => {\r\n\r\n if (valid) {\r\n if (udf.IsRequired && udf.Users.length == 0) {\r\n valid = false;\r\n }\r\n else if (udf.IsRequired && udf.Users.length > 0 && udf.Users.filter(x => x.userID == memberpackageDetail.userNo).length < 1) {\r\n valid = false;\r\n }\r\n else if (udf.IsRequired && udf.Users.length > 0 && udf.Users.filter(x => x.userID == memberpackageDetail.userNo).length > 0) {\r\n let user = udf.Users.filter(x => x.userID == memberpackageDetail.userNo)[0];\r\n\r\n if (user.userUDFValue !== undefined && user.userUDFValue !== null) {\r\n\r\n if ((udf.UDFType === \"Text\" || udf.UDFType === \"Decimal\") && user.userUDFValue.length < 1) {\r\n valid = false;\r\n }\r\n else if (udf.UDFType === \"Bit\" && user.userUDFValue === false) {\r\n valid = false;\r\n }\r\n }\r\n }\r\n }\r\n })\r\n });\r\n }\r\n });\r\n }\r\n\r\n return valid;\r\n }\r\n const ValidateMembersUDFs = () => {\r\n\r\n let error = '';\r\n\r\n if (membershipTypesUdfs.membershipUdfs && membershipTypesUdfs.membershipUdfs.length > 0) {\r\n\r\n membershipTypesUdfs.membershipUdfs.filter(x => x.UDFCategories).map(membershipType => {\r\n\r\n let memberusers = GetMembershipTypeUserCount(membershipType.MembershipTypeID);\r\n\r\n if (membershipType.UDFCategories != null && membershipType.UDFCategories.length > 0 && error.length == 0 && memberusers > 0) {\r\n\r\n membershipType.UDFCategories.map((udfCategorey, i) => {\r\n\r\n udfCategorey.UserDefinedFields.map((udf) => {\r\n if (error.length == 0 && udf.IsRequired && udf.hasOwnProperty('Users') && udf.Users !== undefined && memberusers != udf.Users.length) {\r\n error = 'Please fill the required UDFs for Membership Type ' + GetMembershipTypeName(membershipType.MembershipTypeID);\r\n return;\r\n }\r\n })\r\n });\r\n }\r\n })\r\n }\r\n\r\n return error;\r\n }\r\n\r\n const GetMembershipTypeName = (memTypeID) => {\r\n let memberTypeName = '';\r\n\r\n if (memberPackage) {\r\n memberTypeName = memberPackage.MembershipProducts.filter(x => x.MembershipType === \"Membership\" && x.MembershipTypeID == memTypeID)[0].ProductName;\r\n }\r\n\r\n return memberTypeName;\r\n }\r\n\r\n const GetMembershipTypeUserCount = (memTypeID) => {\r\n let totalMembers = 0;\r\n\r\n if (memberPackage) {\r\n memberPackage.MembershipProducts.filter(x => x.MembershipType === \"Membership\" && x.MembershipTypeID == memTypeID).map(m => {\r\n\r\n if (m.Users && m.Users.length > 0) {\r\n\r\n totalMembers += m.Users.length;\r\n }\r\n });\r\n }\r\n\r\n return totalMembers;\r\n }\r\n\r\n return (\r\n
\r\n 0 ? errorMsg : ''}\r\n open={errorMsg.length > 0 ? true : false} handleclose={errorcancelhandle} />\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n {PackageDiscriptionHeading}\r\n \r\n\r\n \r\n \r\n {ReactHtmlParser(GetMembershipPackageDis(props.membershipPackage.Description))}\r\n \r\n\r\n \r\n {readmorebtnText}\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n {PackageDiscriptionHeading}\r\n \r\n\r\n \r\n \r\n {ReactHtmlParser(GetMembershipPackageDis(props.membershipPackage.Description))}\r\n \r\n\r\n \r\n {readmorebtnText}\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n Membership Types\r\n \r\n \r\n\r\n \r\n \r\n Membership Types\r\n \r\n \r\n\r\n \r\n \r\n Membership Types\r\n \r\n \r\n \r\n\r\n {props.membershipPackage.hasOwnProperty(\"MembershipProducts\") && props.membershipPackage.MembershipProducts.map((membershipProduct, i) => {\r\n\r\n return membershipProduct.MembershipType === \"Membership\" ?\r\n\r\n \r\n \r\n\r\n \r\n {replaceEscapeCharacters(membershipProduct.ProductName)} \r\n membershipProduct.MaxQuantity ? classes.errorColor : classes.defaultColor} style={{ marginTop: \"3px\", marginLeft: \"5px\" }}> {membershipProduct.AgeBasedMembership ? '(Min Age : ' + membershipProduct.MinAge + ', Max Age : ' + membershipProduct.MaxAge + ')' : ''} {GetMembershipTypeQty(props.membershipPackage, membershipProduct)}\r\n \r\n \r\n\r\n \r\n {replaceEscapeCharacters(membershipProduct.ProductName)}\r\n membershipProduct.MaxQuantity ? classes.errorColor : classes.defaultColor} variant=\"h6\" style={{ marginTop: \"3px\", marginLeft: \"5px\" }}> {membershipProduct.AgeBasedMembership ? '(Min Age : ' + membershipProduct.MinAge + ', Max Age : ' + membershipProduct.MaxAge + ')' : ''} {GetMembershipTypeQty(props.membershipPackage, membershipProduct)}\r\n \r\n \r\n\r\n \r\n {replaceEscapeCharacters(membershipProduct.ProductName)}\r\n membershipProduct.MaxQuantity ? classes.errorColor : classes.defaultColor} variant=\"h6\" style={{ marginTop: \"3px\", marginLeft: \"5px\" }}> {membershipProduct.AgeBasedMembership ? '(Min Age : ' + membershipProduct.MinAge + ', Max Age : ' + membershipProduct.MaxAge + ')' : ''} {GetMembershipTypeQty(props.membershipPackage, membershipProduct)}\r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n \r\n {genfunction.ccyFormat(membershipProduct.Price)}\r\n \r\n\r\n \r\n {genfunction.ccyFormat(membershipProduct.Price)}\r\n \r\n\r\n \r\n {genfunction.ccyFormat(membershipProduct.Price)}\r\n \r\n \r\n \r\n \r\n\r\n \r\n {membershipProduct.Users && membershipProduct.Users.length > 0\r\n ? membershipProduct.Users.map((membership, i) => {\r\n return (\r\n
\r\n \r\n { DeletePerson(membershipProduct.MembershipTypeID, membership) }}\r\n color={\"error\"}\r\n />\r\n { EditPerson(membership, membershipProduct.MembershipTypeID) }}\r\n />\r\n\r\n \r\n \r\n {membership.firstName} {membership.lastName}\r\n \r\n \r\n\r\n \r\n \r\n {membership.firstName} {membership.lastName}\r\n \r\n \r\n\r\n \r\n \r\n {membership.firstName} {membership.lastName}\r\n \r\n \r\n \r\n\r\n \r\n\r\n {membershipProduct.hasOwnProperty('Users') && membershipProduct.Users.length < membershipProduct.MinQuantity ?\r\n <>\r\n \r\n {ValidateMembershipMinQuantity}\r\n \r\n\r\n \r\n {ValidateMembershipMinQuantity}\r\n \r\n\r\n \r\n {ValidateMembershipMinQuantity}\r\n \r\n\r\n : ''\r\n }\r\n \r\n
\r\n )\r\n })\r\n\r\n :\r\n \r\n\r\n {membershipProduct.hasOwnProperty('Users') && membershipProduct.Users.length < membershipProduct.MinQuantity ?\r\n <>\r\n \r\n {ValidateMembershipMinQuantity}\r\n \r\n\r\n \r\n {ValidateMembershipMinQuantity}\r\n\r\n \r\n\r\n \r\n {ValidateMembershipMinQuantity}\r\n \r\n\r\n : ''\r\n }\r\n\r\n\r\n\r\n {membershipProduct.hasOwnProperty('Users') && membershipProduct.Users.length <= membershipProduct.MaxQuantity && membershipProduct.Users.length >= membershipProduct.MinQuantity ?\r\n <>\r\n \r\n No person is currently assigned to this type.\r\n \r\n\r\n \r\n No person is currently assigned to this type.\r\n\r\n \r\n\r\n \r\n No person is currently assigned to this type.\r\n\r\n \r\n : ''\r\n }\r\n \r\n\r\n\r\n }\r\n\r\n {membershipProduct.hasOwnProperty('Users') && membershipProduct.Users.length > membershipProduct.MaxQuantity ?\r\n \r\n\r\n \r\n {ValidateMembershipMaxQuantity}\r\n\r\n \r\n\r\n \r\n {ValidateMembershipMaxQuantity}\r\n \r\n\r\n \r\n {ValidateMembershipMaxQuantity}\r\n \r\n \r\n :\r\n ''\r\n }\r\n\r\n
\r\n
\r\n\r\n : null\r\n })}\r\n\r\n {props.isRenewPackage ?\r\n \r\n\r\n \r\n Individuals not included in Renewal\r\n \r\n \r\n \r\n Some or all of the members are not available in this package. If you wish to review these members then add them to the appropriate membership type.\r\n \r\n\r\n\r\n {usersnotpartofpackage && usersnotpartofpackage.length > 0 && usersnotpartofpackage.filter(x => x.notpartofPackage == true).length > 0 ?\r\n \r\n \r\n {usersnotpartofpackage.filter(x => x.notpartofPackage == true).map(u => (\r\n \r\n {u.firstName} {u.lastName}\r\n \r\n \r\n \r\n\r\n \r\n\r\n ))}\r\n \r\n
\r\n :\r\n \r\n No member record found.\r\n \r\n }\r\n\r\n
\r\n
: null}\r\n\r\n\r\n {props.membershipPackage.hasOwnProperty(\"MembershipProducts\") &&\r\n props.membershipPackage.MembershipProducts.filter(x => x.MembershipType === \"AddOn\").length > 0 ?\r\n <>\r\n \r\n\r\n \r\n \r\n Add Ons\r\n \r\n \r\n\r\n \r\n \r\n Add Ons\r\n \r\n \r\n\r\n \r\n \r\n Add Ons\r\n \r\n \r\n\r\n \r\n \r\n \r\n : null}\r\n\r\n {props.membershipPackage.hasOwnProperty(\"MembershipProducts\") && props.membershipPackage.MembershipProducts.map((addonMembership, i) => {\r\n\r\n return addonMembership.MembershipType === \"AddOn\" ?\r\n \r\n \r\n\r\n \r\n {replaceEscapeCharacters(addonMembership.ProductName)} \r\n \r\n\r\n \r\n {replaceEscapeCharacters(addonMembership.ProductName)} \r\n \r\n\r\n \r\n {replaceEscapeCharacters(addonMembership.ProductName)} \r\n \r\n\r\n \r\n \r\n {(addonMembership.Quantity > 0 || addonMembership.MinQuantity > 0) ? () => changeQuantityHandler(addonMembership) : ''}\r\n changeQuantityHandler(addonMembership)}\r\n checked={(addonMembership.Quantity > 0 || addonMembership.MinQuantity > 0)}\r\n />\r\n \r\n\r\n \r\n \r\n {genfunction.ccyFormat(addonMembership.Price)}\r\n \r\n\r\n \r\n {genfunction.ccyFormat(addonMembership.Price)}\r\n \r\n\r\n \r\n {genfunction.ccyFormat(addonMembership.Price)}\r\n \r\n \r\n \r\n\r\n : null\r\n })}\r\n\r\n \r\n \r\n \r\n\r\n \r\n Tax = {genfunction.ccyFormat(genfunction.CalculateMembershipPackageTotal(memberPackage).TaxTotal)}\r\n Total = {genfunction.ccyFormat(genfunction.CalculateMembershipPackageTotal(memberPackage).TotalAmount)}\r\n \r\n\r\n \r\n Tax = {genfunction.ccyFormat(genfunction.CalculateMembershipPackageTotal(memberPackage).TaxTotal)}\r\n Total = {genfunction.ccyFormat(genfunction.CalculateMembershipPackageTotal(memberPackage).TotalAmount)}\r\n \r\n\r\n \r\n Tax = {genfunction.ccyFormat(genfunction.CalculateMembershipPackageTotal(memberPackage).TaxTotal)}\r\n Total = {genfunction.ccyFormat(genfunction.CalculateMembershipPackageTotal(memberPackage).TotalAmount)}\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n {PackageDiscriptionHeading}\r\n \r\n \r\n \r\n {ReactHtmlParser(GetMembershipPackageDis(props.membershipPackage.Description))}\r\n \r\n\r\n \r\n {readmorebtnText}\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* Show Memberships Start */}\r\n\r\n \r\n\r\n \r\n \r\n Current Memberships\r\n \r\n \r\n \r\n {membermemberhisps && membermemberhisps.membermerberhips && membermemberhisps.membermerberhips[0] !== undefined && membermemberhisps.membermerberhips[0].Memberships !== undefined && membermemberhisps.membermerberhips[0].Memberships.length > 0 && membermemberhisps.membermerberhips[0].Memberships.filter(x => x.IsCancelled == false && x.IsRenewed == false).length > 0 ?\r\n \r\n \r\n \r\n Package Name\r\n Expiry Date\r\n Action\r\n \r\n \r\n\r\n \r\n {renewmembershipsdistinct().map(x => (\r\n\r\n \r\n {x.MembershipPackageName}\r\n {Moment(x.MembershipExpiryDate).format('YYYY-MM-DD')}\r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n : null\r\n }\r\n
\r\n
\r\n\r\n {/* Show Memberships End */}\r\n\r\n
\r\n\r\n\r\n\r\n {/* Add/Edit Person Dialog Start */}\r\n\r\n \r\n\r\n \r\n \r\n {state.memberpackageDetail.popupTitle}\r\n \r\n \r\n \r\n\r\n\r\n
\r\n \r\n\r\n {props.isRenewPackage && state.memberpackageDetail.isEdit ?\r\n <>\r\n Current Membership Type : \r\n \r\n \r\n {state.memberpackageDetail.PreviousMembershipType}\r\n \r\n\r\n \r\n Expiry Date : \r\n \r\n \r\n {Moment(state.memberpackageDetail.MembershipExpiryDate).format('YYYY-MM-DD')}\r\n \r\n \r\n\r\n : null}\r\n\r\n \r\n Membership Type\r\n \r\n \r\n \r\n \r\n\r\n {props.membershipPackage.hasOwnProperty(\"MembershipProducts\") &&\r\n props.membershipPackage.MembershipProducts.filter(x => x.MembershipType === \"Membership\").map((membershipProduct, i) =>\r\n (\r\n state.memberpackageDetail.isEdit === false ?\r\n membershipProduct.Users.length < membershipProduct.MaxQuantity ?\r\n \r\n {replaceEscapeCharacters(membershipProduct.ProductName)}\r\n \r\n : null\r\n :\r\n \r\n {replaceEscapeCharacters(membershipProduct.ProductName)}\r\n \r\n ))}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n\r\n {countryandstates.length > 0 ?\r\n \r\n\r\n {\r\n if (option.hasOwnProperty('Country')) {\r\n return option.Country;\r\n }\r\n return option;\r\n }}\r\n value={state.memberpackageDetail.country}\r\n // defaultValue={countryandstates[0]}\r\n renderOption={(option) => (\r\n <>\r\n \r\n {` ${option.Country} `}\r\n )}\r\n\r\n style={{ width: \"100%\" }}\r\n renderInput={(params) =>\r\n (\r\n )}\r\n\r\n />\r\n {errorstate.initialerrorstate.country.errortext}\r\n \r\n : \"\"}\r\n\r\n \r\n \r\n {/* */}\r\n\r\n {countryandstates.length > 0 ?\r\n \r\n\r\n x.Country == state.memberpackageDetail.country).map(o => o.hasOwnProperty(\"Picklist\") ? o.Picklist : [])[0]\r\n : []\r\n }\r\n fullWidth={true}\r\n onChange={onChangeState}\r\n getOptionLabel={(option) => {\r\n if (option.hasOwnProperty('State')) {\r\n return option.State;\r\n }\r\n return option;\r\n }}\r\n value={state.memberpackageDetail.state}\r\n style={{ width: \"100%\" }}\r\n renderInput={(params) =>\r\n (\r\n )}\r\n\r\n />\r\n {errorstate.initialerrorstate.state.errortext}\r\n \r\n : \"\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n {/* Membership UDFs */}\r\n \r\n \r\n {state.memberpackageDetail.membershipTypeID && state.memberpackageDetail.membershipTypeID > 0\r\n && props.membershipPackage.hasOwnProperty(\"MembershipProducts\") ? props.membershipPackage.MembershipProducts.map((membershipProduct) => {\r\n\r\n return membershipProduct.MembershipTypeID && membershipProduct.MembershipTypeID === state.memberpackageDetail.membershipTypeID ?\r\n
\r\n \r\n \r\n \r\n
\r\n : null\r\n })\r\n : null\r\n }\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* Add/Edit Person Dialog End */}\r\n\r\n\r\n {/* Confirmation Box Start*/}\r\n \r\n {/* Confirmation Box Start*/}\r\n\r\n\r\n
\r\n );\r\n};","import React, { useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { MembershipHeader, MembershipTypes } from './components';\r\nimport { actionGetMembershipPackage } from 'actions';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { Grid } from '@material-ui/core';\r\nconst { Membershipheadernewmsg, Membershipheaderrenewmsg } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n }\r\n}));\r\n\r\nconst Memberships = (props) => {\r\n\r\n const constnextredirect = () => {\r\n props.history.push({\r\n pathname: '/checkout'\r\n })\r\n }\r\n\r\n let shopcartmember = false;\r\n let membershipPackage;\r\n let isRenewPackage = false;\r\n const dispatch = useDispatch();\r\n\r\n const GetMemberShip = () => {\r\n\r\n let membership;\r\n\r\n if (membershippackagesreducer.membershipPackage && membershippackagesreducer.membershipPackage.MembershipPackageID == props.match.params.id) {\r\n membership = membershippackagesreducer.membershipPackage;\r\n\r\n if (props.match.path == \"/memberships/join/:id\") {\r\n //original shopcartmember = false;\r\n shopcartmember = true;\r\n\r\n }\r\n else {\r\n shopcartmember = true;\r\n }\r\n }\r\n else if (membershipPackages && membershipPackages.length > 0 && membershipPackages.find(x => x.MembershipPackageID == parseInt(props.match.params.id)) !== undefined) {\r\n membership = membershipPackages.find(x => x.MembershipPackageID == props.match.params.id);\r\n shopcartmember = true;\r\n }\r\n else {\r\n membership = membershippackagesreducer.membershipPackage;\r\n shopcartmember = false;\r\n }\r\n\r\n if (props.match.path == \"/memberships/renew/:id\") {\r\n isRenewPackage = true;\r\n }\r\n\r\n return membership;\r\n }\r\n\r\n\r\n const membershipPackages = useSelector(state => state.reducerShopCart.MembershipPackages);\r\n const membershippackagesreducer = useSelector(state => state.reducerMembershipPackages);\r\n membershipPackage = GetMemberShip();\r\n\r\n useEffect(() => {\r\n if (props.match.path == \"/memberships/join/:id\") {\r\n actionGetMembershipPackage(dispatch, props.match.params.id);\r\n }\r\n }, []);\r\n\r\n const GetMembershipTypes = () => {\r\n let membershipTypesID = \"\";\r\n if (membershipPackage && membershipPackage.MembershipProducts && membershipPackage.MembershipProducts.length > 0) {\r\n membershipPackage.MembershipProducts.filter(x => x.MembershipType === \"Membership\").map(m => {\r\n\r\n if (membershipTypesID.length == 0) {\r\n membershipTypesID += m.MembershipTypeID;\r\n }\r\n else {\r\n membershipTypesID += \",\" + m.MembershipTypeID;\r\n }\r\n });\r\n }\r\n\r\n return membershipTypesID;\r\n }\r\n\r\n return (\r\n\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Memberships;\r\n","import React, { useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { MembershipHeader } from './components';\r\nimport { actionGetMembershipPackage, actionUpdatePackageForRenew } from 'actions';\r\nimport { actionGetMemberMemberships } from 'actions';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { Button, Grid, Link, TextField, Typography, Hidden } from \"@material-ui/core\";\r\nimport { actionGetMemberValidation, actionResetMemberValidation, actionSetErrorMemberValidation } from 'actions';\r\nimport ErrorHandling from '../../components/ErrorHandling/ErrorHandling';\r\nimport { actionSendEmail, actionResetSendEmail } from 'actions';\r\nimport ProcessingBox from '../Checkout/components/ProcessingBox';\r\nimport { actionGetCustomer, actionResetCustomer } from 'actions';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport { actionGetCustomerUdfs } from 'actions';\r\n\r\nconst { TitleforloadingSendLostMemberemail, Subtitle1forloadingSendLostMemberemail, Subtitle2forloadingSendLostMemberemail, DisplayMemPackageDiscriptionCharacters,\r\n PhoneOrAddress1ForMemberValidate, RenewMembershipNotAllowedForNonPrimarMemberMsg, RenewMembershipIfUserHaveNoMembership } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n }\r\n}));\r\n\r\nconst MemberValidation = (props) => {\r\n\r\n const dispatch = useDispatch();\r\n const membershippackagesreducer = useSelector(state => state.reducerMembershipPackages);\r\n let membershipPackage = membershippackagesreducer.membershipPackage;\r\n const memberValidationReducer = useSelector(state => state.reducerMemberValidation);\r\n const reducerLostMember = useSelector(state => state.reducerLostMember);\r\n const memmemberhisps = useSelector(state => state.reducerMemberMemberships);\r\n const customer = useSelector(state => state.reducerCustomer);\r\n\r\n const [showMainValidate, setshowMainBalidate] = React.useState(false);\r\n const [showProgBox, setshowProgBox] = React.useState(false);\r\n const [showMainValidateAllFields, setshowMainValidateAllFields] = React.useState(false);\r\n\r\n const [errorMsg, seterrorMsg] = React.useState('');\r\n\r\n\r\n if (memberValidationReducer.membervalidation && memberValidationReducer.membervalidation.MemberValidation && memberValidationReducer.membervalidation.MemberValidation[0].hasOwnProperty(\"EmailMatched\")) {\r\n\r\n if (!memberValidationReducer.membervalidation.MemberValidation[0].EmailMatched && memberValidationReducer.membervalidation.MemberValidation[0].PhoneMatched == undefined) {\r\n actionSetErrorMemberValidation(dispatch, 'Email does not match.');\r\n setshowMainValidateAllFields(true);\r\n }\r\n\r\n if (showMainValidateAllFields) {\r\n if ((memberValidationReducer.membervalidation.MemberValidation[0].PhoneMatched == undefined || memberValidationReducer.membervalidation.MemberValidation[0].PhoneMatched == false)\r\n && (memberValidationReducer.membervalidation.MemberValidation[0].AddressMatched == undefined || memberValidationReducer.membervalidation.MemberValidation[0].AddressMatched == false)) {\r\n actionSetErrorMemberValidation(dispatch, 'Phone or Address 1 does not match.');\r\n setshowMainValidateAllFields(true);\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (reducerLostMember.emailsend || reducerLostMember.lostmemberError.length > 0) {\r\n setshowProgBox(false);\r\n }\r\n }, [reducerLostMember])\r\n\r\n useEffect(() => {\r\n if (memberValidationReducer.membervalidation && memberValidationReducer.membervalidation.MemberValidation && validationfields.email && validationfields.email.trim().length > 0) {\r\n\r\n actionGetCustomer(dispatch, memberValidationReducer.membervalidation.MemberValidation[0].CustomerID, validationfields.email);\r\n\r\n // if (memberValidationReducer.loading) {\r\n // actionResetMemberValidation(dispatch);\r\n // }\r\n }\r\n }, [memberValidationReducer.membervalidation]);\r\n\r\n const GetCustomersIDList = () => {\r\n let ids = \"\";\r\n\r\n ids += customer.customer[0].CustomerID;\r\n\r\n if (customer.customer[0].hasOwnProperty(\"LinkedIndividuals\") && customer.customer[0].LinkedIndividuals.length > 0) {\r\n\r\n customer.customer[0].LinkedIndividuals.forEach(c => {\r\n ids += \",\" + c.CustomerID;\r\n });\r\n }\r\n\r\n return ids;\r\n }\r\n useEffect(() => {\r\n\r\n if (customer.customer && customer.customer.length > 0) {\r\n\r\n //Call Memberships with member ID\r\n if (memmemberhisps && memmemberhisps.membermerberhips) {\r\n actionGetMemberMemberships(dispatch, customer.customer[0].CustomerID);\r\n actionGetCustomerUdfs(dispatch, GetCustomersIDList());\r\n }\r\n }\r\n\r\n if (customer.customerError && customer.customerError.length) {\r\n seterrorMsg(customer.customerError);\r\n }\r\n\r\n }, [customer.customer]);\r\n\r\n useEffect(() => {\r\n\r\n if (memmemberhisps.membermerberhips && memmemberhisps.membermerberhips.length > 0 && memberValidationReducer.membervalidation &&\r\n memberValidationReducer.membervalidation.MemberValidation) {\r\n if (memmemberhisps.membermerberhips[0].Memberships && memmemberhisps.membermerberhips[0].Memberships.length > 0) {\r\n\r\n if (memmemberhisps.membermerberhips[0].CustomerID !== customer.customer[0].CustomerID) {\r\n actionSetErrorMemberValidation(dispatch, RenewMembershipNotAllowedForNonPrimarMemberMsg);\r\n }\r\n else {\r\n\r\n actionUpdatePackageForRenew(dispatch, props.match.params.id, memmemberhisps, customer.customer);\r\n\r\n props.history.push({\r\n pathname: '/memberships/renew/' + props.match.params.id\r\n })\r\n }\r\n }\r\n\r\n if (!memmemberhisps.membermerberhips[0].hasOwnProperty('Memberships')) {\r\n actionSetErrorMemberValidation(dispatch, RenewMembershipIfUserHaveNoMembership);\r\n }\r\n\r\n }\r\n }, [memmemberhisps.membermerberhips]);\r\n\r\n const [validationfields, setvalidationfields] = React.useState({\r\n lastName: '',\r\n email: '',\r\n memberNo: '',\r\n phone: '',\r\n address1: ''\r\n });\r\n\r\n //Intialize States\r\n const [errorstate, seterrorstate] = React.useState({\r\n initialerrorstate: {\r\n last_name: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n email: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n member_no: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n phone: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n address1: {\r\n errorstate: false,\r\n errortext: \"\"\r\n }\r\n }\r\n });\r\n\r\n const fieldhandleChange = (event) => {\r\n\r\n if (event.target.name === \"lname\") {\r\n setvalidationfields({ ...validationfields, lastName: event.target.value });\r\n }\r\n\r\n if (event.target.name === \"email\") {\r\n setvalidationfields({ ...validationfields, email: event.target.value });\r\n }\r\n\r\n if (event.target.name === \"memberno\") {\r\n setvalidationfields({ ...validationfields, memberNo: event.target.value });\r\n }\r\n\r\n if (event.target.name === \"phone\") {\r\n setvalidationfields({ ...validationfields, phone: event.target.value });\r\n }\r\n\r\n\r\n if (event.target.name === \"address1\") {\r\n setvalidationfields({ ...validationfields, address1: event.target.value });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (props.match.path == \"/memberships/membervalidate/:id\") {\r\n actionGetMembershipPackage(dispatch, props.match.params.id);\r\n }\r\n }, []);\r\n\r\n const ValidateMember = () => {\r\n\r\n var valFields = { ...validationfields };\r\n var initialerrstate = { ...errorstate.initialerrorstate };\r\n\r\n\r\n if (valFields.lastName.trim().length < 1) {\r\n initialerrstate.last_name.errorstate = true;\r\n initialerrstate.last_name.errortext = \"Last Name is required.\";\r\n seterrorstate({ ...errorstate, initialerrstate });\r\n }\r\n else {\r\n initialerrstate.last_name.errorstate = false;\r\n initialerrstate.last_name.errortext = \"\";\r\n seterrorstate({ ...errorstate, initialerrstate });\r\n }\r\n\r\n\r\n if (showMainValidateAllFields == false) {\r\n if (valFields.email.trim().length < 1) {\r\n initialerrstate.email.errorstate = true;\r\n initialerrstate.email.errortext = \"Email is required.\";\r\n seterrorstate({ ...errorstate, initialerrstate });\r\n }\r\n else {\r\n initialerrstate.email.errorstate = false;\r\n initialerrstate.email.errortext = \"\";\r\n seterrorstate({ ...errorstate, initialerrstate });\r\n }\r\n }\r\n\r\n\r\n if (valFields.memberNo.trim().length < 1) {\r\n initialerrstate.member_no.errorstate = true;\r\n initialerrstate.member_no.errortext = \"Member No is required.\";\r\n seterrorstate({ ...errorstate, initialerrstate });\r\n }\r\n else {\r\n initialerrstate.member_no.errorstate = false;\r\n initialerrstate.member_no.errortext = \"\";\r\n seterrorstate({ ...errorstate, initialerrstate });\r\n }\r\n\r\n if (showMainValidateAllFields) {\r\n\r\n if (valFields.phone.trim().length < 1 && valFields.address1.trim().length < 1) {\r\n initialerrstate.phone.errorstate = true;\r\n initialerrstate.phone.errortext = \"Phone No is missing.\";\r\n\r\n initialerrstate.address1.errorstate = true;\r\n initialerrstate.address1.errortext = \"Address 1 is missing.\";\r\n\r\n seterrorstate({ ...errorstate, initialerrstate });\r\n }\r\n else {\r\n initialerrstate.phone.errorstate = false;\r\n initialerrstate.phone.errortext = \"\";\r\n initialerrstate.address1.errorstate = false;\r\n initialerrstate.address1.errortext = \"\";\r\n seterrorstate({ ...errorstate, initialerrstate });\r\n }\r\n\r\n\r\n if (valFields.lastName.trim().length > 0 && valFields.memberNo.trim().length > 0 && (valFields.phone.trim().length > 0 || valFields.address1.trim().length > 0)) {\r\n actionGetMemberValidation(dispatch, validationfields.memberNo, validationfields.lastName, '', validationfields.phone, validationfields.address1);\r\n }\r\n }\r\n else {\r\n if (valFields.lastName.trim().length > 0 && valFields.lastName.trim().length > 0 && valFields.memberNo.trim().length > 0) {\r\n actionGetMemberValidation(dispatch, validationfields.memberNo, validationfields.lastName, validationfields.email);\r\n }\r\n }\r\n }\r\n\r\n const errorcancelhandle = () => {\r\n actionResetMemberValidation(dispatch);\r\n\r\n if (customer.customerError && customer.customerError.length) {\r\n actionResetCustomer(dispatch);\r\n }\r\n\r\n seterrorMsg(\"\");\r\n }\r\n\r\n const errorcancelhandleemail = () => {\r\n actionResetSendEmail(dispatch);\r\n }\r\n\r\n const ShowEmailView = () => {\r\n setshowMainBalidate(true);\r\n setshowMainValidateAllFields(false);\r\n }\r\n\r\n const ShowValidateView = () => {\r\n setshowMainBalidate(false);\r\n actionResetSendEmail(dispatch);\r\n\r\n setvalidationfields({ ...validationfields, lastName: '' });\r\n setvalidationfields({ ...validationfields, email: '' });\r\n setvalidationfields({ ...validationfields, memberNo: '' });\r\n }\r\n\r\n const SendEmailToCst = () => {\r\n\r\n var valFields = { ...validationfields };\r\n var initialerrstate = { ...errorstate.initialerrorstate };\r\n\r\n if (valFields.lastName.trim().length < 1) {\r\n initialerrstate.last_name.errorstate = true;\r\n initialerrstate.last_name.errortext = \"Last Name is required.\";\r\n seterrorstate({ ...errorstate, initialerrstate });\r\n }\r\n else {\r\n initialerrstate.last_name.errorstate = false;\r\n initialerrstate.last_name.errortext = \"\";\r\n seterrorstate({ ...errorstate, initialerrstate });\r\n }\r\n\r\n\r\n if (valFields.email.trim().length < 1) {\r\n initialerrstate.email.errorstate = true;\r\n initialerrstate.email.errortext = \"Email is required.\";\r\n seterrorstate({ ...errorstate, initialerrstate });\r\n }\r\n else {\r\n initialerrstate.email.errorstate = false;\r\n initialerrstate.email.errortext = \"\";\r\n seterrorstate({ ...errorstate, initialerrstate });\r\n }\r\n\r\n\r\n if (valFields.lastName.trim().length > 0 && valFields.email.trim().length > 0) {\r\n var request = [{\r\n \"LastName\": valFields.lastName,\r\n \"Email\": valFields.email\r\n }]\r\n\r\n setshowProgBox(true);\r\n actionSendEmail(dispatch, request);\r\n }\r\n\r\n }\r\n\r\n const [showMoreInfo, setShowMoreInfo] = React.useState(false);\r\n const [readmorebtnText, setreadmorebtnText] = React.useState('Read More');\r\n\r\n const ShowMoreInfoClick = () => {\r\n\r\n if (readmorebtnText === 'Read More') {\r\n setShowMoreInfo(true);\r\n setreadmorebtnText('Read Less');\r\n }\r\n else {\r\n setShowMoreInfo(false);\r\n setreadmorebtnText('Read More');\r\n }\r\n }\r\n\r\n\r\n const GetMembershipPackageDis = (discription) => {\r\n\r\n if (discription) {\r\n if (showMoreInfo) {\r\n return discription.substring(0, discription.length - 1);\r\n }\r\n\r\n return discription.substring(0, DisplayMemPackageDiscriptionCharacters);\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n return (\r\n\r\n
\r\n 0 ? memberValidationReducer.membervalidationError : ''}\r\n open={memberValidationReducer.membervalidationError.length > 0 ? true : false} handleclose={errorcancelhandle} />\r\n\r\n 0 ? reducerLostMember.lostmemberError : ''}\r\n open={reducerLostMember.lostmemberError.length > 0 ? true : false} handleclose={errorcancelhandleemail} />\r\n\r\n 0 ? errorMsg : ''}\r\n open={errorMsg && errorMsg.length > 0 ? true : false} handleclose={errorcancelhandle} />\r\n\r\n \r\n\r\n \r\n \r\n \r\n {ReactHtmlParser(GetMembershipPackageDis(membershipPackage.Description))}\r\n \r\n\r\n \r\n {readmorebtnText}\r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n \r\n {ReactHtmlParser(GetMembershipPackageDis(membershipPackage.Description))}\r\n \r\n \r\n {readmorebtnText}\r\n \r\n \r\n \r\n\r\n\r\n\r\n {\r\n showMainValidateAllFields ?\r\n\r\n
\r\n \r\n To find your existing membership, please enter following information to validate.\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n\r\n \r\n I don't know my member #.\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n {PhoneOrAddress1ForMemberValidate}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n :\r\n
\r\n {showMainValidate ?\r\n
\r\n\r\n \r\n Can't remember your member #? Please enter your last name + email and we'll send you an email with the member number to verify and renew.\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n {!reducerLostMember.emailsend ? \r\n \r\n \r\n : null}\r\n\r\n {reducerLostMember.emailsend ?\r\n
\r\n \r\n Email sent successfully!\r\n \r\n \r\n \r\n \r\n
: null}\r\n
\r\n\r\n
:\r\n
\r\n \r\n To find your existing membership, please enter following information to validate.\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n I don't know my member #.\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n }\r\n
\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default MemberValidation;\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { useSelector } from 'react-redux';\r\nimport { Typography, TableCell, IconButton, TableRow, Grid } from '@material-ui/core';\r\nimport InfoIcon from '@material-ui/icons/Info'\r\nimport { genfunction } from 'helpers'\r\n\r\nimport NumberSpinner from 'components/InputControls/NumberSpinner';\r\nconst { DisplayGATicketExpiryValidity } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\r\n header: {\r\n textAlign: \"center\",\r\n padding: 10,\r\n\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n items: {\r\n padding: 20\r\n }\r\n}));\r\n\r\nconst GAGroupItem = props => {\r\n\r\n const classes = useStyles();\r\n\r\n const gatickets = useSelector(state => state.reducerShopCart.GATickets);\r\n\r\n const getShopcartTicketQty = (ProductID) => {\r\n let ticket = gatickets.find(t => t.ProductID === ProductID);\r\n if (ticket)\r\n return ticket.Quantity\r\n else\r\n return 0;\r\n }\r\n\r\n return (\r\n
\r\n {props.GroupHeader}\r\n
\r\n {props.GroupItems.map(ticket => (\r\n \r\n \r\n \r\n { props.InfoClickHandler(ticket.ProductID) }}\r\n >\r\n \r\n \r\n \r\n \r\n {ticket.ProductName} {genfunction.ccyFormat(ticket.Price)}\r\n {DisplayGATicketExpiryValidity ?\r\n {'Valid until ' + genfunction.GetEventDate(ticket.GATicketExpiryDate)}\r\n : \"\"}\r\n {ticket.OriginalPrice && (ticket.OriginalPrice > ticket.Price) ?\r\n
\r\n {'You Save ' + genfunction.ccyFormat((ticket.OriginalPrice - ticket.Price))}\r\n
\r\n : \"\"}\r\n
\r\n
\r\n \r\n { props.ChangeQuantityHandler(refrence, value) }}>\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default GAGroupItem;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Grid, Container, Link, Button, Typography, TableCell, TableRow, Table, TableBody } from '@material-ui/core';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { genfunction } from 'helpers'\r\nimport * as underscore from 'underscore'\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nimport { actionStartAppLoader, actionEndAppLoader } from 'actions/actionAppLoader';\r\nimport { actionGetGATickets, actionUpdateQuantityToProduct } from 'actions';\r\nimport { actionShopCartAddGATicket } from 'actions';\r\nimport ErrorHandling from 'components/ErrorHandling/ErrorHandling';\r\nimport DialogeBox from 'components/DialogeBox/DialogeBox';\r\nimport GAGroupItem from './components/GAGroupItem'\r\nimport { Hidden } from '@material-ui/core';\r\nimport { actionResetPaymentTransaction } from 'actions';\r\n\r\nconst { DefaultGATicketDisplayAreaNo, TicketPageHeader, OrderItemsInCartError } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n headerText: {\r\n paddingBottom: 15,\r\n textAlign: \"center\"\r\n },\r\n primarycolor: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n footertablecell: {\r\n paddingRight: 0\r\n }\r\n}));\r\n\r\nconst useQuery = () => {\r\n return new URLSearchParams(useLocation().search);\r\n}\r\n\r\nconst GATickets = (props) => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n const [tnc, settnc] = useState({\r\n tncOpen: false,\r\n tncMessage: \"\",\r\n })\r\n const [DisplayArea, setDisplayArea] = useState(DefaultGATicketDisplayAreaNo);\r\n const GATickets = useSelector(state => state.reducerGaTicket.GATickets);\r\n const GATicketsError = useSelector(state => state.reducerGaTicket.GATicketsError);\r\n const GADisplayAreas = useSelector(state => state.reducerGaTicket.GADisplayAreas);\r\n const GACouponCode = useQuery().get(\"coupon\");\r\n\r\n const gaTickets = useSelector(state => state.reducerShopCart.GATickets);\r\n const membershipPackages = useSelector(state => state.reducerShopCart.MembershipPackages);\r\n const events = useSelector(state => state.reducerShopCart.events);\r\n const paymenttranstate = useSelector(state => state.reducerPaymentTransaction.Payment);\r\n const giftcards = useSelector(state => state.reducerGiftCards);\r\n const orderProducts = useSelector(state => state.reducerShopCart.orderProducts);\r\n const donationProducts = useSelector(state => state.reducerShopCart.donationProducts);\r\n\r\n useEffect(() => {\r\n if (events && events.length == 0 && membershipPackages && membershipPackages.length == 0 && gaTickets && gaTickets.length == 0 &&\r\n giftcards.giftcards && giftcards.giftcards.length == 0 && donationProducts && donationProducts.length == 0 && paymenttranstate.hasOwnProperty(\"ReceiptNo\") && paymenttranstate.ReceiptNo.toString().length > 0) {\r\n actionResetPaymentTransaction(dispatch);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (GATickets && GATickets.length > 0) {\r\n actionEndAppLoader(dispatch);\r\n }\r\n }, [GATickets])\r\n\r\n useEffect(() => {\r\n seterrorMsg(GATicketsError);\r\n }, [GATicketsError])\r\n\r\n useEffect(() => {\r\n actionStartAppLoader(dispatch);\r\n if (props.match.path == \"/gatickets/Area/:id\") {\r\n var areaNo = props.match.params.id;\r\n setDisplayArea(areaNo);\r\n actionGetGATickets(dispatch, areaNo, GACouponCode);\r\n }\r\n else\r\n actionGetGATickets(dispatch, DisplayArea, GACouponCode);\r\n }, [])\r\n\r\n const errorcancelhandle = () => {\r\n seterrorMsg(\"\");\r\n }\r\n\r\n const settnchandler = (ProductID) => {\r\n let ticket = GATickets.find(x => x.ProductID === ProductID);\r\n if (ticket) {\r\n settnc({\r\n tncOpen: true,\r\n tncMessage: ReactHtmlParser(genfunction.replaceEscapeCharacters(ticket.TermsConditions))\r\n })\r\n }\r\n else {\r\n settnc({\r\n tncOpen: false,\r\n tncMessage: \"\"\r\n })\r\n }\r\n }\r\n\r\n const changeQuantityHandler = (refrence, value) => {\r\n actionUpdateQuantityToProduct(dispatch, refrence.tourProductID, value);\r\n }\r\n\r\n const getGroupedGATickets = () => {\r\n\r\n var SellTickets = GATickets.filter(ticket => new Date().getTime() >= new Date(ticket.ProductSellStartDate).getTime() && new Date().getTime() <= new Date(ticket.ProductSellEndDate).getTime());\r\n SellTickets = SellTickets.filter(ticket => DisplayArea == 0 || ticket.DisplayArea == DisplayArea)\r\n let sortticket = underscore.sortBy(SellTickets, ticket => ticket.GATicketDepartments[0].DepartmentSortOrder);\r\n let group = underscore.groupBy(sortticket, (ticket) => { return ticket.GATicketDepartments[0].DepartmentName; });\r\n return group;\r\n }\r\n\r\n const getTotalAmount = () => {\r\n let amount = {\r\n tax: 0,\r\n total: 0,\r\n }\r\n\r\n GATickets.forEach(ticket => {\r\n amount.tax += ticket.TaxAmount;\r\n amount.total += ticket.TotalAmount;\r\n });\r\n\r\n return amount;\r\n }\r\n\r\n const getDisplayAreaText = () => {\r\n var DA = GADisplayAreas.find(da => da.DisplayAreaNo == DisplayArea && da.ShowOnline === true);\r\n if (DA)\r\n return DA.DisplayText;\r\n else\r\n return \"\";\r\n }\r\n\r\n const AddToCartHandler = () => {\r\n\r\n if (orderProducts && orderProducts.length > 0) {\r\n seterrorMsg(OrderItemsInCartError);\r\n return;\r\n }\r\n\r\n var tickets = GATickets.filter(ticket => ticket.Quantity > 0);\r\n if (tickets && tickets.length > 0) {\r\n var minQtytickets = GATickets.find(ticket => ticket.Quantity > 0 && ticket.Quantity < ticket.MinQuantity);\r\n if (minQtytickets) {\r\n seterrorMsg(minQtytickets.ProductName + \" (Please select at least \" + minQtytickets.MinQuantity + \" quantity)\");\r\n return;\r\n }\r\n else {\r\n let newtickets = tickets.map(ticket => ({ ...ticket, CouponCodeApplied: (ticket.OriginalPrice && ticket.Price < ticket.OriginalPrice) ? GACouponCode : null, OriginalPrice: (ticket.OriginalPrice ? ticket.OriginalPrice : ticket.Price) }))\r\n actionShopCartAddGATicket(dispatch, newtickets);\r\n props.history.push('/checkout');\r\n }\r\n }\r\n else {\r\n seterrorMsg(\"Please select quantity first\");\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n {TicketPageHeader}\r\n \r\n\r\n \r\n {TicketPageHeader}\r\n \r\n\r\n \r\n {TicketPageHeader}\r\n \r\n\r\n\r\n {ReactHtmlParser(genfunction.replaceEscapeCharacters(getDisplayAreaText()))}\r\n \r\n \r\n {underscore.map(getGroupedGATickets(), (items, key) => {\r\n return (\r\n \r\n )\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Tax\r\n {genfunction.ccyFormat(getTotalAmount().tax)}\r\n \r\n \r\n Total\r\n {genfunction.ccyFormat(getTotalAmount().total)}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n { settnchandler(0) }}>\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default GATickets;\r\n","import React, { useEffect } from 'react';\r\nimport { Container, Grid, Typography, TextField, Button, Hidden } from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { actionGetBooking, actionResetBooking } from 'actions';\r\nimport ErrorHandling from '../../components/ErrorHandling/ErrorHandling';\r\nimport { useLocation } from \"react-router-dom\";\r\nimport {\r\n actionShopCartSetManageMyBooking, actionShopCartApplyMemberCostrate, actionShopCartResetDonation, actionShopCartResetStateWithTourHold\r\n} from 'actions';\r\nimport { actionStartAppLoader, actionEndAppLoader } from '../../actions/actionAppLoader';\r\nimport { actionResetPaymentTransaction } from 'actions';\r\n\r\nconst { EmailRegex, FindMyBookingTitle, OrderItemsInCartError, InvalidFindMyBookingFieldsErrorMsg, FindBookingIDNumberNumbericOnly } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3)\r\n },\r\n primarycolor: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n content: {\r\n textAlign: 'center'\r\n },\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n height: '40px'\r\n },\r\n boxBorder:\r\n {\r\n border: '4px solid ' + theme.palette.primary.main,\r\n borderRadius: '2px'\r\n },\r\n itemPadding: {\r\n padding: '15px'\r\n },\r\n searchButton: {\r\n marginBottom: '10px'\r\n }\r\n}));\r\n\r\n\r\nconst FindMyBooking = (props) => {\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n //States Initializing Start\r\n\r\n const [state, setState] = React.useState({\r\n FindBooking: {\r\n bookingID: '',\r\n lastName: '',\r\n email: ''\r\n }\r\n });\r\n\r\n const [errorstate, seterrorstate] = React.useState({\r\n initialerrorstate: {\r\n bookingID: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n lastName: {\r\n errorstate: false,\r\n errortext: \"\"\r\n },\r\n email: {\r\n errorstate: false,\r\n errortext: \"\"\r\n }\r\n }\r\n });\r\n\r\n //States Initializing End\r\n\r\n\r\n //Error Handling Start\r\n\r\n const [errorMsg, seterrorMsg] = React.useState('');\r\n\r\n const errorcancelhandle = () => {\r\n actionShopCartSetManageMyBooking(dispatch, false, false);\r\n actionResetBooking(dispatch);\r\n seterrorMsg('');\r\n }\r\n\r\n //Error Handling Start\r\n\r\n\r\n\r\n const reducerBooking = useSelector(state => state.reducerBooking);\r\n const shopcartreducer = useSelector(state => state.reducerShopCart);\r\n const giftcards = useSelector(state => state.reducerGiftCards);\r\n const events = useSelector(state => state.reducerShopCart.events);\r\n const paymenttranstate = useSelector(state => state.reducerPaymentTransaction.Payment);\r\n const gaTickets = useSelector(state => state.reducerShopCart.GATickets);\r\n const membershipPackages = useSelector(state => state.reducerShopCart.MembershipPackages);\r\n const orderProducts = useSelector(state => state.reducerShopCart.orderProducts);\r\n const donationProducts = useSelector(state => state.reducerShopCart.donationProducts);\r\n\r\n useEffect(() => {\r\n if (events && events.length == 0 && membershipPackages && membershipPackages.length == 0 && gaTickets && gaTickets.length == 0 &&\r\n giftcards.giftcards && giftcards.giftcards.length == 0 && donationProducts && donationProducts.length == 0 && paymenttranstate.hasOwnProperty(\"ReceiptNo\") && paymenttranstate.ReceiptNo.toString().length > 0) {\r\n actionResetPaymentTransaction(dispatch);\r\n }\r\n }, []);\r\n\r\n\r\n useEffect(() => {\r\n if (reducerBooking.loading == true) {\r\n actionStartAppLoader(dispatch);\r\n }\r\n else {\r\n actionEndAppLoader(dispatch);\r\n }\r\n })\r\n\r\n const constnextredirect = () => {\r\n props.history.push({\r\n pathname: '/managebooking'\r\n })\r\n }\r\n\r\n\r\n useEffect(() => {\r\n if (reducerBooking.booking !== 'nocontent' && reducerBooking.booking !== 'no-content') {\r\n reducerBooking.booking[0] = [];\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n\r\n if (reducerBooking.booking && reducerBooking.booking === \"nocontent\") {\r\n seterrorMsg(InvalidFindMyBookingFieldsErrorMsg);\r\n return;\r\n }\r\n\r\n if (reducerBooking.bookingError && reducerBooking.bookingError.length > 0) {\r\n seterrorMsg(reducerBooking.bookingError);\r\n return;\r\n }\r\n\r\n if (reducerBooking.booking && reducerBooking.booking.length > 0 && reducerBooking.booking[0].hasOwnProperty('BookingID')) {\r\n\r\n if (reducerBooking.booking[0].hasOwnProperty('BookingEmailAddress') && reducerBooking.booking[0].hasOwnProperty('BookingSearchName')) {\r\n if ((reducerBooking.booking[0].BookingSearchName.toLowerCase() !== state.FindBooking.lastName.toLowerCase()) &&\r\n (reducerBooking.booking[0].BookingEmailAddress.toLowerCase() !== state.FindBooking.email.toLowerCase())) {\r\n\r\n seterrorMsg('Last Name and Email does not match.');\r\n }\r\n else if (reducerBooking.booking[0].BookingSearchName.toLowerCase() !== state.FindBooking.lastName.toLowerCase()) {\r\n seterrorMsg('Last Name does not match.');\r\n }\r\n\r\n else if (reducerBooking.booking[0].BookingEmailAddress.toLowerCase() !== state.FindBooking.email.toLowerCase()) {\r\n seterrorMsg('Email does not match.');\r\n }\r\n else {\r\n actionShopCartSetManageMyBooking(dispatch, true, false);\r\n actionShopCartApplyMemberCostrate(dispatch, reducerBooking.booking[0].CustomerCostRateID, reducerBooking.booking[0].CustomerID, reducerBooking.booking[0].BookingEmailAddress, reducerBooking.booking[0].BookingSearchName);\r\n\r\n constnextredirect();\r\n }\r\n }\r\n else {\r\n seterrorMsg('Last Name and Email does not match.');\r\n actionResetBooking(dispatch);\r\n }\r\n }\r\n }, [reducerBooking]);\r\n\r\n\r\n const useQuery = () => {\r\n return new URLSearchParams(useLocation().search);\r\n }\r\n\r\n const paramBookingid = useQuery().get(\"bookingID\");\r\n const paramName = useQuery().get(\"Name\");\r\n const paramEmail = useQuery().get(\"Email\");\r\n\r\n useEffect(() => {\r\n\r\n if ((paramBookingid && paramBookingid.trim().length > 0) && (paramName && paramName.trim().length > 0) && (paramEmail && paramEmail.trim().length > 0)) {\r\n var findBookingObj = { ...state.FindBooking };\r\n findBookingObj.bookingID = paramBookingid;\r\n findBookingObj.lastName = paramName;\r\n findBookingObj.email = paramEmail;\r\n setState({ ...state, FindBooking: findBookingObj });\r\n\r\n actionGetBooking(dispatch, paramBookingid, paramEmail, paramName);\r\n }\r\n }, [])\r\n\r\n const fieldhandleChange = (event) => {\r\n\r\n var findBookingObj = { ...state.FindBooking };\r\n\r\n if (event.target.name === \"bookingID\") {\r\n findBookingObj.bookingID = event.target.value;\r\n setState({ ...state, FindBooking: findBookingObj });\r\n }\r\n\r\n if (event.target.name === \"lastname\") {\r\n findBookingObj.lastName = event.target.value;\r\n setState({ ...state, FindBooking: findBookingObj });\r\n }\r\n\r\n if (event.target.name === \"email\") {\r\n findBookingObj.email = event.target.value;\r\n setState({ ...state, FindBooking: findBookingObj });\r\n }\r\n\r\n }\r\n\r\n const searchBooking = () => {\r\n\r\n if (orderProducts && orderProducts.length > 0) {\r\n seterrorMsg(OrderItemsInCartError);\r\n return;\r\n }\r\n\r\n var initialerrorstate = { ...errorstate.initialerrorstate };\r\n\r\n if (state.FindBooking.bookingID.trim().length < 1) {\r\n initialerrorstate.bookingID.errorstate = true;\r\n initialerrorstate.bookingID.errortext = \"Booking ID is required.\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n else {\r\n initialerrorstate.bookingID.errorstate = false;\r\n initialerrorstate.bookingID.errortext = \"\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n\r\n if (state.FindBooking.lastName.trim().length < 1) {\r\n initialerrorstate.lastName.errorstate = true;\r\n initialerrorstate.lastName.errortext = \"Last Name is required.\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n else {\r\n initialerrorstate.lastName.errorstate = false;\r\n initialerrorstate.lastName.errortext = \"\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n\r\n if (state.FindBooking.email.trim().length < 1) {\r\n\r\n initialerrorstate.email.errorstate = true;\r\n initialerrorstate.email.errortext = \"Email is required.\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n else if (state.FindBooking.email.trim().length > 0 && validateEmail(state.FindBooking.email) == false) {\r\n initialerrorstate.email.errorstate = true;\r\n initialerrorstate.email.errortext = \"Please enter a valid email address.\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n return;\r\n }\r\n else {\r\n initialerrorstate.email.errorstate = false;\r\n initialerrorstate.email.errortext = \"\";\r\n seterrorstate({ ...errorstate, initialerrorstate });\r\n }\r\n\r\n if (state.FindBooking.bookingID.trim().length > 0 && state.FindBooking.lastName.trim().length > 0 && state.FindBooking.email.trim().length > 0) {\r\n\r\n if (shopcartreducer.events && shopcartreducer.events.length > 0) {\r\n actionShopCartResetStateWithTourHold(dispatch, shopcartreducer.events);\r\n }\r\n\r\n if (shopcartreducer.donation && shopcartreducer.donation.length > 0) {\r\n actionShopCartResetDonation(dispatch);\r\n }\r\n\r\n actionGetBooking(dispatch, state.FindBooking.bookingID, state.FindBooking.email, state.FindBooking.lastName);\r\n }\r\n }\r\n\r\n function validateEmail(email) {\r\n var re = new RegExp(EmailRegex);\r\n return re.test(String(email).toLowerCase());\r\n }\r\n\r\n return (\r\n \r\n 0 ? errorMsg : ''}\r\n open={errorMsg && errorMsg.length > 0 ? true : false} handleclose={errorcancelhandle} />\r\n \r\n \r\n \r\n {FindMyBookingTitle}\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default FindMyBooking;","import React, { useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Button, Container, Grid, Typography, Hidden } from '@material-ui/core';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport DataAccess from '../../api/constants';\r\nimport Moment from 'moment';\r\nimport { genfunction } from '../../helpers';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport { actionShopCartSetManageMyBooking, actionShopCartSetRefundType, actionShopCartSetMmbAmountToPay, actionShopCartResetMembership, actionGetTransactionFee, actionShopCartResetIDME, actionShopCartSetEnteredAmountToPay } from 'actions';\r\nimport { actionGetBookingTypes, actionResetBookingTypes } from 'actions';\r\nimport { actionGetExtraItems, actionResetExtraItems } from 'actions';\r\nimport ErrorHandling from '../../components/ErrorHandling/ErrorHandling';\r\nimport { actionResetBooking } from 'actions';\r\nimport { actionStartAppLoader, actionEndAppLoader } from '../../actions/actionAppLoader';\r\n\r\nconst { ShowReadableBarcode, TransactionFeeProductID, ApplyTransactionFee } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3)\r\n },\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n height: '40px'\r\n },\r\n tourheaderboxMobView: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n height: '40px',\r\n marginTop: '40px'\r\n },\r\n image: {\r\n border: \"5px solid white\",\r\n padding: '10px',\r\n align: 'center'\r\n },\r\n warningMsg: {\r\n color: 'Red'\r\n },\r\n AdjustContext: {\r\n padding: '12px'\r\n },\r\n hideBtn: {\r\n display: 'none'\r\n }\r\n}));\r\n\r\nconst ManageMyBooking = (props) => {\r\n\r\n const dispatch = useDispatch();\r\n\r\n //States Initializing Start\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [openPaymentmethod, setOpenPaymentMethod] = React.useState(false);\r\n\r\n //States Initializing End\r\n\r\n\r\n //Set States Start\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n\r\n const handleClickOpenPaymentMethod = () => {\r\n setOpenPaymentMethod(true);\r\n };\r\n\r\n const handleClosePaymentMethod = () => {\r\n setOpenPaymentMethod(false);\r\n };\r\n\r\n //Set States End\r\n\r\n const classes = useStyles();\r\n const reducerBooking = useSelector(state => state.reducerBooking);\r\n const displayAreasState = useSelector(state => state.reducerDisplayAreas);\r\n const tourEvents = useSelector(state => state.reducerExtraItems);\r\n const bookingTypes = useSelector(state => state.reducerBookingTypes);\r\n const transactionfee = useSelector(state => state.reducerTransactionFee);\r\n const cashless = useSelector(state => state.reducerShopCart.cashless);\r\n let cashlesstotal = cashless.map(({ HoldAmount }) => HoldAmount).reduce((sum, i) => sum + i, 0);\r\n\r\n const [errorMsg, seterrorMsg] = React.useState('');\r\n\r\n window.history.pushState({ name: \"browserBack\" }, \"on browser back click\", window.location.href);\r\n\r\n useEffect(() => {\r\n if (tourEvents.loading == true) {\r\n actionStartAppLoader(dispatch);\r\n }\r\n else {\r\n actionEndAppLoader(dispatch);\r\n }\r\n })\r\n\r\n useEffect(() => {\r\n if (ApplyTransactionFee && TransactionFeeProductID > 0) {\r\n actionGetTransactionFee(dispatch, TransactionFeeProductID, 'transactionfee');\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (bookingTypes.bookingTypesError && bookingTypes.bookingTypesError.length > 0) {\r\n seterrorMsg(bookingTypes.bookingTypesError);\r\n }\r\n }, [bookingTypes]);\r\n\r\n useEffect(() => {\r\n if (tourEvents.extramItemsError && tourEvents.extramItemsError.length > 0) {\r\n seterrorMsg(tourEvents.extramItemsError);\r\n }\r\n }, [tourEvents]);\r\n\r\n\r\n const errorcancelhandle = () => {\r\n seterrorMsg('');\r\n if (tourEvents.extramItemsError && tourEvents.extramItemsError.length > 0) {\r\n actionResetExtraItems(dispatch);\r\n }\r\n\r\n if (bookingTypes.bookingTypesError && bookingTypes.bookingTypesError.length > 0) {\r\n actionResetBookingTypes(dispatch);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n\r\n let displayareaNo = reducerBooking && reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty('BookingTypeDisplayArea') ? reducerBooking.booking[0].BookingTypeDisplayArea : 0;\r\n\r\n if (reducerBooking && reducerBooking.booking[0]) {\r\n\r\n if (reducerBooking.booking[0].AllowDateTimeChanges && !reducerBooking.booking[0].AllowDateTimeChangesWithinArea) {\r\n\r\n if (bookingTypes && bookingTypes.bookingTypes && bookingTypes.bookingTypes.length >= 0 && bookingTypes.bookingTypes.filter(x => x.BookingTypeID === reducerBooking.booking[0].BookingTypeID).length < 1) {\r\n actionGetBookingTypes(dispatch, reducerBooking.booking[0].BookingTypeID, false);\r\n }\r\n }\r\n else if (reducerBooking.booking[0].hasOwnProperty('AllowDateTimeChangesWithinArea') && reducerBooking.booking[0].AllowDateTimeChangesWithinArea) {\r\n actionGetBookingTypes(dispatch, displayareaNo, true);\r\n }\r\n }\r\n\r\n }, [reducerBooking]);\r\n\r\n useEffect(() => {\r\n let startFilterDate = reducerBooking && reducerBooking.booking[0] ? reducerBooking.booking[0].EventStartDateTime : '';\r\n let bookingID = reducerBooking && reducerBooking.booking[0] ? reducerBooking.booking[0].BookingTypeID : 0;\r\n startFilterDate = Moment(startFilterDate).format('YYYY-MM-DD');\r\n\r\n if (reducerBooking && reducerBooking.booking[0]) {\r\n if (reducerBooking.booking[0].AllowDateTimeChanges && !reducerBooking.booking[0].AllowDateTimeChangesWithinArea) {\r\n actionGetExtraItems(dispatch, bookingID, true, false, startFilterDate, null, \"SingleDay\");\r\n }\r\n }\r\n\r\n }, [bookingTypes.bookingTypes]);\r\n\r\n\r\n useEffect(() => {\r\n let startFilterDate = reducerBooking && reducerBooking.booking[0] ? reducerBooking.booking[0].EventStartDateTime : '';\r\n startFilterDate = Moment(startFilterDate).format('YYYY-MM-DD');\r\n\r\n if (reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty('AllowDateTimeChangesWithinArea') && reducerBooking.booking[0].AllowDateTimeChangesWithinArea) {\r\n\r\n let displayareaNo = reducerBooking && reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty('BookingTypeDisplayArea') ? reducerBooking.booking[0].BookingTypeDisplayArea : 0;\r\n\r\n if (displayAreasState.displayAreas !== undefined && displayAreasState.displayAreas.length > 0) {\r\n actionGetExtraItems(dispatch, displayareaNo, true, true, startFilterDate, null, \"SingleDay\");\r\n }\r\n else {\r\n actionGetExtraItems(dispatch, displayareaNo, true, true, startFilterDate, null, \"SingleDay\");\r\n }\r\n }\r\n\r\n }, [displayAreasState.displayAreas]);\r\n\r\n\r\n\r\n const ConstRedirectCHangeDateTime = (booking) => {\r\n\r\n if (booking) {\r\n if (booking.AllowDateTimeChanges && booking.AllowDateTimeChangesWithinArea === false) {\r\n props.history.push({\r\n pathname: '/calendar/' + booking.BookingTypeID\r\n })\r\n }\r\n if (booking.hasOwnProperty('BookingTypeDisplayArea') && booking.AllowDateTimeChanges && booking.AllowDateTimeChangesWithinArea) {\r\n props.history.push({\r\n pathname: '/calendar/Area/' + booking.BookingTypeDisplayArea\r\n })\r\n }\r\n }\r\n }\r\n\r\n const ConstRedirectModifyTickets = () => {\r\n\r\n if (reducerBooking.booking[0] && reducerBooking.booking[0].TourEventID) {\r\n props.history.push({\r\n pathname: '/modifytickets',\r\n toureventID: reducerBooking.booking[0].TourEventID\r\n })\r\n }\r\n }\r\n\r\n const CancelBooking = () => {\r\n\r\n if (totalpayments() === 0) {\r\n //actionShopCartSetRefundType(dispatch, \"CancelBooking\");\r\n applyrefund('CancelBooking');\r\n\r\n }\r\n else if (reducerBooking.booking[0]) {\r\n handleClickOpenPaymentMethod();\r\n }\r\n }\r\n\r\n const constredirecttofindmybpooking = () => {\r\n\r\n actionResetBooking(dispatch);\r\n actionShopCartSetManageMyBooking(dispatch, false, false);\r\n actionShopCartResetMembership(dispatch);\r\n actionShopCartResetIDME(dispatch);\r\n\r\n props.history.push({\r\n pathname: '/findmybooking'\r\n })\r\n\r\n }\r\n\r\n const redirecttofindmybpooking = () => {\r\n\r\n props.history.push({\r\n pathname: '/findmybooking'\r\n })\r\n }\r\n\r\n const reditecttocheckout = () => {\r\n\r\n let BalanceOwe = reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty('BalanceOwing') && reducerBooking.booking[0].BalanceOwing > 0 ? reducerBooking.booking[0].BalanceOwing : 0;\r\n\r\n if (BalanceOwe > 0) {\r\n actionShopCartSetRefundType(dispatch, \"AdditionalPayment\");\r\n\r\n BalanceOwe = addTransFeeWithBalance(BalanceOwe);\r\n\r\n actionShopCartSetMmbAmountToPay(dispatch, BalanceOwe);\r\n\r\n props.history.push({\r\n pathname: '/managecheckout',\r\n refundType: 'AdditionalPayment'\r\n })\r\n }\r\n }\r\n\r\n const addTransFeeWithBalance = (balanceOwe) => {\r\n\r\n if (transactionfee.transactionFee && transactionfee.transactionFee.length > 0) {\r\n if (transactionfee.transactionFee[0].TransactionFeeByDefault) {\r\n let transFee = genfunction.TransactionFeeForPartialPayment(transactionfee.transactionFee[0], balanceOwe, cashlesstotal)\r\n\r\n if (transFee > 0) {\r\n actionShopCartSetEnteredAmountToPay(dispatch, balanceOwe);\r\n return genfunction.Rounded(balanceOwe + transFee);\r\n }\r\n }\r\n }\r\n return balanceOwe;\r\n }\r\n\r\n const totalpaid = () => {\r\n let total = 0;\r\n if (reducerBooking.booking && reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty('BookingPayments') && reducerBooking.booking[0].BookingPayments.length > 0) {\r\n total = reducerBooking.booking[0].BookingPayments.map(({ PaymentAmount }) => PaymentAmount).reduce((sum, i) => sum + i, 0);\r\n }\r\n\r\n return total;\r\n }\r\n\r\n const totalpayments = () => {\r\n let total = 0;\r\n if (reducerBooking.booking && reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty('BookingPayments') && reducerBooking.booking[0].BookingPayments.length > 0) {\r\n total = reducerBooking.booking[0].BookingPayments.length;\r\n }\r\n\r\n return total;\r\n }\r\n\r\n const applyrefund = (type) => {\r\n\r\n actionShopCartSetMmbAmountToPay(dispatch, - totalpaid());\r\n actionShopCartSetRefundType(dispatch, type);\r\n\r\n props.history.push({\r\n pathname: '/managecheckout',\r\n refundType: type\r\n })\r\n }\r\n\r\n const eligibletxtReturnClass = () => {\r\n let eligibleTxt = \"\";\r\n if (reducerBooking.booking[0]) {\r\n if (reducerBooking.booking[0] && reducerBooking.booking[0].AllowRefunds && totalpayments() === 1 && reducerBooking.booking[0].AllowRefundToGiftcardOnly) {\r\n\r\n if (reducerBooking.booking[0].hasOwnProperty('PaymentToken')) {\r\n eligibleTxt = \"You are eligible for a refund of\" + (reducerBooking.booking[0] ? genfunction.ccyFormat(totalpaid()) : 0) + \" to a gift card or card on file \" + (reducerBooking.booking[0].PaymentDescription !== undefined ? reducerBooking.booking[0].PaymentDescription : '');\r\n }\r\n else {\r\n eligibleTxt = \"You are eligible for a refund of\" + (reducerBooking.booking[0] ? genfunction.ccyFormat(totalpaid()) : 0) + \" to a gift card.\";\r\n }\r\n }\r\n else if (reducerBooking.booking[0].AllowRefundToGiftcardOnly && reducerBooking.booking[0].AllowRefunds == false) {\r\n eligibleTxt = \"You are eligible for a refund of\" + (reducerBooking.booking[0] ? genfunction.ccyFormat(totalpaid()) : 0) + \" to a gift card.\";\r\n }\r\n else if (reducerBooking.booking[0] && reducerBooking.booking[0].AllowRefunds && totalpayments() === 1 && reducerBooking.booking[0].hasOwnProperty('PaymentToken')) {\r\n eligibleTxt = \"You are eligible for a refund of \" + (reducerBooking.booking[0] ? genfunction.ccyFormat(totalpaid()) : 0) + \" through card on file \" + (reducerBooking.booking[0].PaymentDescription !== undefined ? reducerBooking.booking[0].PaymentDescription : '');\r\n }\r\n else if (reducerBooking.booking[0] && (reducerBooking.booking[0].AllowRefunds || reducerBooking.booking[0].AllowRefundToGiftcardOnly) && totalpayments() > 1) {\r\n eligibleTxt = \"You are eligible for a refund of\" + (reducerBooking.booking[0] ? genfunction.ccyFormat(totalpaid()) : 0) + \" to a gift card.\";\r\n }\r\n return eligibleTxt;\r\n }\r\n }\r\n\r\n const totalbookingcost = () => {\r\n let total = 0;\r\n if (reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty('BookingProducts') && reducerBooking.booking[0].BookingProducts.length > 0) {\r\n total = reducerBooking.booking[0].BookingProducts.map(({ ProductLinePriceInclTax }) => ProductLinePriceInclTax).reduce((sum, i) => sum + i, 0);\r\n }\r\n\r\n return total;\r\n }\r\n\r\n const CancelGCRefund = () => {\r\n applyrefund('CancelGiftCardRefund');\r\n //actionShopCartSetRefundType(dispatch, \"CancelGiftCardRefund\");\r\n }\r\n\r\n\r\n return (\r\n\r\n //Desktop and Laptop (smDown)\r\n //Tablet (xsDown mdUp)\r\n //Mobile (smUp)\r\n\r\n \r\n 0 ? errorMsg : ''}\r\n open={errorMsg && errorMsg.length > 0 ? true : false} handleclose={errorcancelhandle} />\r\n\r\n \r\n \r\n \r\n \r\n {reducerBooking.booking[0] ? reducerBooking.booking[0].BookingName : ''}\r\n \r\n \r\n\r\n \r\n \r\n {reducerBooking.booking[0] ? reducerBooking.booking[0].BookingName : ''}\r\n \r\n \r\n\r\n \r\n \r\n {reducerBooking.booking[0] ? reducerBooking.booking[0].BookingName : ''}\r\n \r\n \r\n\r\n\r\n \r\n \"Logo\"\r\n\r\n\r\n \r\n {reducerBooking.booking[0] ? reducerBooking.booking[0].NoChangesMessage : ''}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Booking Details\r\n \r\n \r\n\r\n \r\n \r\n Booking Details\r\n \r\n \r\n\r\n \r\n \r\n Booking Details\r\n \r\n \r\n\r\n \r\n \r\n Confirmation Number : {reducerBooking.booking[0] ? reducerBooking.booking[0].BookingID : ''}\r\n \r\n \r\n\r\n \r\n \r\n Confirmation Number : {reducerBooking.booking[0] ? reducerBooking.booking[0].BookingID : ''}\r\n \r\n \r\n \r\n \r\n Confirmation Number : {reducerBooking.booking[0] ? reducerBooking.booking[0].BookingID : ''}\r\n \r\n \r\n\r\n \r\n \r\n Name : {reducerBooking.booking[0] ? reducerBooking.booking[0].CustomerName : ''}\r\n \r\n \r\n\r\n \r\n \r\n Name : {reducerBooking.booking[0] ? reducerBooking.booking[0].CustomerName : ''}\r\n \r\n \r\n\r\n \r\n \r\n Name : {reducerBooking.booking[0] ? reducerBooking.booking[0].CustomerName : ''}\r\n \r\n \r\n\r\n \r\n \r\n Date : {reducerBooking.booking[0] ? Moment(reducerBooking.booking[0].EventStartDateTime).format('MMM D, YYYY') : ''}\r\n \r\n \r\n \r\n \r\n Date : {reducerBooking.booking[0] ? Moment(reducerBooking.booking[0].EventStartDateTime).format('MMM D, YYYY') : ''}\r\n \r\n \r\n\r\n \r\n \r\n Date : {reducerBooking.booking[0] ? Moment(reducerBooking.booking[0].EventStartDateTime).format('MMM D, YYYY') : ''}\r\n \r\n \r\n\r\n\r\n \r\n \r\n Start Time : {reducerBooking.booking[0] ? Moment(reducerBooking.booking[0].EventStartDateTime).format('hh:mm a') : ''}\r\n \r\n \r\n\r\n \r\n \r\n Start Time : {reducerBooking.booking[0] ? Moment(reducerBooking.booking[0].EventStartDateTime).format('hh:mm a') : ''}\r\n \r\n \r\n\r\n \r\n \r\n Start Time : {reducerBooking.booking[0] ? Moment(reducerBooking.booking[0].EventStartDateTime).format('hh:mm a') : ''}\r\n \r\n \r\n\r\n \r\n \r\n End Time : {reducerBooking.booking[0] ? Moment(reducerBooking.booking[0].EventEndDateTime).format('hh:mm a') : ''}\r\n \r\n \r\n\r\n \r\n \r\n End Time : {reducerBooking.booking[0] ? Moment(reducerBooking.booking[0].EventEndDateTime).format('hh:mm a') : ''}\r\n \r\n \r\n\r\n \r\n \r\n End Time : {reducerBooking.booking[0] ? Moment(reducerBooking.booking[0].EventEndDateTime).format('hh:mm a') : ''}\r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n {\"Cancel Booking?\"}\r\n \r\n \r\n\r\n \r\n \r\n Are you sure you want to cancel Booking ID {reducerBooking.booking[0] && reducerBooking.booking[0] !== undefined ? reducerBooking.booking[0].BookingID : ''}?\r\n \r\n \r\n \r\n \r\n Are you sure you want to cancel Booking ID {reducerBooking.booking[0] && reducerBooking.booking[0] !== undefined ? reducerBooking.booking[0].BookingID : ''}?\r\n \r\n \r\n \r\n \r\n Are you sure you want to cancel Booking ID {reducerBooking.booking[0] && reducerBooking.booking[0] !== undefined ? reducerBooking.booking[0].BookingID : ''}?\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n Tickets\r\n \r\n \r\n\r\n \r\n \r\n Tickets\r\n \r\n \r\n\r\n \r\n \r\n Tickets\r\n \r\n \r\n\r\n\r\n \r\n \r\n Tickets\r\n \r\n \r\n\r\n \r\n \r\n Tickets\r\n \r\n \r\n\r\n \r\n \r\n Tickets\r\n \r\n \r\n\r\n {reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty('BookingProducts') && reducerBooking.booking[0].BookingProducts ?\r\n\r\n reducerBooking.booking[0].BookingProducts.filter(x => x.AffectsCapacity).map(prod => (\r\n\r\n <>\r\n\r\n \r\n \r\n {prod.Quantity} x {prod.TourProductName} {\" \"} {genfunction.ccyFormat(prod.ProductLinePriceInclTax)}\r\n \r\n \r\n\r\n \r\n \r\n {prod.Quantity} x {prod.TourProductName} {\" \"} {genfunction.ccyFormat(prod.ProductLinePriceInclTax)}\r\n \r\n \r\n\r\n \r\n \r\n {prod.Quantity} x {prod.TourProductName} {\" \"} {genfunction.ccyFormat(prod.ProductLinePriceInclTax)}\r\n \r\n \r\n \r\n ))\r\n\r\n : ''}\r\n\r\n {reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty('BookingProducts') && reducerBooking.booking[0].BookingProducts.filter(x => x.AffectsCapacity === false).length > 0 ?\r\n <>\r\n \r\n \r\n Add Ons\r\n \r\n \r\n\r\n \r\n \r\n Add Ons\r\n \r\n \r\n\r\n \r\n \r\n Add Ons\r\n \r\n \r\n\r\n \r\n : null}\r\n\r\n {reducerBooking.booking[0] && reducerBooking.booking[0].BookingProducts ?\r\n\r\n reducerBooking.booking[0].BookingProducts.filter(x => x.AffectsCapacity === false).map(prod => (\r\n\r\n <>\r\n\r\n \r\n \r\n {prod.Quantity} x {prod.TourProductName} {\" \"} {genfunction.ccyFormat(prod.ProductLinePriceInclTax)}\r\n \r\n \r\n\r\n \r\n \r\n {prod.Quantity} x {prod.TourProductName} {\" \"} {genfunction.ccyFormat(prod.ProductLinePriceInclTax)}\r\n \r\n \r\n\r\n \r\n \r\n {prod.Quantity} x {prod.TourProductName} {\" \"} {genfunction.ccyFormat(prod.ProductLinePriceInclTax)}\r\n \r\n \r\n\r\n \r\n\r\n ))\r\n\r\n : ''}\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n Payment\r\n \r\n \r\n\r\n \r\n \r\n Payment\r\n \r\n \r\n\r\n \r\n \r\n Payment\r\n \r\n \r\n\r\n \r\n \r\n Status : {reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty('BalanceOwing') && reducerBooking.booking[0].BalanceOwing > 0 ? 'Unpaid' : 'Paid'}\r\n \r\n \r\n\r\n \r\n \r\n Status : {reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty('BalanceOwing') && reducerBooking.booking[0].BalanceOwing > 0 ? 'Unpaid' : 'Paid'}\r\n \r\n \r\n\r\n \r\n \r\n Status : {reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty('BalanceOwing') && reducerBooking.booking[0].BalanceOwing > 0 ? 'Unpaid' : 'Paid'}\r\n \r\n \r\n\r\n \r\n \r\n Total : {genfunction.ccyFormat(totalbookingcost())}\r\n \r\n \r\n\r\n \r\n \r\n Total : {genfunction.ccyFormat(totalbookingcost())}\r\n \r\n \r\n\r\n \r\n \r\n Total : {genfunction.ccyFormat(totalbookingcost())}\r\n \r\n \r\n\r\n\r\n \r\n \r\n Total Paid : {reducerBooking.booking[0] ? genfunction.ccyFormat(totalpaid()) : genfunction.ccyFormat(0)}\r\n \r\n \r\n\r\n \r\n \r\n Total Paid : {reducerBooking.booking[0] ? genfunction.ccyFormat(totalpaid()) : genfunction.ccyFormat(0)}\r\n \r\n \r\n\r\n \r\n \r\n Total Paid : {reducerBooking.booking[0] ? genfunction.ccyFormat(totalpaid()) : genfunction.ccyFormat(0)}\r\n \r\n \r\n\r\n\r\n\r\n {reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty('BalanceOwing') && reducerBooking.booking[0].BalanceOwing > 0 ?\r\n <>\r\n \r\n \r\n Balance Owing : {genfunction.ccyFormat(reducerBooking.booking[0].BalanceOwing)}\r\n \r\n \r\n\r\n \r\n \r\n Balance Owing : {genfunction.ccyFormat(reducerBooking.booking[0].BalanceOwing)}\r\n \r\n \r\n\r\n \r\n \r\n Balance Owing : {genfunction.ccyFormat(reducerBooking.booking[0].BalanceOwing)}\r\n \r\n \r\n \r\n\r\n : null}\r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {\"Refund Transaction\"}\r\n \r\n \r\n \r\n \r\n {eligibletxtReturnClass()}\r\n \r\n \r\n\r\n \r\n \r\n {eligibletxtReturnClass()}\r\n \r\n \r\n\r\n \r\n \r\n {eligibletxtReturnClass()}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n applyrefund('CancelBooking')}\r\n variant=\"contained\" size=\"medium\" color=\"primary\"\r\n className={reducerBooking.booking[0] && (reducerBooking.booking[0].AllowRefunds && totalpayments() === 1 && reducerBooking.booking[0].hasOwnProperty('PaymentToken')) ? '' : classes.hideBtn} >\r\n Refund to Credit Card\r\n \r\n\r\n CancelGCRefund()}\r\n variant=\"contained\" size=\"medium\" color=\"primary\"\r\n className={reducerBooking.booking[0] && reducerBooking.booking[0].AllowRefundToGiftcardOnly ? '' : classes.hideBtn} >\r\n Refund to Gift Card\r\n \r\n \r\n\r\n \r\n \r\n\r\n applyrefund('CancelBooking')}\r\n variant=\"contained\" size=\"small\" color=\"primary\"\r\n className={reducerBooking.booking[0] && (reducerBooking.booking[0].AllowRefunds && totalpayments() === 1 && reducerBooking.booking[0].hasOwnProperty('PaymentToken')) ? '' : classes.hideBtn} >\r\n Refund to Credit Card\r\n \r\n\r\n CancelGCRefund()}\r\n variant=\"contained\" size=\"small\" color=\"primary\"\r\n className={reducerBooking.booking[0] && reducerBooking.booking[0].AllowRefundToGiftcardOnly ? '' : classes.hideBtn} >\r\n Refund to Gift Card\r\n \r\n \r\n\r\n \r\n \r\n\r\n applyrefund('CancelBooking')}\r\n variant=\"contained\" size=\"small\" color=\"primary\"\r\n className={reducerBooking.booking[0] && (reducerBooking.booking[0].AllowRefunds && totalpayments() === 1 && reducerBooking.booking[0].hasOwnProperty('PaymentToken')) ? '' : classes.hideBtn} >\r\n Refund to Credit Card\r\n \r\n\r\n CancelGCRefund()}\r\n variant=\"contained\" size=\"small\" color=\"primary\"\r\n className={reducerBooking.booking[0] && reducerBooking.booking[0].AllowRefundToGiftcardOnly ? '' : classes.hideBtn} >\r\n Refund to Gift Card\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n Please go to find my booking page to Update Booking.\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ManageMyBooking;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport { Typography, Grid, Container, Button, Hidden, IconButton, TextField, Table, TableBody, TableCell, TableRow } from '@material-ui/core';\r\nimport ExtraItemsProducts from '../../components/CalendarControls/ExtraItemsProducts';\r\nimport { genfunction } from '../../helpers';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {\r\n actionShopCartAddEventWithTourHold, actionShopCartSetManageMyBooking,\r\n actionShopCartResetStateWithTourHold, actionShopCartResetStateWithUniqueCouponHold, actionRemoveCoupon,\r\n actionShopCartSetMmbAmountToPay, actionShopCartSetRefundType, actionShopCartSetEnteredAmountToPay\r\n} from 'actions';\r\nimport { actionResetBooking } from 'actions';\r\nimport { actionResetExtraItems } from 'actions';\r\nimport ErrorHandling from '../../components/ErrorHandling/ErrorHandling';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport { actionGetCoupon, actionResetCoupon, actionEndCouponLoading } from 'actions';\r\nimport { actionResetUniqueCouponCardHoldState } from 'actions';\r\nimport { actionResetCouponAlreadyApplied, actionShopCartRemoveCoupons, actionShopCartResetError, actionShopCartResetMembership, actionShopCartResetIDME } from 'actions';\r\nimport { actionDeleteUniqueCoupon } from 'actions';\r\nimport { actionStartAppLoader, actionEndAppLoader } from '../../actions/actionAppLoader';\r\n\r\nconst { DefaultCostRateID, ChangeDateTimeHeading, RefundCreditCardButton, RefundGiftCardButton } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3)\r\n },\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n height: '40px'\r\n },\r\n diplaynone: {\r\n display: \"none\"\r\n },\r\n hideBtn: {\r\n display: 'none'\r\n }\r\n}));\r\n\r\nconst ConfimBookingChanges = (props) => {\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const bookingreducer = useSelector(state => state.reducerBooking);\r\n const newExtraItem = useSelector(state => state.reducerExtraItems.extraItem);\r\n const cartEvents = useSelector(state => state.reducerShopCart.events);\r\n const shopcartreducer = useSelector(state => state.reducerShopCart);\r\n const reducerCoupon = useSelector(state => state.reducerCoupon);\r\n const bookingTypes = useSelector(state => state.reducerBookingTypes.bookingTypes);\r\n let bookingID = bookingreducer && bookingreducer.booking[0] ? bookingreducer.booking[0].BookingTypeID : 0;\r\n const bkngType = bookingTypes && bookingTypes.length > 0 ? bookingTypes.filter(x => x.BookingTypeID == bookingID)[0] : null;\r\n const uniqueCouponHolds = useSelector(state => state.reducerUniqueCouponHolds);\r\n\r\n let amountaftercoupon = genfunction.subproducttotal(cartEvents, null, null, null, null, null, null, [], []);\r\n\r\n const transactionfee = useSelector(state => state.reducerTransactionFee);\r\n const cashless = useSelector(state => state.reducerShopCart.cashless);\r\n let cashlesstotal = cashless.map(({ HoldAmount }) => HoldAmount).reduce((sum, i) => sum + i, 0);\r\n\r\n //States Initializing Start\r\n\r\n const [couponNo, setcouponNo] = useState(\"\");\r\n const [errormsg, seterrormsg] = useState(\"\");\r\n const [open, setOpen] = React.useState(false);\r\n const [isredirectclicked, setisredirectclicked] = useState(false);\r\n\r\n //States Initializing End\r\n\r\n\r\n //Set States Start\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n useEffect(() => {\r\n if (reducerCoupon.loading)\r\n actionStartAppLoader(dispatch)\r\n else\r\n actionEndAppLoader(dispatch);\r\n }, [reducerCoupon.loading]);\r\n\r\n useEffect(() => {\r\n if (reducerCoupon.couponError !== undefined && reducerCoupon.couponError.length > 0) {\r\n seterrormsg(reducerCoupon.couponError);\r\n\r\n if (cartEvents && cartEvents.length > 0) {\r\n actionShopCartResetStateWithTourHold(dispatch, cartEvents);\r\n actionShopCartResetStateWithUniqueCouponHold(dispatch);\r\n }\r\n }\r\n }, [reducerCoupon.couponError]);\r\n\r\n //Set States End\r\n\r\n useEffect(() => {\r\n if (cartEvents && cartEvents.length > 0 && shopcartreducer.tourCoupons && shopcartreducer.tourCoupons.length < 1) {\r\n actionShopCartResetStateWithTourHold(dispatch, cartEvents);\r\n actionShopCartResetStateWithUniqueCouponHold(dispatch);\r\n }\r\n }, [shopcartreducer.tourCoupons])\r\n\r\n\r\n const CouponsTotal = () => {\r\n let total = 0;\r\n\r\n if (cartEvents && cartEvents.length > 0) {\r\n cartEvents.map(x => {\r\n x.CouponItems.map(e => {\r\n total += e.TotalAmount;\r\n });\r\n })\r\n }\r\n\r\n return total;\r\n }\r\n\r\n const AmountToPay = () => {\r\n\r\n let previouspaid = totalpaid();\r\n\r\n if (cartEvents && cartEvents.length > 0) {\r\n return amountaftercoupon - previouspaid;\r\n }\r\n\r\n if (newExtraItem && newExtraItem.TotalAmount) {\r\n return newExtraItem.TotalAmount - previouspaid;\r\n }\r\n return 0;\r\n }\r\n\r\n\r\n const constredirecttofindmybpooking = () => {\r\n\r\n actionResetBooking(dispatch);\r\n actionResetExtraItems(dispatch);\r\n actionShopCartSetManageMyBooking(dispatch, false, false);\r\n actionResetCoupon(dispatch);\r\n actionShopCartRemoveCoupons(dispatch);\r\n actionShopCartResetMembership(dispatch);\r\n actionShopCartResetIDME(dispatch);\r\n\r\n if ((cartEvents && cartEvents.length > 0) || (shopcartreducer.tourCoupons && shopcartreducer.tourCoupons.length > 0)) {\r\n actionShopCartResetStateWithTourHold(dispatch, cartEvents);\r\n actionShopCartResetStateWithUniqueCouponHold(dispatch);\r\n }\r\n\r\n props.history.push({\r\n pathname: '/findmybooking'\r\n })\r\n }\r\n\r\n\r\n useEffect(() => {\r\n let BalanceOwe = AmountToPay();\r\n\r\n if (isredirectclicked && shopcartreducer.error.length < 1 && shopcartreducer.events && shopcartreducer.events.length > 0 && BalanceOwe > -1) {\r\n BalanceOwe = addTransFeeWithBalance(BalanceOwe);\r\n\r\n actionShopCartSetMmbAmountToPay(dispatch, BalanceOwe);\r\n setisredirectclicked(false);\r\n\r\n props.history.push({\r\n pathname: '/managecheckout',\r\n refundType: ''\r\n })\r\n }\r\n if (isredirectclicked && shopcartreducer.error.length > 0) {\r\n seterrormsg(shopcartreducer.error);\r\n setisredirectclicked(false);\r\n }\r\n }, [shopcartreducer, (isredirectclicked === true)]);\r\n\r\n const addTransFeeWithBalance = (balanceOwe) => {\r\n\r\n if (transactionfee.transactionFee && transactionfee.transactionFee.length > 0) {\r\n if (transactionfee.transactionFee[0].TransactionFeeByDefault) {\r\n let transFee = genfunction.TransactionFeeForPartialPayment(transactionfee.transactionFee[0], balanceOwe, cashlesstotal)\r\n\r\n if (transFee > 0) {\r\n actionShopCartSetEnteredAmountToPay(dispatch, balanceOwe);\r\n return genfunction.Rounded(balanceOwe + transFee);\r\n }\r\n }\r\n }\r\n return balanceOwe;\r\n }\r\n\r\n const addeventstotourholdaction = () => {\r\n let filterdata = { ...newExtraItem };\r\n filterdata.TourProducts = filterdata.TourProducts.filter(product => product.Quantity > 0);\r\n let cartdata = [...cartEvents];\r\n\r\n if (filterdata && filterdata.hasOwnProperty('BookingTypeID')) {\r\n let usealternamteMerchant = false;\r\n if (bkngType && bkngType.hasOwnProperty('UseAlternateMerchantOnline')) {\r\n usealternamteMerchant = bkngType.UseAlternateMerchantOnline;\r\n }\r\n\r\n filterdata.UseAlternateMerchantOnline = usealternamteMerchant;\r\n }\r\n\r\n actionShopCartAddEventWithTourHold(dispatch, filterdata, cartdata);\r\n }\r\n\r\n const constredirecttomanagecheckout = () => {\r\n\r\n if (ValidateQuanity()) {\r\n if (AmountToPay() >= 0 && newExtraItem && newExtraItem.hasOwnProperty('TotalAmount')) {\r\n\r\n if (shopcartreducer.tourCoupons && shopcartreducer.tourCoupons.length < 1) {\r\n addeventstotourholdaction();\r\n }\r\n\r\n setisredirectclicked(true);\r\n }\r\n else {\r\n handleClickOpen();\r\n }\r\n }\r\n }\r\n\r\n const ValidateQuanity = () => {\r\n let MinTicket = bkngType.MinimumTickets\r\n let MaxTicket = bkngType.MaximumTickets;\r\n\r\n let CartQty = 0;\r\n let NewQty = 0;\r\n let TotalTicketCount = 0;\r\n if (cartEvents && cartEvents.length > 0) {\r\n\r\n let cartTourEvent = cartEvents.find(x => x.TourEventID == newExtraItem.TourEventID);\r\n if (cartTourEvent && cartTourEvent.TourProducts.length > 0) {\r\n CartQty = cartTourEvent.TourProducts.filter(p => p.AffectsCapacity).reduce((a, b) => {\r\n let aqty = a.Quantity === undefined ? 0 : a.Quantity;\r\n let bqty = b.Quantity === undefined ? 0 : b.Quantity;\r\n let newobj = { Quantity: aqty + bqty }\r\n return newobj;\r\n }).Quantity;\r\n }\r\n }\r\n\r\n NewQty = newExtraItem.TourProducts.filter(p => p.AffectsCapacity).reduce((a, b) => {\r\n let aqty = a.Quantity === undefined ? 0 : a.Quantity;\r\n let bqty = b.Quantity === undefined ? 0 : b.Quantity;\r\n let newobj = { Quantity: aqty + bqty }\r\n return newobj;\r\n }).Quantity;\r\n\r\n TotalTicketCount = CartQty + NewQty;\r\n\r\n if (newExtraItem.SeatsAvailable == 0 || newExtraItem.BookNowOption != \"Book Now\") {\r\n seterrormsg(\"Tickets not longer available, please choose another time\");\r\n return false;\r\n }\r\n else if (NewQty > newExtraItem.SeatsAvailable) {\r\n seterrormsg(\"Maximum of \" + newExtraItem.SeatsAvailable + \" tickets available\");\r\n return false;\r\n }\r\n else if (TotalTicketCount < MinTicket) {\r\n seterrormsg(\"Minimum tickets per order is \" + MinTicket)\r\n return false;\r\n }\r\n else if (TotalTicketCount > MaxTicket) {\r\n seterrormsg(\"Maximum of \" + MaxTicket + \" tickets allowed\")\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n const applyrefund = (type) => {\r\n\r\n if (shopcartreducer.tourCoupons && shopcartreducer.tourCoupons.length < 1) {\r\n addeventstotourholdaction();\r\n }\r\n\r\n actionShopCartSetMmbAmountToPay(dispatch, AmountToPay());\r\n actionShopCartSetRefundType(dispatch, type);\r\n\r\n props.history.push({\r\n pathname: '/managecheckout',\r\n refundType: type\r\n })\r\n }\r\n\r\n const totalpaid = () => {\r\n let total = 0;\r\n if (bookingreducer.booking && bookingreducer.booking[0] && bookingreducer.booking[0].BookingPayments && bookingreducer.booking[0].BookingPayments.length > 0) {\r\n total = bookingreducer.booking[0].BookingPayments.map(({ PaymentAmount }) => PaymentAmount).reduce((sum, i) => sum + i, 0);\r\n }\r\n\r\n return total;\r\n }\r\n\r\n\r\n const CheckCouponNo = (couponCode) => {\r\n if (couponCode == '') {\r\n seterrormsg('Please enter Coupon number.')\r\n }\r\n else {\r\n if (couponCode.length > 0) {\r\n\r\n if (!CheckUniqueCouponAlreadyApplied(couponCode)) {\r\n if (newExtraItem && newExtraItem.TotalAmount) {\r\n addeventstotourholdaction();\r\n setcouponNo(couponCode);\r\n }\r\n }\r\n else {\r\n seterrormsg(\"Unique Coupon already applied, please remove existing coupon and try again.\");\r\n setcouponNo('');\r\n }\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n\r\n if (cartEvents && cartEvents.length > 0 && couponNo.length > 0) {\r\n actionGetCoupon(dispatch, couponNo);\r\n setcouponNo('');\r\n }\r\n }, [cartEvents]);\r\n\r\n const errorcancelhandle = () => {\r\n\r\n // Reset Coupons\r\n actionResetUniqueCouponCardHoldState(dispatch);\r\n actionResetCouponAlreadyApplied(dispatch);\r\n actionResetCoupon(dispatch);\r\n actionShopCartResetError(dispatch);\r\n setcouponNo('');\r\n seterrormsg('');\r\n setisredirectclicked(false);\r\n }\r\n\r\n const CheckUniqueCouponAlreadyApplied = (couponCode) => {\r\n\r\n let exist = false;\r\n if (cartEvents && cartEvents.length > 0) {\r\n\r\n cartEvents.map(e => {\r\n\r\n if (e.CouponItems.filter(x => x.UniqueCouponCode == couponCode && x.isUniqueCoupon).length > 0) {\r\n exist = true;\r\n }\r\n });\r\n }\r\n\r\n return exist;\r\n }\r\n\r\n useEffect(() => {\r\n if (uniqueCouponHolds.UniqueCouponError && uniqueCouponHolds.UniqueCouponError.length > 0) {\r\n seterrormsg(uniqueCouponHolds.UniqueCouponError);\r\n actionEndCouponLoading(dispatch);\r\n }\r\n }, [uniqueCouponHolds.UniqueCouponError]);\r\n\r\n const openerrorpopup = () => {\r\n return (errormsg != \"\")\r\n }\r\n\r\n function ShowCurrentBookingStartAndEndTime() {\r\n let time = \"\";\r\n\r\n if (bookingreducer.booking && bookingreducer.booking[0]) {\r\n\r\n time += genfunction.GetEventDateReceiptFormat(bookingreducer.booking[0].EventStartDateTime);\r\n time += ' - ' + genfunction.AppendEndTime(bookingreducer.booking[0].EventEndDateTime);\r\n }\r\n\r\n return time;\r\n }\r\n\r\n function ShowStartAndEndTime(bkngType, newExtraItem) {\r\n let time = \"\";\r\n\r\n if (bkngType && newExtraItem) {\r\n\r\n if (bkngType.ShowStartTime) {\r\n time += genfunction.GetEventDateReceiptFormat(newExtraItem.EventStartDateTime);\r\n }\r\n\r\n if (bkngType.ShowEndTime && !bkngType.ShowStartTime) {\r\n time += genfunction.GetEventDateReceiptFormat(newExtraItem.EventStartDateTime);\r\n }\r\n\r\n if (bkngType.ShowEndTime && bkngType.ShowStartTime) {\r\n time += ' - ' + genfunction.AppendEndTime(newExtraItem.EventEndDateTime);\r\n }\r\n\r\n if (!bkngType.ShowStartTime && !bkngType.ShowEndTime) {\r\n time += genfunction.GetEventDateReceiptFormatwithoutTime(newExtraItem.EventStartDateTime);\r\n }\r\n }\r\n\r\n return time;\r\n }\r\n\r\n const removeclickhandler = (eventid, productid, couponID, couponRefHold) => {\r\n if (couponRefHold !== null) {\r\n if (DeleteCouponsHolds(couponID)) {\r\n actionDeleteUniqueCoupon(dispatch, couponRefHold);\r\n }\r\n }\r\n\r\n actionRemoveCoupon(dispatch, eventid, productid);\r\n }\r\n\r\n const DeleteCouponsHolds = (CouponID) => {\r\n let removeUniqueCouponHolds = false;\r\n if (cartEvents) {\r\n\r\n cartEvents.map(x => {\r\n if (x.CouponItems.filter(x => x.CouponID == CouponID && x.isUniqueCoupon).length < 2) {\r\n removeUniqueCouponHolds = true;\r\n }\r\n })\r\n }\r\n\r\n return removeUniqueCouponHolds;\r\n }\r\n\r\n const redirecttofindmybpooking = () => {\r\n\r\n props.history.push({\r\n pathname: '/findmybooking'\r\n })\r\n }\r\n\r\n return (\r\n\r\n //Desktop and Laptop (smDown)\r\n //Tablet (xsDown mdUp)\r\n //Mobile (smUp)\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {ChangeDateTimeHeading}\r\n \r\n \r\n\r\n \r\n \r\n {ChangeDateTimeHeading}\r\n \r\n \r\n\r\n \r\n \r\n {ChangeDateTimeHeading}\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n Original Booking : {ShowCurrentBookingStartAndEndTime()}\r\n \r\n \r\n\r\n \r\n \r\n Original Booking : {ShowCurrentBookingStartAndEndTime()}\r\n \r\n \r\n\r\n \r\n \r\n Original Booking : {ShowCurrentBookingStartAndEndTime()}\r\n \r\n \r\n\r\n \r\n \r\n For reference, here are the original tickets in your order.\r\n \r\n \r\n\r\n \r\n \r\n For reference, here are the original tickets in your order.\r\n \r\n \r\n\r\n \r\n \r\n For reference, here are the original tickets in your order.\r\n \r\n \r\n\r\n\r\n \r\n \r\n These will all be replaced with tickets selected below.\r\n \r\n \r\n\r\n \r\n \r\n These will all be replaced with tickets selected below.\r\n \r\n \r\n\r\n \r\n \r\n These will all be replaced with tickets selected below.\r\n \r\n \r\n\r\n\r\n\r\n {bookingreducer.booking[0] && bookingreducer.booking[0].hasOwnProperty('BookingProducts') && bookingreducer.booking[0].BookingProducts.length > 0 ?\r\n\r\n bookingreducer.booking[0].BookingProducts.map((prod, i) => {\r\n return prod.Quantity > 0 ?\r\n \r\n \r\n\r\n \r\n \r\n {prod.Quantity} x {prod.TourProductName}\r\n \r\n \r\n\r\n \r\n \r\n\r\n {prod.Quantity} x {prod.TourProductName}\r\n \r\n \r\n\r\n \r\n \r\n\r\n {prod.Quantity} x {prod.TourProductName}\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n {genfunction.ccyFormat(prod.ProductLinePriceInclTax)}\r\n \r\n \r\n\r\n \r\n \r\n\r\n {genfunction.ccyFormat(prod.ProductLinePriceInclTax)}\r\n \r\n \r\n\r\n \r\n \r\n\r\n {genfunction.ccyFormat(prod.ProductLinePriceInclTax)}\r\n \r\n \r\n\r\n \r\n : null\r\n }) : null}\r\n \r\n\r\n \r\n \r\n \r\n New Booking : {ShowStartAndEndTime(bkngType, newExtraItem)}\r\n \r\n \r\n\r\n \r\n \r\n New Booking : {ShowStartAndEndTime(bkngType, newExtraItem)}\r\n \r\n \r\n\r\n \r\n \r\n New Booking : {ShowStartAndEndTime(bkngType, newExtraItem)}\r\n \r\n \r\n\r\n \r\n \r\n Select the tickets and add ons for your new date / time.\r\n \r\n \r\n\r\n \r\n \r\n Select the tickets and add ons for your new date / time.\r\n \r\n \r\n\r\n \r\n \r\n Select the tickets and add ons for your new date / time.\r\n \r\n \r\n\r\n\r\n \r\n \r\n These tickets will replace the tickets from your original order.\r\n \r\n \r\n\r\n \r\n \r\n These tickets will replace the tickets from your original order.\r\n \r\n \r\n\r\n \r\n \r\n These tickets will replace the tickets from your original order.\r\n \r\n \r\n\r\n \r\n 0 ? false : true}\r\n hidetopheading={true} isMMB={true}\r\n tourEventId={props.location.eventID} ismembershipapplied={props.location.ismembershipapplied ? props.location.ismembershipapplied : false}\r\n membercostrate={props.location.membercostrate ? props.location.membercostrate : DefaultCostRateID}\r\n bookingtypeID={props.location.bookingtypeID !== undefined && props.location.bookingtypeID > 0 ? props.location.bookingtypeID : bookingID} />\r\n \r\n\r\n \r\n\r\n \r\n {\r\n setcouponNo(event.target.value);\r\n }}\r\n />\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n Booking Summary\r\n \r\n \r\n\r\n \r\n \r\n Booking Summary\r\n \r\n \r\n\r\n \r\n \r\n Booking Summary\r\n \r\n \r\n\r\n\r\n \r\n \r\n Original Cost : {bookingreducer.booking[0] && bookingreducer.booking[0].BookingPayments ? genfunction.ccyFormat(bookingreducer.booking[0].BookingPayments[0].PaymentAmount) : genfunction.ccyFormat(0)}\r\n \r\n \r\n\r\n \r\n \r\n Original Cost : {bookingreducer.booking[0] && bookingreducer.booking[0].BookingPayments ? genfunction.ccyFormat(bookingreducer.booking[0].BookingPayments[0].PaymentAmount) : genfunction.ccyFormat(0)}\r\n \r\n \r\n\r\n \r\n \r\n Original Cost : {bookingreducer.booking[0] && bookingreducer.booking[0].BookingPayments ? genfunction.ccyFormat(bookingreducer.booking[0].BookingPayments[0].PaymentAmount) : genfunction.ccyFormat(0)}\r\n \r\n \r\n\r\n \r\n \r\n New Cost : {genfunction.ccyFormat(newExtraItem.TotalAmount ? newExtraItem.TotalAmount : 0)}\r\n \r\n \r\n\r\n \r\n \r\n New Cost : {genfunction.ccyFormat(newExtraItem.TotalAmount ? newExtraItem.TotalAmount : 0)}\r\n \r\n \r\n\r\n \r\n \r\n New Cost : {genfunction.ccyFormat(newExtraItem.TotalAmount ? newExtraItem.TotalAmount : 0)}\r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n Amount to Pay\r\n \r\n \r\n\r\n \r\n \r\n Amount to Pay\r\n \r\n \r\n\r\n \r\n \r\n Amount to Pay\r\n \r\n \r\n\r\n \r\n \r\n New Cost :{genfunction.ccyFormat(newExtraItem.TotalAmount ? newExtraItem.TotalAmount : 0)}\r\n \r\n \r\n\r\n \r\n \r\n New Cost :{genfunction.ccyFormat(newExtraItem.TotalAmount ? newExtraItem.TotalAmount : 0)}\r\n \r\n \r\n\r\n \r\n \r\n New Cost :{genfunction.ccyFormat(newExtraItem.TotalAmount ? newExtraItem.TotalAmount : 0)}\r\n \r\n \r\n\r\n \r\n \r\n Coupon Applied : {genfunction.ccyFormat(CouponsTotal())}\r\n \r\n \r\n\r\n \r\n \r\n Coupon Applied : {genfunction.ccyFormat(CouponsTotal())}\r\n \r\n \r\n\r\n \r\n \r\n Coupon Applied : {genfunction.ccyFormat(CouponsTotal())}\r\n \r\n \r\n\r\n\r\n 0 ? \"\" : classes.diplaynone}>\r\n \r\n \r\n {cartEvents !== undefined && cartEvents.length > 0 ?\r\n cartEvents.map(event =>\r\n event.CouponItems.map(e =>\r\n \r\n \r\n removeclickhandler(e.TourEventID, e.TourProductID, e.CouponID, e.CouponHoldRef)}>\r\n \r\n {' ' + e.ApplyDiscountTourProductName + ' (' + e.UniqueCouponCode + ')'}\r\n \r\n -{genfunction.ccyFormat(e.TotalAmount)}\r\n \r\n )) : null\r\n }\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n Previous Payment : {bookingreducer.booking[0] ? genfunction.ccyFormat(totalpaid()) : 0}\r\n \r\n \r\n\r\n \r\n \r\n Previous Payment : {bookingreducer.booking[0] ? genfunction.ccyFormat(totalpaid()) : 0}\r\n \r\n \r\n\r\n \r\n \r\n Previous Payment : {bookingreducer.booking[0] ? genfunction.ccyFormat(totalpaid()) : 0}\r\n \r\n \r\n\r\n \r\n \r\n Amount to Pay : {genfunction.ccyFormat(AmountToPay())}\r\n \r\n \r\n\r\n \r\n \r\n Amount to Pay : {genfunction.ccyFormat(AmountToPay())}\r\n \r\n \r\n\r\n \r\n \r\n Amount to Pay : {genfunction.ccyFormat(AmountToPay())}\r\n \r\n \r\n
\r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n
\r\n\r\n \r\n {\"Refund Transaction\"}\r\n \r\n \r\n\r\n {/* \r\n \r\n \r\n Your new booking total is {genfunction.ccyFormat(AmountToPay())} and your total paid is {bookingreducer.booking[0] ? genfunction.ccyFormat(totalpaid()) : 0}.\r\n \r\n \r\n\r\n \r\n \r\n Your new booking total is {genfunction.ccyFormat(AmountToPay())} and your total paid is {bookingreducer.booking[0] ? genfunction.ccyFormat(totalpaid()) : 0}.\r\n \r\n \r\n\r\n \r\n \r\n Your new booking total is {genfunction.ccyFormat(AmountToPay())} and your total paid is {bookingreducer.booking[0] ? genfunction.ccyFormat(totalpaid()) : 0}.\r\n \r\n */}\r\n\r\n\r\n \r\n \r\n {\"Your previous payment:\" + genfunction.ccyFormat(totalpaid())}\r\n \r\n \r\n {\"Now we owe you: \" + genfunction.ccyFormat(Math.abs(AmountToPay()))}\r\n \r\n \r\n\r\n \r\n \r\n {\"Your previous payment:\" + genfunction.ccyFormat(totalpaid())}\r\n \r\n \r\n {\"Now we owe you: \" + genfunction.ccyFormat(Math.abs(AmountToPay()))}\r\n \r\n \r\n\r\n \r\n \r\n {\"Your previous payment:\" + genfunction.ccyFormat(totalpaid())}\r\n \r\n \r\n {\"Now we owe you: \" + genfunction.ccyFormat(Math.abs(AmountToPay()))}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n applyrefund('GiftCardRefund')}\r\n variant=\"contained\" size=\"medium\" color=\"primary\"\r\n className={bookingreducer.booking[0] && (bookingreducer.booking[0].AllowRefunds || bookingreducer.booking[0].AllowRefundToGiftcardOnly) ? '' : classes.hideBtn} >\r\n {RefundGiftCardButton}\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n applyrefund('GiftCardRefund')}\r\n variant=\"contained\" size=\"small\" color=\"primary\"\r\n className={bookingreducer.booking[0] && (bookingreducer.booking[0].AllowRefunds || bookingreducer.booking[0].AllowRefundToGiftcardOnly) ? '' : classes.hideBtn} >\r\n {RefundGiftCardButton}\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n applyrefund('GiftCardRefund')}\r\n variant=\"contained\" size=\"small\" color=\"primary\"\r\n className={bookingreducer.booking[0] && (bookingreducer.booking[0].AllowRefunds || bookingreducer.booking[0].AllowRefundToGiftcardOnly) ? '' : classes.hideBtn} >\r\n {RefundGiftCardButton}\r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n Please go to find my booking page to Update Booking.\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ConfimBookingChanges;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n Button, Checkbox, Card, CardContent, FormControl, FormControlLabel, Hidden, FormHelperText, Grid,\r\n Link, Radio, RadioGroup, Typography, TextField\r\n} from '@material-ui/core';\r\nimport { genfunction } from '../../../helpers';\r\nimport { actionPostPaymentTransaction, actionResetPaymentTransaction, actionShopCartShowTransFee } from 'actions';\r\nimport CryptoAES from 'crypto-js/aes';\r\nimport CryptoENC from 'crypto-js/enc-utf8';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport DialogeBox from '../../../components/DialogeBox/DialogeBox';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport MaskedInput from 'react-text-mask';\r\nimport { actionResetFormErrorState, actionSetFormErrorState, actionSetFieldValueState } from 'actions';\r\nimport ErrorHandling from '../../../components/ErrorHandling/ErrorHandling';\r\nimport { actionGetCustomer, actionResetCustomer } from 'actions';\r\nimport { actionShopCartSetRefundType, actionShopCartSetAdditionalBookingAmount, actionShopCartSetMmbAmountToPay } from 'actions';\r\nimport { actionGetCountryAndState } from 'actions';\r\nimport { useGoogleReCaptcha } from 'react-google-recaptcha-v3';\r\nimport Payments from '../../../components/Payments/Payments';\r\nimport { Autocomplete } from '@material-ui/lab';\r\nimport { createFilterOptions } from '@material-ui/lab/Autocomplete';\r\nimport MultiPayments from '../../Checkout/components/MultiPayments';\r\nimport { useDebouncedCallback } from 'use-debounce';\r\n\r\nconst { EnableAlternateMerchantOnline, EmailRegex, StreetAddressTypeID, spreedlyEnvironment, RecaptchaV3Client, TermsnConditionCheckBoxText,\r\n TermsnConditionCheckMsg, UseStreetAddressForAVS, ShowFullAddressOnCheckout, PaymentMethodType, PhoneNumberMandatory, ApplyTransactionFee } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3)\r\n }, primarycolor: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n height: '40px'\r\n },\r\n box100per: {\r\n width: \"100%\"\r\n },\r\n box95per: {\r\n width: \"97%\"\r\n },\r\n iconforiframe: {\r\n marginTop: \"18px\"\r\n },\r\n iframebox: {\r\n marginTop: \"-13px\",\r\n height: \"31px\",\r\n },\r\n visible: {\r\n visibility: \"visible\"\r\n },\r\n hideVisiblity: {\r\n display: \"none\"\r\n },\r\n cancelbtnconfig:\r\n {\r\n marginTop: \"-40px !important\"\r\n },\r\n cancelbtnconfig10per:\r\n {\r\n marginTop: \"10px !important\"\r\n },\r\n clearButton: {\r\n \"& .MuiButtonBase-root.MuiAutocomplete-clearIndicator\": {\r\n color: theme.palette.primary.main\r\n }\r\n }\r\n}));\r\n\r\nfunction TextMaskCustom(props) {\r\n const { inputRef, onChange, value, ...other } = props;\r\n let pnMask = ['(', /[1-9]/, /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/];\r\n return (\r\n {\r\n inputRef(ref ? ref.inputElement : null);\r\n }}\r\n onChange={onChange}\r\n mask={pnMask}\r\n />\r\n );\r\n}\r\n\r\nconst CreditCardPayment = (props) => {\r\n\r\n const paymentsRef = useRef();\r\n var requiredFields = {};\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const { executeRecaptcha } = useGoogleReCaptcha();\r\n\r\n const events = useSelector(state => state.reducerShopCart.events);\r\n const errorstate = useSelector(state => state.reducerFormError.errorstate);\r\n const formfields = useSelector(state => state.reducerFormError.formfields);\r\n const transactionfee = useSelector(state => state.reducerTransactionFee);\r\n const cashless = useSelector(state => state.reducerShopCart.cashless);\r\n let cashlesstotal = cashless.map(({ HoldAmount }) => HoldAmount).reduce((sum, i) => sum + i, 0);\r\n const customer = useSelector(state => state.reducerCustomer);\r\n const managebkngTicketsModify = useSelector(state => state.reducerShopCart.managebookingticketsmodification);\r\n let shopcartamounttoPay = useSelector(state => state.reducerShopCart.mmbAmountToPay);\r\n let refundType = useSelector(state => state.reducerShopCart.refundType);\r\n const countryandstates = useSelector(state => state.reducerCountryAndState.countryandstate);\r\n const donation = useSelector(state => state.reducerShopCart.donation);\r\n const showTransFee = useSelector(state => state.reducerShopCart.showTransactionFee);\r\n const membershipPackages = useSelector(state => state.reducerShopCart.MembershipPackages);\r\n const gatickets = useSelector(state => state.reducerShopCart.GATickets);\r\n const giftcards = useSelector(state => state.reducerGiftCards);\r\n const orderProducts = useSelector(state => state.reducerShopCart.orderProducts);\r\n const donationProducts = useSelector(state => state.reducerShopCart.donationProducts);\r\n let enteredAmountToPay = useSelector(state => state.reducerShopCart.enteredAmountToPay);\r\n\r\n const environmentKey = CryptoAES.decrypt(spreedlyEnvironment, '1271').toString(CryptoENC);\r\n const [CreditCardValue, setCreditCardValue] = React.useState(''); //NewCardDetails\r\n const [opentnc, setopentnc] = useState(false);\r\n const [tncchecked, settncChecked] = React.useState(false);\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n\r\n const paymenttranstate = useSelector(state => {\r\n return (\r\n {\r\n loading: state.reducerPaymentTransaction.loading,\r\n haspaid: state.reducerPaymentTransaction.Payment.hasOwnProperty('Products'),\r\n paymentinfo: state.reducerPaymentTransaction.Payment,\r\n errormsg: state.reducerPaymentTransaction.PaymentInfoError\r\n }\r\n )\r\n });\r\n\r\n let inputreferences = [];\r\n\r\n inputreferences.first_name = React.useRef();\r\n inputreferences.last_name = React.useRef();\r\n inputreferences.email = React.useRef();\r\n inputreferences.phone_number = React.useRef();\r\n inputreferences.address1 = React.useRef();\r\n inputreferences.country = React.useRef();\r\n inputreferences.state = React.useRef();\r\n inputreferences.city = React.useRef();\r\n inputreferences.zip = React.useRef();\r\n inputreferences.memberno = React.useRef();\r\n inputreferences.shipping_phone_number = React.useRef();\r\n inputreferences.shipping_address1 = React.useRef();\r\n inputreferences.shipping_city = React.useRef();\r\n inputreferences.shipping_state = React.useRef();\r\n inputreferences.shipping_zip = React.useRef();\r\n inputreferences.shipping_country = React.useRef();\r\n\r\n const openerrorpopup = () => {\r\n return (paymenttranstate.errormsg != \"\" || errorMsg != \"\")\r\n }\r\n\r\n const filterOptions = createFilterOptions({\r\n stringify: (option) => option.Country + '' + option.State,\r\n });\r\n\r\n useEffect(() => {\r\n\r\n if (shopcartamounttoPay > 0) {\r\n if (transactionfee.transactionFee && transactionfee.transactionFee.length > 0) {\r\n if (transactionfee.transactionFee[0].TransactionFeeByDefault || (transactionfee.transactionFee[0].TransactionFeeByDefault === false && transactionfee.transactionFee[0].TransactionFeeOptional === false)) {\r\n actionShopCartShowTransFee(dispatch, true);\r\n }\r\n }\r\n }\r\n }, [transactionfee])\r\n\r\n const transFeeCheckHandler = (event) => {\r\n\r\n let transFee;\r\n\r\n if (refundType === \"AdditionalPayment\" || (refundType === \"\" && shopcartamounttoPay > 0)) {\r\n transFee = genfunction.TransactionFeeForPartialPayment(transactionfee.transactionFee[0], enteredAmountToPay, cashlesstotal)\r\n }\r\n else {\r\n transFee = genfunction.TransactionFee(events, donation, transactionfee.transactionFee[0], cashless, membershipPackages, gatickets, giftcards.giftcards, orderProducts, donationProducts);\r\n }\r\n\r\n let amoutToPay = event.target.checked ? genfunction.Rounded(shopcartamounttoPay + transFee) : genfunction.Rounded(shopcartamounttoPay - transFee);\r\n actionShopCartShowTransFee(dispatch, event.target.checked);\r\n actionShopCartSetMmbAmountToPay(dispatch, amoutToPay);\r\n };\r\n\r\n useEffect(() => {\r\n\r\n if (props.booking && props.booking.hasOwnProperty('CustomerID') && props.booking.CustomerID > 0) {\r\n\r\n let cstID = props.booking.CustomerID;\r\n if (props.booking.hasOwnProperty('BookingContactID') && props.booking.BookingContactID) {\r\n cstID = props.booking.BookingContactID;\r\n }\r\n\r\n actionGetCustomer(dispatch, cstID, props.booking.BookingEmailAddress);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.amounttopay <= 0 || shopcartamounttoPay <= 0) {\r\n setCreditCardValue(\"\");\r\n }\r\n }, [cashless])\r\n\r\n\r\n useEffect(() => {\r\n if (customer.customerError && customer.customerError.length > 0) {\r\n seterrorMsg(customer.customerError);\r\n }\r\n }, [customer]);\r\n\r\n useEffect(() => {\r\n\r\n if (shopcartamounttoPay == 0 && customer.customer && customer.customer.length > 0) {\r\n\r\n if (RecaptchaV3Client && RecaptchaV3Client != '') {\r\n executeRecaptcha(\"checkout\").then(recaptchaToken => {\r\n paymentTokenHandler({ token: \"\", cardtype: \"\" }, customer.customer && customer.customer.length > 0 ? customer.customer : \"\", recaptchaToken);\r\n }).catch(error => {\r\n seterrorMsg(\"Recaptcha token not fetched\")\r\n })\r\n }\r\n else {\r\n paymentTokenHandler({ token: \"\", cardtype: \"\" }, customer.customer && customer.customer.length > 0 ? customer.customer : \"\", \"\");\r\n }\r\n }\r\n }, [customer]);\r\n\r\n useEffect(() => {\r\n\r\n if (shopcartamounttoPay < 0 && (refundType == \"GiftCardRefund\" || refundType == \"CancelGiftCardRefund\") && customer.customer && customer.customer.length > 0) {\r\n actionShopCartSetRefundType(dispatch, refundType)\r\n\r\n if (RecaptchaV3Client && RecaptchaV3Client != '') {\r\n executeRecaptcha(\"checkout\").then(recaptchaToken => {\r\n paymentTokenHandler({ token: \"\", cardtype: \"\" }, customer.customer && customer.customer.length > 0 ? customer.customer : \"\", recaptchaToken);\r\n }).catch(error => {\r\n seterrorMsg(\"Recaptcha token not fetched\")\r\n })\r\n }\r\n else {\r\n paymentTokenHandler({ token: \"\", cardtype: \"\" }, customer.customer && customer.customer.length > 0 ? customer.customer : \"\", \"\");\r\n }\r\n }\r\n }, [customer]);\r\n\r\n useEffect(() => {\r\n\r\n if ((refundType == \"CancelBooking\" || refundType == \"CreditCardRefund\") && customer.customer && customer.customer.length > 0) {\r\n\r\n let cardonfileToken = \"\";\r\n let cardType = \"\";\r\n let cardMaskedNum = \"\";\r\n\r\n\r\n if (props.booking.hasOwnProperty('PaymentToken') && props.booking.PaymentToken.length > 0) {\r\n cardonfileToken = PaymentMethodType === \"Spreedly\" ?\r\n props.booking.PaymentToken.substring(9, props.booking.PaymentToken.length) :\r\n props.booking.PaymentToken.substring(props.booking.PaymentToken.length - 10);\r\n }\r\n\r\n if (props.booking.hasOwnProperty('PaymentDescription') && props.booking.PaymentDescription.length > 0) {\r\n cardType = PaymentMethodType === \"Spreedly\" ?\r\n props.booking.PaymentDescription.substr(0, props.booking.PaymentDescription.indexOf('-')) :\r\n props.booking.PaymentDescription.substring(0, props.booking.PaymentDescription.indexOf('-') - 1).trim();\r\n\r\n cardMaskedNum = props.booking.PaymentDescription.substring(props.booking.PaymentDescription.indexOf('-') + 1, props.booking.PaymentDescription.length).trim();\r\n }\r\n\r\n if (cardonfileToken.length > 0) {\r\n actionShopCartSetRefundType(dispatch, refundType);\r\n\r\n if (RecaptchaV3Client && RecaptchaV3Client != '') {\r\n executeRecaptcha(\"checkout\").then(recaptchaToken => {\r\n paymentTokenHandler({ token: cardonfileToken, cardtype: cardType, cardnumber: cardMaskedNum }, customer.customer && customer.customer.length > 0 ? customer.customer : \"\", recaptchaToken);\r\n\r\n }).catch(error => {\r\n seterrorMsg(\"Recaptcha token not fetched\")\r\n })\r\n }\r\n else {\r\n paymentTokenHandler({ token: cardonfileToken, cardtype: cardType, cardnumber: cardMaskedNum }, customer.customer && customer.customer.length > 0 ? customer.customer : \"\", \"\");\r\n }\r\n\r\n }\r\n }\r\n }, [customer]);\r\n\r\n const GetTransOptionalText = () => {\r\n let optionalTxt = '';\r\n if (transactionfee.transactionFee && transactionfee.transactionFee.length > 0) {\r\n optionalTxt = transactionfee.transactionFee[0].TransactionFeeOptionalText;\r\n\r\n if (refundType === \"AdditionalPayment\" || (refundType === \"\" && shopcartamounttoPay > 0))\r\n optionalTxt += ' [' + genfunction.ccyFormat(parseFloat(genfunction.TransactionFeeForPartialPayment(transactionfee.transactionFee[0], enteredAmountToPay, cashlesstotal))) + ']';\r\n\r\n else\r\n optionalTxt += ' [' + genfunction.ccyFormat(parseFloat(genfunction.TransactionFee(events, donation, transactionfee.transactionFee[0], cashless, membershipPackages, gatickets, giftcards.giftcards, orderProducts, donationProducts))) + ']';\r\n }\r\n\r\n return optionalTxt;\r\n }\r\n\r\n\r\n const showOptionalTransactionFee = () => {\r\n let showText = false;\r\n\r\n if (transactionfee.transactionFee && transactionfee.transactionFee.length > 0) {\r\n\r\n if (transactionfee.transactionFee[0].TransactionFeeByDefault === false && transactionfee.transactionFee[0].TransactionFeeOptional === false) {\r\n showText = false;\r\n } else {\r\n showText = true;\r\n }\r\n }\r\n\r\n return showText;\r\n }\r\n\r\n const errorcancelhandle = () => {\r\n actionResetPaymentTransaction(dispatch);\r\n actionResetCustomer(dispatch);\r\n seterrorMsg(\"\");\r\n }\r\n\r\n const fieldhandleChange = (event) => {\r\n if (event.currentTarget.name === \"checkBoxMember\")\r\n actionSetFieldValueState(dispatch, event.currentTarget.name, event.target.checked);\r\n else if (event.target.name === \"MonthSelect\" || event.target.name === \"YearSelect\")\r\n actionSetFieldValueState(dispatch, event.target.name, event.target.value);\r\n else\r\n actionSetFieldValueState(dispatch, event.currentTarget.name, event.target.value);\r\n\r\n };\r\n\r\n const getTNC = () => {\r\n return ReactHtmlParser(TermsnConditionCheckMsg);\r\n }\r\n\r\n const handleChange = (event) => {\r\n setCreditCardValue(event.target.value);\r\n };\r\n\r\n const tnccheckeHandle = (event) => {\r\n settncChecked(event.target.checked);\r\n };\r\n\r\n const paymentTokenHandler = (token, client, recaptchaToken) => {\r\n actionPostPaymentTransaction(dispatch, token, client, recaptchaToken);\r\n }\r\n\r\n const changeBillingAddress = () => {\r\n actionSetFieldValueState(dispatch, 'billingAddressSame', !formfields.billingAddressSame.value);\r\n }\r\n\r\n const ZeroDollaroRGiftCardOnlyTransCall = () => {\r\n\r\n if (RecaptchaV3Client && RecaptchaV3Client != '') {\r\n executeRecaptcha(\"checkout\").then(recaptchaToken => {\r\n paymentTokenHandler({ token: \"\", cardtype: \"\" }, customer.customer && customer.customer.length > 0 ? customer.customer : \"\", recaptchaToken);\r\n }).catch(error => {\r\n seterrorMsg(\"Recaptcha token not fetched\")\r\n })\r\n }\r\n else {\r\n paymentTokenHandler({ token: \"\", cardtype: \"\" }, customer.customer && customer.customer.length > 0 ? customer.customer : \"\", \"\");\r\n }\r\n }\r\n\r\n const ProcessAndConfigurePaymentsWithoutCard = () => {\r\n\r\n if ((refundType == \"AdditionalPayment\" || refundType === \"\") && shopcartamounttoPay > 0) {\r\n\r\n if (cashlesstotal === 0) {\r\n actionShopCartSetAdditionalBookingAmount(dispatch, shopcartamounttoPay);\r\n }\r\n\r\n if (cashlesstotal > 0) {\r\n actionShopCartSetAdditionalBookingAmount(dispatch, shopcartamounttoPay - cashlesstotal);\r\n }\r\n }\r\n\r\n if (formfields.billingAddressSame.value) {\r\n billingAddressSameAsAbover();\r\n }\r\n\r\n reseterrorfield();\r\n\r\n requiredFields = BindRequiredFields();\r\n\r\n return requiredFields ? true : false;\r\n }\r\n\r\n const onChangeCountry = (event, value) => {\r\n actionSetFieldValueState(dispatch, \"country\", value === null ? \"\" : value.Country);\r\n onChangeState(event, null);\r\n }\r\n\r\n const onChangeState = (event, value) => {\r\n actionSetFieldValueState(dispatch, \"state\", value === null ? \"\" : value.State);\r\n }\r\n\r\n const onChangeShippingCountry = (event, value) => {\r\n if (value === null) {\r\n actionSetFieldValueState(dispatch, \"shipping_country\", \"\")\r\n actionSetFieldValueState(dispatch, \"shipping_state\", \"\")\r\n }\r\n else\r\n actionSetFieldValueState(dispatch, \"shipping_country\", value.Country);\r\n\r\n onChangeShippingState(event, null);\r\n }\r\n const onChangeShippingState = (event, value) => {\r\n actionSetFieldValueState(dispatch, \"shipping_state\", value === null ? \"\" : value.State);\r\n }\r\n\r\n useEffect(() => {\r\n if (countryandstates === undefined || countryandstates.length == 0)\r\n actionGetCountryAndState(dispatch);\r\n\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (countryandstates && countryandstates.length > 0) {\r\n if (formfields.country.value == \"\")\r\n actionSetFieldValueState(dispatch, \"country\", countryandstates[0].Country);\r\n if (formfields.shipping_country.value == \"\")\r\n actionSetFieldValueState(dispatch, \"shipping_country\", countryandstates[0].Country);\r\n\r\n }\r\n }, [countryandstates]);\r\n\r\n\r\n\r\n const BindRequiredFields = () => {\r\n\r\n if (PhoneNumberMandatory) {\r\n requiredFields[\"phone_number\"] = formfields.phone_number.value.trim();\r\n requiredFields[\"shipping_phone_number\"] = formfields.shipping_phone_number.value;\r\n }\r\n\r\n requiredFields[\"email\"] = formfields.email.value.trim();\r\n if (UseStreetAddressForAVS)\r\n requiredFields[\"address1\"] = formfields.address1.value;\r\n requiredFields[\"country\"] = formfields.country.value;\r\n requiredFields[\"city\"] = formfields.city.value;\r\n requiredFields[\"state\"] = formfields.state.value;\r\n requiredFields[\"zip\"] = formfields.zip.value;\r\n requiredFields[\"first_name\"] = formfields.first_name.value;\r\n requiredFields[\"last_name\"] = formfields.last_name.value;\r\n\r\n requiredFields[\"shipping_address1\"] = formfields.shipping_address1.value;\r\n requiredFields[\"shipping_city\"] = formfields.shipping_city.value;\r\n requiredFields[\"shipping_state\"] = formfields.shipping_state.value;\r\n requiredFields[\"shipping_zip\"] = formfields.shipping_zip.value;\r\n requiredFields[\"shipping_country\"] = formfields.shipping_country.value;\r\n\r\n if (ShowFullAddressOnCheckout == false) {\r\n requiredFields[\"address1\"] = requiredFields[\"country\"] = requiredFields[\"city\"] = requiredFields[\"state\"] = undefined;\r\n requiredFields[\"shipping_address1\"] = requiredFields[\"shipping_country\"] = requiredFields[\"shipping_city\"] = requiredFields[\"shipping_state\"] = undefined;\r\n }\r\n\r\n if (checkfieldvalidation(requiredFields) == false) { return; }\r\n\r\n if (validateEmail(requiredFields[\"email\"]) == false) {\r\n errorfield(\"email\", \"Please enter a valid email address\", true);\r\n inputreferences['email'].current.focus();\r\n window.scrollBy(0, -65);\r\n return;\r\n }\r\n else if (requiredFields[\"phone_number\"] && validatePhoneNum(requiredFields[\"phone_number\"]) == false) {\r\n errorfield(\"phone_number\", \"Please enter a valid phone #\", true);\r\n inputreferences['phone_number'].current.focus();\r\n window.scrollBy(0, -65);\r\n return;\r\n }\r\n else if (requiredFields[\"shipping_phone_number\"] && validatePhoneNum(requiredFields[\"shipping_phone_number\"]) == false) {\r\n errorfield(\"shipping_phone_number\", \"Please enter a valid phone #\", true);\r\n inputreferences['shipping_phone_number'].current.focus();\r\n window.scrollBy(0, -65);\r\n return;\r\n }\r\n else {\r\n if (PhoneNumberMandatory) {\r\n requiredFields[\"phone_number\"] = formfields.phone_number.value;\r\n requiredFields[\"shipping_phone_number\"] = formfields.shipping_phone_number.value;\r\n }\r\n\r\n requiredFields[\"address2\"] = formfields.address2.value;\r\n requiredFields[\"shipping_address2\"] = formfields.shipping_address2.value;\r\n\r\n }\r\n\r\n return requiredFields;\r\n }\r\n\r\n\r\n const submitPaymentForm = () => {\r\n\r\n if (shopcartamounttoPay === 0 || props.amounttopay === 0) {\r\n ZeroDollaroRGiftCardOnlyTransCall();\r\n return;\r\n }\r\n\r\n if (CreditCardValue === \"NewCardDetails\") {\r\n\r\n if (ProcessAndConfigurePaymentsWithoutCard()) {\r\n if (genfunction.subproducttotal(events, cashless, null, (showTransFee ? transactionfee.transactionFee[0] : null), null, null, null, [], []) > 0) {\r\n requiredFields[\"month\"] = formfields.MonthSelect.value;\r\n requiredFields[\"year\"] = formfields.YearSelect.value;\r\n paymentsRef.current.SpreedlyTransactionCall(requiredFields);\r\n }\r\n else if ((refundType === 'AdditionalPayment' || refundType === \"\") && shopcartamounttoPay > 0) {\r\n requiredFields[\"month\"] = formfields.MonthSelect.value;\r\n requiredFields[\"year\"] = formfields.YearSelect.value;\r\n paymentsRef.current.SpreedlyTransactionCall(requiredFields);\r\n }\r\n else {\r\n paymentsRef.current.SpreedlyZeroDollarTransactionCall(requiredFields);\r\n }\r\n }\r\n }\r\n else {\r\n if ((refundType == \"AdditionalPayment\" || refundType === \"\") && shopcartamounttoPay > 0) {\r\n\r\n if (cashlesstotal === 0) {\r\n actionShopCartSetAdditionalBookingAmount(dispatch, shopcartamounttoPay);\r\n }\r\n\r\n if (cashlesstotal > 0) {\r\n actionShopCartSetAdditionalBookingAmount(dispatch, shopcartamounttoPay - cashlesstotal);\r\n }\r\n }\r\n\r\n paymentsRef.current.SpreedlyCardOnFileTransaction();\r\n }\r\n }\r\n\r\n\r\n const onClickPayBtn = useDebouncedCallback(submitPaymentForm, 5000, { leading: true });\r\n\r\n const PayByGlobalPayment = () => {\r\n\r\n if ((refundType == \"AdditionalPayment\" || refundType === \"\") && shopcartamounttoPay > 0) {\r\n\r\n if (cashlesstotal === 0) {\r\n actionShopCartSetAdditionalBookingAmount(dispatch, shopcartamounttoPay);\r\n }\r\n\r\n if (cashlesstotal > 0) {\r\n actionShopCartSetAdditionalBookingAmount(dispatch, shopcartamounttoPay - cashlesstotal);\r\n }\r\n }\r\n\r\n paymentsRef.current.PayByCardOnFile();\r\n }\r\n\r\n const onClickGPPayBtn = useDebouncedCallback(PayByGlobalPayment, 5000, { leading: true });\r\n\r\n const ManageNonPaymentMethodTrans = () => {\r\n if (CreditCardValue === \"\" && cashlesstotal > 0 && (parseFloat(shopcartamounttoPay) === parseFloat(cashlesstotal.toFixed(2)))) {\r\n ZeroDollaroRGiftCardOnlyTransCall();\r\n }\r\n }\r\n\r\n\r\n const CancelChanges = () => {\r\n props.onClickHandler()\r\n }\r\n\r\n const reseterrorfield = () => {\r\n actionResetFormErrorState(dispatch);\r\n }\r\n\r\n function validateEmail(email) {\r\n var re = new RegExp(EmailRegex);\r\n return re.test(String(email).toLowerCase());\r\n }\r\n\r\n function validatePhoneNum(phoneNum) {\r\n let cusNumber = phoneNum.replace(/\\D/g, \"\");\r\n if (cusNumber != \"\" && cusNumber.length < 10) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n const errorfield = (errorfield, errortext, errorstate) => {\r\n actionSetFormErrorState(dispatch, errorfield, errortext, errorstate)\r\n }\r\n\r\n const checkfieldvalidation = (fields) => {\r\n for (let prop in fields) {\r\n if (fields[prop] == \"\") {\r\n errorfield(prop, prop + \" is required.\", true)\r\n inputreferences[prop].current.focus();\r\n window.scrollBy(0, -65);\r\n return false\r\n }\r\n else {\r\n errorfield(prop, \"\", false)\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n const billingAddressSameAsAbover = () => {\r\n\r\n formfields.shipping_address1.value = formfields.address1.value;\r\n formfields.shipping_address2.value = formfields.address2.value;\r\n formfields.shipping_city.value = formfields.city.value;\r\n formfields.shipping_state.value = formfields.state.value;\r\n formfields.shipping_zip.value = formfields.zip.value;\r\n formfields.shipping_country.value = formfields.country.value;\r\n formfields.shipping_phone_number.value = formfields.phone_number.value;\r\n }\r\n\r\n\r\n return (\r\n\r\n //Desktop and Laptop (smDown)\r\n //Tablet (xsDown mdUp)\r\n //Mobile (smUp)\r\n\r\n \r\n \r\n \r\n \r\n Credit Card Payment\r\n \r\n \r\n\r\n \r\n \r\n Credit Card Payment\r\n \r\n \r\n\r\n \r\n \r\n Credit Card Payment\r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n \r\n \r\n }\r\n label={\"Use (\" + (props.booking && props.booking.hasOwnProperty('PaymentDescription') ? props.booking.PaymentDescription : 'Visa XXXX-XXXX-XXXX-1234') + \") Card on File\"}\r\n disabled={!(props.booking && props.booking.hasOwnProperty('PaymentDescription') && props.booking.PaymentDescription.length > 0)\r\n || (props.amounttopay <= 0 || shopcartamounttoPay <= 0)} />\r\n\r\n } label=\"Enter New Card Details\"\r\n disabled={(props.amounttopay <= 0 || shopcartamounttoPay <= 0)}\r\n />\r\n \r\n \r\n\r\n \r\n\r\n {CreditCardValue === \"NewCardDetails\" || CreditCardValue === \"UseCardOnFile\" ?\r\n \r\n \r\n \r\n\r\n \r\n\r\n {CreditCardValue === \"NewCardDetails\" ?\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {ShowFullAddressOnCheckout ?\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n {countryandstates.length > 0 ?\r\n \r\n {\r\n if (option.hasOwnProperty('Country')) {\r\n return option.Country;\r\n }\r\n return option;\r\n }}\r\n value={formfields.country.value}\r\n renderOption={(option) => (\r\n <>\r\n \r\n {` ${option.Country} `}\r\n )}\r\n\r\n style={{ width: \"100%\" }}\r\n renderInput={(params) =>\r\n (\r\n )}\r\n\r\n />\r\n {errorstate.country.errortext}\r\n \r\n : \"\"}\r\n\r\n \r\n\r\n \r\n\r\n {countryandstates.length > 0 ?\r\n \r\n\r\n x.Country == formfields.country.value).map(o => o.hasOwnProperty(\"Picklist\") ? o.Picklist : [])[0]\r\n : []\r\n }\r\n fullWidth={true}\r\n onChange={onChangeState}\r\n getOptionLabel={(option) => {\r\n if (option.hasOwnProperty('State')) {\r\n return option.State;\r\n }\r\n return option;\r\n }}\r\n value={formfields.state.value}\r\n style={{ width: \"100%\" }}\r\n renderInput={(params) =>\r\n (\r\n )}\r\n\r\n />\r\n {errorstate.state.errortext}\r\n \r\n : \"\"}\r\n\r\n \r\n \r\n : \"\"}\r\n \r\n \r\n \r\n {ShowFullAddressOnCheckout ?\r\n <>\r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n changeBillingAddress()}\r\n checked={formfields.billingAddressSame.value}\r\n />\r\n }\r\n label=\"Billing Address same as above\"\r\n />\r\n \r\n\r\n {formfields.billingAddressSame.value == false ?\r\n <>\r\n \r\n Billing Address\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {countryandstates.length > 0 ?\r\n \r\n\r\n {\r\n if (option.hasOwnProperty('Country')) {\r\n return option.Country;\r\n }\r\n return option;\r\n }}\r\n value={formfields.shipping_country.value}\r\n renderOption={(option) => (\r\n <>\r\n \r\n {` ${option.Country} `}\r\n )}\r\n\r\n style={{ width: \"100%\" }}\r\n renderInput={(params) =>\r\n (\r\n )}\r\n\r\n />\r\n {errorstate.shipping_country.errortext}\r\n \r\n : \"\"}\r\n\r\n \r\n\r\n \r\n {countryandstates.length > 0 ?\r\n \r\n\r\n x.Country == formfields.shipping_country.value).map(o => o.hasOwnProperty(\"Picklist\") ? o.Picklist : [])[0]\r\n : []\r\n }\r\n fullWidth={true}\r\n onChange={onChangeShippingState}\r\n getOptionLabel={(option) => {\r\n if (option.hasOwnProperty('State')) {\r\n return option.State;\r\n }\r\n return option;\r\n }}\r\n value={formfields.shipping_state.value}\r\n style={{ width: \"100%\" }}\r\n renderInput={(params) =>\r\n (\r\n )}\r\n\r\n />\r\n {errorstate.shipping_state.errortext}\r\n \r\n : \"\"}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n : null}\r\n : \"\"}\r\n \r\n : null}\r\n\r\n {PaymentMethodType === \"Spreedly\" ?\r\n <>\r\n \r\n \r\n \r\n\r\n {ApplyTransactionFee && showOptionalTransactionFee() && !(props.amounttopay <= 0 || shopcartamounttoPay <= 0) ?\r\n < Grid item xs={12} >\r\n \r\n \r\n {GetTransOptionalText()}\r\n \r\n \r\n : null}\r\n\r\n \r\n \r\n \r\n {TermsnConditionCheckBoxText}\r\n { setopentnc(true) }} > Terms and Conditions \r\n \r\n\r\n \r\n\r\n \r\n {tncchecked && EnableAlternateMerchantOnline && (orderProducts && orderProducts.length < 1) ? : null}\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n Pay\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n :\r\n <>\r\n\r\n \r\n \r\n \r\n\r\n {CreditCardValue === \"UseCardOnFile\" ?\r\n <>\r\n {ApplyTransactionFee && showOptionalTransactionFee() && !(props.amounttopay <= 0 || shopcartamounttoPay <= 0)\r\n ?\r\n < Grid item xs={12} >\r\n \r\n \r\n {GetTransOptionalText()}\r\n \r\n \r\n\r\n : null}\r\n\r\n \r\n \r\n \r\n {TermsnConditionCheckBoxText}\r\n { setopentnc(true) }} > Terms and Conditions \r\n \r\n \r\n\r\n \r\n {tncchecked && EnableAlternateMerchantOnline && (orderProducts && orderProducts.length < 1) ? : null}\r\n \r\n\r\n \r\n Pay\r\n \r\n \r\n : null}\r\n\r\n \r\n 0 && CreditCardValue == \"NewCardDetails\" ? classes.cancelbtnconfig : classes.cancelbtnconfig10per)}\r\n onClick={CancelChanges} >Cancel Changes\r\n \r\n \r\n }\r\n\r\n \r\n \r\n \r\n \r\n : null}\r\n\r\n {CreditCardValue === \"\" ?\r\n <>\r\n {ApplyTransactionFee && showOptionalTransactionFee() && !(props.amounttopay <= 0 || shopcartamounttoPay <= 0)\r\n ?\r\n < Grid item xs={12} >\r\n \r\n \r\n {GetTransOptionalText()}\r\n \r\n \r\n : null}\r\n\r\n \r\n \r\n \r\n {TermsnConditionCheckBoxText}\r\n { setopentnc(true) }} > Terms and Conditions \r\n \r\n \r\n\r\n \r\n 0)}\r\n variant=\"contained\" className={classes.primarycolor + \" \" + classes.box95per} onClick={ManageNonPaymentMethodTrans} >Pay\r\n \r\n\r\n \r\n Cancel Changes\r\n \r\n \r\n :\r\n null\r\n }\r\n\r\n { setopentnc(false) }}>\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CreditCardPayment;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Button, Container, Grid, Typography, TextField, Hidden } from '@material-ui/core';\r\nimport CreditCardPayment from '../components/CreditCardPayment';\r\nimport { genfunction } from '../../../helpers';\r\nimport { actionAddGiftCardHold, actionResetGiftCardHoldState, actionRecalculateGiftCardHold } from 'actions';\r\nimport ErrorHandling from '../../../components/ErrorHandling/ErrorHandling';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { actionShopCardAddGiftCard, actionShopCartSetMmbAmountToPay, actionShopCartSetEnteredAmountToPay } from 'actions';\r\nimport { GoogleReCaptchaProvider } from 'react-google-recaptcha-v3';\r\nimport { withRouter } from 'react-router';\r\nimport { actionStartAppLoader, actionEndAppLoader } from '../../../actions/actionAppLoader';\r\n\r\nconst { AmountToPayLength, Currency, RecaptchaV3Client } = window['runConfig'];\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3)\r\n },\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n height: '40px'\r\n }, tourheaderboxMobView: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n height: '80px'\r\n }, hideGrid: {\r\n display: 'none'\r\n }\r\n}));\r\n\r\nconst MakePayment = (props) => {\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const [giftCardno, setgiftCardno] = useState(\"\");\r\n const [errormsg, seterrormsg] = useState(\"\");\r\n const { GiftCardHold, GiftCardHoldLoading, GiftCardHoldError } = useSelector(state => state.reducerGiftCardHold);\r\n const cashless = useSelector(state => state.reducerShopCart.cashless);\r\n let cashlesstotal = cashless.map(({ HoldAmount }) => HoldAmount).reduce((sum, i) => sum + i, 0);\r\n const currentDateEvent = useSelector(state => state.reducerExtraItems.extraItem);\r\n const managebkngTicketsModify = useSelector(state => state.reducerShopCart.managebookingticketsmodification);\r\n const cartEvents = useSelector(state => state.reducerShopCart.events);\r\n let shopcartamounttoPay = useSelector(state => state.reducerShopCart.mmbAmountToPay);\r\n let refundType = useSelector(state => state.reducerShopCart.refundType);\r\n const showTransFee = useSelector(state => state.reducerShopCart.showTransactionFee);\r\n const transactionfee = useSelector(state => state.reducerTransactionFee);\r\n let enteredAmountToPay = useSelector(state => state.reducerShopCart.enteredAmountToPay);\r\n\r\n const [amounttopayTxtBox, setamounttopayTxtBox] = useState(0);\r\n\r\n let amountaftercoupon = genfunction.subproducttotal(cartEvents, null, null, null, null, null, null, [], []);\r\n\r\n const CheckGiftCard = (giftcardNo) => {\r\n if (shopcartamounttoPay <= 0) {\r\n seterrormsg('Please add item in cart before applying Giftcard.')\r\n }\r\n else if (giftCardno == '') {\r\n seterrormsg('Please enter Giftcard number.')\r\n }\r\n else {\r\n actionShopCartSetMmbAmountToPay(dispatch, shopcartamounttoPay);\r\n\r\n actionAddGiftCardHold(dispatch, giftcardNo);\r\n setgiftCardno('');\r\n }\r\n }\r\n\r\n const errorcancelhandle = () => {\r\n actionResetGiftCardHoldState(dispatch);\r\n setgiftCardno('');\r\n seterrormsg('');\r\n }\r\n\r\n const openerrorpopup = () => {\r\n return (errormsg != \"\")\r\n }\r\n\r\n\r\n //Gift Card Handling\r\n\r\n useEffect(() => {\r\n seterrormsg(GiftCardHoldError)\r\n }, [GiftCardHoldError]);\r\n\r\n useEffect(() => {\r\n if (GiftCardHoldLoading)\r\n actionStartAppLoader(dispatch)\r\n else\r\n actionEndAppLoader(dispatch);\r\n }, [GiftCardHoldLoading]);\r\n\r\n useEffect(() => {\r\n if (GiftCardHold.GiftcardHoldRef)\r\n ValidateAndAddGiftCard(GiftCardHold)\r\n }, [GiftCardHold]);\r\n\r\n const ValidateAndAddGiftCard = (giftcardholdresponse) => {\r\n if (giftcardholdresponse.HoldAmount == 0) {\r\n seterrormsg('Giftcard is already consumed');\r\n }\r\n else {\r\n actionShopCardAddGiftCard(dispatch, giftcardholdresponse);\r\n actionResetGiftCardHoldState(dispatch);\r\n }\r\n }\r\n useEffect(() => {\r\n let total;\r\n let isTransFeeApplicable = showTransFee && transactionfee.transactionFee[0] && transactionfee.transactionFee[0].PriceIsAPercentage ? transactionfee.transactionFee[0] : undefined;\r\n\r\n if (cashlesstotal > 0 && isTransFeeApplicable) {\r\n total = AmountToPayCalCulation();\r\n if (parseFloat(total) === 0)\r\n actionShopCartSetMmbAmountToPay(dispatch, enteredAmountToPay);\r\n else\r\n actionShopCartSetMmbAmountToPay(dispatch, genfunction.AddCashlessAndAdditionalPayment(cashless, parseFloat(total)));\r\n }\r\n\r\n }, [cashless]);\r\n\r\n useEffect(() => {\r\n RecalculationGiftCard();\r\n }, [showTransFee])\r\n\r\n const RecalculationGiftCard = () => {\r\n if (enteredAmountToPay > 0 && cashless.length > 0) {\r\n actionRecalculateGiftCardHold(dispatch);\r\n }\r\n }\r\n\r\n const totalpaid = () => {\r\n let total = 0;\r\n let actualTotal = 0;\r\n let newTotal = 0;\r\n let eventTotal = cartEvents && cartEvents.length ? amountaftercoupon : currentDateEvent.TotalAmount ? currentDateEvent.TotalAmount : 0;\r\n\r\n if (props.booking && props.booking && props.booking.BookingPayments && props.booking.BookingPayments.length > 0 && props.booking.BookingProducts\r\n && props.booking.BookingProducts.length > 0) {\r\n\r\n actualTotal = props.booking.BookingProducts.map(({ ProductLinePriceInclTax }) => ProductLinePriceInclTax).reduce((sum, i) => sum + i, 0);\r\n if (managebkngTicketsModify) {\r\n props.booking.BookingProducts.map(prod => {\r\n if (prod.hasOwnProperty('isModify') && prod.isModify) {\r\n newTotal += prod.newQuantity * prod.Price;\r\n }\r\n else {\r\n newTotal += prod.ProductLinePriceInclTax;\r\n }\r\n })\r\n }\r\n total = parseFloat(((actualTotal - newTotal) * 100) / 100);\r\n }\r\n\r\n return (eventTotal - total).toFixed(2);\r\n\r\n }\r\n\r\n const totalbookingcost = () => {\r\n let total = 0;\r\n if (props.booking && props.booking.hasOwnProperty('BookingProducts') && props.booking.BookingProducts.length > 0) {\r\n total = props.booking.BookingProducts.map(({ ProductLinePriceInclTax }) => ProductLinePriceInclTax).reduce((sum, i) => sum + i, 0);\r\n }\r\n\r\n return total;\r\n }\r\n\r\n const totalbookingpaid = () => {\r\n let totalpaid = 0;\r\n\r\n if (props.booking && props.booking.hasOwnProperty('BookingPayments') && props.booking.BookingPayments.length > 0) {\r\n totalpaid = props.booking.BookingPayments.map(({ PaymentAmount }) => PaymentAmount).reduce((sum, i) => sum + i, 0);\r\n }\r\n\r\n return totalpaid;\r\n }\r\n\r\n useEffect(() => {\r\n if (managebkngTicketsModify || refundType === 'AdditionalPayment' || (refundType === \"\" && shopcartamounttoPay > 0)) {\r\n setamounttopayTxtBox(parseFloat(enteredAmountToPay > 0 ? enteredAmountToPay : shopcartamounttoPay).toFixed(2));\r\n actionShopCartSetMmbAmountToPay(dispatch, genfunction.Rounded(shopcartamounttoPay));\r\n }\r\n else {\r\n\r\n setamounttopayTxtBox(parseFloat(totalpaid()));\r\n actionShopCartSetMmbAmountToPay(dispatch, parseFloat(totalpaid()));\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n actionShopCartSetEnteredAmountToPay(dispatch, parseFloat(amounttopayTxtBox));\r\n }, [amounttopayTxtBox])\r\n\r\n const amounttopayTxtUpdate = (event) => {\r\n\r\n let totalcst = totalbookingcost();\r\n let totalpd = totalbookingpaid();\r\n let txtBoxValue = parseFloat(event.target.value);\r\n\r\n if (txtBoxValue > 0 && (txtBoxValue <= genfunction.Rounded(totalcst - totalpd))) {\r\n\r\n setamounttopayTxtBox(genfunction.Rounded(txtBoxValue));\r\n\r\n let transFee = genfunction.TransactionFeeForPartialPayment(transactionfee.transactionFee[0], txtBoxValue, cashlesstotal);\r\n actionShopCartSetMmbAmountToPay(dispatch, showTransFee ? genfunction.Rounded(txtBoxValue + transFee) : genfunction.Rounded(txtBoxValue));\r\n }\r\n else {\r\n setamounttopayTxtBox(0);\r\n actionShopCartSetMmbAmountToPay(dispatch, 0);\r\n }\r\n }\r\n\r\n const AmountToPayCalCulation = () => {\r\n let total = 0;\r\n if (refundType === \"GiftCardRefund\" || refundType === \"CreditCardRefund\" || refundType === \"CancelBooking\" || refundType === \"CancelGiftCardRefund\") {\r\n total = shopcartamounttoPay;\r\n }\r\n else if (refundType === \"AdditionalPayment\" || (refundType === \"\" && shopcartamounttoPay > 0)) {\r\n\r\n if (showTransFee) {\r\n\r\n let transFee = genfunction.TransactionFeeForPartialPayment(transactionfee.transactionFee[0], enteredAmountToPay, cashlesstotal);\r\n total = genfunction.Rounded(enteredAmountToPay + transFee) - cashlesstotal;\r\n\r\n }\r\n else {\r\n\r\n total = enteredAmountToPay - cashlesstotal;\r\n }\r\n\r\n }\r\n else {\r\n total = shopcartamounttoPay - cashlesstotal;\r\n }\r\n\r\n return parseFloat(total).toFixed(2);\r\n }\r\n\r\n return (\r\n\r\n //Desktop and Laptop (smDown)\r\n //Tablet (xsDown mdUp)\r\n //Mobile (smUp)\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {props.booking !== undefined && props.booking.hasOwnProperty('BookingName') ? props.booking.BookingName : ''}\r\n \r\n \r\n\r\n \r\n \r\n {props.booking !== undefined && props.booking.hasOwnProperty('BookingName') ? props.booking.BookingName : ''}\r\n \r\n \r\n\r\n \r\n \r\n {props.booking !== undefined && props.booking.hasOwnProperty('BookingName') ? props.booking.BookingName : ''}\r\n \r\n \r\n\r\n \r\n \r\n Make Payment for Booking ID {props.booking && props.booking.hasOwnProperty('BookingID') ? props.booking.BookingID : 0}\r\n \r\n \r\n\r\n \r\n \r\n Make Payment for Booking ID {props.booking && props.booking.hasOwnProperty('BookingID') ? props.booking.BookingID : 0}\r\n \r\n \r\n\r\n \r\n \r\n Make Payment for Booking ID {props.booking && props.booking.hasOwnProperty('BookingID') ? props.booking.BookingID : 0}\r\n \r\n \r\n\r\n \r\n \r\n Total : {genfunction.ccyFormat(totalbookingcost())}\r\n \r\n \r\n\r\n \r\n \r\n Total : {genfunction.ccyFormat(totalbookingcost())}\r\n \r\n \r\n\r\n \r\n \r\n Total : {genfunction.ccyFormat(totalbookingcost())}\r\n \r\n \r\n\r\n \r\n \r\n Total Paid : {genfunction.ccyFormat(totalbookingpaid())}\r\n \r\n \r\n\r\n \r\n \r\n Total Paid : {genfunction.ccyFormat(totalbookingpaid())}\r\n \r\n \r\n\r\n \r\n \r\n Total Paid : {genfunction.ccyFormat(totalbookingpaid())}\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n Amount to Pay :\r\n \r\n \r\n\r\n \r\n \r\n Amount to Pay :\r\n \r\n \r\n\r\n \r\n \r\n Amount to Pay :\r\n \r\n \r\n\r\n\r\n {Currency}\r\n \r\n\r\n \r\n \r\n \r\n Apply a Gift Card\r\n \r\n \r\n\r\n \r\n \r\n Apply a Gift Card\r\n \r\n \r\n\r\n \r\n \r\n Apply a Gift Card\r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n {\r\n setgiftCardno(event.target.value);\r\n }}\r\n />\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n To Pay\r\n \r\n \r\n\r\n \r\n \r\n To Pay\r\n \r\n \r\n\r\n \r\n \r\n To Pay\r\n \r\n \r\n\r\n\r\n \r\n \r\n Gift Card Applied : {cashlesstotal > 0 ? genfunction.ccyFormat(cashlesstotal) : genfunction.ccyFormat(0)}\r\n \r\n \r\n\r\n \r\n \r\n Gift Card Applied : {cashlesstotal > 0 ? genfunction.ccyFormat(cashlesstotal) : genfunction.ccyFormat(0)}\r\n \r\n \r\n\r\n \r\n \r\n Gift Card Applied : {cashlesstotal > 0 ? genfunction.ccyFormat(cashlesstotal) : genfunction.ccyFormat(0)}\r\n \r\n \r\n\r\n \r\n \r\n Amount to Pay : {Currency} {AmountToPayCalCulation()}\r\n \r\n \r\n\r\n \r\n \r\n Amount to Pay : {Currency} {AmountToPayCalCulation()}\r\n \r\n \r\n\r\n \r\n \r\n Amount to Pay : {Currency} {AmountToPayCalCulation()}\r\n \r\n \r\n\r\n \r\n\r\n\r\n {RecaptchaV3Client && RecaptchaV3Client != \"\" ?\r\n \r\n \r\n \r\n : }\r\n \r\n \r\n );\r\n};\r\n\r\nexport default withRouter(MakePayment);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Typography, Button, Card, CardHeader, CardContent, Table, TableRow, TableCell, Grid } from '@material-ui/core';\r\nimport { CheckCircleOutlineOutlined } from '@material-ui/icons';\r\nimport { genfunction } from '../../../helpers'\r\nimport theme from '../../../theme'\r\nimport DataAccess from '../../../api/constants';\r\nimport Moment from 'moment';\r\nimport { actionResetBookingTypes } from 'actions';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nconst { BookingCancelMsg, BookingSuccessfullyUpdate, CustomMessageforconfirmpage, BookingTypeBarcodeHeader, TransactionCompleteTitle, ConfirmationReceiptMessage,\r\n ShowReadableBarcode } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n center: {\r\n position: \"relative\",\r\n margin: \"auto\",\r\n maxWidth: \"550px\"\r\n },\r\n diplaynone: {\r\n display: \"none\"\r\n },\r\n textaligncenter: {\r\n textAlign: \"center\"\r\n },\r\n headerbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n textAlign: \"left\"\r\n },\r\n footerbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n textAlign: \"left\",\r\n padding: \"16px\"\r\n },\r\n headertext: {\r\n marginTop: \"8px\",\r\n marginRight: \"10px\"\r\n },\r\n image: {\r\n border: \"5px solid white\"\r\n },\r\n receiptfileds: {\r\n textAlign: \"left\"\r\n },\r\n ReceiptTableCell: {\r\n 'border-bottom': '0px solid #000 !important',\r\n fontSize: '16px !important',\r\n padding: '5px !important'\r\n }\r\n\r\n}));\r\n\r\nconst PaymentCompletePage = props => {\r\n const { isshow, transaction } = props;\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const bookingTypes = useSelector(state => state.reducerBookingTypes.bookingTypes);\r\n const Payment = useSelector(state => state.reducerPaymentTransaction.Payment);\r\n const reducerBooking = useSelector(state => state.reducerBooking);\r\n\r\n\r\n const onClickHandler = () => {\r\n actionResetBookingTypes(dispatch);\r\n props.onClickHandler()\r\n }\r\n\r\n const ShowWebDisplayName = (tourEvent) => {\r\n if (!tourEvent || tourEvent || tourEvent.BookingTypeID === undefined) { return ''; }\r\n const bookType = bookingTypes.filter(x => x.BookingTypeID == tourEvent.BookingTypeID)[0];\r\n return bookType ? tourEvent.EventName : '';\r\n }\r\n\r\n const groupbyTourEvent = () => {\r\n let products = [];\r\n transaction.Products.filter(x => x.Quantity > 0).map(item => {\r\n let itemobj = products.find(x => x.TourEventID == item.TourEventID);\r\n if (itemobj == null || itemobj == undefined) {\r\n if (item.TourEventID !== undefined) {\r\n products.push(item);\r\n }\r\n }\r\n })\r\n return products;\r\n }\r\n\r\n const getEvent = (toureventid) => {\r\n if (toureventid)\r\n return transaction.Events.find(x => x.TourEventID == toureventid)\r\n }\r\n\r\n const VisibleStartAndEndTime = (tourEvent) => {\r\n\r\n let time = \"\";\r\n if (tourEvent === undefined || tourEvent.BookingTypeID === undefined) {\r\n return '';\r\n }\r\n\r\n const bookType = bookingTypes.filter(x => x.BookingTypeID == tourEvent.BookingTypeID)[0];\r\n\r\n if (bookType) {\r\n if (bookType.ShowStartTime && bookType.ShowEndTime) {\r\n time += genfunction.GetEventDateReceiptFormat(tourEvent.EventStartDateTime) + ' - ' + Moment(tourEvent.EventEndDateTime).format('hh:mm a');\r\n }\r\n\r\n if (bookType.ShowStartTime && !bookType.ShowEndTime) {\r\n time += genfunction.GetEventDateReceiptFormat(tourEvent.EventStartDateTime);\r\n }\r\n\r\n if (!bookType.ShowStartTime && bookType.ShowEndTime) {\r\n time += genfunction.GetEventDateReceiptFormat(tourEvent.EventEndDateTime);\r\n }\r\n\r\n if (!bookType.ShowStartTime && !bookType.ShowEndTime) {\r\n time += genfunction.GetEventDateReceiptFormatwithoutTime(tourEvent.EventStartDateTime);\r\n }\r\n }\r\n\r\n return time;\r\n }\r\n\r\n const TotalPaid = () => {\r\n let total = 0;\r\n if (transaction) {\r\n if (transaction.Payments && transaction.Payments.length > 0) {\r\n total = transaction.Payments.map(({ PaymentAmount }) => PaymentAmount).reduce((sum, i) => sum + i, 0);\r\n }\r\n\r\n if (props.refundType === 'GiftCardRefund' && transaction.Products && transaction.Products.length > 0 && transaction.Products.filter(x => x.Giftcards !== undefined).length > 0) {\r\n total -= transaction.Products.filter(x => x.Giftcards !== undefined).map(({ LinePriceIncTax }) => LinePriceIncTax).reduce((sum, i) => sum + i, 0);\r\n }\r\n }\r\n\r\n return total;\r\n }\r\n\r\n const GetTourName = () => {\r\n let tourname = \"\";\r\n\r\n if (Payment.Events && Payment.Events.length > 0) {\r\n tourname = Payment.Events[0].EventName;\r\n }\r\n\r\n if (tourname.length < 1 && reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty(\"BookingName\")) {\r\n tourname = reducerBooking.booking[0].BookingName;\r\n }\r\n\r\n return tourname;\r\n }\r\n\r\n const GetTourDetails = () => {\r\n let tourdetails = \"\";\r\n let bookingID = reducerBooking.booking[0] ? reducerBooking.booking[0].BookingTypeID : 0;\r\n\r\n if (Payment.Events && Payment.Events.length > 0) {\r\n bookingID = Payment.Events[0].BookingTypeID;\r\n }\r\n\r\n if (transaction && transaction.Products && transaction.Events.length > 0 && transaction.Events.filter(x => x.BookingTypeID === bookingID).length > 0) {\r\n tourdetails = transaction.Events.filter(x => x.BookingTypeID === bookingID)[0].EventStartDateTime;\r\n }\r\n\r\n if (transaction && transaction.Products && transaction.Events.length < 1 && reducerBooking.booking[0].hasOwnProperty('EventStartDateTime')) {\r\n tourdetails = reducerBooking.booking[0].EventStartDateTime;\r\n }\r\n\r\n return tourdetails;\r\n }\r\n\r\n const GetBookingPrevPaid = () => {\r\n let bookingPaid = 0;\r\n\r\n if (reducerBooking.booking && reducerBooking.booking[0] && reducerBooking.booking[0].BookingPayments && reducerBooking.booking[0].BookingPayments.length > 0) {\r\n bookingPaid = reducerBooking.booking[0].BookingPayments.map(({ PaymentAmount }) => PaymentAmount).reduce((sum, i) => sum + i, 0)\r\n }\r\n\r\n return bookingPaid;\r\n }\r\n\r\n if (transaction.hasOwnProperty('Products') == false)\r\n return (\"\");\r\n else {\r\n\r\n let amounts = genfunction.GetProdsTotalAmount(transaction.Products)\r\n\r\n return (\r\n\r\n //Desktop and Laptop (smDown)\r\n //Tablet (xsDown mdUp)\r\n //Mobile (smUp)\r\n\r\n
\r\n
\r\n \r\n {TransactionCompleteTitle}\r\n Thank you {transaction.Customer.FirstName + \" \" + transaction.Customer.LastName}!\r\n {ConfirmationReceiptMessage}\r\n {transaction.Customer.CustomerAddress[0].Email}\r\n\r\n {Payment && Payment.hasOwnProperty('isCancelBooking') === false && reducerBooking.booking[0] && reducerBooking.booking[0].BookingID ?\r\n
\r\n Booking ID {reducerBooking.booking[0].BookingID} {BookingSuccessfullyUpdate}\r\n
\r\n : null\r\n }\r\n\r\n\r\n \r\n Receipt # {transaction.ReceiptNo}}\r\n title={\"Transaction Summary\"}\r\n titleTypographyProps={{ color: \"inherit\" }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Receipt Date and Time : \r\n \r\n \r\n {genfunction.GetTransactionDate(transaction.TransactionDate)}\r\n \r\n \r\n \r\n \r\n Receipt Number : \r\n \r\n {transaction.ReceiptNo}\r\n \r\n \r\n \r\n Booking # : \r\n \r\n \r\n {(reducerBooking.booking[0] ? reducerBooking.booking[0].BookingID : 0)}\r\n \r\n \r\n \r\n \r\n Tour Name : \r\n \r\n \r\n {GetTourName()}\r\n \r\n \r\n \r\n \r\n Tour Details : \r\n \r\n \r\n {genfunction.GetTransactionDate(GetTourDetails())}\r\n \r\n \r\n \r\n \r\n New Cost : \r\n \r\n \r\n {genfunction.ccyFormat((TotalPaid() > 0 ? Math.abs(TotalPaid()) + Math.abs(GetBookingPrevPaid()) : Math.abs(GetBookingPrevPaid()) - Math.abs(TotalPaid())))}\r\n \r\n \r\n \r\n \r\n Previous Paid : \r\n \r\n \r\n {genfunction.ccyFormat(GetBookingPrevPaid())}\r\n \r\n \r\n \r\n \r\n Amount Difference : \r\n \r\n \r\n {genfunction.ccyFormat(TotalPaid())}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {\r\n groupbyTourEvent().length > 0 ? groupbyTourEvent().map(item => (\r\n\r\n
\r\n\r\n {ShowWebDisplayName(getEvent(item.TourEventID))}\r\n {VisibleStartAndEndTime(getEvent(item.TourEventID))}\r\n \"Logo\"\r\n
\r\n ))\r\n : null\r\n }\r\n\r\n
\r\n {\r\n props.refundType === '' && ((amounts.totalExclTax + amounts.totalExclTax + amounts.totalExclTax) === 0) ?\r\n \r\n
\r\n Thank You\r\n Amount Paid was {genfunction.ccyFormat(0)}\r\n No Refund is due.\r\n
\r\n
\r\n : null\r\n }\r\n\r\n {Payment && Payment.hasOwnProperty('Products') && Payment.Products.length > 0 ?\r\n \r\n {\r\n Payment.Products.filter(x => x.Giftcards).map(item => (\r\n\r\n
\r\n Gift Card Number # \r\n {item.Giftcards[0].GiftcardNo}\r\n\r\n Balance Available\r\n {genfunction.ccyFormat(item.Giftcards[0].TotalBalance)}\r\n\r\n
\r\n ))\r\n }\r\n\r\n
: null}\r\n\r\n {Payment && Payment.hasOwnProperty('isCancelBooking') && Payment.isCancelBooking ?\r\n \r\n {\r\n Payment && Payment.hasOwnProperty('isCancelBooking') && Payment.isCancelBooking ?\r\n
\r\n {Payment.hasOwnProperty('BookingID') ?\r\n Booking ID {Payment.BookingID} {BookingCancelMsg}\r\n : null}\r\n
\r\n : null\r\n }\r\n\r\n
\r\n : null}\r\n\r\n \r\n {CustomMessageforconfirmpage}\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n );\r\n }\r\n};\r\n\r\nPaymentCompletePage.propTypes = {\r\n isshow: PropTypes.bool.isRequired,\r\n transaction: PropTypes.object.isRequired\r\n};\r\n\r\nexport default PaymentCompletePage;\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport MakePayment from '../ManageCheckout/components/MakePayment';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { actionResetPaymentTransaction } from 'actions';\r\nimport {\r\n actionShopCartResetMembership, actionShopCartResetIDME, actionShopCartResetMembershipPackage, actionShopCartResetStateWithTourHold,\r\n actionShopCartResetStateWithUniqueCouponHold, actionShopCartResetGiftcards\r\n} from 'actions';\r\nimport PaymentCompletePage from './components/PaymentCompletePage';\r\nimport ProcessingBox from '../Checkout/components/ProcessingBox';\r\nimport { actionShopCartSetManageMyBooking, actionShopCartSetRefundType, actionShopCartSetAdditionalBookingAmount, actionShopCartResetState } from 'actions';\r\nimport { actionResetBooking } from 'actions';\r\nimport { actionResetFieldValuesState } from 'actions';\r\nimport { actionDeleteGiftCardHold } from 'actions';\r\nimport { actionStartAppLoader, actionEndAppLoader } from '../../actions/actionAppLoader';\r\nimport { actionResetExtraItems } from 'actions';\r\nimport { Typography, Grid, Container, Button } from '@material-ui/core';\r\n\r\nconst { RedirectAfterCheckout, Titleforloadingpayment, Subtitle1forloadingpayment, Subtitle2forloadingpayment, } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3)\r\n },\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n height: '40px'\r\n }, hidden: {\r\n visibility: \"hidden\"\r\n },\r\n displaynone: {\r\n display: \"none\"\r\n }\r\n}));\r\n\r\nconst ManageCheckout = (props) => {\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const reducerBooking = useSelector(state => state.reducerBooking);\r\n const events = useSelector(state => state.reducerShopCart.events);\r\n const cashless = useSelector(state => state.reducerShopCart.cashless);\r\n\r\n const paymenttranstate = useSelector(state => {\r\n return (\r\n {\r\n loading: state.reducerPaymentTransaction.loading,\r\n haspaid: state.reducerPaymentTransaction.Payment.hasOwnProperty('Products'),\r\n paymentinfo: state.reducerPaymentTransaction.Payment,\r\n errormsg: state.reducerPaymentTransaction.PaymentInfoError\r\n }\r\n )\r\n\r\n });\r\n\r\n\r\n const onClickPaymentHandler = () => {\r\n actionStartAppLoader(dispatch);\r\n actionShopCartResetStateWithTourHold(dispatch, events);\r\n actionResetPaymentTransaction(dispatch);\r\n actionResetFieldValuesState(dispatch);\r\n actionShopCartResetStateWithUniqueCouponHold(dispatch);\r\n actionShopCartResetMembershipPackage(dispatch);\r\n actionShopCartResetMembership(dispatch);\r\n actionShopCartResetIDME(dispatch);\r\n actionResetBooking(dispatch);\r\n actionResetExtraItems(dispatch);\r\n actionShopCartSetManageMyBooking(dispatch, false, false);\r\n actionShopCartSetRefundType(dispatch, '');\r\n actionShopCartSetAdditionalBookingAmount(dispatch, 0);\r\n actionShopCartResetState(dispatch);\r\n\r\n if (cashless && cashless.length > 0) {\r\n actionDeleteGiftCardHold(dispatch, cashless[0].GiftcardHoldRef);\r\n actionShopCartResetGiftcards(dispatch);\r\n }\r\n\r\n setTimeout(function () {\r\n actionEndAppLoader(dispatch);\r\n window.location.href = RedirectAfterCheckout;\r\n }, 2000);\r\n }\r\n\r\n\r\n const redirecttofindmybpooking = () => {\r\n\r\n props.history.push({\r\n pathname: '/findmybooking'\r\n })\r\n }\r\n\r\n let displayclass = \"\";\r\n if (paymenttranstate.loading)\r\n displayclass = classes.displaynone;\r\n else if (paymenttranstate.haspaid)\r\n displayclass = classes.displaynone;\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Please go to find my booking page to Update Booking.\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ManageCheckout;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Typography, Grid, Container, Button, Hidden } from '@material-ui/core';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {\r\n actionShopCartAddEventWithTourHold, actionShopCartSetManageMyBooking, actionShopCartSetMmbAmountToPay, actionShopCartSetEnteredAmountToPay,\r\n actionShopCartResetError, actionShopCartResetMembership, actionShopCartSetRefundType, actionShopCartResetIDME\r\n} from 'actions';\r\nimport { actionResetBooking, actionUpdateQuantity } from 'actions';\r\nimport { NumberSpinner } from '../../components/InputControls';\r\nimport { genfunction } from '../../helpers';\r\nimport { actionStartAppLoader, actionEndAppLoader } from '../../actions/actionAppLoader';\r\nimport { actionGetExtraItem, actionIncreaseQuantity, actionResetExtraItems } from 'actions';\r\nimport ErrorHandling from '../../components/ErrorHandling/ErrorHandling';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\n\r\nconst { ModifyTicketsHeading, RefundCreditCardButton, RefundGiftCardButton } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3)\r\n },\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n height: '40px'\r\n },\r\n hideBtn: {\r\n display: 'none'\r\n }\r\n}));\r\n\r\nconst ModifyTicketsAddons = (props) => {\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const reducerBooking = useSelector(state => state.reducerBooking);\r\n const currentDateEvent = useSelector(state => state.reducerExtraItems.extraItem);\r\n const cartEvents = useSelector(state => state.reducerShopCart.events);\r\n const bookingTypes = useSelector(state => state.reducerBookingTypes.bookingTypes);\r\n let bookingID = reducerBooking && reducerBooking.booking[0] ? reducerBooking.booking[0].BookingTypeID : 0;\r\n const bkngType = bookingTypes && bookingTypes.length > 0 ? bookingTypes.filter(x => x.BookingTypeID == bookingID)[0] : null;\r\n const extramItemsstate = useSelector(state => state.reducerExtraItems);\r\n const shopcartreducer = useSelector(state => state.reducerShopCart);\r\n\r\n const transactionfee = useSelector(state => state.reducerTransactionFee);\r\n const cashless = useSelector(state => state.reducerShopCart.cashless);\r\n let cashlesstotal = cashless.map(({ HoldAmount }) => HoldAmount).reduce((sum, i) => sum + i, 0);\r\n \r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n const [isredirectclicked, setisredirectclicked] = useState(false);\r\n const [open, setOpen] = React.useState(false);\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const errorcancelhandle = () => {\r\n actionShopCartResetError(dispatch);\r\n seterrorMsg(\"\");\r\n }\r\n\r\n\r\n useEffect(() => {\r\n if (reducerBooking.booking) {\r\n if (reducerBooking.booking.length < 1) {\r\n // props.history.push({\r\n // pathname: '/findmybooking'\r\n // })\r\n }\r\n }\r\n }, []);\r\n\r\n const changeQuantityHandler = (reference, quantity) => {\r\n\r\n if (cartEvents !== undefined && cartEvents.length > 0) {\r\n if (cartEvents[0].TourProducts.filter(x => x.AffectsCapacity).length > 0) {\r\n actionIncreaseQuantity(dispatch, reference.TourProductID, quantity, true, reference.MinimumTickets, reference.MaximumTickets);\r\n return;\r\n }\r\n }\r\n actionIncreaseQuantity(dispatch, reference.TourProductID, quantity, false, reference.MinimumTickets, reference.MaximumTickets);\r\n }\r\n\r\n const changeQuantityCurrentBooking = (reference, quantity) => {\r\n if (reducerBooking && reducerBooking.booking[0]) {\r\n if (quantity < reference.MinimumTickets) {\r\n seterrorMsg(\"Minimum tickets for this event is \" + reference.MinimumTickets + \".\")\r\n return;\r\n }\r\n\r\n actionUpdateQuantity(dispatch, reference.TourProductID, quantity);\r\n\r\n return;\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n let tourevntID = props.location.toureventID ? props.location.toureventID : reducerBooking.booking[0] ? reducerBooking.booking[0].TourEventID : 0;\r\n let memcstRate = reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty('CustomerCostRateID') ? reducerBooking.booking[0].CustomerCostRateID : 0;\r\n actionGetExtraItem(dispatch, tourevntID, true, memcstRate);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (extramItemsstate.loading == true) {\r\n actionStartAppLoader(dispatch);\r\n }\r\n else {\r\n actionEndAppLoader(dispatch);\r\n }\r\n })\r\n\r\n const constredirecttofindmybpooking = () => {\r\n actionResetBooking(dispatch);\r\n actionResetExtraItems(dispatch);\r\n actionShopCartSetManageMyBooking(dispatch, false, true);\r\n actionShopCartResetMembership(dispatch);\r\n actionShopCartResetIDME(dispatch);\r\n\r\n props.history.push({\r\n pathname: '/findmybooking'\r\n })\r\n }\r\n\r\n const addeventstotourholdaction = () => {\r\n\r\n let filterdata = { ...currentDateEvent };\r\n filterdata.TourProducts = filterdata.TourProducts.filter(product => product.Quantity > 0);\r\n let cartdata = [...cartEvents];\r\n\r\n if (filterdata && filterdata.hasOwnProperty('BookingTypeID')) {\r\n let usealternamteMerchant = false;\r\n if (bkngType && bkngType.hasOwnProperty('UseAlternateMerchantOnline')) {\r\n usealternamteMerchant = bkngType.UseAlternateMerchantOnline;\r\n }\r\n\r\n filterdata.UseAlternateMerchantOnline = usealternamteMerchant;\r\n\r\n }\r\n\r\n\r\n actionShopCartAddEventWithTourHold(dispatch, filterdata, cartdata);\r\n\r\n actionShopCartSetManageMyBooking(dispatch, true, true);\r\n }\r\n\r\n useEffect(() => {\r\n\r\n if (isredirectclicked && shopcartreducer.error.length < 1 && shopcartreducer.events && shopcartreducer.events.length > 0) {\r\n let amountToPay = returnproducts();\r\n\r\n amountToPay = addTransFeeWithBalance(amountToPay);\r\n\r\n actionShopCartSetMmbAmountToPay(dispatch, amountToPay);\r\n\r\n props.history.push({\r\n pathname: '/managecheckout',\r\n refundType: ''\r\n })\r\n }\r\n if (isredirectclicked && shopcartreducer.error.length > 0) {\r\n seterrorMsg(shopcartreducer.error);\r\n setisredirectclicked(false);\r\n }\r\n }, [cartEvents, shopcartreducer.error.length > 0]);\r\n\r\n const addTransFeeWithBalance = (balanceOwe) => {\r\n\r\n if (transactionfee.transactionFee && transactionfee.transactionFee.length > 0) {\r\n if (transactionfee.transactionFee[0].TransactionFeeByDefault) {\r\n let transFee = genfunction.TransactionFeeForPartialPayment(transactionfee.transactionFee[0], balanceOwe, cashlesstotal)\r\n\r\n if (transFee > 0) {\r\n actionShopCartSetEnteredAmountToPay(dispatch, balanceOwe);\r\n return genfunction.Rounded(balanceOwe + transFee);\r\n }\r\n }\r\n }\r\n return balanceOwe;\r\n }\r\n\r\n const constredirecttomanagecheckout = () => {\r\n\r\n if (ValidateQuanity()) {\r\n let amounttop = returnproducts();\r\n\r\n let NewQty = currentDateEvent.TourProducts.filter(p => p.AffectsCapacity).reduce((a, b) => {\r\n let aqty = a.Quantity === undefined ? 0 : a.Quantity;\r\n let bqty = b.Quantity === undefined ? 0 : b.Quantity;\r\n let newobj = { Quantity: aqty + bqty }\r\n return newobj;\r\n }).Quantity;\r\n\r\n let PreviousQtyChanges = false;\r\n\r\n if (reducerBooking.booking[0].BookingProducts) {\r\n PreviousQtyChanges = reducerBooking.booking[0].BookingProducts.filter(x => x.isModify).length > 0 ? true : false;\r\n }\r\n\r\n if (amounttop === 0 && NewQty == 0 && !PreviousQtyChanges) {\r\n seterrorMsg(\"No tickets changes are applied.\")\r\n return;\r\n }\r\n\r\n if (amounttop >= 0) {\r\n\r\n addeventstotourholdaction();\r\n setisredirectclicked(true);\r\n }\r\n else {\r\n handleClickOpen();\r\n }\r\n }\r\n\r\n }\r\n\r\n const ValidateQuanity = () => {\r\n let MinTicket = bkngType.MinimumTickets\r\n let MaxTicket = bkngType.MaximumTickets;\r\n\r\n let CartQty = 0;\r\n let NewQty = 0;\r\n let TotalTicketCount = 0;\r\n if (cartEvents && cartEvents.length > 0) {\r\n\r\n let cartTourEvent = cartEvents.find(x => x.TourEventID == currentDateEvent.TourEventID);\r\n if (cartTourEvent && cartTourEvent.TourProducts.length > 0) {\r\n CartQty = cartTourEvent.TourProducts.filter(p => p.AffectsCapacity).reduce((a, b) => {\r\n let aqty = a.Quantity === undefined ? 0 : a.Quantity;\r\n let bqty = b.Quantity === undefined ? 0 : b.Quantity;\r\n let newobj = { Quantity: aqty + bqty }\r\n return newobj;\r\n }).Quantity;\r\n }\r\n }\r\n\r\n NewQty = currentDateEvent.TourProducts.filter(p => p.AffectsCapacity).reduce((a, b) => {\r\n let aqty = a.Quantity === undefined ? 0 : a.Quantity;\r\n let bqty = b.Quantity === undefined ? 0 : b.Quantity;\r\n let newobj = { Quantity: aqty + bqty }\r\n return newobj;\r\n }).Quantity;\r\n\r\n TotalTicketCount = CartQty + NewQty;\r\n\r\n if (currentDateEvent.SeatsAvailable == 0 || currentDateEvent.BookNowOption != \"Book Now\") {\r\n seterrorMsg(\"Tickets not longer available, please choose another time\");\r\n return false;\r\n }\r\n else if (NewQty > currentDateEvent.SeatsAvailable) {\r\n seterrorMsg(\"Maximum of \" + currentDateEvent.SeatsAvailable + \" tickets available\");\r\n return false;\r\n }\r\n else if (TotalTicketCount > MaxTicket) {\r\n seterrorMsg(\"Maximum of \" + MaxTicket + \" tickets allowed\")\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n const applyrefund = (type) => {\r\n\r\n addeventstotourholdaction();\r\n actionShopCartSetMmbAmountToPay(dispatch, returnproducts());\r\n actionShopCartSetRefundType(dispatch, type);\r\n\r\n props.history.push({\r\n pathname: '/managecheckout',\r\n refundType: type\r\n })\r\n }\r\n\r\n const CalculateMaxTickets = (TourProductID) => {\r\n let shopCartConsumed = 0;\r\n\r\n if (cartEvents && cartEvents.length > 0) {\r\n let cartTourEvent = cartEvents.find(x => x.TourEventID == currentDateEvent.TourEventID);\r\n if (cartTourEvent && cartTourEvent.TourProducts.length > 0 && cartTourEvent.TourProducts.filter(p => p.AffectsCapacity).length > 0) {\r\n shopCartConsumed = cartTourEvent.TourProducts.filter(p => p.AffectsCapacity).reduce((a, b) => {\r\n let aqty = a.Quantity === undefined ? 0 : a.Quantity;\r\n let bqty = b.Quantity === undefined ? 0 : b.Quantity;\r\n let newobj = { Quantity: aqty + bqty }\r\n return newobj;\r\n }).Quantity;\r\n }\r\n }\r\n\r\n let consumedQty = 0;\r\n if (currentDateEvent.TourProducts.filter(p => p.TourProductID != TourProductID && p.AffectsCapacity).length > 0) {\r\n consumedQty = currentDateEvent.TourProducts.filter(p => p.TourProductID != TourProductID && p.AffectsCapacity).reduce((a, b) => {\r\n let aqty = a.Quantity === undefined ? 0 : a.Quantity;\r\n let bqty = (b === undefined || b.Quantity === undefined) ? 0 : b.Quantity;\r\n let newobj = { Quantity: aqty + bqty }\r\n return newobj;\r\n }).Quantity;\r\n }\r\n\r\n return bkngType !== undefined ? bkngType.MaximumTickets - consumedQty - shopCartConsumed : 0;\r\n }\r\n\r\n const totalpaid = () => {\r\n let total = 0;\r\n if (reducerBooking.booking && reducerBooking.booking[0] && reducerBooking.booking[0].BookingPayments && reducerBooking.booking[0].BookingPayments.length > 0) {\r\n total = reducerBooking.booking[0].BookingPayments.map(({ PaymentAmount }) => PaymentAmount).reduce((sum, i) => sum + i, 0);\r\n }\r\n\r\n return total;\r\n }\r\n\r\n const returnproducts = () => {\r\n let total = 0;\r\n let actualTotal = 0;\r\n let newTotal = 0;\r\n let eventTotal = currentDateEvent.TotalAmount ? currentDateEvent.TotalAmount : 0;\r\n\r\n if (reducerBooking.booking && reducerBooking.booking[0] && reducerBooking.booking[0].BookingPayments && reducerBooking.booking[0].BookingPayments.length > 0) {\r\n actualTotal = parseFloat(Math.round(reducerBooking.booking[0].BookingProducts.map(({ ProductLinePriceInclTax }) => ProductLinePriceInclTax).reduce((sum, i) => sum + i, 0) * 100) / 100).toFixed(2);\r\n reducerBooking.booking[0].BookingProducts.map(prod => {\r\n if (prod.hasOwnProperty('isModify') && prod.isModify) {\r\n newTotal += prod.newQuantity * (prod.ProductLinePriceInclTax / prod.Quantity);\r\n }\r\n else {\r\n newTotal += prod.ProductLinePriceInclTax;\r\n }\r\n })\r\n\r\n total = parseFloat(Math.round((actualTotal - newTotal) * 100) / 100).toFixed(2);\r\n }\r\n\r\n return eventTotal - parseFloat(total);\r\n }\r\n\r\n const totalpayments = () => {\r\n let total = 0;\r\n if (reducerBooking.booking && reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty('BookingPayments') && reducerBooking.booking[0].BookingPayments.length > 0) {\r\n total = reducerBooking.booking[0].BookingPayments.length;\r\n }\r\n\r\n return total;\r\n }\r\n\r\n\r\n const eligibletxtReturnClass = () => {\r\n let eligibleTxt = \"\";\r\n if (reducerBooking.booking[0]) {\r\n if (reducerBooking.booking[0] && reducerBooking.booking[0].AllowRefunds && totalpayments() === 1 && reducerBooking.booking[0].AllowRefundToGiftcardOnly) {\r\n\r\n if (reducerBooking.booking[0].hasOwnProperty('PaymentToken')) {\r\n eligibleTxt = \"You are eligible for a refund of\" + (reducerBooking.booking[0] ? genfunction.ccyFormat(Math.abs(returnproducts())) : 0) + \" to a gift card or card on file \" + (reducerBooking.booking[0].PaymentDescription !== undefined ? reducerBooking.booking[0].PaymentDescription : '');\r\n }\r\n else {\r\n eligibleTxt = \"You are eligible for a refund of\" + (reducerBooking.booking[0] ? genfunction.ccyFormat(Math.abs(returnproducts())) : 0) + \" to a gift card.\";\r\n }\r\n }\r\n else if (reducerBooking.booking[0].AllowRefundToGiftcardOnly && reducerBooking.booking[0].AllowRefunds == false) {\r\n eligibleTxt = \"You are eligible for a refund of\" + (reducerBooking.booking[0] ? genfunction.ccyFormat(Math.abs(returnproducts())) : 0) + \" to a gift card.\";\r\n }\r\n else if (reducerBooking.booking[0] && reducerBooking.booking[0].AllowRefunds && totalpayments() === 1 && reducerBooking.booking[0].hasOwnProperty('PaymentToken')) {\r\n eligibleTxt = \"You are eligible for a refund of \" + (reducerBooking.booking[0] ? genfunction.ccyFormat(Math.abs(returnproducts())) : 0) + \" through card on file \" + (reducerBooking.booking[0].PaymentDescription !== undefined ? reducerBooking.booking[0].PaymentDescription : '');\r\n }\r\n\r\n return eligibleTxt;\r\n }\r\n }\r\n\r\n const redirecttofindmybpooking = () => {\r\n\r\n props.history.push({\r\n pathname: '/findmybooking'\r\n })\r\n }\r\n\r\n return (\r\n\r\n\r\n //Desktop and Laptop (smDown)\r\n //Tablet (xsDown mdUp)\r\n //Mobile (smUp)\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {ModifyTicketsHeading}\r\n \r\n \r\n\r\n \r\n \r\n {ModifyTicketsHeading}\r\n \r\n \r\n\r\n \r\n \r\n {ModifyTicketsHeading}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Current Tickets\r\n \r\n \r\n\r\n \r\n \r\n Current Tickets\r\n \r\n \r\n\r\n \r\n \r\n Current Tickets\r\n \r\n \r\n\r\n \r\n \r\n These are the current tickets in your existing order. You can either remove items here and/or use the section below to add any available tickets to your order.\r\n \r\n\r\n \r\n\r\n \r\n \r\n These are the current tickets in your existing order. You can either remove items here and/or use the section below to add any available tickets to your order.\r\n \r\n\r\n \r\n\r\n \r\n \r\n These are the current tickets in your existing order. You can either remove items here and/or use the section below to add any available tickets to your order.\r\n \r\n\r\n \r\n\r\n\r\n \r\n {reducerBooking.booking[0] && reducerBooking.booking[0].hasOwnProperty(\"BookingProducts\") ?\r\n reducerBooking.booking[0].BookingProducts.map((product, i) => {\r\n\r\n return product.Quantity ?\r\n\r\n \r\n\r\n \r\n\r\n \r\n {product.TourProductName + ' ' + genfunction.ccyFormat(product.Price)}\r\n \r\n\r\n \r\n {product.TourProductName + ' ' + genfunction.ccyFormat(product.Price)}\r\n \r\n\r\n \r\n {product.TourProductName + ' ' + genfunction.ccyFormat(product.Price)}\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n {product.IsRefundable === false ? \"Not Refundable\" : \"\"}\r\n \r\n\r\n \r\n {product.IsRefundable === false ? \"Not Refundable\" : \"\"}\r\n \r\n\r\n \r\n {product.IsRefundable === false ? \"Not Refundable\" : \"\"}\r\n \r\n\r\n \r\n \r\n : null\r\n }) : null}\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n Tickets Available\r\n \r\n \r\n\r\n \r\n \r\n Tickets Available\r\n \r\n \r\n\r\n \r\n \r\n Tickets Available\r\n \r\n \r\n\r\n \r\n \r\n Use plus button to add tickets to this reservation.\r\n \r\n \r\n\r\n \r\n \r\n Use plus button to add tickets to this reservation.\r\n \r\n \r\n\r\n \r\n \r\n Use plus button to add tickets to this reservation.\r\n \r\n \r\n\r\n\r\n \r\n {currentDateEvent.hasOwnProperty(\"TourProducts\") ?\r\n currentDateEvent.TourProducts.map((product, i) => {\r\n\r\n return product.AffectsCapacity && product.AvailableOnline && product.PriceMatrix !== undefined && product.PriceMatrix.length > 0\r\n && product.TourProductID !== bkngType.ChaperoneTourProductID ?\r\n\r\n \r\n \r\n\r\n \r\n {product.TourProductName + ' ' + genfunction.ccyFormat(product.PriceMatrix[0].Price)}\r\n \r\n\r\n \r\n {product.TourProductName + ' ' + genfunction.ccyFormat(product.PriceMatrix[0].Price)}\r\n \r\n\r\n \r\n {product.TourProductName + ' ' + genfunction.ccyFormat(product.PriceMatrix[0].Price)}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {\r\n \r\n {currentDateEvent.hasOwnProperty('SeatsAvailable') && currentDateEvent.SeatsAvailable < 1 ? \"No available tickets\" : \"\"}\r\n \r\n\r\n \r\n {currentDateEvent.hasOwnProperty('SeatsAvailable') && currentDateEvent.SeatsAvailable < 1 ? \"No available tickets\" : \"\"}\r\n \r\n\r\n \r\n {currentDateEvent.hasOwnProperty('SeatsAvailable') && currentDateEvent.SeatsAvailable < 1 ? \"No available tickets\" : \"\"}\r\n \r\n\r\n }\r\n \r\n : null\r\n }) : null}\r\n\r\n \r\n \r\n Use plus and minus buttons to adjust selected add ons.\r\n \r\n \r\n\r\n \r\n \r\n Use plus and minus buttons to adjust selected add ons.\r\n \r\n \r\n\r\n \r\n \r\n Use plus and minus buttons to adjust selected add ons.\r\n \r\n \r\n\r\n {currentDateEvent.hasOwnProperty(\"TourProducts\") ?\r\n currentDateEvent.TourProducts.map((product, i) => {\r\n\r\n return product.AffectsCapacity === false && product.AvailableOnline && product.PriceMatrix !== undefined && product.PriceMatrix.length > 0\r\n && product.TourProductID !== bkngType.ChaperoneTourProductID ?\r\n\r\n \r\n \r\n\r\n \r\n {product.TourProductName + ' ' + genfunction.ccyFormat(product.PriceMatrix[0].Price)}\r\n \r\n\r\n \r\n {product.TourProductName + ' ' + genfunction.ccyFormat(product.PriceMatrix[0].Price)}\r\n \r\n\r\n \r\n {product.TourProductName + ' ' + genfunction.ccyFormat(product.PriceMatrix[0].Price)}\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n : null\r\n }) : null}\r\n \r\n \r\n\r\n \r\n \r\n \r\n Booking Summary\r\n \r\n \r\n\r\n \r\n \r\n Booking Summary\r\n \r\n \r\n\r\n \r\n \r\n Booking Summary\r\n \r\n \r\n\r\n \r\n \r\n Current Booking Cost : {reducerBooking.booking[0] ? genfunction.ccyFormat(totalpaid()) : 0}\r\n \r\n \r\n\r\n \r\n \r\n Current Booking Cost : {reducerBooking.booking[0] ? genfunction.ccyFormat(totalpaid()) : 0}\r\n \r\n \r\n\r\n \r\n \r\n Current Booking Cost : {reducerBooking.booking[0] ? genfunction.ccyFormat(totalpaid()) : 0}\r\n \r\n \r\n\r\n \r\n \r\n New Total Cost : {genfunction.ccyFormat(returnproducts())}\r\n \r\n \r\n\r\n \r\n \r\n New Total Cost : {genfunction.ccyFormat(returnproducts())}\r\n \r\n \r\n\r\n \r\n \r\n New Total Cost : {genfunction.ccyFormat(returnproducts())}\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {\"Refund Transaction\"}\r\n \r\n \r\n\r\n\r\n \r\n \r\n {\"Your previous payment: \" + (reducerBooking.booking[0] ? genfunction.ccyFormat(totalpaid()) : 0)}\r\n \r\n \r\n {\"Now we owe you: \" + genfunction.ccyFormat(Math.abs(returnproducts()))}\r\n \r\n \r\n\r\n \r\n \r\n {\"Your previous payment:\" + (reducerBooking.booking[0] ? genfunction.ccyFormat(totalpaid()) : 0)}\r\n \r\n \r\n {\"Now we owe you: \" + genfunction.ccyFormat(Math.abs(returnproducts()))}\r\n \r\n \r\n\r\n \r\n \r\n {\"Your previous payment:\" + (reducerBooking.booking[0] ? genfunction.ccyFormat(totalpaid()) : 0)}\r\n \r\n \r\n {\"Now we owe you: \" + genfunction.ccyFormat(Math.abs(returnproducts()))}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n applyrefund('GiftCardRefund')}\r\n variant=\"contained\" size=\"medium\" color=\"primary\"\r\n className={reducerBooking.booking[0] && (reducerBooking.booking[0].AllowRefunds || reducerBooking.booking[0].AllowRefundToGiftcardOnly) ? '' : classes.hideBtn} >\r\n {RefundGiftCardButton}\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n applyrefund('GiftCardRefund')}\r\n variant=\"contained\" size=\"small\" color=\"primary\"\r\n className={reducerBooking.booking[0] && (reducerBooking.booking[0].AllowRefunds || reducerBooking.booking[0].AllowRefundToGiftcardOnly) ? '' : classes.hideBtn} >\r\n {RefundGiftCardButton}\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n applyrefund('GiftCardRefund')}\r\n variant=\"contained\" size=\"small\" color=\"primary\"\r\n className={reducerBooking.booking[0] && (reducerBooking.booking[0].AllowRefunds || reducerBooking.booking[0].AllowRefundToGiftcardOnly) ? '' : classes.hideBtn} >\r\n {RefundGiftCardButton}\r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n \r\n Please go to find my booking page to Update Booking.\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ModifyTicketsAddons;\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Card, CardContent, CardActions, Typography, Button, CardHeader } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n card: {\r\n \"&:hover\": {\r\n transform: 'scale(1.02)',\r\n WebkitTransform: 'scale(1.02)',\r\n boxShadow: \"inset 0 0 0 2px\",\r\n cursor: 'pointer'\r\n }\r\n },\r\n tourheaderbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n }\r\n}));\r\n\r\nconst GiftCardAreaCard = props => {\r\n\r\n const { className, area } = props;\r\n const classes = useStyles();\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {area.DisplayText}\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default GiftCardAreaCard;\r\n","import Moment from 'moment';\r\nimport React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Container, Grid, Hidden, CardContent, TextField, Typography, Button, MenuItem, Select, CardHeader } from '@material-ui/core';\r\nimport { actionAddToCartGiftCards, actionGetGiftCards, actionUpdateGiftCardDropDown, actionUpdateGiftCrdQuantity, actionUpdateGiftCardCustomAmout } from 'actions';\r\nimport * as underscore from 'underscore';\r\nimport NumberSpinner from 'components/InputControls/NumberSpinner';\r\nimport { genfunction } from '../../../../helpers';\r\nimport ErrorHandling from '../../../../components/ErrorHandling/ErrorHandling';\r\n\r\n\r\nconst { GiftCardsHeading, OrderItemsInCartError, Currency } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n gcImg: {\r\n minHeight: '80px',\r\n maxHeight: '250px',\r\n minWidth: '100px',\r\n maxWidth: '340px'\r\n },\r\n gcImgSmall: {\r\n minHeight: '60px',\r\n maxHeight: '110px',\r\n minWidth: '70px',\r\n maxWidth: '140px'\r\n },\r\n headerText: {\r\n paddingBottom: 15,\r\n textAlign: \"center\"\r\n },\r\n}));\r\n\r\n\r\nconst MainGiftCards = props => {\r\n\r\n const dispatch = useDispatch()\r\n const classes = useStyles();\r\n const [errorMsg, seterrorMsg] = React.useState('');\r\n\r\n useEffect(() => {\r\n if (giftcards.giftcards && giftcards.giftcards.length < 1) {\r\n actionGetGiftCards(dispatch, props.match.params.id);\r\n }\r\n else if (giftcards.giftcards && giftcards.giftcards.length > 0 && giftcards.giftcards.find(x => x.DisplayArea === parseInt(props.match.params.id)) === undefined) {\r\n actionGetGiftCards(dispatch, props.match.params.id);\r\n }\r\n }, []);\r\n\r\n\r\n const giftcards = useSelector(state => state.reducerGiftCards);\r\n const error = useSelector(state => state.reducerGiftCards.giftcardsError);\r\n const orderProducts = useSelector(state => state.reducerShopCart.orderProducts);\r\n\r\n const GetGroupedGiftCards = () => {\r\n let today = Moment(Moment().format(\"YYYY-MM-DD\"), \"YYYY-MM-DD\");\r\n\r\n let filteredGCs = underscore.filter(giftcards.giftcards, (item) => {\r\n\r\n let sellStart = Moment(item.SellStart, \"YYYY-MM-DD\");\r\n let sellEnd = Moment(item.SellEnd, \"YYYY-MM-DD\");\r\n\r\n return item.DisplayArea == parseInt(props.match.params.id) && today.isBetween(sellStart, sellEnd, null, '[]');\r\n\r\n });\r\n\r\n let group = underscore\r\n .groupBy(filteredGCs, (giftcard) => { return giftcard.ProductImageURL; });\r\n\r\n return group;\r\n }\r\n\r\n const [state, setState] = React.useState([]);\r\n\r\n if (giftcards.giftcards && giftcards.giftcards.length > 0 && state.length < 1) {\r\n\r\n //giftcards.giftcards = giftcards.giftcards.filter(x => x.DisplayArea === parseInt(props.match.params.id));\r\n\r\n setState([...state, giftcards.giftcards]);\r\n }\r\n\r\n\r\n const fieldhandleChange = (event) => {\r\n if (event.target.name === \"cstAmount\") {\r\n actionUpdateGiftCardDropDown(dispatch, event.target.name, parseFloat(event.target.id));\r\n }\r\n else {\r\n actionUpdateGiftCardDropDown(dispatch, event.target.name, event.target.value);\r\n }\r\n }\r\n\r\n const SelectedGiftCardValue = (key) => {\r\n let val = \"None\";\r\n\r\n if (giftcards.giftcards && giftcards.giftcards.length > 0) {\r\n if (giftcards.giftcards.filter(x => x.ProductImageURL === key && x.isSelected).length > 0) {\r\n if (giftcards.giftcards.find(x => x.ProductImageURL === key && x.isSelected) !== undefined) {\r\n val = giftcards.giftcards.find(x => x.ProductImageURL === key && x.isSelected).Price;\r\n }\r\n\r\n }\r\n }\r\n\r\n return val;\r\n }\r\n\r\n const SelectedGiftCardProdID = (key) => {\r\n let prodID = 0;\r\n\r\n if (giftcards.giftcards && giftcards.giftcards.length > 0) {\r\n if (giftcards.giftcards.filter(x => x.ProductImageURL === key && x.isSelected).length > 0) {\r\n\r\n if (giftcards.giftcards.find(x => x.ProductImageURL === key && x.isSelected) !== undefined) {\r\n prodID = giftcards.giftcards.find(x => x.ProductImageURL === key && x.isSelected).ProductID;\r\n }\r\n }\r\n }\r\n\r\n return prodID;\r\n }\r\n\r\n const SelectedGiftCardQty = (key) => {\r\n let quantity = 0;\r\n\r\n if (giftcards.giftcards && giftcards.giftcards.length > 0) {\r\n if (giftcards.giftcards.filter(x => x.ProductImageURL === key && x.isSelected).length > 0) {\r\n quantity = giftcards.giftcards.find(x => x.ProductImageURL === key && x.isSelected).Qty;\r\n }\r\n }\r\n\r\n return quantity;\r\n }\r\n\r\n const CustomGiftCard = (key) => {\r\n let cstGiftCard = false;\r\n\r\n if (giftcards.giftcards && giftcards.giftcards.length > 0) {\r\n if (giftcards.giftcards.find(x => x.ProductImageURL === key && x.MaxPrice !== undefined) !== undefined) {\r\n cstGiftCard = true;\r\n }\r\n }\r\n\r\n return cstGiftCard;\r\n }\r\n\r\n const changeQuantityHandler = (refrence, value) => {\r\n actionUpdateGiftCrdQuantity(dispatch, refrence.tourProductID, value, false);\r\n }\r\n\r\n const replaceEscapeCharacters = (item) => {\r\n var itemValue = item.split(\"\\\\r\\\\n\").join(\"
\");\r\n itemValue = itemValue.split(\"\\\\\").join(\"\");\r\n return itemValue;\r\n }\r\n\r\n const GiftCardsTotal = () => {\r\n let total = 0;\r\n total = giftcards.giftcards ? giftcards.giftcards.filter(x => x.DisplayArea === parseInt(props.match.params.id)).map(({ TotalAmount }) => TotalAmount).reduce((sum, i) => sum + i, 0) : 0;\r\n return total;\r\n }\r\n\r\n const UpdateCustomAmout = (event) => {\r\n\r\n if (parseFloat(event.target.value) >= 0) {\r\n\r\n var gc = giftcards.giftcards.find(x => x.ProductID === parseInt(event.target.id));\r\n\r\n if (gc && parseFloat(event.target.value) > 0) {\r\n actionUpdateGiftCardCustomAmout(dispatch, parseInt(event.target.id), parseFloat(event.target.value), false);\r\n }\r\n }\r\n }\r\n\r\n const CustomGiftCardVal = (prodID) => {\r\n\r\n let val = false;\r\n\r\n if (giftcards.giftcards && giftcards.giftcards.length > 0) {\r\n if (giftcards.giftcards.find(x => x.ProductID === prodID) !== undefined) {\r\n val = giftcards.giftcards.find(x => x.ProductID === prodID).TotalAmount;\r\n }\r\n }\r\n return val;\r\n }\r\n\r\n const ValidateCustomGCs = () => {\r\n\r\n let valid = true;\r\n\r\n if (giftcards.giftcards && giftcards.giftcards.length > 0 && giftcards.giftcards.filter(x => x.CustomAmount !== undefined).length > 0) {\r\n giftcards.giftcards.filter(x => x.CustomAmount !== undefined).map(gc => {\r\n if (gc.InvalidAmount) {\r\n valid = false;\r\n }\r\n });\r\n }\r\n\r\n return valid;\r\n }\r\n\r\n const AddToCard = () => {\r\n\r\n if (orderProducts && orderProducts.length > 0) {\r\n seterrorMsg(OrderItemsInCartError);\r\n return;\r\n }\r\n\r\n if (giftcards.giftcards && giftcards.giftcards.find(x => x.Qty > 0) !== undefined) {\r\n\r\n if (!ValidateCustomGCs()) {\r\n seterrorMsg('Please enter valid amount.');\r\n return;\r\n }\r\n\r\n actionAddToCartGiftCards(dispatch, parseInt(props.match.params.id));\r\n\r\n props.history.push({\r\n pathname: '/checkout'\r\n })\r\n }\r\n else {\r\n seterrorMsg('Please select any giftcard');\r\n }\r\n }\r\n\r\n const errorcancelhandle = () => {\r\n seterrorMsg('');\r\n }\r\n\r\n return (\r\n \r\n 0 ? errorMsg : ''}\r\n open={errorMsg && errorMsg.length > 0 ? true : false} handleclose={errorcancelhandle} />\r\n {GiftCardsHeading}\r\n \r\n \r\n\r\n {giftcards.giftcards && underscore.map(GetGroupedGiftCards(), (items, key) => {\r\n return (\r\n <>\r\n \r\n {items.DisplayArea === parseInt(props.match.params.id) && items.length > 1 || !CustomGiftCard(key) ?\r\n \r\n \r\n < img src={genfunction.replaceEscapeCharacters(key)} className={classes.gcImg} />\r\n \r\n\r\n \r\n < img src={genfunction.replaceEscapeCharacters(key)} className={classes.gcImgSmall} />\r\n \r\n\r\n \r\n < img src={genfunction.replaceEscapeCharacters(key)} className={classes.gcImgSmall} />\r\n \r\n\r\n \r\n :\r\n \r\n \r\n < img src={genfunction.replaceEscapeCharacters(key)} className={classes.gcImg} />\r\n \r\n\r\n \r\n < img src={genfunction.replaceEscapeCharacters(key)} className={classes.gcImgSmall} />\r\n \r\n\r\n \r\n < img src={genfunction.replaceEscapeCharacters(key)} className={classes.gcImgSmall} />\r\n \r\n\r\n \r\n }\r\n \r\n \r\n\r\n {items.length > 1 ?\r\n \r\n \r\n Select Amount\r\n \r\n {items.map((item, i) =>\r\n ({item.ProductName}))}\r\n \r\n \r\n { changeQuantityHandler(refrence, value) }}\r\n >\r\n \r\n \r\n :\r\n <>\r\n {items[0].hasOwnProperty(\"MaxPrice\") ?\r\n \r\n \r\n {Currency}\r\n\r\n \r\n \r\n\r\n (Min ${items[0].Price}, Max ${items[0].MaxPrice})\r\n \r\n :\r\n \r\n {items[0].ProductName}\r\n { changeQuantityHandler(refrence, value) }}\r\n >\r\n \r\n }\r\n \r\n }\r\n\r\n \r\n \r\n )\r\n })}\r\n\r\n \r\n \r\n \r\n Total = {genfunction.ccyFormat(GiftCardsTotal())}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport default MainGiftCards;\r\n","import React, { useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Grid } from '@material-ui/core';\r\nimport { GiftCardAreaCard } from './components';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport ErrorHandling from '../../components/ErrorHandling/ErrorHandling';\r\nimport { actionGetGiftCardDisplayAreas, actionResetGiftCardDisplayAreas } from 'actions';\r\nimport { actionStartAppLoader, actionEndAppLoader } from '../../actions/actionAppLoader';\r\nimport { actionResetPaymentTransaction } from 'actions';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3)\r\n },\r\n pagination: {\r\n marginTop: theme.spacing(3),\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end'\r\n }\r\n}));\r\n\r\nconst GiftCardsAreasList = (props) => {\r\n\r\n const constredirect = (area) => {\r\n\r\n if (area) {\r\n props.history.push({\r\n pathname: 'giftcards/' + area.DisplayAreaNo\r\n })\r\n }\r\n }\r\n\r\n const dispatch = useDispatch()\r\n\r\n useEffect(() => {\r\n actionGetGiftCardDisplayAreas(dispatch);\r\n }, []);\r\n\r\n\r\n const classes = useStyles();\r\n const giftcardAreaNumbers = useSelector(state => state.reducerGiftCardDisplayAreas);\r\n const error = useSelector(state => state.reducerDisplayAreas.displayAreasError);\r\n const giftcards = useSelector(state => state.reducerGiftCards);\r\n const events = useSelector(state => state.reducerShopCart.events);\r\n const paymenttranstate = useSelector(state => state.reducerPaymentTransaction.Payment);\r\n const gaTickets = useSelector(state => state.reducerShopCart.GATickets);\r\n const membershipPackages = useSelector(state => state.reducerShopCart.MembershipPackages);\r\n const donationProducts = useSelector(state => state.reducerShopCart.donationProducts);\r\n\r\n useEffect(() => {\r\n if (events && events.length == 0 && membershipPackages && membershipPackages.length == 0 && gaTickets && gaTickets.length == 0 &&\r\n giftcards.giftcards && giftcards.giftcards.length == 0 && donationProducts && donationProducts.length == 0 && paymenttranstate.hasOwnProperty(\"ReceiptNo\") && paymenttranstate.ReceiptNo.toString().length > 0) {\r\n actionResetPaymentTransaction(dispatch);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n if (giftcardAreaNumbers.loading == true) {\r\n actionStartAppLoader(dispatch);\r\n }\r\n else {\r\n actionEndAppLoader(dispatch);\r\n }\r\n })\r\n\r\n const errorcancelhandle = () => {\r\n actionResetGiftCardDisplayAreas(dispatch);\r\n }\r\n\r\n if (giftcardAreaNumbers.giftcardsdisplayAreas === undefined) {\r\n return
\r\n 0 ? true : false}\r\n handleclose={errorcancelhandle} />\r\n
\r\n }\r\n\r\n return (\r\n\r\n
\r\n\r\n
\r\n \r\n {giftcardAreaNumbers.giftcardsdisplayAreas.map((area, i) => {\r\n return area.ShowOnline && area !== undefined ?\r\n \r\n \r\n \r\n\r\n : null\r\n })}\r\n\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default GiftCardsAreasList;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Button, Grid, Typography, IconButton } from '@material-ui/core';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { genfunction } from 'helpers'\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport { useLocation } from \"react-router-dom\";\r\nimport InfoIcon from '@material-ui/icons/Info'\r\nimport moment from 'moment';\r\n\r\nimport { actionShopcartResetOrderProducts } from 'actions'\r\nimport ErrorHandling from 'components/ErrorHandling/ErrorHandling';\r\n\r\nconst { } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n paddingTop: 10,\r\n paddingBottom: 10\r\n },\r\n primarycolor: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n titleText: {\r\n paddingLeft: 5,\r\n paddingRight: 5\r\n },\r\n subTitleText: {\r\n paddingLeft: 5,\r\n paddingRight: 5\r\n },\r\n button: {\r\n width: 130\r\n }\r\n}));\r\n\r\nconst OrderLocationItem = (props) => {\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const { Location } = props;\r\n\r\n const getStoreOpenDays = () => {\r\n let openDays = \"\";\r\n if (Location.OpeningTimes) {\r\n openDays = Location.OpeningTimes[0].Day.substr(0, 3);\r\n if (Location.OpeningTimes.length > 0) {\r\n openDays += \" - \" + Location.OpeningTimes[Location.OpeningTimes.length - 1].Day.substr(0, 3);\r\n }\r\n }\r\n\r\n return openDays;\r\n }\r\n\r\n const getDayOfWeek = (date) => {\r\n const dayOfWeek = new Date(date).getDay();\r\n return isNaN(dayOfWeek) ? null :\r\n ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'][dayOfWeek];\r\n }\r\n\r\n const getStoreOpenTimes = () => {\r\n let openDaysTime = \"\";\r\n let day = getDayOfWeek(Date.now());\r\n if (Location.OpeningTimes && Location.OpeningTimes.length > 0) {\r\n let times = Location.OpeningTimes.find(x => x.Day.toUpperCase() == day.toUpperCase());\r\n if (times) {\r\n let storeOpenTime = moment(moment().format(\"DD-MMM-YYYY \") + Location.OpeningTimes[0].Open);\r\n let storeCloseTime = moment(moment().format(\"DD-MMM-YYYY \") + Location.OpeningTimes[0].Close);\r\n openDaysTime = \"Open Today : \" + storeOpenTime.format(\"hh:mm a\") + \" - \" + storeCloseTime.format(\"hh:mm a\")\r\n }\r\n }\r\n\r\n return openDaysTime;\r\n }\r\n\r\n const isStoreOpenNow = () => {\r\n let isOpen = false;\r\n let day = getDayOfWeek(Date.now());\r\n if (Location.OpeningTimes && Location.OpeningTimes.length > 0) {\r\n let times = Location.OpeningTimes.find(x => x.Day.toUpperCase() == day.toUpperCase());\r\n if (times) {\r\n let storeOpenTime = moment(moment().format(\"DD-MMM-YYYY \") + Location.OpeningTimes[0].Open);\r\n let storeCloseTime = moment(moment().format(\"DD-MMM-YYYY \") + Location.OpeningTimes[0].Close);\r\n let now = moment();\r\n if (now > storeOpenTime && now < storeCloseTime) {\r\n isOpen = true;\r\n }\r\n }\r\n }\r\n\r\n return isOpen;\r\n }\r\n\r\n const onClickStoreHandler = () => {\r\n actionShopcartResetOrderProducts(dispatch);\r\n props.history.push('/orderlocationtab/' + Location.OrderLocation);\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n {Location.OrderLocation}\r\n {getStoreOpenTimes()}\r\n {Location.AverageWaitMinutes ?\r\n {\"Avg Wait Time : \" + Location.AverageWaitMinutes + \" minutes\"} : \"\"}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default OrderLocationItem;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Grid } from '@material-ui/core';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nimport {\r\n actionGetOrderLocationsByDisplayArea, actionShopcartResetOrderProducts,\r\n actionResetPaymentTransaction\r\n} from 'actions'\r\n\r\nimport { actionStartAppLoader, actionEndAppLoader } from 'actions/actionAppLoader';\r\nimport ErrorHandling from 'components/ErrorHandling/ErrorHandling';\r\nimport OrderLocationItem from './components/OrderLocationItem'\r\n\r\nconst { } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3)\r\n }\r\n}));\r\n\r\nconst OrderLocationScreen = (props) => {\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n\r\n const payment = useSelector(state => state.reducerPaymentTransaction.Payment);\r\n const orderLocationsLoading = useSelector(state => state.reducerOrderLocations.loading);\r\n const orderLocations = useSelector(state => state.reducerOrderLocations.orderLocations);\r\n\r\n useEffect(() => {\r\n if (payment && payment.ReceiptNo && payment.ReceiptNo.toString().length > 0) {\r\n actionResetPaymentTransaction(dispatch);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n let areaNo = 0;\r\n\r\n if (props.match.path == \"/orderlocation/Area/:id\")\r\n areaNo = props.match.params.id;\r\n\r\n actionGetOrderLocationsByDisplayArea(dispatch, areaNo);\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (orderLocationsLoading) {\r\n actionStartAppLoader(dispatch);\r\n }\r\n else {\r\n actionEndAppLoader(dispatch);\r\n }\r\n }, [orderLocationsLoading])\r\n\r\n useEffect(() => {\r\n if (orderLocations && orderLocations.length == 1) {\r\n actionShopcartResetOrderProducts(dispatch);\r\n props.history.push('/orderlocationtab/' + orderLocations[0].OrderLocation);\r\n }\r\n }, [orderLocationsLoading])\r\n\r\n const errorcancelhandle = () => {\r\n seterrorMsg(\"\");\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {orderLocations.map(location => {\r\n return ()\r\n })}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default OrderLocationScreen;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Button, Grid, Typography, FormControl, RadioGroup, FormControlLabel, Radio } from '@material-ui/core';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport {\r\n actionGetOrderLocationsByDisplayArea, actionShopcartResetOrderProducts,\r\n actionResetPaymentTransaction\r\n} from 'actions'\r\n\r\nimport { actionStartAppLoader, actionEndAppLoader } from 'actions/actionAppLoader';\r\nimport ErrorHandling from 'components/ErrorHandling/ErrorHandling';\r\n\r\nconst { OrderLocationPageTabTitle } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3)\r\n },\r\n radioGroup: {\r\n display: \"flex !important\"\r\n }\r\n}));\r\n\r\nconst OrderLocationTab = (props) => {\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n let [orderLocation, setOrderLocation] = useState(null);\r\n let [tabLocation, setTabLocation] = useState(0);\r\n\r\n const payment = useSelector(state => state.reducerPaymentTransaction.Payment);\r\n const orderLocationsLoading = useSelector(state => state.reducerOrderLocations.loading);\r\n const orderLocations = useSelector(state => state.reducerOrderLocations.orderLocations);\r\n const orderLocationOrignal = useSelector(state => state.reducerOrderLocations.orderLocation);\r\n\r\n useEffect(() => {\r\n if (props.match.path == \"/orderlocationtab/:name\") {\r\n if (orderLocations == undefined || orderLocations.length == 0)\r\n actionGetOrderLocationsByDisplayArea(dispatch, 0);\r\n }\r\n else {\r\n props.history.push('/notfound');\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (orderLocations && orderLocations.length > 0) {\r\n var orderLocation = orderLocations.find(x => x.OrderLocation == props.match.params.name);\r\n\r\n setOrderLocation(orderLocation)\r\n if (orderLocationOrignal && orderLocationOrignal.OrderLocation != orderLocation.OrderLocation) {\r\n actionShopcartResetOrderProducts(dispatch);\r\n }\r\n\r\n if (orderLocation && orderLocation.TabLocations && orderLocation.TabLocations.length == 1) {\r\n props.history.push('/ordermenu/' + orderLocation.TabLocations[0].TabLocationID);\r\n }\r\n }\r\n }, [orderLocations])\r\n\r\n useEffect(() => {\r\n if (orderLocationsLoading) {\r\n actionStartAppLoader(dispatch);\r\n }\r\n else {\r\n actionEndAppLoader(dispatch);\r\n }\r\n }, [orderLocationsLoading])\r\n\r\n\r\n const errorcancelhandle = () => {\r\n seterrorMsg(\"\");\r\n }\r\n\r\n const onClickBrowserMenuHandler = () => {\r\n let tabLocationID = orderLocation.TabLocations.find(x => x.TabLocationName == tabLocation).TabLocationID;\r\n props.history.push('/ordermenu/' + tabLocationID);\r\n }\r\n\r\n useEffect(() => {\r\n if (payment && payment.ReceiptNo && payment.ReceiptNo.toString().length > 0) {\r\n actionResetPaymentTransaction(dispatch);\r\n }\r\n }, []);\r\n\r\n if (orderLocation == undefined)\r\n return null\r\n else\r\n return (\r\n
\r\n \r\n \r\n \r\n {orderLocation.OrderLocation}\r\n \r\n \r\n \r\n {OrderLocationPageTabTitle}\r\n { setTabLocation(event.target.value) }}>\r\n {orderLocation.TabLocations.map(tl => {\r\n return (} label={tl.TabLocationName} />)\r\n })}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default OrderLocationTab;\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Grid, Typography } from '@material-ui/core';\r\nimport { genfunction } from 'helpers'\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n MenuImage: {\r\n width: 100,\r\n height: 100,\r\n maxWidth: 100,\r\n maxHeight: 100\r\n },\r\n MenuBox: {\r\n cursor: \"pointer\"\r\n }\r\n}));\r\n\r\nconst MenuItem = (props) => {\r\n\r\n const classes = useStyles();\r\n const { Menu } = props;\r\n\r\n const onClickMenuHandler = (menuName) => {\r\n props.history.push('/ordersubmenu/' + menuName);\r\n }\r\n\r\n return (\r\n { onClickMenuHandler(Menu.MenuName); }}>\r\n \r\n {Menu.MenuImageURL && Menu.MenuImageURL != \"\" ?\r\n :
}\r\n
\r\n \r\n {Menu.MenuName}\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default MenuItem;","import React, { useEffect, useState, useRef } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Button, Grid, Typography, Link } from '@material-ui/core';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { genfunction } from 'helpers'\r\n\r\nimport {\r\n actionGetOrderLocationsByDisplayArea, actionGetOrderMenuByDisplayArea,\r\n actionSetOrderLocation, actionResetPaymentTransaction\r\n} from 'actions'\r\n\r\nimport { actionStartAppLoader, actionEndAppLoader } from 'actions/actionAppLoader';\r\nimport ErrorHandling from 'components/ErrorHandling/ErrorHandling';\r\nimport MenuItem from './components/MenuItem'\r\n\r\nconst { ShowOrderItemPriceAs } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3)\r\n },\r\n MenuImage: {\r\n width: 100,\r\n height: 100,\r\n maxWidth: 100,\r\n maxHeight: 100\r\n },\r\n MenuBox: {\r\n cursor: \"pointer\"\r\n }\r\n}));\r\n\r\nconst OrderMenu = (props) => {\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n\r\n const payment = useSelector(state => state.reducerPaymentTransaction.Payment);\r\n const orderLocationsLoading = useSelector(state => state.reducerOrderLocations.loading);\r\n const orderLocations = useSelector(state => state.reducerOrderLocations.orderLocations);\r\n const orderLocation = useSelector(state => state.reducerOrderLocations.orderLocation);\r\n const orderMenuloading = useSelector(state => state.reducerOrderMenu.loading);\r\n const orderMenu = useSelector(state => state.reducerOrderMenu.orderMenu);\r\n const orderProducts = useSelector(state => state.reducerShopCart.orderProducts);\r\n\r\n useEffect(() => {\r\n if (payment && payment.ReceiptNo && payment.ReceiptNo.toString().length > 0) {\r\n actionResetPaymentTransaction(dispatch);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.match.path == \"/ordermenu/:id\") {\r\n if (orderLocations == undefined || orderLocations.length == 0)\r\n actionGetOrderLocationsByDisplayArea(dispatch, 0);\r\n }\r\n else {\r\n props.history.push('/notfound');\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0)\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (orderLocations && orderLocations.length > 0) {\r\n var tabLocationID = props.match.params.id;\r\n let tl = { ...orderLocations.find(x => x.TabLocations.find(x => x.TabLocationID == tabLocationID) != undefined) };\r\n tl.TabLocations = tl.TabLocations.filter(x => x.TabLocationID == tabLocationID);\r\n actionSetOrderLocation(dispatch, tl);\r\n actionGetOrderMenuByDisplayArea(dispatch, tl.DisplayArea);\r\n }\r\n }, [orderLocations])\r\n\r\n useEffect(() => {\r\n if (orderLocationsLoading || orderMenuloading) {\r\n actionStartAppLoader(dispatch);\r\n }\r\n else if (orderLocationsLoading == false && orderMenuloading == false) {\r\n actionEndAppLoader(dispatch);\r\n }\r\n }, [orderLocationsLoading, orderMenuloading])\r\n\r\n\r\n const errorcancelhandle = () => {\r\n seterrorMsg(\"\");\r\n }\r\n\r\n const onClickCheckoutHandler = () => {\r\n if (orderProducts && orderProducts.length > 0) {\r\n props.history.push('/revieworderproducts');\r\n }\r\n else {\r\n seterrorMsg(\"Please select item first\");\r\n }\r\n }\r\n\r\n if (orderLocation == undefined || orderMenu == undefined)\r\n return null\r\n else\r\n return (\r\n
\r\n \r\n \r\n \r\n You are ordering from\r\n {orderLocation.OrderLocation + \" , \"}\r\n {\r\n props.history.push('/orderlocationtab/' + orderLocation.OrderLocation);\r\n }}\r\n >\r\n {orderLocation.TabLocations[0].TabLocationName}\r\n \r\n \r\n \r\n {orderMenu.map(menu => {\r\n return (\r\n \r\n )\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default OrderMenu;","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n Dialog, DialogContent, DialogActions, Button, Grid,\r\n Typography, Select, MenuItem, Accordion, FormGroup, FormControlLabel,\r\n AccordionDetails, Checkbox, AccordionSummary, TextField\r\n} from '@material-ui/core';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n\r\nimport { NumberSpinner } from 'components'\r\nimport { genfunction } from 'helpers'\r\n\r\n\r\nconst { OrderSubMenuPageOrderProductNoteText } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n primarycolor: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n MenuImage: {\r\n width: 70,\r\n height: 70,\r\n maxWidth: 70,\r\n maxHeight: 70\r\n },\r\n button: {\r\n //borderRadius: 20\r\n }\r\n}));\r\n\r\nconst OrderProduct = props => {\r\n const { open, Product, onCancel, onConfirm } = props;\r\n const classes = useStyles();\r\n let [product, SetProduct] = useState(JSON.parse(JSON.stringify(Product)));\r\n\r\n if (product && product.Quantity == undefined) {\r\n let objProduct = { ...product };\r\n objProduct.Quantity = 1;\r\n objProduct.ProductNotes = \"\";\r\n SetProduct(objProduct);\r\n }\r\n\r\n const onChangeSubOptionHandler = (optionProductID, option) => {\r\n let objProduct = { ...product };\r\n let o = objProduct.Options.find(o => o.OptionName === option.OptionName);\r\n if (option.IsRequired == true)\r\n o.Products = o.Products.map(p => { p.IsSelected = false; return p; })\r\n if (optionProductID && optionProductID != \"\") {\r\n let p = o.Products.find(p => p.ProductID == optionProductID);\r\n p.IsSelected = true;\r\n }\r\n SetProduct(objProduct);\r\n }\r\n\r\n const onChangeDeleteSubOptionHandler = (optionProductID, option) => {\r\n let objProduct = { ...product };\r\n let o = objProduct.Options.find(o => o.OptionName === option.OptionName);\r\n let p = o.Products.find(p => p.ProductID == optionProductID);\r\n p.IsSelected = false;\r\n SetProduct(objProduct);\r\n }\r\n\r\n const onClickQuantityChangeHandler = (ref, Quantity) => {\r\n let objProduct = { ...product };\r\n objProduct.Quantity = Quantity;\r\n SetProduct(objProduct);\r\n }\r\n\r\n const onChangeProductNoteHanlder = (text) => {\r\n let objProduct = { ...product };\r\n objProduct.ProductNotes = text;\r\n SetProduct(objProduct);\r\n }\r\n\r\n const getTotalPrice = () => {\r\n let optionPrice = 0;\r\n if (product.Options && product.Options.length > 0) {\r\n product.Options.forEach(option => {\r\n if (option.Products && option.Products.length > 0) {\r\n option.Products.filter(p => p.IsSelected).forEach(p => {\r\n optionPrice += genfunction.getOrderProductPrice(p);\r\n });\r\n }\r\n });\r\n }\r\n return genfunction.getOrderProductPrice(product) + optionPrice;\r\n }\r\n\r\n const getOptionProductID = (option) => {\r\n let p;\r\n if (option && option.Products)\r\n p = option.Products.find(x => x.IsSelected == true);\r\n\r\n return p ? p.ProductID : \"\";\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {product.ProductImageURL && product.ProductImageURL != \"\" ?\r\n :
}\r\n
\r\n \r\n {genfunction.replaceEscapeCharacters(product.ProductName)}\r\n {genfunction.replaceEscapeCharacters(product.ProductDescription)}\r\n \r\n
\r\n\r\n {product.Options && product.Options.length > 0 ?\r\n product.Options\r\n .filter(x => x.IsRequired == true)\r\n .map(option => {\r\n return (\r\n \r\n \r\n \r\n {genfunction.replaceEscapeCharacters(option.OptionName)} {option.IsRequired ? \"(Required)\" : \"(Optional)\"}\r\n \r\n \r\n { onChangeSubOptionHandler(event.target.value, option) }}\r\n >\r\n \r\n None\r\n \r\n\r\n {option.Products && option.Products.length > 0 ?\r\n option.Products.map(optionproduct => {\r\n return (\r\n \r\n {genfunction.replaceEscapeCharacters(optionproduct.ProductName) + (optionproduct.PriceIncTax > 0 ? (\" \" + genfunction.ccyFormat(genfunction.getOrderProductPrice(optionproduct))) : \"\")}\r\n \r\n )\r\n })\r\n : \"\"}\r\n \r\n \r\n \r\n )\r\n })\r\n : \"\"}\r\n\r\n {product.Options && product.Options.filter(x => x.IsRequired == false).length > 0 ?\r\n \r\n Optional Items\r\n : \"\"}\r\n\r\n {product.Options && product.Options.length > 0 ?\r\n product.Options\r\n .filter(x => x.IsRequired == false)\r\n .map(option => {\r\n return (\r\n \r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n >\r\n {genfunction.replaceEscapeCharacters(option.OptionName)}\r\n \r\n \r\n \r\n\r\n {option.Products && option.Products.length > 0 ?\r\n option.Products.map(optionproduct => {\r\n return (\r\n \r\n \r\n { optionproduct.IsSelected ? onChangeDeleteSubOptionHandler(event.target.value, option) : onChangeSubOptionHandler(event.target.value, option) }}\r\n name={optionproduct.ProductID} />}\r\n label={genfunction.replaceEscapeCharacters(optionproduct.ProductName) + (optionproduct.PriceIncTax > 0 ? (\" \" + genfunction.ccyFormat(genfunction.getOrderProductPrice(optionproduct))) : \"\")}\r\n />\r\n \r\n )\r\n })\r\n : \"\"}\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n )\r\n })\r\n : \"\"}\r\n {product.GetProductNotes ?\r\n \r\n \r\n {OrderSubMenuPageOrderProductNoteText}\r\n \r\n \r\n { onChangeProductNoteHanlder(event.target.value); }}\r\n >\r\n \r\n \r\n : \"\"}\r\n\r\n \r\n \r\n Total : {genfunction.ccyFormat(getTotalPrice() * product.Quantity)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n { onConfirm(product); }}\r\n color=\"primary\" variant='contained'>\r\n {product.UniqueID ? \"Save\" : \"Add to cart\"}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nOrderProduct.propTypes = {\r\n open: PropTypes.bool.isRequired\r\n};\r\n\r\nexport default OrderProduct;\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Button, Grid, Typography, Card, CardHeader, CardContent, IconButton, Badge } from '@material-ui/core';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport { useSelector } from 'react-redux';\r\nimport { genfunction } from 'helpers'\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n headerbox: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n MenuImage: {\r\n width: 70,\r\n height: 70,\r\n maxWidth: 70,\r\n maxHeight: 70\r\n },\r\n badge: {\r\n fontSize: 22\r\n },\r\n badgebox: {\r\n marginBottom: 20,\r\n width: \"100%\",\r\n }\r\n}));\r\n\r\nconst SubMenuItem = (props) => {\r\n\r\n const classes = useStyles();\r\n const { Department, onClickAddProduct, onClickProductInfo } = props;\r\n\r\n const orderProducts = useSelector(state => state.reducerShopCart.orderProducts);\r\n\r\n const getProductQuantity = (ProductID) => {\r\n let products = orderProducts.filter(x => x.ProductID == ProductID);\r\n let qty = 0;\r\n products.forEach(p => {\r\n qty += p.Quantity;\r\n });\r\n return qty;\r\n }\r\n\r\n const SubMenuItem = (product, dep) => {\r\n return \r\n \r\n \r\n \r\n { onClickProductInfo(product); }}>\r\n \r\n {product.ProductImageURL && product.ProductImageURL != \"\" ?\r\n :
}\r\n
\r\n
\r\n
\r\n \r\n \r\n {genfunction.replaceEscapeCharacters(product.ProductName)}\r\n {genfunction.ccyFormat(genfunction.getOrderProductPrice(product))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
;\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {Department.Products.map(product => {\r\n return SubMenuItem(product, Department)\r\n })}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SubMenuItem;","import React, { useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Button, Grid, Typography, IconButton } from '@material-ui/core';\r\nimport ArrowLeftIcon from '@material-ui/icons/ArrowBack';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\nimport { actionAddOrderProduct, actionUpdateOrderProduct } from 'actions/actionShopCart';\r\n\r\nimport { DialogeBox, ErrorHandling } from 'components';\r\nimport { genfunction } from 'helpers'\r\nimport OrderProduct from './components/OrderProduct'\r\nimport SubMenuItem from './components/SubMenuItem'\r\n\r\nconst { ShowOrderItemPriceAs, OrderItemsInCartError2 } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3)\r\n },\r\n RightButtonlIcon: {\r\n '& svg': {\r\n fontSize: 40\r\n }\r\n }\r\n}));\r\n\r\nconst OrderSubMenu = (props) => {\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n const [infoProduct, setInfoProduct] = useState(null);\r\n let [productPopUp, setProductPopUp] = useState({\r\n isOpen: false,\r\n Product: null,\r\n Department: null\r\n });\r\n\r\n const orderLocation = useSelector(state => state.reducerOrderLocations.orderLocation);\r\n const orderMenu = useSelector(state => state.reducerOrderMenu.orderMenu);\r\n const orderProducts = useSelector(state => state.reducerShopCart.orderProducts);\r\n\r\n const events = useSelector(state => state.reducerShopCart.events);\r\n const membershipPackages = useSelector(state => state.reducerShopCart.MembershipPackages);\r\n const gatickets = useSelector(state => state.reducerShopCart.GATickets);\r\n const giftcards = useSelector(state => state.reducerGiftCards.giftcards);\r\n const donationProducts = useSelector(state => state.reducerShopCart.donationProducts);\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n if (props.match.path == \"/ordersubmenu/:name\") {\r\n\r\n }\r\n else {\r\n props.history.push('/notfound');\r\n }\r\n }, [])\r\n\r\n const errorcancelhandle = () => {\r\n seterrorMsg(\"\");\r\n }\r\n\r\n const onClickBackButtonHandler = () => {\r\n props.history.goBack();\r\n }\r\n\r\n const onClickProductHandler = (department, product) => {\r\n setProductPopUp({\r\n isOpen: true,\r\n Product: product,\r\n Department: department\r\n });\r\n }\r\n\r\n const onClickCancelProductHanlder = () => {\r\n errorcancelhandle();\r\n setProductPopUp({\r\n isOpen: false,\r\n Product: null,\r\n Department: null\r\n });\r\n }\r\n\r\n const hasSameOptions = (ProductA, ProductB) => {\r\n if (ProductA.Options && ProductB.Options) {\r\n return ProductA.Options.every(PAOption => {\r\n let PBOption = ProductB.Options.find(x => x.OptionName === PAOption.OptionName);\r\n if (PAOption.Products && PBOption.Products) {\r\n let PAProduct = PAOption.Products.filter(x => x.IsSelected);\r\n let PBProduct = PBOption.Products.filter(x => x.IsSelected);\r\n if (PAProduct.length == PBProduct.length) {\r\n return PAProduct.every(AProduct => {\r\n if (PBProduct.find(x => x.ProductID === AProduct.ProductID) == undefined) {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n const isDifferentItemsAlreadyInCart = () => {\r\n if ((events && events.length > 0) || (gatickets && gatickets.length > 0) || (membershipPackages && membershipPackages.length > 0) || (giftcards && giftcards.length > 0) || (donationProducts && donationProducts.length > 0)) {\r\n return true;\r\n }\r\n else\r\n return false;\r\n }\r\n\r\n const onClickAddToCartProductHanlder = (Product) => {\r\n\r\n if (isDifferentItemsAlreadyInCart()) {\r\n seterrorMsg(OrderItemsInCartError2);\r\n }\r\n else if (Product.Quantity == 0) {\r\n seterrorMsg(\"Please select quantity\")\r\n }\r\n else if (genfunction.IsRequiredOptionsSelectedForOrderItem(Product) == false) {\r\n seterrorMsg(\"Please select required option first\");\r\n }\r\n else {\r\n errorcancelhandle();\r\n let objSelectedProducts = [...orderProducts];\r\n let objProduct = objSelectedProducts.find(p => p.ProductID === Product.ProductID && p.ProductNotes === Product.ProductNotes && hasSameOptions(p, Product));\r\n if (objProduct) {\r\n objProduct.Quantity += Product.Quantity;\r\n actionUpdateOrderProduct(dispatch, objProduct);\r\n }\r\n else {\r\n objProduct = Object.assign({}, Product);\r\n objProduct.UniqueID = uuidv4();\r\n actionAddOrderProduct(dispatch, objProduct);\r\n }\r\n setProductPopUp({\r\n isOpen: false,\r\n Product: null,\r\n Department: null\r\n });\r\n }\r\n }\r\n\r\n const onClickCheckoutHandler = () => {\r\n if (orderProducts && orderProducts.length > 0) {\r\n props.history.push('/revieworderproducts');\r\n }\r\n else {\r\n seterrorMsg(\"Please select item first\");\r\n }\r\n }\r\n\r\n if (orderLocation == undefined || orderMenu == undefined)\r\n return null\r\n else\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.match.params.name}\r\n \r\n \r\n \r\n \r\n {orderMenu.find(x => x.MenuName == props.match.params.name && x.Departments && x.Departments.length > 0).Departments.filter(x => x.Products).map(dep => {\r\n return \r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { setInfoProduct(null) }}>\r\n \r\n {productPopUp && productPopUp.Product ?\r\n \r\n \r\n : \"\"}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default OrderSubMenu;","import React, { useState, useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {\r\n Typography, Grid, IconButton, Button\r\n} from '@material-ui/core';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\nimport { ErrorHandling, DialogeBox } from 'components'\r\nimport { genfunction } from 'helpers'\r\nimport OrderProduct from './components/OrderProduct'\r\n\r\nimport { actionDeleteOrderProduct, actionUpdateOrderProducts } from 'actions/actionShopCart'\r\n\r\nconst { CartDiscardMsg } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3),\r\n // paddingTop: 30,\r\n // paddingBottom: 30\r\n },\r\n canceButtonlIcon: {\r\n '& svg': {\r\n fontSize: 20\r\n },\r\n padding: 0,\r\n paddingLeft: 10\r\n }\r\n}));\r\n\r\nconst OrderItemsReview = props => {\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n const [productPopUp, setProductPopUp] = useState({\r\n isOpen: false,\r\n Product: null,\r\n Department: null\r\n });\r\n\r\n const [productDeletePopUp, setProductDeletePopUp] = useState({\r\n isOpen: false,\r\n Product: null\r\n });\r\n\r\n const orderProducts = useSelector(state => state.reducerShopCart.orderProducts);\r\n const orderLocation = useSelector(state => state.reducerOrderLocations.orderLocation);\r\n const carddiscard = useSelector(state => state.reducerCardDiscardTime);\r\n\r\n useEffect(() => {\r\n if ((orderProducts && orderProducts.length == 0)) {\r\n let tabLocationID = orderLocation.TabLocations[0].TabLocationID;\r\n props.history.push('/ordermenu/' + tabLocationID);\r\n }\r\n }, [orderProducts])\r\n\r\n const getAllTotal = () => {\r\n\r\n let amount = {\r\n subtotal: 0,\r\n tax: 0,\r\n total: 0\r\n }\r\n\r\n let foodAmount = genfunction.getOrderProductsTotalPrice(orderProducts);\r\n amount.subtotal += foodAmount.subtotal;\r\n amount.tax += foodAmount.tax;\r\n amount.total += foodAmount.total;\r\n\r\n return amount;\r\n }\r\n\r\n const errorcancelhandle = () => {\r\n seterrorMsg(\"\");\r\n }\r\n\r\n const getProductOptions = (product) => {\r\n if (product.Options) {\r\n\r\n let productWithOptions = product.Options.filter(x => x.Products && x.Products.length > 0 && x.Products.find(y => y.IsSelected == true) != undefined);\r\n if (productWithOptions && productWithOptions.length > 0) {\r\n return (\r\n productWithOptions.map(option => {\r\n return (\r\n option.Products.map(opproduct => {\r\n return (\r\n opproduct.IsSelected ?\r\n \r\n {genfunction.replaceEscapeCharacters(opproduct.ProductName)}\r\n : \"\"\r\n )\r\n }))\r\n })\r\n );\r\n }\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n const onClickMakeChangesHandler = () => {\r\n let tabLocationID = orderLocation.TabLocations[0].TabLocationID;\r\n props.history.push('/ordermenu/' + tabLocationID);\r\n }\r\n\r\n const onClickFinishHandler = () => {\r\n props.history.push('/checkout');\r\n }\r\n\r\n\r\n const onClickProductHandler = (department, product) => {\r\n setProductPopUp({\r\n isOpen: true,\r\n Product: product,\r\n Department: department\r\n });\r\n }\r\n\r\n const onClickCancelProductHanlder = () => {\r\n errorcancelhandle();\r\n setProductPopUp({\r\n isOpen: false,\r\n Product: null,\r\n Department: null\r\n });\r\n }\r\n\r\n const hasSameOptions = (ProductA, ProductB) => {\r\n if (ProductA.Options && ProductB.Options) {\r\n return ProductA.Options.every(PAOption => {\r\n let PBOption = ProductB.Options.find(x => x.OptionName === PAOption.OptionName);\r\n if (PAOption.Products && PBOption.Products) {\r\n let PAProduct = PAOption.Products.filter(x => x.IsSelected);\r\n let PBProduct = PBOption.Products.filter(x => x.IsSelected);\r\n if (PAProduct.length == PBProduct.length) {\r\n return PAProduct.every(AProduct => {\r\n if (PBProduct.find(x => x.ProductID === AProduct.ProductID) == undefined) {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n const onClickAddToCartProductHanlder = (Product) => {\r\n if (Product.Quantity == 0) {\r\n seterrorMsg(\"Please select quantity\")\r\n }\r\n else if (genfunction.IsRequiredOptionsSelectedForOrderItem(Product) == false) {\r\n seterrorMsg(\"Please select required option first\");\r\n }\r\n else {\r\n errorcancelhandle();\r\n let objSelectedProducts = [...orderProducts];\r\n\r\n let objProduct = objSelectedProducts.find(p => p.ProductID === Product.ProductID && p.ProductNotes === Product.ProductNotes && hasSameOptions(p, Product));\r\n if (objProduct) {\r\n if (objProduct.UniqueID == Product.UniqueID) {\r\n objProduct.Quantity = Product.Quantity;\r\n }\r\n else {\r\n objProduct.Quantity += Product.Quantity;\r\n objSelectedProducts = objSelectedProducts.filter(x => x.UniqueID != Product.UniqueID);\r\n }\r\n }\r\n else {\r\n objProduct = Object.assign({}, Product);\r\n objProduct.UniqueID = uuidv4();\r\n objSelectedProducts.push(objProduct);\r\n objSelectedProducts = objSelectedProducts.filter(x => x.UniqueID != Product.UniqueID);\r\n }\r\n\r\n actionUpdateOrderProducts(dispatch, objSelectedProducts);\r\n\r\n setProductPopUp({\r\n isOpen: false,\r\n Product: null,\r\n Department: null\r\n });\r\n }\r\n }\r\n\r\n function millisecondsToTime(milli) {\r\n var seconds = Math.floor((milli / 1000) % 60);\r\n var minutes = Math.floor((milli / (60 * 1000)) % 60);\r\n return minutes + \":\" + genfunction.PaddingString(seconds, \"0\", 2);\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Review your Order\r\n {orderLocation.OrderLocation + \" , \" + orderLocation.TabLocations[0].TabLocationName}\r\n\r\n \r\n {CartDiscardMsg} {\" \"} {millisecondsToTime(carddiscard.DiscardTime * 1000)}\r\n \r\n\r\n \r\n {/* Food Order */}\r\n \r\n {orderProducts.map(product => {\r\n return (\r\n \r\n \r\n { onClickProductHandler(null, product) }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {genfunction.replaceEscapeCharacters(product.ProductName)}\r\n \r\n {getProductOptions(product)}\r\n\r\n \r\n \r\n \r\n x {product.Quantity}\r\n \r\n \r\n \r\n \r\n {genfunction.ccyFormat(genfunction.getOrderProductsTotalPrice([product]).subtotal)}\r\n \r\n \r\n \r\n setProductDeletePopUp({ isOpen: true, Product: product })}\r\n >\r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Subtotal\r\n \r\n \r\n \r\n \r\n {genfunction.ccyFormat(getAllTotal().subtotal)}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Tax\r\n \r\n \r\n \r\n \r\n {genfunction.ccyFormat(getAllTotal().tax)}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Total\r\n \r\n \r\n \r\n \r\n {genfunction.ccyFormat(getAllTotal().total)}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n { actionDeleteOrderProduct(dispatch, productDeletePopUp.Product); setProductDeletePopUp({ isOpen: false, Product: null }) }}\r\n button2text=\"No\"\r\n button2clickhandler={() => setProductDeletePopUp({ isOpen: false, Product: null })}\r\n >\r\n\r\n {productPopUp && productPopUp.Product ?\r\n \r\n \r\n : \"\"}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default OrderItemsReview;","import React, { useState, useEffect } from 'react';\r\nimport { makeStyles, withStyles } from '@material-ui/styles';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n Typography, TableCell, IconButton, TableRow, Grid, RadioGroup,\r\n FormControlLabel, Radio, Switch, Button, FormControl, TextField, useTheme, useMediaQuery\r\n} from '@material-ui/core';\r\n\r\nimport ToggleButton from '@material-ui/lab/ToggleButton';\r\nimport ToggleButtonGroup from '@material-ui/lab/ToggleButtonGroup';\r\n\r\nimport InfoIcon from '@material-ui/icons/Info'\r\nimport { genfunction } from 'helpers'\r\nimport { NumberInput, FormattedInputs } from 'components'\r\nimport { Height } from '@material-ui/icons';\r\n\r\nconst { Currency } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n amountBtn: {\r\n margin: 3\r\n },\r\n img: {\r\n width: \"100%\",\r\n //Height: 200,\r\n objectFit: \"cover\",\r\n objectPosition: \"bottom\"\r\n }\r\n}));\r\n\r\nconst StyledToggleButtonGroup = withStyles((theme) => ({\r\n grouped: {\r\n marginRight: theme.spacing(1),\r\n marginTop: theme.spacing(1),\r\n display: \"unset\",\r\n minWidth: 60,\r\n border: '1px solid !important',\r\n '&:not(:first-child)': {\r\n borderRadius: theme.shape.borderRadius,\r\n },\r\n '&:first-child': {\r\n borderRadius: theme.shape.borderRadius,\r\n },\r\n }\r\n\r\n}))(ToggleButtonGroup);\r\n\r\nconst DonationProduct = props => {\r\n const { Product, onChangeAmount } = props;\r\n const classes = useStyles();\r\n\r\n const cartDonationProducts = useSelector(state => state.reducerShopCart.donationProducts);\r\n\r\n let [selectedToogleButton, setSelectedToogleButton] = React.useState(null);\r\n let [otherAmount, setOtherAmount] = React.useState(null);\r\n let [validationInfo, setValidationInfo] = React.useState(\"\");\r\n\r\n let hasImage = Product.ProductImageURL && Product.ProductImageURL != \"\";\r\n\r\n useEffect(() => {\r\n if (cartDonationProducts && cartDonationProducts.length > 0) {\r\n let item = cartDonationProducts.find(x => x.ProductID == Product.ProductID)\r\n if (item) {\r\n if (item.DisplayAmount == \"other\")\r\n setOtherAmount(item.Amount);\r\n\r\n setSelectedToogleButton(item.DisplayAmount);\r\n }\r\n }\r\n }, [cartDonationProducts])\r\n\r\n const onChangeToogleButtonHandler = (event, newValue) => {\r\n setSelectedToogleButton(newValue);\r\n if (newValue)\r\n onChangeAmount(getNewProductObj(Product, newValue.toString(), newValue == \"other\" ? 0 : parseFloat(newValue)))\r\n else\r\n onChangeAmount(getNewProductObj(Product, \"\", 0))\r\n\r\n if (newValue != \"other\")\r\n setOtherAmount(null);\r\n };\r\n\r\n const getNewProductObj = (product, displayAmount, amount) => {\r\n let prod = {\r\n ProductID: product.ProductID,\r\n ProductName: product.ProductName,\r\n DisplayArea: product.DisplayArea,\r\n DisplayAmount: displayAmount,\r\n Amount: amount,\r\n UseAlternateMerchantOnline: product.UseAlternateMerchantOnline\r\n }\r\n return prod;\r\n }\r\n\r\n const onValidationChangeOtherAmount = (info) => {\r\n setValidationInfo(info);\r\n }\r\n\r\n const onChangeOtherAmount = (event) => {\r\n setOtherAmount(event.target.value);\r\n onChangeAmount(getNewProductObj(Product, \"other\", parseFloat(event.target.value)))\r\n }\r\n\r\n const getDisplayAmountButtons = (product) => {\r\n\r\n return \r\n {product.DisplayAmounts?.sort((a, b) => a.SortOrder - b.SortOrder).map(amount => {\r\n return \r\n {Currency + amount.Amount}\r\n \r\n })}\r\n {product.OtherValue && product.OtherValue.length > 0 ?\r\n \r\n Other\r\n : \"\"}\r\n {selectedToogleButton == \"other\" ?\r\n : \"\"}\r\n\r\n \r\n }\r\n\r\n return (\r\n \r\n \r\n {Product.ProductName}\r\n \r\n \r\n {hasImage ?\r\n \r\n \r\n : \"\"}\r\n \r\n \r\n {Product.ProductDescription}\r\n \r\n \r\n {getDisplayAmountButtons(Product)}\r\n \r\n {validationInfo != \"\" ?\r\n {validationInfo} : \"\"}\r\n \r\n \r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport default DonationProduct;","import React, { useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Button, Container } from '@material-ui/core';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Grid, TextField, Typography } from '@material-ui/core';\r\n\r\nimport { genfunction } from 'helpers'\r\nimport {\r\n actionStartAppLoader, actionEndAppLoader, actionGetProductsByTypeAndDisplayAreas,\r\n actionShopCartUpdateDonationProduct, actionGetDisplayAreasByIdAndType,\r\n actionResetPaymentTransaction\r\n} from 'actions';\r\nimport { ErrorHandling, Title } from 'components';\r\nimport DonationProduct from './components/DonationProduct'\r\n\r\nconst { OrderItemsInCartError } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3),\r\n marginTop: 50\r\n }\r\n}));\r\n\r\nconst DonationProducts = (props) => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n const [displayArea, setDisplayArea] = useState(null);\r\n const [selectedProducts, setSelectedProducts] = useState([]);\r\n const [viewProducts, setViewProducts] = useState([]);\r\n const [note, setNote] = useState(\"\");\r\n\r\n const cartDonationProducts = useSelector(state => state.reducerShopCart.donationProducts);\r\n\r\n const products = useSelector(state => state.reducerProduct.products);\r\n const loading = useSelector(state => state.reducerProduct.loading);\r\n const error = useSelector(state => state.reducerProduct.error);\r\n\r\n const displayAreas = useSelector(state => state.reducerDisplayAreas.displayAreas);\r\n const displayAreasLoading = useSelector(state => state.reducerDisplayAreas.loading);\r\n const displayAreasError = useSelector(state => state.reducerDisplayAreas.displayAreasError);\r\n\r\n const gaTickets = useSelector(state => state.reducerShopCart.GATickets);\r\n const membershipPackages = useSelector(state => state.reducerShopCart.MembershipPackages);\r\n const events = useSelector(state => state.reducerShopCart.events);\r\n const paymenttranstate = useSelector(state => state.reducerPaymentTransaction.Payment);\r\n const giftcards = useSelector(state => state.reducerGiftCards);\r\n const orderProducts = useSelector(state => state.reducerShopCart.orderProducts);\r\n const donationProducts = useSelector(state => state.reducerShopCart.donationProducts);\r\n\r\n useEffect(() => {\r\n var areaNo = props.match.params.id;\r\n if (isDisplayAreaExists(areaNo))\r\n actionGetProductsByTypeAndDisplayAreas(dispatch, \"donationpage\", areaNo);\r\n }, [displayAreas])\r\n\r\n useEffect(() => {\r\n if (products && products.length > 0) {\r\n setItemIntoView();\r\n }\r\n }, [products])\r\n\r\n useEffect(() => {\r\n if (events && events.length == 0 && membershipPackages && membershipPackages.length == 0 && gaTickets && gaTickets.length == 0 &&\r\n giftcards.giftcards && giftcards.giftcards.length == 0 && donationProducts && donationProducts.length == 0 && paymenttranstate.hasOwnProperty(\"ReceiptNo\") && paymenttranstate.ReceiptNo.toString().length > 0) {\r\n actionResetPaymentTransaction(dispatch);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.match.path == \"/donation/Area/:id\") {\r\n var areaNo = props.match.params.id;\r\n if (isDisplayAreaExists(areaNo) == false) {\r\n actionGetDisplayAreasByIdAndType(dispatch, areaNo, \"donationpage\");\r\n }\r\n }\r\n else {\r\n props.history.push('/not-found');\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (loading || displayAreasLoading)\r\n actionStartAppLoader(dispatch);\r\n else\r\n actionEndAppLoader(dispatch);\r\n }, [loading, displayAreasLoading])\r\n\r\n useEffect(() => {\r\n if (displayAreasError && displayAreasError != \"\")\r\n seterrorMsg(displayAreasError)\r\n else if (error && error != \"\")\r\n seterrorMsg(error);\r\n }, [error, displayAreasError])\r\n\r\n const errorcancelhandle = () => {\r\n seterrorMsg(\"\");\r\n }\r\n\r\n const isDisplayAreaExists = (areaNo) => {\r\n let displayArea;\r\n if (displayAreas)\r\n displayArea = displayAreas.find(area => area.DisplayAreaNo == areaNo);\r\n\r\n if (displayArea)\r\n setDisplayArea(displayArea)\r\n\r\n return displayArea != undefined;\r\n }\r\n\r\n const getTotalAmount = () => {\r\n let total = 0;\r\n selectedProducts.forEach(product => {\r\n total += product.Amount;\r\n });\r\n return total;\r\n }\r\n\r\n const onChangeDonationProductSelection = (product) => {\r\n AddProductToList(product);\r\n }\r\n\r\n const AddProductToList = (product) => {\r\n let donationProducts = [...selectedProducts];\r\n donationProducts = donationProducts.filter(x => x.ProductID != product.ProductID);\r\n if (IsValidProduct(product))\r\n donationProducts.push(product);\r\n setSelectedProducts(donationProducts);\r\n }\r\n\r\n const IsValidProduct = (product) => {\r\n let p = products.find(x => x.ProductID == product.ProductID);\r\n if (p) {\r\n if (product.DisplayAmount == \"\")\r\n return false;\r\n if (product.DisplayAmount != \"other\")\r\n return true;\r\n else if (product.Amount >= p.OtherValue[0].MinAmount && product.Amount <= p.OtherValue[0].MaxAmount)\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n const onClickContinueButtonHandler = () => {\r\n if (orderProducts && orderProducts.length > 0) {\r\n seterrorMsg(OrderItemsInCartError);\r\n return;\r\n }\r\n else if (selectedProducts.length == 0) {\r\n seterrorMsg(\"Please select item first\");\r\n return;\r\n }\r\n\r\n let newselectedProducts = [...selectedProducts];\r\n if (note != \"\")\r\n newselectedProducts.forEach(product => {\r\n product.ProductNotes = note;\r\n });\r\n\r\n actionShopCartUpdateDonationProduct(dispatch, newselectedProducts);\r\n props.history.push('/checkout');\r\n }\r\n\r\n const setItemIntoView = () => {\r\n let items = [...products];\r\n cartDonationProducts.forEach(cartItem => {\r\n let existItem = items.find(x => x.ProductID == cartItem.ProductID)\r\n if (existItem) {\r\n existItem.DisplayAmount = cartItem.DisplayAmount;\r\n existItem.Amount = cartItem.Amount\r\n }\r\n });\r\n\r\n let selectedItem = items.filter(x => x.DisplayAmount).map(item => {\r\n return getNewProductObj(item)\r\n })\r\n setSelectedProducts(selectedItem);\r\n setViewProducts(items);\r\n }\r\n\r\n const getNewProductObj = (product) => {\r\n let prod = {\r\n ProductID: product.ProductID,\r\n ProductName: product.ProductName,\r\n DisplayArea: product.DisplayArea,\r\n DisplayAmount: product.DisplayAmount,\r\n Amount: product.Amount,\r\n UseAlternateMerchantOnline: product.UseAlternateMerchantOnline\r\n }\r\n return prod;\r\n }\r\n\r\n return (\r\n
\r\n \r\n {displayArea && viewProducts ?\r\n \r\n \r\n \r\n </Grid>\r\n <br></br>\r\n <Grid container item spacing={3} align=\"left\">\r\n {viewProducts.sort((a, b) => a.SortOrder - b.SortOrder).map(product => {\r\n return <Grid key={product.ProductID} item xs={12}><DonationProduct Product={product} onChangeAmount={onChangeDonationProductSelection} /></Grid>\r\n })}\r\n </Grid>\r\n <Grid item xs={12} align=\"right\">\r\n <Typography variant='h4'>Total : {genfunction.ccyFormat(getTotalAmount())}</Typography>\r\n </Grid>\r\n <Grid item xs={12}>\r\n <TextField value={note} onChange={(event) => { setNote(event.target.value) }}\r\n minRows={4} variant=\"outlined\" fullWidth={true} multiline={true} inputProps={{ maxLength: 256 }}></TextField>\r\n </Grid>\r\n <Grid item xs={12} align=\"right\">\r\n <Button color='primary' variant='contained' onClick={onClickContinueButtonHandler}>Continue</Button>\r\n </Grid>\r\n </Grid> : <Typography variant='h4'>{errorMsg}</Typography>}\r\n </div>\r\n );\r\n};\r\n\r\nexport default DonationProducts;\r\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { makeStyles } from '@material-ui/styles';\nimport { Grid } from '@material-ui/core';\nimport { ErrorHandling, DisplayCard } from 'components';\nimport { actionStartAppLoader, actionEndAppLoader, actionGetDisplayAreasByType } from 'actions';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(3),\n marginTop: theme.spacing(5)\n }\n}));\n\nconst DonationAreas = (props) => {\n\n const dispatch = useDispatch()\n const classes = useStyles();\n\n const [errorMsg, seterrorMsg] = useState(\"\");\n\n const loading = useSelector(state => state.reducerDisplayAreas.loading);\n const displayAreas = useSelector(state => state.reducerDisplayAreas.displayAreas);\n const error = useSelector(state => state.reducerDisplayAreas.displayAreasError);\n\n useEffect(() => {\n actionGetDisplayAreasByType(dispatch, 'donationpage', null, false);\n }, [])\n\n useEffect(() => {\n if (loading)\n actionStartAppLoader(dispatch);\n else\n actionEndAppLoader(dispatch);\n }, [loading])\n\n useEffect(() => {\n seterrorMsg(error);\n }, [error])\n\n const errorcancelhandle = () => {\n seterrorMsg(\"\");\n }\n\n const onClickDonateHandler = (ref) => {\n props.history.push({\n pathname: 'donation/Area/' + ref.DisplayAreaNo\n })\n }\n\n return (\n <Grid container spacing={2} className={classes.root}>\n <ErrorHandling msg={errorMsg} open={errorMsg != \"\"} handleclose={errorcancelhandle} />\n <Grid container spacing={2}>\n {displayAreas?.filter(area => area.ShowOnline).sort((a, b) => a.SortOrder - b.SortOrder).map(area => {\n return <Grid item xs={12} md={4} key={\"Donation_Area_\" + area.DisplayAreaNo}><DisplayCard Title={area.AreaName} Description={area.DisplayText} ButtonText='Donate' ButtonCallBack={onClickDonateHandler} ButtonCallBackReference={area} /></Grid>\n })}\n </Grid>\n </Grid>\n );\n};\n\nexport default DonationAreas;","import React from 'react';\nimport { Switch, Redirect } from 'react-router-dom';\n\nimport { RouteWithLayout } from './components';\nimport { Main as MainLayout, Minimal as MinimalLayout } from './layouts';\n\nimport {\n Calendar as CalendarView,\n Dashboard as DashboardView,\n ProductList as ProductListView,\n MembershipList as MembershipListView,\n Memberships as MembershipsView,\n MemberValidation as MembershipsMemberValidateView,\n GiftCardsAreasList as GiftCardsAreasListView,\n MainGiftCards as MainGiftCardsView,\n FindMyBooking as FindMyBookingView,\n ManageBooking as ManageBookingView,\n ConfimBookingChanges as ConfimBookingChangesView,\n ModifyTicketsAddons as ModifyTicketsAddonsView,\n ManageCheckout as ManageCheckoutView,\n UserList as UserListView,\n Typography as TypographyView,\n Icons as IconsView,\n Account as AccountView,\n Settings as SettingsView,\n NotFound as NotFoundView,\n Checkout as CheckoutView,\n GATickets as GATickets,\n OrderLocationScreen as FoodOrderLocationScreen,\n OrderLocationTab as OrderLocationTabScreen,\n OrderMenu as OrderMenuScreen,\n OrderSubMenu as OrderSubMenuScreen,\n OrderItemsReview as OrderItemsReviewScreen,\n DonationAreas as DonationAreasView,\n DonationProducts as DonationProductsView\n} from './views';\n\nconst Routes = () => {\n return (\n <Switch>\n\n <Redirect\n exact\n from=\"/\"\n to=\"/products\"\n />\n\n <RouteWithLayout\n component={CalendarView}\n exact\n layout={MainLayout}\n path=\"/calendar/:id\"\n />\n\n <RouteWithLayout\n component={CalendarView}\n exact\n layout={MainLayout}\n path=\"/calendar/Area/:id\"\n />\n\n <RouteWithLayout\n component={GATickets}\n exact\n layout={MainLayout}\n path=\"/gatickets/\"\n />\n\n <RouteWithLayout\n component={GATickets}\n exact\n layout={MainLayout}\n path=\"/gatickets/Area/:id\"\n />\n\n <RouteWithLayout\n component={FoodOrderLocationScreen}\n exact\n layout={MainLayout}\n path=\"/orderlocation/\"\n />\n\n <RouteWithLayout\n component={FoodOrderLocationScreen}\n exact\n layout={MainLayout}\n path=\"/orderlocation/Area/:id\"\n />\n\n <RouteWithLayout\n component={OrderLocationTabScreen}\n exact\n layout={MainLayout}\n path=\"/orderlocationtab/:name\"\n />\n\n <RouteWithLayout\n component={OrderMenuScreen}\n exact\n layout={MainLayout}\n path=\"/ordermenu/:id\"\n />\n\n <RouteWithLayout\n component={OrderSubMenuScreen}\n exact\n layout={MainLayout}\n path=\"/ordersubmenu/:name\"\n />\n\n <RouteWithLayout\n component={OrderItemsReviewScreen}\n exact\n layout={MainLayout}\n path=\"/revieworderproducts\"\n />\n\n <RouteWithLayout\n component={DashboardView}\n exact\n layout={MainLayout}\n path=\"/dashboard\"\n />\n <RouteWithLayout\n component={UserListView}\n exact\n layout={MainLayout}\n path=\"/users\"\n />\n <RouteWithLayout\n component={ProductListView}\n exact\n layout={MainLayout}\n path=\"/products\"\n />\n\n <RouteWithLayout\n component={GiftCardsAreasListView}\n exact\n layout={MainLayout}\n path=\"/giftcards\"\n />\n\n <RouteWithLayout\n component={MainGiftCardsView}\n exact\n layout={MainLayout}\n path=\"/giftcards/:id\"\n />\n\n <RouteWithLayout\n component={MembershipsView}\n exact\n layout={MainLayout}\n path=\"/memberships/join/:id\"\n />\n\n <RouteWithLayout\n component={MembershipsView}\n exact\n layout={MainLayout}\n path=\"/memberships/renew/:id\"\n />\n\n <RouteWithLayout\n component={MembershipsMemberValidateView}\n exact\n layout={MainLayout}\n path=\"/memberships/membervalidate/:id\"\n />\n\n <RouteWithLayout\n component={MembershipListView}\n exact\n layout={MainLayout}\n path=\"/memberships\"\n />\n\n <RouteWithLayout\n component={FindMyBookingView}\n exact\n layout={MainLayout}\n path=\"/findmybooking\"\n />\n\n <RouteWithLayout\n component={FindMyBookingView}\n exact\n layout={MainLayout}\n path=\"/findmybooking/:name/:email/:bookingid\"\n />\n\n <RouteWithLayout\n component={FindMyBookingView}\n exact\n layout={MainLayout}\n path=\"/findmybooking?Name:name&email:email&bookingID:bookingid\"\n />\n\n <RouteWithLayout\n component={ManageBookingView}\n exact\n layout={MainLayout}\n path=\"/managebooking\"\n />\n\n <RouteWithLayout\n component={ConfimBookingChangesView}\n exact\n layout={MainLayout}\n path=\"/confimbookingchanges\"\n />\n\n <RouteWithLayout\n component={ModifyTicketsAddonsView}\n exact\n layout={MainLayout}\n path=\"/modifytickets\"\n />\n\n <RouteWithLayout\n component={ManageCheckoutView}\n exact\n layout={MainLayout}\n path=\"/managecheckout\"\n />\n <RouteWithLayout\n component={DonationAreasView}\n exact\n layout={MainLayout}\n path=\"/donationareas\"\n />\n\n <RouteWithLayout\n component={DonationProductsView}\n exact\n layout={MainLayout}\n path=\"/donation/\"\n />\n\n <RouteWithLayout\n component={DonationProductsView}\n exact\n layout={MainLayout}\n path=\"/donation/Area/:id\"\n />\n\n <RouteWithLayout\n component={TypographyView}\n exact\n layout={MainLayout}\n path=\"/typography\"\n />\n <RouteWithLayout\n component={IconsView}\n exact\n layout={MainLayout}\n path=\"/icons\"\n />\n <RouteWithLayout\n component={AccountView}\n exact\n layout={MainLayout}\n path=\"/account\"\n />\n <RouteWithLayout\n component={SettingsView}\n exact\n layout={MainLayout}\n path=\"/settings\"\n />\n <RouteWithLayout\n component={NotFoundView}\n exact\n layout={MainLayout}\n path=\"/not-found\"\n />\n <RouteWithLayout\n component={CheckoutView}\n exact\n layout={MainLayout}\n path=\"/checkout\"\n />\n <Redirect to=\"/not-found\" />\n </Switch>\n );\n};\n\nexport default Routes;\n","import React from 'react';\nimport { LinearProgress, Backdrop } from '@material-ui/core';\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport palette from '../../theme/palette'\n\nconst useStyles = makeStyles(theme => ({\n backdrop: {\n zIndex: theme.zIndex.drawer + 1,\n color: '#fff',\n backgroundColor: 'rgba(0, 0, 0, 0.8)'\n },\n image: {\n marginBottom: \"10px\"\n }\n}));\n\nconst BorderLinearProgress = withStyles({\n root: {\n height: 10,\n width: \"200px\",\n margin: \"auto\",\n borderRadius: 20,\n border: \"1px solid white\",\n paddingTop: \"10px\",\n backgroundColor: palette.primary.light\n },\n bar: {\n borderRadius: 20,\n backgroundColor: palette.primary.main\n },\n})(LinearProgress);\n\nconst Apploader = props => {\n const { loading } = props;\n const classes = useStyles();\n return (\n <Backdrop className={classes.backdrop} open={loading}>\n <div>\n <img className={classes.image} alt=\"Logo\" src={ process.env.PUBLIC_URL + \"/images/logos/logo-small-white.png\" } />\n <BorderLinearProgress\n variant=\"indeterminate\"\n color=\"primary\"\n />\n </div>\n </Backdrop>\n );\n};\n\nexport default Apploader;\n","import React from 'react';\nimport { Router } from 'react-router-dom';\nimport { createBrowserHistory } from 'history';\nimport { Chart } from 'react-chartjs-2';\nimport { ThemeProvider } from '@material-ui/styles';\nimport validate from 'validate.js';\nimport { useSelector } from 'react-redux';\n\nimport { chartjs } from './helpers';\nimport theme from './theme';\nimport 'react-perfect-scrollbar/dist/css/styles.css';\nimport CssBaseline from '@material-ui/core/CssBaseline';\nimport './assets/scss/index.scss';\nimport validators from './common/validators';\nimport Routes from './Routes';\nimport { Apploader } from './components/Apploaders'\nconst browserHistory = createBrowserHistory({ basename: '/items' });\n\nChart.helpers.extend(Chart.elements.Rectangle.prototype, {\n draw: chartjs.draw\n});\n\nvalidate.validators = {\n ...validate.validators,\n ...validators\n};\n\nexport default function App() {\n const loading = useSelector(state => state.reducerAppLoader.loading);\n\n\n return (\n <div>\n <ThemeProvider theme={theme}>\n <CssBaseline />\n <Router history={browserHistory}>\n <Routes />\n </Router>\n </ThemeProvider>\n <Apploader loading={loading}></Apploader>\n </div>\n )\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { applyMiddleware, compose, createStore } from 'redux';\nimport {Provider} from 'react-redux'\nimport createSagaMiddleware from 'redux-saga'\n\nimport rootReducer from './reducers';\nimport { rootSaga } from './saga';\n\nimport * as serviceWorker from './serviceWorker';\nimport App from './App';\n\nconst sagaMiddleware = createSagaMiddleware();\nconst store = createStore(\n rootReducer,\n applyMiddleware(sagaMiddleware)\n)\nsagaMiddleware.run(rootSaga);\n\nReactDOM.render(<Provider store={store}><App /></Provider>, document.getElementById('root'));\n\nserviceWorker.unregister();\n"],"sourceRoot":""}