{"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","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","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/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/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","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/ExtraItemDrawer.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","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/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","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","GetMonths","GetYears","numberofyears","years","currentyear","Date","getFullYear","push","ccyFormat","num","toFixed","priceRow","qty","unit","subproducttotal","products","cashless","donation","transactionfee","membershipPackages","gatickets","giftcards","orderProducts","totalDiscount","transFee","membershipPackTotal","map","product","CouponItems","e","TotalAmount","producttotal","reduce","sum","gaticketstotal","cashlesstotal","HoldAmount","giftcardstotal","CartTotalAmount","orderProductsTotal","getOrderProductsTotalPrice","total","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","transactions","trans","TransactionType","NodeNo","CustomerID","Username","Products","Payments","totalAmount","BookingProducts","newp","MMBReturnProduct","ReturnCouponAppliedQty","BookingStatus","BookingCoupons","filter","TourProductID","couponProd","find","TimesUsed","MMBReturnUniqueCoupinNonItems","CancelBooking","newQuantity","GetMMBModifyProduct","prevTourEventID","ProductLineNo","ProductID","LinePriceExTax","LinePriceTax","LinePriceIncTax","LinePaidExTax","LinePaidTax","LinePaidIncTax","TourEventID","CostRateID","TourHoldRef","FindCouponCode","BookingID","AddBookingUDFs","BookingTypeID","FindUniqueCoupon","UpdateUniqueCouponProduct","coupon","prod","Object","assign","isUniqueCoupon","ProdQuantity","Discount","isPercentage","genfunction","AddUniqueCouponItem","CouponHoldRef","ApplyDiscountTourProductID","TourProductName","ApplyDiscountTourProductName","ApplyDiscountProductID","TicketTax","tickets","PriceExTax","PriceTax","PriceIncTax","ProductNotes","Options","option","IsSelected","optionProduct","newop","donationProd","transTax","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","totalPaid","BookingPayments","PaymentAmount","giftcardProd","addpayment","AddedToCart","gc","CartQty","payment","PaymentLineNo","CreditCardToken","CreditCardType","cardtype","CreditCardReference","CreditCardMaskedNumber","cardnumber","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","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","tourholds","tourevent","tourhold","TourHolds","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","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","p","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","ApplyCouponsToEvents","couponAlreadyApply","applyDisProdID","ApplyDiscountToTourProductID","tourProd","RequireUniqueCouponCode","MaxProductsLimit","CouponID","SortProductsPriceWise","couponObj","DollarDiscount","CouponManager","CalculateTicketOddQuantities","CalculateDollarTicketPrice","CalculateTaxOddQuantities","CalculateDollarTicketTax","OnePennyDifference","itemIndex","findIndex","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","actionShopCartResetStateWithTourHold","CartEvent","actionRemoveCoupon","actionShopCardAddGiftCard","giftcard","actionResetCouponAlreadyApplied","actionShopCartResetStateWithUniqueCouponHold","actionShopCartApplyMembershipOnEvents","memberNo","memberEmail","memberLastName","actionShopCartRemoveGiftcards","actionShopCartResetMembership","actionShopCartResetDonation","actionShopCartAddMembershipPackage","memberPackage","isRenew","actionShopCartResetMembershipPackage","actionShopCartResetGATicket","actionShopCartSetManageMyBooking","managebooking","managebookingmodifytickets","actionShopCartSetRefundType","actionShopCartSetAdditionalBookingAmount","actionShopCartSetMmbAmountToPay","amounttopay","actionShopCartResetError","actionDeleteOrderProduct","foodProduct","actionShopcartResetOrderProducts","sessionKey2","sessionKey5","sessionKey7","sessionKey10","sessionKey14","tourCoupons","tourProducts","couponAlreadyApplied","removeCoupon","ismembershipApplied","membershipcostrate","membershipMembrNo","applycostRates","productName","otherAmount","popupCounts","GATickets","membershipIsRenew","managemybooking","managebookingticketsmodification","additionalbookingamount","mmbAmountToPay","IDME","isIdMeApplied","idmecostrate","reducerShopCart","eventIndex","trcoupons","trProducts","tourprduct","noproducteventid","tproduct","membershipObj","donationObj","idmeObj","tourCoupon","tourProduct","isRemoveCoupon","newtickets","couponproduct","calculategaticketamount","ApplyMembershipPricesOnEvents","othersAmount","membershipPackagesObj","el","memberPackIndex","CalculateMembershipPackages","existticket","ApplyMembershipCoupon","managebkngticketsmodification","refundTyp","additionalbookingamt","newOrderProduct","UniqueID","EXTRAITEMS_LOADING","actionGetExtraItems","ID","checkBookingTypeObj","isDisplayArea","nextTourDate","isListView","currentView","tourEventsList","actionGetExtraItem","IsMembershipApplied","MemberCostRate","IsIDME","IsIDMECostRate","actionIncreaseQuantity","ItemExist","MinimumTickets","MaximumTickets","actionResetExtraItems","extramItems","extraItem","extramItemsError","isAddToCart","reducerExtraItems","newextraItems","extraItm","pmatrix","IsCouponApplied","isCheckOut","newExtraItem","AffectsCapacity","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","actionGetDisplayAreas","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","donations","donationError","donationreducer","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","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","apiExtraItems","Id","NextTourDate","checkFromNextTourDate","listViewSearchDays","lastDay","AddWeekDays","getCouponProducts","apiGATicket","apiGiftCards","postGiftCardHold","deleteGiftCardHold","getOrderLocationsByDisplayArea","getProductsByProductTypeAndDisplayArea","apiIDMeUserData","replace","apiLostMember","getmember","postmember","apiMemberMemberships","apiMembershipPackages","apiMemberValidation","postTourHold","PaymentMethodType","posttransaction","postdata","paymentamount","customerName","recaptchav3token","apiTourProduct","priceDate","apiTransactionFee","uniqueCouponPost","uniqueCouponCode","deleteUniqueCouponHolds","apiUserDefinedFields","apiCountryAndState","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","customerPostCall","userresponse","customerUDFsResponse","listCustomersMemberships","MemberValidation","CustomerPostCall","GuestEmail","GetCustomerList","attributes","handle","ExtCustomerID","customersUdfsList","TabCustomerFirstName","TabCustomerLastName","TabCustomerMobile","TabLocationID","TabLocations","LeaveOrderOpen","SendToKitchen","UpdateTransactionCall","transactionresponse","Customer","Events","OrderProducts","isCancelBooking","sagaPaymentTransaction","getip","fetchip","sagaIP","fetchDisplayAreasData","param","sagaDisplayAreas","ShopcartAddEventWithTourHold","ShopcartSetTourProductQuantityTourHold","ShopcartRemoveTourProductWithTourHold","ShopcartResetStateWithTourHold","ShopcartResetStateWithUniqueCouponHolds","shopcartremovegiftcards","ConvertCartItemToTourHold","tourholdresponse","bktype","BookingTypeTerms","SetTourHoldRef","ConvertCartItemToTourHoldIncreaseQuantity","ConvertCartItemToTourHoldRemoveTourProduct","ConvertCartItemToTourHoldResetState","cashlessholds","ErrorMessagee","sagaShopCart","AddGiftCardHold","DeleteGiftCardHold","RecalculateGiftCardHold","managemybkng","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","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","param1","param2","sagaOrderMenu","GetMembershipsUserDefinedFields","sagaMembershipUserDefinedFields","GetCustomerUserDefinedFields","sagaCustomerUDFs","fetchCountryAndState","sagaCountryAndState","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","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","InvalidDOnationAmount","margin","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","UDFCheckBox","Checkbox","UDFDateTime","Name","InputLabelProps","shrink","UDFNumber","labelfix","UDFSelect","Select","labelId","displayEmpty","Picklist","picklist","UDFPicklistID","Option","flexDirection","minHeight","avatar","marginTop","paddingTop","justifyContent","fontWeightMedium","active","forwardRef","ref","media","content","actions","breakpoints","up","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","ManageMyBookingButtonTitle","ManageMyBookingButtonShow","float","marginLeft","iconSize","desktopView","fontFamily","cursor","mobileView","headerExtraTxtHide","headerExtraTxtShow","disabledlink","withRouter","onSidebarOpen","memberships","AppBar","Toolbar","Hidden","smDown","Link","to","href","alt","src","xsDown","mdUp","smUp","Badge","ConfirmationNumber","history","Person","Restaurant","IconButton","badgeContent","totalGFs","CountGiftCards","eventitemcount","AddShoppingCart","down","shiftContent","paddingLeft","Main","children","useTheme","isDesktop","useMediaQuery","defaultMatches","setOpenSidebar","AccountDetails","handleChange","Card","autoComplete","noValidate","CardHeader","subheader","Divider","CardContent","Grid","container","xs","helperText","SelectProps","native","CardActions","details","progress","uploadButton","AccountProfile","locationText","dateText","moment","Avatar","LinearProgress","Account","xl","handleCalendarViewChange","CalendarNavBar","displayAreasState","disableCalendarLink","setdisableCalendarLink","Path","urlID","ButtonGroup","aria-label","OtherExtraItemHeader","DisplayBookingTypeInfoCharacters","tourheaderbox","hidetopheader","ExtraItemsProducts","errorMsg","seterrorMsg","changeQuantityHandler","reference","allowQuantityChange","cartEvents","apiData","bkngType","bookingtypeID","CalculateMaxTickets","shopCartConsumed","cartTourEvent","consumedQty","tourEventId","ismembershipapplied","membercostrate","isIDME","isIDMECostrate","hidetopheading","ShowStartAndEndTime","titleTypographyProps","ms","AvailableOnline","Tooltip","Information","arrow","time","ShowStartTime","ShowEndTime","UDFDataField","GetDataField","BookingUDFields","bookingUdfCategory","actionAddUDFToTourEvent","onChangeHandler","udfValue","actionUpdateUDF","udfs","UDFDescription","OrderItemsInCartError","arrowBtn","BookingInfoCls","readmoreBtn","ExtraItemDrawer","isredirectclicked","setisredirectclicked","shopCartError","showMoreInfo","setShowMoreInfo","readmorebtnText","setreadmorebtnText","callCheckout","ValidateQuanity","NewQty","TotalTicketCount","MinTicket","MaxTicket","SeatsAvailable","BookNowOption","bookingInfo","ValidateBookingRequiredFields","validate","align","matchMedia","matches","toggleDrawer","EventName","BookingTypeInfo","substring","filterdata","cartdata","redirectCall","DefaultColor","EventNotAvailable","CalendarHeight","CalendarWidth","CalendarScreenDatTimeAlreadyBuyMsg","CalendarStartingHour","UnableToBuyTicketShowBookNowEnabled","UnableToBuyTicketShowBookNowDisabled","CalendarScreenMessage1","CalendarScreenMessage2","localizer","BigCalendar","momentLocalizer","list","list2","tourEvents","errExtraItem","currentview","setcurrentview","nextWeekDate","setnextWeekDate","GetMonthlyRecords","GetCostRate","GetDefaultDate","dt","today","constredirect","j","bookType","TourDisplayDays","lastdisplaydate","allDay","start","end","StartAndEndTime","GetWebDisplayName","DisplayColor","level","DisplayColorLevel","isExtraItem","bookingTypeID","isSaleable","isSingleTour","notavailableReason","ShowAvailability","AvailabilityText","startEvent","k","ShowOnCalendar","ConvertTourEventsToEvents","bookingunsoldReson","setState","side","headerValue","document","getElementsByClassName","textContent","newMonth","BackgroundColor","minTime","setHours","actionResetErrorMessage","pathname","overflow","defaultView","popup","onSelectEvent","redirecttoconfirmbookingchanges","onView","view","onNavigate","defaultDate","FetchNewMonthDataHandler","views","eventPropGetter","border","components","dateCellWrapper","cloneElement","Children","only","formats","dayRangeHeaderFormat","monthHeaderFormat","Drawer","anchor","role","cstrate","flexWrap","textField","searchBtn","DateSearch","textFieldValue","test","SearchDates","SearchRecordInfo","card","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","selectedDate","displayarea","BookingInfoFilter","underscore","BookingInfo","EventDate","BookingInfoGroup","tourEvent","keys","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","renderInput","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","transform","WebkitTransform","ProductCard","area","AreaName","DisplayText","callCalender","row","spacer","searchInput","TourPaddingLS","TourPaddingSS","ProductList","UniqueBookingTypeID","ShowOnline","Notifications","wrap","FormControlLabel","control","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","couponAmount","eventid","productid","couponID","couponRefHold","memoizer","getGATicketCoupon","groupby","actionShopCartRemoveGATicketCoupons","couponcode","getGATicketDiscount","paybutton","center","diplaynone","textaligncenter","cashlessvalue","PayableCard","hasitems","actionGetTransactionFee","pack","memberTypeID","actionShopCartRemoveCouponFromMembershiptype","GetMembershipTypeDiscount","TransactionFee","objcashless","maskGiftCardNo","ProcessingBox","isshow","text1","text2","CircularProgress","CustomMessageforconfirmpage","BookingTypeBarcodeHeader","PaymentCompleteTitle","ConfirmationReceiptMessage","DisableMemberPassBarcode","RedirectWaiverSigner","WaiverSignMessage","ShowReadableBarcode","headerbox","footerbox","headertext","PaymentCompletebox","ALLGATickets","ShowTicketDisplayName","t","getEvent","getGATickets","GetGiftCards","Giftcards","groupbyTourEvent","itemobj","GetMembershipPackage","membershippackage","packagename","PackageName","expiry","primaryMemberNo","amounts","CheckCircleOutlineOutlined","TabID","TabLocationName","productText","productWithOptions","opproduct","getProductOptions","disableSpacing","gaticket","Barcode","WaiverRequired","ShowWaiverLinks","onClickHandler","FreeBookingMessage1","FreeBookingMessage2","box100per","FreeTicketForm","spreedlyEnvironment","RecaptchaV3Client","StreetAddressTypeID","BillingAddressTypeID","UseStreetAddressForAVS","iframebox","iconforiframe","displaynone","iframeinputstyle","useImperativeHandle","useRef","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","fieldhandleChange","currentTarget","InputAdornment","CreditCard","FormHelperText","VpnKey","IconComponent","DateRange","GPCardNumberErrorMsg","GPCVVErrorMsg","GPExpiryErrorMsg","GlobalPaymentsApiKey","GlobalPaymentsEnvironment","GlobalPaymentsBaseURL","GlobalPaymentsEnableAutocomplete","TermsnConditionCheckMsg","TermsnConditionCheckBoxText","primarycolor","heading","mmbfakedisableButton","errorTxt","errorInput","FullWidth","GlobalPayments","refPayByCardOnFile","PayByCardOnFile","refReload","Reload","showPayBtn","setShowPayBtn","tncchecked","settncChecked","opentnc","setopentnc","cardDetails","setCardDetails","cardNumberRef","cvvRef","expiryDateRef","submitRef","tnccheckeHandle","current","innerHTML","configure","enableAutocomplete","ui","form","fields","submit","styles","cardForm","timeout","ResetCreditCard","resp","showFreeTicket","updatetsates","detail","data_path","description","valid","cardMaskedNum","cardType","PaymentDescription","trim","PurchaseItems","ValidatePaymentFields","mmbPayBy","temporary_token","masked_card_number","managemyBooking","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","countryandstates","colorState","setColorState","removeMembershipState","setremoveMembershipState","removemembershipcouponandgifts","setremovemembershipcouponandgifts","inputreferences","haspaid","paymentinfo","errormsg","scrollTo","actionShopCartResetState","disablepay","btnStatus","filterOptions","createFilterOptions","checkfieldvalidation","prop","focus","scrollBy","isvalid","validateEmail","validatePhoneNum","BindRequiredFields","phoneNum","cusNumber","onChangeState","onChangeShippingState","setOpen","handleCloseDialog","newEmail","actionShopCartUpdateMembershipEmail","ValidateMemberValidate","AlertMessage","RemoveCouponsAndGiftCards","GetTourEvents","actionShopCartValidMember","RemoveMembership","eventslist","GetTourEventsList","indexOfAccessToken","idmeAccessToken","actionGetIDMEUSERDATA","group","subgroups","actionGetCostRate","actionShopCartApplyidmeCostratesOnEvents","displayclass","memberemailonFile","GetEmailOnFileVal","requiredFields1","latestDate","GetLatestTourEvent","show","prods","VerifyGroupMembership","ShowIDME","Autocomplete","autoHighlight","getOptionLabel","renderOption","ISOCode","srcSet","o","disableEscapeKeyDown","disableBackdropClick","HighestCouponAlreadyApplied","HideCoupons","HideGiftCards","GiftCardEnterPinTitle","GiftCardEnterPinSubTitle1","UseGiftcardPIN","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","errorFont","DonationPopUp","showOthers","setshowOthers","donationPrice","setdonationPrice","setproductName","showDialog","actionShopCartUpdatePopupCounts","handleClose","CloseDonationPopUp","RadioGroup","dona","Radio","keyVal","ApplyDonation","ShowDonationsSections","itemsmarginR","donateBtn","Donations","checkexist","setcheckexist","validateMsg","setvalidateMsg","MinimumMembershipQuantityError","AddHoverOnIcons","removeUserFromMembershipType","memProdType","membership","removemembershipType","getTotalAmount","ticketamount","MaxQuantity","UpdateCustomAmout","CustomGiftCardVal","actionRemoveGiftCard","pattern","alignSelf","foodAmount","ShowDonationPopUp","closebutton","DialogeHeader","DialogeHeaderText","paymentbox","linkbutton","Checkout","gatewayRef","opendonationPopup","setopendonationPopup","OthersAmount","actionShopCartApplyDonation","Container","tabLocationID","goBack","actionShopCartRemoveTourWithTourHold","actionShopCartAddProductQuanityWithTourHold","ProductId","actionShopCartRemoveGATicket","actionShopCartGATicketUpdateQuanity","reCaptchaKey","firstname","lastname","initialDialogstate","dialogetitle","dialogemessage","initialerrorhandler","MembershipCard","JoinMemberships","RenewMembership","MembershipPackagesDisplayAreaNo","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","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","saveBtn","setsaveBtn","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","Description","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","paddingRight","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","AllowDateTimeChanges","AllowDateTimeChangesWithinArea","startFilterDate","ConstRedirectCHangeDateTime","ConstRedirectModifyTickets","totalpayments","applyrefund","constredirecttofindmybpooking","reditecttocheckout","BalanceOwe","BalanceOwing","totalpaid","eligibletxtReturnClass","eligibleTxt","AllowRefunds","AllowRefundToGiftcardOnly","totalbookingcost","CancelGCRefund","BookingName","NoChangesMessage","CustomerName","AllowTicketChanges","ChangeDateTimeHeading","ConfimBookingChanges","bookingreducer","amountaftercoupon","couponNo","setcouponNo","CouponsTotal","AmountToPay","previouspaid","actionShopCartRemoveCoupons","addeventstotourholdaction","constredirecttomanagecheckout","CheckCouponNo","ShowCurrentBookingStartAndEndTime","removeUniqueCouponHolds","box95per","hideVisiblity","cancelbtnconfig","cancelbtnconfig10per","CreditCardPayment","shopcartamounttoPay","CreditCardValue","setCreditCardValue","ZeroDollaroRGiftCardOnlyTransCall","ProcessAndConfigurePaymentsWithoutCard","billingAddressSameAsAbover","reseterrorfield","CancelChanges","formControl","AmountToPayLength","hideGrid","currentDateEvent","amounttopayTxtBox","setamounttopayTxtBox","CheckGiftCard","actualTotal","newTotal","eventTotal","totalbookingpaid","AmountToPayCalCulation","totalcst","totalpd","BookingCancelMsg","BookingSuccessfullyUpdate","TransactionCompleteTitle","receiptfileds","PaymentCompletePage","TotalPaid","GetTourName","tourname","GetTourDetails","tourdetails","GetBookingPrevPaid","bookingPaid","TransactionDate","TotalBalance","ManageCheckout","onClickPaymentHandler","actionShopCartResetGiftcards","ModifyTicketsHeading","ModifyTicketsAddons","changeQuantityCurrentBooking","actionUpdateQuantity","tourevntID","memcstRate","amounttop","returnproducts","PreviousQtyChanges","IsRefundable","GiftCardAreaCard","gcImg","maxHeight","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","Routes","exact","from","CalendarView","MainLayout","FoodOrderLocationScreen","OrderLocationTabScreen","OrderMenuScreen","OrderSubMenuScreen","OrderItemsReviewScreen","DashboardView","UserListView","ProductListView","GiftCardsAreasListView","MainGiftCardsView","MembershipsView","MembershipsMemberValidateView","MembershipListView","FindMyBookingView","ManageBookingView","ConfimBookingChangesView","ModifyTicketsAddonsView","ManageCheckoutView","TypographyView","IconsView","AccountView","SettingsView","NotFoundView","CheckoutView","backdrop","BorderLinearProgress","withStyles","bar","Apploader","Backdrop","browserHistory","createBrowserHistory","basename","App","ThemeProvider","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.30ab11e0.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\nimport { parse } from 'crypto-js/enc-utf8';\r\nimport { ContactsOutlined } from '@material-ui/icons';\r\n\r\nconst { nodeNo, PaymentTypeID, CashlessTypeID, GiftCardTypeID, TransactionUserName,\r\n DonationProductID, TransactionFeeProductID, ApplyTransactionFee, Currency,\r\n ShowOrderItemPriceAs } = 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) {\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 = products.map(({ TotalAmount }) => TotalAmount).reduce((sum, i) => sum + i, 0);\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\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) - totalDiscount > 0)\r\n transFee = parseFloat(transactionfee.Price);\r\n }\r\n else {\r\n transFee = Math.round(parseFloat((((producttotal + membershipPackTotal + gaticketstotal + orderProductsTotal) - 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 + 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 = event.TicketAmount + event.TaxAmount;\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) {\r\n let transactions = [];\r\n let trans = {};\r\n\r\n if (refundType === \"AdditionalPayment\" && additionalPayment > 0 && 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\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: product.ProductAmount,\r\n LinePaidTax: product.ProductTaxAmount,\r\n LinePaidIncTax: 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 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 if (ApplyTransactionFee && transactionFee && transactionFee.hasOwnProperty('ProductID')) {\r\n\r\n let transFee = 0;\r\n let transTax = 0;\r\n\r\n transFee = this.GetTransactionFee(transactionFee, events, donation, cashless, membershipPackages, gatickets, giftcards, orderProducts);\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: transFee,\r\n LinePriceTax: transTax,\r\n LinePriceIncTax: transFee + transTax,\r\n LinePaidExTax: transFee,\r\n LinePaidTax: transTax,\r\n LinePaidIncTax: 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, transactionFee, membershipPackages, gatickets, giftcards, orderProducts);\r\n\r\n\r\n if (isManageBooking && booking && 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 (isManageBooking && booking && 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\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\" && additionalPayment > 0 && isManageBooking && booking) {\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 let addpayment = {\r\n ProductLineNo: trans.Products.length + 1,\r\n BookingID: booking.BookingID,\r\n LinePaidIncTax: additionalPayment + cashlesstotal\r\n }\r\n\r\n trans.Products.push(addpayment);\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 ((totalAmount > 0) || (isManageBooking && booking && (totalAmount > 0 || totalAmount < 0)) && !((refundType === \"GiftCardRefund\" || refundType === \"CancelGiftCardRefund\" || refundType === \"AdditionalPayment\") && totalAmount < 0)) {\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 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 (refundType === \"AdditionalPayment\" && additionalPayment > 0) {\r\n\r\n let giftcard = trans.Payments && trans.Payments.length > 0 ? trans.Payments.filter(x => x.PaymentTypeID == CashlessTypeID)[0] : null;\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 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) {\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 = parseInt(product.Quantity) + parseInt(existEevent.TourProducts.filter(x => x.TourProductID == product.TourProductID)[0].Quantity)\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.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 = 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 ConvertCartItemToTourHold(cartevent, newevent) {\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 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 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 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 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.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 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) {\r\n\r\n let tFee = this.GetTransactionFee(transactionfee, products, donation, cashless, membershipPackages, gatickets, giftcards, orderProducts);\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) {\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) * 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)) * 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}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { CouponManager } 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.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\") ? prod.PercentageDiscount : prod.DollarDiscount;\r\n\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(product.ProductAmount / product.Quantity, couponObj.Quantity, couponObj.Discount, product) * 100) / 100 : Math.round(CouponManager.CalculateDollarTicketPrice(product.ProductAmount, prod.DollarDiscount, couponObj.Quantity, product) * 100) / 100;\r\n couponObj.TicketTax = couponObj.isPercentage ? Math.round(CouponManager.CalculateTaxOddQuantities(product.ProductTaxAmount / product.Quantity, couponObj.Quantity, couponObj.Discount, product) * 100) / 100 : Math.round(CouponManager.CalculateDollarTicketTax(couponObj.TicketAmount, prod.DollarDiscount * couponObj.Quantity, couponObj.Quantity, product) * 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(product.ProductAmount * (couponObj.Discount / 100) * 100) / 100 : Math.round(CouponManager.CalculateDollarTicketPrice(product.ProductAmount, prod.DollarDiscount, product.Quantity, product) * 100) / 100;\r\n couponObj.TicketTax = couponObj.isPercentage ? Math.round(product.ProductTaxAmount * (couponObj.Discount / 100) * 100) / 100 : Math.round(CouponManager.CalculateDollarTicketTax(couponObj.TicketAmount, prod.DollarDiscount * product.Quantity, couponObj.Quantity, product) * 100) / 100;\r\n }\r\n\r\n\r\n couponObj.TotalAmount = couponObj.TicketAmount + couponObj.TicketTax;\r\n this.OnePennyDifference(product, couponObj);\r\n\r\n let itemIndex = event.CouponItems.findIndex(x => x.TourProductID == product.TourProductID &&\r\n 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 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) {\r\n\r\n if (Product.PriceMatrix && Product.PriceMatrix[0].Taxes[0].TaxIncluded) {\r\n if (DollarPercent * ApplyQty > Product.ProductTotalAmount) {\r\n return 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) {\r\n\r\n if (Product.PriceMatrix && Product.PriceMatrix[0].Taxes[0].TaxIncluded) {\r\n if (DollarPercent > Product.ProductAmount && Product.Quantity == 1) {\r\n return Product.ProductTaxAmount;\r\n }\r\n\r\n if (DollarPercent > (Product.ProductAmount / 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) {\r\n\r\n if (Product.PriceMatrix && Product.PriceMatrix[0].Taxes[0].TaxIncluded) {\r\n if (Discount == 100) {\r\n return (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) {\r\n\r\n if (Product.PriceMatrix && Product.PriceMatrix[0].Taxes[0].TaxIncluded) {\r\n if (Discount == 100) {\r\n return (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) {\r\n if (product.PriceMatrix && product.PriceMatrix[0].Taxes[0].TaxIncluded && coupon.Quantity == product.Quantity) {\r\n if (Math.round((coupon.TotalAmount - (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\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_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\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\n\r\nexport const actionShopCartAddEventWithTourHold = (dispatch, event, cartevent) => {\r\n dispatch({ type: SHOPCART_ADD_EVENT_WITH_TOURHOLD, payload: { event: event, cartevent: cartevent } });\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 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 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) => {\r\n dispatch({ type: SHOPCART_APPLY_DONATION, payload: { productID: productID, productName: productName, price: price, othersAmount: othersAmount } });\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 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}","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\r\n , SHOPCART_UPDATE_MEMBERSHIPEMAIL, SHOPCART_APPLY_DONATION, SHOPCART_RESET_DONATION,\r\n UPDATE_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_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\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\n\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 }),\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 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 (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);\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 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 };\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\r\n\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 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_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\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\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 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 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_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 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\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) => {\r\n dispatch({ type: GET_EXTRAITEM_OBJECT, payload: TourEventID, IsMembershipApplied: IsMembershipApplied, MemberCostRate: MemberCostRate, IsIDME: IsIDME, IsIDMECostRate: IsIDMECostRate })\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}","import {\r\n EXTRAITEMS_LOADING, GET_EXTRAITEMS_DATA_SUCCESS, GET_EXTRAITEMS_DATA_ERROR,\r\n GET_EXTRAITEM_OBJECT, UPDATE_PRODUCT_QUANTITY, RESET_EXTRAITEMS, RESET_ERROR_MSG\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\r\n 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 }\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 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 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 actionGetDisplayAreas = (dispatch, id, isDisplay) => {\r\n dispatch({ type: DISPLAYAREAS_LOADING, id: id, isDisplay: isDisplay })\r\n};\r\n\r\nexport const actionResetDisplayAreas = (dispatch) => {\r\n dispatch({ type: RESET_DISPLAYAREAS })\r\n};","import { DISPLAYAREAS_LOADING,GET_DISPLAYAREAS_DATA_SUCCESS,\r\n GET_DISPLAYAREAS_DATA_ERROR, RESET_DISPLAYAREAS } 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\n function reducerDisplayAreas(state = initialState, action) {\r\n switch (action.type)\r\n {\r\n case DISPLAYAREAS_LOADING: {\r\n return {\r\n ...state,\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 {\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;","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';\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\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 { genfunction } from '../helpers';\r\nconst path = 'DisplayAreas?type='\r\n\r\nexport const apiDisplayAreas = (type) => {\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 const url = DataAccess.apiUrl + path + type;\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';\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\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\n\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 getProductsByProductType = (productType) => {\r\n let newpath = path + \"?ProductType=\" + productType;\r\n return api.getData(newpath)\r\n}\r\n\r\nexport const getProductsByProductTypeAndDisplayArea = (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.token;\r\n let paymentamount = 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)) + \"&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 { 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 } from 'api';\r\nimport { genfunction, UDFs } from 'helpers';\r\nimport AES from '../helpers/AES';\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\r\n let customerID = 0;\r\n var customerReq = null;\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);\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\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 transaction[0].CustomerID = customerPostCall ? customerID : memberValidationReducer.membervalidation.MemberValidation[0].CustomerID;\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\r\n let transactionresponse = yield fetchAsync(posttransaction, { transaction: transaction, token: token, email: customer.CustomerAddress[0].Email, customerName: customer.FirstName + ' ' + customer.LastName, recaptchav3token: recaptchaToken });\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 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 { DISPLAYAREAS_LOADING, GET_DISPLAYAREAS_DATA_SUCCESS, GET_DISPLAYAREAS_DATA_ERROR } from \"../actions/actionDisplayAreas\";\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 && 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, \"bookingtypes\")\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\nexport const sagaDisplayAreas = [\r\n takeEvery(DISPLAYAREAS_LOADING, fetchDisplayAreasData)\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_RESET_STATE_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);\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 yield put({ type: SHOPCART_ADD_EVENT, payload: action.payload.event });\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* 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_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 refundType = yield select(state => state.reducerShopCart.refundType);\r\n const addamount = yield select(state => state.reducerShopCart.mmbAmountToPay);\r\n const giftcards = yield select(state => state.reducerGiftCards);\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 totalamount = genfunction.subproducttotal(events, cashless, donation, transactionfee.transactionFee[0] && !transactionfee.transactionFee[0].PriceIsAPercentage ? transactionfee.transactionFee[0] : undefined, membershipPackages, gatickets, giftcards.giftcards, orderProducts);\r\n\r\n if (managemybkng && reducerBooking && reducerBooking.booking[0]) {\r\n totalamount = addamount;\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\r\n let totalamount = genfunction.subproducttotal(events, [], donation, transactionfee.transactionFee[0] && !transactionfee.transactionFee[0].PriceIsAPercentage ? transactionfee.transactionFee[0] : undefined, membershipPackages, gatickets, giftcards.giftcards, orderProducts);\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\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 { getProductsByProductTypeAndDisplayArea } 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(getProductsByProductTypeAndDisplayArea, \"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 { 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';\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 ]);\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';\n\nexport default {\n MuiButton,\n MuiIconButton,\n MuiPaper,\n MuiTableCell,\n MuiTableHead,\n MuiTypography\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 { 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\nconst { InvalidDOnationAmount } = window['runConfig'];\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n '& > *': {\r\n margin: theme.spacing(1),\r\n },\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(InvalidDOnationAmount);\r\n }\r\n else {\r\n props.Validated('');\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 />\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, InputLabel, TextField } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n paddingBottom: \"20px\"\r\n },\r\n labelfix: {\r\n minWidth: \"30px\"\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 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, actionShopCartRemoveGiftcards, actionShopcartResetOrderProducts, actionResetGiftCards\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\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\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()) && 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])\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())) {\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 && 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 { Restaurant as RestaurantIcon, Person as PersonIcon, ConfirmationNumber as ConfirmationNumberIcon, AddShoppingCart } from '@material-ui/icons';\nimport Link from '@material-ui/core/Link';\n\nconst { RedirectLogoURL, GiftCardsHeading, HeaderExtraText, TicketsHeading, MembershipsHeading, TicketLinkHeading, FoodOrderLinkHeading, 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: 'white', fontSize: '14px', marginTop: '5px',\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", \"sans-serif\"',\n cursor: 'pointer'\n }\n ,\n mobileView: {\n color: 'white', 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\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))\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 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\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 { Button, Card, CardHeader, CardContent, Paper, Typography, Grid, Hidden } from '@material-ui/core';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { actionGetExtraItem, actionIncreaseQuantity } from 'actions';\r\nimport { actionShopCartAddEventWithTourHold } from 'actions';\r\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\r\nimport { genfunction } from '../../helpers';\r\nimport ReactHtmlParser, { processNodes, convertNodeToElement, htmlparser2 } from 'react-html-parser';\r\nimport { NumberSpinner } from '../InputControls'\r\nimport ErrorHandling from '../ErrorHandling/ErrorHandling';\r\nimport { node } from 'prop-types';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\n\r\nconst { OtherExtraItemHeader, DefaultCostRateID, DisplayBookingTypeInfoCharacters } = 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}));\r\n\r\nconst ExtraItemsProducts = (props) => {\r\n const classes = useStyles();\r\n const [errorMsg, seterrorMsg] = useState(\"\");\r\n const dispatch = useDispatch()\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 !== 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\r\n actionIncreaseQuantity(dispatch, reference.TourProductID, quantity, false, reference.MinimumTickets, reference.MaximumTickets);\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 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 == 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).length > 0) {\r\n consumedQty = apiData.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 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 actionGetExtraItem(dispatch, props.tourEventId, props.ismembershipapplied, props.membercostrate, props.isIDME, props.isIDMECostrate);\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.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).length > 0 ?\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\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 },\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, { useEffect, useState } 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 } from 'actions';\r\nimport { actionShopCartAddEventWithTourHold, actionShopCartResetError } from 'actions';\r\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\r\nimport { genfunction } from '../../helpers';\r\nimport ReactHtmlParser, { processNodes, convertNodeToElement, htmlparser2 } 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\n\r\n\r\nconst { DisplayBookingTypeInfoCharacters, OrderItemsInCartError } = 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 padding: '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\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 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] = React.useState(false);\r\n const [readmorebtnText, setreadmorebtnText] = React.useState('Read More');\r\n const bookingUDFS = useSelector(state => state.reducerBookingUserDefinedFields);\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 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 (ValidateQuanity() && ValidateBookingRequiredFields()) {\r\n setisredirectclicked(true);\r\n let filterdata = { ...apiData };\r\n filterdata.TourProducts = filterdata.TourProducts.filter(product => product.Quantity > 0);\r\n let cartdata = [...cartEvents];\r\n actionShopCartAddEventWithTourHold(dispatch, filterdata, cartdata);\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 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 = CartQty + NewQty;\r\n\r\n if (apiData.SeatsAvailable == 0 || apiData.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 > apiData.SeatsAvailable) {\r\n seterrorMsg(\"Maximum of \" + apiData.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\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 actionGetExtraItem(dispatch, props.tourEventId, props.ismembershipapplied, props.membercostrate, props.isIDME, props.isIDMECostrate);\r\n }, []);\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 \r\n\r\n \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 = {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, Children } 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 } from 'actions';\nimport { actionResetBooking } from 'actions';\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\n\n const [currentview, setcurrentview] = React.useState(\"\");\n const [nextWeekDate, setnextWeekDate] = React.useState('');\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 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 actionGetExtraItems(dispatch, props.urlID, true, true, newObj.NextTourDate, null, null);\n }\n else {\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 = 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] = React.useState({\n right: false,\n tourEventId: 0,\n bookingTypeID: 0,\n errorMsg: '',\n bookingunsoldReson: ''\n });\n\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\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 setState({ ...state, [side]: open, bookingunsoldReson: '' });\n };\n\n const sideList = side => (\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 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 ?\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 {events !== undefined ?\n {\n shopcartreducer.managemybooking ? redirecttoconfirmbookingchanges(event) : toggleDrawer('right', true, event)\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\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';\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 });\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 if (props.Path == \"/calendar/:id\") {\n actionResetDisplayAreas(dispatch);\n actionGetExtraItems(dispatch, props.urlID, true, false, null, true, null);\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 actionGetExtraItems(dispatch, props.urlID, true, true, newObj.NextTourDate, true, null);\n }\n else {\n actionGetExtraItems(dispatch, props.urlID, true, true, displayAreasState.displayArea.NextTourDate, true, null);\n }\n }\n }, []);\n\n\n\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 setState({ ...state, [side]: open });\n };\n\n const sideList = side => (\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 useEffect(() => {\n\n if (calendarNavState.viewType == \"ListView\") {\n setState({ ...state, pagedEvents: tourEvents })\n }\n }, [tourEvents]);\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 {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\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 });\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 if (props.Path == \"/calendar/:id\") {\r\n actionGetExtraItems(dispatch, props.urlID, true, false, bookingTypes.bookingType.NextTourDate, false, null);\r\n }\r\n else {\r\n if (displayAreasState.displayAreas !== undefined && displayAreasState.displayAreas.length > 0) {\r\n let displayarea = displayAreasState.displayAreas.find(x => x.DisplayAreaNo == props.urlID);\r\n actionGetExtraItems(dispatch, props.urlID, true, true, displayarea.NextTourDate, false, null);\r\n }\r\n else {\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 > 1) {\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 setState({ ...state, [side]: open, tourEventId: 0 });\r\n };\r\n\r\n const sideList = side => (\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 return bookingTypes.bookingType ? bookingTypes.bookingType.BookingInfoDetails : \" \";\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(bookingType.NextTourDate) });\r\n }\r\n else {\r\n setState({ ...state, selectedDate: new Date() });\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(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(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 //&& Moment(event.EventDate).format('YYYY-MM') == Moment(state.selectedDate).format('YYYY-MM')\r\n });\r\n\r\n if (tourevent)\r\n setState({ ...state, selectedDate: new Date(tourevent.EventDate), TourEventTimeSlot: [] });\r\n else {\r\n setState({ ...state, selectedDate: new Date() });\r\n }\r\n }\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: [] });\r\n\r\n // if (tourEvents.length == 0 || Moment(state.selectedDate).format('YYYY-MM') !== Moment(newValue).format('YYYY-MM')) {\r\n // let newdate = Moment(newValue).format('YYYY-MM-') + '01';\r\n // GetFilterDates(newdate);\r\n // }\r\n }}\r\n\r\n onMonthChange={(day) => {\r\n setState({ ...state, selectedDate: day, TourEventTimeSlot: [] });\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 ?\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 if (shopcartreducer.managemybooking)\r\n redirecttoconfirmbookingchanges(getTourEvent(event.target.value))\r\n else\r\n toggleDrawer('right', true, getTourEvent(event.target.value))\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 { actionGetDisplayAreas } 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\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 && 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 actionGetDisplayAreas(dispatch, 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 { actionGetDisplayAreas, 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 actionGetDisplayAreas(dispatch, 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 clsx from 'clsx';\nimport { makeStyles } from '@material-ui/styles';\nimport { genfunction } from 'helpers'\nimport CancelIcon from '@material-ui/icons/Cancel'\nimport {\n Card, CardContent, Typography, CardHeader, IconButton,\n Table, TableBody, TableCell, TableRow, Hidden\n} from '@material-ui/core';\n\nimport { NumberSpinner } from '../../../components/InputControls'\nimport Button from '@material-ui/core/Button';\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 } from 'actions';\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 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 removeclickhandler(product.TourEventID, item.TourProductID, product.CouponItems)}\n >\n \n \n \n {item.TourProductName}\n \n { changeQuantityHandler(refrence, value) }}>\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 Total\n {genfunction.ccyFormat(product.TotalAmount)}\n \n\n \n \n\n\n\n \n \n \n \n\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 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(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(e.TotalAmount)}\r\n \r\n ) : null\r\n }\r\n\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 } = 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 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\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 {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 {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)))}\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, transactionfee.transactionFee[0], membershipPackages, gatickets, giftcards.giftcards, orderProducts))}\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: transaction.CustomerID\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 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\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 {transaction.OrderProducts == undefined || transaction.OrderProducts.length == 0 ?\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 {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 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\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, { 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 { genfunction } from 'helpers';\r\nimport { actionPostPaymentTransaction } 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, { processNodes, convertNodeToElement, htmlparser2 } from 'react-html-parser';\r\n\r\nconst { BillingAddressTypeID, GPCardNumberErrorMsg, GPCVVErrorMsg, GPExpiryErrorMsg, GlobalPaymentsApiKey,\r\n GlobalPaymentsEnvironment, GlobalPaymentsBaseURL, GlobalPaymentsEnableAutocomplete, TermsnConditionCheckMsg,\r\n StreetAddressTypeID, RecaptchaV3Client, TermsnConditionCheckBoxText, UseStreetAddressForAVS } = 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\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\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()) && 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\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\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 setCardDetails(resp);\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 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')) {\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')) {\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\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 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\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 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 \r\n \r\n {TermsnConditionCheckBoxText}\r\n { setopentnc(true) }} > Terms and Conditions \r\n \r\n\r\n \r\n \r\n <>\r\n
\r\n
\r\n \r\n \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 \r\n \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, useForkRef } 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\n\r\nimport { Autocomplete } from '@material-ui/lab';\r\nimport { createFilterOptions } from '@material-ui/lab/Autocomplete';\r\n\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,\r\n actionShopCartUpdateMembershipEmail, actionShopCartResetMembershipPackage, actionShopCartApplyidmeCostratesOnEvents,\r\n actionShopCartValidMember\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, actionStartLoadingOnRemoveMembership } 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\n\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\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\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 } = 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\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\r\n useEffect(() => {\r\n if ((events.length > 0 || membershipPackages.length > 0 || gatickets.length > 0 || orderProducts.length > 0 || ShowGiftCards()) && 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 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()) && 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 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 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 let MinTicket = event.TourProducts[0].MinimumTickets;\r\n let MaxTicket = event.TourProducts[0].MaximumTickets;\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, transactionfee.transactionFee[0], membershipPackages, gatickets, giftcards.giftcards, orderProducts) > 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 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)) {\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\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 }, [tourEvents]);\r\n\r\n const RemoveMembership = () => {\r\n\r\n actionShopCartResetMembership(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)) {\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 else if ((membershipPackages && membershipPackages.length > 0) || (gatickets && gatickets.length > 0) || ShowGiftCards() || (orderProducts && orderProducts.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 if (costrate.costrate.hasOwnProperty('CostRateID') && costrate.costrate.CostRateID > -1) {\r\n GetTourEvents();\r\n }\r\n\r\n if (costrate.costraterror.length > 0) {\r\n seterrorMsg(costrate.costraterror);\r\n }\r\n }, [costrate]);\r\n\r\n useEffect(() => {\r\n if (costrate.costrate.hasOwnProperty('CostRateID') && costrate.costrate.CostRateID > -1 && shopcartreducer.IDME.isIdMeApplied === false) {\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\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 let showFreeTicket = ((events && events.length > 0) || (gatickets && gatickets.length > 0) || (membershipPackages && membershipPackages.length > 0) || (orderProducts && orderProducts.length)) > 0 && genfunction.subproducttotal(events, cashless, donation, transactionfee.transactionFee[0], membershipPackages, gatickets, giftcards.giftcards, orderProducts) == 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 ?\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\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 }}\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 }}\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 {PaymentMethodType === \"Spreedly\" ?\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 \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\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 } = 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 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\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])\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, transactionfee.transactionFee[0], membershipPackages, gatickets, giftcards.giftcards, orderProducts);\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, transactionfee.transactionFee[0], membershipPackages, gatickets, giftcards.giftcards, orderProducts);\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, transactionfee.transactionFee[0], membershipPackages, gatickets, giftcards.giftcards, orderProducts);\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 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)) {\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\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()) && 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\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 //need to add \r\n\r\n if (props.showDialog && open === false && events.length > 0 && donation.popupCounts === 0) {\r\n setOpen(true);\r\n actionShopCartUpdatePopupCounts(dispatch)\r\n }\r\n\r\n const Validated = (val) => {\r\n seterrorMsg(val);\r\n }\r\n\r\n const ApplyDonation = () => {\r\n\r\n if (donationPrice === \"\" || donationPrice === 0 || donationPrice < 0.1) {\r\n Validated(InvalidDOnationAmount);\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('');\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('');\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(InvalidDOnationAmount);\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 setvalidateMsg(val);\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 \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\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\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\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, { 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\r\n} from './components';\r\n\r\nimport {\r\n actionShopCartResetStateWithTourHold,\r\n actionShopCartAddProductQuanityWithTourHold,\r\n actionShopCartRemoveTourWithTourHold,\r\n actionShopCartResetStateWithUniqueCouponHold,\r\n actionShopCartResetMembership, actionShopCartResetMembershipPackage,\r\n actionShopCartRemoveGATicket, actionShopCartGATicketUpdateQuanity, actionShopCartResetGATicket, actionShopCartRemoveGiftcards,\r\n actionDeleteOrderProduct, actionShopcartResetOrderProducts, actionShopCartResetDonation, actionShopCartApplyDonation\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\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 actionShopCartApplyDonation(dispatch, productID, productName, price, OthersAmount);\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) {\r\n\r\n actionResetFieldValuesState(dispatch);\r\n actionResetTransactionFee(dispatch);\r\n actionShopCartResetMembership(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])\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 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 (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 || 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\r\n if (ApplyTransactionFee) {\r\n actionResetTransactionFee(dispatch);\r\n }\r\n\r\n actionShopCartResetGATicket(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 }}\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\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) || 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) || 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\n\r\nconst { MembershipPackagesDisplayAreaNo } = 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\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 && 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 {\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 props.history.push({\r\n pathname: '/memberships/membervalidate/' + membership.MembershipPackageID\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 height: '40px'\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 height: '35px'\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 !important'\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\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 && 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\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 && 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 } 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 } = 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 },\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\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 (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\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 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 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\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 } from 'actions';\r\nimport { actionDeleteUniqueCoupon } from 'actions';\r\nimport { actionStartAppLoader, actionEndAppLoader } from '../../actions/actionAppLoader';\r\n\r\nconst { DefaultCostRateID, ChangeDateTimeHeading } = 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 //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\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\r\n if (isredirectclicked && shopcartreducer.error.length < 1 && shopcartreducer.events && shopcartreducer.events.length > 0 && AmountToPay() > -1) {\r\n actionShopCartSetMmbAmountToPay(dispatch, AmountToPay());\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 addeventstotourholdaction = () => {\r\n let filterdata = { ...newExtraItem };\r\n filterdata.TourProducts = filterdata.TourProducts.filter(product => product.Quantity > 0);\r\n let cartdata = [...cartEvents];\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 totalpayments = () => {\r\n let total = 0;\r\n if (bookingreducer.booking && bookingreducer.booking[0] && bookingreducer.booking[0].hasOwnProperty('BookingPayments') && bookingreducer.booking[0].BookingPayments.length > 0) {\r\n total = bookingreducer.booking[0].BookingPayments.length;\r\n }\r\n\r\n return total;\r\n }\r\n\r\n const eligibletxtReturnClass = () => {\r\n let eligibleTxt = \"\";\r\n if (bookingreducer.booking[0]) {\r\n if (bookingreducer.booking[0] && bookingreducer.booking[0].AllowRefunds && totalpayments() === 1 && bookingreducer.booking[0].AllowRefundToGiftcardOnly) {\r\n\r\n if (bookingreducer.booking[0].hasOwnProperty('PaymentToken')) {\r\n eligibleTxt = \"You are eligible for a refund of\" + (bookingreducer.booking[0] ? genfunction.ccyFormat(Math.abs(AmountToPay())) : 0) + \" to a gift card or card on file \" + (bookingreducer.booking[0].PaymentDescription !== undefined ? bookingreducer.booking[0].PaymentDescription : '');\r\n }\r\n else {\r\n eligibleTxt = \"You are eligible for a refund of\" + (bookingreducer.booking[0] ? genfunction.ccyFormat(Math.abs(AmountToPay())) : 0) + \" to a gift card.\";\r\n }\r\n }\r\n else if (bookingreducer.booking[0].AllowRefundToGiftcardOnly && bookingreducer.booking[0].AllowRefunds == false) {\r\n eligibleTxt = \"You are eligible for a refund of\" + (bookingreducer.booking[0] ? genfunction.ccyFormat(Math.abs(AmountToPay())) : 0) + \" to a gift card.\";\r\n }\r\n else if (bookingreducer.booking[0] && bookingreducer.booking[0].AllowRefunds && totalpayments() === 1 && bookingreducer.booking[0].hasOwnProperty('PaymentToken')) {\r\n eligibleTxt = \"You are eligible for a refund of \" + (bookingreducer.booking[0] ? genfunction.ccyFormat(Math.abs(AmountToPay())) : 0) + \" through card on file \" + (bookingreducer.booking[0].PaymentDescription !== undefined ? bookingreducer.booking[0].PaymentDescription : '');\r\n }\r\n\r\n return eligibleTxt;\r\n }\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}\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 {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 \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 Refund to Gift Card\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 Refund to Gift Card\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 Refund to Gift Card\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, CardHeader, FormControl, FormControlLabel, Hidden, FormHelperText, Grid, InputLabel, InputAdornment,\r\n Link, MenuItem, Radio, RadioGroup, Select, Typography, TextField\r\n} from '@material-ui/core';\r\nimport { CreditCard, DateRange, VpnKey } from '@material-ui/icons';\r\nimport { genfunction } from '../../../helpers';\r\nimport { actionPostPaymentTransaction, actionResetPaymentTransaction } 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 theme from '../../../theme';\r\nimport ErrorHandling from '../../../components/ErrorHandling/ErrorHandling';\r\nimport { actionGetCustomer, actionResetCustomer } from 'actions';\r\nimport { actionShopCartSetRefundType, actionShopCartSetAdditionalBookingAmount } from 'actions';\r\nimport { actionGetCountryAndState, actionResetCountryAndState } 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\n\r\n\r\nconst { BillingAddressTypeID, EmailRegex, StreetAddressTypeID, spreedlyEnvironment, RecaptchaV3Client, TermsnConditionCheckBoxText,\r\n TermsnConditionCheckMsg, UseStreetAddressForAVS, ShowFullAddressOnCheckout, PaymentMethodType, PhoneNumberMandatory } = 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\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 (props.booking && props.booking.hasOwnProperty('CustomerID') && props.booking.CustomerID > 0) {\r\n actionGetCustomer(dispatch, props.booking.CustomerID, props.booking.BookingEmailAddress);\r\n }\r\n }, []);\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 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\" && 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, transactionfee.transactionFee[0], 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 {\r\n paymentsRef.current.SpreedlyZeroDollarTransactionCall(requiredFields);\r\n }\r\n }\r\n }\r\n else {\r\n paymentsRef.current.SpreedlyCardOnFileTransaction();\r\n }\r\n }\r\n\r\n const PayByGlobalPayment = () => {\r\n paymentsRef.current.PayByCardOnFile();\r\n }\r\n\r\n const ManageNonPaymentMethodTrans = () => {\r\n if (CreditCardValue === \"\" && cashlesstotal > 0 && (parseFloat(shopcartamounttoPay) === cashlesstotal)) {\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.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 disabled={(props.amounttopay <= 0 || shopcartamounttoPay <= 0)}\r\n // || (refundType == \"GiftCardRefund\" || refundType === \"CreditCardRefund\" || refundType === \"CancelBooking\" || refundType === \"CancelGiftCardRefund\")}\r\n\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 \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\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 \r\n \r\n \r\n {TermsnConditionCheckBoxText}\r\n { setopentnc(true) }} > Terms and Conditions \r\n \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 \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 } from 'actions';\r\nimport ErrorHandling from '../../../components/ErrorHandling/ErrorHandling';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { actionShopCardAddGiftCard, actionShopCartSetMmbAmountToPay } 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\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\r\n if (refundType === \"AdditionalPayment\") {\r\n actionShopCartSetMmbAmountToPay(dispatch, amounttopayTxtBox);\r\n }\r\n else {\r\n actionShopCartSetMmbAmountToPay(dispatch, shopcartamounttoPay);\r\n }\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\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) {\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') {\r\n\r\n setamounttopayTxtBox(parseFloat(shopcartamounttoPay).toFixed(2));\r\n actionShopCartSetMmbAmountToPay(dispatch, Math.round(shopcartamounttoPay * 100) / 100);\r\n }\r\n else {\r\n\r\n setamounttopayTxtBox(totalpaid());\r\n actionShopCartSetMmbAmountToPay(dispatch, totalpaid());\r\n }\r\n }, []);\r\n\r\n const amounttopayTxtUpdate = (event) => {\r\n\r\n let totalcst = totalbookingcost();\r\n let totalpd = totalbookingpaid();\r\n\r\n if (parseFloat(event.target.value) > 0 && (parseFloat(event.target.value) <= Math.round((totalcst - totalpd) * 100) / 100)) {\r\n\r\n setamounttopayTxtBox(Math.round(parseFloat(event.target.value) * 100) / 100);\r\n actionShopCartSetMmbAmountToPay(dispatch, Math.round(parseFloat(event.target.value) * 100) / 100);\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\") {\r\n\r\n total = shopcartamounttoPay - cashlesstotal;\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, Hidden, 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\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 Receipt Date and Time : \r\n Receipt Number : \r\n Booking # : \r\n Tour Name : \r\n Tour Details : \r\n New Cost : \r\n Previous Paid : \r\n Amount Difference : \r\n \r\n\r\n \r\n Receipt Date and Time : \r\n Receipt Number : \r\n Booking # : \r\n Tour Name : \r\n Tour Details : \r\n New Cost : \r\n Previous Paid : \r\n Amount Difference : \r\n \r\n\r\n \r\n Receipt Date and Time : \r\n Receipt Number : \r\n Booking # : \r\n Tour Name : \r\n Tour Details : \r\n New Cost : \r\n Previous Paid : \r\n Amount Difference : \r\n \r\n\r\n\r\n \r\n \r\n\r\n \r\n {genfunction.GetTransactionDate(transaction.TransactionDate)}\r\n {transaction.ReceiptNo}\r\n {(reducerBooking.booking[0] ? reducerBooking.booking[0].BookingID : 0)}\r\n {GetTourName()}\r\n {genfunction.GetTransactionDate(GetTourDetails())}\r\n {genfunction.ccyFormat((TotalPaid() > 0 ? Math.abs(TotalPaid()) + Math.abs(GetBookingPrevPaid()) : Math.abs(GetBookingPrevPaid()) - Math.abs(TotalPaid())))}\r\n {genfunction.ccyFormat(GetBookingPrevPaid())}\r\n {genfunction.ccyFormat(TotalPaid())}\r\n \r\n\r\n \r\n {genfunction.GetTransactionDate(transaction.TransactionDate)}\r\n {transaction.ReceiptNo}\r\n {(reducerBooking.booking[0] ? reducerBooking.booking[0].BookingID : 0)}\r\n {GetTourName()}\r\n {genfunction.GetTransactionDate(GetTourDetails())}\r\n {genfunction.ccyFormat((TotalPaid() > 0 ? Math.abs(TotalPaid()) + Math.abs(GetBookingPrevPaid()) : Math.abs(GetBookingPrevPaid()) - Math.abs(TotalPaid())))}\r\n {genfunction.ccyFormat(GetBookingPrevPaid())}\r\n {genfunction.ccyFormat(TotalPaid())}\r\n \r\n\r\n \r\n {genfunction.GetShortDateAndTime(transaction.TransactionDate)}\r\n {transaction.ReceiptNo}\r\n {(reducerBooking.booking[0] ? reducerBooking.booking[0].BookingID : 0)}\r\n {GetTourName()}\r\n {genfunction.GetShortDateAndTime(GetTourDetails())}\r\n {genfunction.ccyFormat((TotalPaid() > 0 ? Math.abs(TotalPaid()) + Math.abs(GetBookingPrevPaid()) : Math.abs(GetBookingPrevPaid()) - Math.abs(TotalPaid())))}\r\n {genfunction.ccyFormat(GetBookingPrevPaid())}\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, 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 } 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 actionResetBooking(dispatch);\r\n actionResetExtraItems(dispatch);\r\n actionShopCartSetManageMyBooking(dispatch, false, false);\r\n actionShopCartSetRefundType(dispatch, '');\r\n actionShopCartSetAdditionalBookingAmount(dispatch, 0);\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,\r\n actionShopCartResetError, actionShopCartResetMembership, actionShopCartSetRefundType\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 } = 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 [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\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 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 amounttop = returnproducts();\r\n\r\n actionShopCartSetMmbAmountToPay(dispatch, amounttop);\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\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\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\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 new booking total is {genfunction.ccyFormat(returnproducts())} and your total paid is {reducerBooking.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(returnproducts())} and your total paid is {reducerBooking.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(returnproducts())} and your total paid is {reducerBooking.booking[0] ? genfunction.ccyFormat(totalpaid()) : 0}.\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 {eligibletxtReturnClass()}\r\n \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 Refund to Gift Card\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 Refund to Gift Card\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 Refund to Gift Card\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 Tooltip from '@material-ui/core/Tooltip';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport { genfunction } from '../../../../helpers';\r\nimport ErrorHandling from '../../../../components/ErrorHandling/ErrorHandling';\r\n\r\nconst { GiftCardsHeading, OrderItemsInCartError } = 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\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.find(x => x.ProductImageURL === key && x.isSelected !== undefined) !== undefined) {\r\n if (giftcards.giftcards.find(x => x.ProductImageURL === key && x.isSelected).Price !== 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.find(x => x.ProductImageURL === key && x.isSelected !== undefined) !== undefined) {\r\n\r\n if (giftcards.giftcards.find(x => x.ProductImageURL === key && x.isSelected).ProductID !== 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.find(x => x.ProductImageURL === key && x.isSelected !== undefined) !== undefined) {\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 (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\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 && 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 { actionGetOrderLocationsByDisplayArea, actionShopcartResetOrderProducts } 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 orderLocationsLoading = useSelector(state => state.reducerOrderLocations.loading);\r\n const orderLocations = useSelector(state => state.reducerOrderLocations.orderLocations);\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 { actionGetOrderLocationsByDisplayArea, actionShopcartResetOrderProducts } 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 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 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 { actionGetOrderLocationsByDisplayArea, actionGetOrderMenuByDisplayArea, actionSetOrderLocation } 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 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 (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\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)) {\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 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} from './views';\n\nconst Routes = () => {\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 \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 \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 \n
\n \"Logo\"\n \n
\n
\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 './assets/scss/index.scss';\nimport validators from './common/validators';\nimport Routes from './Routes';\nimport { Apploader } from './components/Apploaders'\nconst browserHistory = createBrowserHistory({ basename: '/beardsleyzootickets'});\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
\n \n \n \n \n \n \n
\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(, document.getElementById('root'));\n\nserviceWorker.unregister();\n"],"sourceRoot":""}