{"version":3,"sources":["data/SiteConfig.js","data/enumConfig.js","components/loadinganimation/loading.module.sass","components/loadinganimation/loading-bars.svg","components/loadinganimation/login.module.sass","components/emenu/loadinganimation/loading.module.sass","components/Header/home-logo.png","components/emenu/header/home-logo.png","components/emenu/loadinganimation/loading-bars.svg","components/loadinganimation/login.js","components/alertmessages/index.js","modules/helpers/statichelpers.js","components/Header/index.jsx","View/login/login.jsx","View/splashscreen/screen.jsx","View/login/loginverification.jsx","components/loadinganimation/index.js","components/loadinganimation/loading-page.js","View/home/index.jsx","components/cart/index.js","components/popumenus/index.js","components/checkbox/modifiercheckbox.js","components/radionbutton/modifierradiobutton.js","components/modifier/index.js","components/request/index.js","components/popup/groupmembers.js","components/popup/image.js","View/items/index.jsx","modules/cart/cartcalculation.js","View/cart/index.jsx","components/radionbutton/radiobutton.js","View/payment/index.jsx","View/payment/paymentqr.jsx","components/checkmarkanimation/index.js","View/ordersuccess/index.jsx","View/myorders/index.jsx","View/error/qrcoderror.jsx","View/payment/paymentverification.jsx","components/checkmarkanimation/failed.js","View/orderfailed/index.jsx","View/logout/index.jsx","View/login/tableverification.jsx","View/error/deviceerror.jsx","View/error/orientation.jsx","View/process/processrequest.jsx","View/process/processverification.jsx","View/process/processsuccess.jsx","View/process/processfailed.jsx","View/mybills/index.jsx","View/error/offline.jsx","View/myorders/viewbill.jsx","View/settlepayment/settleprocessrequest.jsx","View/settlepayment/settleprocessverification.jsx","View/settlepayment/settleprocesssuccess.jsx","View/settlepayment/settleprocessfailed.jsx","View/myaccount/address.jsx","View/myaccount/addressentry.jsx","View/myorders/ordertracking.jsx","View/ordersuccess/gpaysuccess.jsx","View/helprequest/index.jsx","View/payment/prepaidcardverification.jsx","View/payment/payondeliveryverification.jsx","View/error/err404.jsx","components/emenu/header/index.jsx","components/emenu/loadinganimation/index.js","View/emenu/home/index.jsx","components/emenu/popumenus/index.js","components/emenu/checkbox/modifiercheckbox.js","components/emenu/radionbutton/modifierradiobutton.js","components/emenu/modifier/index.js","View/emenu/items/index.jsx","View/login/jointable.jsx","View/error/sessionerror.jsx","App.js","serviceWorker.js","index.js"],"names":["module","exports","siteTitle","siteTitleShort","siteTitleAlt","siteLogo","siteUrl","pathPrefix","siteImagePathUrl","IsMobileAccess","appVersion","baseGuestUrl","basePOSUrl","basePaymentUrl","baseCRMUrl","redirectUrl","redirectFailedUrl","redirectPostPaidUrl","redirectPostPaidFailedUrl","redirectBillPaidUrl","redirectBillPaidFailedUrl","tokenKey","razorpayRedirectUrl","urlAliveDurationMinutes","ordercheckoutType","Id","Name","applicationCode","cmsUserName","cmsPassword","linkUserName","linkPassword","baseAPIUrl","bannerImageType","Banner","Logo","Slider","BackGroundImage","pageIds","home","menu","login","splash","pageType","gallery","contact","normal","pageSession","Home","Item","Cart","Login","Verification","JoinTabl","PayBill","MyOrders","ChooseAddress","qrCodeLevel","Organization","Property","Outlet","ServiceType","roundOffType","Nearest","Higher","Lower","serviceType","NONE","TABLESERVICE","DINEIN","TAKEAWAY","DELIVERY","ROOMSERVICE","DRIVETHRU","BARTAB","formMode","Add","Edit","GuestAddressCount","DefaultCurrencySymbol","secretkey","minMsgTimeout","maxMsgTimeout","averageMsgTimeout","verificationTimeout","imageBaseUrl","defaultUrlPattern","appVersionNo","orderCheckOutType","placeOrder","paynPlaceOrder","both","checkOutTypewithPay","index","className","styles","loading_background","loading_img","src","loading_animation","svg","alt","MessageAlert","props","state","showHide","this","setState","msgShow","setTimeout","Config","id","role","aria-live","aria-atomic","msgType","alertMsg","Component","outletDetails","loggedDate","lastUrlVisitedDateTime","mobileNo","token","tableNo","organizationId","propertyId","outletCode","guestName","appModeType","statsId","userSessionId","StaticHelpers","initiate","notes","guestname","modetype","posturlObj","parseInt","ServiceMode","ContactNo","StatsId","numofMenuAccess","username","password","JSON","stringify","fetch","method","headers","body","then","res","json","response","catch","err","console","log","parse","sessionStorage","getItem","enableGuestAppOrders","enableDigitalMenu","cDate","Date","logCurrentDate","getFormattedDate","undefined","date","year","getFullYear","month","getMonth","toString","length","day","getDate","Type","Value","_roundOffValue","Math","ceil","floor","round","exSessionId","removeCartSessionDetails","removeItem","currentTime","lastVisitedTime","isToday","timeDifference","getTime","appSessionHours","withRouter","menuItems","menuId","menuName","iconsName","routePath","Header","active","name","activeStyle","color","sidemenulogo","loggedIn","clmenu","map","mnuItem","key","style","onClick","_handleClick","bind","to","mobileApp","type","fontSize","paddingTop","pageTitle","homeslidersettings","autoplay","dots","infinite","arrows","speed","slidesToShow","adaptiveHeight","orgnationId","exmainGuestMobileNo","olDetail","validateOTP","validatePIN","sortedSliderImages","urlPattern","handlechange","event","mNo","target","value","substr","handleClick","e","preventDefault","Details","loading","showMessage","guestNameMandatory","document","getElementById","setItem","enableGroupOrdering","tableCheckedIn","history","push","validateGuestMobileNoWithOTP","checkInWithTablePin","handleUpdateContactDetail","handleRedirectToWithoutVerification","postObj","MobileNoCountryCode","MobileNo","GuestName","PropertyId","OutletId","cookie","Cookies","errorCode","otpReferenceId","otpExpiryDuration","set","message","remove","orgId","alertMessage","sliderImages","altName","sortOrder","bannerType","height","imageName","imagePathName","primaryImageType","secondaryImageType","bannerName","primaryImageUrl","secondaryImageUrl","status","width","isMobile","handleValidateTableStatus","getCMSDetails","postObjGuest","TableNumber","Authorization","guestTableStatus","isCheckedIn","maskMobileNo","mainGuestMobileNo","mainGuestName","handleOnlyGroup","redirectToHome","exGuestLoggedIn","sHelpers","getGuestDetails","GroupCode","mobileNumber","guestDetails","selectedAddress","addressId","guestAddress","addressLine1","addressLine2","addressLine3","addressType","addressTypeId","area","city","landmark","zipCode","postobj","ApplicationCode","PageId","PageType","RequestIp","isSuccessful","banners","filter","i","slice","sort","a","b","msg","window","scrollTo","marginTop","padding","img","action","onChange","placeholder","maxLength","autoFocus","autoComplete","ref","input","nameInput","disabled","orgName","propId","propName","outCode","outName","tblNo","sType","statsid","urlRemarks","appContactNo","appCountryCode","SplashScreen","pageContent","pagePreview","pagebgColor","background","poweredByStyles","poweredByLucidStyles","showComponent","localStorage","clear","urlkey","urlString","replace","urlKey","requestIP","userId","getLaunch","themeStyle","getOutletDetails","styleContent","backgroundColor","brands","brandCode","brandValue","page","content","preview","urlParam","getAutoLogin","uParam","propertyName","outletName","guestDetailsMandatoryForDigitalMenu","guestLoginAtTheTimeOfPlaceOrder","contactNo","confirmAlert","customUI","onClose","bDigital","longUrlInput","organizationName","seriviceNo","remarks","contactCountryCode","uuid","dangerouslySetInnerHTML","__html","outletImageUrl","propertyImageUrl","groupSession","mainGuestMaskMobileNo","LoginSignin","otp","handleTablePin","tablePin","handleGroupPinChange","groupPin","location","callGuestCheckIn","callValidateGuestLoginOTP","showGroupPin","inputPlaceholder","showOTP","showTablePIN","otpVerification","pinverified","otprefId","OTP","OTPReferenceId","callClickURLDetail","minutes","toFixed","display","flexDirection","alignItems","opacity","pointerEvents","position","top","left","xmlns","viewBox","fill","d","borderBottom","handleResendOtpClick","textAlign","goBack","loadingpage","loading_background_color","loading_txt","verifiedTable","guestLoggedIn","qrLevel","outletDet","isappOrders","goToItems","getMenus","getItems","getModifiers","getTaxes","getCharges","APIResponseMsg","groupMemberList","showOutlets","showServiceTypes","outletList","ServiceTypeList","bannerImgs","classList","modalPopup","querySelector","getOutletList","getServiceTypeList","script","createElement","async","onload","loadwindow","appendChild","getGuestDashboardDetails","groupDetails","groupCode","activeMenuGroups","activeMenuItems","menuGroups","x","isActive","displayOrder","modifierGroups","taxes","charges","menuDateTime","focusGroup","classificationList","loadItems","IsUpdateLog","pageLoading","previewVal","bannerVal","cms","updateClickDetail","loadClassficiation","loadcomfn","serviceTypeList","outleCode","serviceModeList","handleClickServiceType","o","showOutletServiceType","imageUrl","cuisineTypes","isVegOutlet","outlet","s","serviceTypeName","getoutletDetails","outletListDom","serviceTypeListDom","m","guestMobileNumber","isMainGuest","imageId","CartDetail","goCart","goBill","userSessionValidation","totalItems","reload","totalAmount","PopupMenus","recommendedList","activeMenuGroup","selectedClassificationTxt","mnuid","stickyContainer","offsetTop","behavior","data-toggle","data-target","handleMenuGroupClick","data-dismiss","itmgrp","idx","menuGroupId","menuGroupName","toLowerCase","noOfItems","Checkbox","checked","access","Radio","modifiercartItemList","itemModifierRate","cartList","taxList","chargeList","itemGroupId","itemId","itemName","itemRate","itemQtyId","itemTotalAmout","itemTotalItems","Modifier","handleModifier","modifierList","modifierGroupIds","checkId","checkboxstatus","checkedItems","Map","showActionFilterList","modifierItemCQty","modifierItemCRate","modifierItemCQtyId","modifierItemCItemName","modifierItemCItemId","modifierItemCFoodType","modifierItemCGroupId","modifierItemCtaxId","modifiterItemModifierRate","radiostatus","showModal","outletDetailsStr","handleChange","handleRadioChange","handleAddItem","handleGenerateModifierDom","inputElement","click","sortedModifierGroups","mid","find","mgrplst","modifierGroupId","mgrp","minimumSelection","groupName","maximumSelection","modifiers","mlst","modifierId","get","outOfStock","modifierName","rate","foodType","taxId","chargeIds","htmlFor","marginBottom","marginLeft","mgroup","selectedgroup","select","Array","prototype","forEach","call","innerHTML","handleCheckSelectedValue","exmodifierList","itemList","uid","md","txList","modifierItemTaxCalc","txAmount","reduce","prev","next","taxAmount","chgList","modifierItemChargeCalc","chgAmount","modifierGroupName","totalTaxAmount","totalChargeAmount","ctrl","itemTaxCalc","modifierItemCTaxId","itemChargeCalc","modifierItemCChargeIds","groupId","qty","isModifier","cartItemValue","cartItemQty","modifierCartValue","itm","mdcartItemList","totlaQty","callBackModifier","cList","taxObj","taxAmt","itemValue","bInsertTax","structure","tx","applicableOn","serialTax","serialNo","taxOnSerialNo","taxType","taxValue","taxGroupName","taxName","taxCode","Number","chargeId","cId","chargelist","applyTo","applyType","taxlist","chargeAmt","chg","rnTaxAmt","cslab","chargeSlab","ValueFrom","ValueTo","chargeValueType","chargeValue","ChargeValue","chargeName","chargeType","isMerchantCharge","chargeAmount","modifierChargeList","minQty","maxQty","item","isChecked","modifierlst","prevState","modifierindex","findIndex","splice","modifierItemCId","modifierTotalItemAmount","modifierTotalItems","aria-labelledby","aria-hidden","aria-label","Request","handleRequest","guestRequestList","requestMasterList","getGuestRequestList","getRequestMasterList","param","requestNames","guestRequest","requestName","RequestType","OrderId","BillId","GuestMobileNo","RequestName","Remarks","callBackRequest","refreshSpin","req","handleSaveGuestRequest","statusUpdatedTime","reason","GroupMembers","handleGroupMemberList","ImagePopup","handlePopupImage","imgUrl","imgItemName","objectFit","imgItemFType","imgItemPrice","imgItemDesc","clfSettings","centerMode","slidesToScroll","variableWidth","nextArrow","prevArrow","mngpSettings","initialSlide","cssEase","orgnationTd","getClassification","getGlobalItems","isUpdateMenu","isorderTracking","isCheckVeg","modifierRef","React","createRef","reqeustRef","imageRef","groupMemberRef","grouppinstyle","tablePins","SmartText","text","onReadMoreClick","fontWeight","cursor","Items","handleSwitchChange","nr","switchNumber","showOnlyVeg","showOnlySelectedMenuGroupItems","obj","isRecommended","searchText","indexOf","clfList","getFilterClassification","handleClassificationClick","classificationName","classification","filterMenus","filterItems","recList","val","selectedClassification","clffilterItems","goMyOrders","goToOrderTracking","goToHelpRequest","goToGroupMemberList","gotoLogin","isRecommendedItemEnabled","recommendedItemCount","switch1","modifierItemName","modifierItemId","modifierFoodType","checkNoQty","themeId","orders","itemImgUrl","styleBackgroundImage","WebkitBackgroundSize","BackgroundSize","MozBackgroundSize","OBackgroundSize","fontFamily","border","paddingBottom","styleHeading","styleSubHeading","styleMenuGroup","lineHeight","styleMengroupAfter","css","borderLeft","styleMengroupBefore","styleSubMenuGroup","styleMenuItem","styleMenuDesc","letterSpacing","styleMenuPrice","stylePopupMenubBtn","stylePopupText","styleRefresh","stylegroupPin","ordertrack","activeClassification","selectedMenuGroupId","recommendedTxt","enmConfig","paymentVendors","enableOrderTracking","getGuestProcessOrders","getSliderImages","sliderResponse","imageList","itmAddClassName","itmEntryClassName","itmAddcls","itmEntrycls","itmqTy","add","menuList","clfFilterItems","clfitems","filterGroups","_uniquesGroups","_taxItmFound","lenc","stringified","grp","subgrplst","itemCount","subMenuGroup","sgp","description","hasSubMenuGroup","hsnsac","ssgp","getCartDetails","_uniquesCLF","_clfFound","clf","list","c","itmId","itmName","handleQtyIncDec","_qtyVal","qtyMode","exTax","txidx","exCharge","chgidx","_this","current","searchInp","focus","sout","getAttribute","bestSellerItem","handleSetPopupImage","mrp","data-so","float","right","scrollPosition","effect","placeholderSrc","delayTime","threshold","itmDesc","itmPrice","imgFType","clfName","clfid","Isfocus","grecList","mgList","getFilterMenGroupList","handleMenugroupsClick","mgid","isRecom","mgFilterItems","filterMGList","mg","getFilterItemList","itemslist","filterItemList","items","getFilterItems","aList","oList","itemlist","itemType","spiciness","subItems","showCart","whiteSpace","enableHelp","marginRight","enableVegOnly","enableSearch","enableRefresh","handleClearText","readOnly","getUpdateMenus","enableViewBill","enableMyOrder","mng","handleGenerateRowRecommendedListDom","sgrp","data-parent","href","ssgrp","callBackGroupMembers","trim","CartCalculation","billValue","onBillTaxValue","itemTotal","totalChargeTaxAmount","orderLeveChargeList","totalItemAmount","totalNetAmount","modifierCartList","orderChargeList","totalChargesAmount","totaltaxAmount","orderCheckoutType","guestDetailsStr","guestCurrentAddress","vailduniquesGroups","handleInstrucChange","orderInstruction","handleSpecialInstruction","specInsc","rows","cols","handleUpdateSpecialInstruction","goPayments","handleValidateOrder","cartItemList","orderId","modifierItemList","roundOff","handleCartRecalculate","typeId","orderLevelCharge","orderLevelChargeTaxAmount","CartCalCulation","OnBillTaxCalculation","OrderLevelCharge","parseFloat","roundOffAmt","roundOffValue","rndOffAmt","checkoutTypeId","itemTaxCartCalculation","itemChargeCartCalculation","modifierItemTaxCartCalculation","modifierItemChargeCartCalculation","mdidx","GuestMobileCountryCode","GuestMobileNumber","currentTableNumber","errorMessage","tableCheck","IsAddressChange","addressObj","AddressId","AddressLine1","AddressLine2","AddressLine3","Area","City","State","Landmark","ZipCode","AddressType","guestTableCheck","postItemList","postTaxes","postModifiers","postCharges","TaxCode","TaxValueType","TaxValue","TaxAmount","cmodifer","mdg","modifr","mdlist","modifiertax","modifierCharge","chargetax","ChargeId","ChargeName","ChargeType","IsMerchantCharge","ChargeValueType","ChargeAmount","Taxes","ModfierId","ModifierName","Rate","Quantity","Amount","Charges","ModifierGroupId","GroupName","Modifiers","ccharge","ItemId","ItemName","Instruction","ModifierGroups","orderdate","mseconds","deliveryTime","minimumDeliveryTime","specialInstu","orderInstructionIncludeQRCodeLocation","orderCharges","ochg","GuestDetails","OrderedGuestMobileNo","OrderedGuestName","Address","OrderDetails","VendorOrderId","OrderDateTime","DeliveryDateTime","OrderStatus","TotalTaxes","TotalCharges","TotalAmount","IsPaid","PaymentDetails","orderNo","redirectCart","postTableObj","specInscVal","Object","assign","gotoAddressChoose","handleChooseAddrss","mitm","enableSpecialInstruction","Payment","loadPaymentDataHandler","paymentData","paymentToken","paymentMethodData","tokenizationData","submitClick","gotoThirdParty","handlePrepaidCardBalance","gotoPrepaidCardVerification","cartValue","paymentList","vendorId","vendorName","onlineWalletVendorsList","vendorKey","vendorTransactionId","vendorOrderId","paymentVendorLogo","prepaidCardBalance","selected","handlePayOnRadioChange","onlineWalletVendors","sessionValidation","PaymentVendorId","EmailId","RedirectUrl","paymentInitiatedId","vendorRedirectUrl","rowId","VendorId","activeCardList","walletDetails","acc","availableBalance","accountId","close","payOnDeliveryModes","paddingLeft","gotoProceedPayOnDelivery","gotoClosePayOnDelivery","setAttribute","pay","enablePayOnDelivery","handlePayOnDelivery","onSubmit","handleSubmit","totalItemTaxAmount","totalItemChargesAmount","PaymentQR","paymentDetails","PayMode","PaymentAmount","TransactionRefId","PaymentVendorName","TotalItemValue","TotalItemTaxes","TotalItemCharges","margin","cx","cy","r","OrderSuccess","gotoShopping","gotoMyOrders","mainMobileNo","goViewBill","GetUpdateOrders","handleProcessRequest","handleToDayOrder","handleTodayBill","handleHistoryBill","todayOrderList","todayBillList","historyBillsList","ordersList","billsList","orderMsg","orderErrorMsg","billMsg","billErrorMsg","billhidden","orderhidden","unBillAmount","historyBillMsg","todayBillMsg","todayOrderMsg","totalOrders","totalBills","totalHistory","loadJS","myodersInitiate","billUrl","bAmount","isPay","billId","refBillId","eBillUrl","billAmount","posBillId","totalOrderAmount","MainGuestMobileCountryCode","MainGuestMobileNumber","NoOfRowsPerPage","CurrentPageNumber","unBilledAmount","bills","ord","tableNumber","orderStatus","orderStatusUpdatedDateTime","orderDateTime","kotNo","orderDetails","oitm","quantity","gmd","instruction","colSpan","bill","billNo","billDateTime","paymentModes","billStatus","crmBillId","billShortUrl","billDetails","handleTodayOrderDom","handleBillDom","handleHistoryDom","QRCodeError","replaceState","PaymentVerification","statusMsg","vendorPaymentStatus","QueryString","search","payment_status","handleCheckPaymentStatus","handlePlaceOrder","failed","stroke","stroke-width","stroke-linecap","points","OrderFailed","gotocart","Logout","TableVerification","pin","PIN","DeviceError","Orientation","ProcessRequest","ProcessVerification","handleBillandSettle","OrderAmount","billSuccess","ProcessSuccess","ProcessFailed","gotomyorders","totalOrderDetail","totalOrderSubTotal","netAmount","totalOrderHeader","orderAmount","orderSubTotal","orderHeader","textTransform","Offline","gotoOnline","ViewBill","iFrameHeight","inputParamValidation","url","onLoad","resizeIframe","SettleProcessRequest","SettleProcessVerification","BillAmount","guestAddressId","MyAddressList","guestAddressList","getGuestList","mode","areaName","address","cityName","addressList","gotoAddAddress","handleSelectAddress","handleEditAddress","MyAddressEntry","addressTypeList","fields","alert","getAddressTypeList","addressTypes","handleValidation","OutletCode","AddressTypeId","AreaCode","AreaName","CityCode","CityName","field","formIsValid","class","t","handleChangeAddressType","handleSaveAddress","OrderTracking","handleOrderPrev","handleOrderNext","guestOrderList","selectedOrder","orderStatusUpdatedTime","selectedIndex","orderItemDetails","collapse","orderIndex","getGuestOrderList","entry","getGuestOrderItem","GPaySuccess","HelpRequest","handleRemarks","remarksVal","prepaidCardAccountId","PrepaidCardVerification","WalletDetails","AccountId","payonDeliveryMode","proceedPOD","PayOnDelivery","PayOnDeliveryMode","Error404","imglogo","emHeader","headerLogo","digitalMenu","emHome","getDetails","bannerImageUrl","jk","Normal","grpId","emItems","styleBGPattern","bgColor","fontColor","mgwidth","afterbg","beforebg","cmsSetting","toUpperCase","mainMaskMobileNo","JoinTable","_yesno","handleJoinTable","SessionError","version","dtNumber","inputParam","baseUrl","split","_splitUrl","ukey","pushState","includes","App","component","Spalash","exact","path","LoginVerification","MyBills","SettleProcessSuccess","SettleProcessFailed","MyAddress","PayOnDeliveryVerification","Boolean","hostname","match","ReactDOM","render","navigator","serviceWorker","ready","registration","unregister","error"],"mappings":"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","file":"static/js/main.cc4b57fc.chunk.js","sourcesContent":["const Config = {\r\n siteTitle: \"Lucid Order App\", // Site title.\r\n siteTitleShort: \"Lucid Contactless Order\", // Short site title for homescreen (PWA). Preferably should be under 12 characters to prevent truncation.\r\n siteTitleAlt: \"Lucid Contactless Order\", // Alternative site title for SEO.\r\n siteLogo: \"/logos/logo-1024.png\", // Logo used for SEO and manifest.\r\n siteUrl: \"http://localhost:2016\", // Domain of your website without pathPrefix.\r\n pathPrefix: \"/lco\",\r\n siteImagePathUrl: \"../../assets/theme/img/store/logo/lucid-store-1.png\",\r\n IsMobileAccess: false,\r\n appVersion: \"v=1.2.0.38\",\r\n\r\n // baseGuestUrl: \"https://dev.lucidits.com/LUCIDPOSIntegrationAPI/V1/\",\r\n // basePOSUrl: \"https://dev.lucidits.com/LUCIDPOSIntegrationAPI/V1/\",\r\n // basePaymentUrl: \"https://dev.lucidits.com/LUCIDAPI/V1/\",\r\n // baseCRMUrl: \"https://dev.lucidits.com/LUCIDCRMAPI/V1/\",\r\n\r\n // // // // // // Place and Order\r\n // redirectUrl: \"https://link.lucidits.com/b/dev.r/Redirect/CallBackUrl\",\r\n // redirectFailedUrl: \"https://link.lucidits.com/b/dev.r/Redirect/PaymentFailed\",\r\n\r\n // // // Bill and Settle\r\n // redirectPostPaidUrl: \"https://link.lucidits.com/b/dev.r/Redirect/PostPaidCallBackUrl\",\r\n // redirectPostPaidFailedUrl: \"https://link.lucidits.com/b/dev.r/Redirect/PostPaidPaymentFailed\",\r\n\r\n // //BillSettle\r\n // redirectBillPaidUrl: \"https://link.lucidits.com/b/dev.r/Redirect/BillPaidCallBackUrl\",\r\n // redirectBillPaidFailedUrl: \"https://link.lucidits.com/b/dev.r/Redirect/BillPaidPaymentFailed\",\r\n\r\n\r\n // local\r\n // redirectUrl: \"http://localhost:3019/Redirect/CallBackUrl\",\r\n // redirectFailedUrl: \"http://localhost:3019/Redirect/PaymentFailed\",\r\n\r\n // redirectPostPaidUrl: \"http://localhost:3019/Redirect/PostPaidCallBackUrl\",\r\n // redirectPostPaidFailedUrl: \"http://localhost:3019/Redirect/PostPaidPaymentFailed\",\r\n\r\n // redirectBillPaidUrl: \"http://localhost:3019/Redirect/BillPaidCallBackUrl\",\r\n // redirectBillPaidFailedUrl: \"http://localhost:3019/Redirect/BillPaidPaymentFailed\",\r\n\r\n // live\r\n\r\n baseGuestUrl: \"https://apps.lucidpos.com/LUCIDPOSIntegrationAPI/V1/\",\r\n basePOSUrl: \"https://apps.lucidpos.com/LUCIDPOSIntegrationAPI/V1/\",\r\n basePaymentUrl: \"https://apps.lucidpos.com/LUCIDAPI/V1/\",\r\n baseCRMUrl: \"https://apps.lucidpos.com/LUCIDCRMAPI/V1/\",\r\n\r\n // // // Place and Order\r\n redirectUrl: \"https://apps.lucidpos.com/LUCIDRedirect/Redirect/CallBackUrl\",\r\n redirectFailedUrl: \"https://apps.lucidpos.com/LUCIDRedirect/Redirect/PaymentFailed\",\r\n\r\n // Bill and Settle\r\n redirectPostPaidUrl: \"https://apps.lucidpos.com/LUCIDRedirect/Redirect/PostPaidCallBackUrl\",\r\n redirectPostPaidFailedUrl: \"https://apps.lucidpos.com/LUCIDRedirect/Redirect/PostPaidPaymentFailed\",\r\n\r\n //BillSettle\r\n redirectBillPaidUrl: \"https://apps.lucidpos.com/LUCIDRedirect/BillPaidCallBackUrl\",\r\n redirectBillPaidFailedUrl: \"https://apps.lucidpos.com/LUCIDRedirect/Redirect/BillPaidPaymentFailed\",\r\n\r\n\r\n tokenKey: \"A519618A-7218-4375-AC2B-34811ED6AD37\",\r\n razorpayRedirectUrl: \"https://api.razorpay.com/v1/checkout/embedded\",\r\n urlAliveDurationMinutes: 15, // 15 Minitues\r\n ordercheckoutType: [\r\n { Id: 1, Name: \"Place Order\" },\r\n { Id: 2, Name: \"Pay & Place Order\" },\r\n { Id: 3, Name: \"Place Order | Pay & Place Order\" }\r\n ],\r\n applicationCode: \"CL-APP\",\r\n cmsUserName: \"lucid@cms\",\r\n cmsPassword: \"admin@cms[lucid]\",\r\n linkUserName: \"lucid@WebsiteShorturl\",\r\n linkPassword: \"web@Redirect[lucid]\",\r\n // baseAPIUrl: \"http://localhost:20064/V1/\",\r\n // baseAPIUrl: \"https://link.lucidits.com/api-lucid/beta/V1/\",\r\n baseAPIUrl: \"https://ap-lucid.com/api-lucid/V1/\",\r\n bannerImageType: {\r\n Banner: 1,\r\n Logo: 2,\r\n Slider: 3,\r\n BackGroundImage: 4\r\n },\r\n pageIds: {\r\n home: 1,\r\n menu: 2,\r\n login: 3,\r\n splash: 4\r\n },\r\n pageType: {\r\n home: 1,\r\n menu: 2,\r\n gallery: 3,\r\n contact: 4,\r\n normal: 5,\r\n login: 6,\r\n },\r\n pageSession: {\r\n Home: 1,\r\n Item: 2,\r\n Cart: 3,\r\n Login: 4,\r\n Verification: 5,\r\n JoinTabl: 6,\r\n PayBill: 7,\r\n MyOrders: 8,\r\n ChooseAddress: 9\r\n },\r\n qrCodeLevel: {\r\n Organization: 1,\r\n Property: 2,\r\n Outlet: 3,\r\n ServiceType: 4\r\n },\r\n roundOffType: {\r\n Nearest: 1,\r\n Higher: 2,\r\n Lower: 3,\r\n },\r\n serviceType: {\r\n NONE: \"NONE\",\r\n TABLESERVICE: \"FINE-DINE\",\r\n DINEIN: \"DINE-IN\",\r\n TAKEAWAY: \"TAKE-AWAY\",\r\n DELIVERY: \"DELIVERY\",\r\n ROOMSERVICE: \"ROOM-SERVICE\",\r\n DRIVETHRU: \"DRIVE-THRU\",\r\n BARTAB: \"BAR-TAB\"\r\n },\r\n formMode: {\r\n Add: 1,\r\n Edit: 2\r\n },\r\n GuestAddressCount: 5, //Max can add address\r\n DefaultCurrencySymbol: \"₹\",\r\n secretkey: \"$LuC!DCLB@)!^$\",\r\n minMsgTimeout: 300,\r\n maxMsgTimeout: 1000,\r\n averageMsgTimeout: 800,\r\n verificationTimeout: 1200,\r\n imageBaseUrl: \"/\", // public\r\n defaultUrlPattern: \"/v1/0/0\", // default pattern\r\n appVersionNo: \"v1\",\r\n};\r\n\r\nmodule.exports = Config;","const Config={\r\n orderCheckOutType: {\r\n placeOrder: 1,\r\n paynPlaceOrder: 2,\r\n both: 3\r\n },\r\n\r\n checkOutTypewithPay: false\r\n}\r\nmodule.exports = Config;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loading_background\":\"loading_loading_background__1mNZp\",\"loading_img\":\"loading_loading_img__1YXtO\",\"svg\":\"loading_svg__2nQTt\",\"loading_background_color\":\"loading_loading_background_color__kdWYN\",\"loading_txt\":\"loading_loading_txt__1ekD0\"};","module.exports = __webpack_public_path__ + \"static/media/loading-bars.5307e21e.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loading_background\":\"login_loading_background__1hFpd\",\"loading_img\":\"login_loading_img__3n1EJ\",\"svg\":\"login_svg__IZgfz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loading_background\":\"loading_loading_background__2HIyO\",\"svg\":\"loading_svg__317Ha\"};","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJQAAABACAYAAAD8k17tAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAADHZJREFUeNrsXWtsXEcVPnMf612vH2s7bmhaNxsHkpDQxKkRRYjQLdgU9UcIj6RCQsT9kyBAitMGOUhFMQjRRC10+wNErdIawQ+IqbINFVDFKJuWCkTjxm6ipG0Us07bxM3Du3Yce5/3MrM5F08md192vFln55NGd/fOvTNzZ77znTNzx2timiZISNwsKLILJCShJCShJCShJCQkoSQkoSQkoSQkJKEkigBtvgp2Pv12Fz3sxa9kDkVZK6+7adpXxDKaadpMUxtNrTTV4fkBmobx2ENTOEc52fqBz8uGYUz9mAYyXRjdtVYqVImBEec5ms7gYLdxZAIk12bMG8Nj3Ty3qRnbweo6StMh/F4+CrVAwQZpP0cQpgp9qAhhjlAWqSyVYZ+3ZFOOPNCeJa+VU8w6bGcbqu1uSajSxDZUJkDy7MvgHvs5JduL9zWjanwaSTgb9OeRtxvr68L6u7DuLTIoLy20crFMGNUiV6zFrtuOiXeV8wmL6O0ccTcXoV5JqALBu7n2Al1XD0e+tiLFNgPYzjCnrm2SUKXj6po5lzKbOIhXs81Favew4Oqek4QqDXRx7qRnDq6IYNpexLb3c/FVM7puSahbHDs1c64rvACfoecWqKMkVJZlgnxmWaWMPsFAJKFuIZqFQHehYkASqvQIFV7AzxHmli4koSRuH5Q7ocK3yXPUlcrzlDuhBjIE6AtxtloScWC5E2q4lGZIs8TmUppYlDuh+uD61xdzAXt9Y2IqZnC8LcMSgiRUBvTbWOLNtOA+bsY3W7dXx93bV8RYhn93OCwVqjC31CpM8wvp9GyE4t/DPTdLdeE32fUUqV+aURUtbC+FwVoIhOoT3Eqh7mAbN9DhDITdzQ3SoQJJ1cXV0QfFWXFvFdrZAyWy0r9QXF6/0JHNeQ40v8cp2/6mfZyyWHW05qEQh7g6BoqgEtamOr4P+kpFnRiKtWOz0NhkQFCTLdwgs7LOwMzW3AFhkK2tss0cmdoh907K7ZyqsXqOYtl9Qh3iFmCrve1zjJ3acigSvwWYN4Sy3AJ8qMDr2wUJt0jRBTPbTTbnEaj3I1Hy3Za7He/ZCzPbQbIpVbatwvPZR/1YZ8m90F5Ie8rDaI09SKRWm0Cd/3OjPpjd/u4+THwdYmBvpWIF4Hn/GdWtBpE/OCZRbkG5hCSUhCSUhIQklIQklMRtjeuWDQiZ+XGQoXVPtdDDJvwaXDf0w2CpPwxts5cePLStg/NRvpwRF0goHBQPPQRoeoB9xdN76PkRRrD5GqybhA6afJjmBZcPHneFD5z48eRrwzuJpsY8G1c/7lq35LdGNAHRUxdWXP3P2ecTo1c+py9yB2vaV3wfFPIuu6+p+yvp+51Pv80Xxxst6/PZ9G3aiGZ575wh/nyQYkOmID7oekqeFpbo52U0RVgeXjNXJfHT1HETyulgZRWzA9Vq53T9t+/zO7x1b5iJZG34lZO7UuGpFURTIPrOhccToxMbSIU6rda7nqaK9q6ZMoAlAVY/H0NCbcLPg0iQQo3IXyoWLcZQnTStYxbOKxH9HMKHruUsai5omUXHZbLOlmJ2mGkYoC2qvFC1wfsL4tDCZjy1auJv7/z0av/px6ZOjH7LTJlQ9Zmlz1e2Nr2q1VeC1uBOJxsypY0Wj9ZnwDxPkR6nG+ubN5fH2P6ynVtDUhEhxurmHp7FWd2Y58PB9nLup5OVi8qUPk8/d7N7bMoK4fURVEQ/R8Ag3mOV7WXl2HUMPb8JjcSCn94b4NrYydUZoHn+XHnJy1OQGo+Cc/mifueaxb3Rtz7cWQnmIzoxvxGtdmhxIEPUBf7acU+daUwlYObH824w2vWCmxrE/j9WRNXpRVc7b4RaipXkE/wGsTF+7PheNvi04ztxoPfQ9DvM781heX6M2X6CxNmKpOrGOjw4EN0Yz0GudiKZDtC0EweLkfYAPf8gfj9M07NYPquTueHBHHnB1GSMReegOPVEzReaf+lsqHzoDw/ft/pDzaFtWx8y77ww8SvNW3caqJtTXCqQNJ/MG4w2Q8zDzh1BL+DHa0NcXNiL11jGF8ngAjuEvg1wihTAvvTi5wiW6eMUv4Ujv9VO3jhD3Lj03oxlA1ZwiJKng83+0OrZQ+xAsjGMY771ALWodL3YoP8rGpLtQfzOOmAEFcyLROvEenw40B5UzCC2o9tmFsrqfJYpC97rx0kG77JDmNcrKFnGPOeqRnCt+RhoS2rAOBuujtW4HL0TBH7/fgxCjTWk2q17jFgSUldioEam4QINn15tWiwabbYAOojPbJEjgIPtx/uCSAJLlb8qkOlFvMcizwGOIHuE+70c+Xx4r4cz8AAXohzAe7vx/gMCcW0VaiRbbIOuIIQVBASXGEDl8HLWBhyjc8ovN8MMcTES8GRBBcwHrEMeoGXuEM5H0JUyYj5Dj8+gKljkgUx5JuwC4lBBqdAhdTXmuDrwwY/iyxo+rtK4SqXBgEKFKPKXk99LRFP/cC6teyueNGBscQVMaepcvEiECxs6hGNQiEc70eD8XL6lWJ2cm+vkSCSOv1U2U/ZnuPqGkExWub58gnJ24SZOZUQ3dxgLiojEs7snz5lai2U5dNCY8nSIFszPLNlnJHYusM7ZScsjQvJZxGXfmTJaboCe78yWxwo1xmOQHJuCyX+d/Vr0+Pmvg66kXSDzbaZCIHFh0ht+5dR3o8dHq8bPT8Kby++EGCVgvkaLCnpEiHP4SYiobryxsthsB8z89Y2J5/iJS7aYKSS4X34SFbDhSl6zvHSlPEFw0FmBI2jFASReizBjGClgAdQjHEMceTo4ZRoXA2vOUgCDck8G19EhkLEXA/i0cbBnxDoGubZky4NUeBomDp1eNf73954guubWVOU8EDJODBM8bh2a1twB9Q7yzVq3+vCH93vBEU+Bcv2yQRBJY0cqHxKgN49+swPrq0dh5reqrDTXdbmITXu9OQnFXAFWzhr9XxaIYjB6jLMe4EjF1qWCeM2mApYUIhhvWQHhEAbbg0iskCDje7h6tnKEGrRiEiSKOCX2YB6711r6COAs9oiVh8oLufKuvU6A+unBc0/Ez4Y/pdZXRpJLah8jQI7G6YzuJa0Sntrqg8Gfbax7vX217+K6u3WdaoR6/Qp7J1eeVyBTAPsiE6ECguJ4hDgmIMxO+XNzgWUEvAjYkvS6DXbCqxcf596CdksJqFBWJYNIyHzcnMfqFKYC/HcMhkM27tRrl8+14Yb7uOcAuzYWmsf6KtR1cElyOPx5kwbcd3prL/1xY+u/f/6RcTB0KfYlVVPAoDFWTYUGZiwxudrjeG1ZlXaysUp70//lpv3cSrml+EuRQB78/DISJMINZFBQ5F4c3EEbdfNyrog3Siv2NdGNBzmjs8a5W3jL4ENjItzameVyrfZ5orvW+jISSiKPwOwHfyaJcNQcp3FR7R1u+NOG1fDi+eThM5emfTqLzOmYGea1YUjFTeb+4qsbnYHXO1Y+YvPq5TqjLeD1iS9bHCOox81YuOQN3vIqAXz1sinbLE8iB6ppBP7GZ5fD0Bc/qR45Gfa6YuBSUqlKQoMHhVzziQoKvUl7V9EVQ1VJKosrmc2AB+eYP5s3G4c5BfXhcsWjuZYNJHLAf8/dcHR5E9S+F14xGok9Px5LLh6Lm416phU9OvkjRDEW+GMHcTmCzSCtPxV71i7Wk4QqED2LFoFrZAIURakfvZJYORVPNui6SlXJ/v8j0bjUUGloZX2/1f/cZw7ozCe4l4QqEOvZe163DhUq+SgaS56bTikNCskkTulQylSVjC7vtoMkVIFY1+hMH50qGZ5KwP7zI1fvZUG4LanYkgGBWKVOxsqlf+QW4EKnOy4d6p0aFSnVeGhZ1QvNHsdQImU/U2YTaIdGwo2V6gmpUBK2eOAOApOqGxTTAJemnDs1Fn/yzOXob+hUzsOr1DV3Z6ZWLqr46yfqKvrLpX+kQhWIhtgYuBOTkKJ0SRkGVOnK/g33uJ9wEJI0uDW9ZNKENY3Of7YtrX6Sqtn7UqEkbMH2Dejxq3A26gQXMcBbq5t3VdccOnHpYjSagCpLpRi5mmr04SVV+mjSKJ/+kQpVIJgyeUgCFqeuwMWoyRQKNELc0wmjIkVVKYYJ2DFhuJMmW4gqn7cRUqEKRDo2oiRZVgWw2OmiszsTppPGmXZv9QtnJ+KrNCXt+hSggfr9d7lfWttYAeX0cksSahaqbhDFcMQnwdRdEHe4ocoBE9+5t2738cvRBp2QFGWUkjJMUFX4QC0zH/A/AQYA8PTk38AXazgAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/loading-bars.41cddf22.svg\";","import React from 'react';\nimport loading_animation from './loading-bars.svg';\nimport styles from './login.module.sass';\nexport default function index() {\n return (\n
\n
\"\"
\n
\n )\n}\n","import React, { Component } from 'react';\r\nimport './message.scss';\r\nimport Config from '../../data/SiteConfig';\r\n\r\n\r\nexport default class MessageAlert extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n showHide: false\r\n }\r\n }\r\n componentDidMount() {\r\n this.setState({ showHide: this.props.msgShow });\r\n setTimeout(() => {\r\n this.setState({ showHide: false });\r\n }, Config.averageMsgTimeout);\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n {/*
\r\n This is a danger alert—check it out!\r\n
*/}\r\n {this.state.showHide && (\r\n
\r\n {/*
\r\n Error\r\n 11 mins ago\r\n \r\n
*/}\r\n
\r\n {this.props.msgType === \"success\" && {this.props.alertMsg}}\r\n {this.props.msgType === \"danger\" && {this.props.alertMsg}}\r\n {this.props.msgType === \"info\" && {this.props.alertMsg}}\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n","import { Component } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport Config from \"../../data/SiteConfig\";\r\n//import SecureStorage from \"secure-web-storage\";\r\nlet outletDetails = {};\r\nlet loggedDate = \"\";\r\nlet lastUrlVisitedDateTime = \"\";\r\nlet mobileNo = \"\";\r\nlet token = \"\";\r\nlet tableNo = \"\";\r\nlet serviceType = \"\";\r\nlet organizationId = \"\";\r\nlet propertyId = \"\";\r\nlet outletCode = \"\";\r\nlet guestName = \"\";\r\nlet appModeType = 0;\r\nlet statsId = 0;\r\nlet userSessionId = \"\";\r\n\r\n//var CryptoJS = require(\"crypto-js\");\r\n//var SECRET_KEY = Config.secretkey;\r\n\r\nclass StaticHelpers extends Component {\r\n\tstatic enableGuestAppOrders = false;\r\n\tstatic enableDigitalMenu = false;\r\n\r\n\t// constructor() {\r\n\t// super();\r\n\t// }\r\n\r\n\tstatic initiate() {\r\n\t\toutletDetails = JSON.parse(sessionStorage.getItem(\"user-outletDetails\"));\r\n\t\tloggedDate = sessionStorage.getItem(\"user-loggedin-date\");\r\n\t\tlastUrlVisitedDateTime = sessionStorage.getItem(\"u-l-v-url-dt\"); //user-last-visited-url-dt\r\n\t\tmobileNo = sessionStorage.getItem(\"user-mobileno\");\r\n\t\ttoken = sessionStorage.getItem(\"user-token\");\r\n\t\ttableNo = sessionStorage.getItem(\"user-tableno\");\r\n\t\tserviceType = sessionStorage.getItem(\"user-servicetype\");\r\n\t\torganizationId = sessionStorage.getItem(\"user-orgnationid\");\r\n\t\tpropertyId = sessionStorage.getItem(\"user-propertyid\");\r\n\t\toutletCode = sessionStorage.getItem(\"user-outletcode\");\r\n\t\tguestName =\r\n\t\t\tsessionStorage.getItem(\"guest-name\") === null\r\n\t\t\t\t? \"\"\r\n\t\t\t\t: sessionStorage.getItem(\"guest-name\");\r\n\t\tappModeType =\r\n\t\t\toutletDetails != null\r\n\t\t\t\t? outletDetails.enableGuestAppOrders === true\r\n\t\t\t\t\t? 1\r\n\t\t\t\t\t: 0\r\n\t\t\t\t: 0;\r\n\t\tstatsId = sessionStorage.getItem(\"user-statsid\");\r\n\t\tuserSessionId = sessionStorage.getItem(\"user-session-id\");\r\n\t}\r\n\r\n\tstatic StaticSwitchCtrl() {\r\n\t\tthis.initiate();\r\n\t\tthis.enableGuestAppOrders = outletDetails.enableGuestAppOrders;\r\n\t\tthis.enableDigitalMenu = outletDetails.enableDigitalMenu;\r\n\t}\r\n\r\n\tstatic sessionValidation() {\r\n\t\tthis.initiate();\r\n\t\tlet cDate = new Date();\r\n\t\tlet logCurrentDate = this.getFormattedDate(cDate);\r\n\r\n\t\tif (Date.parse(loggedDate) < Date.parse(logCurrentDate)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\tstatic inputParamValidation() {\r\n\t\tthis.initiate();\r\n\r\n\t\tif (token === undefined || token === \"\" || token === null) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (mobileNo === undefined || mobileNo === \"\" || mobileNo === null) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (tableNo === undefined || tableNo === \"\" || tableNo === null) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (\r\n\t\t\tserviceType === undefined ||\r\n\t\t\tserviceType === \"\" ||\r\n\t\t\tserviceType === null\r\n\t\t) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (\r\n\t\t\torganizationId === undefined ||\r\n\t\t\torganizationId === \"\" ||\r\n\t\t\torganizationId === null\r\n\t\t) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (propertyId === undefined || propertyId === \"\" || propertyId === null) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (outletCode === undefined || outletCode === \"\" || outletCode === null) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\tstatic getFormattedDate(date) {\r\n\t\tvar year = date.getFullYear();\r\n\t\tvar month = (1 + date.getMonth()).toString();\r\n\t\tmonth = month.length > 1 ? month : \"0\" + month;\r\n\t\tvar day = date.getDate().toString();\r\n\t\tday = day.length > 1 ? day : \"0\" + day;\r\n\t\treturn year + \"-\" + month + \"-\" + day;\r\n\t}\r\n\tstatic roundOff(Type, Value, Nearest) {\r\n\t\tvar _roundOffValue = Value;\r\n\t\tif (Type === Config.roundOffType.Higher) {\r\n\t\t\t// if (Nearest === 1)\r\n\t\t\t// _roundOffValue = Math.ceil(Value / 1) * 1;\r\n\t\t\t// else if (Nearest === 5)\r\n\t\t\t// _roundOffValue = Math.ceil(Value / 5) * 5;\r\n\t\t\t// else if (Nearest === 10)\r\n\t\t\t// _roundOffValue = Math.ceil(Value / 10) * 10;\r\n\t\t\t// else if (Nearest === 50)\r\n\t\t\t// _roundOffValue = Math.ceil(Value / 50) * 50;\r\n\t\t\t// else if (Nearest === 100)\r\n\t\t\t// _roundOffValue = Math.ceil(Value / 100) * 100;\r\n\t\t\t_roundOffValue = Math.ceil(Value / Nearest) * Nearest;\r\n\t\t}\r\n\t\t// Insert the Code on 02-01-2021 - Jira Id -\r\n\t\telse if (Type === Config.roundOffType.Lower) {\r\n\t\t\t// if (Nearest === 1)\r\n\t\t\t// _roundOffValue = Math.floor(Value);\r\n\r\n\t\t\t// else if (Nearest === 5)\r\n\t\t\t// _roundOffValue = Math.floor(Value / 5) * 5;\r\n\t\t\t// else if (Nearest === 10)\r\n\t\t\t// _roundOffValue = Math.floor(Value / 10) * 10;\r\n\t\t\t// else if (Nearest === 50)\r\n\t\t\t// _roundOffValue = Math.floor(Value / 50) * 50;\r\n\t\t\t// else if (Nearest === 100)\r\n\t\t\t// _roundOffValue = Math.floor(Value / 100) * 100;\r\n\t\t\t_roundOffValue = Math.floor(Value / Nearest) * Nearest;\r\n\t\t} else if (Type === Config.roundOffType.Nearest) {\r\n\t\t\t// if (Nearest === 1)\r\n\t\t\t// _roundOffValue = Math.round(Value);\r\n\t\t\t// else if (Nearest === 5) {\r\n\t\t\t// if (Value % 5 === 0)\r\n\t\t\t// _roundOffValue = Value;\r\n\t\t\t// else\r\n\t\t\t// (Value % 5 < 2.50 ? _roundOffValue = Math.floor(Value / 5) * 5 : _roundOffValue = Math.ceil(Value / 5) * 5);\r\n\t\t\t// }\r\n\t\t\t// else if (Nearest === 10) {\r\n\t\t\t// if (Value % 10 === 0)\r\n\t\t\t// _roundOffValue = Value;\r\n\t\t\t// else\r\n\t\t\t// (Value % 10 < 5 ? _roundOffValue = Math.floor(Value / 10) * 10 : _roundOffValue = Math.ceil(Value / 10) * 10);\r\n\t\t\t// }\r\n\t\t\t// else if (Nearest === 50) {\r\n\t\t\t// if (Value % 50 === 0)\r\n\t\t\t// _roundOffValue = Value;\r\n\t\t\t// else\r\n\t\t\t// (Value % 50 < 25 ? _roundOffValue = Math.floor(Value / 50) * 50 : _roundOffValue = Math.ceil(Value / 50) * 50);\r\n\t\t\t// }\r\n\t\t\t// else if (Nearest === 100) {\r\n\t\t\t// if (Value % 100 === 0)\r\n\t\t\t// _roundOffValue = Value;\r\n\t\t\t// else\r\n\t\t\t// (Value % 100 < 50 ? _roundOffValue = Math.floor(Value / 100) * 100 : _roundOffValue = Math.ceil(Value / 100) * 100);\r\n\t\t\t// }\r\n\t\t\tif (Nearest === 1) _roundOffValue = Math.round(Value);\r\n\t\t\telse {\r\n\t\t\t\tif (Value % Nearest === 0) {\r\n\t\t\t\t\t_roundOffValue = Value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tValue % Nearest < Nearest / 2\r\n\t\t\t\t\t\t? (_roundOffValue = Math.floor(Value / Nearest) * Nearest)\r\n\t\t\t\t\t\t: (_roundOffValue = Math.ceil(Value / Nearest) * Nearest);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn _roundOffValue;\r\n\t} // End RoundOff\r\n\r\n\tupdateClickDetail() {\r\n\t\tthis.initiate();\r\n\r\n\t\tlet notes = {\r\n\t\t\tguestname: guestName,\r\n\t\t\tmodetype: appModeType,\r\n\t\t};\r\n\t\tlet posturlObj = {\r\n\t\t\torganizationId: parseInt(organizationId),\r\n\t\t\tpropertyId: propertyId,\r\n\t\t\toutletCode: outletCode,\r\n\t\t\tServiceMode: serviceType,\r\n\t\t\tContactNo: mobileNo,\r\n\t\t\tStatsId: parseInt(statsId),\r\n\t\t\tnumofMenuAccess: 1,\r\n\t\t\tusername: Config.linkUserName,\r\n\t\t\tpassword: Config.linkPassword,\r\n\t\t\tnotes: JSON.stringify(notes),\r\n\t\t};\r\n\t\t// Update Contact Detail\r\n\t\tfetch(Config.baseAPIUrl + \"ClickURLDetail\", {\r\n\t\t\tmethod: \"POST\",\r\n\t\t\theaders: {\r\n\t\t\t\t\"content-type\": \"application/json\",\r\n\t\t\t},\r\n\t\t\tbody: JSON.stringify(posturlObj),\r\n\t\t})\r\n\t\t\t.then((res) => res.json())\r\n\t\t\t.then((response) => { })\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconsole.log(err);\r\n\t\t\t});\r\n\t}\r\n\r\n\tstatic userSessionValidation(exSessionId) {\r\n\t\tthis.initiate();\r\n\t\tif (userSessionId !== exSessionId) {\r\n\t\t\tthis.removeCartSessionDetails();\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\tstatic removeCartSessionDetails() {\r\n\t\tsessionStorage.removeItem(\"cartList\");\r\n\t\tsessionStorage.removeItem(\"taxCartList\");\r\n\t\tsessionStorage.removeItem(\"modifierCartList\");\r\n\t\tsessionStorage.removeItem(\"chargeCartList\");\r\n\t}\r\n\t// static secureStorage = new SecureStorage(sessionStorage, {\r\n\t// \thash: function hash(key) {\r\n\t// \t\tkey = CryptoJS.SHA256(key, SECRET_KEY);\r\n\r\n\t// \t\treturn key.toString();\r\n\t// \t},\r\n\t// \tencrypt: function encrypt(data) {\r\n\t// \t\tdata = CryptoJS.AES.encrypt(data, SECRET_KEY);\r\n\r\n\t// \t\tdata = data.toString();\r\n\r\n\t// \t\treturn data;\r\n\t// \t},\r\n\t// \tdecrypt: function decrypt(data) {\r\n\t// \t\tdata = CryptoJS.AES.decrypt(data, SECRET_KEY);\r\n\r\n\t// \t\tdata = data.toString(CryptoJS.enc.Utf8);\r\n\r\n\t// \t\treturn data;\r\n\t// \t},\r\n\t// });\r\n\r\n\tstatic validateSessionDateTime() {\r\n\t\tthis.initiate();\r\n\r\n\t\tconst currentTime = new Date();\r\n\t\tconst lastVisitedTime = new Date(lastUrlVisitedDateTime);\r\n\r\n\t\t// Check if last visited date is yesterday or today\r\n\t\tconst isYesterday = currentTime.getDate() !== lastVisitedTime.getDate();\r\n\t\tconst isToday = !isYesterday;\r\n\r\n\t\t// Calculate time difference in minutes\r\n\t\tconst timeDifference =\r\n\t\t\t(currentTime.getTime() - lastVisitedTime.getTime()) / (1000 * 60);\r\n\r\n\t\tif (currentTime.getDate() === lastVisitedTime.getDate()) {\r\n\t\t\tif (isToday && timeDifference > Config.appSessionHours) {\r\n\t\t\t\t// Redirect to error page if session has expired\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n}\r\n\r\nexport default withRouter(StaticHelpers);\r\n","import React, { Component } from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\nimport sidemenulogo from './home-logo.png';\r\n\r\nconst menuItems = [\r\n { menuId: 1, menuName: 'Home', iconsName: 'fas fa-home', routePath: \"/home\" },\r\n { menuId: 2, menuName: 'My Orders', iconsName: 'fa fa-shopping-cart sidebar-icon', routePath: \"/myorders\" },\r\n // { menuId: 2, menuName: 'My Bills', iconsName: 'fa fa-money', routePath: \"/mybills\" },\r\n // { menuId: 3, menuName: 'Contact Us', iconsName: 'fa fa-phone sidebar-icon', routePath: \"/home\" },\r\n { menuId: 4, menuName: 'Logout', iconsName: 'fa fa-sign-out-alt', routePath: \"/logout\" }\r\n];\r\n\r\n//const config = require('../../data/SiteConfig');\r\n\r\nclass Header extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n active: \"Receipts\"\r\n }\r\n }\r\n \r\n _handleClick(name) {\r\n this.setState({ active: name });\r\n }\r\n render() {\r\n const activeStyle = { color: '#007bff' };\r\n return (\r\n
\r\n \r\n \r\n\r\n
\r\n );\r\n }\r\n}\r\nexport default Header","import React, { Component } from 'react';\r\nimport './login.scss';\r\nimport LoadingAnimation from '../../components/loadinganimation/login';\r\nimport Cookies from 'universal-cookie';\r\nimport ErrorAlert from '../../components/alertmessages';\r\nimport Config from '../../data/SiteConfig';\r\nimport { isMobile } from 'react-device-detect';\r\nimport sHelpers from '../../modules/helpers/statichelpers';\r\nimport Slider from \"react-slick\";\r\nimport Header from '../../components/Header';\r\nconst homeslidersettings = {\r\n autoplay: true,\r\n dots: true,\r\n infinite: true,\r\n arrows: false,\r\n speed: 300,\r\n slidesToShow: 1,\r\n adaptiveHeight: false\r\n};\r\n//import { createBrowserHistory } from 'history';\r\n//import jumpTo from '../../modules/navigation';\r\n//const history = createBrowserHistory();\r\n\r\n// Image Part\r\n//const location = history.location;\r\n\r\nlet tableNo = '';\r\nlet serviceType = '';\r\nlet orgnationId = '';\r\nlet propertyId = '';\r\nlet outletCode = '';\r\nlet token = '';\r\nlet exmainGuestMobileNo = '';\r\nlet outletDetails = null;\r\nlet olDetail = {};\r\nlet validateOTP = false;\r\nlet validatePIN = true;\r\nlet pageSession = '';\r\nlet statsId = '';\r\n// eslint-disable-next-line\r\nlet groupSession = false;\r\nlet sortedSliderImages = '';\r\nlet urlPattern = '';\r\nclass Login extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n loading: false,\r\n mobileNo: '',\r\n orgId: 0,\r\n propertyId: '',\r\n outletCode: '',\r\n tableNo: '',\r\n serviceType: '',\r\n alertMessage: '',\r\n msgType: '',\r\n msgShow: false,\r\n guestName: '',\r\n sliderImages: [\r\n {\r\n altName: \"\",\r\n sortOrder: 0,\r\n bannerType: 0,\r\n height: 0,\r\n imageName: \"\",\r\n imagePathName: \"\",\r\n primaryImageType: \"\",\r\n secondaryImageType: \"\",\r\n bannerName: \"Slide 1\",\r\n primaryImageUrl: \"/img/slider/login-df-lucid.jpg\",\r\n secondaryImageUrl: \"\",\r\n status: 0,\r\n width: 0\r\n }\r\n ],\r\n loggedIn: false,\r\n tableCheckedIn: false,\r\n };\r\n }\r\n\r\n componentWillMount() {\r\n\r\n\r\n // sessionStorage.removeItem(\"cartList\");\r\n // sessionStorage.removeItem(\"taxCartList\");\r\n // sessionStorage.removeItem(\"modifierCartList\");\r\n // sessionStorage.removeItem(\"chargeCartList\");\r\n // sessionStorage.removeItem(\"paymentInitiatedId\");\r\n // sessionStorage.removeItem(\"paymentStatus\");\r\n // sessionStorage.removeItem(\"vendorId\");\r\n // sessionStorage.removeItem(\"vendorName\");\r\n // sessionStorage.removeItem(\"order-instruction\");\r\n\r\n // sessionStorage.removeItem(\"getCharges\");\r\n // sessionStorage.removeItem(\"getTaxes\");\r\n // sessionStorage.removeItem(\"getMenuGroups\");\r\n // sessionStorage.removeItem(\"getModifierGroups\");\r\n // sessionStorage.removeItem(\"getmenuItems\");\r\n // sessionStorage.removeItem('otpReferenceId');\r\n // // sessionStorage.removeItem('user-outletDetails');\r\n // sessionStorage.removeItem('user-table-verified');\r\n // sessionStorage.removeItem(\"ebillUrl\");\r\n // sessionStorage.removeItem(\"isPay\");\r\n // sessionStorage.removeItem(\"posBillId\");\r\n\r\n\r\n orgnationId = sessionStorage.getItem('user-orgnationid');\r\n propertyId = sessionStorage.getItem('user-propertyid');\r\n outletCode = sessionStorage.getItem('user-outletcode');\r\n tableNo = sessionStorage.getItem('user-tableno');\r\n serviceType = sessionStorage.getItem('user-servicetype');\r\n token = sessionStorage.getItem('user-token');\r\n statsId = sessionStorage.getItem('user-statsid');\r\n exmainGuestMobileNo = sessionStorage.getItem('main-guest-no') == null ? '' : sessionStorage.getItem('main-guest-no');\r\n outletDetails = sessionStorage.getItem('user-outletDetails');\r\n // Get PageSession\r\n pageSession = sessionStorage.getItem('login-page-session') == null ? 1 : parseInt(sessionStorage.getItem('login-page-session'));\r\n groupSession = sessionStorage.getItem('group-session') == null ? false : sessionStorage.getItem('group-session');\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n\r\n if (Config.IsMobileAccess) {\r\n if (!isMobile) {\r\n this.props.history.push('/deviceerror' + urlPattern);\r\n return false;\r\n //////console.log('mobile');\r\n }\r\n }\r\n\r\n const sessionDt = sessionStorage.getItem(\"u-l-v-url-dt\");\r\n if (!sessionDt) {\r\n this.props.history.push('/sessionerror' + urlPattern);\r\n return false;\r\n }\r\n if (!urlPattern) {\r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n // this.props.history.push('/' + urlPattern);\r\n if (tableNo === undefined || tableNo === \"\" || tableNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (serviceType === undefined || serviceType === \"\" || serviceType === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (orgnationId === undefined || orgnationId === \"\" || orgnationId === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (propertyId === undefined || propertyId === \"\" || propertyId === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (outletCode === undefined || outletCode === \"\" || outletCode === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (token === undefined || token === \"\" || token === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (outletDetails === undefined || outletDetails === \"\" || outletDetails === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n else {\r\n olDetail = JSON.parse(outletDetails);\r\n }\r\n\r\n if (statsId === undefined || statsId === \"\" || statsId === null) {\r\n statsId = \"0\"\r\n }\r\n\r\n if (olDetail.enableGuestAppOrders === true) this.handleValidateTableStatus();\r\n\r\n this.getCMSDetails();\r\n }\r\n\r\n\r\n handleValidateTableStatus() {\r\n // ////console.log(groupSession.toString());\r\n if (serviceType === \"FINE-DINE\") { // Table Check In \r\n\r\n // let uParam = '?OutletId=' + propertyId + outletCode + '&ServiceType=' + serviceType;\r\n let postObjGuest = {\r\n OutletId: propertyId + outletCode,\r\n TableNumber: tableNo\r\n };\r\n\r\n fetch(Config.basePOSUrl + 'GetGuestTableStatus', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObjGuest)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n ////console.log(\"responsetable\");\r\n ////console.log(response);\r\n if (response.errorCode === 0) {\r\n this.setState({ tableCheckedIn: response.response.guestTableStatus.isCheckedIn });\r\n if (response.response.guestTableStatus.isCheckedIn) {\r\n sessionStorage.setItem('main-guest-mask-no', response.response.guestTableStatus.maskMobileNo);\r\n sessionStorage.setItem('main-guest-no', response.response.guestTableStatus.mainGuestMobileNo);\r\n sessionStorage.setItem('main-guest-name', response.response.guestTableStatus.mainGuestName);\r\n sessionStorage.setItem('ex-main-guest-no', response.response.guestTableStatus.mainGuestMobileNo);\r\n\r\n\r\n if (olDetail.enableGroupOrdering) {\r\n // group pin remove commented by dasprakash on 27-09-2023 jira-1493\r\n\r\n // if (groupSession.toString() === \"false\") {\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/jointable');\r\n // }, 500);\r\n // }\r\n // \r\n // group pin remove added by dasprakash on 27-09-2023 jira-1493\r\n sessionStorage.setItem('group-session', true);\r\n groupSession = true;\r\n // \r\n }\r\n } // End Check In \r\n // Else Condition Added by vijay on 01-02-2024 -JIra id -2078 -Testing Points -3\r\n else {\r\n\r\n sessionStorage.setItem('main-guest-mask-no', response.response.guestTableStatus.maskMobileNo);\r\n sessionStorage.setItem('main-guest-no', response.response.guestTableStatus.mainGuestMobileNo);\r\n sessionStorage.setItem('main-guest-name', response.response.guestTableStatus.mainGuestName);\r\n sessionStorage.setItem('ex-main-guest-no', response.response.guestTableStatus.mainGuestMobileNo);\r\n }\r\n }\r\n })\r\n .catch(err => {\r\n sessionStorage.removeItem(\"user-token\");\r\n sessionStorage.removeItem(\"user-mobileno\");\r\n this.showMessage('Table Status - Failed to fetch - ' + err, \"danger\");\r\n ////console.log('Table Status - Failed to fetch - ' + err);\r\n });\r\n\r\n } // End Service Type - Fine Dine\r\n }\r\n\r\n handlechange = event => {\r\n\r\n const val = event.target.value;\r\n // const max = 10\r\n //const maxLength = max.toString().length - 1\r\n\r\n //const newVal = val < max ? val : parseInt(val.toString().substring(0, maxLength))\r\n let mNo = val.substr(0, 10);\r\n //////console.log(mNo);\r\n this.setState({ mobileNo: mNo });\r\n\r\n // ////console.log(mNo);\r\n };\r\n\r\n handleUpdateContactDetail() {\r\n let notes = {\r\n guestname: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n modetype: olDetail != null ? olDetail.enableGuestAppOrders === true ? 1 : 0 : 0\r\n }\r\n\r\n let posturlObj = {\r\n organizationId: parseInt(orgnationId),\r\n propertyId: propertyId,\r\n outletCode: outletCode,\r\n ServiceMode: serviceType,\r\n ContactNo: this.state.mobileNo,\r\n StatsId: parseInt(statsId),\r\n numofMenuAccess: 1,\r\n username: Config.linkUserName,\r\n password: Config.linkPassword,\r\n notes: JSON.stringify(notes)\r\n }\r\n // Update Contact Detail\r\n fetch(Config.baseAPIUrl + 'ClickURLDetail', {\r\n method: 'POST',\r\n headers: {\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(posturlObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n ////console.log(\"responseddddddddddddd\");\r\n ////console.log(response);\r\n // group pin added by dasprakash on 1-10-2023 jira-1490\r\n if (olDetail.validateGuestMobileNoWithOTP === true || olDetail.checkInWithTablePin === true) {\r\n this.handleOnlyGroup();\r\n } else {\r\n ////console.log(\"fdsfsfsf\")\r\n this.redirectToHome();\r\n }\r\n // this.redirectToHome();\r\n\r\n })\r\n .catch(err => {\r\n ////console.log(err);\r\n this.redirectToHome();\r\n //this.showMessage(\"CMS - Failed to fetch\", \"danger\");\r\n });\r\n }\r\n\r\n handleOnlyGroup() {\r\n ////console.log('goup');\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n\r\n this.props.history.push('/loginverification' + urlPattern,\r\n { mobileNo: this.state.mobileNo, validateOTP: validateOTP, validatePIN: validatePIN });\r\n }, Config.minMsgTimeout);\r\n }\r\n\r\n handleClick = (e) => {\r\n e.preventDefault();\r\n // group pin added by daspraksh on 28-09-2023 jira-1409\r\n const Details = JSON.parse(outletDetails);\r\n // ////console.log(olDetail.validateGuestMobileNoWithOTP); // Remove the quotes around the property name\r\n ////console.log(olDetail.enableGroupOrdering); // Remove the quotes around the property name\r\n // \r\n\r\n this.setState({ loading: true });\r\n if (this.state.mobileNo === \"\") {\r\n this.showMessage(\"Please enter the valid mobile no.\", \"info\");\r\n return false;\r\n }\r\n // group pin added by daspraksh on 28-09-2023 jira-1409\r\n if (Details.guestNameMandatory === true) {\r\n if (document.getElementById('input-guest-name').value === \"\") {\r\n this.showMessage(\"Please enter the name.\", \"info\");\r\n return false;\r\n }\r\n }\r\n // \r\n\r\n\r\n sessionStorage.setItem(\"guest-name\", document.getElementById('input-guest-name').value === null ? '' : document.getElementById('input-guest-name').value);\r\n exmainGuestMobileNo = sessionStorage.getItem('main-guest-no') == null ? '' : sessionStorage.getItem('main-guest-no');\r\n ////console.log(\"olDetail.enableGroupOrdering\");\r\n ////console.log(exmainGuestMobileNo);\r\n // Group Order Switch is off\r\n if (!olDetail.enableGroupOrdering) {\r\n if (serviceType === \"FINE-DINE\") { // Table Check In\r\n if (this.state.tableCheckedIn) {\r\n if (exmainGuestMobileNo !== '') {\r\n if (exmainGuestMobileNo !== '0000000000') { // first time entry\r\n if (exmainGuestMobileNo !== this.state.mobileNo) {\r\n this.showMessage(\"Table is already checked in, Please scan some other table\", \"danger\");\r\n ////console.log(\"Table is already checked in, Please scan some other table\", \"danger\");\r\n setTimeout(() => {\r\n this.setState({ loading: true });\r\n // Redirect to Page\r\n if (pageSession === Config.pageSession.Cart) {\r\n setTimeout(() => {\r\n ////console.log(\"mccc\")\r\n this.setState({ loading: false });\r\n this.props.history.push('/cart' + urlPattern);\r\n }, 2000);\r\n return false;\r\n }\r\n else if (pageSession === Config.pageSession.PayBill) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/mybills' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n else if (pageSession === Config.pageSession.MyOrders) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/myorders' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n else if (pageSession === Config.pageSession.ChooseAddress) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/cart' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/home' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n\r\n }, Config.averageMsgTimeout);\r\n return false;\r\n }\r\n\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // without verification \r\n ////console.log(\"exmainGuestMobileNo\")\r\n ////console.log(exmainGuestMobileNo)\r\n ////console.log(\"olDetail.validateGuestMobileNoWithOTP\")\r\n ////console.log(olDetail.validateGuestMobileNoWithOTP)\r\n ////console.log(\"olDetail.checkInWithTablePin\")\r\n ////console.log(olDetail.checkInWithTablePin)\r\n\r\n if (!olDetail.validateGuestMobileNoWithOTP && !olDetail.checkInWithTablePin) {\r\n if (exmainGuestMobileNo !== '') {\r\n if (exmainGuestMobileNo === this.state.mobileNo) {\r\n ////console.log(\"dfsdfssdfd\")\r\n this.handleUpdateContactDetail();\r\n // this.redirectToHome();\r\n return false;\r\n }\r\n else {\r\n validateOTP = false;\r\n validatePIN = false\r\n\r\n // group pin commented by dasprakash on 28-09-2023 jira-1490\r\n // if (groupSession.toString() === \"true\") this.handleOnlyGroup();\r\n // else this.handleUpdateContactDetail();\r\n\r\n // group pin added by dasprakash on 28-09-2023 jira-1490\r\n this.handleUpdateContactDetail()\r\n\r\n\r\n //this.showMessage(\"Table is already checked in, Please scan some other table\", \"danger\");\r\n // this.setState({ loading: true });\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/' + urlPattern);\r\n // }, 3000);\r\n return false;\r\n }\r\n }\r\n else {\r\n ////console.log(\"else for\")\r\n this.handleUpdateContactDetail();\r\n // this.redirectToHome();\r\n return false;\r\n }\r\n }\r\n\r\n else if (olDetail.validateGuestMobileNoWithOTP && olDetail.checkInWithTablePin) {\r\n // Added by vijay on 02-01-2023 Jira id -2078 - Allow to login if same guest scan the same table\r\n if (exmainGuestMobileNo !== '') {\r\n if (exmainGuestMobileNo === this.state.mobileNo) {\r\n this.handleRedirectToWithoutVerification();\r\n return false;\r\n }\r\n }\r\n\r\n validateOTP = true;\r\n validatePIN = true\r\n }\r\n else if (olDetail.validateGuestMobileNoWithOTP && !olDetail.checkInWithTablePin) {\r\n // Added by vijay on 02-01-2023 Jira id -2078 - Allow to login if same guest scan the same table\r\n if (exmainGuestMobileNo !== '') {\r\n if (exmainGuestMobileNo === this.state.mobileNo) {\r\n this.handleUpdateContactDetail();\r\n return false;\r\n }\r\n }\r\n\r\n validateOTP = true;\r\n validatePIN = false\r\n }\r\n else {\r\n\r\n // Added by vijay on 02-01-2023 Jira id -2078 - Allow to login if same guest scan the same table\r\n if (exmainGuestMobileNo !== '') {\r\n if (exmainGuestMobileNo === this.state.mobileNo) {\r\n this.handleUpdateContactDetail();\r\n return false;\r\n }\r\n }\r\n validateOTP = false;\r\n validatePIN = true\r\n }\r\n\r\n ////console.log(validateOTP)\r\n if (validateOTP) {\r\n let postObj = {\r\n MobileNoCountryCode: \"91\",\r\n MobileNo: this.state.mobileNo,\r\n GuestName: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n PropertyId: propertyId,\r\n OutletId: propertyId + outletCode\r\n }\r\n\r\n // ////console.log(postObj);\r\n fetch(Config.baseGuestUrl + 'GuestLogin', {\r\n method: 'POST',\r\n headers: {\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n ////console.log(response);\r\n let cookie = new Cookies();\r\n if (response.errorCode === 0) {\r\n //this.showMessage(response.message, \"danger\");\r\n sessionStorage.setItem('otpReferenceId', response.response.otpReferenceId);\r\n sessionStorage.setItem('otp-exp-duration', response.response.otpExpiryDuration);\r\n cookie.set('user', response);\r\n cookie.set('gmno', this.state.mobileNo);\r\n ////console.log(\"majaf\")\r\n if (this.state.mobileNo !== exmainGuestMobileNo) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/loginverification' + urlPattern,\r\n { mobileNo: this.state.mobileNo, validateOTP: validateOTP, validatePIN: validatePIN });\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n ////console.log(\"magic\")\r\n this.handleUpdateContactDetail();\r\n }\r\n }\r\n else if (response.errorCode === 4) // Redirect to Verification - Already Sent\r\n {\r\n if (this.state.mobileNo !== exmainGuestMobileNo) {\r\n this.showMessage(response.message, \"danger\");\r\n sessionStorage.setItem('otpReferenceId', response.response.otpReferenceId);\r\n sessionStorage.setItem('otp-exp-duration', response.response.otpExpiryDuration);\r\n cookie.set('user', response);\r\n cookie.set('gmno', this.state.mobileNo);\r\n\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n ////console.log(\"err\");\r\n\r\n this.props.history.push('/loginverification' + urlPattern,\r\n { mobileNo: this.state.mobileNo, validateOTP: validateOTP, validatePIN: validatePIN });\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n this.handleUpdateContactDetail();\r\n }\r\n }\r\n else {\r\n cookie.remove('user');\r\n cookie.remove('gmno');\r\n cookie.remove('otpReferenceId');\r\n sessionStorage.removeItem('otp-exp-duration');\r\n sessionStorage.removeItem('otpReferenceId');\r\n this.showMessage(response.message, \"danger\");\r\n }\r\n })\r\n .catch(err => {\r\n // ////console.log(err);\r\n this.showMessage(\"An error occured\", \"danger\");\r\n });\r\n }\r\n else {\r\n ////console.log(\"validatePIN\");\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/loginverification' + urlPattern,\r\n { mobileNo: this.state.mobileNo, validateOTP: validateOTP, validatePIN: validatePIN });\r\n }, Config.minMsgTimeout);\r\n }\r\n\r\n // this.props.submitAction(mobileno).then(res => {\r\n // jumpTo('/loginverification')\r\n // return res\r\n // })\r\n // .catch(error => {\r\n // ////console.log(error.response.data.error.message)\r\n // alert(error.response.data.error.message)\r\n // return error\r\n // })\r\n //history.push('/loginverification'); \r\n // alert('msg');\r\n ///this.setState({loading : true}); \r\n };\r\n\r\n redirectToHome(exGuestLoggedIn = false) {\r\n if (serviceType === \"FINE-DINE\") { // Table Check In\r\n //sessionStorage.setItem('group-pin', '');\r\n\r\n // digital Menu\r\n // added by dasprakash on 07-10-2023 jira-1490\r\n if (olDetail.enableGuestAppOrders === false && olDetail.enableDigitalMenu === true) {\r\n sessionStorage.setItem('user-table-verified', true);\r\n sessionStorage.setItem('user-digitalMenu', true);\r\n sessionStorage.setItem('user-mobileno', this.state.mobileNo); // uncomment by prem on 06-02-2025 to resolve the digital menu with mobile issue not working.\r\n sessionStorage.setItem('user-loggedin', true);\r\n\r\n setTimeout(() => {\r\n // this.props.history.push('/emhome');\r\n this.props.history.push('/home' + urlPattern);\r\n }, 1000);\r\n return false;\r\n }\r\n //Condition added by vijay on 01-02-2024 Jira id-2078 - Allow to login if same guest scan the same table\r\n if (!exGuestLoggedIn) {\r\n let postObj = {\r\n OutletId: propertyId + outletCode,\r\n GuestName: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n MobileNo: this.state.mobileNo,\r\n TableNumber: tableNo,\r\n GroupCode: ''\r\n }\r\n fetch(Config.basePOSUrl + 'GuestCheckIn', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n\r\n if (response.errorCode === 0) {\r\n sessionStorage.setItem('user-table-verified', true);\r\n sessionStorage.removeItem('otpReferenceId');\r\n sessionStorage.setItem('user-mobileno', this.state.mobileNo);\r\n // group pin commented by dasprakash on 05-10-2023 jira-1490\r\n // sessionStorage.setItem('main-guest-no', this.state.mobileNo);\r\n sessionStorage.setItem('user-loggedin', true);\r\n // Temperary hard code for table pin switch value as false\r\n olDetail.checkInWithTablePin = false;\r\n\r\n // digital Menu\r\n // commented by dasprakash on 07-10-2023 jira-1490\r\n // if (olDetail.enableGuestAppOrders === false && olDetail.enableDigitalMenu === true) {\r\n // sessionStorage.setItem('user-table-verified', true);\r\n // sessionStorage.setItem('user-digitalMenu', true);\r\n // setTimeout(() => {\r\n // // this.props.history.push('/emhome');\r\n // this.props.history.push('/home');\r\n // }, 1000);\r\n // return false;\r\n // }\r\n\r\n // set Logged in Date \r\n let loggedIn = sHelpers.getFormattedDate(new Date());\r\n sessionStorage.setItem('user-loggedin-date', loggedIn);\r\n\r\n\r\n this.getGuestDetails();\r\n\r\n // // Redirect to Page\r\n // if (pageSession === Config.pageSession.Cart) {\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/cart', { onClick: true });\r\n // }, 2000);\r\n // return false;\r\n // }\r\n // else if (pageSession === Config.pageSession.PayBill) {\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/mybills');\r\n // }, 2000);\r\n // return false;\r\n // }\r\n // else if (pageSession === Config.pageSession.MyOrders) {\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/myorders');\r\n // }, 2000);\r\n // return false;\r\n // }\r\n // else if (pageSession === Config.pageSession.ChooseAddress) {\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/cart');\r\n // }, 2000);\r\n // return false;\r\n // }\r\n // else {\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/home');\r\n // }, 2000);\r\n // return false;\r\n // }\r\n }\r\n else {\r\n this.showMessage(response.message, \"danger\");\r\n this.setState({ loading: true });\r\n sessionStorage.removeItem(\"login-page-session\"); // Cart Session\r\n sessionStorage.removeItem(\"on-click-mode\"); // Cart Session\r\n if (pageSession === Config.pageSession.Cart) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/cart' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n else if (pageSession === Config.pageSession.PayBill) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/items' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n else if (pageSession === Config.pageSession.MyOrders) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/myorders' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n else if (pageSession === Config.pageSession.ChooseAddress) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/cart' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/home' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n }\r\n })\r\n .catch(err => {\r\n // sessionStorage.removeItem(\"user-token\");\r\n //sessionStorage.removeItem(\"user-mobileno\");\r\n ////console.log(\"catch\")\r\n this.showMessage('Guest Check IN - Failed to fetch - ' + err, \"danger\");\r\n });\r\n }\r\n else // if already ex main guest logged in\r\n {\r\n sessionStorage.setItem('user-table-verified', true);\r\n sessionStorage.removeItem('otpReferenceId');\r\n sessionStorage.setItem('user-mobileno', this.state.mobileNo);\r\n sessionStorage.setItem('user-loggedin', true);\r\n // Temperary hard code for table pin switch value as false\r\n olDetail.checkInWithTablePin = false;\r\n\r\n // set Logged in Date \r\n let loggedIn = sHelpers.getFormattedDate(new Date());\r\n sessionStorage.setItem('user-loggedin-date', loggedIn);\r\n\r\n this.getGuestDetails();\r\n\r\n\r\n }\r\n\r\n } // End Service Type - Fine Dine\r\n\r\n\r\n else {\r\n sessionStorage.setItem('user-table-verified', true);\r\n sessionStorage.removeItem('otpReferenceId');\r\n sessionStorage.setItem('user-loggedin', true);\r\n\r\n sessionStorage.setItem('user-mobileno', this.state.mobileNo);\r\n sessionStorage.setItem('main-guest-no', this.state.mobileNo);\r\n\r\n // Temperary hard code for table pin switch value as false\r\n olDetail.checkInWithTablePin = false;\r\n\r\n // digital Menu\r\n if (olDetail.enableGuestAppOrders === false && olDetail.enableDigitalMenu === true) {\r\n sessionStorage.setItem('user-table-verified', true);\r\n sessionStorage.setItem('user-digitalMenu', true);\r\n setTimeout(() => {\r\n //this.props.history.push('/emhome');\r\n this.props.history.push('/home' + urlPattern);\r\n }, 1000);\r\n return false;\r\n }\r\n\r\n this.getGuestDetails();\r\n\r\n // // Redirect to Page\r\n // if (pageSession === Config.pageSession.Cart) {\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/cart', { onClick: true });\r\n // }, 2000);\r\n // return false;\r\n // }\r\n // else if (pageSession === Config.pageSession.PayBill) {\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/mybills');\r\n // }, 2000);\r\n // return false;\r\n // }\r\n // else if (pageSession === Config.pageSession.MyOrders) {\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/myorders');\r\n // }, 2000);\r\n // return false;\r\n // }\r\n // else if (pageSession === Config.pageSession.ChooseAddress) {\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/cart');\r\n // }, 2000);\r\n // return false;\r\n // }\r\n // else {\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/home');\r\n // }, 2000);\r\n // return false;\r\n // }\r\n }\r\n }\r\n\r\n getGuestDetails() {\r\n let mobileNumber = sessionStorage.getItem('user-mobileno');\r\n fetch(Config.baseGuestUrl + 'GetGuestDetails?GuestMobileNo=' + mobileNumber, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n ////console.log(\"responsedas\");\r\n ////console.log(response);\r\n if (response.errorCode === 0) {\r\n sessionStorage.setItem('user-GuestDetails', JSON.stringify(response.response.guestDetails));\r\n let selectedAddress = {\r\n addressId: response.response.guestDetails.guestAddress.addressId,\r\n addressLine1: response.response.guestDetails.guestAddress.addressLine1,\r\n addressLine2: response.response.guestDetails.guestAddress.addressLine2,\r\n addressLine3: response.response.guestDetails.guestAddress.addressLine3,\r\n addressType: response.response.guestDetails.guestAddress.addressType,\r\n addressTypeId: 1,//response.response.guestDetails.addressTypeId,\r\n area: response.response.guestDetails.guestAddress.area,\r\n city: response.response.guestDetails.guestAddress.city,\r\n landmark: response.response.guestDetails.guestAddress.landmark,\r\n zipCode: response.response.guestDetails.guestAddress.zipCode\r\n }\r\n sessionStorage.setItem('user-CurrentAddress', JSON.stringify(selectedAddress));\r\n }\r\n else {\r\n this.showMessage(response.message, \"danger\");\r\n sessionStorage.removeItem('user-GuestDetails');\r\n }\r\n\r\n this.setState({ loading: true });\r\n // Redirect to page \r\n if (pageSession === Config.pageSession.Cart) {\r\n setTimeout(() => {\r\n ////console.log(\"cart redi\");\r\n this.setState({ loading: false });\r\n this.props.history.push('/cart' + urlPattern, { onClick: true });\r\n }, 2000);\r\n return false;\r\n }\r\n else if (pageSession === Config.pageSession.PayBill) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/mybills' + urlPattern);\r\n }, 2000);\r\n return false;\r\n }\r\n else if (pageSession === Config.pageSession.MyOrders) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/myorders' + urlPattern);\r\n }, 2000);\r\n return false;\r\n }\r\n else if (pageSession === Config.pageSession.ChooseAddress) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/cart' + urlPattern);\r\n }, 2000);\r\n return false;\r\n }\r\n else {\r\n setTimeout(() => {\r\n ////console.log(\"cart home\");\r\n this.setState({ loading: false });\r\n this.props.history.push('/home' + urlPattern);\r\n }, 2000);\r\n return false;\r\n }\r\n })\r\n .catch(err => {\r\n this.showMessage('Guest Details - Failed to fetch - ' + err, \"danger\");\r\n });\r\n }\r\n\r\n getCMSDetails() {\r\n\r\n let postobj = {\r\n organizationId: parseInt(orgnationId),\r\n propertyId: propertyId,\r\n outletCode: outletCode,\r\n ServiceMode: serviceType,\r\n ApplicationCode: Config.applicationCode,\r\n PageId: Config.pageIds.login, // Default Login\r\n PageType: Config.pageType.login, // Login \r\n RequestIp: \"\",\r\n username: Config.cmsUserName,\r\n password: Config.cmsPassword\r\n }\r\n\r\n fetch(Config.baseAPIUrl + 'PageDetails', {\r\n method: 'POST',\r\n headers: {\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postobj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // ////console.log(response);\r\n if (response.isSuccessful) {\r\n\r\n // Slider \r\n if (response.banners.filter(i => i.bannerType === Config.bannerImageType.Slider) !== null && response.banners.filter(i => i.bannerType === Config.bannerImageType.Slider).length > 0) {\r\n // this.setState({ sliderImages: response.banners.filter(i => i.bannerType === Config.bannerImageType.Slider) });\r\n sortedSliderImages = response.banners.filter(i => i.bannerType === Config.bannerImageType.Slider).slice().sort((a, b) => a.sortOrder - b.sortOrder);\r\n this.setState({ sliderImages: sortedSliderImages });\r\n }\r\n\r\n\r\n // if (response.page != null) {\r\n // if (response.page.preview !== '')\r\n // this.setState({ pageContent: response.page.content, pagePreview: response.page.preview });\r\n\r\n // }\r\n }\r\n\r\n })\r\n .catch(err => {\r\n ////console.log(err);\r\n //this.showMessage(\"CMS - Failed to fetch\", \"danger\");\r\n });\r\n }\r\n\r\n // Added by vijay on 01-02-2024 Jira id -2078 -Allow to login if same guest scan the same table\r\n handleRedirectToWithoutVerification() {\r\n let notes = {\r\n guestname: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n modetype: olDetail != null ? olDetail.enableGuestAppOrders === true ? 1 : 0 : 0\r\n }\r\n\r\n let posturlObj = {\r\n organizationId: parseInt(orgnationId),\r\n propertyId: propertyId,\r\n outletCode: outletCode,\r\n ServiceMode: serviceType,\r\n ContactNo: this.state.mobileNo,\r\n StatsId: parseInt(statsId),\r\n numofMenuAccess: 1,\r\n username: Config.linkUserName,\r\n password: Config.linkPassword,\r\n notes: JSON.stringify(notes)\r\n }\r\n // Update Contact Detail\r\n fetch(Config.baseAPIUrl + 'ClickURLDetail', {\r\n method: 'POST',\r\n headers: {\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(posturlObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n\r\n console.log(\"Login Page API\", response);\r\n\r\n this.redirectToHome(true);\r\n\r\n\r\n })\r\n .catch(err => {\r\n //////console.log(err);\r\n this.redirectToHome(true);\r\n //this.showMessage(\"CMS - Failed to fetch\", \"danger\");\r\n });\r\n }\r\n\r\n showMessage(msg, type) {\r\n window.scrollTo(0, 0);\r\n this.setState({ msgShow: true });\r\n this.setState({ msgType: type });\r\n this.setState({ alertMessage: msg });\r\n this.setState({ loading: false });\r\n setTimeout(() => {\r\n this.setState({ msgShow: false });\r\n }, Config.minMsgTimeout);\r\n };\r\n render() {\r\n const { loading } = this.state;\r\n\r\n\r\n return (\r\n
\r\n {loading && }\r\n
\r\n {this.state.msgShow && }\r\n
\r\n
\r\n {/*
\r\n
\r\n \"slider\"\r\n
\r\n
*/}\r\n
\r\n \r\n {this.state.sliderImages.map(img =>\r\n
\r\n \"lucid-slider-contact-less-order\"\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\"lucid-contactless-app-user-login\"
\r\n\r\n
LOGIN
\r\n
Enter your valid mobile number to continue
\r\n
\r\n
\r\n
\r\n
\r\n this.handlechange(e)} className=\"form-control login-input\" name=\"input-mobile-no\" id=\"input-mobile-no\" placeholder=\"Phone Number\" maxLength=\"10\" autoFocus autoComplete=\"off\" ref={(input) => { this.nameInput = input; }} />\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\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 Login;","import React, { Component } from 'react';\r\nimport './screen.scss';\r\nimport ErrorAlert from '../../components/alertmessages';\r\n//import LoadingAnimation from '../../components/loadingAnimation';\r\n//import LoadingImg from './loading.svg';\r\n//import HomeImg from './home-logo.png';\r\n//import lucidloader from './lucid-loader.svg';\r\n//import {Cookies} from 'react-cookie';\r\nimport { isMobile } from 'react-device-detect';\r\nimport Config from '../../data/SiteConfig';\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport 'react-confirm-alert/src/react-confirm-alert.css'; // Import css\r\n\r\n\r\n//import * as QueryString from \"query-string\";\r\nimport uuid from 'react-uuid';\r\n\r\n//import { style } from 'glamor';\r\n\r\nlet orgId = '';\r\nlet orgName = '';\r\nlet propId = '';\r\nlet propName = '';\r\nlet outCode = '';\r\nlet outName = '';\r\nlet tblNo = '';\r\nlet sType = '';\r\nlet statsid = '';\r\nlet urlRemarks = '';\r\nlet mobileApp = '';\r\nlet appContactNo = '';\r\nlet appCountryCode = '';\r\nlet token = '';\r\n\r\nlet mobileNo = '';\r\n// let loggedInOrg = '';\r\n// let loggedOrgName = '';\r\n// let loggedInPropertyId = '';\r\n// let loggedPropertyName = '';\r\n// let loggedInOutletcode = '';\r\n// let loggedOutletName = '';\r\n// let loggedInServiceType = '';\r\n// let loggedInTableno = '';\r\n// let loggedStatsid = '';\r\n// let loggedurlRemarks = '';\r\n//let inputParam = '';\r\nlet exloggedout = false;\r\nlet outletDetails = '';\r\nlet urlPattern = '';\r\nclass SplashScreen extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n loading: false,\r\n orgId: 0,\r\n propertyId: \"\",\r\n outletCode: \"\",\r\n tableNo: \"\",\r\n serviceType: \"\",\r\n pageContent: \"\",\r\n pagePreview: \"\",\r\n pagebgColor: {\r\n background: \"#fff\",\r\n },\r\n poweredByStyles: {\r\n background: \"#fff\",\r\n color: \"#000\",\r\n fontSize: \"10px\"\r\n },\r\n poweredByLucidStyles: {\r\n color: \"#fd0000\",\r\n },\r\n showComponent: false\r\n }\r\n }\r\n\r\n // componentWillMount() {\r\n // let gatepassId = (window.location.search).replace('?gatepassid=', '');\r\n\r\n // console.log(gatepassId);\r\n\r\n\r\n // }\r\n\r\n componentWillMount() {\r\n\r\n // let cookie = new Cookies();\r\n // let userMobileNo = cookie.get('user-mobileNo');\r\n // let token = cookie.get('token');\r\n if (Config.IsMobileAccess) {\r\n if (!isMobile) {\r\n this.props.history.push('/deviceerror' + Config.defaultUrlPattern);\r\n return false;\r\n //console.log('mobile');\r\n }\r\n }\r\n\r\n\r\n\r\n localStorage.clear();\r\n sessionStorage.setItem('u-l-v-url-dt', new Date().toString()); // Current date time Update \r\n sessionStorage.setItem('app-ver', Config.appVersion);\r\n\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n\r\n // mobileNo = sessionStorage.getItem('user-mobileno');\r\n // // let token = sessionStorage.getItem('user-token');\r\n\r\n // loggedInOrg = sessionStorage.getItem('user-orgnationid');\r\n // loggedOrgName = sessionStorage.getItem('user-organizationname')\r\n // loggedInPropertyId = sessionStorage.getItem('user-propertyid');\r\n // loggedPropertyName = sessionStorage.getItem('user-propertyname')\r\n // loggedInOutletcode = sessionStorage.getItem('user-outletcode');\r\n // loggedOutletName = sessionStorage.getItem('user-outletname')\r\n // loggedInServiceType = sessionStorage.getItem('user-servicetype');\r\n // loggedInTableno = sessionStorage.getItem('user-tableno');\r\n // loggedStatsid = sessionStorage.getItem('user-statsid');\r\n // loggedurlRemarks = sessionStorage.getItem('url-remarks');\r\n\r\n // console.log(loggedInOrg);\r\n // console.log(loggedInPropertyId);\r\n // console.log(mobileNo);\r\n\r\n\r\n // inputParam = QueryString.parse(window.location.search);\r\n\r\n // if (inputParam.ukey === undefined || inputParam.ukey === \"\" || inputParam.ukey === null) {\r\n // this.props.history.push('/qrcodeerror');\r\n // return false;\r\n // }\r\n\r\n // let urlkey = inputParam.ukey // Added by vijay on 30-10-2023 Jira id - 1690 -start\r\n\r\n let urlkey = sessionStorage.getItem('url-key');\r\n\r\n if (!urlkey || !urlPattern) {\r\n // Handle error or redirect as needed\r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n\r\n // longUrlInput\r\n const urlString = urlkey.replace(/ /g, '+')\r\n\r\n let posturlObj = {\r\n username: Config.linkUserName,\r\n password: Config.linkPassword,\r\n urlKey: urlString,\r\n requestIP: \"\",\r\n userId: \"\"\r\n }\r\n // Update Contact Detail\r\n fetch(Config.baseAPIUrl + 'LongUrl', {\r\n method: 'POST',\r\n headers: {\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(posturlObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response); \r\n if (response.isSuccessful) {\r\n if (urlString === response.urlKey) {\r\n this.getLaunch(response);\r\n }\r\n else {\r\n this.showMessage(\"URL not found. \", \"danger\");\r\n this.props.history.push('/qrcodeerror' + urlPattern);\r\n }\r\n }\r\n else {\r\n this.showMessage(response.message, \"danger\");\r\n // jk \r\n setTimeout(() => {\r\n this.props.history.push('/qrcodeerror' + urlPattern);\r\n }, 1000);\r\n }\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.showMessage(\"URL not found. \", \"danger\");\r\n\r\n }); // Added by vijay on 30-10-2023 Jira id - 1690 -End \r\n }\r\n\r\n componentDidMount() {\r\n setTimeout(() => {\r\n // console.log(\"State variable will be set to true after 5 seconds\");\r\n this.setState({ showComponent: true }); // Set state variable to true after 3 seconds\r\n }, 1000);\r\n }\r\n\r\n getCMSDetails() {\r\n\r\n let postobj = {\r\n organizationId: parseInt(orgId),\r\n propertyId: propId,\r\n outletCode: outCode,\r\n ServiceMode: sType,\r\n ApplicationCode: Config.applicationCode,\r\n PageId: Config.pageIds.splash, // Default Menu\r\n PageType: Config.pageType.menu, // spalashScreen \r\n RequestIp: \"\",\r\n username: Config.cmsUserName,\r\n password: Config.cmsPassword\r\n }\r\n //console.log(postobj);\r\n\r\n fetch(Config.baseAPIUrl + 'PageDetails', {\r\n method: 'POST',\r\n headers: {\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postobj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.isSuccessful) {\r\n // console.log(response);\r\n sessionStorage.setItem(\"pageCMSSettings\", JSON.stringify(response));\r\n this.themeStyle(response);\r\n }\r\n\r\n setTimeout(() => {\r\n this.getOutletDetails();\r\n }, 1000);\r\n\r\n\r\n this.setState({ loading: false });\r\n\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n setTimeout(() => {\r\n this.getOutletDetails();\r\n }, 1000);\r\n //this.showMessage(\"CMS - Failed to fetch\", \"danger\");\r\n });\r\n\r\n // Update Cart Infomation\r\n }\r\n\r\n themeStyle(response) {\r\n //console.log(response.brands); \r\n\r\n // Conte Style\r\n let powbgColor = response.brands.filter(b => b.brandCode === 'pow-b-c').length > 0 ? response.brands.filter(b => b.brandCode === 'pow-b-c')[0].brandValue : \"#fff\";\r\n let powfontColor = response.brands.filter(b => b.brandCode === 'pow-f-c').length > 0 ? response.brands.filter(b => b.brandCode === 'pow-f-c')[0].brandValue : \"#000\";\r\n let powfontSize = response.brands.filter(b => b.brandCode === 'pow-f-s').length > 0 ? response.brands.filter(b => b.brandCode === 'pow-f-s')[0].brandValue : \"10px\";\r\n\r\n let styleContent = {\r\n backgroundColor: powbgColor,\r\n color: powfontColor,\r\n fontSize: powfontSize\r\n }\r\n // console.log(styleContent);\r\n this.setState({ poweredByStyles: styleContent });\r\n\r\n //powered by lucid\r\n let powLucidfontColor = response.brands.filter(b => b.brandCode === 'pow-lucid-f-c').length > 0 ? response.brands.filter(b => b.brandCode === 'pow-lucid-f-c')[0].brandValue : \"#000\";\r\n\r\n styleContent = {\r\n color: powLucidfontColor\r\n }\r\n this.setState({ poweredByLucidStyles: styleContent });\r\n\r\n // Content \r\n if (response.page != null) {\r\n // console.log(response.page.preview);\r\n this.setState({ pageContent: response.page.content, pagePreview: response.page.preview });\r\n }\r\n\r\n // Page bg Style\r\n\r\n let pagebgColor = response.brands.filter(b => b.brandCode === 'pg-b-c').length > 0 ? response.brands.filter(b => b.brandCode === 'pg-b-c')[0].brandValue : \"#fff\";\r\n styleContent = {\r\n background: pagebgColor,\r\n }\r\n this.setState({ pagebgColor: styleContent });\r\n }\r\n\r\n getAutoLogin() {\r\n this.handleUpdateContactDetail(appContactNo);\r\n sessionStorage.setItem('user-mobileno', sessionStorage.getItem('app-ContactNo'));\r\n sessionStorage.setItem('main-guest-no', sessionStorage.getItem('app-ContactNo'));\r\n sessionStorage.setItem('user-loggedin', true);\r\n sessionStorage.setItem('user-table-verified', true);\r\n\r\n\r\n }\r\n\r\n getOutletDetails() {\r\n // // Get Token\r\n let urlParam = '?OrganizationId=' + orgId + '&PropertyId=' + propId + '&TokenKey=' + Config.tokenKey;\r\n // console.log(urlParam);\r\n fetch(Config.basePOSUrl + 'GetGuestAppToken' + urlParam, {\r\n method: 'GET',\r\n headers: {\r\n 'content-type': 'application/json'\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // let cookie = new Cookies();\r\n\r\n if (response.errorCode === 0) {\r\n token = response.response.token;\r\n sessionStorage.setItem('user-token', token);\r\n\r\n if (outCode === \"NONE\") { // Property Level\r\n sessionStorage.setItem('user-tableno', \"NONE\");\r\n sessionStorage.setItem('user-table-verified', false);\r\n sessionStorage.setItem('user-qr-level', Config.qrCodeLevel.Property); // it is Property Level\r\n sessionStorage.setItem('user-mobileno', \"0000000000\");\r\n sessionStorage.setItem('main-guest-no', \"0000000000\");\r\n sessionStorage.setItem('user-loggedin', false);\r\n sessionStorage.setItem('user-table-verified', false);\r\n sessionStorage.setItem('user-digitalMenu', false);\r\n sessionStorage.setItem('group-session', false);\r\n\r\n // Check Mobile App mode\r\n if (mobileApp === true) {\r\n // console.log(sessionStorage.getItem('mobile-app'));\r\n //this.handleUpdateContactDetail(appContactNo);\r\n this.getAutoLogin();\r\n setTimeout(() => {\r\n this.props.history.push('/home' + urlPattern);\r\n }, 1000);\r\n return false;\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.props.history.push('/home' + urlPattern);\r\n }, 1000);\r\n return false;\r\n }\r\n\r\n }\r\n else if (sType === \"NONE\") { // Outlet Level\r\n\r\n sessionStorage.setItem('user-tableno', \"NONE\");\r\n sessionStorage.setItem('user-table-verified', false);\r\n sessionStorage.setItem('user-qr-level', Config.qrCodeLevel.Outlet); // it is Property Level\r\n sessionStorage.setItem('user-mobileno', \"0000000000\");\r\n sessionStorage.setItem('main-guest-no', \"0000000000\");\r\n sessionStorage.setItem('user-loggedin', false);\r\n sessionStorage.setItem('user-table-verified', false);\r\n sessionStorage.setItem('user-digitalMenu', false);\r\n sessionStorage.setItem('group-session', false);\r\n\r\n if (mobileApp === true) {\r\n this.handleUpdateContactDetail(appContactNo);\r\n }\r\n\r\n setTimeout(() => {\r\n this.props.history.push('/home' + urlPattern);\r\n }, 1000);\r\n return false;\r\n\r\n }\r\n\r\n // get Outlet Details\r\n let uParam = '?OutletId=' + propId + outCode + '&ServiceType=' + sType;\r\n\r\n fetch(Config.basePOSUrl + 'GetOutletDetails' + uParam, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.errorCode === 0) {\r\n\r\n outletDetails = response.response.outletDetails;\r\n // console.log(outletDetails);\r\n sessionStorage.setItem(\"user-outletDetails\", JSON.stringify(response.response.outletDetails));\r\n sessionStorage.setItem('user-propertyname', outletDetails.propertyName);\r\n sessionStorage.setItem('user-outletname', outletDetails.outletName);\r\n\r\n setTimeout(() => {\r\n // console.log(\"State variable will be set to true after 5 seconds\");\r\n this.setState({ showComponent: true }); // Set state variable to true after 3 seconds\r\n }, 1000);\r\n\r\n if (outletDetails.enableGuestAppOrders === false && outletDetails.enableDigitalMenu === true) {\r\n // Required Login Details\r\n if (outletDetails.guestDetailsMandatoryForDigitalMenu === false) {\r\n sessionStorage.setItem('user-token', token);\r\n sessionStorage.setItem('user-table-verified', true);\r\n sessionStorage.setItem('user-digitalMenu', true);\r\n sessionStorage.setItem('user-mobileno', \"0000000000\");\r\n\r\n if (mobileApp === true) this.getAutoLogin();\r\n setTimeout(() => {\r\n //this.props.history.push('/emhome');\r\n this.props.history.push('/home' + urlPattern);\r\n }, 1000);\r\n }\r\n else {\r\n // Existing logged mode \r\n if (exloggedout === true) {\r\n setTimeout(() => {\r\n this.props.history.push('/login' + urlPattern);\r\n this.setState({ loading: false });\r\n }, 1500);\r\n return false;\r\n }\r\n\r\n if (mobileNo === \"0000000000\") {\r\n setTimeout(() => {\r\n this.props.history.push('/login' + urlPattern);\r\n this.setState({ loading: false });\r\n }, 1500);\r\n return false;\r\n }\r\n\r\n if (mobileNo === \"\" || mobileNo === null || mobileNo === undefined) {\r\n setTimeout(() => {\r\n this.props.history.push('/login' + urlPattern);\r\n this.setState({ loading: false });\r\n }, 500);\r\n // return false;\r\n }\r\n else {\r\n if (token === undefined || token === \"\" || token === null) {\r\n setTimeout(() => {\r\n this.props.history.push('/login' + urlPattern);\r\n this.setState({ loading: false });\r\n }, 2500);\r\n return false;\r\n }\r\n else {\r\n sessionStorage.setItem('user-token', token);\r\n sessionStorage.setItem('user-table-verified', true);\r\n sessionStorage.setItem('user-digitalMenu', true);\r\n\r\n if (mobileApp === true) this.getAutoLogin();\r\n\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n //this.props.history.push('/emhome');\r\n this.props.history.push('/home' + urlPattern);\r\n }, 2000);\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n } // End Digital Menu\r\n else if (outletDetails.enableGuestAppOrders === true) {\r\n sessionStorage.setItem('user-digitalMenu', false);\r\n sessionStorage.setItem('group-session', false);\r\n sessionStorage.setItem('user-token', token);\r\n //console.log(outletDetails);\r\n /// Guest Login Mode\r\n if (outletDetails.guestLoginAtTheTimeOfPlaceOrder) {\r\n sessionStorage.setItem('user-mobileno', \"0000000000\");\r\n sessionStorage.setItem('main-guest-no', \"0000000000\");\r\n sessionStorage.setItem('user-loggedin', false);\r\n sessionStorage.setItem('user-table-verified', true);\r\n sessionStorage.removeItem('guest-name');\r\n if (mobileApp === true) this.getAutoLogin();\r\n\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/home' + urlPattern);\r\n }, 2000);\r\n return false;\r\n }\r\n\r\n if (sType !== \"FINE-DINE\") {\r\n // Existing logged mode\r\n if (exloggedout === true) {\r\n setTimeout(() => {\r\n this.props.history.push('/login' + urlPattern);\r\n this.setState({ loading: false });\r\n }, 2500);\r\n return false;\r\n }\r\n\r\n if (mobileNo === \"0000000000\") {\r\n setTimeout(() => {\r\n this.props.history.push('/login' + urlPattern);\r\n this.setState({ loading: false });\r\n }, 2500);\r\n return false;\r\n }\r\n\r\n if (mobileNo === \"\" || mobileNo === null || mobileNo === undefined) {\r\n setTimeout(() => {\r\n this.props.history.push('/login' + urlPattern);\r\n this.setState({ loading: false });\r\n }, 2500);\r\n return false;\r\n }\r\n else {\r\n\r\n if (token === undefined || token === \"\" || token === null) {\r\n setTimeout(() => {\r\n this.props.history.push('/login' + urlPattern);\r\n this.setState({ loading: false });\r\n }, 2500);\r\n return false;\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/home' + urlPattern);\r\n }, 2000);\r\n }\r\n }\r\n return false;\r\n } // End Not Fine Dine\r\n\r\n // Group Order - on 12-10-2020\r\n let postObjGuest = {\r\n OutletId: propId + outCode,\r\n TableNumber: tblNo\r\n };\r\n\r\n // console.log('jk');\r\n\r\n fetch(Config.basePOSUrl + 'GetGuestTableStatus' + uParam, {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObjGuest)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n if (response.errorCode === 0) {\r\n if (!response.response.guestTableStatus.isCheckedIn) {\r\n // Existing logged mode\r\n if (exloggedout === true) {\r\n setTimeout(() => {\r\n this.props.history.push('/login' + urlPattern);\r\n this.setState({ loading: false });\r\n }, 2500);\r\n return false;\r\n }\r\n if (mobileNo === \"0000000000\") {\r\n setTimeout(() => {\r\n this.props.history.push('/login' + urlPattern);\r\n this.setState({ loading: false });\r\n }, 2500);\r\n return false;\r\n }\r\n\r\n if (mobileNo === \"\" || mobileNo === null || mobileNo === undefined) {\r\n setTimeout(() => {\r\n this.props.history.push('/login' + urlPattern);\r\n this.setState({ loading: false });\r\n }, 2500);\r\n return false;\r\n }\r\n else {\r\n\r\n if (token === undefined || token === \"\" || token === null) {\r\n setTimeout(() => {\r\n this.props.history.push('/login' + urlPattern);\r\n this.setState({ loading: false });\r\n }, 2500);\r\n return false;\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/login' + urlPattern); // /home\r\n }, 2000);\r\n }\r\n }\r\n\r\n } // End checked in false\r\n else {\r\n sessionStorage.setItem('user-token', token);\r\n sessionStorage.setItem('main-guest-mask-no', response.response.guestTableStatus.maskMobileNo);\r\n sessionStorage.setItem('main-guest-no', response.response.guestTableStatus.mainGuestMobileNo);\r\n sessionStorage.setItem('ex-main-guest-no', response.response.guestTableStatus.mainGuestMobileNo);\r\n\r\n this.setState({ loading: true });\r\n\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/jointable');\r\n // }, 2000);\r\n\r\n setTimeout(() => {\r\n this.props.history.push('/login' + urlPattern);\r\n this.setState({ loading: false });\r\n }, 2500);\r\n\r\n return false;\r\n }\r\n\r\n }\r\n else {\r\n\r\n sessionStorage.removeItem(\"user-token\");\r\n sessionStorage.removeItem(\"user-mobileno\");\r\n // console.log(response.message);\r\n this.showMessage(response.message, \"danger\");\r\n\r\n }\r\n })\r\n .catch(err => {\r\n sessionStorage.removeItem(\"user-token\");\r\n sessionStorage.removeItem(\"user-mobileno\");\r\n this.showMessage('Table Status - Failed to fetch - ' + err, \"danger\");\r\n console.log('Table Status - Failed to fetch - ' + err);\r\n });\r\n\r\n } // End Contion CL/Digital\r\n else { // App not available\r\n setTimeout(() => {\r\n this.props.history.push('/error404' + urlPattern);\r\n this.setState({ loading: false });\r\n }, 2500);\r\n }\r\n\r\n // setTimeout(() => {\r\n // this.props.history.push('/emhome');\r\n // }, 2000);\r\n\r\n }\r\n else {\r\n sessionStorage.removeItem(\"user-token\");\r\n sessionStorage.removeItem(\"user-mobileno\");\r\n this.showMessage(response.message, \"danger\");\r\n console.log(response.message);\r\n }\r\n })\r\n .catch(err => {\r\n sessionStorage.removeItem(\"user-token\");\r\n sessionStorage.removeItem(\"user-mobileno\");\r\n this.showMessage('Outlet Details - Failed to fetch - ' + err, \"danger\");\r\n console.log('Outlet Details - Failed to fetch - ' + err);\r\n });\r\n }\r\n else {\r\n // cookie.remove('token');\r\n // cookie.remove('user-mobileNo');\r\n sessionStorage.removeItem(\"user-token\");\r\n sessionStorage.removeItem(\"user-mobileno\");\r\n this.showMessage(response.message, \"danger\");\r\n console.log(response.message);\r\n }\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.showMessage(\"An error occured\", \"danger\");\r\n });\r\n // let bDigital = this.getDigitalMenu(orgId, propId, outCode, sType);\r\n\r\n\r\n }\r\n\r\n handleUpdateContactDetail(contactNo) {\r\n let posturlObj = {\r\n organizationId: parseInt(orgId),\r\n propertyId: propId,\r\n outletCode: outCode,\r\n ServiceMode: sType,\r\n ContactNo: contactNo,\r\n StatsId: parseInt(statsid),\r\n numofMenuAccess: 1,\r\n username: Config.linkUserName,\r\n password: Config.linkPassword\r\n }\r\n // Update Contact Detail\r\n fetch(Config.baseAPIUrl + 'ClickURLDetail', {\r\n method: 'POST',\r\n headers: {\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(posturlObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n //console.log(response);\r\n this.redirectToHome();\r\n\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.redirectToHome();\r\n //this.showMessage(\"CMS - Failed to fetch\", \"danger\");\r\n });\r\n }\r\n\r\n redirectToHome() {\r\n sessionStorage.setItem('user-table-verified', true);\r\n sessionStorage.removeItem('otpReferenceId');\r\n sessionStorage.setItem('user-loggedin', true);\r\n\r\n sessionStorage.setItem('user-mobileno', appContactNo);\r\n sessionStorage.setItem('main-guest-no', appContactNo);\r\n this.getGuestDetails();\r\n }\r\n\r\n getGuestDetails() {\r\n\r\n let mobileNumber = sessionStorage.getItem('user-mobileno');\r\n fetch(Config.baseGuestUrl + 'GetGuestDetails?GuestMobileNo=' + mobileNumber, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n //console.log(response);\r\n if (response.errorCode === 0) {\r\n sessionStorage.setItem('user-GuestDetails', JSON.stringify(response.response.guestDetails));\r\n let selectedAddress = {\r\n addressId: response.response.guestDetails.guestAddress.addressId,\r\n addressLine1: response.response.guestDetails.guestAddress.addressLine1,\r\n addressLine2: response.response.guestDetails.guestAddress.addressLine2,\r\n addressLine3: response.response.guestDetails.guestAddress.addressLine3,\r\n addressType: response.response.guestDetails.guestAddress.addressType,\r\n addressTypeId: 1,//response.response.guestDetails.addressTypeId,\r\n area: response.response.guestDetails.guestAddress.area,\r\n city: response.response.guestDetails.guestAddress.city,\r\n landmark: response.response.guestDetails.guestAddress.landmark,\r\n zipCode: response.response.guestDetails.guestAddress.zipCode\r\n }\r\n sessionStorage.setItem('user-CurrentAddress', JSON.stringify(selectedAddress));\r\n }\r\n else {\r\n this.showMessage(response.message, \"danger\");\r\n sessionStorage.removeItem('user-GuestDetails');\r\n }\r\n\r\n // this.setState({ loading: true });\r\n // Redirect to page \r\n\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/home');\r\n // }, 2000);\r\n // return false;\r\n\r\n })\r\n .catch(err => {\r\n this.showMessage('Guest Details - Failed to fetch - ' + err, \"danger\");\r\n });\r\n }\r\n\r\n handleCheckJoinTable() {\r\n confirmAlert({\r\n customUI: ({ onClose }) => {\r\n return (\r\n
\r\n \"lucid-contactless-app-user-table-service\"\r\n

Join Table

\r\n
Welcome to {sessionStorage.getItem(\"user-outletname\")}
\r\n

Table No 103 is occupied. Do you want to join the table?

\r\n \r\n {\r\n // this.handleClickDelete();\r\n onClose();\r\n }}\r\n >\r\n Yes\r\n \r\n
\r\n );\r\n }\r\n });\r\n }\r\n\r\n getDigitalMenu(orgId, propId, outCode, sType) {\r\n let bDigital = false;\r\n // // Get Token\r\n let urlParam = '?OrganizationId=' + orgId + '&PropertyId=' + propId + '&TokenKey=' + Config.tokenKey;\r\n // console.log(urlParam);\r\n fetch(Config.basePOSUrl + 'GetGuestAppToken' + urlParam, {\r\n method: 'GET',\r\n headers: {\r\n 'content-type': 'application/json'\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // let cookie = new Cookies();\r\n if (response.errorCode === 0) {\r\n token = response.response.token;\r\n\r\n // get Outlet Details\r\n let uParam = '?OutletId=' + propId + outCode + '&ServiceType=' + sType;\r\n\r\n fetch(Config.basePOSUrl + 'GetOutletDetails' + uParam, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n //console.log(response);\r\n if (response.errorCode === 0) {\r\n\r\n let outletDetails = response.response.outletDetails;\r\n\r\n if (outletDetails.enableGuestAppOrders === false && outletDetails.enableDigitalMenu === true) {\r\n sessionStorage.setItem('user-token', token);\r\n sessionStorage.setItem('user-table-verified', false);\r\n sessionStorage.setItem('user-digitalMenu', true);\r\n sessionStorage.setItem(\"user-outletDetails\", JSON.stringify(response.response.outletDetails));\r\n sessionStorage.setItem('user-mobileno', \"0000000000\");\r\n bDigital = true;\r\n return bDigital;\r\n\r\n }\r\n else {\r\n sessionStorage.setItem('user-digitalMenu', false);\r\n }\r\n\r\n // setTimeout(() => {\r\n // this.props.history.push('/emhome');\r\n // }, 2000);\r\n\r\n }\r\n else {\r\n sessionStorage.removeItem(\"user-token\");\r\n sessionStorage.removeItem(\"user-mobileno\");\r\n this.showMessage(response.message, \"danger\");\r\n }\r\n })\r\n .catch(err => {\r\n sessionStorage.removeItem(\"user-token\");\r\n sessionStorage.removeItem(\"user-mobileno\");\r\n this.showMessage('Outlet Details - Failed to fetch - ' + err, \"danger\");\r\n });\r\n }\r\n else {\r\n // cookie.remove('token');\r\n // cookie.remove('user-mobileNo');\r\n sessionStorage.removeItem(\"user-token\");\r\n sessionStorage.removeItem(\"user-mobileno\");\r\n this.showMessage(response.message, \"danger\");\r\n }\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.showMessage(\"An error occured\", \"danger\");\r\n });\r\n\r\n return bDigital;\r\n\r\n }\r\n\r\n getUpdateOutletDetails() {\r\n // get Outlet Details\r\n let uParam = '?OutletId=' + propId + outCode + '&ServiceType=' + sType;\r\n\r\n fetch(Config.basePOSUrl + 'GetOutletDetails' + uParam, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.errorCode === 0) {\r\n\r\n let outletDetails = response.response.outletDetails;\r\n // console.log(outletDetails);\r\n sessionStorage.setItem(\"user-outletDetails\", JSON.stringify(response.response.outletDetails));\r\n sessionStorage.setItem('user-propertyname', outletDetails.propertyName);\r\n sessionStorage.setItem('user-outletname', outletDetails.outletName);\r\n }\r\n })\r\n .catch(err => {\r\n sessionStorage.removeItem(\"user-token\");\r\n sessionStorage.removeItem(\"user-mobileno\");\r\n this.showMessage('Outlet Details - Failed to fetch - ' + err, \"danger\");\r\n console.log('Outlet Details - Failed to fetch - ' + err);\r\n });\r\n }\r\n // Added by vijay on 30-10-2023 Jira id - 1690\r\n getLaunch(response) {\r\n // Added by vijay on 30-10-2023 Jira id - 1690 -start\r\n const longUrlInput = response.longUrlInput;\r\n\r\n orgId = longUrlInput.organizationId;\r\n orgName = longUrlInput.organizationName;\r\n propId = longUrlInput.propertyId;\r\n propName = longUrlInput.propertyName;\r\n outCode = longUrlInput.outletCode;\r\n outName = longUrlInput.outletName;\r\n tblNo = longUrlInput.seriviceNo;\r\n sType = longUrlInput.serviceType;\r\n statsid = longUrlInput.statsid;\r\n urlRemarks = longUrlInput.remarks;\r\n mobileApp = longUrlInput.mobileApp;\r\n appContactNo = longUrlInput.contactNo;\r\n appCountryCode = longUrlInput.contactCountryCode; // Added by vijay on 30-10-2023 Jira id - 1690 -End \r\n // Commended by vijay on 30-10-2023 \r\n // orgId = inputParam.orgid;\r\n // orgName = inputParam.orgname;\r\n // propId = inputParam.propid;\r\n // propName = inputParam.propname;\r\n // outCode = inputParam.outtcode;\r\n // outName = inputParam.outtname;\r\n // tblNo = inputParam.tblno;\r\n // sType = inputParam.stype;\r\n // statsid = inputParam.statsid;\r\n // urlRemarks = inputParam.remarks;\r\n // mobileApp = inputParam.app;\r\n // appContactNo = inputParam.mno;\r\n // appCountryCode = inputParam.mccode;\r\n //console.log(inputParam);\r\n // console.log(orgId);\r\n // console.log(propId);\r\n // console.log(outCode);\r\n // console.log(tblNo);\r\n //console.log(mobileApp);\r\n\r\n if (orgId === undefined || orgId === \"\" || orgId === null) {\r\n // if (loggedInOrg === undefined || loggedInOrg === \"\" || loggedInOrg === null) {\r\n // orgName = '';\r\n // this.props.history.push('/qrcodeerror');\r\n // return false;\r\n // }\r\n // else {\r\n // orgId = loggedInOrg;\r\n // orgName = loggedOrgName;\r\n // }\r\n this.props.history.push('/qrcodeerror' + urlPattern);\r\n return false;\r\n }\r\n if (propId === undefined || propId === \"\" || propId === null) {\r\n // if (loggedInPropertyId === undefined || loggedInPropertyId === \"\" || loggedInPropertyId === null) {\r\n // propName = '';\r\n // this.props.history.push('/qrcodeerror');\r\n // return false;\r\n // }\r\n // else {\r\n // propId = loggedInPropertyId;\r\n // propName = loggedPropertyName;\r\n // }\r\n this.props.history.push('/qrcodeerror' + urlPattern);\r\n return false;\r\n }\r\n if (outCode === undefined || outCode === \"\" || outCode === null) {\r\n // if (loggedInOutletcode === undefined || loggedInOutletcode === \"\" || loggedInOutletcode === null) {\r\n // this.props.history.push('/qrcodeerror');\r\n // return false;\r\n // }\r\n // else {\r\n // outCode = loggedInOutletcode;\r\n // outName = loggedOutletName;\r\n // }\r\n this.props.history.push('/qrcodeerror' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (tblNo === undefined || tblNo === \"\" || tblNo === null) {\r\n // if (loggedInTableno === undefined || loggedInTableno === \"\" || loggedInTableno === null) {\r\n // this.props.history.push('/qrcodeerror');\r\n // return false;\r\n // }\r\n // else {\r\n // tblNo = loggedInTableno;\r\n // }\r\n this.props.history.push('/qrcodeerror' + urlPattern);\r\n return false;\r\n }\r\n if (sType === undefined || sType === \"\" || sType === null) {\r\n // if (loggedInServiceType === undefined || loggedInServiceType === \"\" || loggedInServiceType === null) {\r\n // this.props.history.push('/qrcodeerror');\r\n // return false;\r\n // }\r\n // else {\r\n // sType = loggedInServiceType;\r\n // }\r\n this.props.history.push('/qrcodeerror' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (statsid === undefined || statsid === \"\" || statsid === null) {\r\n // if (loggedInPropertyId === undefined || loggedInPropertyId === \"\" || loggedInPropertyId === null) {\r\n // statsid = \"0\";\r\n // }\r\n // else {\r\n // statsid = loggedStatsid;\r\n // }\r\n statsid = 0;\r\n }\r\n\r\n if (urlRemarks === undefined || urlRemarks === \"\" || urlRemarks === null) {\r\n // if (loggedurlRemarks === undefined || loggedurlRemarks === \"\" || loggedurlRemarks === null) {\r\n // urlRemarks = \"\";\r\n // }\r\n // else {\r\n // urlRemarks = loggedurlRemarks;\r\n // }\r\n urlRemarks = '';\r\n }\r\n\r\n if (mobileApp === undefined || mobileApp === \"\" || mobileApp === null) {\r\n mobileApp = false;\r\n }\r\n else {\r\n mobileApp = mobileApp === \"true\" ? true : false;\r\n }\r\n\r\n\r\n // check the existing log history\r\n\r\n\r\n // if (orgId !== loggedInOrg) {\r\n // exloggedout = true;\r\n // }\r\n\r\n // if (propId !== loggedInPropertyId) {\r\n // exloggedout = true;\r\n // }\r\n\r\n // if (outCode !== loggedInOutletcode) {\r\n // exloggedout = true;\r\n // }\r\n\r\n // if (tblNo !== loggedInTableno) {\r\n // exloggedout = true;\r\n // }\r\n\r\n // if (sType !== loggedInServiceType) {\r\n // exloggedout = true;\r\n // }\r\n\r\n\r\n\r\n sessionStorage.setItem('user-orgnationid', orgId);\r\n sessionStorage.setItem('user-propertyid', propId);\r\n sessionStorage.setItem('user-outletcode', outCode);\r\n sessionStorage.setItem('user-tableno', tblNo);\r\n sessionStorage.setItem('user-servicetype', sType);\r\n sessionStorage.setItem('user-organizationname', orgName);\r\n sessionStorage.setItem('user-propertyname', propName);\r\n sessionStorage.setItem('user-outletname', outName);\r\n sessionStorage.setItem('user-statsid', statsid);\r\n sessionStorage.setItem('url-remarks', urlRemarks === null ? '' : urlRemarks === undefined ? '' : urlRemarks);\r\n sessionStorage.setItem('mobile-app', mobileApp === null ? false : mobileApp === undefined ? false : mobileApp);\r\n sessionStorage.setItem('app-ContactNo', appContactNo === null ? '0000000000' : appContactNo === undefined ? '0000000000' : appContactNo);\r\n sessionStorage.setItem('app-CountryCode', appCountryCode === null ? '91' : appCountryCode === undefined ? '91' : appCountryCode);\r\n sessionStorage.setItem('user-session-id', uuid());\r\n // this.setState({orgId: orgId});\r\n // this.setState({propertyId: propId});\r\n // this.setState({outletCode: outCode});\r\n // this.setState({tableNo: tblNo});\r\n // this.setState({serviceType: sType});\r\n\r\n // digital Menu\r\n\r\n\r\n sessionStorage.removeItem('user-digitalMenu');\r\n sessionStorage.removeItem(\"user-outletDetails\");\r\n sessionStorage.removeItem('main-guest-mask-no');\r\n sessionStorage.removeItem('main-guest-no');\r\n sessionStorage.removeItem('ex-main-guest-no');\r\n sessionStorage.removeItem('login-page-session');\r\n sessionStorage.removeItem('user-loggedin');\r\n if (mobileNo === \"\" || mobileNo === null || mobileNo === undefined || mobileNo === \"0000000000\") {\r\n sessionStorage.removeItem('guest-name');\r\n }\r\n\r\n sessionStorage.removeItem(\"cartList\");\r\n sessionStorage.removeItem(\"taxCartList\");\r\n sessionStorage.removeItem(\"modifierCartList\");\r\n sessionStorage.removeItem(\"chargeCartList\");\r\n sessionStorage.removeItem(\"paymentInitiatedId\");\r\n sessionStorage.removeItem(\"paymentStatus\");\r\n sessionStorage.removeItem(\"vendorId\");\r\n sessionStorage.removeItem(\"vendorName\");\r\n sessionStorage.removeItem(\"order-instruction\");\r\n\r\n sessionStorage.removeItem(\"getCharges\");\r\n sessionStorage.removeItem(\"getTaxes\");\r\n sessionStorage.removeItem(\"getMenuGroups\");\r\n sessionStorage.removeItem(\"getModifierGroups\");\r\n sessionStorage.removeItem(\"getmenuItems\");\r\n sessionStorage.removeItem('otpReferenceId');\r\n sessionStorage.removeItem('user-outletDetails');\r\n sessionStorage.removeItem('user-table-verified');\r\n sessionStorage.removeItem(\"ebillUrl\");\r\n sessionStorage.removeItem(\"isPay\");\r\n sessionStorage.removeItem(\"posBillId\");\r\n sessionStorage.removeItem(\"on-click-mode\");\r\n sessionStorage.removeItem('user-qr-level');\r\n sessionStorage.removeItem('user-GuestDetails');\r\n sessionStorage.removeItem('order-track-status');\r\n sessionStorage.removeItem('pageCMSSettings');\r\n sessionStorage.removeItem('menuFetchDateTime');\r\n\r\n sessionStorage.removeItem('group-pin');\r\n sessionStorage.removeItem('dashboard-hide');\r\n\r\n // group pin added by dasprakash on 06-10-2023 jira-1490\r\n sessionStorage.removeItem('table-pins');\r\n\r\n // sessionStorage.removeItem('user-addressId');\r\n // sessionStorage.removeItem('user-CurrentAddress');\r\n // Property Level\r\n\r\n sessionStorage.removeItem('entered-mobile-no');\r\n sessionStorage.removeItem('entered-name');\r\n ///added by dasprakash on 07-11-2023 jira-1744\r\n sessionStorage.removeItem('user-access-mode');\r\n sessionStorage.removeItem('otp');\r\n sessionStorage.removeItem('verified-otp');\r\n sessionStorage.removeItem('selectedClassification');\r\n sessionStorage.removeItem('dashboard-hide');\r\n sessionStorage.removeItem('order-charge-Tax-Amount');\r\n sessionStorage.removeItem('getclf');\r\n sessionStorage.removeItem('order-charge-Amount');\r\n sessionStorage.removeItem('app-ContactNo');\r\n sessionStorage.removeItem('order-charge-List');\r\n\r\n\r\n // get CMSDetails\r\n\r\n this.getCMSDetails();\r\n\r\n\r\n // this.setState({ loading: true });\r\n // setTimeout(() => {\r\n // this.props.history.push('/login', {\r\n // orgId: this.state.orgId,\r\n // propertyId: this.state.propertyId,\r\n // outletCode: this.state.outletCode,\r\n // tableNo: this.state.tableNo,\r\n // serviceType: this.state.serviceType,\r\n // });\r\n // this.setState({ loading: false });\r\n // }, 2500);\r\n }\r\n showMessage(msg, type) {\r\n window.scrollTo(0, 0);\r\n this.setState({ msgShow: true });\r\n this.setState({ msgType: type });\r\n this.setState({ alertMessage: msg });\r\n this.setState({ loading: false });\r\n setTimeout(() => {\r\n this.setState({ msgShow: false });\r\n }, 2000);\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n {/* {loading && } */}\r\n {this.state.msgShow && }\r\n
\r\n
\r\n
\r\n {/* {\r\n this.state.pagePreview !== \"\" &&\r\n
\r\n\r\n
\r\n } */}\r\n\r\n\r\n {this.state.showComponent && (\r\n // Render the component only if showComponent is true\r\n this.state.pagePreview !== \"\" ?\r\n
\r\n {console.log(\"Page Preview is not empty:\", this.state.pagePreview)}\r\n
\r\n :\r\n // (outCode !== \"NONE\" && sessionStorage.getItem('user-outletDetails') !== null && sessionStorage.getItem('user-outletDetails').outletImageUrl ?\r\n (outCode !== \"NONE\" && outletDetails !== null && outletDetails.outletImageUrl ?\r\n
\r\n {/* {console.log(\"Outlet Image URL:\", outletDetails.outletImageUrl)} */}\r\n \"\"\r\n
\r\n :\r\n // Replace null with rendering of outletDetails.propertyImageUrl if outletDetails.outletImageUrl is false\r\n outletDetails.propertyImageUrl ? (\r\n
\r\n \"\"\r\n
\r\n ) : null\r\n )\r\n )}\r\n\r\n {/* \"\" */}\r\n {/* \"lucid-contactless-food-ordering\" */}\r\n
\r\n {/* \"lucid-contactless-food-ordering\" */}\r\n
Powered By LUCID\r\n {/*
\r\n L\r\n U\r\n C\r\n I\r\n D\r\n \r\n\r\n
*/}\r\n\r\n
\r\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 SplashScreen;","import React, { Component } from 'react';\r\nimport './login.scss';\r\nimport ErrorAlert from '../../components/alertmessages';\r\nimport LoadingAnimation from '../../components/loadinganimation/login';\r\nimport Config from '../../data/SiteConfig';\r\nimport { isMobile } from 'react-device-detect';\r\nimport sHelpers from '../../modules/helpers/statichelpers';\r\n//import Cookies from 'universal-cookie';\r\nimport Slider from \"react-slick\";\r\nimport Header from '../../components/Header';\r\nconst homeslidersettings = {\r\n autoplay: true,\r\n dots: true,\r\n infinite: true,\r\n arrows: false,\r\n speed: 300,\r\n slidesToShow: 1,\r\n adaptiveHeight: false\r\n};\r\n\r\n\r\nlet tableNo = '';\r\nlet serviceType = '';\r\nlet orgnationId = '';\r\nlet propertyId = '';\r\nlet outletCode = '';\r\nlet token = '';\r\nlet mobileNo = ';'\r\nlet statsId = '';\r\nlet groupSession = false;\r\nlet mainGuestMaskMobileNo = '';\r\nlet mainGuestMobileNo = '';\r\nlet pageSession = '';\r\nlet outletDetails = '';\r\nlet urlPattern = '';\r\n//const [counter, setCounter] = React.useState(60);\r\nexport default class LoginSignin extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n loading: false,\r\n mobileNo: '',\r\n orgId: 0,\r\n propertyId: '',\r\n outletCode: '',\r\n tableNo: '',\r\n serviceType: '',\r\n otp: '',\r\n alertMessage: '',\r\n msgType: '',\r\n msgShow: false,\r\n groupPin: '',\r\n showGroupPin: false,\r\n inputPlaceholder: '',\r\n showOTP: false,\r\n showTablePIN: false,\r\n\r\n // group pin added by dasprakash on 09-10-2023 jira-1490\r\n otpVerification: false,\r\n pinverified: false,\r\n\r\n tablePin: '',\r\n sliderImages: [\r\n {\r\n altName: \"\",\r\n sortOrder: 0,\r\n bannerType: 0,\r\n height: 0,\r\n imageName: \"\",\r\n imagePathName: \"\",\r\n primaryImageType: \"\",\r\n secondaryImageType: \"\",\r\n bannerName: \"Slide 1\",\r\n primaryImageUrl: \"/img/slider/login-verification-df-lucid.jpg\",\r\n secondaryImageUrl: \"\",\r\n status: 0,\r\n width: 0\r\n }\r\n ],\r\n loggedIn: false,\r\n }\r\n }\r\n componentWillMount() {\r\n console.log(sessionStorage.getItem('verified-otp'))\r\n this.setState({ otpVerification: sessionStorage.getItem('verified-otp') });\r\n console.log(this.state.otpVerification)\r\n if (Config.IsMobileAccess) {\r\n if (!isMobile) {\r\n this.props.history.push('/deviceerror' + urlPattern);\r\n return false;\r\n }\r\n }\r\n // sessionStorage.removeItem('user-mobileno');\r\n token = sessionStorage.getItem('user-token');\r\n tableNo = sessionStorage.getItem('user-tableno');\r\n serviceType = sessionStorage.getItem('user-servicetype');\r\n orgnationId = sessionStorage.getItem('user-orgnationid');\r\n propertyId = sessionStorage.getItem('user-propertyid');\r\n outletCode = sessionStorage.getItem('user-outletcode');\r\n statsId = sessionStorage.getItem('user-statsid');\r\n groupSession = sessionStorage.getItem('group-session') == null ? false : sessionStorage.getItem('group-session');\r\n mainGuestMobileNo = sessionStorage.getItem('main-guest-no') == null ? '' : sessionStorage.getItem('main-guest-no');\r\n mainGuestMaskMobileNo = sessionStorage.getItem('main-guest-mask-no') == null ? '' : sessionStorage.getItem('main-guest-mask-no');\r\n pageSession = sessionStorage.getItem('login-page-session') == null ? 1 : parseInt(sessionStorage.getItem('login-page-session'));\r\n outletDetails = sessionStorage.getItem('user-outletDetails') != null ? JSON.parse(sessionStorage.getItem(\"user-outletDetails\")) : '';\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n\r\n const sessionDt = sessionStorage.getItem(\"u-l-v-url-dt\");\r\n if (!sessionDt) {\r\n this.props.history.push('/sessionerror' + urlPattern);\r\n return false;\r\n }\r\n \r\n if (!urlPattern) { \r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n \r\n if (tableNo === undefined || tableNo === \"\" || tableNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n // Added by vijay on 01-02-2024 Jira id - 2078 -Testing points Unwanted API calls\r\n if (token === undefined || token === \"\" || token === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (serviceType === undefined || serviceType === \"\" || serviceType === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (orgnationId === undefined || orgnationId === \"\" || orgnationId === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (propertyId === undefined || propertyId === \"\" || propertyId === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (outletCode === undefined || outletCode === \"\" || outletCode === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (statsId === undefined || statsId === \"\" || statsId === null) {\r\n statsId = \"0\"\r\n }\r\n\r\n\r\n if (this.props.location.state !== undefined) {\r\n if (this.props.location.state.mobileNo === undefined || this.props.location.state.mobileNo === null || this.props.location.state.mobileNo === '') {\r\n this.setState({ loading: true });\r\n this.showMessage('Invalid Mobile Number', \"danger\");\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/login' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n this.setState({\r\n mobileNo: this.props.location.state.mobileNo\r\n })\r\n mobileNo = this.props.location.state.mobileNo;\r\n\r\n if (this.props.location.state.validateOTP) { this.setState({ inputPlaceholder: \"Enter OTP\" }); this.setState({ showOTP: true }); }\r\n if (this.props.location.state.validatePIN) { this.setState({ inputPlaceholder: \"Enter PIN\" }); this.setState({ showTablePIN: true }); }\r\n if (this.props.location.state.validateOTP && this.props.location.state.validatePIN) this.setState({ inputPlaceholder: \"Enter PIN\" });\r\n //console.log(\"this.props.location.state.validateOTP\")\r\n //console.log(this.props.location.state.validateOTP)\r\n //console.log(\"this.props.location.state.validatePIN\")\r\n //console.log(this.props.location.state.validatePIN)\r\n // Validate Group Pin Access\r\n // group pin commented by dasprakash on 27-09-2023 jira-1493\r\n // if (groupSession === \"true\") {\r\n // if (mainGuestMobileNo !== mobileNo) {\r\n // this.setState({\r\n // showGroupPin: false\r\n // });\r\n // }\r\n // }\r\n // redirectToHome\r\n // group pin added by dasprakash on 27-09-2023 jira-1493\r\n // if (!this.props.location.state.validateOTP && !this.props.location.state.validatePIN) {\r\n // this.redirectToHome()\r\n // return false;\r\n // }\r\n\r\n\r\n\r\n\r\n\r\n // if (groupSession === \"false\") {\r\n // this.setState({ loading: true });\r\n // this.showMessage('Invalid Group Session', \"danger\");\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/login');\r\n // }, 2000);\r\n // } \r\n\r\n\r\n }\r\n }\r\n\r\n // //console.log(groupSession);\r\n\r\n // //console.log(this.props.location.state.validatePIN)\r\n // //console.log(this.state.showGroupPin);\r\n // Added by vijay on 12-01-2023 -Jira id -2075\r\n if (outletDetails === undefined || outletDetails === \"\" || outletDetails === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n}\r\n\r\n\r\n\r\n this.getCMSDetails(); //Get CMS Page\r\n\r\n }\r\n\r\n\r\n handlechange = event => {\r\n const value = event.target.value;\r\n this.setState({ otp: value });\r\n // //console.log(value);\r\n };\r\n\r\n // group pin added by dasprakash on 27-09-2023 jira-1493\r\n handleTablePin = event => {\r\n const value = event.target.value;\r\n this.setState({ tablePin: value });\r\n // //console.log(value);\r\n };\r\n\r\n handleGroupPinChange = event => {\r\n const value = event.target.value;\r\n this.setState({ groupPin: value });\r\n };\r\n\r\n // group pin added by dasprakash on 27-09-2023 jira-1493\r\n handleSessionVerified() {\r\n sessionStorage.setItem('user-table-verified', true);\r\n sessionStorage.removeItem('otpReferenceId');\r\n sessionStorage.setItem('user-loggedin', true);\r\n //sessionStorage.setItem('main-guest-no', mainGuestMobileNo);\r\n sessionStorage.setItem('main-guest-no', mainGuestMobileNo === '0000000000' ? mobileNo : mainGuestMobileNo);\r\n sessionStorage.setItem('main-guest-no', mainGuestMobileNo === '' ? mobileNo : mainGuestMobileNo);\r\n if (groupSession === \"false\") {\r\n sessionStorage.setItem('main-guest-no', this.state.mobileNo); // https://lucid.atlassian.net/browse/LC-1185\r\n }\r\n // set Logged in Date \r\n let loggedIn = sHelpers.getFormattedDate(new Date());\r\n sessionStorage.setItem('user-loggedin-date', loggedIn);\r\n //console.log(\"pageSession\")\r\n //console.log(pageSession)\r\n // Redirect to Page\r\n if (pageSession === Config.pageSession.Cart) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/cart' + urlPattern, { onClick: true });\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n else if (pageSession === Config.pageSession.PayBill) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/mybills' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n else if (pageSession === Config.pageSession.MyOrders) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/myorders' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n else if (pageSession === Config.pageSession.ChooseAddress) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/cart' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/home' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n\r\n }\r\n // \r\n\r\n redirectToHome() {\r\n // Commended by vijay on 02-02-2024 Jira id - 2078 -Testing points Unwanted API calls[GetGuestAppToken]\r\n // Get Token\r\n // let urlParam = '?OrganizationId=' + orgnationId + '&PropertyId=' + propertyId + '&TokenKey=' + Config.tokenKey;\r\n // //console.log(urlParam);\r\n // fetch(Config.basePOSUrl + 'GetGuestAppToken' + urlParam, {\r\n // method: 'GET',\r\n // headers: {\r\n // 'content-type': 'application/json'\r\n // }\r\n // })\r\n // .then(res => res.json())\r\n // .then(response => {\r\n //console.log(\"response1\");\r\n //console.log(response);\r\n\r\n // let cookie = new Cookies();\r\n // if (response.errorCode === 0) {\r\n // // //console.log(\"res \" + JSON.parse(response)); \r\n // token = response.response.token;\r\n // // //console.log(\"token: \" + response.response.token);\r\n // // get Outlet Details\r\n // let uParam = '?OutletId=' + propertyId + outletCode + '&ServiceType=' + serviceType;\r\n\r\n // Commended by vijay on 02-02-2024 Jira id - 2075 -Testing points Unwanted API calls[GetOutletDetails]\r\n \r\n // fetch(Config.basePOSUrl + 'GetOutletDetails' + uParam, {\r\n // method: 'GET',\r\n // headers: {\r\n // Authorization: \"Bearer \" + token,\r\n // 'content-type': 'application/json'\r\n // }\r\n // })\r\n // .then(res => res.json())\r\n // .then(response => {\r\n //console.log(\"response2loginveri\");\r\n //console.log(response);\r\n // if (response.errorCode === 0) {\r\n // sessionStorage.setItem(\"user-outletDetails\", JSON.stringify(response.response.outletDetails));\r\n sessionStorage.setItem('user-token', token);\r\n sessionStorage.setItem('user-mobileno', mobileNo);\r\n sessionStorage.setItem('main-guest-mask-no', mainGuestMaskMobileNo);\r\n sessionStorage.setItem('main-guest-no', mainGuestMobileNo === '' ? mobileNo : mainGuestMobileNo);\r\n //console.log(\"first time check\");\r\n //console.log(sessionStorage.getItem('main-guest-no'));\r\n\r\n // Temperary hard code for table pin switch value as false\r\n // response.response.outletDetails.checkInWithTablePin = false;\r\n outletDetails.checkInWithTablePin = false;\r\n\r\n // digital Menu\r\n if (outletDetails.enableGuestAppOrders === false && outletDetails.enableDigitalMenu === true) {\r\n // Added by vijay on 02-02-2024 -Jira id -2078 -Due to V2 like same lines added\r\n sessionStorage.setItem(\"user-outletDetails\", JSON.stringify(outletDetails));\r\n sessionStorage.setItem('user-token', token); \r\n sessionStorage.setItem('user-mobileno', mobileNo);\r\n sessionStorage.setItem('main-guest-mask-no', mainGuestMaskMobileNo);\r\n sessionStorage.setItem('main-guest-no', mainGuestMobileNo === '' ? mobileNo : mainGuestMobileNo); \r\n \r\n \r\n sessionStorage.setItem('user-table-verified', false);\r\n sessionStorage.setItem('user-digitalMenu', true);\r\n sessionStorage.setItem('user-loggedin', true);\r\n sessionStorage.setItem('main-guest-no', this.state.mobileNo);\r\n\r\n setTimeout(() => {\r\n this.props.history.push('/home' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n if (outletDetails.checkInWithTablePin) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/tableverification' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n // if (serviceType === \"FINE-DINE\") { // Table Check In\r\n // // group pin commended by dasprakash on 29-09-2023 jira-1493\r\n // sessionStorage.setItem('group-pin', this.state.showGroupPin ? this.state.groupPin : '');\r\n // //console.log(\"this.state.groupPin\");\r\n // //console.log(this.state.groupPin);\r\n // //console.log(this.props.location.state.validateOTP);\r\n // //console.log(this.props.location.state.validatePIN);\r\n\r\n // let postObj = {\r\n // OutletId: propertyId + outletCode,\r\n // GuestName: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n // MobileNo: this.state.mobileNo,\r\n // TableNumber: tableNo,\r\n // GroupCode: this.state.showGroupPin ? this.state.groupPin : ''\r\n // // GroupCode: this.props.location.state.validateOTP === false &&\r\n // // this.props.location.state.validatePIN === true ?\r\n // // this.state.otp :\r\n // // this.state.showGroupPin ? this.state.groupPin : ''\r\n\r\n // }\r\n // //console.log(\"postObj\")\r\n // //console.log(postObj)\r\n\r\n // fetch(Config.basePOSUrl + 'GuestCheckIn', {\r\n // method: 'POST',\r\n // headers: {\r\n // Authorization: \"Bearer \" + token,\r\n // 'content-type': 'application/json'\r\n // },\r\n // body: JSON.stringify(postObj)\r\n // })\r\n // .then(res => res.json())\r\n // .then(response => {\r\n // //console.log(\"response.errorCode\")\r\n // //console.log(response)\r\n // if (response.errorCode === 0) {\r\n // //console.log(\"code 0\")\r\n // // group pin added by dasprakash on 27-09-2023 jira-1493\r\n // this.handleSessionVerified();\r\n // // \r\n\r\n // // group pin commentewd by dasprakash on 27-09-2023 jira-1493\r\n // // sessionStorage.setItem('user-table-verified', true);\r\n // // sessionStorage.removeItem('otpReferenceId');\r\n // // sessionStorage.setItem('user-loggedin', true);\r\n // // //sessionStorage.setItem('main-guest-no', mainGuestMobileNo);\r\n // // sessionStorage.setItem('main-guest-no', mainGuestMobileNo === '0000000000' ? mobileNo : mainGuestMobileNo);\r\n // // sessionStorage.setItem('main-guest-no', mainGuestMobileNo === '' ? mobileNo : mainGuestMobileNo);\r\n // // if (groupSession === \"false\") {\r\n // // sessionStorage.setItem('main-guest-no', this.state.mobileNo); // https://lucid.atlassian.net/browse/LC-1185\r\n // // }\r\n // // // set Logged in Date \r\n // // let loggedIn = sHelpers.getFormattedDate(new Date());\r\n // // sessionStorage.setItem('user-loggedin-date', loggedIn);\r\n\r\n // // // Redirect to Page\r\n // // if (pageSession === Config.pageSession.Cart) {\r\n // // setTimeout(() => {\r\n // // this.setState({ loading: false });\r\n // // this.props.history.push('/cart', { onClick: true });\r\n // // }, 2000);\r\n // // return false;\r\n // // }\r\n // // else if (pageSession === Config.pageSession.PayBill) {\r\n // // setTimeout(() => {\r\n // // this.setState({ loading: false });\r\n // // this.props.history.push('/mybills');\r\n // // }, 2000);\r\n // // return false;\r\n // // }\r\n // // else if (pageSession === Config.pageSession.MyOrders) {\r\n // // setTimeout(() => {\r\n // // this.setState({ loading: false });\r\n // // this.props.history.push('/myorders');\r\n // // }, 2000);\r\n // // return false;\r\n // // }\r\n // // else if (pageSession === Config.pageSession.ChooseAddress) {\r\n // // setTimeout(() => {\r\n // // this.setState({ loading: false });\r\n // // this.props.history.push('/cart');\r\n // // }, 2000);\r\n // // return false;\r\n // // }\r\n // // else {\r\n // // setTimeout(() => {\r\n // // this.setState({ loading: false });\r\n // // this.props.history.push('/home');\r\n // // }, 2000);\r\n // // return false;\r\n // // }\r\n\r\n // }\r\n // else {\r\n // //console.log(\"code 1\")\r\n // //console.log(response.errorCode)\r\n // //console.log(response)\r\n // // sessionStorage.removeItem(\"user-token\");\r\n // // sessionStorage.removeItem(\"user-mobileno\");\r\n // this.showMessage(response.message, \"danger\");\r\n // // group pin added by dasprakash on 27-09-2023 jira-1493\r\n // // if (groupSession === 'true') {\r\n // // this.handleSessionVerified();\r\n // // return false;\r\n // // }\r\n // // \r\n\r\n\r\n // setTimeout(() => {\r\n // this.setState({ loading: true });\r\n // // Redirect to Page\r\n // if (pageSession === Config.pageSession.Cart) {\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/cart');\r\n // }, 2000);\r\n // return false;\r\n // }\r\n // else if (pageSession === Config.pageSession.PayBill) {\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/mybills');\r\n // }, 2000);\r\n // return false;\r\n // }\r\n // else if (pageSession === Config.pageSession.MyOrders) {\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/myorders');\r\n // }, 2000);\r\n // return false;\r\n // }\r\n // else {\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/home');\r\n // }, 2000);\r\n // return false;\r\n // }\r\n // }, 1000);\r\n // // this.setState({ loading: true });\r\n // // setTimeout(() => {\r\n // // this.setState({ loading: false });\r\n // // this.props.history.push('/qrcoderror');\r\n // // }, 3000);\r\n // return false;\r\n // }\r\n // })\r\n // .catch(err => {\r\n // // sessionStorage.removeItem(\"user-token\");\r\n // //sessionStorage.removeItem(\"user-mobileno\");\r\n // // //console.log(\"err\")\r\n // //console.log(err)\r\n // this.showMessage('Guest Check IN - Failed to fetch - ' + err, \"danger\");\r\n // });\r\n // } // End Service Type - Fine Dine\r\n\r\n sessionStorage.setItem('user-table-verified', true);\r\n sessionStorage.removeItem('otpReferenceId');\r\n sessionStorage.setItem('user-loggedin', true);\r\n // group pin commented by dasprakash on 05-10-2023 jira-1490\r\n // sessionStorage.setItem('main-guest-no', this.state.mobileNo);\r\n // group pin added by dasprakash on 05-10-2023 jira-1490\r\n sessionStorage.setItem('main-guest-no', mainGuestMobileNo === '' || mainGuestMobileNo === '0000000000' ? this.state.mobileNo : mainGuestMobileNo);\r\n sessionStorage.removeItem('verified-otp');\r\n\r\n //console.log(sessionStorage.getItem('main-guest-no'));\r\n\r\n // Redirect to Page\r\n if (pageSession === Config.pageSession.Cart) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/cart' + urlPattern, { onClick: true });\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n else if (pageSession === Config.pageSession.PayBill) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/mybills' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n else if (pageSession === Config.pageSession.MyOrders) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/myorders' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n else if (pageSession === Config.pageSession.ChooseAddress) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/cart' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/home' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n }\r\n\r\n \r\n // else {\r\n // // sessionStorage.removeItem(\"user-token\");\r\n // // sessionStorage.removeItem(\"user-mobileno\");\r\n\r\n // this.showMessage(response.message, \"danger\");\r\n // }\r\n // })\r\n // .catch(err => {\r\n // // sessionStorage.removeItem(\"user-token\");\r\n // // sessionStorage.removeItem(\"user-mobileno\");\r\n // this.showMessage('Outlet Details - Failed to fetch - ' + err, \"danger\");\r\n // });\r\n // }\r\n // Else condition Commended by vijay on 02-02-2024 Jira id - 2078 -Testing points Unwanted API calls[GetGuestAppToken]\r\n // else {\r\n // // cookie.remove('token');\r\n // // cookie.remove('user-mobileNo');\r\n // // sessionStorage.removeItem(\"user-token\");\r\n // // sessionStorage.removeItem(\"user-mobileno\");\r\n // this.showMessage(response.message, \"danger\");\r\n // }\r\n // })\r\n // .catch(err => {\r\n // ////console.log(err);\r\n // // sessionStorage.removeItem(\"user-token\");\r\n // // sessionStorage.removeItem(\"user-mobileno\");\r\n // this.showMessage(\"An error occured\", \"danger\");\r\n // });\r\n }\r\n\r\n\r\n\r\n // group pin added by dasprakash on 27-09-2023 jira-1493\r\n\r\n callClickURLDetail() {\r\n let notes = {\r\n guestname: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n modetype: outletDetails != null ? outletDetails.enableGuestAppOrders === true ? 1 : 0 : 0\r\n }\r\n let posturlObj = {\r\n organizationId: parseInt(orgnationId),\r\n propertyId: propertyId,\r\n outletCode: outletCode,\r\n ServiceMode: serviceType,\r\n ContactNo: this.state.mobileNo,\r\n StatsId: parseInt(statsId),\r\n username: Config.linkUserName,\r\n password: Config.linkPassword,\r\n notes: JSON.stringify(notes)\r\n }\r\n // Update Contact Detail\r\n\r\n fetch(Config.baseAPIUrl + 'ClickURLDetail', {\r\n method: 'POST',\r\n headers: {\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(posturlObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(\"response2xaxaxaxaxaxax\");\r\n //console.log(response);\r\n this.redirectToHome();\r\n\r\n })\r\n .catch(err => {\r\n // //console.log(err);\r\n this.redirectToHome();\r\n //this.showMessage(\"CMS - Failed to fetch\", \"danger\");\r\n });\r\n }\r\n // group pin added by dasprakash on 27-09-2023 jira-1493\r\n callValidateGuestLoginOTP() {\r\n // console.log(\"callValidateGuestLoginOTP method\");\r\n // group pin added by dasprakash on 09-10-2023 jira-1493\r\n if (sessionStorage.getItem('verified-otp') === \"true\" && serviceType === \"FINE-DINE\") {\r\n this.callGuestCheckIn()\r\n return false\r\n }\r\n //console.log(\"groupSession true\");\r\n let otprefId = sessionStorage.getItem(\"otpReferenceId\") === null ? '' : sessionStorage.getItem(\"otpReferenceId\");\r\n let postObj = {\r\n GuestName: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n MobileNoCountryCode: \"91\",\r\n MobileNo: this.state.mobileNo,\r\n OTP: this.state.otp,\r\n OTPReferenceId: otprefId,\r\n OutletId: propertyId + outletCode,\r\n TableNumber: tableNo\r\n };\r\n // console.log(postObj);\r\n\r\n fetch(Config.baseGuestUrl + 'ValidateGuestLoginOTP', {\r\n method: 'POST',\r\n headers: {\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(\"ValidateGuestLoginOTP\");\r\n // console.log(response);\r\n if (response.errorCode === 0) {\r\n // Set the 'verified-otp' key in local storage with a value of true\r\n sessionStorage.setItem('verified-otp', true);\r\n sessionStorage.setItem('otp', this.state.otp);\r\n // Retrieve the value of 'verified-otp' from local storage and update the component state\r\n this.setState({ otpVerification: sessionStorage.getItem('verified-otp') });\r\n\r\n // console.log(\"calling guest checkin method\");\r\n \r\n if(serviceType === \"FINE-DINE\")\r\n {\r\n // console.log(\"Service type fine dine \");\r\n this.callGuestCheckIn()\r\n }\r\n \r\n else\r\n {\r\n // console.log(\"Service type dine in \");\r\n this.setState({ pinverified: true })\r\n this.callClickURLDetail();\r\n }\r\n \r\n } else {\r\n this.showMessage(response.message, \"danger\");\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n /// Table Pin\r\n callGuestCheckIn() {\r\n //console.log(\"callGuestCheckIn\")\r\n if (serviceType === \"FINE-DINE\") {\r\n sessionStorage.setItem('group-pin', this.state.showGroupPin ? this.state.groupPin : '');\r\n //console.log(\"this.state.groupPin\");\r\n //console.log(this.state.groupPin);\r\n //console.log(this.props.location.state.validateOTP);\r\n //console.log(this.props.location.state.validatePIN);\r\n\r\n\r\n let postObj = {\r\n OutletId: propertyId + outletCode,\r\n GuestName: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n MobileNo: this.state.mobileNo,\r\n TableNumber: tableNo,\r\n GroupCode: this.state.tablePin\r\n }\r\n\r\n // console.log(postObj)\r\n // group pin added by dasprakash on 04-10-2023 jira-1490\r\n // group pin remove commented by dasprakash on 27-09-2023 jira-1493\r\n\r\n // if (groupSession.toString() === \"false\") {\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/jointable');\r\n // }, 500);\r\n // }\r\n // \r\n\r\n\r\n // group pin remove added by dasprakash on 27-09-2023 jira-1493\r\n sessionStorage.setItem('group-session', true);\r\n groupSession = true;\r\n // \r\n// Commended by vijay on 02-02-2024 Jira id - 2078 -Testing points Unwanted API calls[GetGuestAppToken] \r\n // let urlParam = '?OrganizationId=' + orgnationId + '&PropertyId=' + propertyId + '&TokenKey=' + Config.tokenKey;\r\n // fetch(Config.basePOSUrl + 'GetGuestAppToken' + urlParam, {\r\n // method: 'GET',\r\n // headers: {\r\n // 'content-type': 'application/json'\r\n // }\r\n // })\r\n // .then(response => response.json())\r\n // .then(data => {\r\n // //console.log(\"Response1:\");\r\n // // console.log(data);\r\n // if (data.errorCode === 0) {\r\n // token = data.response.token;\r\n fetch(Config.basePOSUrl + 'GuestCheckIn', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(\"GuestCheckIn response\")\r\n // console.log(response)\r\n if (response.errorCode === 0) {\r\n // sessionStorage.setItem('table-pins', response.response.groupCode)\r\n sessionStorage.setItem('table-pins', this.state.tablePin);\r\n this.setState({ pinverified: true })\r\n this.callClickURLDetail();\r\n }\r\n else {\r\n //console.log(\"code 1\")\r\n //console.log(response.errorCode)\r\n //console.log(response);\r\n this.showMessage(response.message, \"danger\");\r\n }\r\n })\r\n .catch(err => {\r\n //console.log(\"err\")\r\n //console.log(Config.basePOSUrl)\r\n //console.log(token)\r\n //console.log(\"JSON.stringify(postObj)\")\r\n //console.log(JSON.stringify(postObj))\r\n this.showMessage('Guest Check IN - Failed to fetch - ' + err, \"danger\");\r\n });\r\n //Else condition Commended by vijay on 02-02-2024 Jira id - 2078 -Testing points Unwanted API calls[GetGuestAppToken] \r\n // } else {\r\n // console.error(\"Error: \" + data.errorMessage);\r\n // }\r\n // })\r\n // .catch(error => {\r\n // console.error('Fetch error:', error);\r\n // });\r\n // \r\n\r\n // group pin commented by dasprakash on 04-10-2023 jira-1490\r\n // fetch(Config.basePOSUrl + 'GuestCheckIn', {\r\n // method: 'POST',\r\n // headers: {\r\n // Authorization: \"Bearer \" + token,\r\n // 'content-type': 'application/json'\r\n // },\r\n // body: JSON.stringify(postObj)\r\n // })\r\n\r\n // .then(res => res.json())\r\n // .then(response => {\r\n // //console.log(\"response.errorCode\")\r\n // //console.log(response)\r\n // if (response.errorCode === 0) {\r\n // this.callClickURLDetail();\r\n // }\r\n // else {\r\n // //console.log(\"code 1\")\r\n // //console.log(response.errorCode)\r\n // //console.log(response);\r\n // this.showMessage(response.message, \"danger\");\r\n // }\r\n // })\r\n // .catch(err => {\r\n // //console.log(\"err\")\r\n // //console.log(Config.basePOSUrl)\r\n // //console.log(token)\r\n // //console.log(\"JSON.stringify(postObj)\")\r\n // //console.log(JSON.stringify(postObj))\r\n // this.showMessage('Guest Check IN - Failed to fetch - ' + err, \"danger\");\r\n // });\r\n\r\n\r\n\r\n\r\n } // With out table service\r\n else {\r\n this.showMessage('Service mode does not support.', \"danger\");\r\n }\r\n }// end call check in\r\n\r\n\r\n\r\n handleClick = (e) => {\r\n e.preventDefault();\r\n // console.log(\"groupSession123\");\r\n //console.log(groupSession);\r\n\r\n this.setState({ loading: true });\r\n // group pin commented by asprakash on 27-09-2023 jira-1493\r\n // if (this.state.showGroupPin) {\r\n // if (this.state.groupPin === \"\") {\r\n // this.showMessage(\"Please enter the valid Group Pin.\", \"info\")\r\n // return false;\r\n // }\r\n // }\r\n // group pin commented by dasprakash on 29-09-2023 jira-1490\r\n // if (this.props.location.state.validateOTP && groupSession === \"false\") {\r\n if (this.props.location.state.validateOTP) {\r\n if (this.state.otp === \"\" && sessionStorage.getItem('verified-otp') === \"false\") {\r\n this.showMessage(\"Please enter the valid OTP.\", \"info\")\r\n return false;\r\n }\r\n }\r\n // group pin commented by dasprakash on 29-09-2023 jira-1490\r\n // else if (this.props.location.state.validatePIN && groupSession === \"false\") {\r\n if (this.props.location.state.validatePIN) {\r\n if (this.state.tablePin === \"\") {\r\n this.showMessage(\"Please enter the valid Table Pin .\", \"info\")\r\n return false;\r\n }\r\n }\r\n //console.log(this.props.location.state.validatePIN)\r\n //console.log(this.props.location.state.validateOTP)\r\n\r\n if (this.props.location.state.validatePIN === true && this.props.location.state.validateOTP === false) {\r\n // console.log(\"con1\")\r\n this.callGuestCheckIn();\r\n }\r\n else {\r\n // console.log(\"else\")\r\n // console.log(\"this.state.otpVerification\")\r\n // console.log(this.state.otpVerification)\r\n\r\n this.callValidateGuestLoginOTP()\r\n }\r\n\r\n // group pin commented by dasprakash on 29-09-2023 jira-1490\r\n // else {\r\n // //console.log(\"urlParam\");\r\n // this.redirectToHome();\r\n // return false;\r\n // }\r\n\r\n\r\n // // Get Token\r\n // let urlParam = '?OrganizationId=' + orgnationTd + '&PropertyId=' + propertyId + '&TokenKey=' + Config.tokenKey;\r\n // // //console.log(urlParam);\r\n // fetch(Config.basePOSUrl + 'GetGuestAppToken' + urlParam, {\r\n // method: 'GET',\r\n // headers: {\r\n // 'content-type': 'application/json'\r\n // }\r\n // })\r\n // .then(res => res.json())\r\n // .then(response => {\r\n // // let cookie = new Cookies();\r\n // if (response.errorCode === 0) {\r\n // // //console.log(\"res \" + JSON.parse(response)); \r\n // let token = response.response.token;\r\n // //console.log(\"token: \" + response.response.token);\r\n // // cookie.set('token', token);\r\n // // cookie.set('user-mobileNo', this.state.mobileNo);\r\n // // cookie.set('user-tableNo', this.state.tableNo);\r\n // // cookie.set('user-serviceType', this.state.serviceType);\r\n\r\n // sessionStorage.setItem('user-token', token);\r\n // sessionStorage.setItem('user-mobileno', this.state.mobileNo);\r\n\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/home');\r\n // }, 2000);\r\n // }\r\n // else {\r\n // // cookie.remove('token');\r\n // // cookie.remove('user-mobileNo');\r\n // sessionStorage.removeItem(\"user-token\");\r\n // sessionStorage.removeItem(\"user-mobileno\");\r\n // this.showMessage(response.message, \"danger\");\r\n // }\r\n // })\r\n // .catch(err => {\r\n // //console.log(err);\r\n // this.showMessage(\"An error occured\", \"danger\");\r\n // });\r\n\r\n // let cookie = new Cookies();\r\n //let otprefId = cookie.get(\"otpReferenceId\");\r\n\r\n // group pin commented by dasprakash on 29-09-2023 jira-1490\r\n\r\n // if (groupSession === \"false\") {\r\n // if (groupSession === \"true\") {\r\n // //console.log(\"groupSession true\");\r\n // let otprefId = sessionStorage.getItem(\"otpReferenceId\") === null ? '' : sessionStorage.getItem(\"otpReferenceId\");\r\n // let postObj = {\r\n // GuestName: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n // MobileNoCountryCode: \"91\",\r\n // MobileNo: this.state.mobileNo,\r\n // OTP: this.state.otp,\r\n // OTPReferenceId: otprefId,\r\n // OutletId: propertyId + outletCode,\r\n // TableNumber: tableNo\r\n // }\r\n\r\n // //console.log(postObj);\r\n\r\n // fetch(Config.baseGuestUrl + 'ValidateGuestLoginOTP', {\r\n // method: 'POST',\r\n // headers: {\r\n // 'content-type': 'application/json'\r\n // },\r\n // body: JSON.stringify(postObj)\r\n // })\r\n // .then(res => res.json())\r\n // .then(response => {\r\n // //console.log(\"response\");\r\n // //console.log(response);\r\n // if (response.errorCode === 0) {\r\n // sessionStorage.setItem('user-loggedin', true);\r\n\r\n // let notes = {\r\n // guestname: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n // modetype: outletDetails != null ? outletDetails.enableGuestAppOrders === true ? 1 : 0 : 0\r\n // }\r\n // let posturlObj = {\r\n // organizationId: parseInt(orgnationId),\r\n // propertyId: propertyId,\r\n // outletCode: outletCode,\r\n // ServiceMode: serviceType,\r\n // ContactNo: this.state.mobileNo,\r\n // StatsId: parseInt(statsId),\r\n // username: Config.linkUserName,\r\n // password: Config.linkPassword,\r\n // notes: JSON.stringify(notes)\r\n // }\r\n // // Update Contact Detail\r\n\r\n // fetch(Config.baseAPIUrl + 'ClickURLDetail', {\r\n // method: 'POST',\r\n // headers: {\r\n // 'content-type': 'application/json'\r\n // },\r\n // body: JSON.stringify(posturlObj)\r\n // })\r\n // .then(res => res.json())\r\n // .then(response => {\r\n // //console.log(\"response2\");\r\n // //console.log(response);\r\n // this.redirectToHome();\r\n\r\n\r\n // })\r\n // .catch(err => {\r\n // // //console.log(err);\r\n // this.redirectToHome();\r\n // //this.showMessage(\"CMS - Failed to fetch\", \"danger\");\r\n // });\r\n // }\r\n // else {\r\n // // sessionStorage.removeItem(\"user-mobileno\");\r\n // // //console.log(response.message);\r\n // this.showMessage(response.message, \"danger\");\r\n // }\r\n // })\r\n // .catch(err => {\r\n // // sessionStorage.removeItem(\"user-mobileno\");\r\n // //console.log(err);\r\n // this.showMessage(\"An error occured\", \"danger\");\r\n // });\r\n // } // With out Group Session\r\n // else {\r\n // //console.log(\"groupSession false\");\r\n\r\n // sessionStorage.setItem('user-loggedin', true);\r\n // let posturlObj = {\r\n // organizationId: parseInt(orgnationId),\r\n // propertyId: propertyId,\r\n // outletCode: outletCode,\r\n // ServiceMode: serviceType,\r\n // ContactNo: this.state.mobileNo,\r\n // StatsId: parseInt(statsId),\r\n // username: Config.linkUserName,\r\n // password: Config.linkPassword\r\n // }\r\n // // Update Contact Detail\r\n // fetch(Config.baseAPIUrl + 'ClickURLDetail', {\r\n // method: 'POST',\r\n // headers: {\r\n // 'content-type': 'application/json'\r\n // },\r\n // body: JSON.stringify(posturlObj)\r\n // })\r\n // .then(res => res.json())\r\n // .then(response => {\r\n // // //console.log(\"response\");\r\n // // //console.log(response);\r\n // this.redirectToHome();\r\n // })\r\n // .catch(err => {\r\n // //console.log(err);\r\n // this.redirectToHome();\r\n // //this.showMessage(\"CMS - Failed to fetch\", \"danger\");\r\n // });\r\n // }\r\n\r\n // \r\n };\r\n\r\n\r\n handleResendOtpClick() {\r\n\r\n this.setState({ loading: true });\r\n\r\n let postObj = {\r\n GuestName: \"\",\r\n MobileNoCountryCode: \"91\",\r\n MobileNo: this.state.mobileNo,\r\n PropertyId: propertyId,\r\n OutletId: propertyId + outletCode\r\n }\r\n\r\n fetch(Config.baseGuestUrl + 'GuestLogin', {\r\n method: 'POST',\r\n headers: {\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n ////console.log(response);\r\n if (response.errorCode === 0) {\r\n this.showMessage(\"OTP sent successfully to mobile number \" + this.state.mobileNo, \"info\");\r\n sessionStorage.setItem('otpReferenceId', response.response.otpReferenceId);\r\n sessionStorage.setItem('otp-exp-duration', response.response.otpExpiryDuration);\r\n }\r\n else if (response.errorCode === 4) // Redirect to Verification - Already Sent\r\n {\r\n let minutes = response.response.otpExpiryDuration < 1 ? 1 : response.response.otpExpiryDuration;\r\n this.showMessage(\"OTP Failed, Please request after \" + minutes.toFixed(0) + \" minutes.\", \"info\");\r\n sessionStorage.setItem('otpReferenceId', response.response.otpReferenceId);\r\n sessionStorage.setItem('otp-exp-duration', response.response.otpExpiryDuration);\r\n }\r\n else {\r\n this.showMessage(response.message, \"danger\");\r\n\r\n }\r\n window.scrollTo(0, 0);\r\n })\r\n .catch(err => {\r\n // //console.log(err);\r\n this.showMessage(\"An error occured\", \"danger\");\r\n });\r\n }\r\n\r\n goBack() {\r\n this.props.history.push('/login' + urlPattern);\r\n }\r\n\r\n getCMSDetails() {\r\n let postobj = {\r\n organizationId: parseInt(orgnationId),\r\n propertyId: propertyId,\r\n outletCode: outletCode,\r\n ServiceMode: serviceType,\r\n ApplicationCode: Config.applicationCode,\r\n PageId: Config.pageIds.login, // Default Login\r\n PageType: Config.pageType.login, // Login \r\n RequestIp: \"\",\r\n username: Config.cmsUserName,\r\n password: Config.cmsPassword\r\n }\r\n\r\n fetch(Config.baseAPIUrl + 'PageDetails', {\r\n method: 'POST',\r\n headers: {\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postobj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.isSuccessful) {\r\n\r\n // Slider \r\n if (response.banners.filter(i => i.bannerType === Config.bannerImageType.Slider) !== null && response.banners.filter(i => i.bannerType === Config.bannerImageType.Slider).length > 0)\r\n this.setState({ sliderImages: response.banners.filter(i => i.bannerType === Config.bannerImageType.Slider) });\r\n\r\n // if (response.page != null) {\r\n // if (response.page.preview !== '')\r\n // this.setState({ pageContent: response.page.content, pagePreview: response.page.preview });\r\n\r\n // }\r\n }\r\n\r\n })\r\n .catch(err => {\r\n //console.log(err);\r\n //this.showMessage(\"CMS - Failed to fetch\", \"danger\");\r\n });\r\n }\r\n\r\n showMessage(msg, type) {\r\n window.scrollTo(0, 0);\r\n this.setState({ msgShow: true });\r\n this.setState({ msgType: type });\r\n this.setState({ alertMessage: msg });\r\n this.setState({ loading: false });\r\n setTimeout(() => {\r\n this.setState({ msgShow: false });\r\n }, Config.minMsgTimeout);\r\n };\r\n render() {\r\n const { loading } = this.state;\r\n ////console.log(this.props.location.state.validatePIN);\r\n return (\r\n
\r\n {loading &&\r\n \r\n }\r\n
\r\n {this.state.msgShow && }\r\n
\r\n
\r\n {/*
\r\n
\r\n \"slider\"\r\n
\r\n
*/}\r\n
\r\n \r\n {this.state.sliderImages.map(img =>\r\n
\r\n \"lucid-slider-contact-less-order\"\r\n
\r\n )}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\"lucid-contactless-app-user-login\"
\r\n\r\n
Verification Code
\r\n {!this.state.showGroupPin && <>\r\n {this.props.location.state.validateOTP && !this.state.otpVerification &&\r\n
OTP has been sent to {this.state.mobileNo}
}\r\n {/* group pin commented by dasprakash on 29-09-2023 jira-1490 */}\r\n {/* {((this.props.location.state.validateOTP && this.props.location.state.validatePIN) && !this.state.showGroupPin) &&
(or)
} */}\r\n {/* {(this.props.location.state.validatePIN && !this.state.showGroupPin) &&
PIN - Collect from steward / captain
} */}\r\n }\r\n
\r\n
\r\n {!this.state.showGroupPin && <>\r\n\r\n {(this.props.location.state.validateOTP) &&\r\n < div className=\"form-group\">\r\n {/* group pin added by dasprakash on 09-10-2023 jira-1490 */}\r\n {this.state.otpVerification ?\r\n <>\r\n
\r\n \r\n \r\n \r\n this.handlechange(e)} ref={(input) => { this.nameInput = input; }} name=\"input-mobile-no\" id=\"input-mobile-no\" placeholder={sessionStorage.getItem('otp')} maxLength=\"6\" autoComplete=\"off\" />\r\n Resend OTP\r\n
\r\n \r\n :\r\n
\r\n this.handlechange(e)} ref={(input) => { this.nameInput = input; }} name=\"input-mobile-no\" id=\"input-mobile-no\" placeholder=\"Enter OTP\" maxLength=\"6\" autoComplete=\"off\" />\r\n Resend OTP\r\n
\r\n }\r\n\r\n
\r\n }\r\n {/* group pin commented by dasprakash on 29-09-2023 jira-1490 */}\r\n\r\n {/* {((this.props.location.state.validateOTP && this.props.location.state.validatePIN) && this.state.showGroupPin) &&\r\n < div className=\"form-group\">\r\n
\r\n this.handlechange(e)} ref={(input) => { this.nameInput = input; }} name=\"input-mobile-no\" id=\"input-mobile-no\" placeholder=\"Enter OTP / PIN\" maxLength=\"6\" autoFocus autoComplete=\"off\" />\r\n
\r\n
\r\n } */}\r\n {this.props.location.state.validatePIN &&\r\n <>\r\n {!this.state.pinverified ?\r\n <>\r\n
PIN - Collect from steward / captain
\r\n
\r\n
\r\n this.handleTablePin(e)} ref={(input) => { this.nameInput = input; }} name=\"input-mobile-no\" id=\"input-mobile-no\" placeholder={this.state.inputPlaceholder} maxLength=\"6\" autoComplete=\"off\" />\r\n
\r\n
\r\n \r\n :\r\n <>\r\n
PIN - Collect from steward / captain
\r\n
\r\n
\r\n \r\n \r\n \r\n this.handleTablePin(e)} ref={(input) => { this.nameInput = input; }} name=\"input-mobile-no\" id=\"input-mobile-no\" placeholder={sessionStorage.getItem('table-pins')} maxLength=\"6\" autoComplete=\"off\" />\r\n
\r\n
\r\n }\r\n\r\n \r\n }\r\n \r\n }\r\n {\r\n this.state.showGroupPin &&\r\n
\r\n
\r\n

You can get group pin from {mainGuestMaskMobileNo}

\r\n this.handleGroupPinChange(e)} ref={(input) => { this.nameInput = input; }} name=\"input-group-pin\" id=\"input-group-pin\" placeholder=\"Group Pin\" maxLength=\"3\" autoComplete=\"off\" />\r\n
\r\n
\r\n }\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n {(this.props.location.state.validateOTP && !this.state.showGroupPin) &&\r\n
\r\n {/* Resend OTP */}\r\n Back\r\n
\r\n }\r\n \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 from 'react'\nimport loading_animation from './loading-bars.svg'\nimport styles from './loading.module.sass'\nexport default function index() {\n return (\n
\n
\"\"
\n
\n )\n}\n","import React from 'react'\r\nimport loading_animation from './loading-bars.svg'\r\nimport styles from './loading.module.sass'\r\nexport default function loadingpage() {\r\n return (\r\n <>\r\n
\r\n
\r\n \"lucid-contactless-app\"\r\n
\r\n
\r\n
Loading...
\r\n \r\n )\r\n}\r\n","import React, { Component } from 'react';\r\n// import React, { Component, useState, useEffect, useRef } from \"react\";\r\n// import { gsap } from \"gsap/all\";\r\nimport Slider from \"react-slick\";\r\nimport LoadingAnimation from '../../components/loadinganimation';\r\nimport Loadingpage from '../../components/loadinganimation/loading-page';\r\n//import loadjs from 'loadjs';\r\nimport Header from '../../components/Header';\r\nimport './home.scss';\r\n//import { NavLink } from 'react-router-dom';\r\n//import Cookies from 'universal-cookie';\r\nimport Config from '../../data/SiteConfig';\r\nimport ErrorAlert from '../../components/alertmessages';\r\nimport { isMobile } from 'react-device-detect';\r\n//import sHelpers from '../../modules/helpers/statichelpers';\r\nconst homeslidersettings = {\r\n autoplay: true,\r\n dots: true,\r\n infinite: true,\r\n arrows: false,\r\n speed: 300,\r\n slidesToShow: 1,\r\n adaptiveHeight: false\r\n};\r\n\r\n\r\n\r\n// const ymlcarousel = {\r\n// slidesToShow: 5,\r\n// slidesToScroll: 1,\r\n// autoplay: true,\r\n// autoplaySpeed: 2000,\r\n// responsive: [\r\n// {\r\n// breakpoint: 768,\r\n// settings: {\r\n// slidesToShow: 4,\r\n// slidesToScroll: 4\r\n// }\r\n// },\r\n// {\r\n// breakpoint: 480,\r\n// settings: {\r\n// slidesToShow: 3,\r\n// slidesToScroll: 3\r\n// }\r\n// }\r\n// ]\r\n// };\r\n\r\n// const groups = [\r\n// { grpId: 1, grpName: 'Biriyani', imgName: '../assets/theme1/img/biriyani-food-7.png', routePath: \"/home\" },\r\n// { grpId: 2, grpName: 'Soups', imgName: '../assets/theme1/img/soups.jpg', routePath: \"/home\" },\r\n// { grpId: 3, grpName: 'Burger', imgName: '../assets/theme1/img/fast-food-3.png', routePath: \"/home\" },\r\n// { grpId: 4, grpName: 'Hot Dog', imgName: '../assets/theme1/img/fast-food-4.png', routePath: \"/home\" },\r\n// { grpId: 5, grpName: 'Fry Chick', imgName: '../assets/theme1/img/fast-food-5.png', routePath: \"/home\" },\r\n// { grpId: 6, grpName: 'Shawarma', imgName: '../assets/theme1/img/fast-food-6.png', routePath: \"/home\" }\r\n// ];\r\nlet loadcomfn = null;\r\nlet mobileNo = '';\r\nlet token = '';\r\nlet tableNo = '';\r\nlet serviceType = '';\r\nlet organizationId = '';\r\nlet propertyId = '';\r\nlet outletCode = '';\r\nlet outletName = '';\r\nlet verifiedTable = '';\r\nlet statsId = '';\r\nlet mainGuestMobileNo = '';\r\n//let groupSession = false;\r\nlet groupPin = '';\r\n//let olDetail = {};\r\n//let outletDetails = null;\r\n//let bstatic = \"0\";\r\nlet guestLoggedIn = \"false\";\r\nlet qrLevel = 5 // By Default Service type Mode\r\nlet mobileApp = \"false\";\r\nlet outletDet = [];\r\nlet isappOrders = false;\r\nlet sortedSliderImages = '';\r\nlet urlPattern = '';\r\nexport default class Home extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.goToItems = this.goToItems.bind(this);\r\n // this.getDetails = this.getDetails.bind(this); \r\n this.state = {\r\n loading: false,\r\n getMenus: [],\r\n getItems: [],\r\n getModifiers: [],\r\n getTaxes: [],\r\n getCharges: [],\r\n mobileNo: '',\r\n orgId: 0,\r\n propertyId: '',\r\n outletCode: '',\r\n tableNo: '',\r\n serviceType: '',\r\n alertMessage: '',\r\n msgType: '',\r\n msgShow: false,\r\n APIResponseMsg: '',\r\n outletDetails: null,\r\n sliderImages: [\r\n {\r\n altName: \"\",\r\n sortOrder: 0,\r\n bannerType: 0,\r\n height: 0,\r\n imageName: \"\",\r\n imagePathName: \"\",\r\n primaryImageType: \"\",\r\n secondaryImageType: \"\",\r\n bannerName: \"Slide 1\",\r\n primaryImageUrl: \"/img/slider/no-image.png\",\r\n secondaryImageUrl: \"\",\r\n status: 0,\r\n width: 0\r\n }\r\n ],\r\n groupMemberList: [],\r\n loggedIn: false,\r\n showOutlets: false,\r\n showServiceTypes: false,\r\n outletList: [],\r\n ServiceTypeList: [],\r\n pagePreview: \"\",\r\n pageContent: \"\",\r\n mobileApp: false,\r\n bannerImgs: [],\r\n pageTitle: '',\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n componentWillMount() {\r\n\r\n if (Config.IsMobileAccess) {\r\n if (!isMobile) {\r\n this.props.history.push('/deviceerror' + urlPattern);\r\n return false;\r\n }\r\n }\r\n\r\n\r\n //$('.modal-backdrop').remove();\r\n //let cookie = new Cookies();\r\n // let token = cookie.get(\"token\");\r\n // let mobileNo = cookie.get(\"user-mobileNo\");\r\n // let tableNo = cookie.get(\"user-tableNo\");\r\n // let serviceType = cookie.get(\"user-serviceType\");\r\n\r\n\r\n // sessionStorage.removeItem('getMenuGroups');\r\n // sessionStorage.removeItem('getModifierGroups');\r\n // sessionStorage.removeItem('getTaxes');\r\n // sessionStorage.removeItem('getmenuItems');\r\n // sessionStorage.removeItem('getCharges');\r\n sessionStorage.removeItem(\"user-vendorOrderId\");\r\n\r\n\r\n mobileNo = sessionStorage.getItem('user-mobileno');\r\n token = sessionStorage.getItem('user-token');\r\n tableNo = sessionStorage.getItem('user-tableno');\r\n serviceType = sessionStorage.getItem('user-servicetype');\r\n organizationId = sessionStorage.getItem('user-orgnationid');\r\n propertyId = sessionStorage.getItem('user-propertyid');\r\n outletCode = sessionStorage.getItem('user-outletcode');\r\n outletName = sessionStorage.getItem('user-outletname');\r\n verifiedTable = sessionStorage.getItem('user-table-verified');\r\n statsId = sessionStorage.getItem('user-statsid');\r\n mainGuestMobileNo = sessionStorage.getItem('main-guest-no') == null ? '' : sessionStorage.getItem('main-guest-no');\r\n // groupSession = sessionStorage.getItem('group-session') == null ? false : sessionStorage.getItem('group-session');\r\n groupPin = sessionStorage.getItem('group-pin') == null ? '' : sessionStorage.getItem('group-pin');\r\n // outletDetails = sessionStorage.getItem('user-outletDetails');\r\n //bstatic = sessionStorage.getItem('user-bstatic');\r\n guestLoggedIn = sessionStorage.getItem('user-loggedin') == null ? \"false\" : sessionStorage.getItem('user-loggedin');\r\n qrLevel = sessionStorage.getItem('user-qr-level') == null ? 5 : sessionStorage.getItem('user-qr-level');\r\n mobileApp = sessionStorage.getItem('mobile-app') == null ? \"false\" : sessionStorage.getItem('mobile-app');\r\n outletDet = JSON.parse(sessionStorage.getItem(\"user-outletDetails\"));\r\n sessionStorage.setItem('dashboard-hide', (sessionStorage.getItem('dashboard-hide') == null ? \"false\" : sessionStorage.getItem('dashboard-hide')));\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n console.log(urlPattern);\r\n // console.log(tableNo);\r\n // console.log(serviceType);\r\n // console.log(organizationId);\r\n // console.log(propertyId);\r\n // console.log(outletDet);\r\n\r\n // Check Session\r\n if (!urlPattern) {\r\n // Handle error or redirect as needed\r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n\r\n const sessionDt = sessionStorage.getItem(\"u-l-v-url-dt\");\r\n if (!sessionDt) {\r\n this.props.history.push('/sessionerror' + urlPattern);\r\n return false;\r\n }\r\n\r\n\r\n\r\n if (token === undefined || token === \"\" || token === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (mobileNo === undefined || mobileNo === \"\" || mobileNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (tableNo === undefined || tableNo === \"\" || tableNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (serviceType === undefined || serviceType === \"\" || serviceType === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (organizationId === undefined || organizationId === \"\" || organizationId === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (propertyId === undefined || propertyId === \"\" || propertyId === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (outletCode === undefined || outletCode === \"\" || outletCode === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (outletDet !== null) {\r\n isappOrders = outletDet.enableGuestAppOrders;\r\n }\r\n // else {\r\n // olDetail = JSON.parse(outletDetails);\r\n // this.setState({ paymentVendorLogo: olDetail.outletImageUrl !== '' ? olDetail.outletImageUrl : \"https://cdn.razorpay.com/logos/BUVwvgaqVByGp2_large.png\" });\r\n // } \r\n // console.log(Config.qrCodeLevel.Property);\r\n\r\n\r\n if (serviceType === \"FINE-DINE\") {\r\n\r\n if (verifiedTable === undefined || verifiedTable === \"\" || verifiedTable === null || verifiedTable === false || verifiedTable === \"false\") {\r\n if (isappOrders === true) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n }\r\n }\r\n if (statsId === undefined || statsId === \"\" || statsId === null) {\r\n statsId = \"0\"\r\n }\r\n // var status = navigator.onLine;\r\n //console.log(guestLoggedIn);\r\n\r\n document.body.classList.remove('modal-open');\r\n let modalPopup = document.querySelector('.modal-backdrop');\r\n if (modalPopup !== null) {\r\n modalPopup.classList.remove('modal-backdrop', 'fade', 'show');\r\n }\r\n\r\n\r\n /// Session Validation for Fine Dine\r\n // Static Var\r\n // StaticValidation.StaticSwitchCtrl();\r\n // if (bstatic === \"0\") { \r\n //else this.getDetails(false);\r\n // }\r\n // else {\r\n // this.setState({ loading: true });\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/emhome');\r\n // }, 1500);\r\n // } \r\n // Check Auto Login\r\n if (parseInt(qrLevel) === Config.qrCodeLevel.Property) {\r\n this.getOutletList();\r\n }\r\n else if (parseInt(qrLevel) === Config.qrCodeLevel.Outlet) {\r\n this.getServiceTypeList(outletCode, outletName);\r\n\r\n }\r\n else {\r\n this.getCMSDetails(true); //Get CMS Page Details \r\n }\r\n\r\n //window.onunload = function () { null };\r\n }\r\n componentDidMount() {\r\n const script = document.createElement(\"script\");\r\n script.src = \"../assets/theme1/js/theme.js\"; // it is not calling mentioned for to avoid null value\r\n script.async = true;\r\n script.onload = () => this.loadwindow();\r\n document.body.appendChild(script);\r\n // window.location.reload(true);\r\n\r\n\r\n if (guestLoggedIn === \"true\") {\r\n\r\n this.setState({ loggedIn: true });\r\n }\r\n\r\n if (mobileApp === \"true\") {\r\n\r\n this.setState({ mobileApp: true });\r\n }\r\n\r\n if (serviceType === \"FINE-DINE\") {\r\n // Comment line for avoid the logout automatically - Table Checkout Cases \r\n // if (!sHelpers.sessionValidation()) {\r\n // this.showMessage(\"Your session has expired, please scan once again\", \"danger\");\r\n // this.setState({ loading: true });\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/logout');\r\n // }, 3000);\r\n // return false;\r\n // }\r\n if (guestLoggedIn === \"true\") {\r\n this.getGuestDashboardDetails();\r\n }\r\n /// else this.getDetails(false);\r\n\r\n\r\n }\r\n // else {\r\n // this.getDetails(false);\r\n // }\r\n\r\n // Handle Back Button -- Start\r\n // if (mobileApp === \"true\") {\r\n // const { history } = this.props;\r\n // history.listen((newLocation, action) => {\r\n\r\n // console.log(newLocation.pathname);\r\n // console.log(newLocation.search);\r\n // console.log(action);\r\n\r\n // console.log(this.currentPathname);\r\n // console.log(this.currentSearch);\r\n // console.log(this.action);\r\n\r\n // // if (action === \"PU5H\") {\r\n // // if (\r\n // // newLocation.pathname !== this.currentPathname ||\r\n // // newLocation.search !== this.currentSearch\r\n // // ) {\r\n // // this.currentPathname = newLocation.pathname;\r\n // // this.currentSearch = newLocation.search;\r\n\r\n // // history.push({\r\n // // pathname: newLocation.pathname,\r\n // // search: newLocation.search\r\n // // });\r\n // // }\r\n // // else {\r\n // // console.log(newLocation.pathname);\r\n // // console.log(newLocation.search);\r\n // // console.log(action);\r\n\r\n // // // if (newLocation.pathname === '/home') {\r\n // // // console.log(newLocation.pathname);\r\n // // // this.props.history.push('/home');\r\n // // // history.go(1);\r\n // // // }\r\n // // // else if (newLocation.pathname === '/items') {\r\n // // // console.log('item');\r\n // // // this.props.history.push('/items');\r\n // // // }\r\n // // // else if (newLocation.pathname === '/cart') {\r\n // // // console.log('cart');\r\n // // // this.props.history.push('/cart');\r\n // // // }\r\n // // }\r\n\r\n // // } else {\r\n // if (action === \"POP\") {\r\n // console.log(newLocation.pathname);\r\n // console.log(newLocation.search);\r\n // console.log(action);\r\n\r\n // alert('wait');\r\n\r\n // // if (newLocation.pathname === '/home') {\r\n // // console.log(newLocation.pathname);\r\n // // this.props.history.push('/home');\r\n // // history.go(1);\r\n // // }\r\n // // else if (newLocation.pathname === '/items') {\r\n // // console.log('item');\r\n // // this.props.history.push('/items');\r\n // // }\r\n // // else if (newLocation.pathname === '/cart') {\r\n // // console.log('cart');\r\n // // this.props.history.push('/cart');\r\n // // }\r\n // // }\r\n // }\r\n // });\r\n // }\r\n // // Handle Back Button -- End\r\n }\r\n\r\n // guestTableCheck() {\r\n\r\n // if (outletCode !== 'NONE') {\r\n // // console.log(outletCode);\r\n // let urlParam = '?OutletId=' + propertyId + outletCode + '&ServiceType=' + serviceType;\r\n // // // Get Outlet Details \r\n // fetch(Config.basePOSUrl + 'GetOutletDetails' + urlParam, {\r\n // method: 'GET',\r\n // headers: {\r\n // Authorization: \"Bearer \" + token,\r\n // 'content-type': 'application/json'\r\n // }\r\n // })\r\n // .then(res => res.json())\r\n // .then(response => {\r\n // // console.log(response);\r\n // if (response.errorCode === 0) {\r\n // this.setState({ outletDetails: response.response.outletDetails });\r\n // // if (response.response.outletDetails.homePageSliderImages !== null && response.response.outletDetails.homePageSliderImages.length > 0) {\r\n // // this.setState({ sliderImages: response.response.outletDetails.homePageSliderImages });\r\n // // }\r\n // sessionStorage.setItem(\"user-outletDetails\", JSON.stringify(response.response.outletDetails));\r\n // setTimeout(() => {\r\n // window.scrollTo(0, 0);\r\n // }, 1000);\r\n\r\n // //// Table Check \r\n // if (guestLoggedIn === \"true\") {\r\n // if (serviceType === \"FINE-DINE\") {\r\n // let olDetail = this.state.outletDetails;\r\n // //console.log(olDetail);\r\n // let postObj = {\r\n // OutletId: propertyId + outletCode,\r\n // GuestMobileCountryCode: \"91\",\r\n // GuestMobileNumber: this.state.loggedIn === true ? mainGuestMobileNo : '',\r\n // TableNumber: serviceType !== \"FINE-DINE\" ? '' : tableNo\r\n // }\r\n\r\n // fetch(Config.basePOSUrl + 'GetGuestTableStatus', {\r\n // method: 'POST',\r\n // headers: {\r\n // Authorization: \"Bearer \" + token,\r\n // 'content-type': 'application/json'\r\n // },\r\n // body: JSON.stringify(postObj)\r\n // })\r\n // .then(res => res.json())\r\n // .then(response => {\r\n // if (response.errorCode === 0) {\r\n // // console.log(response);\r\n // if (!response.response.guestTableStatus.isCheckedIn) {\r\n // // console.log(olDetail);\r\n // if (olDetail.autoCheckInWhenGuestContinueOrderInSameTable) {\r\n // let postObj = {\r\n // OutletId: propertyId + outletCode,\r\n // GuestName: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n // MobileNo: this.state.loggedIn === true ? mainGuestMobileNo : '',\r\n // TableNumber: tableNo,\r\n // GroupCode: groupPin\r\n // }\r\n // fetch(Config.basePOSUrl + 'GuestCheckIn', {\r\n // method: 'POST',\r\n // headers: {\r\n // Authorization: \"Bearer \" + token,\r\n // 'content-type': 'application/json'\r\n // },\r\n // body: JSON.stringify(postObj)\r\n // })\r\n // .then(res => res.json())\r\n // .then(response => {\r\n // if (response.errorCode === 0) {\r\n // setTimeout(() => {\r\n // this.getDetails(true);\r\n // }, 500);\r\n // }\r\n // else {\r\n // this.showMessage(\"Your selected table has been checked out.\", \"danger\");\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/logout');\r\n // }, 3000);\r\n // }\r\n // })\r\n // .catch(err => {\r\n // sessionStorage.removeItem(\"user-token\");\r\n // sessionStorage.removeItem(\"user-mobileno\");\r\n // this.showMessage('Guest Check IN - Failed to fetch - ' + err, \"danger\");\r\n // });\r\n // }\r\n // else {\r\n // this.showMessage('Your table has been Closed! , Please scan and login once again', \"danger\");\r\n // this.setState({ loading: true });\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/');\r\n // }, 3000);\r\n // }\r\n // }\r\n // else {\r\n // if (tableNo !== response.response.guestTableStatus.currentTableNumber) {\r\n // this.showMessage(\"Your table has been transfer from \" + tableNo + \" to \" + response.response.guestTableStatus.currentTableNumber, \"danger\");\r\n // sessionStorage.setItem('user-tableno', response.response.guestTableStatus.currentTableNumber);\r\n // tableNo = sessionStorage.getItem('user-tableno');\r\n // }\r\n\r\n // setTimeout(() => {\r\n // this.getDetails(true);\r\n // }, 500);\r\n // }\r\n // }\r\n // else {\r\n // this.setState({ loading: false });\r\n // this.showMessage(response.message, \"danger\");\r\n\r\n // }\r\n // })\r\n // .catch(err => {\r\n // this.setState({ loading: false });\r\n // this.showMessage(err, \"danger\");\r\n // });\r\n // } // End Fine Dine\r\n // else { // \r\n // setTimeout(() => {\r\n // this.getDetails(true);\r\n // }, 500);\r\n // }\r\n // } // End Check Logged In\r\n // else {\r\n // setTimeout(() => {\r\n // this.getDetails(true);\r\n // }, 500);\r\n // }\r\n // }\r\n\r\n // else {\r\n // this.setState({ APIResponseMsg: \"\" });\r\n // }\r\n // })\r\n // .catch(err => {\r\n // this.setState({ APIResponseMsg: \"Outlet Details - Failed to fetch\" })\r\n // // console.log('Outlet Details - Failed to fetch - ' + err);\r\n // this.showMessage('Outlet Details - Failed to fetch - ' + err, \"danger\");\r\n // });\r\n\r\n // } // End Outlet Valid\r\n // else {\r\n // setTimeout(() => {\r\n // this.getDetails(true);\r\n // }, 500);\r\n\r\n // }\r\n // }\r\n\r\n getGuestDashboardDetails() {\r\n let urlParam = '?OutletId=' + propertyId + outletCode + '&ServiceType=' + serviceType + '&TableNumber=' + tableNo + '&guestmobileNumber=' + mobileNo;\r\n //console.log(urlParam);\r\n fetch(Config.basePOSUrl + 'GetGuestAppDashBoardDetails' + urlParam, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n //console.log(response);\r\n if (response.errorCode === 0) {\r\n if (mobileNo === mainGuestMobileNo) {\r\n this.setState({ groupPin: response.response.groupDetails.groupCode });\r\n groupPin = response.response.groupDetails.groupCode;\r\n sessionStorage.setItem('group-pin', groupPin);\r\n }\r\n else\r\n this.setState({ groupPin: \"\" });\r\n\r\n this.setState({ groupMemberList: response.response.groupDetails.guestDetails });\r\n // this.getDetails(false);\r\n\r\n }\r\n else {\r\n this.showMessage(response.message, \"danger\");\r\n }\r\n })\r\n .catch(err => {\r\n ////console.log(err); \r\n this.showMessage('An error occured - ' + err, \"danger\");\r\n });\r\n }\r\n\r\n // getDetails(tableCheck) {\r\n\r\n // this.setState({ APIResponseMsg: \"Loading...\" });\r\n\r\n\r\n // // Guest Table Check - CheckIn / Check Out / Table Transfer - to Get latest Table Detail\r\n // if (tableCheck === false) {\r\n // this.guestTableCheck();\r\n // return false;\r\n // }\r\n // this.setState({ APIResponseMsg: \"\" });\r\n\r\n // }\r\n\r\n loadItems() {\r\n\r\n // this.setState({ APIResponseMsg: \"Loading...\" });\r\n serviceType = sessionStorage.getItem('user-servicetype');\r\n propertyId = sessionStorage.getItem('user-propertyid');\r\n outletCode = sessionStorage.getItem('user-outletcode');\r\n\r\n let urlParam = '?OutletId=' + propertyId + outletCode + '&ServiceType=' + serviceType;\r\n // console.log(urlParam);\r\n fetch(Config.basePOSUrl + 'Getguestappmenus' + urlParam, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.errorCode === 0) {\r\n // console.log(JSON.stringify(response.response.menuGroups));\r\n // console.log(JSON.stringify(response.response.menuItems));\r\n // Filter active Menu Items\r\n let activeMenuGroups = [];\r\n let activeMenuItems = [];\r\n // let sortMenus = [];\r\n if (response.response.menuGroups.length > 0)\r\n activeMenuGroups = response.response.menuGroups.filter(x => x.isActive === true).sort(function (a, b) {\t// asc\t\t\t\t\t\t\t\t\t\t \r\n return new Date(a.displayOrder) - new Date(b.displayOrder);\r\n });\r\n\r\n if (response.response.menuItems.length > 0) {\r\n activeMenuItems = response.response.menuItems.filter(x => x.isActive === true).sort(function (a, b) {\t// asc\t\t\t\t\t\t\t\t\t\t \r\n return new Date(a.displayOrder) - new Date(b.displayOrder);\r\n });\r\n // let sortMenus = activeMenuItems.sort(function (a, b) {\t// asc\t\t\t\t\t\t\t\t\t\t \r\n // return new Date(a.displayOrder) - new Date(b.displayOrder);\r\n // });\r\n // console.log(activeMenuItems);\r\n }\r\n sessionStorage.setItem(\"getMenuGroups\", JSON.stringify(activeMenuGroups));\r\n sessionStorage.setItem(\"getmenuItems\", JSON.stringify(activeMenuItems));\r\n sessionStorage.setItem(\"getModifierGroups\", JSON.stringify(response.response.modifierGroups));\r\n sessionStorage.setItem(\"getTaxes\", JSON.stringify(response.response.taxes));\r\n sessionStorage.setItem(\"getCharges\", JSON.stringify(response.response.charges));\r\n sessionStorage.setItem(\"menuFetchDateTime\", response.response.menuDateTime);\r\n this.setState({ getMenus: activeMenuGroups });\r\n this.setState({ getItems: activeMenuItems });\r\n this.setState({ getModifiers: response.response.modifierGroups });\r\n this.setState({ getTaxes: response.response.taxes });\r\n this.setState({ getCharges: response.response.charges });\r\n this.setState({ APIResponseMsg: \"\" });\r\n // this.setState({ outletDetails: olDetail });\r\n\r\n // if (olDetail.homePageSliderImages !== null && olDetail.homePageSliderImages.length > 0) {\r\n // this.setState({ sliderImages: olDetail.homePageSliderImages });\r\n // }\r\n // // this.setState({ APIResponseMsg: \"\" });\r\n // setTimeout(() => {\r\n // window.scrollTo(0, 0);\r\n // }, 500);\r\n\r\n\r\n // Check the static Page Redirection \r\n // if (StaticValidation.enableGuestAppOrders === false && StaticValidation.enableDigitalMenu === true) {\r\n // this.setState({ loading: true });\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/emhome');\r\n // }, 1500);\r\n // } \r\n\r\n // // Get Outlet Details \r\n // fetch(Config.basePOSUrl + 'GetOutletDetails' + urlParam, {\r\n // method: 'GET',\r\n // headers: {\r\n // Authorization: \"Bearer \" + token,\r\n // 'content-type': 'application/json'\r\n // }\r\n // })\r\n // .then(res => res.json())\r\n // .then(response => {\r\n // // console.log(response);\r\n // if (response.errorCode === 0) {\r\n // this.setState({ outletDetails: response.response.outletDetails });\r\n // if (response.response.outletDetails.homePageSliderImages !== null && response.response.outletDetails.homePageSliderImages.length > 0) {\r\n // this.setState({ sliderImages: response.response.outletDetails.homePageSliderImages });\r\n // }\r\n // sessionStorage.setItem(\"user-outletDetails\", JSON.stringify(response.response.outletDetails));\r\n // this.setState({ APIResponseMsg: \"\" });\r\n // setTimeout(() => {\r\n // window.scrollTo(0, 0);\r\n // }, 1000);\r\n\r\n // }\r\n // else {\r\n // this.setState({ APIResponseMsg: \"Failed to fetch\" });\r\n // }\r\n // })\r\n // .catch(err => {\r\n // this.setState({ APIResponseMsg: \"Outlet Details - Failed to fetch\" })\r\n // // console.log('Outlet Details - Failed to fetch - ' + err);\r\n // this.showMessage('Outlet Details - Failed to fetch - ' + err, \"danger\");\r\n // }); \r\n\r\n setTimeout(() => {\r\n this.setState({ loading: false })\r\n this.props.history.push('/items' + urlPattern, { focusGroup: \"focus-mnugrp-focus-mnugrp-recommended\" });\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n this.setState({ APIResponseMsg: \"Failed to fetch\" })\r\n this.showMessage(response.message, \"danger\");\r\n }\r\n })\r\n .catch(err => {\r\n this.setState({ APIResponseMsg: \"Failed to fetch\" })\r\n //console.log(err);\r\n // this.showMessage(\"An error occured\", \"danger\");\r\n });\r\n }\r\n loadClassficiation() {\r\n serviceType = sessionStorage.getItem('user-servicetype');\r\n propertyId = sessionStorage.getItem('user-propertyid');\r\n outletCode = sessionStorage.getItem('user-outletcode');\r\n\r\n let urlParam = '?OutletId=' + propertyId + outletCode + '&ServiceType=' + serviceType;\r\n // console.log(urlParam);\r\n fetch(Config.basePOSUrl + 'GetClassificationList' + urlParam, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n if (response.errorCode === 0) {\r\n sessionStorage.setItem(\"getclf\", JSON.stringify(response.response.classificationList));\r\n this.loadItems();\r\n }\r\n else {\r\n this.setState({ APIResponseMsg: \"Failed to fetch\" })\r\n this.showMessage(response.message, \"danger\");\r\n }\r\n })\r\n .catch(err => {\r\n this.setState({ APIResponseMsg: \"Failed to fetch\" })\r\n //console.log(err);\r\n // this.showMessage(\"An error occured\", \"danger\");\r\n });\r\n }\r\n\r\n getCMSDetails(IsUpdateLog) {\r\n this.setState({ pageLoading: true });\r\n let previewVal = \"\";\r\n let bannerVal = [];\r\n this.setState({ APIResponseMsg: \"Loading...\" });\r\n\r\n let postobj = {\r\n organizationId: parseInt(organizationId),\r\n propertyId: propertyId,\r\n outletCode: outletCode,\r\n ServiceMode: serviceType,\r\n ApplicationCode: Config.applicationCode,\r\n PageId: Config.pageIds.home, // Default Home\r\n PageType: Config.pageType.home, // Home \r\n RequestIp: \"\",\r\n username: Config.cmsUserName,\r\n password: Config.cmsPassword\r\n }\r\n\r\n fetch(Config.baseAPIUrl + 'PageDetails', {\r\n method: 'POST',\r\n headers: {\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postobj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.isSuccessful) {\r\n sessionStorage.setItem(\"pageCMSSettings\", JSON.stringify(response));\r\n this.setState({ pageTitle: response.page.pageTitle });\r\n // Slider \r\n if (response.banners.filter(i => i.bannerType === Config.bannerImageType.Slider) !== null && response.banners.filter(i => i.bannerType === Config.bannerImageType.Slider).length > 0) {\r\n // this.setState({ sliderImages: response.banners.filter(i => i.bannerType === Config.bannerImageType.Slider) });\r\n\r\n sortedSliderImages = response.banners.filter(i => i.bannerType === Config.bannerImageType.Slider).slice().sort((a, b) => a.sortOrder - b.sortOrder);\r\n\r\n this.setState({ sliderImages: sortedSliderImages });\r\n }\r\n\r\n\r\n if (response.banners.filter(i => i.bannerType === Config.bannerImageType.Banner) !== null && response.banners.filter(i => i.bannerType === Config.bannerImageType.Banner).length > 0) {\r\n this.setState({ bannerImgs: response.banners.filter(i => i.bannerType === Config.bannerImageType.Banner) });\r\n bannerVal = response.banners.filter(i => i.bannerType === Config.bannerImageType.Banner);\r\n }\r\n\r\n\r\n if (response.page != null) {\r\n if (response.page.preview !== '') {\r\n this.setState({ pageContent: response.page.content, pagePreview: response.page.preview });\r\n previewVal = response.page.preview;\r\n }\r\n }\r\n }\r\n else {\r\n // this.setState({ themeId: 1 }); // Default Theme Value\r\n // this.showMessage(response.message, \"danger\"); \r\n // console.log(response.message);\r\n if (sessionStorage.getItem(\"pageCMSSettings\") != null) {\r\n let cms = JSON.parse(sessionStorage.getItem(\"pageCMSSettings\"));\r\n\r\n if (cms.banners.filter(i => i.bannerType === Config.bannerImageType.Slider) !== null && cms.banners.filter(i => i.bannerType === Config.bannerImageType.Slider).length > 0)\r\n this.setState({ sliderImages: cms.banners.filter(i => i.bannerType === Config.bannerImageType.Slider) });\r\n\r\n if (cms.page.preview !== '') {\r\n this.setState({ pageContent: cms.page.content, pagePreview: cms.page.preview });\r\n previewVal = cms.page.preview;\r\n }\r\n\r\n }\r\n this.setState({ pageTitle: '' });\r\n }\r\n\r\n /// Dashboard Hide\r\n if (previewVal === \"\" && bannerVal.length === 0) {\r\n if (parseInt(qrLevel) !== Config.qrCodeLevel.Property && parseInt(qrLevel) !== Config.qrCodeLevel.Outlet) {\r\n this.setState({ loading: false, pageLoading: true });\r\n sessionStorage.setItem('dashboard-hide', \"true\");\r\n this.loadItems();\r\n }\r\n else {\r\n if (parseInt(qrLevel) !== Config.qrCodeLevel.Outlet) {\r\n this.setState({ pageLoading: false });\r\n sessionStorage.setItem('dashboard-hide', \"false\");\r\n }\r\n }\r\n }\r\n else {\r\n this.setState({ pageLoading: false });\r\n sessionStorage.setItem('dashboard-hide', \"false\");\r\n }\r\n\r\n if (IsUpdateLog) this.updateClickDetail();\r\n this.setState({ APIResponseMsg: \"\" });\r\n\r\n })\r\n .catch(err => {\r\n //console.log(err);\r\n this.setState({ sliderImages: [] })\r\n this.setState({ APIResponseMsg: \"\", loading: false });\r\n if (parseInt(qrLevel) !== Config.qrCodeLevel.Property && parseInt(qrLevel) !== Config.qrCodeLevel.Outlet) {\r\n this.setState({ loading: false, pageLoading: true });\r\n sessionStorage.setItem('dashboard-hide', \"true\");\r\n this.loadItems();\r\n }\r\n else {\r\n if (parseInt(qrLevel) !== Config.qrCodeLevel.Outlet) {\r\n this.setState({ pageLoading: false });\r\n sessionStorage.setItem('dashboard-hide', \"false\");\r\n }\r\n }\r\n\r\n if (IsUpdateLog) this.updateClickDetail();\r\n //this.showMessage(\"CMS - Failed to fetch\", \"danger\");\r\n });\r\n }\r\n\r\n updateClickDetail() {\r\n let notes = {\r\n guestname: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n modetype: outletDet != null ? isappOrders === true ? 1 : 0 : 0\r\n }\r\n let posturlObj = {\r\n organizationId: parseInt(organizationId),\r\n propertyId: propertyId,\r\n outletCode: outletCode,\r\n ServiceMode: serviceType,\r\n ContactNo: mobileNo,\r\n StatsId: parseInt(statsId),\r\n numofMenuAccess: 1,\r\n username: Config.linkUserName,\r\n password: Config.linkPassword,\r\n notes: JSON.stringify(notes)\r\n }\r\n // console.log(posturlObj);\r\n // Update Contact Detail\r\n fetch(Config.baseAPIUrl + 'ClickURLDetail', {\r\n method: 'POST',\r\n headers: {\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(posturlObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n this.loadClassficiation();\r\n // setTimeout(() => {\r\n // this.setState({ loading: false })\r\n // this.props.history.push('/items', { focusGroup: \"focus-mnugrp-focus-mnugrp-recommended\" });\r\n // }, 1500);\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.loadClassficiation();\r\n // setTimeout(() => {\r\n // this.setState({ loading: false })\r\n // this.props.history.push('/items', { focusGroup: \"focus-mnugrp-focus-mnugrp-recommended\" });\r\n // }, 1500);\r\n //this.showMessage(\"CMS - Failed to fetch\", \"danger\");\r\n });\r\n }\r\n\r\n goToItems() {\r\n this.setState({ loading: true });\r\n\r\n // guestLoginAtTheTimeOfPlaceOrder\r\n if (guestLoggedIn === \"false\") {\r\n if (!outletDet.guestLoginAtTheTimeOfPlaceOrder) {\r\n sessionStorage.setItem(\"login-page-session\", 2); // Item Session \r\n setTimeout(() => {\r\n if (isappOrders === true) {\r\n this.props.history.push('/login' + urlPattern);\r\n this.setState({ loading: false });\r\n return false;\r\n }\r\n }, Config.minMsgTimeout);\r\n\r\n }\r\n }\r\n\r\n this.getCMSDetails(true);\r\n\r\n }\r\n\r\n showMessage(msg, type) {\r\n window.scrollTo(0, 0);\r\n this.setState({ msgShow: true });\r\n this.setState({ msgType: type });\r\n this.setState({ alertMessage: msg });\r\n this.setState({ loading: false });\r\n setTimeout(() => {\r\n this.setState({ msgShow: false });\r\n }, Config.minMsgTimeout);\r\n };\r\n\r\n loadwindow() {\r\n loadcomfn = window.initiate;\r\n loadcomfn();\r\n }\r\n\r\n getOutletList() {\r\n // GetOutlet\r\n fetch(Config.basePOSUrl + 'GetOutletList', {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n this.setState({ showOutlets: true });\r\n if (response.errorCode === 0) {\r\n this.setState({ outletList: response.response.outletList, serviceTypeList: [] });\r\n }\r\n else {\r\n this.showMessage(response.message, \"danger\");\r\n this.setState({ outletList: [], serviceTypeList: [] });\r\n }\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.showMessage('An error occured - ' + err, \"danger\");\r\n this.setState({ outletList: [], serviceTypeList: [] });\r\n });\r\n }\r\n\r\n getServiceTypeList(outleCode, outletName) {\r\n sessionStorage.setItem('user-outletcode', outleCode);\r\n sessionStorage.setItem('user-outletname', outletName);\r\n\r\n sessionStorage.removeItem('cartList');\r\n sessionStorage.removeItem('modifierCartList');\r\n sessionStorage.removeItem('taxCartList');\r\n sessionStorage.removeItem('chargeCartList');\r\n\r\n // GetService Type \r\n fetch(Config.basePOSUrl + 'GetOutletServiceTypeList?OutletCode=' + outleCode + '', {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n //console.log(response);\r\n if (response.errorCode === 0) {\r\n if (response.response.serviceModeList.length === 1) {\r\n if (parseInt(qrLevel) === Config.qrCodeLevel.Outlet) {\r\n sessionStorage.setItem('dashboard-hide', \"true\");\r\n this.handleClickServiceType(response.response.serviceModeList[0].serviceType);\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.setState({ serviceTypeList: response.response.serviceModeList });\r\n this.setState({ showOutlets: false, showServiceTypes: true, loading: false });\r\n sessionStorage.setItem('dashboard-hide', \"false\");\r\n }, Config.minMsgTimeout);\r\n }\r\n }\r\n else if (response.response.serviceModeList.length > 1) {\r\n setTimeout(() => {\r\n this.setState({ serviceTypeList: response.response.serviceModeList });\r\n this.setState({ showOutlets: false, showServiceTypes: true, loading: false });\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n this.showMessage('Service not available', \"danger\");\r\n this.setState({ serviceTypeList: [], showOutlets: false, showServiceTypes: true, loading: false });\r\n }\r\n }\r\n else {\r\n this.showMessage(response.message, \"danger\");\r\n setTimeout(() => {\r\n this.setState({ serviceTypeList: [] });\r\n this.setState({ showOutlets: false, showServiceTypes: true, loading: false });\r\n }, Config.minMsgTimeout);\r\n }\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.showMessage('An error occured - ' + err, \"danger\");\r\n setTimeout(() => {\r\n this.setState({ serviceTypeList: [] });\r\n this.setState({ showOutlets: false, showServiceTypes: true, loading: false });\r\n }, Config.minMsgTimeout);\r\n });\r\n }\r\n\r\n outletListDom() {\r\n return (\r\n <>\r\n
\r\n
\r\n
Outlets
\r\n \r\n\r\n
\r\n \r\n )\r\n }\r\n\r\n showOutletServiceType(outlet, outletCode, outletName) {\r\n this.setState({ loading: true });\r\n if (!outlet) this.getServiceTypeList(outletCode, outletName);\r\n else {\r\n setTimeout(() => {\r\n this.setState({ serviceTypeList: [] });\r\n this.setState({ showOutlets: true, showServiceTypes: false, loading: false });\r\n }, Config.minMsgTimeout);\r\n }\r\n }\r\n\r\n serviceTypeListDom() {\r\n return (\r\n <>\r\n
\r\n
\r\n {parseInt(qrLevel) === Config.qrCodeLevel.Property &&
Back To Outlet
}\r\n \r\n
\r\n \r\n )\r\n }\r\n\r\n handleClickServiceType(serviceType) {\r\n\r\n sessionStorage.setItem('user-servicetype', serviceType);\r\n sessionStorage.removeItem('cartList');\r\n sessionStorage.removeItem('modifierCartList');\r\n sessionStorage.removeItem('taxCartList');\r\n sessionStorage.removeItem('chargeCartList');\r\n\r\n this.setState({ APIResponseMsg: \"Loading...\", loading: true, pageLoading: true });\r\n this.getoutletDetails();\r\n }\r\n\r\n getoutletDetails() {\r\n serviceType = sessionStorage.getItem('user-servicetype');\r\n outletCode = sessionStorage.getItem('user-outletcode');\r\n\r\n let urlParam = '?OutletId=' + propertyId + outletCode + '&ServiceType=' + serviceType;\r\n // // Get Outlet Details \r\n fetch(Config.basePOSUrl + 'GetOutletDetails' + urlParam, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.errorCode === 0) {\r\n this.setState({ outletDetails: response.response.outletDetails });\r\n // if (response.response.outletDetails.homePageSliderImages !== null && response.response.outletDetails.homePageSliderImages.length > 0) {\r\n // this.setState({ sliderImages: response.response.outletDetails.homePageSliderImages });\r\n // }\r\n sessionStorage.setItem(\"user-outletDetails\", JSON.stringify(response.response.outletDetails));\r\n outletDet = JSON.parse(sessionStorage.getItem(\"user-outletDetails\"));\r\n isappOrders = response.response.outletDetails.enableGuestAppOrders;\r\n setTimeout(() => {\r\n window.scrollTo(0, 0);\r\n }, Config.minMsgTimeout);\r\n // Digital Menu\r\n if (response.response.outletDetails.enableGuestAppOrders === false && response.response.outletDetails.enableDigitalMenu === true) {\r\n\r\n if (response.response.outletDetails.guestDetailsMandatoryForDigitalMenu === false) {\r\n sessionStorage.setItem('user-table-verified', true);\r\n sessionStorage.setItem('user-digitalMenu', true);\r\n //sessionStorage.setItem('user-mobileno', \"0000000000\"); \r\n\r\n setTimeout(() => {\r\n // this.props.history.push('/emhome');\r\n this.props.history.push('/home' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n if (guestLoggedIn === \"false\") {\r\n setTimeout(() => {\r\n this.props.history.push('/login' + urlPattern);\r\n this.setState({ loading: false });\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n\r\n }\r\n\r\n // guestLoginAtTheTimeOfPlaceOrder\r\n if (guestLoggedIn === \"false\") {\r\n if (!response.response.outletDetails.guestLoginAtTheTimeOfPlaceOrder) {\r\n sessionStorage.setItem(\"login-page-session\", 2); // Item Session \r\n setTimeout(() => {\r\n this.props.history.push('/login' + urlPattern);\r\n this.setState({ loading: false });\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n }\r\n\r\n //// Table Check \r\n setTimeout(() => {\r\n this.getCMSDetails(true);\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n\r\n this.setState({ APIResponseMsg: \"Failed to fetch\", loading: false });\r\n }\r\n\r\n })\r\n .catch(err => {\r\n this.setState({ APIResponseMsg: \"Outlet Details - Failed to fetch\", loading: false })\r\n // console.log('Outlet Details - Failed to fetch - ' + err);\r\n this.showMessage('Outlet Details - Failed to fetch - ' + err, \"danger\");\r\n });\r\n }\r\n\r\n // componentWillMount() {\r\n // loadjs('../../ assets/js/jquery341.min.js', function () {\r\n // loadjs('../../assets/js/theme.js');\r\n // });\r\n // }\r\n\r\n render() {\r\n return (\r\n <>\r\n {this.state.loading && }\r\n {this.state.pageLoading && }\r\n
\r\n {this.state.msgShow && }\r\n
\r\n
\r\n
\r\n \r\n {this.state.sliderImages.map(img =>\r\n
\r\n \"lucid-slider-contact-less-order\"\r\n
\r\n )}\r\n {/*
\r\n \"slider\"\r\n
\r\n
\r\n \"slider\"\r\n
\r\n
\r\n \"slider\"\r\n
*/}\r\n
\r\n
\r\n {/*
\r\n
\r\n
Recipes You Might Like...
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \"you\r\n
\r\n
Chicken Fried Steak
\r\n
\r\n
\r\n
\r\n \"you\r\n
\r\n
Grilled Fish Tacos
\r\n
\r\n
\r\n
\r\n \"you\r\n
\r\n
Steak with Garlic
\r\n
\r\n
\r\n
\r\n \"you\r\n
\r\n
Harvest Salad
\r\n
\r\n
\r\n
\r\n \"you\r\n
\r\n
Cheesy Pizza
\r\n
\r\n
\r\n
\r\n \"you\r\n
\r\n
Teriyaki Chicken
\r\n
\r\n
\r\n
*/}\r\n\r\n {isappOrders === true &&\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n {/*
Popular Categories
*/}\r\n {/*

Casual Dining - Andhra, Biryani, North Indian, Chinese

*/}\r\n {sessionStorage.getItem(\"user-servicetype\") !== \"NONE\" &&

Service Type : {sessionStorage.getItem(\"user-servicetype\") === \"FINE-DINE\" ? 'Table Service' : sessionStorage.getItem(\"user-servicetype\")}

}\r\n {sessionStorage.getItem(\"user-servicetype\") === \"FINE-DINE\" &&

Table No: {sessionStorage.getItem(\"user-tableno\")}

}\r\n {(this.state.groupPin !== \"\" && this.state.groupPin != null) &&

Group Pin: {this.state.groupPin}

}\r\n\r\n
\r\n
\r\n
\r\n
\r\n }\r\n\r\n
\r\n
    \r\n {/*

    Loading...

    */}\r\n {this.state.getMenus.length === 0 &&\r\n \r\n

    \r\n
    {this.state.APIResponseMsg}
    \r\n
    \r\n {/* {this.state.APIResponseMsg === \"Failed to fetch\" ?
    :
    } */}\r\n
    \r\n

    \r\n
    \r\n }\r\n {\r\n this.state.APIResponseMsg === \"\" && serviceType !== \"NONE\" &&\r\n
    this.goToItems()}>{(isappOrders === true) ? \"Order Now\" : \"Go To Menu\"}
    \r\n }\r\n {\r\n this.state.pagePreview !== \"\" &&\r\n
    \r\n }\r\n\r\n {this.state.showOutlets && this.outletListDom()}\r\n {this.state.showServiceTypes && this.serviceTypeListDom()}\r\n\r\n {this.state.groupMemberList.length > 0 &&\r\n
    \r\n
    Group Members
    \r\n
    \r\n
      \r\n {\r\n this.state.groupMemberList.map(m =>\r\n
    • \r\n {m.guestName === '' &&
      {m.guestMobileNumber}{m.isMainGuest && (Main)}{(m.guestMobileNumber === mobileNo && !m.isMainGuest) && (You)}
      }\r\n {m.guestName !== '' &&
      {m.guestName}{m.isMainGuest && (Main)}{(m.guestMobileNumber === mobileNo && !m.isMainGuest) && (You)}
      }\r\n
    • \r\n\r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n }\r\n {/* {\r\n this.state.getMenus.map(grp =>\r\n
  • this.goToItems(grp.menuGroupId, grp.menuGroupName)}>\r\n \r\n
    \r\n
    \r\n \"dish-menu\"\r\n
    \r\n

    {grp.menuGroupName}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
  • \r\n )} */}\r\n\r\n {this.state.bannerImgs.length > 0 &&\r\n this.state.bannerImgs.map(img =>\r\n
    \r\n \"banner\"\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, { Component } from 'react';\r\nimport { withRouter } from 'react-router-dom'\r\nimport './cart.scss';\r\nimport uuid from 'react-uuid';\r\nimport LoadingAnimation from '../../components/loadinganimation';\r\nimport ErrorAlert from '../../components/alertmessages';\r\nimport sHelpers from '../../modules/helpers/statichelpers';\r\nimport Config from '../../data/SiteConfig';\r\nlet serviceType = '';\r\nlet guestLoggedIn = false;\r\nlet urlPattern = '';\r\nclass CartDetail extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.goCart = this.goCart.bind(this);\r\n this.goBill = this.goBill.bind(this);\r\n this.state = {\r\n showHide: false,\r\n getMenus: this.props.getMenus,\r\n getItems: this.props.getItems,\r\n loading: false,\r\n alertMessage: '',\r\n msgType: '',\r\n msgShow: false,\r\n userSessionId:this.props.userSessionId\r\n }\r\n }\r\n\r\n componentWillMount() {\r\n \r\n serviceType = sessionStorage.getItem('user-servicetype');\r\n guestLoggedIn = sessionStorage.getItem('user-loggedin') == null ? \"false\" : sessionStorage.getItem('user-loggedin');\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n if (!urlPattern) { \r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n }\r\n\r\n goCart() { \r\n /// user Session Validation \r\n if (!sHelpers.userSessionValidation(this.props.userSessionId)) {\r\n this.showMessage(\"Your session has been expired, please try again\", \"danger\"); \r\n setTimeout(() => { \r\n window.location.reload(true);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n\r\n if (this.props.totalItems === 0) {\r\n this.showMessage(\"Cart is Empty\", \"danger\");\r\n return false;\r\n }\r\n this.setState({ loading: true });\r\n sessionStorage.setItem('user-vendorOrderId', uuid());\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/cart' + urlPattern);\r\n }, 1200);\r\n }\r\n goBill() {\r\n if (guestLoggedIn === \"true\") {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n\r\n this.setState({ loading: false });\r\n this.props.history.push('/mybills' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n this.setState({ loading: true });\r\n sessionStorage.setItem(\"login-page-session\", 7); // PayBill \r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/login' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n }\r\n\r\n showMessage(msg, type) {\r\n window.scrollTo(0, 0);\r\n this.setState({ msgShow: true });\r\n this.setState({ msgType: type });\r\n this.setState({ alertMessage: msg });\r\n this.setState({ loading: false });\r\n setTimeout(() => {\r\n this.setState({ msgShow: false });\r\n }, Config.minMsgTimeout);\r\n };\r\n render() {\r\n return (\r\n
\r\n {this.state.loading && }\r\n {this.state.msgShow && }\r\n {serviceType !== 'FINE-DINE' &&\r\n
\r\n
{this.props.totalItems} Items | ₹{this.props.totalAmount.toFixed(2)}
\r\n
View Cart
\r\n
\r\n }\r\n {serviceType === 'FINE-DINE' &&\r\n
\r\n {/* {!this.props.checkOutTypewithPay &&\r\n
\"lucid-post-paid\"View Bill
\r\n }\r\n {this.props.checkOutTypewithPay &&\r\n
\"lucid-post-paid\"Pay Bill
\r\n } */}\r\n\r\n
Place Order ( {this.props.totalItems} )\r\n
\r\n
\r\n }\r\n\r\n
\r\n )\r\n }\r\n}\r\nexport default withRouter(CartDetail)","import React, { Component } from 'react';\r\nimport './popupmenus.scss';\r\nimport Config from '../../data/SiteConfig';\r\nlet urlPattern = '';\r\nexport default class PopupMenus extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.goCart = this.goCart.bind(this);\r\n this.state = {\r\n showHide: false,\r\n recommendedList: [],\r\n getMenus: [],\r\n activeMenuGroup: -1,\r\n selectedClassificationTxt: \"\"\r\n }\r\n }\r\n componentWillMount() {\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n if (!urlPattern) { \r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({ recommendedList: this.props.recommendedList });\r\n this.setState({ getMenus: this.props.getMenus });\r\n this.setState({ selectedClassificationTxt: this.props.selectedClassificationTxt });\r\n };\r\n\r\n handleMenuGroupClick(index, mnuid) {\r\n this.setState({\r\n activeMenuGroup: index,\r\n });\r\n // window.location.hash = '#' + mnuid; \r\n var stickyContainer = document.getElementById(\"\" + mnuid + \"\");\r\n console.log(stickyContainer.offsetTop + 170);\r\n // window.scrollTo(0, stickyContainer.offsetTop);\r\n window.scrollTo({\r\n top: stickyContainer.offsetTop - 200,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n\r\n goCart() {\r\n this.props.history.push('/cart' + urlPattern);\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n {/* Filter Menu Group Popup*/}\r\n
\r\n
\r\n
\r\n {/*
\r\n
Modal title
\r\n \r\n
*/}\r\n
\r\n
    \r\n {this.props.recommendedList.length > 0 &&\r\n
  • \r\n Recommended\r\n {this.state.recommendedList.length}\r\n
  • \r\n }\r\n {this.props.getMenus.map((itmgrp, idx) =>\r\n
  • \r\n {itmgrp.menuGroupName.toLowerCase()}\r\n {itmgrp.noOfItems}\r\n
  • \r\n )}\r\n
\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 from 'react';\r\nimport PropTypes from 'prop-types';\r\nconst Checkbox = ({ type = 'checkbox', name,id, checked = false,access, onChange }) => (\r\n \r\n );\r\n \r\n Checkbox.propTypes = {\r\n type: PropTypes.string, \r\n name: PropTypes.string.isRequired,\r\n id: PropTypes.string.isRequired, \r\n checked: PropTypes.bool, \r\n access: PropTypes.bool.isRequired,\r\n onChange: PropTypes.func.isRequired\r\n } \r\n \r\n export default Checkbox;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nconst Radio = ({ type = 'radio', name, id, checked, access, onChange }) => (\r\n \r\n);\r\n\r\nRadio.propTypes = {\r\n type: PropTypes.string,\r\n name: PropTypes.string.isRequired,\r\n id: PropTypes.string.isRequired,\r\n checked: PropTypes.bool,\r\n access: PropTypes.bool.isRequired,\r\n onChange: PropTypes.func.isRequired\r\n}\r\n\r\nexport default Radio;","import React, { Component } from 'react';\r\n//import { render } from 'react-dom';\r\nimport './modifier.scss';\r\nimport Checkbox from '../checkbox/modifiercheckbox';\r\nimport Radio from '../radionbutton/modifierradiobutton';\r\nimport uuid from 'react-uuid';\r\n//import Cart from '../../components/cart';\r\nlet modifiercartItemList = [];\r\nlet itemModifierRate = 0;\r\nlet cartList = {};\r\nlet taxList = [];\r\nlet chargeList = [];\r\nlet itemGroupId = 0;\r\n//let itemTaxId = 0;\r\nlet itemId = 0;\r\nlet itemName = \"\";\r\nlet itemRate = 0;\r\nlet itemQtyId = \"\";\r\n//let itemQty = 0;\r\nlet itemTotalAmout = 0;\r\nlet itemTotalItems = 0;\r\n//let modifierDom = '';\r\n//let outletDetailsStr = '';\r\n\r\n\r\nexport default class Modifier extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.handleModifier = this.handleModifier.bind(this);\r\n this.state = {\r\n modifierList: [],\r\n modifierGroupIds: [],\r\n checkId: -1,\r\n checkboxstatus: false,\r\n checkedItems: new Map(),\r\n showActionFilterList: false,\r\n totalItems: 0,\r\n totalAmount: 0,\r\n modifierItemCQty: 0,\r\n modifierItemCRate: 0,\r\n modifierItemCQtyId: \"\",\r\n modifierItemCItemName: \"\",\r\n modifierItemCItemId: 0,\r\n modifierItemCFoodType: 0,\r\n modifierItemCGroupId: 0,\r\n modifierItemCtaxId: 0,\r\n modifiterItemModifierRate: 0,\r\n radiostatus: null,\r\n showModal: false,\r\n outletDetailsStr: JSON.parse(sessionStorage.getItem('user-outletDetails')) || {}\r\n\r\n }\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleRadioChange = this.handleRadioChange.bind(this);\r\n this.handleAddItem = this.handleAddItem.bind(this);\r\n }\r\n\r\n componentWillMount() {\r\n\r\n this.setState({\r\n modifierItemCGroupId: this.props.modifierItemCGroupId,\r\n modifierItemCItemId: this.props.modifierItemCItemId,\r\n modifierItemCItemName: this.props.modifierItemCItemName,\r\n modifierItemCQtyId: this.props.modifierItemCQtyId,\r\n modifierItemCQty: this.props.modifierItemCQty,\r\n modifierItemCRate: this.props.modifierItemCRate,\r\n modifierItemCFoodType: this.props.modifierItemCFoodType,\r\n modifiterItemModifierRate: this.props.modifierItemCRate,\r\n showModal: this.props.showModal,\r\n radiostatus: null\r\n });\r\n // console.log(this.props.showModal);\r\n\r\n }\r\n\r\n componentDidMount() {\r\n\r\n if (sessionStorage.getItem(\"cartModifierList\") != null) {\r\n modifiercartItemList = JSON.parse(sessionStorage.getItem(\"cartModifierList\"));\r\n }\r\n else {\r\n modifiercartItemList = [];\r\n // this.setState({ totalAmount: this.props.modifierItemCRate });\r\n }\r\n // console.log(this.state.radiostatus);\r\n\r\n }\r\n\r\n\r\n handleModifier() {\r\n itemModifierRate = this.props.modifierItemCRate;\r\n this.setState({ modifiterItemModifierRate: this.props.modifierItemCRate });\r\n // console.log(this.state.checkedItems);\r\n this.setState({ radiostatus: null });\r\n this.setState({ checkedItems: new Map(), showModal: this.props.showModal });\r\n //document.getElementById('div-modifier-body').innerHTML = '';\r\n this.handleGenerateModifierDom();\r\n // console.log(modifierDom);\r\n //document.getElementById('div-modifier-body').innerHTML = modifierDom === null ? '' : modifierDom;\r\n modifiercartItemList = [];\r\n // console.log(this.props.showModal);\r\n // console.log(this.state.showModal);\r\n // console.log(this.state.radiostatus);\r\n this.inputElement.click();\r\n // alert();\r\n //this.props.callBackModifier();\r\n }\r\n\r\n handleGenerateModifierDom() {\r\n // Addd by vijay on 27-12-2023 Jira id -2036 \r\n const sortedModifierGroups = this.props.modifierGroupIds\r\n .map(mid => this.props.modifierList.find(mgrplst => mgrplst.modifierGroupId === mid))\r\n .filter(mgrp => mgrp).sort((a, b) => a.displayOrder - b.displayOrder); // Filter out undefined values \r\n\r\n return (\r\n \r\n );\r\n // }\r\n\r\n //document.getElementById('div-modifier-body').innerHTML = mdofierDom;\r\n };\r\n\r\n handleCheckSelectedValue() {\r\n let mgroup = {};\r\n let selectedgroup = [];\r\n let select = true;\r\n Array.prototype.forEach.call(this.props.modifierGroupIds, mid => {\r\n mgroup = this.props.modifierList.filter(x => x.modifierGroupId === mid);\r\n\r\n selectedgroup = modifiercartItemList.filter(m => m.modifierGroupId === mid);\r\n\r\n // console.log(mgroup[0].minimumSelection);\r\n // console.log(selectedgroup.length);\r\n\r\n if (mgroup[0].minimumSelection > 0) {\r\n if (mgroup[0].minimumSelection > selectedgroup.length) {\r\n document.getElementById('modifier-alert-msg').innerHTML = \"You have to select minimum \" + mgroup[0].minimumSelection + \" addons for this \" + mgroup[0].groupName + \"\";\r\n setTimeout(function () { document.getElementById('modifier-alert-msg').innerHTML = '' }, 1500);\r\n select = false;\r\n return select;\r\n }\r\n }\r\n // console.log(mgroup[0]);\r\n // console.log(selectedgroup);\r\n });\r\n // console.log(select);\r\n return select;\r\n\r\n }\r\n\r\n handleAddItem() {\r\n if (!this.handleCheckSelectedValue()) {\r\n // console.log('false');\r\n return false;\r\n }\r\n // console.log('jk');\r\n // console.log(itemQtyId);\r\n // console.log(modifiercartItemList); \r\n let exmodifierList = sessionStorage.getItem(\"modifierCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"modifierCartList\"));\r\n cartList = sessionStorage.getItem(\"cartList\") != null ? JSON.parse(sessionStorage.getItem(\"cartList\")) : cartList = { mobileNo: 0, totalItems: 0, totalAmount: 0, itemList: [] };\r\n taxList = sessionStorage.getItem(\"taxCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"taxCartList\"));\r\n chargeList = sessionStorage.getItem(\"chargeCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"chargeCartList\"));\r\n // merge Item\r\n // let exleng = [];\r\n // let leng = 0; \r\n // Array.prototype.forEach.call(modifiercartItemList, md => {\r\n // leng = exmodifierList.filter(x => x.modifierGroupId === md.modifierGroupId && x.modifierId === md.modifierId && x.itemId === md.itemId).length;\r\n // console.log(\"group:\" + md.modifierGroupId + \", mid : \" + md.modifierId + \", Iid : \" + md.itemId);\r\n // console.log(leng);\r\n // if (leng > 0) {\r\n // exleng.push({ modifierId: md.modifierId, itemId: md.itemId, modifierGroupId: md.modifierGroupId, modifierName: md.modifierName, rate: md.rate, foodType: md.foodType, ctrl: md.ctrl });\r\n // }\r\n // });\r\n // console.log(\"EX MDO\");\r\n // console.log(exleng);\r\n\r\n let uid = uuid();\r\n\r\n\r\n // if (modifiercartItemList.length !== exleng.length) { \r\n // Array.prototype.forEach.call(modifiercartItemList, md => {\r\n // exmodifierList.push({ modifierId: md.modifierId, itemId: md.itemId, modifierGroupId: md.modifierGroupId, modifierName: md.modifierName, rate: md.rate, foodType: md.foodType, ctrl: md.ctrl,uid: uid })\r\n // });\r\n // cartList.itemList.push({ id: \"\" + itemQtyId + \"\", itemId: itemId, groupId: itemGroupId, foodType: this.props.modifierItemCFoodType, qty: 1, rate: itemRate, itemName: itemName, isModifier: 1,uid: uid });\r\n // itemQty+=1;\r\n // }\r\n // else {\r\n // itemQty +=1;\r\n // let index = cartList.itemList.findIndex(x => x.id === \"\" + itemQtyId + \"\");\r\n // if (index < 0) {\r\n // cartList.itemList.push({ id: \"\" + itemQtyId + \"\", itemId: itemId, groupId: itemGroupId, foodType: this.props.modifierItemCFoodType, qty: itemQty, rate: itemRate, itemName: itemName, isModifier: 1 });\r\n // }\r\n // else {\r\n // cartList.itemList[index].qty = (cartList.itemList[index].qty + 1);\r\n // } \r\n // }\r\n\r\n // console.log(modifiercartItemList);\r\n // console.log(exmodifierList);\r\n\r\n // not merge the item\r\n Array.prototype.forEach.call(modifiercartItemList, md => {\r\n let txList = this.modifierItemTaxCalc(md.taxId, md.rate, 1, itemId, uid);\r\n let txAmount = txList.reduce((prev, next) => prev + next.taxAmount, 0);\r\n let chgList = this.modifierItemChargeCalc(md.chargeIds, md.rate, 1, md.itemId, uid);\r\n let chgAmount = chgList.reduce((prev, next) => prev + next.taxAmount, 0);\r\n exmodifierList.push({ itemId: md.itemId, modifierGroupId: md.modifierGroupId, modifierGroupName: md.modifierGroupName, modifierId: md.modifierId, modifierName: md.modifierName, rate: md.rate, foodType: md.foodType, taxes: txList, totalTaxAmount: txAmount, charges: chgList, totalChargeAmount: chgAmount, ctrl: md.ctrl, uid: uid, taxId: md.taxId, chargeIds: md.chargeIds })\r\n });\r\n this.itemTaxCalc(this.props.modifierItemCTaxId, itemRate, 1, itemId, uid);\r\n this.itemChargeCalc(this.props.modifierItemCChargeIds, itemRate, 1, itemId, uid);\r\n cartList.itemList.push({ id: \"\" + itemQtyId + \"\", itemId: itemId, groupId: itemGroupId, foodType: this.props.modifierItemCFoodType, qty: 1, rate: itemRate, itemName: itemName, isModifier: 1, uid: uid, taxId: this.props.modifierItemCTaxId, chargeIds: this.props.modifierItemCChargeIds });\r\n //itemQty+=1;\r\n\r\n // re calculate cart value \r\n let cartItemValue = 0;\r\n let cartItemQty = 0;\r\n let modifierCartValue = 0;\r\n Array.prototype.forEach.call(cartList.itemList, itm => {\r\n // console.log(itm.qty);\r\n cartItemValue += (itm.rate * itm.qty);\r\n cartItemQty += itm.qty;\r\n // console.log(cartItemValue);\r\n let mdcartItemList = exmodifierList.filter(x => x.uid === itm.uid);\r\n // console.log(mdcartItemList);\r\n Array.prototype.forEach.call(mdcartItemList, md => {\r\n modifierCartValue += md.rate * itm.qty;\r\n });\r\n });\r\n\r\n\r\n let totlaQty = document.getElementById(\"\" + itemQtyId + \"\").innerHTML === \"\" ? 0 : JSON.parse(document.getElementById(\"\" + itemQtyId + \"\").innerHTML);\r\n document.getElementById(\"\" + itemQtyId + \"\").innerHTML = (totlaQty + 1);\r\n\r\n itemTotalItems = cartItemQty;\r\n itemTotalAmout = (cartItemValue + modifierCartValue);\r\n this.setState({ totalAmount: itemTotalAmout, totalItems: itemTotalItems });\r\n\r\n // add cart list\r\n\r\n\r\n cartList.totalItems = itemTotalItems;\r\n cartList.totalAmount = itemTotalAmout\r\n\r\n\r\n sessionStorage.setItem(\"modifierCartList\", JSON.stringify(exmodifierList));\r\n sessionStorage.setItem(\"cartList\", JSON.stringify(cartList));\r\n sessionStorage.setItem(\"taxCartList\", JSON.stringify(taxList));\r\n sessionStorage.setItem(\"chargeCartList\", JSON.stringify(chargeList));\r\n\r\n //console.log(JSON.parse(sessionStorage.getItem(\"cartList\")));\r\n // console.log(JSON.parse(sessionStorage.getItem(\"modifierCartList\")));\r\n // console.log(JSON.parse(sessionStorage.getItem(\"taxCartList\")));\r\n\r\n // sessionStorage.setItem(\"cartModifierList\", JSON.stringify(modifiercartList));\r\n // console.log(JSON.stringify(modifiercartList));\r\n\r\n // document.getElementById('modifier-modal').modal('hide');\r\n // document.getElementById(\"modifier-modal\").classList.remove(\"show\", \"d-block\");\r\n\r\n // document.getElementById(\"modifier-modal\").classList.remove(\"show\", \"d-block\");\r\n // document.getElementsByName(\"body\").classList.remove(\"modal-open\", \"modal-open\");\r\n // document.querySelectorAll(\".modal-backdrop\")\r\n // .forEach(el => el.classList.remove(\"modal-backdrop\"));\r\n\r\n document.body.classList.remove('modal-open');\r\n let modalPopup = document.querySelector('.modal-backdrop');\r\n if (modalPopup !== null) {\r\n modalPopup.classList.remove('modal-backdrop', 'fade', 'show');\r\n }\r\n\r\n\r\n this.setState({ showModal: false });\r\n\r\n this.setState({ checkedItems: new Map() });\r\n modifiercartItemList = [];\r\n this.props.callBackModifier();\r\n\r\n };\r\n\r\n itemTaxCalc(taxId, rate, qty, itemId, uid) {\r\n // console.log(this.props.getTaxes);\r\n let cList = this.props.getTaxes.filter(x => x.taxId === taxId);\r\n // console.log(cList);\r\n let taxObj = [];\r\n let taxAmt = 0;\r\n let itemValue = rate * qty;\r\n let bInsertTax = false;\r\n if (cList.length > 0) {\r\n Array.prototype.forEach.call(cList[0].structure, tx => {\r\n bInsertTax = false;\r\n taxAmt = 0;\r\n //Applicable on = 2 Discount Value && applicableon = 1 direct value\r\n if (tx.applicableOn === 3) { // Tax on Tax \r\n let serialTax = taxObj.filter(x => x.serialNo === tx.taxOnSerialNo);\r\n if (serialTax.length > 0) {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = serialTax[0].taxAmount * tx.taxValue * 0.01;\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue * qty;\r\n\r\n bInsertTax = true;\r\n\r\n }\r\n }\r\n else {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = itemValue * tx.taxValue * 0.01;\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue * qty; // \r\n\r\n bInsertTax = true;\r\n }\r\n\r\n if (bInsertTax === true) {\r\n taxObj.push({ itemId: itemId, uid: uid, taxId: taxId, taxGroupName: cList[0].taxName, serialNo: tx.serialNo, taxCode: tx.taxCode, taxName: tx.taxName, applicableOn: tx.applicableOn, taxType: tx.taxType, taxValue: tx.taxValue, taxAmount: Number((taxAmt).toFixed(2)) });\r\n taxList.push({ itemId: itemId, uid: uid, taxId: taxId, taxGroupName: cList[0].taxName, serialNo: tx.serialNo, taxCode: tx.taxCode, taxName: tx.taxName, applicableOn: tx.applicableOn, taxType: tx.taxType, taxValue: tx.taxValue, taxAmount: Number((taxAmt).toFixed(2)) });\r\n }\r\n });\r\n }\r\n };\r\n\r\n itemChargeCalc(chargeId, rate, qty, itemId, uid) {\r\n // console.log(chargeId);\r\n if (chargeId.length > 0) {\r\n Array.prototype.forEach.call(chargeId, cId => {\r\n // filter based on Item wise & Item Qty wise => apply category\r\n let chargelist = this.props.getCharges.filter(x => x.chargeId === cId && x.applyTo === 1 && x.applyType === 1);\r\n let taxlist = [];\r\n let taxObj = [];\r\n let taxAmt = 0;\r\n let itemValue = rate * qty;\r\n // console.log(chargelist);\r\n let chargeAmt = 0;\r\n if (chargelist.length > 0) {\r\n Array.prototype.forEach.call(chargelist, chg => {\r\n let rnTaxAmt = 0;\r\n if (chg.applyType === 2) { // slabe wise (%) - only for slab base value from and value to (percentage =>itmvalue * per * 0.01) or amount=> direct slab amount) \r\n let cslab = chg.chargeSlab.filter(x => x.ValueFrom > itemValue && x.ValueTo < itemValue)\r\n if (cslab.length > 0) {\r\n if (cslab.chargeValueType === 1)\r\n chargeAmt = itemValue * chg.chargeValue * 0.01;\r\n else if (cslab.chargeValueType === 2)\r\n chargeAmt = cslab.ChargeValue;\r\n }\r\n }\r\n else if (chg.chargeValueType === 2) // Amount only qty based \r\n chargeAmt = chg.chargeValue * qty; // \r\n // console.log(chargeAmt);\r\n // Tax \r\n taxlist = this.props.getTaxes.filter(x => x.taxId === chg.taxId);\r\n if (taxlist.length > 0) {\r\n Array.prototype.forEach.call(taxlist[0].structure, tx => {\r\n taxAmt = 0;\r\n if (tx.applicableOn === 3) {\r\n let serialTax = taxObj.filter(x => x.serialNo === tx.taxOnSerialNo);\r\n if (serialTax.length > 0) {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = serialTax[0].taxAmount * tx.taxValue * 0.01;\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue;\r\n }\r\n }\r\n else {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = (chargeAmt * tx.taxValue * 0.01);\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue; // \r\n }\r\n rnTaxAmt += taxAmt;\r\n taxObj.push({ itemId: itemId, uid: uid, chargeId: chg.chargeId, taxId: chg.taxId, taxGroupName: taxlist[0].taxName, serialNo: tx.serialNo, taxCode: tx.taxCode, taxName: tx.taxName, applicableOn: tx.applicableOn, taxType: tx.taxType, taxValue: tx.taxValue, taxAmount: Number((taxAmt).toFixed(2)) });\r\n })\r\n //console.log(taxObj);\r\n }\r\n chargeList.push({ itemId: itemId, uid: uid, chargeId: chg.chargeId, chargeName: chg.chargeName, chargeType: chg.chargeType, isMerchantCharge: false, chargeValueType: chg.chargeValueType, chargeValue: chg.chargeValue, chargeAmount: Number((chargeAmt).toFixed(2)), taxes: taxObj, totalTaxAmount: rnTaxAmt });\r\n\r\n });\r\n // console.log(chargeList);\r\n }\r\n });\r\n }\r\n };\r\n //\r\n modifierItemTaxCalc(taxId, rate, qty, itemId, uid) {\r\n let cList = this.props.getTaxes.filter(x => x.taxId === taxId);\r\n let taxObj = [];\r\n let taxAmt = 0;\r\n let itemValue = rate * qty;\r\n\r\n let bInsertTax = false;\r\n if (cList.length > 0) {\r\n Array.prototype.forEach.call(cList[0].structure, tx => {\r\n bInsertTax = false;\r\n taxAmt = 0;\r\n //Applicable on = 2 Discount Value && applicableon = 1 direct value\r\n if (tx.applicableOn === 3) { // Tax on Tax \r\n let serialTax = taxObj.filter(x => x.serialNo === tx.taxOnSerialNo);\r\n if (serialTax.length > 0) {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = serialTax[0].taxAmount * tx.taxValue * 0.01;\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue * qty;\r\n\r\n bInsertTax = true;\r\n }\r\n }\r\n else {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = itemValue * tx.taxValue * 0.01;\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue * qty; // \r\n\r\n bInsertTax = true;\r\n }\r\n\r\n if (bInsertTax === true) {\r\n taxObj.push({ itemId: itemId, uid: uid, taxId: taxId, taxGroupName: cList[0].taxName, serialNo: tx.serialNo, taxCode: tx.taxCode, taxName: tx.taxName, applicableOn: tx.applicableOn, taxType: tx.taxType, taxValue: tx.taxValue, taxAmount: Number((taxAmt).toFixed(2)) });\r\n }\r\n });\r\n }\r\n return taxObj;\r\n };\r\n\r\n modifierItemChargeCalc(chargeId, rate, qty, itemId, uid) {\r\n // console.log(chargeId);\r\n // Null handeled\r\n chargeId = chargeId === null ? [] : chargeId;\r\n\r\n let modifierChargeList = [];\r\n if (chargeId.length > 0) {\r\n Array.prototype.forEach.call(chargeId, cId => {\r\n // filter based on Item wise & Item Qty wise => apply category\r\n let chargelist = this.props.getCharges.filter(x => x.chargeId === cId && x.applyTo === 1 && x.applyType === 1);\r\n let taxlist = [];\r\n let taxObj = [];\r\n let taxAmt = 0;\r\n let itemValue = rate * qty;\r\n //console.log(chargelist);\r\n let chargeAmt = 0;\r\n if (chargelist.length > 0) {\r\n Array.prototype.forEach.call(chargelist, chg => {\r\n let rnTaxAmt = 0;\r\n if (chg.applyType === 2) { // slabe wise (%) - only for slab base value from and value to (percentage =>itmvalue * per * 0.01) or amount=> direct slab amount) \r\n chg.chargeSlab = chg.chargeSlab === null ? [] : chg.chargeSlab;\r\n let cslab = chg.chargeSlab.filter(x => x.ValueFrom > itemValue && x.ValueTo < itemValue)\r\n if (cslab.length > 0) {\r\n if (cslab.chargeValueType === 1)\r\n chargeAmt = itemValue * chg.chargeValue * 0.01;\r\n else if (cslab.chargeValueType === 2)\r\n chargeAmt = cslab.ChargeValue;\r\n }\r\n }\r\n else if (chg.chargeValueType === 2) // Amount only qty based \r\n chargeAmt = chg.chargeValue * qty; // \r\n // console.log(chargeAmt);\r\n // Tax \r\n taxlist = this.props.getTaxes.filter(x => x.taxId === chg.taxId);\r\n if (taxlist.length > 0) {\r\n Array.prototype.forEach.call(taxlist[0].structure, tx => {\r\n taxAmt = 0;\r\n if (tx.applicableOn === 3) { //tax on tax\r\n let serialTax = taxObj.filter(x => x.serialNo === tx.taxOnSerialNo);\r\n if (serialTax.length > 0) {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = serialTax[0].taxAmount * tx.taxValue * 0.01;\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue;\r\n }\r\n }\r\n else {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = (chargeAmt * tx.taxValue * 0.01);\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue; // \r\n }\r\n\r\n rnTaxAmt += taxAmt;\r\n taxObj.push({ itemId: itemId, uid: uid, chargeId: chg.chargeId, taxId: chg.taxId, taxGroupName: taxlist[0].taxName, serialNo: tx.serialNo, taxCode: tx.taxCode, taxName: tx.taxName, applicableOn: tx.applicableOn, taxType: tx.taxType, taxValue: tx.taxValue, taxAmount: Number((taxAmt).toFixed(2)) });\r\n })\r\n // console.log(taxObj);\r\n }\r\n modifierChargeList.push({ itemId: itemId, uid: uid, chargeId: chg.chargeId, chargeName: chg.chargeName, chargeType: chg.chargeType, isMerchantCharge: false, chargeValueType: chg.chargeValueType, chargeValue: chg.chargeValue, chargeAmount: Number((chargeAmt).toFixed(2)), taxes: taxObj, totalTaxAmount: rnTaxAmt });\r\n\r\n });\r\n // console.log(modifierChargeList);\r\n }\r\n });\r\n }\r\n return modifierChargeList;\r\n };\r\n\r\n handleRadioChange(e, modifierId, modifierName, modifierGroupId, groupName, itemId, rate, minQty, maxQty, foodType, taxId, chargeIds) {\r\n const item = e.target.name;\r\n const isChecked = e.target.checked;\r\n //console.log(rate);\r\n // console.log(itemModifierRate);\r\n\r\n let modifierlst = modifiercartItemList.filter(x => x.modifierGroupId === modifierGroupId && x.itemId === itemId);\r\n // console.log(modifierlst);\r\n itemModifierRate = this.state.modifiterItemModifierRate === 0 ? this.props.modifierItemCRate : this.state.modifiterItemModifierRate;\r\n\r\n if (modifierlst.length === 0) {\r\n itemModifierRate += rate;\r\n modifiercartItemList.push({ itemId: itemId, modifierGroupId: modifierGroupId, modifierGroupName: groupName, modifierId: modifierId, modifierName: modifierName, rate: rate, foodType: foodType, taxId: taxId, chargeIds: chargeIds, ctrl: 2 });\r\n this.setState(prevState => ({ checkedItems: prevState.checkedItems.set(item, isChecked) }));\r\n }\r\n else if (modifierlst.length === 1) {\r\n let modifierindex = modifiercartItemList.findIndex(x => x.modifierGroupId === modifierGroupId && x.itemId === itemId);\r\n itemModifierRate -= modifiercartItemList[modifierindex].rate;\r\n modifiercartItemList.splice(modifierindex, 1);\r\n itemModifierRate += rate;\r\n modifiercartItemList.push({ itemId: itemId, modifierGroupId: modifierGroupId, modifierGroupName: groupName, modifierId: modifierId, modifierName: modifierName, rate: rate, foodType: foodType, taxId: taxId, chargeIds: chargeIds, ctrl: 2 });\r\n this.setState(prevState => ({ checkedItems: prevState.checkedItems.set(item, isChecked) }));\r\n }\r\n this.setState({ modifiterItemModifierRate: itemModifierRate });\r\n document.getElementById('min-group-modifier-cnt-' + modifierGroupId).innerHTML = modifiercartItemList.filter(x => x.modifierGroupId === modifierGroupId && x.itemId === itemId && x.ctrl === 2).length;\r\n //console.log(modifiercartItemList);\r\n };\r\n\r\n handleChange(e, modifierId, modifierName, modifierGroupId, groupName, itemId, rate, minQty, maxQty, foodType, taxId, chargeIds) {\r\n const item = e.target.name;\r\n //console.log(e.target.name);\r\n const isChecked = e.target.checked;\r\n //const radionid = e.target.id;\r\n //console.log(isChecked);\r\n //console.log(radionid); \r\n\r\n\r\n let modifierlst = modifiercartItemList.filter(x => x.modifierGroupId === modifierGroupId && x.itemId === itemId);\r\n //console.log(modifierlst.length + \"max : \" + maxQty);\r\n itemModifierRate = this.state.modifiterItemModifierRate === 0 ? this.props.modifierItemCRate : this.state.modifiterItemModifierRate;\r\n if (isChecked) {\r\n if (maxQty > 0) {\r\n if (modifierlst.length + 1 > maxQty) {\r\n document.getElementById('modifier-alert-msg').innerHTML = \"You have already selected max addons for this category\";\r\n setTimeout(function () { document.getElementById('modifier-alert-msg').innerHTML = '' }, 1500);\r\n // alert(\"You have already selected max addons for this category\");\r\n this.setState(prevState => ({ checkedItems: prevState.checkedItems.set(item, !isChecked) }));\r\n }\r\n\r\n else {\r\n itemModifierRate += rate;\r\n modifiercartItemList.push({ itemId: itemId, modifierGroupId: modifierGroupId, modifierGroupName: groupName, modifierId: modifierId, modifierName: modifierName, rate: rate, foodType: foodType, taxId: taxId, chargeIds: chargeIds, ctrl: 1 });\r\n this.setState(prevState => ({ checkedItems: prevState.checkedItems.set(item, isChecked) }));\r\n }\r\n }\r\n else {\r\n itemModifierRate += rate;\r\n modifiercartItemList.push({ itemId: itemId, modifierGroupId: modifierGroupId, modifierGroupName: groupName, modifierId: modifierId, modifierName: modifierName, rate: rate, foodType: foodType, taxId: taxId, chargeIds: chargeIds, ctrl: 1 });\r\n this.setState(prevState => ({ checkedItems: prevState.checkedItems.set(item, isChecked) }));\r\n }\r\n }\r\n else // Unchecked\r\n {\r\n let modifierindex = modifiercartItemList.findIndex(x => x.modifierGroupId === modifierGroupId && x.itemId === itemId && x.modifierId === modifierId);\r\n itemModifierRate -= rate;\r\n modifiercartItemList.splice(modifierindex, 1);\r\n this.setState(prevState => ({ checkedItems: prevState.checkedItems.set(item, isChecked) }));\r\n }\r\n this.setState({ modifiterItemModifierRate: itemModifierRate });\r\n document.getElementById('min-group-modifier-cnt-' + modifierGroupId).innerHTML = modifiercartItemList.filter(x => x.modifierGroupId === modifierGroupId && x.itemId === itemId && x.ctrl === 1).length;\r\n };\r\n\r\n render() {\r\n const { outletDetailsStr } = this.state;\r\n // this.setState({modifierItemCRate: this.props.modifierItemCRate});\r\n // itemModifierRate = itemModifierRate === 0 ? this.props.modifierItemCRate : itemModifierRate;\r\n itemModifierRate = this.state.modifiterItemModifierRate === 0 ? this.props.modifierItemCRate : this.state.modifiterItemModifierRate;\r\n // itemModifierRate = this.props.modifierItemCRate;\r\n itemGroupId = this.state.modifierItemCGroupId === 0 ? this.props.modifierItemCGroupId : this.state.modifierItemCGroupId;\r\n //itemTaxId = this.state.modifierItemCTaxId === 0 ? this.props.modifierItemCTaxId : this.state.modifierItemCTaxId;\r\n itemId = this.state.modifierItemCItemId === 0 ? this.props.modifierItemCItemId : this.state.modifierItemCItemId;\r\n itemName = this.state.modifierItemCItemName === \"\" ? this.props.modifierItemCItemName : this.state.modifierItemCItemName;\r\n itemRate = this.state.modifierItemCRate === 0 ? this.props.modifierItemCRate : this.state.modifierItemCRate;\r\n itemQtyId = this.state.modifierItemCQtyId === \"\" ? this.props.modifierItemCQtyId : this.state.modifierItemCId;\r\n // itemQty = this.state.modifierItemCQty === 0 ? this.props.modifierItemCQty : this.state.modifierItemCQty;\r\n itemTotalAmout = this.state.totalAmount === 0 ? this.props.modifierTotalItemAmount : this.state.totalAmount;\r\n itemTotalItems = this.state.totalItems === 0 ? this.props.modifierTotalItems : this.state.totalItems;\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n
\r\n {/* Show Modifier*/}\r\n {this.state.showModal && (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {this.props.modifierItemCFoodType === 1 && \"item\"}\r\n {this.props.modifierItemCFoodType === 2 && \"item\"}\r\n {this.props.modifierItemCItemName}
\r\n\r\n \r\n
\r\n
\r\n {this.handleGenerateModifierDom()}\r\n {/*
    \r\n {this.props.modifierGroupIds.map(mid =>\r\n
    \r\n
  • \r\n {this.props.modifierList.filter(mgrplst => mgrplst.modifierGroupId === mid).map(mgrp =>\r\n
    \r\n {mgrp.minimumSelection > 0 && *}{mgrp.groupName}\r\n\r\n {mgrp.maximumSelection === 0 &&\r\n (0)\r\n }\r\n {mgrp.maximumSelection > 0 &&\r\n (\r\n 0\r\n /\r\n {mgrp.maximumSelection}\r\n )\r\n }\r\n\r\n
      \r\n {mgrp.modifiers.map(mlst =>\r\n
    • \r\n {mgrp.maximumSelection === 2 && this.handleChange(e, mlst.modifierId, mlst.modifierName, mgrp.modifierGroupId, mgrp.groupName, this.props.modifierItemCItemId, mlst.rate, mgrp.minimumSelection, mgrp.maximumSelection, mlst.foodType, mlst.taxId, mlst.chargeIds)}>}\r\n {mgrp.maximumSelection === 1 && this.handleRadioChange(e, mlst.modifierId, mlst.modifierName, mgrp.modifierGroupId, mgrp.groupName, this.props.modifierItemCItemId, mlst.rate, mgrp.minimumSelection, mgrp.maximumSelection, mlst.foodType, mlst.taxId, mlst.chargeIds)}>}\r\n {mgrp.maximumSelection === 0 && this.handleChange(e, mlst.modifierId, mlst.modifierName, mgrp.modifierGroupId, mgrp.groupName, this.props.modifierItemCItemId, mlst.rate, mgrp.minimumSelection, mgrp.maximumSelection, mlst.foodType, mlst.taxId, mlst.chargeIds)}>}\r\n {mlst.foodType === 1 && \"item\"}\r\n {mlst.foodType === 2 && \"item\"}\r\n {mlst.modifierName} ₹{mlst.rate}\r\n
    • \r\n\r\n )\r\n }\r\n
    \r\n
    \r\n )}\r\n
  • \r\n
    \r\n )}\r\n
*/}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
Item Total ₹{itemModifierRate.toFixed(2)}
\r\n { /*
ADD ITEM
*/}\r\n\r\n
\r\n {(outletDetailsStr.enableGuestAppOrders) ? (\r\n
ADD ITEM
\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, { Component } from 'react';\r\nimport './request.scss';\r\nimport { Tab, Tabs, TabList, TabPanel } from 'react-tabs';\r\nimport 'react-tabs/style/react-tabs.css';\r\nimport Config from '../../data/SiteConfig';\r\nexport default class Request extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.handleRequest = this.handleRequest.bind(this);\r\n this.state = {\r\n // loading: false,\r\n // alertMessage: '',\r\n // msgShow: false,\r\n guestRequestList: [],\r\n requestMasterList: []\r\n }\r\n\r\n }\r\n\r\n handleRequest() {\r\n this.getGuestRequestList();\r\n this.getRequestMasterList();\r\n this.inputElement.click();\r\n }\r\n\r\n getRequestMasterList() {\r\n // this.setState({ loading: true });\r\n let param = 'Module=POS&OutletId=' + this.props.propertyId + this.props.outletCode + '&ServiceType=' + this.props.serviceType;\r\n fetch(Config.baseGuestUrl + 'GetGuestRequestMasterData?' + param, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + this.props.token,\r\n 'content-type': 'application/json'\r\n },\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // this.setState({ loading: false });\r\n // console.log(response);\r\n if (response.errorCode === 0) {\r\n if (response.response != null) {\r\n this.setState({ requestMasterList: response.response.requestNames });\r\n }\r\n else {\r\n this.setState({ requestMasterList: [] });\r\n // this.showMessage(response.message, \"danger\");\r\n }\r\n }\r\n else {\r\n this.setState({ requestMasterList: [] });\r\n // this.showMessage(response.message, \"danger\");\r\n }\r\n\r\n })\r\n .catch(err => {\r\n this.setState({ requestMasterList: [] });\r\n // this.showMessage('Request Master List - Failed to fetch - ' + err, \"danger\");\r\n });\r\n };\r\n\r\n getGuestRequestList() {\r\n this.setState({ loading: true });\r\n let param = 'OutletId=' + this.props.propertyId + this.props.outletCode + '&ServiceType=' + this.props.serviceType + '&GuestMobileNo=' + this.props.mobileNo;\r\n fetch(Config.baseGuestUrl + 'GetGuestRequest?' + param, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + this.props.token,\r\n 'content-type': 'application/json'\r\n },\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // this.setState({ loading: false });\r\n // console.log(response);\r\n if (response.errorCode === 0) {\r\n if (response.response != null) {\r\n this.setState({ guestRequestList: response.response.guestRequest });\r\n }\r\n else {\r\n this.setState({ guestRequestList: [] });\r\n // this.showMessage(response.message, \"danger\");\r\n }\r\n }\r\n else {\r\n this.setState({ guestRequestList: [] });\r\n // this.showMessage(response.message, \"danger\");\r\n }\r\n\r\n })\r\n .catch(err => {\r\n this.setState({ guestRequestList: [] });\r\n // this.showMessage('Guest Request List - Failed to fetch - ' + err, \"danger\");\r\n });\r\n };\r\n\r\n handleSaveGuestRequest(requestName) {\r\n // this.setState({ loading: true });\r\n let postObj = {\r\n OutletId: this.props.propertyId + this.props.outletCode,\r\n RequestType: 0,\r\n ServiceType: this.props.serviceType,\r\n TableNumber: this.props.serviceType === \"FINE-DINE\" ? this.props.tableNo : \"0\",\r\n OrderId: \"\",\r\n BillId: \"\",\r\n GuestMobileNo: this.props.mobileNo,\r\n RequestName: requestName,\r\n Remarks: \"\",\r\n }\r\n\r\n // console.log(postObj);\r\n\r\n fetch(Config.baseGuestUrl + 'SaveGuestRequest', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + this.props.token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.errorCode === 0) {\r\n // this.showMessage(response.message, \"success\");\r\n // this.setState({ loading: false });\r\n this.props.callBackRequest(response.message, 1);\r\n //this.getGuestRequestList();\r\n }\r\n else {\r\n // console.log(response.message);\r\n // this.setState({ loading: false });\r\n this.props.callBackRequest('Error request was not placed', 0);\r\n // this.showMessage('Error request was not placed', \"danger\"); \r\n }\r\n })\r\n .catch(err => {\r\n // console.log(err);\r\n /// this.setState({ loading: false });\r\n this.props.callBackRequest('Error request was not placed', 0);\r\n // this.showMessage('Error request was not placed', \"danger\"); \r\n });\r\n };\r\n\r\n\r\n render() {\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n
\r\n {/* Show Modifier*/}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Help\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n Help \r\n My Request ({this.state.guestRequestList.length})\r\n
\r\n
\r\n
\r\n \r\n
\r\n
    \r\n {\r\n this.state.requestMasterList.map((req, idx) =>\r\n
  • \r\n
    \r\n
    \r\n
    {req}
    \r\n \r\n
    \r\n\r\n
    \r\n
  • \r\n\r\n )\r\n }\r\n
\r\n
\r\n {this.state.requestMasterList.length === 0 &&\r\n
\r\n
\"lucid-no-orders\"
\r\n
\r\n }\r\n
\r\n \r\n
\r\n
    \r\n {\r\n this.state.guestRequestList.map((req, idx) =>\r\n
  • \r\n
    \r\n
    {req.requestName}
    \r\n {/* */}\r\n
    \r\n {req.remarks}\r\n
    \r\n {req.status === \"Open\" &&
    {req.status}
    }\r\n {req.status === \"Processing\" &&
    {req.status}
    }\r\n {req.status === \"Acknowledge\" &&
    {req.status}
    }\r\n {req.status === \"Closed\" &&
    {req.status}
    }\r\n {req.status === \"Cancelled\" &&
    {req.status}
    }\r\n
    Updated Time {req.statusUpdatedTime}
    \r\n {req.reason !== \"\" &&\r\n
    \r\n Reason: {req.reason}\r\n
    \r\n }\r\n
    \r\n
  • \r\n\r\n )\r\n }\r\n
\r\n
\r\n {this.state.guestRequestList.length === 0 &&\r\n
\r\n
\"lucid-no-orders\"
\r\n
\r\n }\r\n\r\n
\r\n
\r\n {/* {this.handleGenerateModifierDom()} */}\r\n {/*
    \r\n {this.props.modifierGroupIds.map(mid =>\r\n
    \r\n
  • \r\n {this.props.modifierList.filter(mgrplst => mgrplst.modifierGroupId === mid).map(mgrp =>\r\n
    \r\n {mgrp.minimumSelection > 0 && *}{mgrp.groupName}\r\n\r\n {mgrp.maximumSelection === 0 &&\r\n (0)\r\n }\r\n {mgrp.maximumSelection > 0 &&\r\n (\r\n 0\r\n /\r\n {mgrp.maximumSelection}\r\n )\r\n }\r\n\r\n
      \r\n {mgrp.modifiers.map(mlst =>\r\n
    • \r\n {mgrp.maximumSelection === 2 && this.handleChange(e, mlst.modifierId, mlst.modifierName, mgrp.modifierGroupId, mgrp.groupName, this.props.modifierItemCItemId, mlst.rate, mgrp.minimumSelection, mgrp.maximumSelection, mlst.foodType, mlst.taxId, mlst.chargeIds)}>}\r\n {mgrp.maximumSelection === 1 && this.handleRadioChange(e, mlst.modifierId, mlst.modifierName, mgrp.modifierGroupId, mgrp.groupName, this.props.modifierItemCItemId, mlst.rate, mgrp.minimumSelection, mgrp.maximumSelection, mlst.foodType, mlst.taxId, mlst.chargeIds)}>}\r\n {mgrp.maximumSelection === 0 && this.handleChange(e, mlst.modifierId, mlst.modifierName, mgrp.modifierGroupId, mgrp.groupName, this.props.modifierItemCItemId, mlst.rate, mgrp.minimumSelection, mgrp.maximumSelection, mlst.foodType, mlst.taxId, mlst.chargeIds)}>}\r\n {mlst.foodType === 1 && \"item\"}\r\n {mlst.foodType === 2 && \"item\"}\r\n {mlst.modifierName} ₹{mlst.rate}\r\n
    • \r\n\r\n )\r\n }\r\n
    \r\n
    \r\n )}\r\n
  • \r\n
    \r\n )}\r\n
*/}\r\n
\r\n {/*
\r\n
\r\n
Item Total ₹110
\r\n
Add Item
\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, { Component } from 'react';\r\nimport './groupmembers.scss';\r\nimport 'react-tabs/style/react-tabs.css';\r\nimport Config from '../../data/SiteConfig';\r\n\r\nlet mobileNo = sessionStorage.getItem('user-mobileno');\r\nexport default class GroupMembers extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.handleGroupMemberList = this.handleGroupMemberList.bind(this);\r\n this.state = {\r\n groupMemberList: []\r\n }\r\n\r\n }\r\n\r\n handleGroupMemberList() {\r\n this.getGuestDashboardDetails();\r\n this.inputElement.click();\r\n\r\n }\r\n\r\n\r\n getGuestDashboardDetails() {\r\n\r\n let mainGuestMobileNo = sessionStorage.getItem('main-guest-no') == null ? '' : sessionStorage.getItem('main-guest-no');\r\n let token = sessionStorage.getItem('user-token');\r\n let serviceType = sessionStorage.getItem('user-servicetype');\r\n let propertyId = sessionStorage.getItem('user-propertyid');\r\n let outletCode = sessionStorage.getItem('user-outletcode');\r\n let tableNo = sessionStorage.getItem('user-tableno');\r\n let urlParam = '?OutletId=' + propertyId + outletCode + '&ServiceType=' + serviceType + '&TableNumber=' + tableNo + '&guestmobileNumber=' + mobileNo;\r\n //console.log(urlParam);\r\n fetch(Config.basePOSUrl + 'GetGuestAppDashBoardDetails' + urlParam, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.errorCode === 0) {\r\n if (mobileNo === mainGuestMobileNo) {\r\n this.setState({ groupPin: response.response.groupDetails.groupCode });\r\n let groupPin = response.response.groupDetails.groupCode;\r\n sessionStorage.setItem('group-pin', groupPin);\r\n }\r\n else\r\n this.setState({ groupPin: \"\" });\r\n\r\n this.setState({ groupMemberList: response.response.groupDetails.guestDetails });\r\n // this.getDetails(false);\r\n\r\n }\r\n else {\r\n this.showMessage(response.message, \"danger\");\r\n }\r\n })\r\n .catch(err => {\r\n ////console.log(err); \r\n this.showMessage('An error occured - ' + err, \"danger\");\r\n });\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n
\r\n {/* Show Modifier*/}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Group Members\r\n
\r\n\r\n \r\n
\r\n
\r\n {this.state.groupMemberList.length > 0 &&\r\n
\r\n
\r\n
    \r\n {\r\n this.state.groupMemberList.map(m =>\r\n
  • \r\n {m.guestName === '' &&
    {m.guestMobileNumber}{m.isMainGuest && (Main)}{(m.guestMobileNumber === mobileNo && !m.isMainGuest) && (You)}
    }\r\n {m.guestName !== '' &&
    {m.guestName}{m.isMainGuest && (Main)}{(m.guestMobileNumber === mobileNo && !m.isMainGuest) && (You)}
    }\r\n
  • \r\n\r\n )\r\n }\r\n
\r\n
\r\n
\r\n }\r\n\r\n {/* {this.handleGenerateModifierDom()} */}\r\n {/*
    \r\n {this.props.modifierGroupIds.map(mid =>\r\n
    \r\n
  • \r\n {this.props.modifierList.filter(mgrplst => mgrplst.modifierGroupId === mid).map(mgrp =>\r\n
    \r\n {mgrp.minimumSelection > 0 && *}{mgrp.groupName}\r\n\r\n {mgrp.maximumSelection === 0 &&\r\n (0)\r\n }\r\n {mgrp.maximumSelection > 0 &&\r\n (\r\n 0\r\n /\r\n {mgrp.maximumSelection}\r\n )\r\n }\r\n\r\n
      \r\n {mgrp.modifiers.map(mlst =>\r\n
    • \r\n {mgrp.maximumSelection === 2 && this.handleChange(e, mlst.modifierId, mlst.modifierName, mgrp.modifierGroupId, mgrp.groupName, this.props.modifierItemCItemId, mlst.rate, mgrp.minimumSelection, mgrp.maximumSelection, mlst.foodType, mlst.taxId, mlst.chargeIds)}>}\r\n {mgrp.maximumSelection === 1 && this.handleRadioChange(e, mlst.modifierId, mlst.modifierName, mgrp.modifierGroupId, mgrp.groupName, this.props.modifierItemCItemId, mlst.rate, mgrp.minimumSelection, mgrp.maximumSelection, mlst.foodType, mlst.taxId, mlst.chargeIds)}>}\r\n {mgrp.maximumSelection === 0 && this.handleChange(e, mlst.modifierId, mlst.modifierName, mgrp.modifierGroupId, mgrp.groupName, this.props.modifierItemCItemId, mlst.rate, mgrp.minimumSelection, mgrp.maximumSelection, mlst.foodType, mlst.taxId, mlst.chargeIds)}>}\r\n {mlst.foodType === 1 && \"item\"}\r\n {mlst.foodType === 2 && \"item\"}\r\n {mlst.modifierName} ₹{mlst.rate}\r\n
    • \r\n\r\n )\r\n }\r\n
    \r\n
    \r\n )}\r\n
  • \r\n
    \r\n )}\r\n
*/}\r\n
\r\n {/*
\r\n
\r\n
Item Total ₹110
\r\n
Add Item
\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, { Component } from 'react';\r\n//import './request.scss';\r\n//import { Tab, Tabs, TabList, TabPanel } from 'react-tabs';\r\nimport 'react-tabs/style/react-tabs.css';\r\n//import Config from '../../data/SiteConfig';\r\n\r\nexport default class ImagePopup extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.handlePopupImage = this.handlePopupImage.bind(this);\r\n this.state = {\r\n }\r\n\r\n }\r\n\r\n handlePopupImage() {\r\n //this.getGuestRequestList(); \r\n this.inputElement.click();\r\n }\r\n render() {\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 {this.props.imgItemName}\r\n
*/}\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {this.props.imgItemName\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {this.props.imgItemFType === 1 && \"item\"}\r\n {this.props.imgItemFType === 2 && \"item\"}\r\n
\r\n
\r\n
\r\n
{this.props.imgItemName}
\r\n
\r\n
\r\n

\r\n ₹{this.props.imgItemPrice}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n

{this.props.imgItemDesc}

\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\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, { Component } from 'react';\r\n//import Footer from '../../components/footer';\r\nimport './items.scss';\r\nimport Cart from '../../components/cart';\r\nimport PopupMenus from '../../components/popumenus';\r\nimport Modifier from '../../components/modifier';\r\nimport uuid from 'react-uuid';\r\nimport ErrorAlert from '../../components/alertmessages';\r\nimport LoadingAnimation from '../../components/loadinganimation';\r\nimport { isMobile } from 'react-device-detect';\r\nimport enmConfig from '../../data/enumConfig';\r\nimport Config from '../../data/SiteConfig';\r\nimport Request from '../../components/request';\r\nimport GroupMembers from '../../components/popup/groupmembers';\r\nimport ImagePopup from '../../components/popup/image';\r\nimport Slider from \"react-slick\";\r\nimport { css } from 'glamor';\r\nimport { LazyLoadImage } from 'react-lazy-load-image-component';\r\nimport sHelpers from '../../modules/helpers/statichelpers';\r\n// import { lstat } from 'fs-extra';\r\nconst homeslidersettings = {\r\n autoplay: true,\r\n dots: true,\r\n infinite: true,\r\n arrows: false,\r\n speed: 300,\r\n slidesToShow: 1,\r\n adaptiveHeight: false\r\n};\r\n\r\nconst clfSettings = {\r\n // dots: false,\r\n // infinite: false,\r\n // speed: 500,\r\n // slidesToShow: 4,\r\n // slidesToScroll: 4,\r\n // initialSlide: 0,\r\n // nextArrow: <>,\r\n // prevArrow: <>,\r\n // variableWidth: false, \r\n // responsive: [\r\n // {\r\n // breakpoint: 1024,\r\n // settings: {\r\n // slidesToShow: 3,\r\n // slidesToScroll: 3\r\n // }\r\n // },\r\n // {\r\n // breakpoint: 600,\r\n // settings: {\r\n // slidesToShow: 3,\r\n // slidesToScroll: 3,\r\n // initialSlide: 0\r\n // }\r\n // },\r\n // {\r\n // breakpoint: 480,\r\n // settings: {\r\n // slidesToShow: 3,\r\n // slidesToScroll: 3,\r\n // initialSlide: 0\r\n // }\r\n // }\r\n // ]\r\n\r\n className: \"slider variable-width\",\r\n dots: false,\r\n infinite: false,\r\n centerMode: false,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n variableWidth: true,\r\n nextArrow: <>,\r\n prevArrow: <>\r\n};\r\nconst mngpSettings = {\r\n // dots: false,\r\n // infinite: false,\r\n // speed: 500,\r\n // slidesToShow: 4,\r\n // slidesToScroll: 4,\r\n // initialSlide: 0,\r\n nextArrow: <>,\r\n prevArrow: <>,\r\n // variableWidth: true,\r\n className: \"slider variable-width\",\r\n speed: 500,\r\n dots: false,\r\n infinite: false,\r\n centerMode: false,\r\n // slidesToShow: 1,\r\n slidesToScroll: 2,\r\n variableWidth: true,\r\n initialSlide: 0,\r\n cssEase: \"linear\"\r\n // responsive: [\r\n // {\r\n // breakpoint: 1024,\r\n // settings: {\r\n // slidesToShow: 3,\r\n // slidesToScroll: 3\r\n // }\r\n // },\r\n // {\r\n // breakpoint: 600,\r\n // settings: {\r\n // slidesToShow: 3,\r\n // slidesToScroll: 3,\r\n // initialSlide: 0\r\n // }\r\n // },\r\n // {\r\n // breakpoint: 480,\r\n // settings: {\r\n // slidesToShow: 3,\r\n // slidesToScroll: 3,\r\n // initialSlide: 0\r\n // }\r\n // }\r\n // ]\r\n};\r\n//import Cookies from 'universal-cookie';\r\nlet guestLoggedIn = false;\r\nconst imageUrl = '/img/item/item-icon.png';\r\nlet totalItems = 0;\r\nlet totalAmount = 0;\r\nlet cartList = { mobileNo: 0, totalItems: 0, totalAmount: 0, itemList: [] };\r\nlet taxList = [];\r\n//let modifierList = [];\r\nlet chargeList = [];\r\nlet mobileNo = '';\r\nlet token = '';\r\nlet tableNo = '';\r\nlet serviceType = '';\r\nlet orgnationTd = '';\r\nlet propertyId = '';\r\nlet outletCode = '';\r\nlet verifiedTable = '';\r\n\r\nlet getClassification = [];\r\nlet getMenus = [];\r\nlet getItems = [];\r\nlet getGlobalItems = [];\r\nlet getTaxes = [];\r\nlet getModifiers = [];\r\nlet getCharges = [];\r\nlet recommendedList = [];\r\nlet isUpdateMenu = false;\r\nlet isorderTracking = \"false\";\r\nlet isCheckVeg = false;\r\n\r\n//let getCMSSettings = {};\r\n//const BrowserHistory = require('react-router/lib/BrowserHistory').default;\r\n// const itemslist = [\r\n// {\r\n// mnuId: 1, itemImageUrl: \"../assets/theme1/img/item/item-icon.png\", mnuName: \"Veg Manchurian\", price: 127, foodType: 1,badge:1,shortName: \"Veg Manchurian\", description: \"Veg Manchurian\",\r\n// modifier: [{ modifierId: 1, modifierName: \"Spicy\", price: 10 }, { modifierId: 2, modifierName: \"Tomato Jam\", price: 15 },]\r\n// },\r\n// {\r\n// mnuId: 2, itemImageUrl: \"../assets/theme1/img/item/chilli_paneer.jpg\", mnuName: \"Chilli Paneer\", price: 127, foodType: 1,badge:0, shortName: \"Chilli Paneer\", description: \"Chilli Paneer\",\r\n// modifier: [{ modifierId: 1, modifierName: \"Spicy\", price: 10 }, { modifierId: 2, modifierName: \"Tomato Jam\", price: 15 },]\r\n// },\r\n// {\r\n// mnuId: 3, itemImageUrl: \"../assets/theme1/img/item/item-icon.png\", mnuName: \"Wok Tossed Chilli Chicken\", price: 166, foodType: 2,badge:2, shortName: \"Chilli Chicken\", description: \"Wok Tossed Chilli Chicken\",\r\n// modifier: []\r\n// },\r\n// {\r\n// mnuId: 4, itemImageUrl: \"../assets/theme1/img/item/gobi_manchurian.jpg\", mnuName: \"Veg Manchurian\", price: 127, foodType: 2,badge:0, shortName: \"Veg Manchurian\", description: \"Veg Manchurian\",\r\n// modifier: [{ modifierId: 1, modifierName: \"Spicy\", price: 10 }, { modifierId: 2, modifierName: \"Tomato Jam\", price: 15 },]\r\n// },\r\n// {\r\n// mnuId: 5, itemImageUrl: \"../assets/theme1/img/item/gobi_manchurian.jpg\", mnuName: \"Veg Manchurian\", price: 127, foodType: 1,badge:2, shortName: \"Veg Manchurian\", description: \"Veg Manchurian\",\r\n// modifier: []\r\n// },\r\n// {\r\n// mnuId: 6, itemImageUrl: \"../assets/theme1/img/item/gobi_manchurian.jpg\", mnuName: \"Veg Manchurian\", price: 127, foodType: 1,badge:1, shortName: \"Veg Manchurian\", description: \"Veg Manchurian\",\r\n// modifier: [{ modifierId: 1, modifierName: \"Spicy\", price: 10 }, { modifierId: 2, modifierName: \"Tomato Jam\", price: 15 },]\r\n// },\r\n// {\r\n// mnuId: 7, itemImageUrl: \"../assets/theme1/img/item/gobi_manchurian.jpg\", mnuName: \"Veg Manchurian\", price: 127, foodType: 2,badge:1, shortName: \"Veg Manchurian\", description: \"Veg Manchurian\",\r\n// modifier: [{ modifierId: 1, modifierName: \"Spicy\", price: 10 }, { modifierId: 2, modifierName: \"Tomato Jam\", price: 15 },]\r\n// },\r\n\r\n\r\n// ];\r\n// const itemGroupList = [\r\n// { groupId: 1, groupName: \"Compos\" }, { groupId: 2, groupName: \"Fries\" }, { groupId: 3, groupName: \"Shawarmas\" }\r\n// ];\r\nconst modifierRef = React.createRef();\r\nconst reqeustRef = React.createRef();\r\nconst imageRef = React.createRef();\r\nconst groupMemberRef = React.createRef();\r\n//const [isVisible, setIsVisible] = useState(true);\r\nlet outletDetailsStr = null;\r\nlet outletDetails = {}\r\nlet groupPin = '';\r\nlet grouppinstyle = {\r\n marginBottom: \"40px\",\r\n marginTop: \"162px\"\r\n};\r\nlet mainGuestMobileNo = '';\r\n// group pin added by dasprakash on 06-10-2023 jira-1490\r\nlet tablePins = '';\r\nlet userSessionId = '';\r\n\r\nlet urlPattern = '';\r\nconst SmartText = ({ text, length = 20, onReadMoreClick }) => {\r\n if (text.length < length) {\r\n return

{text}

;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n Read More\r\n \r\n \r\n );\r\n};\r\n\r\n\r\n\r\n//const [showTopBtn, setShowTopBtn] = useState(false);\r\n\r\n\r\n\r\nexport default class Items extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.goBack = this.goBack.bind(this);\r\n this.goMyOrders = this.goMyOrders.bind(this);\r\n this.goCart = this.goCart.bind(this);\r\n this.callBackModifier = this.callBackModifier.bind(this);\r\n this.callBackRequest = this.callBackRequest.bind(this);\r\n this.itemTaxCalc = this.itemTaxCalc.bind(this);\r\n this.goBill = this.goBill.bind(this);\r\n this.goToOrderTracking = this.goToOrderTracking.bind(this);\r\n this.goToHelpRequest = this.goToHelpRequest.bind(this);\r\n this.goToGroupMemberList = this.goToGroupMemberList.bind(this);\r\n this.gotoLogin = this.gotoLogin.bind(this);\r\n this.state = {\r\n loading: false,\r\n getClassification: [],\r\n getMenus: [],\r\n getItems: [],\r\n getModifiers: [],\r\n getTaxes: [],\r\n getCharges: [],\r\n recommendedList: [],\r\n isRecommendedItemEnabled: false,\r\n recommendedItemCount: 0,\r\n mobileNo: '',\r\n orgId: 0,\r\n propertyId: '',\r\n outletCode: '',\r\n tableNo: '',\r\n serviceType: '',\r\n alertMessage: '',\r\n msgType: '',\r\n msgShow: false,\r\n groupName: '',\r\n groupId: '',\r\n switch1: false,\r\n activeMenuGroup: -1,\r\n totalItems: 0,\r\n totalAmount: 0,\r\n cartList: { mobileNo: 0, totalItems: 0, totalAmount: 0, itemList: [] },\r\n modifierGroupIds: [],\r\n modifierItemName: '',\r\n modifierItemId: 0,\r\n modifierItemCQty: 0,\r\n modifierItemCRate: 0,\r\n modifierItemCId: \"\",\r\n modifierItemCGroupId: 0,\r\n modifierItemCTaxId: 0,\r\n modifierItemCChargeIds: [],\r\n modifierFoodType: '',\r\n modifierTotalItemAmount: 0,\r\n checkNoQty: new Map(),\r\n searchText: \"\",\r\n themeId: 0, // No Theme,\r\n orders: [],\r\n showModal: false,\r\n imgItemName: '',\r\n imgItemDesc: '',\r\n imgItemPrice: '',\r\n imgItemFType: '',\r\n itemImgUrl: '',\r\n styleBackgroundImage: {\r\n background: `url(${imageUrl}) no-repeat center center fixed`,\r\n WebkitBackgroundSize: \"cover\",\r\n BackgroundSize: \"cover\",\r\n MozBackgroundSize: \"cover\",\r\n OBackgroundSize: \"cover\",\r\n fontFamily: \"Nunito, sans-serif \",\r\n border: \"none\",\r\n paddingBottom: \"52px\",\r\n },\r\n styleHeading: {\r\n backgroundColor: \"#59324c\",\r\n color: \"#fff\",\r\n height: \"110px\",\r\n fontSize: \"18px\",\r\n fontFamily: \"Nunito, sans-serif \",\r\n padding: \"10px 14px 8px 40px\",\r\n borderBottom: \"1px solid #fff\"\r\n },\r\n styleSubHeading: {\r\n color: \"#f9bd09\",\r\n fontSize: \"12px\",\r\n fontFamily: \"Nunito, sans-serif \"\r\n },\r\n styleMenuGroup: {\r\n color: \"#000\",\r\n fontSize: \"6.94vw\",\r\n fontFamily: \"Nunito, sans-serif \",\r\n backgroundColor: \"#fff\",\r\n lineHeight: \"2rem\",\r\n fontWeight: \"700\"\r\n },\r\n styleMengroupAfter: css({\r\n ':after': [{ borderLeft: \"16px solid #59324c\", content: `''`, }]\r\n }),\r\n styleMengroupBefore: css({\r\n ':before': [{ borderBottom: \"9px solid #59324c\", content: `''`, }]\r\n }),\r\n\r\n styleSubMenuGroup: {\r\n color: \"#000\",\r\n fontSize: \"4.94vw\",\r\n fontFamily: \"Nunito, sans-serif \",\r\n backgroundColor: \"#fff\",\r\n lineHeight: \"2rem\",\r\n fontWeight: \"700\"\r\n },\r\n\r\n styleMenuItem: {\r\n color: \"#262626\",\r\n fontSize: \"4.27vw\",\r\n fontFamily: \"Nunito, sans-serif \",\r\n fontWeight: \"600\",\r\n lineHeight: \"1.2\",\r\n },\r\n\r\n styleMenuDesc: {\r\n color: \"#444\",\r\n fontSize: \"2.67vw\",\r\n fontFamily: \"Nunito, sans-serif \",\r\n marginTop: \"4px\",\r\n letterSpacing: \"1px\",\r\n lineHeight: \"1.2\"\r\n },\r\n styleMenuPrice: {\r\n color: \"#262626\",\r\n fontSize: \"3.2vw\",\r\n fontFamily: \"Nunito, sans-serif \",\r\n fontWeight: \"600\",\r\n letterSpacing: \"1px\"\r\n },\r\n stylePopupMenubBtn:\r\n {\r\n color: \"#f9f2ea\",\r\n fontFamily: \"Nunito, sans-serif \",\r\n backgroundColor: \"#59324c\",\r\n },\r\n stylePopupText:\r\n {\r\n color: \"#59324c\",\r\n fontFamily: \"Nunito, sans-serif \",\r\n },\r\n styleContent:\r\n {\r\n color: \"#f9f2ea\",\r\n fontSize: \"13px\",\r\n backgroundColor: \"#fcf9ea\",\r\n },\r\n styleRefresh:\r\n {\r\n color: \"#fff\",\r\n },\r\n stylegroupPin:\r\n {\r\n marginBottom: \"40px\",\r\n marginTop: \"214px\"\r\n },\r\n pagePreview: \"\",\r\n pageContent: \"\",\r\n groupPin: '',\r\n ordertrack: false,\r\n sliderImages: [\r\n // {\r\n // altName: \"\",\r\n // sortOrder: 0,\r\n // bannerType: 0,\r\n // height: 0,\r\n // imageName: \"\",\r\n // imagePathName: \"\",\r\n // primaryImageType: \"\",\r\n // secondaryImageType: \"\",\r\n // bannerName: \"Slide 1\",\r\n // primaryImageUrl: \"/img/slider/no-image.png\",\r\n // secondaryImageUrl: \"\",\r\n // status: 0,\r\n // width: 0\r\n // }\r\n ],\r\n activeClassification: -1,\r\n selectedClassification: 0,\r\n selectedMenuGroupId: 0,\r\n recommendedTxt: \"Recommended\",\r\n pageTitle: '',\r\n groupMemberList: [],\r\n showOnlySelectedMenuGroupItems: false,\r\n showOnlyVeg: false\r\n }\r\n }\r\n\r\n componentWillMount() {\r\n if (Config.IsMobileAccess) {\r\n if (!isMobile) {\r\n this.props.history.push('/deviceerror' + urlPattern);\r\n return false;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n sessionStorage.removeItem(\"user-vendorOrderId\");\r\n\r\n mobileNo = sessionStorage.getItem('user-mobileno');\r\n token = sessionStorage.getItem('user-token');\r\n tableNo = sessionStorage.getItem('user-tableno');\r\n serviceType = sessionStorage.getItem('user-servicetype');\r\n orgnationTd = sessionStorage.getItem('user-orgnationid');\r\n propertyId = sessionStorage.getItem('user-propertyid');\r\n outletCode = sessionStorage.getItem('user-outletcode');\r\n verifiedTable = sessionStorage.getItem('user-table-verified');\r\n outletDetailsStr = sessionStorage.getItem('user-outletDetails');\r\n guestLoggedIn = sessionStorage.getItem('user-loggedin') == null ? \"false\" : sessionStorage.getItem('user-loggedin');\r\n mainGuestMobileNo = sessionStorage.getItem('main-guest-no') == null ? '' : sessionStorage.getItem('main-guest-no');\r\n isorderTracking = sessionStorage.getItem('order-track-status') == null ? \"false\" : sessionStorage.getItem('order-track-status');\r\n userSessionId = sessionStorage.getItem('user-session-id') == null ? \"\" : sessionStorage.getItem('user-session-id');\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n //getCMSSettings = sessionStorage.getItem('pageCMSSettings') == null ? null : JSON.parse(sessionStorage.getItem('pageCMSSettings'));\r\n\r\n // console.log(mobileNo);\r\n // console.log(token);\r\n // console.log(tableNo);\r\n // console.log(servic0eType);\r\n // console.log(orgnationTd);\r\n // console.log(propertyId);\r\n // console.log(outletCode);\r\n\r\n\r\n\r\n // group pin added by dasprakash on 06-10-2023 jira-1490\r\n tablePins = sessionStorage.getItem('table-pins') == null ? '' : sessionStorage.getItem('table-pins');\r\n if (!urlPattern) {\r\n // Handle error or redirect as needed\r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n // Check Session\r\n const sessionDt = sessionStorage.getItem(\"u-l-v-url-dt\");\r\n if (!sessionDt) {\r\n this.props.history.push('/sessionerror' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (token === undefined || token === \"\" || token === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (mobileNo === undefined || mobileNo === \"\" || mobileNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (tableNo === undefined || tableNo === \"\" || tableNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (serviceType === undefined || serviceType === \"\" || serviceType === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (orgnationTd === undefined || orgnationTd === \"\" || orgnationTd === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (propertyId === undefined || propertyId === \"\" || propertyId === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (outletCode === undefined || outletCode === \"\" || outletCode === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (verifiedTable === undefined || verifiedTable === \"\" || verifiedTable === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (outletDetailsStr === undefined || outletDetailsStr === \"\" || outletDetailsStr === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n else {\r\n outletDetails = JSON.parse(outletDetailsStr);\r\n enmConfig.checkOutTypewithPay = outletDetails.paymentVendors.length > 0 ? true : false;\r\n }\r\n\r\n\r\n if (isorderTracking === undefined || isorderTracking === \"\" || isorderTracking === null) {\r\n isorderTracking = \"false\";\r\n }\r\n\r\n\r\n if (isorderTracking === \"true\")\r\n this.setState({ ordertrack: true });\r\n else\r\n this.setState({ ordertrack: false });\r\n\r\n\r\n window.scrollTo(0, 0);\r\n document.body.classList.remove('modal-open');\r\n let modalPopup = document.querySelector('.modal-backdrop');\r\n if (modalPopup !== null) {\r\n modalPopup.classList.remove('modal-backdrop', 'fade', 'show');\r\n }\r\n\r\n getClassification = sessionStorage.getItem(\"getclf\") === null ? [] : JSON.parse(sessionStorage.getItem(\"getclf\"));\r\n getMenus = sessionStorage.getItem(\"getMenuGroups\") === null ? [] : JSON.parse(sessionStorage.getItem(\"getMenuGroups\"));\r\n getItems = sessionStorage.getItem(\"getmenuItems\") === null ? [] : JSON.parse(sessionStorage.getItem(\"getmenuItems\"));\r\n getModifiers = sessionStorage.getItem(\"getModifierGroups\") === null ? [] : JSON.parse(sessionStorage.getItem(\"getModifierGroups\"));\r\n getTaxes = sessionStorage.getItem(\"getTaxes\") === null ? [] : JSON.parse(sessionStorage.getItem(\"getTaxes\"));\r\n getCharges = sessionStorage.getItem(\"getCharges\") === null ? [] : JSON.parse(sessionStorage.getItem(\"getCharges\"));\r\n recommendedList = getItems.filter(itm => itm.isRecommended);\r\n getGlobalItems = getItems;\r\n this.setState({\r\n recommendedList: recommendedList,\r\n getMenus: getMenus,\r\n getItems: getItems,\r\n getClassification: getClassification\r\n });\r\n this.getCMSDetails();\r\n // if (getCMSSettings === null) {\r\n // // CMS Settings\r\n // this.getCMSDetails();\r\n // }\r\n // else {\r\n // // console.log(getCMSSettings);\r\n // this.setState({ themeId: getCMSSettings.page.themeId });\r\n // }\r\n\r\n // Enable Modifier\r\n this.setState({ showModal: true });\r\n\r\n\r\n\r\n }\r\n\r\n componentDidMount() {\r\n window.scrollTo(0, 0);\r\n // console.log(getModifiers);\r\n // console.log(sessionStorage.getItem(\"cartList\"));\r\n\r\n\r\n // if (sessionStorage.getItem(\"cartList\") != null) {\r\n // cartList = JSON.parse(sessionStorage.getItem(\"cartList\"));\r\n // //console.log(cartList);\r\n // this.setState({ totalItems: cartList.totalItems, totalAmount: cartList.totalAmount });\r\n // totalItems = cartList.totalItems;\r\n // totalAmount = cartList.totalAmount;\r\n // taxList = sessionStorage.getItem(\"taxCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"taxCartList\"));\r\n // chargeList = sessionStorage.getItem(\"chargeCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"chargeCartList\"));\r\n // // group by item\r\n // Array.prototype.forEach.call(cartList.itemList, itm => {\r\n // let totlaQty = document.getElementById(\"\" + itm.id + \"\").innerHTML === \"\" ? 0 : JSON.parse(document.getElementById(\"\" + itm.id + \"\").innerHTML);\r\n // document.getElementById(\"\" + itm.id + \"\").innerHTML = (totlaQty + itm.qty);\r\n // let sout = document.getElementById(\"\" + itm.id + \"\").getAttribute('data-so');\r\n // this.qtyMode('item-add-' + itm.id, 'item-entry-' + itm.id, itm.id, sout);\r\n // });\r\n\r\n // }\r\n // else {\r\n // cartList = { mobileNo: 0, totalItems: 0, totalAmount: 0, itemList: [] };\r\n // this.setState({ cartList: { mobileNo: 0, totalItems: 0, totalAmount: 0, itemList: [] } });\r\n // this.setState({ totalItems: 0, totalAmount: 0 });\r\n // totalAmount = 0;\r\n // totalItems = 0;\r\n // taxList = [];\r\n // chargeList = [];\r\n // }\r\n\r\n\r\n\r\n // console.log(getTaxes);\r\n // console.log(getCharges);\r\n\r\n\r\n if (this.props.location.state !== undefined) {\r\n var stickyContainer = document.getElementById(\"\" + this.props.location.state.focusGroup + \"\");\r\n if (stickyContainer != null) {\r\n // console.log(this.props.location.state.focusGroup);\r\n window.scrollTo({\r\n top: stickyContainer.offsetTop,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n }\r\n\r\n // check Guest Order list\r\n // console.log(isorderTracking);\r\n if (outletDetails.enableOrderTracking) {\r\n if (isorderTracking === \"false\")\r\n this.getGuestProcessOrders();\r\n else\r\n this.setState({ ordertrack: true });\r\n }\r\n if (serviceType === \"FINE-DINE\") {\r\n if (guestLoggedIn === \"true\") {\r\n this.getGuestDashboardDetails();\r\n grouppinstyle = {\r\n marginBottom: \"40px\",\r\n marginTop: \"256px\"\r\n }\r\n }\r\n else {\r\n grouppinstyle = {\r\n marginBottom: \"40px\",\r\n marginTop: \"214px\"\r\n }\r\n }\r\n this.setState({ stylegroupPin: grouppinstyle });\r\n }\r\n else {\r\n if (guestLoggedIn === \"true\") {\r\n grouppinstyle = {\r\n marginBottom: \"40px\",\r\n marginTop: \"214px\"\r\n }\r\n this.setState({ stylegroupPin: grouppinstyle });\r\n }\r\n }\r\n\r\n // update outlet switch\r\n\r\n this.setState({ showOnlySelectedMenuGroupItems: outletDetails.showOnlySelectedMenuGroupItems });\r\n\r\n\r\n\r\n // this.ScrollHide(); \r\n }\r\n\r\n getCMSDetails() {\r\n let postobj = {\r\n organizationId: parseInt(orgnationTd),\r\n propertyId: propertyId,\r\n outletCode: outletCode,\r\n ServiceMode: serviceType,\r\n ApplicationCode: Config.applicationCode,\r\n PageId: Config.pageIds.menu, // Default Menu\r\n PageType: Config.pageType.menu, // Menu \r\n RequestIp: \"\",\r\n username: Config.cmsUserName,\r\n password: Config.cmsPassword\r\n }\r\n // console.log(postobj);\r\n\r\n fetch(Config.baseAPIUrl + 'PageDetails', {\r\n method: 'POST',\r\n headers: {\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postobj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.isSuccessful) {\r\n // console.log(\"PageDetails Item Page\",response);\r\n // sessionStorage.setItem(\"pageCMSSettings\", JSON.stringify(response));\r\n // this.setState({ themeId: response.page.themeId, pageTitle: response.page.pageTitle });\r\n // console.log(\"PageDetails themeStyle\",response);\r\n // this.themeStyle(response);\r\n this.getSliderImages();\r\n // Content \r\n if (response.page != null) {\r\n //console.log(response.page.preview);\r\n this.setState({ pageContent: response.page.content, pagePreview: response.page.preview });\r\n }\r\n }\r\n else {\r\n this.setState({ themeId: 1, pageTitle: '' }); // Default Theme Value\r\n // this.showMessage(response.message, \"danger\");\r\n // console.log(\"PageDetails themeStyle\",response);\r\n \r\n // this.setState({ sliderImages: [] });\r\n this.getSliderImages(response);\r\n }\r\n\r\n // if (sessionStorage.getItem(\"cartList\") != null) {\r\n // cartList = JSON.parse(sessionStorage.getItem(\"cartList\"));\r\n // //console.log(cartList);\r\n // this.setState({ totalItems: cartList.totalItems, totalAmount: cartList.totalAmount });\r\n // totalItems = cartList.totalItems;\r\n // totalAmount = cartList.totalAmount;\r\n // taxList = sessionStorage.getItem(\"taxCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"taxCartList\"));\r\n // chargeList = sessionStorage.getItem(\"chargeCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"chargeCartList\"));\r\n // // group by item\r\n // Array.prototype.forEach.call(cartList.itemList, itm => {\r\n // let totlaQty = document.getElementById(\"\" + itm.id + \"\").innerHTML === \"\" ? 0 : JSON.parse(document.getElementById(\"\" + itm.id + \"\").innerHTML);\r\n // document.getElementById(\"\" + itm.id + \"\").innerHTML = (totlaQty + itm.qty);\r\n // let sout = document.getElementById(\"\" + itm.id + \"\").getAttribute('data-so');\r\n // this.qtyMode('item-add-' + itm.id, 'item-entry-' + itm.id, itm.id, sout);\r\n // });\r\n\r\n // }\r\n // else {\r\n // cartList = { mobileNo: 0, totalItems: 0, totalAmount: 0, itemList: [] };\r\n // this.setState({ cartList: { mobileNo: 0, totalItems: 0, totalAmount: 0, itemList: [] } });\r\n // this.setState({ totalItems: 0, totalAmount: 0 });\r\n // totalAmount = 0;\r\n // totalItems = 0;\r\n // taxList = [];\r\n // chargeList = [];\r\n // }\r\n\r\n // this.setState({ loading: true });\r\n // // Classification Filter\r\n // if (getClassification.length > 0) {\r\n // // Default -> First Classification Select\r\n // this.setState({ activeClassification: 0 });\r\n // this.handleClassificationClick(0, getClassification[0].classificationName, getClassification[0].classification);\r\n // }\r\n\r\n // this.setState({ loading: false });\r\n\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n //this.showMessage(\"CMS - Failed to fetch\", \"danger\");\r\n });\r\n }\r\n\r\n \r\n//added by vijay on 06-05-2024\r\n getSliderImages() {\r\n let urlParam = 'OutletId=' + propertyId + outletCode + '&ServiceType=' + serviceType + '&PageType=' + Config.pageType.home;\r\n console.log(urlParam);\r\n fetch(Config.basePOSUrl + 'GetSliderImages?' + urlParam, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(sliderResponse => {\r\n if (sliderResponse.errorCode === 0) {\r\n const imageList = sliderResponse.response.imageList;\r\n \r\n if (imageList && imageList.length > 0) { \r\n const sortedImageList = imageList.sort((a, b) => a.displayOrder - b.displayOrder);\r\n \r\n const sliderImages = sortedImageList.filter(item => item.imageUrl); // Corrected filter condition\r\n // console.log(\"sliderImages:\", sliderImages);\r\n if (sliderImages.length > 0) {\r\n this.setState({ sliderImages });\r\n } else {\r\n this.setState({ sliderImages: [], bannerImgs: [] });\r\n }\r\n } else {\r\n this.setState({ sliderImages: [], bannerImgs: [] });\r\n }\r\n } else {\r\n this.showMessage(sliderResponse.response.message, \"danger\"); \r\n }\r\n\r\n this.setState({ loading: true }); \r\n\r\n if (getClassification.length > 0) { \r\n this.setState({ activeClassification: 0 });\r\n this.handleClassificationClick(0, getClassification[0].classificationName, getClassification[0].classification);\r\n }\r\n\r\n this.setState({ loading: false });\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n });\r\n } \r\n\r\n// Commended by vijay on 11-05-2024 \r\n // themeStyle(response) {\r\n // // console.log(response.brands);\r\n // // Slider\r\n // if (response.banners.filter(i => i.bannerType === Config.bannerImageType.Slider) !== null && response.banners.filter(i => i.bannerType === Config.bannerImageType.Slider).length > 0)\r\n // this.setState({ sliderImages: response.banners.filter(i => i.bannerType === Config.bannerImageType.Slider) });\r\n // else\r\n // this.setState({ sliderImages: [] });\r\n\r\n // if (response.banners.filter(i => i.bannerType === Config.bannerImageType.BackGroundImage) !== null && response.banners.filter(i => i.bannerType === Config.bannerImageType.BackGroundImage).length > 0) {\r\n // let img = JSON.stringify(response.banners.filter(i => i.bannerType === Config.bannerImageType.BackGroundImage)[0].primaryImageUrl);\r\n // let fontFamily = response.brands.filter(b => b.brandCode === 'p-f-f').length > 0 ? response.brands.filter(b => b.brandCode === 'p-f-f')[0].brandValue : \"Montserrat\";\r\n // let styleBGPattern = {\r\n // background: `url(${img}) no-repeat center center fixed`,\r\n // fontFamily: fontFamily,\r\n // border: \"none\",\r\n // paddingBottom: \"114px\",\r\n // }\r\n // this.setState({ styleBackgroundImage: styleBGPattern });\r\n // }\r\n\r\n // // Heading\r\n // if (response.brands.length > 0) {\r\n // let bgColor = response.brands.filter(b => b.brandCode === 't-h-b-c').length > 0 ? response.brands.filter(b => b.brandCode === 't-h-b-c')[0].brandValue : \"#59324c\";\r\n // let fontColor = response.brands.filter(b => b.brandCode === 't-h-f-c').length > 0 ? response.brands.filter(b => b.brandCode === 't-h-f-c')[0].brandValue : \"#fff\";\r\n // let fontSize = response.brands.filter(b => b.brandCode === 't-h-f-s').length > 0 ? response.brands.filter(b => b.brandCode === 't-h-f-s')[0].brandValue : \"#18px\";\r\n // let fontFamily = response.brands.filter(b => b.brandCode === 't-h-f-f').length > 0 ? response.brands.filter(b => b.brandCode === 't-h-f-f')[0].brandValue : \"Montserrat\";\r\n // //console.log(response.brands.filter(b => b.brandCode === 't-h-b-c')[0].brandValue);\r\n // let styleHeading = {\r\n // backgroundColor: bgColor,\r\n // color: fontColor,\r\n // fontFamily: fontFamily,\r\n // height: \"110px\",\r\n // fontSize: fontSize,\r\n // padding: \"10px 14px 8px 40px\",\r\n // borderBottom: \"1px solid #fff\"\r\n // }\r\n // this.setState({ styleHeading: styleHeading });\r\n // // Refresh button\r\n // let styleRefresh = {\r\n // color: fontColor,\r\n // }\r\n // this.setState({ styleRefresh: styleRefresh });\r\n\r\n // // SubHeading \r\n // fontColor = response.brands.filter(b => b.brandCode === 't-s-h-f-c').length > 0 ? response.brands.filter(b => b.brandCode === 't-s-h-f-c')[0].brandValue : \"#f9bd09\";\r\n // fontSize = response.brands.filter(b => b.brandCode === 't-s-h-f-s').length > 0 ? response.brands.filter(b => b.brandCode === 't-s-h-f-s')[0].brandValue : \"#12px\";\r\n // fontFamily = response.brands.filter(b => b.brandCode === 't-s-h-f-f').length > 0 ? response.brands.filter(b => b.brandCode === 't-s-h-f-f')[0].brandValue : \"Montserrat\";\r\n\r\n // let styleSubHeading = {\r\n // color: fontColor,\r\n // fontFamily: fontFamily,\r\n // fontSize: fontSize\r\n // }\r\n // this.setState({ styleSubHeading: styleSubHeading });\r\n\r\n // // Menu Group\r\n // bgColor = response.brands.filter(b => b.brandCode === 'mg-b-c').length > 0 ? response.brands.filter(b => b.brandCode === 'mg-b-c')[0].brandValue : \"#59324c\";\r\n // fontColor = response.brands.filter(b => b.brandCode === 'mg-f-c').length > 0 ? response.brands.filter(b => b.brandCode === 'mg-f-c')[0].brandValue : \"#fff\";\r\n // fontSize = response.brands.filter(b => b.brandCode === 'mg-f-s').length > 0 ? response.brands.filter(b => b.brandCode === 'mg-f-s')[0].brandValue : \"#17px\";\r\n // fontFamily = response.brands.filter(b => b.brandCode === 'mg-f-f').length > 0 ? response.brands.filter(b => b.brandCode === 'mg-f-f')[0].brandValue : \"Montserrat\";\r\n\r\n // let styleMenuGroup = {\r\n // color: fontColor,\r\n // fontFamily: fontFamily,\r\n // fontSize: fontSize,\r\n // backgroundColor: bgColor,\r\n // }\r\n // let afterbg = css({\r\n // ':after': [{ borderLeft: \"16px solid\" + bgColor + \"\", content: `''`, }]\r\n // });\r\n // let beforebg = css({\r\n // ':before': [{ borderBottom: \"9px solid \" + bgColor + \"\", content: `''`, }]\r\n // });\r\n\r\n // this.setState({ styleMenuGroup: styleMenuGroup });\r\n // this.setState({ styleMengroupAfter: afterbg });\r\n // this.setState({ styleMengroupBefore: beforebg });\r\n\r\n\r\n // // Sub Menu Group \r\n // fontColor = response.brands.filter(b => b.brandCode === 'smg-f-c').length > 0 ? response.brands.filter(b => b.brandCode === 'smg-f-c')[0].brandValue : \"#000\";\r\n // fontSize = response.brands.filter(b => b.brandCode === 'smg-f-s').length > 0 ? response.brands.filter(b => b.brandCode === 'smg-f-s')[0].brandValue : \"#15px\";\r\n // fontFamily = response.brands.filter(b => b.brandCode === 'smg-f-f').length > 0 ? response.brands.filter(b => b.brandCode === 'smg-f-f')[0].brandValue : \"Montserrat\";\r\n // let _styleSubMenuGroup = {\r\n // color: fontColor,\r\n // fontFamily: fontFamily,\r\n // fontSize: fontSize\r\n // }\r\n\r\n // this.setState({ styleSubMenuGroup: _styleSubMenuGroup });\r\n\r\n // // Menu Item \r\n // fontColor = response.brands.filter(b => b.brandCode === 'mi-f-c').length > 0 ? '' + response.brands.filter(b => b.brandCode === 'mi-f-c')[0].brandValue + '' : '#59324c';\r\n // fontSize = response.brands.filter(b => b.brandCode === 'mi-f-s').length > 0 ? response.brands.filter(b => b.brandCode === 'mi-f-s')[0].brandValue : \"#16px\";\r\n // fontFamily = response.brands.filter(b => b.brandCode === 'mi-f-f').length > 0 ? response.brands.filter(b => b.brandCode === 'mi-f-f')[0].brandValue : \"Montserrat\";\r\n // let fontWeight = response.brands.filter(b => b.brandCode === 'mi-f-w').length > 0 ? '' + response.brands.filter(b => b.brandCode === 'mi-f-w')[0].brandValue + '' : '500';\r\n // let styleMenuItem = {\r\n // color: fontColor,\r\n // fontFamily: fontFamily,\r\n // fontWeight: fontWeight,\r\n // fontSize: fontSize\r\n // }\r\n\r\n // this.setState({ styleMenuItem: styleMenuItem });\r\n\r\n // // Menu Desc \r\n // fontColor = response.brands.filter(b => b.brandCode === 'md-f-c').length > 0 ? '' + response.brands.filter(b => b.brandCode === 'md-f-c')[0].brandValue + '' : '#59324c';\r\n // fontSize = response.brands.filter(b => b.brandCode === 'md-f-s').length > 0 ? response.brands.filter(b => b.brandCode === 'md-f-s')[0].brandValue : \"#12px\";\r\n // fontFamily = response.brands.filter(b => b.brandCode === 'md-f-f').length > 0 ? response.brands.filter(b => b.brandCode === 'md-f-f')[0].brandValue : \"Montserrat\";\r\n // fontWeight = response.brands.filter(b => b.brandCode === 'md-f-w').length > 0 ? '' + response.brands.filter(b => b.brandCode === 'md-f-w')[0].brandValue + '' : '600';\r\n // let styleMenuDesc = {\r\n // color: fontColor,\r\n // fontFamily: fontFamily,\r\n // fontSize: fontSize,\r\n // fontWeight: fontWeight,\r\n // marginTop: \"4px\"\r\n // }\r\n\r\n // this.setState({ styleMenuDesc: styleMenuDesc });\r\n\r\n // // Menu Price \r\n // fontColor = response.brands.filter(b => b.brandCode === 'mp-f-c').length > 0 ? '' + response.brands.filter(b => b.brandCode === 'mp-f-c')[0].brandValue + '' : '#59324c';\r\n // fontSize = response.brands.filter(b => b.brandCode === 'mp-f-s').length > 0 ? response.brands.filter(b => b.brandCode === 'mp-f-s')[0].brandValue : \"#16px\";\r\n // fontFamily = response.brands.filter(b => b.brandCode === 'mp-f-f').length > 0 ? response.brands.filter(b => b.brandCode === 'mp-f-f')[0].brandValue : \"inherit\";\r\n // fontWeight = response.brands.filter(b => b.brandCode === 'mp-f-w').length > 0 ? '' + response.brands.filter(b => b.brandCode === 'mp-f-w')[0].brandValue + '' : '400';\r\n\r\n // let styleMenuPrice = {\r\n // color: fontColor,\r\n // fontFamily: fontFamily,\r\n // fontSize: fontSize,\r\n // fontWeight: fontWeight\r\n // }\r\n\r\n // this.setState({ styleMenuPrice: styleMenuPrice });\r\n\r\n // // Menu popup\r\n // fontColor = response.brands.filter(b => b.brandCode === 'mpu-f-c').length > 0 ? '' + response.brands.filter(b => b.brandCode === 'mpu-f-c')[0].brandValue + '' : '#f9f2ea';\r\n // fontSize = response.brands.filter(b => b.brandCode === 'mpu-f-s').length > 0 ? response.brands.filter(b => b.brandCode === 'mpu-f-s')[0].brandValue : \"#16px\";\r\n // bgColor = response.brands.filter(b => b.brandCode === 'mpu-f-f').length > 0 ? response.brands.filter(b => b.brandCode === 'mpu-f-f')[0].brandValue : \"Montserrat\";\r\n\r\n // let stylePopupMenubBtn = {\r\n // color: fontColor,\r\n // fontFamily: fontFamily,\r\n // fontSize: fontSize,\r\n // backgroundColor: bgColor,\r\n // }\r\n // this.setState({ stylePopupMenubBtn: stylePopupMenubBtn });\r\n\r\n // // Menu popup Text\r\n // fontColor = response.brands.filter(b => b.brandCode === 'mpu-t-f-c').length > 0 ? '' + response.brands.filter(b => b.brandCode === 'mpu-t-f-c')[0].brandValue + '' : '#59324c';\r\n // fontFamily = response.brands.filter(b => b.brandCode === 'mpu-t-f-f').length > 0 ? response.brands.filter(b => b.brandCode === 'mpu-t-f-f')[0].brandValue : \"Montserrat\";\r\n\r\n // let stylePopupText = {\r\n // color: fontColor,\r\n // fontFamily: fontFamily\r\n // }\r\n // this.setState({ stylePopupText: stylePopupText });\r\n\r\n // // Conte Style\r\n // bgColor = response.brands.filter(b => b.brandCode === 'cont-b-c').length > 0 ? response.brands.filter(b => b.brandCode === 'cont-b-c')[0].brandValue : \"#fcf9ea\";\r\n // fontColor = response.brands.filter(b => b.brandCode === 'cont-f-c').length > 0 ? response.brands.filter(b => b.brandCode === 'cont-f-c')[0].brandValue : \"#f9f2ea\";\r\n // fontSize = response.brands.filter(b => b.brandCode === 'cont-f-s').length > 0 ? response.brands.filter(b => b.brandCode === 'cont-f-s')[0].brandValue : \"#13px\";\r\n\r\n // let styleContent = {\r\n // backgroundColor: bgColor,\r\n // color: fontColor,\r\n // fontSize: fontSize\r\n // }\r\n // this.setState({ styleContent: styleContent });\r\n\r\n\r\n // }\r\n\r\n // // Content \r\n // if (response.page != null) {\r\n // //console.log(response.page.preview);\r\n // this.setState({ pageContent: response.page.content, pagePreview: response.page.preview });\r\n // }\r\n // }\r\n\r\n \r\n qtyMode(itmAddClassName, itmEntryClassName, itemId, outOfStock) {\r\n let itmAddcls = document.querySelector(\".\" + itmAddClassName + \"\");\r\n let itmEntrycls = document.querySelector(\".\" + itmEntryClassName + \"\");\r\n let itmDivId = document.getElementById(\"\" + itemId + \"\");\r\n\r\n let itmqTy = 0;\r\n if (itmDivId !== null)\r\n itmqTy = document.getElementById(\"\" + itemId + \"\").innerHTML === null ? 0 : JSON.parse(document.getElementById(\"\" + itemId + \"\").innerHTML);\r\n\r\n // console.log(itmqTy);\r\n // console.log(itmAddClassName);\r\n // console.log(itmEntryClassName);\r\n // console.log(itmEntrycls);\r\n // console.log(itmAddcls);\r\n // console.log(itmDivId);\r\n // console.log(itemId);\r\n\r\n if (itmqTy > 0) {\r\n if (itmEntrycls !== null) itmEntrycls.classList.remove('qty-hide');\r\n if (itmAddcls !== null) itmAddcls.classList.add('qty-hide');\r\n }\r\n else {\r\n if (itmEntrycls !== null) itmEntrycls.classList.add('qty-hide');\r\n if (itmAddcls !== null) itmAddcls.classList.remove('qty-hide');\r\n }\r\n\r\n // out of stock \r\n if (outOfStock === \"true\") {\r\n if (itmEntrycls !== null) itmEntrycls.classList.add('qty-hide');\r\n if (itmAddcls !== null) itmAddcls.classList.add('qty-hide');\r\n }\r\n\r\n\r\n }\r\n\r\n goBack() {\r\n //this.props.history.goBack();\r\n this.props.history.push('/home' + urlPattern);\r\n }\r\n\r\n goMyOrders() {\r\n if (guestLoggedIn === \"true\") {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/myorders' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n this.setState({ loading: true });\r\n sessionStorage.setItem(\"login-page-session\", 8); // My ORders\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/login' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n }\r\n\r\n gotoLogin() {\r\n this.setState({ loading: true });\r\n sessionStorage.setItem(\"login-page-session\", 2); //Items\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/login' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n\r\n filterMenus(menuList, recommendedList, clfFilterItems = null) {\r\n\r\n //let filterItems = clfFilterItems === null ? menuList : clfFilterItems;\r\n let filterItems = menuList;\r\n let clfitems = clfFilterItems;\r\n let recList = recommendedList;\r\n\r\n let filterGroups = [];\r\n\r\n\r\n //Menu Group Filter\r\n let _uniquesGroups = [];\r\n\r\n var _taxItmFound = {};\r\n for (var md = 0, lenc = clfitems.length; md <= lenc - 1; md++) {\r\n var stringified = JSON.stringify(clfitems[md].menuGroupId);\r\n if (_taxItmFound[stringified]) { continue; }\r\n _uniquesGroups.push({ groupId: clfitems[md].menuGroupId });\r\n _taxItmFound[stringified] = true;\r\n };\r\n // console.log(_uniquesGroups);\r\n\r\n Array.prototype.forEach.call(getMenus, grp => {\r\n let grplst = [];\r\n let subgrplst = []\r\n let itemCount = clfitems.filter(itm => itm.menuGroupId === grp.menuGroupId).length;\r\n if (grp.subMenuGroup.length > 0) {\r\n Array.prototype.forEach.call(grp.subMenuGroup, sgp => {\r\n grplst = _uniquesGroups.filter(x => x.groupId === sgp.menuGroupId);\r\n if (grplst.length > 0) {\r\n itemCount += clfitems.filter(itm => itm.menuGroupId === sgp.menuGroupId).length;\r\n subgrplst.push({ classification: sgp.classification, description: sgp.description, displayOrder: sgp.displayOrder, hasSubMenuGroup: sgp.hasSubMenuGroup, hsnsac: sgp.hsnsac, isActive: sgp.isActive, menuGroupId: sgp.menuGroupId, menuGroupName: sgp.menuGroupName, subMenuGroup: sgp.subMenuGroup, noOfItems: itemCount });\r\n }\r\n // third Level menus \r\n Array.prototype.forEach.call(sgp.subMenuGroup, ssgp => {\r\n grplst = _uniquesGroups.filter(x => x.groupId === ssgp.menuGroupId);\r\n if (grplst.length > 0) {\r\n itemCount += clfitems.filter(itm => itm.menuGroupId === ssgp.menuGroupId).length;\r\n subgrplst.push({ classification: ssgp.classification, description: ssgp.description, displayOrder: ssgp.displayOrder, hasSubMenuGroup: ssgp.hasSubMenuGroup, hsnsac: ssgp.hsnsac, isActive: ssgp.isActive, menuGroupId: ssgp.menuGroupId, menuGroupName: ssgp.menuGroupName, subMenuGroup: ssgp.subMenuGroup, noOfItems: itemCount });\r\n }\r\n });\r\n\r\n });\r\n // console.log(subgrplst);\r\n if (subgrplst.length > 0) {\r\n filterGroups.push({ classification: grp.classification, description: grp.description, displayOrder: grp.displayOrder, hasSubMenuGroup: grp.hasSubMenuGroup, hsnsac: grp.hsnsac, isActive: grp.isActive, menuGroupId: grp.menuGroupId, menuGroupName: grp.menuGroupName, subMenuGroup: subgrplst, noOfItems: itemCount });\r\n }\r\n }\r\n else {\r\n grplst = _uniquesGroups.filter(x => x.groupId === grp.menuGroupId);\r\n if (grplst.length > 0)\r\n filterGroups.push({ classification: grp.classification, description: grp.description, displayOrder: grp.displayOrder, hasSubMenuGroup: grp.hasSubMenuGroup, hsnsac: grp.hsnsac, isActive: grp.isActive, menuGroupId: grp.menuGroupId, menuGroupName: grp.menuGroupName, subMenuGroup: [], noOfItems: itemCount });\r\n }\r\n });\r\n // console.log(filterGroups);\r\n\r\n\r\n\r\n // console.log(recommendedList);\r\n\r\n\r\n // this.setState({ getItems: clfFilterItems === null ? filterItems : menuList });\r\n this.setState({ getItems: filterItems });\r\n this.setState({ recommendedList: recList });\r\n this.setState({ getMenus: filterGroups });\r\n\r\n // fillCart Details\r\n setTimeout(() => {\r\n this.getCartDetails();\r\n }, Config.minMsgTimeout);\r\n }\r\n // console.log(handleSwitchChange);\r\n handleSwitchChange = nr => () => {\r\n let switchNumber = `switch${nr}`;\r\n isCheckVeg = !this.state[switchNumber];\r\n\r\n this.setState({ showOnlyVeg: isCheckVeg });\r\n\r\n if (isCheckVeg === true) {\r\n\r\n if (outletDetails.showOnlySelectedMenuGroupItems) {\r\n getGlobalItems = getItems; // Added by vijay \r\n\r\n // Commended by vijay due to search counts are not coming properly \r\n // getGlobalItems = getItems.filter(obj => { return (obj.foodType === 1) && obj.isRecommended === false });\r\n // Added by vijay due to search counts are not coming properly \r\n getGlobalItems = getItems.filter(obj => obj.foodType === 1 && !obj.isRecommended);\r\n\r\n // console.log(\"getGlobalItems\");\r\n if (this.state.searchText !== \"\")\r\n // UnCommended by vijay due to search counts are not coming properly \r\n getGlobalItems = getItems.filter(obj => { return (obj.foodType === 1) && obj.isRecommended === false && (obj.itemName.toLowerCase().indexOf(this.state.searchText.toLowerCase()) >= 0) });\r\n // Added [Commended /23-02-2024] by vijay due to search counts are not coming properly \r\n // getGlobalItems = getItems.filter(obj => obj.itemName.toLowerCase().indexOf(this.state.searchText.toLowerCase()) >= 0);\r\n\r\n let clfList = this.getFilterClassification(getGlobalItems);\r\n this.setState({ getClassification: clfList });\r\n if (clfList.length > 0) {\r\n this.handleClassificationClick(0, clfList[0].classificationName, clfList[0].classification)\r\n }\r\n else {\r\n this.filterMenus([], [], []);\r\n }\r\n\r\n }\r\n else {\r\n // Commended by vijay on 13-02-2024 -Due to classification counts not loading properly \r\n // let clffilterItems = getItems.filter(obj => { return (obj.classification === this.state.selectedClassification) });\r\n // let filterItems = clffilterItems.filter(x => x.foodType === 1);\r\n\r\n // if (this.state.searchText !== \"\")\r\n // filterItems = filterItems.filter(obj => { return (obj.itemName.toLowerCase().indexOf(this.state.searchText.toLowerCase()) >= 0) });\r\n\r\n // let recList = filterItems.filter(itm => itm.isRecommended);\r\n // this.filterMenus(filterItems, recList, filterItems);\r\n\r\n // Added by vijay on 13-02-2024 Jirs id-2078 -start\r\n let filterItems = getItems.filter(x => x.foodType === 1);\r\n if (this.state.searchText !== \"\")\r\n filterItems = filterItems.filter(obj => { return (obj.itemName.toLowerCase().indexOf(this.state.searchText.toLowerCase()) >= 0) });\r\n\r\n let recList = filterItems.filter(itm => itm.isRecommended);\r\n let clfList = this.getFilterClassification(filterItems);\r\n this.setState({ getClassification: clfList });\r\n if (clfList.length > 0) {\r\n this.handleClassificationClick(0, clfList[0].classificationName, clfList[0].classification)\r\n }\r\n else {\r\n this.filterMenus(filterItems, recList, filterItems);\r\n }\r\n }\r\n }\r\n else {\r\n if (outletDetails.showOnlySelectedMenuGroupItems) {\r\n getGlobalItems = getItems;\r\n if (this.state.searchText !== \"\")\r\n getGlobalItems = getGlobalItems.filter(obj => { return (obj.itemName.toLowerCase().indexOf(this.state.searchText.toLowerCase()) >= 0) });\r\n\r\n\r\n let clfList = this.getFilterClassification(getGlobalItems);\r\n this.setState({ getClassification: clfList });\r\n\r\n if (clfList.length > 0) {\r\n this.handleClassificationClick(0, clfList[0].classificationName, clfList[0].classification)\r\n }\r\n else this.filterMenus([], [], []);\r\n }\r\n\r\n else {\r\n\r\n // Commended by vijay on 13-02-2024 - Due to classification counts and items not loading properly\r\n // let clffilterItems = getItems.filter(obj => { return (obj.classification === this.state.selectedClassification) });\r\n // if (this.state.searchText !== \"\")\r\n // clffilterItems = clffilterItems.filter(obj => { return (obj.itemName.toLowerCase().indexOf(this.state.searchText.toLowerCase()) >= 0) });\r\n\r\n // let recList = clffilterItems.filter(itm => itm.isRecommended);\r\n // this.filterMenus(clffilterItems, recList, clffilterItems);\r\n\r\n // Added by vijay on 13-02-2024 -Jira id -2078 -start\r\n let filterItems = getItems;\r\n if (this.state.searchText !== \"\")\r\n filterItems = filterItems.filter(obj => { return (obj.itemName.toLowerCase().indexOf(this.state.searchText.toLowerCase()) >= 0) });\r\n\r\n let recList = filterItems.filter(itm => itm.isRecommended);\r\n // this.filterMenus(clffilterItems, recList, clffilterItems);\r\n\r\n let clfList = this.getFilterClassification(filterItems);\r\n this.setState({ getClassification: clfList });\r\n if (clfList.length > 0) {\r\n this.handleClassificationClick(0, clfList[0].classificationName, clfList[0].classification)\r\n }\r\n else {\r\n this.filterMenus(filterItems, recList, filterItems);\r\n }\r\n // Added by vijay on 13-02-2024 -Jira id -2078 -End \r\n\r\n }\r\n // this.setState({ getItems: getItems });\r\n // this.setState({ recommendedList: recommendedList });\r\n // this.setState({ getMenus: getMenus });\r\n }\r\n\r\n window.scrollTo(0, 0);\r\n\r\n this.setState({\r\n [switchNumber]: !this.state[switchNumber]\r\n });\r\n\r\n // { this.state[switchNumber] === true ? alert('true') : alert('false') }\r\n // console.log(!this.state[switchNumber]);\r\n };\r\n\r\n\r\n\r\n // Menu Search\r\n handlechange = event => {\r\n const val = event.target.value;\r\n\r\n this.setState({ searchText: val });\r\n\r\n if (val === \"\") {\r\n\r\n if (outletDetails.showOnlySelectedMenuGroupItems) {\r\n\r\n getGlobalItems = getItems;\r\n\r\n if (isCheckVeg)\r\n getGlobalItems = getItems.filter(obj => { return (obj.foodType === 1) });\r\n\r\n let clfList = this.getFilterClassification(getGlobalItems);\r\n //console.log(clfList);\r\n this.setState({ getClassification: clfList });\r\n\r\n if (clfList.length > 0) {\r\n this.handleClassificationClick(0, clfList[0].classificationName, clfList[0].classification)\r\n }\r\n else this.filterMenus([], [], []);\r\n }\r\n else {\r\n\r\n let clfList = this.getFilterClassification(getItems);\r\n this.setState({ getClassification: clfList });\r\n\r\n getGlobalItems = getItems.filter(obj => { return (obj.classification === this.state.selectedClassification) });\r\n\r\n if (isCheckVeg)\r\n getGlobalItems = getGlobalItems.filter(obj => { return (obj.foodType === 1) });\r\n\r\n let recList = getGlobalItems.filter(itm => itm.isRecommended);\r\n\r\n this.filterMenus(getGlobalItems, recList, getGlobalItems);\r\n }\r\n }\r\n else {\r\n if (outletDetails.showOnlySelectedMenuGroupItems) {\r\n\r\n // console.log(val);\r\n // getGlobalItems = getItems;\r\n // let clffilterItems = getItems.filter(obj => { return (obj.classification === this.state.selectedClassification) }); \r\n // Commended by vijay on 23-02-2024 -Due to search is not working properly\r\n // getGlobalItems = getItems.filter(obj => { return (obj.itemName.toLowerCase().indexOf(val.toLowerCase()) >= 0) && obj.isRecommended === false });\r\n\r\n // Added by vijay on 13-02-2024Jira id-2078 -Due to search items are not coming properly \r\n getGlobalItems = getItems.filter(obj => (obj.itemName.toLowerCase() === val.toLowerCase() || obj.itemName.toLowerCase().indexOf(val.toLowerCase()) >= 0));\r\n\r\n if (isCheckVeg)\r\n getGlobalItems = getGlobalItems.filter(obj => { return (obj.foodType === 1) });\r\n\r\n // console.log(getGlobalItems);\r\n\r\n let clfList = this.getFilterClassification(getGlobalItems);\r\n this.setState({ getClassification: clfList });\r\n if (clfList.length > 0) {\r\n this.handleClassificationClick(0, clfList[0].classificationName, clfList[0].classification)\r\n }\r\n else this.filterMenus([], [], []);\r\n }\r\n else {\r\n // console.log(val);\r\n\r\n let clfList = this.getFilterClassification(getItems);\r\n this.setState({ getClassification: clfList });\r\n\r\n let clffilterItems = getItems.filter(obj => { return (obj.classification === this.state.selectedClassification) });\r\n\r\n // getGlobalItems = clffilterItems.filter(obj => (obj.itemName.toLowerCase() === val.toLowerCase() || obj.itemName.toLowerCase().indexOf(val.toLowerCase()) >= 0) && obj.isRecommended);\r\n getGlobalItems = clffilterItems.filter(obj => { return (obj.itemName.toLowerCase().indexOf(val.toLowerCase()) >= 0) });\r\n\r\n if (isCheckVeg)\r\n getGlobalItems = getGlobalItems.filter(obj => { return (obj.foodType === 1) });\r\n\r\n // console.log(getGlobalItems);\r\n\r\n let recList = getGlobalItems.filter(itm => itm.isRecommended);\r\n // console.log(recList);\r\n this.filterMenus(getGlobalItems, recList, getGlobalItems);\r\n }\r\n\r\n }\r\n window.scrollTo(0, 0);\r\n };\r\n\r\n getFilterClassification(itemList) {\r\n\r\n //Classification Filter\r\n let _uniquesCLF = [];\r\n\r\n var _clfFound = {};\r\n for (var md = 0, lenc = itemList.length; md <= lenc - 1; md++) {\r\n var stringified = JSON.stringify(itemList[md].classification);\r\n if (_clfFound[stringified]) { continue; }\r\n _uniquesCLF.push({ classification: itemList[md].classification });\r\n _clfFound[stringified] = true;\r\n };\r\n\r\n // console.log(_uniquesCLF);\r\n\r\n let clfList = [];\r\n Array.prototype.forEach.call(_uniquesCLF, clf => {\r\n let list = getClassification.filter(c => c.classification === clf.classification);\r\n if (list.length > 0) clfList.push({ classification: list[0].classification, classificationName: list[0].classificationName, displayOrder: list[0].displayOrder, imageUrl: list[0].imageUrl });\r\n });\r\n\r\n\r\n clfList = [...clfList].sort((a, b) => a.displayOrder - b.displayOrder);\r\n\r\n // console.log(clfList);\r\n\r\n return clfList;\r\n }\r\n\r\n goCart() {\r\n\r\n /// user Session Validation \r\n if (!sHelpers.userSessionValidation(userSessionId)) {\r\n this.showMessage(\"Your session has been expired, please scan once again\", \"danger\");\r\n setTimeout(() => {\r\n window.location.reload(true);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n\r\n\r\n window.scrollTo(0, 0);\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/cart' + urlPattern, {\r\n getMenus: this.props.location.state.getMenus,\r\n getItems: this.props.location.state.getItems,\r\n getModifiers: this.props.location.state.getModifiers,\r\n getTaxes: this.props.location.state.getTaxes,\r\n getCharges: this.props.location.state.getCharges\r\n });\r\n }, Config.minMsgTimeout);\r\n }\r\n\r\n handleMenuGroupClick(index, mnuid) {\r\n this.setState({\r\n activeMenuGroup: index,\r\n });\r\n\r\n if (!outletDetails.showOnlySelectedMenuGroupItems) {\r\n // window.location.hash = '#' + mnuid; \r\n var stickyContainer = document.getElementById(\"\" + mnuid + \"\");\r\n // console.log(stickyContainer.offsetTop + 170);\r\n // window.scrollTo(0, stickyContainer.offsetTop);\r\n window.scrollTo({\r\n top: stickyContainer.offsetTop - 185,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n }\r\n\r\n handleAddQty(itmId, val, rate, itmName, itemId, groupId, foodType, modifierGroupIds, taxId, chargeId) {\r\n this.handleQtyIncDec(itmId, val, rate, itmName, itemId, groupId, foodType, modifierGroupIds, taxId, chargeId);\r\n }\r\n\r\n handleQtyIncDec(itmId, val, rate, itmName, itemId, groupId, foodType, modifierGroupIds, taxId, chargeId) {\r\n\r\n if (modifierGroupIds.length === 0) { // Find the modifier\r\n let qty = document.getElementById(\"\" + itmId + \"\").innerHTML === \"\" ? 0 : JSON.parse(document.getElementById(\"\" + itmId + \"\").innerHTML);\r\n\r\n\r\n\r\n if (qty === 0 && val === 0) {\r\n // console.log('invalid');\r\n return false;\r\n }\r\n let _qtyVal = val === 1 ? qty += 1 : qty -= 1;\r\n\r\n if (qty >= 0) {\r\n this.setState({ qty: _qtyVal });\r\n document.getElementById(\"\" + itmId + \"\").innerHTML = _qtyVal;\r\n totalItems = val === 1 ? totalItems += 1 : totalItems -= 1;\r\n totalAmount = val === 1 ? totalAmount += rate : totalAmount -= rate;\r\n }\r\n\r\n this.qtyMode('item-add-' + itmId, 'item-entry-' + itmId, itmId);\r\n\r\n\r\n //let _amtVal = _qtyVal * rate;\r\n // totalAmount += _amtVal; \r\n\r\n this.setState({ totalItems: totalItems });\r\n this.setState({ totalAmount: totalAmount });\r\n\r\n cartList.totalItems = totalItems;\r\n cartList.totalAmount = totalAmount;\r\n let uid = uuid();\r\n taxList = sessionStorage.getItem(\"taxCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"taxCartList\"));\r\n chargeList = sessionStorage.getItem(\"chargeCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"chargeCartList\"));\r\n\r\n let index = cartList.itemList.findIndex(x => x.id === \"\" + itmId + \"\");\r\n if (index < 0) {\r\n this.itemTaxCalc(taxId, rate, qty, itemId, uid);\r\n this.itemChargeCalc(chargeId, rate, qty, itemId, uid);\r\n cartList.itemList.push({ id: \"\" + itmId + \"\", itemId: itemId, groupId: groupId, foodType: foodType, qty: _qtyVal, rate: rate, itemName: itmName, isModifier: 0, uid: uid, taxId: taxId, chargeIds: chargeId });\r\n }\r\n else {\r\n if (_qtyVal > 0) {\r\n // tax\r\n let exTax = taxList.filter(x => x.uid === cartList.itemList[index].uid);\r\n let txidx = -1;\r\n Array.prototype.forEach.call(exTax, tx => {\r\n txidx = taxList.findIndex(x => x.serialNo === tx.serialNo && x.uid === tx.uid);\r\n taxList.splice(txidx, 1);\r\n });\r\n\r\n cartList.itemList[index].qty = _qtyVal;\r\n this.itemTaxCalc(taxId, rate, _qtyVal, itemId, cartList.itemList[index].uid);\r\n\r\n // charge\r\n let exCharge = chargeList.filter(x => x.uid === cartList.itemList[index].uid);\r\n let chgidx = -1;\r\n Array.prototype.forEach.call(exCharge, chg => {\r\n chgidx = chargeList.findIndex(x => x.uid === chg.uid);\r\n chargeList.splice(chgidx, 1);\r\n });\r\n // console.log(chargeList);\r\n this.itemChargeCalc(chargeId, rate, _qtyVal, itemId, cartList.itemList[index].uid);\r\n }\r\n else {\r\n //tax\r\n let exTax = taxList.filter(x => x.uid === cartList.itemList[index].uid);\r\n let txidx = -1;\r\n Array.prototype.forEach.call(exTax, tx => {\r\n txidx = taxList.findIndex(x => x.serialNo === tx.serialNo && x.uid === tx.uid);\r\n taxList.splice(txidx, 1);\r\n });\r\n\r\n // charge\r\n let exCharge = chargeList.filter(x => x.uid === cartList.itemList[index].uid);\r\n let chgidx = -1;\r\n Array.prototype.forEach.call(exCharge, chg => {\r\n chgidx = chargeList.findIndex(x => x.uid === chg.uid);\r\n chargeList.splice(chgidx, 1);\r\n });\r\n\r\n\r\n cartList.itemList.splice(index, 1);\r\n }\r\n }\r\n\r\n\r\n sessionStorage.setItem(\"cartList\", JSON.stringify(cartList));\r\n sessionStorage.setItem(\"taxCartList\", JSON.stringify(taxList));\r\n sessionStorage.setItem(\"chargeCartList\", JSON.stringify(chargeList));\r\n // console.log(cartList);\r\n // console.log(taxList);\r\n // console.log(chargeList);\r\n }\r\n else {\r\n let qty = document.getElementById(\"\" + itmId + \"\").innerHTML === \"\" ? 0 : JSON.parse(document.getElementById(\"\" + itmId + \"\").innerHTML);\r\n \r\n if (val === 1) {\r\n this.setState({\r\n modifierFoodType: foodType,\r\n modifierItemName: itmName,\r\n modifierItemId: itemId,\r\n modifierItemCId: itmId,\r\n modifierItemCQty: qty,\r\n modifierItemCRate: rate,\r\n modifierItemCGroupId: groupId,\r\n modifierItemCTaxId: taxId,\r\n modifierItemCChargeIds: chargeId,\r\n showModal: true\r\n });\r\n this.setState({ modifierGroupIds: modifierGroupIds })\r\n setTimeout(() => {\r\n this.handleModifier();\r\n }, Config.minMsgTimeout);\r\n }\r\n else { // validating modifier minus process\r\n if (qty > 0) {\r\n this.showMessage('This item has multiple customizations added. Proceed to cart to remove item.', \"danger\");\r\n this.setState({ loading: true });\r\n setTimeout(() => { this.props.history.push('/cart' + urlPattern); }, Config.averageMsgTimeout);\r\n return false;\r\n }\r\n }\r\n // this.handleModifier();\r\n }\r\n };\r\n\r\n itemTaxCalc(taxId, rate, qty, itemId, uid) {\r\n let cList = getTaxes.filter(x => x.taxId === taxId);\r\n let taxObj = [];\r\n let taxAmt = 0;\r\n let itemValue = rate * qty;\r\n let bInsertTax = false;\r\n if (cList.length > 0) {\r\n Array.prototype.forEach.call(cList[0].structure, tx => {\r\n bInsertTax = false;\r\n taxAmt = 0;\r\n //Applicable on = 2 Discount Value && applicableon = 1 direct value\r\n if (tx.applicableOn === 3) { // Tax on Tax \r\n let serialTax = taxObj.filter(x => x.serialNo === tx.taxOnSerialNo);\r\n if (serialTax.length > 0) {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = serialTax[0].taxAmount * tx.taxValue * 0.01;\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue * qty;\r\n\r\n bInsertTax = true;\r\n\r\n }\r\n }\r\n else {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = itemValue * tx.taxValue * 0.01;\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue * qty; // \r\n\r\n bInsertTax = true;\r\n }\r\n\r\n if (bInsertTax === true) {\r\n taxObj.push({ itemId: itemId, uid: uid, taxId: taxId, taxGroupName: cList[0].taxName, serialNo: tx.serialNo, taxCode: tx.taxCode, taxName: tx.taxName, applicableOn: tx.applicableOn, taxType: tx.taxType, taxValue: tx.taxValue, taxAmount: Number((taxAmt).toFixed(2)) });\r\n taxList.push({ itemId: itemId, uid: uid, taxId: taxId, taxGroupName: cList[0].taxName, serialNo: tx.serialNo, taxCode: tx.taxCode, taxName: tx.taxName, applicableOn: tx.applicableOn, taxType: tx.taxType, taxValue: tx.taxValue, taxAmount: Number((taxAmt).toFixed(2)) });\r\n }\r\n });\r\n }\r\n }\r\n\r\n itemChargeCalc(chargeId, rate, qty, itemId, uid) {\r\n // console.log(chargeId);\r\n chargeId = chargeId === null ? [] : chargeId;\r\n if (chargeId.length > 0) {\r\n Array.prototype.forEach.call(chargeId, cId => {\r\n // filter based on Item wise & Item Qty wise => apply category\r\n let chargelist = getCharges.filter(x => x.chargeId === cId && x.applyTo === 1);\r\n let taxlist = [];\r\n let taxObj = [];\r\n let taxAmt = 0;\r\n\r\n let itemValue = rate * qty;\r\n // console.log(chargelist);\r\n let chargeAmt = 0;\r\n if (chargelist.length > 0) {\r\n Array.prototype.forEach.call(chargelist, chg => {\r\n let rnTaxAmt = 0;\r\n if (chg.applyType === 2) { // slabe wise (%) - only for slab base value from and value to (percentage =>itmvalue * per * 0.01) or amount=> direct slab amount) \r\n chg.chargeSlab = chg.chargeSlab === null ? [] : chg.chargeSlab;\r\n let cslab = chg.chargeSlab.filter(x => x.ValueFrom > itemValue && x.ValueTo < itemValue)\r\n if (cslab.length > 0) {\r\n if (cslab.chargeValueType === 1)\r\n chargeAmt = itemValue * chg.chargeValue * 0.01;\r\n else if (cslab.chargeValueType === 2)\r\n chargeAmt = cslab.ChargeValue;\r\n }\r\n }\r\n else if (chg.chargeValueType === 2) // Amount only qty based \r\n chargeAmt = chg.chargeValue * qty; // \r\n // console.log(chargeAmt);\r\n // Tax \r\n taxlist = getTaxes.filter(x => x.taxId === chg.taxId);\r\n if (taxlist.length > 0) {\r\n Array.prototype.forEach.call(taxlist[0].structure, tx => {\r\n taxAmt = 0;\r\n if (tx.applicableOn === 3) {\r\n let serialTax = taxObj.filter(x => x.serialNo === tx.taxOnSerialNo);\r\n if (serialTax.length > 0) {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = serialTax[0].taxAmount * tx.taxValue * 0.01;\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue;\r\n }\r\n }\r\n else {\r\n\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = (chargeAmt * tx.taxValue * 0.01);\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue; // \r\n }\r\n rnTaxAmt += taxAmt;\r\n taxObj.push({ itemId: itemId, uid: uid, chargeId: chg.chargeId, taxId: chg.taxId, taxGroupName: taxlist[0].taxName, serialNo: tx.serialNo, taxCode: tx.taxCode, taxName: tx.taxName, applicableOn: tx.applicableOn, taxType: tx.taxType, taxValue: tx.taxValue, taxAmount: Number((taxAmt).toFixed(2)) });\r\n })\r\n // console.log(taxObj);\r\n }\r\n chargeList.push({ itemId: itemId, uid: uid, chargeId: chg.chargeId, chargeName: chg.chargeName, chargeType: chg.chargeType, isMerchantCharge: false, chargeValueType: chg.chargeValueType, chargeValue: chg.chargeValue, chargeAmount: Number((chargeAmt).toFixed(2)), taxes: taxObj, totalTaxAmount: rnTaxAmt });\r\n\r\n });\r\n // console.log(chargeList);\r\n }\r\n });\r\n }\r\n }\r\n\r\n handleModifier(_this) {\r\n if (modifierRef.current) {\r\n modifierRef.current.handleModifier();\r\n }\r\n }\r\n\r\n callBackModifier() {\r\n\r\n if (sessionStorage.getItem(\"cartList\") != null) {\r\n cartList = JSON.parse(sessionStorage.getItem(\"cartList\"));\r\n\r\n Array.prototype.forEach.call(cartList.itemList, itm => {\r\n this.qtyMode('item-add-' + itm.id, 'item-entry-' + itm.id, itm.id);\r\n });\r\n // console.log(cartList);\r\n this.setState({ totalItems: cartList.totalItems, totalAmount: cartList.totalAmount });\r\n totalItems = cartList.totalItems;\r\n totalAmount = cartList.totalAmount;\r\n }\r\n\r\n this.setState({ showModal: true });\r\n // console.log(this.state.showModal);\r\n }\r\n\r\n callBackRequest(msg, type) {\r\n\r\n // console.log(msg + '-' + type);\r\n\r\n setTimeout(() => {\r\n if (type === 1)\r\n this.showMessage(msg, \"success\");\r\n else\r\n this.showMessage(msg, \"danger\");\r\n }, Config.minMsgTimeout);\r\n }\r\n\r\n callBackGroupMembers(msg, type) {\r\n\r\n setTimeout(() => {\r\n if (type === 1)\r\n this.showMessage(msg, \"success\");\r\n else\r\n this.showMessage(msg, \"danger\");\r\n }, Config.minMsgTimeout);\r\n }\r\n\r\n handleClearText() {\r\n if (this.state.searchText !== \"\") {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ searchText: \"\" });\r\n // this.setState({ getItems: getItems });\r\n // this.setState({ recommendedList: recommendedList });\r\n // this.setState({ getMenus: getMenus });\r\n\r\n if (getClassification.length > 0) {\r\n // Default -> First Classification Select\r\n this.setState({ activeClassification: 0 })\r\n getGlobalItems = getItems;\r\n if (this.state.showOnlyVeg)\r\n getGlobalItems = getItems.filter(obj => { return (obj.foodType === 1) });\r\n\r\n\r\n let clfList = this.getFilterClassification(getGlobalItems);\r\n this.setState({ getClassification: clfList });\r\n\r\n this.handleClassificationClick(0, getClassification[0].classificationName, getClassification[0].classification)\r\n }\r\n\r\n this.searchInp.focus();\r\n this.setState({ loading: false });\r\n window.scrollTo(0, 0);\r\n }, Config.minMsgTimeout);\r\n }\r\n }\r\n\r\n getUpdateMenus() {\r\n if (!isUpdateMenu) {\r\n isUpdateMenu = true;\r\n window.scrollTo(0, 0);\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n let urlParam = '?OutletId=' + propertyId + outletCode + '&ServiceType=' + serviceType;\r\n sessionStorage.getItem('menuFetchDateTime') !== null ? urlParam += '&menuDateTime=' + sessionStorage.getItem('menuFetchDateTime') : urlParam += '';\r\n fetch(Config.basePOSUrl + 'Getguestappmenus' + urlParam, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n //console.log(response);\r\n if (response.errorCode === 0) {\r\n // console.log(JSON.stringify(response.response.menuGroups)); \r\n if (response.response !== null) {\r\n // Filter active Menu Items\r\n let activeMenuGroups = [];\r\n let activeMenuItems = [];\r\n if (response.response.menuGroups.length > 0)\r\n activeMenuGroups = response.response.menuGroups.filter(x => x.isActive === true).sort(function (a, b) {\t// asc\t\t\t\t\t\t\t\t\t\t \r\n return new Date(a.displayOrder) - new Date(b.displayOrder);\r\n });\r\n\r\n if (response.response.menuItems.length > 0)\r\n activeMenuItems = response.response.menuItems.filter(x => x.isActive === true).sort(function (a, b) {\t// asc\t\t\t\t\t\t\t\t\t\t \r\n return new Date(a.displayOrder) - new Date(b.displayOrder);\r\n });\r\n\r\n sessionStorage.setItem(\"getMenuGroups\", JSON.stringify(activeMenuGroups));\r\n sessionStorage.setItem(\"getmenuItems\", JSON.stringify(activeMenuItems));\r\n sessionStorage.setItem(\"getModifierGroups\", JSON.stringify(response.response.modifierGroups));\r\n sessionStorage.setItem(\"getTaxes\", JSON.stringify(response.response.taxes));\r\n sessionStorage.setItem(\"getCharges\", JSON.stringify(response.response.charges));\r\n sessionStorage.setItem(\"menuFetchDateTime\", response.response.menuDateTime);\r\n getMenus = sessionStorage.getItem(\"getMenuGroups\") === null ? [] : JSON.parse(sessionStorage.getItem(\"getMenuGroups\"));\r\n getItems = sessionStorage.getItem(\"getmenuItems\") === null ? [] : JSON.parse(sessionStorage.getItem(\"getmenuItems\"));\r\n getModifiers = sessionStorage.getItem(\"getModifierGroups\") === null ? [] : JSON.parse(sessionStorage.getItem(\"getModifierGroups\"));\r\n getTaxes = sessionStorage.getItem(\"getTaxes\") === null ? [] : JSON.parse(sessionStorage.getItem(\"getTaxes\"));\r\n getCharges = sessionStorage.getItem(\"getCharges\") === null ? [] : JSON.parse(sessionStorage.getItem(\"getCharges\"));\r\n recommendedList = getItems.filter(itm => itm.isRecommended);\r\n\r\n this.setState({\r\n recommendedList: recommendedList,\r\n getMenus: getMenus,\r\n getItems: getItems,\r\n });\r\n this.setState({ searchText: \"\" });\r\n\r\n\r\n // Update Item Qty Mode\r\n if (sessionStorage.getItem(\"cartList\") != null) {\r\n cartList = JSON.parse(sessionStorage.getItem(\"cartList\"));\r\n // group by item\r\n Array.prototype.forEach.call(cartList.itemList, itm => {\r\n //let totlaQty = document.getElementById(\"\" + itm.id + \"\").innerHTML === \"\" ? 0 : JSON.parse(document.getElementById(\"\" + itm.id + \"\").innerHTML); \r\n let sout = document.getElementById(\"\" + itm.id + \"\").getAttribute('data-so');\r\n this.qtyMode('item-add-' + itm.id, 'item-entry-' + itm.id, itm.id, sout);\r\n });\r\n }\r\n\r\n if (getClassification.length > 0) {\r\n // Default -> First Classification Select\r\n this.setState({ activeClassification: 0 })\r\n // Commedned by vijay on 01-02-2024 -Due to If click refresh, qty is getting multiplies of actual qty -JIra id -2078\r\n // this.handleClassificationClick(0, getClassification[0].classificationName, getClassification[0].classification)\r\n }\r\n }\r\n\r\n }\r\n else {\r\n this.setState({ APIResponseMsg: \"Failed to fetch\" })\r\n this.showMessage(response.message, \"danger\");\r\n }\r\n this.setState({ loading: false });\r\n isUpdateMenu = false;\r\n })\r\n .catch(err => {\r\n this.setState({ APIResponseMsg: \"Failed to fetch\" });\r\n this.setState({ loading: false });\r\n isUpdateMenu = false;\r\n //console.log(err);\r\n // this.showMessage(\"An error occured\", \"danger\");\r\n });\r\n }, Config.minMsgTimeout);\r\n }\r\n }\r\n\r\n goBill() {\r\n if (guestLoggedIn === \"true\") {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n\r\n this.setState({ loading: false });\r\n this.props.history.push('/mybills' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n this.setState({ loading: true });\r\n sessionStorage.setItem(\"login-page-session\", 7); // PayBill \r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/login' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n }\r\n\r\n handleGenerateRecommendedListDom() {\r\n return (\r\n
\r\n
{this.state.recommendedTxt}
\r\n
\r\n {\r\n this.state.recommendedList.map(itm =>\r\n
\r\n
\r\n {itm.bestSellerItem === true && BEST SELLER}\r\n
\r\n \"item\"\r\n
\r\n
\r\n
\r\n {/* {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n {itm.itemName} */}\r\n \r\n
\r\n {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n
\r\n
\r\n {itm.itemName}\r\n\r\n {/*
\r\n \r\n
\r\n {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n
\r\n
\r\n
\r\n
{itm.itemName}
\r\n
\r\n
*/}\r\n
\r\n {/*
\r\n {itm.description.toLowerCase()}\r\n
*/}\r\n
\r\n
\r\n
\r\n \r\n 0\r\n \r\n
\r\n\r\n {!itm.outOfStock &&
\r\n ADD\r\n
\r\n }\r\n {itm.outOfStock &&
\r\n SOLD OUT\r\n
}\r\n\r\n
\r\n {itm.modifierGroupIds !== null && itm.modifierGroupIds.length > 0 &&
customizable
}\r\n
\r\n ₹{itm.mrp}\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n
\r\n
\r\n\r\n
\r\n );\r\n };\r\n\r\n handleVerticalGenerateRecommendedListDom() {\r\n return (\r\n
\r\n
{this.state.recommendedTxt}
\r\n
\r\n {\r\n this.state.recommendedList.map(itm =>\r\n
\r\n
\r\n {itm.bestSellerItem === true && BEST SELLER}\r\n
\r\n \"item\"\r\n
\r\n
\r\n
\r\n {/* {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n {itm.itemName} */}\r\n \r\n
\r\n {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n
\r\n
\r\n {itm.itemName}\r\n\r\n {/*
\r\n \r\n
\r\n {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n
\r\n
\r\n
\r\n
{itm.itemName}
\r\n
\r\n
*/}\r\n
\r\n {/*
\r\n {itm.description.toLowerCase()}\r\n
*/}\r\n
\r\n
\r\n
\r\n \r\n 0\r\n \r\n\r\n
\r\n\r\n {!itm.outOfStock &&
\r\n ADD\r\n
\r\n }\r\n {itm.outOfStock &&
\r\n SOLD OUT\r\n
}\r\n\r\n
\r\n {itm.modifierGroupIds !== null && itm.modifierGroupIds.length > 0 &&
customizable
}\r\n
\r\n
₹{itm.mrp}
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n handleGenerateRowRecommendedListDom() {\r\n const { scrollPosition\r\n } = this.props;\r\n return (\r\n\r\n
\r\n
{this.state.recommendedTxt}
\r\n
\r\n {\r\n this.state.recommendedList.map(itm =>\r\n\r\n\r\n //
\r\n //
\r\n // {itm.bestSellerItem === true && BEST SELLER}\r\n //
\r\n // \"item\"\r\n //
\r\n //
\r\n //
\r\n // {itm.foodType === 1 && \"item\"}\r\n // {itm.foodType === 2 && \"item\"}\r\n // {itm.itemName.toLowerCase()}\r\n //
\r\n // {/*
\r\n // {itm.description.toLowerCase()}\r\n //
*/}\r\n //
\r\n //
\r\n //
\r\n // \r\n // 0\r\n // \r\n\r\n //
\r\n\r\n // {!itm.outOfStock &&
\r\n // ADD\r\n //
\r\n // }\r\n // {itm.outOfStock &&
\r\n // SOLD OUT\r\n //
}\r\n\r\n //
\r\n // {itm.modifierGroupIds !== null && itm.modifierGroupIds.length > 0 &&
customizable
}\r\n //
\r\n //
₹{itm.mrp}
\r\n //
\r\n //
\r\n\r\n\r\n //
\r\n //
\r\n //
\r\n //
\r\n //
\r\n //
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n 0\r\n \r\n
\r\n\r\n {(!itm.outOfStock && outletDetails.enableGuestAppOrders === true) &&\r\n
\r\n ADD\r\n
\r\n }\r\n\r\n {/* Modifier Added by vijay on 11-05-2024 - Digital Menu Mode */}\r\n {!outletDetails.enableGuestAppOrders && itm.modifierGroupIds !== null && itm.modifierGroupIds.length > 0 && !(itm.outOfStock && !outletDetails.enableGuestAppOrders) ? (\r\n
\r\n \r\n customisable\r\n \r\n
\r\n ) :
\r\n
}\r\n\r\n\r\n {(itm.outOfStock && outletDetails.enableGuestAppOrders === true) &&
\r\n SOLD OUT\r\n
}\r\n\r\n {(itm.modifierGroupIds !== null && itm.modifierGroupIds.length > 0 && outletDetails.enableGuestAppOrders === true) &&
customizable
}\r\n {(itm.imageUrl !== null && itm.imageUrl !== \"\") &&
\r\n {/* \"item\" */}\r\n \r\n
}\r\n {(itm.outOfStock && outletDetails.enableGuestAppOrders === false) &&
SOLD OUT
}\r\n
\r\n {/*
\r\n \r\n
\r\n {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n
\r\n
\r\n
\r\n
{itm.itemName}
\r\n
\r\n\r\n
*/}\r\n\r\n\r\n {/* {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n {itm.itemName}\r\n */}\r\n \r\n
\r\n {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n
\r\n
\r\n {itm.itemName}\r\n\r\n {/* {(itm.outOfStock && outletDetails.enableGuestAppOrders === false) && SOLD OUT} */}\r\n
\r\n
\r\n {/* {itm.description.toLowerCase()} */}\r\n this.handleSetPopupImage(itm.itemName, itm.description, itm.mrp, itm.foodType, itm.imageUrl)}\r\n />\r\n {/* */}\r\n
\r\n\r\n\r\n
\r\n
\r\n ₹{itm.mrp}\r\n
\r\n {/*
\r\n \r\n
*/}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n
\r\n
\r\n\r\n
\r\n );\r\n };\r\n\r\n goToOrderTracking() {\r\n if (guestLoggedIn === \"true\") {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n\r\n this.setState({ loading: false });\r\n this.props.history.push('/ordertrack' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n // else {\r\n // this.setState({ loading: true });\r\n // sessionStorage.setItem(\"login-page-session\", 7); // PayBill \r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/login');\r\n // }, 3000);\r\n // return false;\r\n // }\r\n };\r\n\r\n goToHelpRequest() {\r\n if (guestLoggedIn === \"true\") {\r\n this.setState({ loading: true });\r\n // setTimeout(() => {\r\n\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/helprequest');\r\n // }, 1200);\r\n\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.handleRequest();\r\n }, Config.minMsgTimeout);\r\n\r\n\r\n }\r\n };\r\n\r\n goToGroupMemberList() {\r\n if (guestLoggedIn === \"true\") {\r\n this.setState({ loading: true });\r\n\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.handleGroupMemberList();\r\n }, Config.minMsgTimeout);\r\n }\r\n };\r\n\r\n getGuestProcessOrders() {\r\n //console.log('order getGuestProcessOrders()...');\r\n // console.log(mobileNo);\r\n mobileNo = sessionStorage.getItem('user-mobileno');\r\n this.setState({ loading: true });\r\n if (outletCode !== null && mobileNo !== null && mobileNo !== '0000000000') {\r\n fetch(Config.baseGuestUrl + 'GetGuestOrderList?OutletCode=' + outletCode + '&GuestMobileNo=' + mobileNo, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n this.setState({ loading: false });\r\n if (response.errorCode === 0) {\r\n // console.log(response.response.orders);\r\n this.setState({ orders: response.response.orders });\r\n if (response.response.orders.length > 0) {\r\n sessionStorage.setItem('order-track-status', \"true\");\r\n this.setState({ ordertrack: true });\r\n }\r\n }\r\n else {\r\n this.setState({ orders: [] });\r\n sessionStorage.setItem('order-track-status', \"false\");\r\n this.setState({ ordertrack: false });\r\n this.showMessage(response.message, \"danger\");\r\n }\r\n })\r\n .catch(err => {\r\n this.setState({ loading: false, orders: [] });\r\n sessionStorage.setItem('order-track-status', \"false\");\r\n this.setState({ ordertrack: false });\r\n this.showMessage('Guest Order List - Failed to fetch - ' + err, \"danger\");\r\n });\r\n }\r\n }\r\n\r\n //https://lucid.atlassian.net/browse/L21-320\r\n handleRequest(_this) {\r\n if (reqeustRef.current) {\r\n reqeustRef.current.handleRequest();\r\n }\r\n }\r\n\r\n handleGroupMemberList(_this) {\r\n if (groupMemberRef.current) {\r\n groupMemberRef.current.handleGroupMemberList();\r\n }\r\n }\r\n\r\n handleSetPopupImage(itmName, itmDesc, itmPrice, imgFType, imgUrl) {\r\n this.setState({ imgItemName: itmName, imgItemDesc: itmDesc, imgItemPrice: itmPrice, imgItemFType: imgFType, itemImgUrl: imgUrl });\r\n setTimeout(() => {\r\n this.handlePopupImage();\r\n }, Config.minMsgTimeout);\r\n\r\n }\r\n\r\n handlePopupImage() {\r\n if (imageRef.current) {\r\n imageRef.current.handlePopupImage();\r\n }\r\n };\r\n\r\n getGuestDashboardDetails() {\r\n let urlParam = '?OutletId=' + propertyId + outletCode + '&ServiceType=' + serviceType + '&TableNumber=' + tableNo + '&guestmobileNumber=' + mobileNo;\r\n //console.log(urlParam);\r\n fetch(Config.basePOSUrl + 'GetGuestAppDashBoardDetails' + urlParam, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.errorCode === 0) {\r\n if (mobileNo === mainGuestMobileNo) {\r\n this.setState({ groupPin: response.response.groupDetails.groupCode });\r\n sessionStorage.setItem('group-pin', response.response.groupDetails.groupCode);\r\n groupPin = sessionStorage.getItem('group-pin') == null ? '' : sessionStorage.getItem('group-pin');\r\n if (groupPin !== '') {\r\n grouppinstyle = {\r\n marginBottom: \"40px\",\r\n marginTop: \"256px\"\r\n }\r\n this.setState({ stylegroupPin: grouppinstyle });\r\n }\r\n }\r\n else {\r\n groupPin = '';\r\n grouppinstyle = {\r\n marginBottom: \"40px\",\r\n marginTop: \"214px\"\r\n }\r\n this.setState({ stylegroupPin: grouppinstyle });\r\n }\r\n\r\n this.setState({ groupMemberList: response.response.groupDetails.guestDetails });\r\n }\r\n else {\r\n this.showMessage(response.message, \"danger\");\r\n }\r\n })\r\n .catch(err => {\r\n ////console.log(err); \r\n this.showMessage('An error occured - ' + err, \"danger\");\r\n });\r\n };\r\n\r\n handleClassificationClick(index, clfName, clfid, Isfocus = false) {\r\n let grecList = [];\r\n\r\n if (outletDetails.showOnlySelectedMenuGroupItems) {\r\n getGlobalItems = getGlobalItems.length === 0 ? getItems : getGlobalItems;\r\n\r\n if (isCheckVeg)\r\n getGlobalItems = getGlobalItems.filter(obj => { return (obj.foodType === 1) });\r\n\r\n // console.log(val);\r\n let filterItems = getGlobalItems.filter(obj => { return (obj.classification === clfid) });\r\n // console.log(filterItems);\r\n let recList = filterItems.filter(itm => itm.isRecommended);\r\n recList.length > 0 ? this.setState({ isRecommendedItemEnabled: true, recommendedItemCount: recList.length }) : this.setState({ isRecommendedItemEnabled: false, recommendedItemCount: 0 })\r\n grecList = recList;\r\n // console.log(recList);\r\n if (recList.length > 0)\r\n this.filterMenus([], recList, filterItems);\r\n else {\r\n let mgList = this.getFilterMenGroupList(filterItems);\r\n this.handleMenugroupsClick(1, clfid, mgList[0].menuGroupId);\r\n }\r\n }\r\n else {\r\n\r\n // console.log(val);\r\n let filterItems = getItems.filter(obj => { return (obj.classification === clfid) });\r\n\r\n if (isCheckVeg)\r\n filterItems = filterItems.filter(obj => { return (obj.foodType === 1) });\r\n // console.log(filterItems);\r\n let recList = filterItems.filter(itm => itm.isRecommended);\r\n recList.length > 0 ? this.setState({ isRecommendedItemEnabled: true, recommendedItemCount: recList.length }) : this.setState({ isRecommendedItemEnabled: false, recommendedItemCount: 0 })\r\n grecList = recList;\r\n // console.log(recList);\r\n\r\n this.filterMenus(filterItems, recList, filterItems);\r\n\r\n this.setState({ searchText: \"\" });\r\n }\r\n\r\n this.setState({\r\n activeClassification: index, recommendedTxt: \"Recommended \" + clfName, loading: true,\r\n selectedClassification: clfid, activeMenuGroup: grecList.length ? -1 : 0\r\n });\r\n\r\n if (Isfocus === true) {\r\n var stickyContainer = document.getElementById(\"fist-item-row\");\r\n window.scrollTo({\r\n top: stickyContainer.offsetTop - 200,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n\r\n setTimeout(() => {\r\n this.setState({\r\n loading: false\r\n });\r\n }, Config.minMsgTimeout);\r\n }\r\n\r\n handleMenugroupsClick(index, clfid, mgid, Isfocus = false, isRecom = false) {\r\n // console.log(isRecom);\r\n let mgFilterItems = [];\r\n let clfFilterItems = [];\r\n let recList = [];\r\n // let mgList = [];\r\n this.setState({\r\n activeMenuGroup: index, loading: true,\r\n selectedMenuGroupId: mgid\r\n });\r\n\r\n // console.log(outletDetails.showOnlySelectedMenuGroupItems);\r\n\r\n if (outletDetails.showOnlySelectedMenuGroupItems) {\r\n getGlobalItems = getGlobalItems.length === 0 ? getItems : getGlobalItems;\r\n // console.log(val);\r\n // if (this.state.searchText !== \"\")\r\n // clfFilterItems = getGlobalItems.filter(obj => { return (obj.classification === clfid && obj.itemName.toLowerCase().indexOf(this.state.searchText.toLowerCase()) >= 0) });\r\n // else\r\n // clfFilterItems = getGlobalItems.filter(obj => { return (obj.classification === clfid) });\r\n\r\n\r\n // let mgFilterItems = getItems.filter(obj => { return (obj.classification === clfid && obj.menuGroupId === mgid) });\r\n // console.log(mgFilterItems);\r\n // console.log(mgid);\r\n // console.log(clfFilterItems);\r\n\r\n clfFilterItems = getGlobalItems.filter(obj => { return (obj.classification === clfid) });\r\n\r\n recList = isRecom ? clfFilterItems.filter(itm => itm.isRecommended) : [];\r\n\r\n clfFilterItems.filter(itm => itm.isRecommended).length > 0 ? this.setState({ isRecommendedItemEnabled: true, recommendedItemCount: clfFilterItems.filter(itm => itm.isRecommended).length }) : this.setState({ isRecommendedItemEnabled: false, recommendedItemCount: 0 });\r\n\r\n\r\n // mgList = this.getFilterMenGroupList(clfFilterItems);\r\n\r\n\r\n // let filterMGList = mgList.filter(mg => mg.menuGroupId === mgid);\r\n\r\n let filterMGList = getMenus.filter(mg => mg.menuGroupId === mgid);\r\n\r\n // console.log(filterMGList);\r\n\r\n mgFilterItems = this.getFilterItemList(clfFilterItems, filterMGList);\r\n\r\n this.filterMenus(mgFilterItems, recList, clfFilterItems);\r\n\r\n if (Isfocus === true) {\r\n var stickyContainer = document.getElementById(\"fist-item-row\");\r\n window.scrollTo({\r\n top: stickyContainer.offsetTop - 200,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n }\r\n else {\r\n if (Isfocus === true) {\r\n stickyContainer = document.getElementById(\"fist-item-row\");\r\n window.scrollTo({\r\n top: stickyContainer.offsetTop - 200,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n else {\r\n if (outletDetails.enableGuestAppOrders === false){\r\n stickyContainer = document.getElementById(\"focus-mnugrp-\" + mgid + \"\");\r\n window.scrollTo({\r\n top: stickyContainer.offsetTop - 165,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n else {\r\n stickyContainer = document.getElementById(\"focus-mnugrp-\" + mgid + \"\");\r\n window.scrollTo({\r\n top: stickyContainer.offsetTop - 185,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n \r\n }\r\n\r\n }\r\n\r\n setTimeout(() => {\r\n this.setState({\r\n loading: false\r\n });\r\n }, Config.minMsgTimeout);\r\n }\r\n // ScrollHide() {\r\n // const target = document.querySelector('.scroll-hide');\r\n\r\n // console.log(target);\r\n // target.addEventListener(\"scroll\", function () {\r\n // // setIsVisible(false)\r\n\r\n // }, false);\r\n\r\n // window.scroll(function () {\r\n // console.log('jk');\r\n // if (window.scrollTop() > 250) {\r\n\r\n // target.hide(1000);\r\n // }\r\n // else {\r\n // target.show(1000);\r\n // }\r\n // });\r\n\r\n // }\r\n\r\n\r\n getFilterMenGroupList(itemslist) {\r\n let filterGroups = [];\r\n\r\n //Menu Group Filter\r\n let _uniquesGroups = [];\r\n\r\n var _taxItmFound = {};\r\n for (var md = 0, lenc = itemslist.length; md <= lenc - 1; md++) {\r\n var stringified = JSON.stringify(itemslist[md].menuGroupId);\r\n if (_taxItmFound[stringified]) { continue; }\r\n _uniquesGroups.push({ groupId: itemslist[md].menuGroupId });\r\n _taxItmFound[stringified] = true;\r\n };\r\n // console.log(_uniquesGroups);\r\n\r\n Array.prototype.forEach.call(getMenus, grp => {\r\n let grplst = [];\r\n let subgrplst = []\r\n let itemCount = itemslist.filter(itm => itm.menuGroupId === grp.menuGroupId).length;\r\n if (grp.subMenuGroup.length > 0) {\r\n Array.prototype.forEach.call(grp.subMenuGroup, sgp => {\r\n grplst = _uniquesGroups.filter(x => x.groupId === sgp.menuGroupId);\r\n if (grplst.length > 0) {\r\n itemCount += itemslist.filter(itm => itm.menuGroupId === sgp.menuGroupId).length;\r\n subgrplst.push({ classification: sgp.classification, description: sgp.description, displayOrder: sgp.displayOrder, hasSubMenuGroup: sgp.hasSubMenuGroup, hsnsac: sgp.hsnsac, isActive: sgp.isActive, menuGroupId: sgp.menuGroupId, menuGroupName: sgp.menuGroupName, subMenuGroup: sgp.subMenuGroup, noOfItems: itemCount });\r\n\r\n }\r\n // third Level menus \r\n Array.prototype.forEach.call(sgp.subMenuGroup, ssgp => {\r\n grplst = _uniquesGroups.filter(x => x.groupId === ssgp.menuGroupId);\r\n if (grplst.length > 0) {\r\n itemCount += itemslist.filter(itm => itm.menuGroupId === ssgp.menuGroupId).length;\r\n subgrplst.push({ classification: ssgp.classification, description: ssgp.description, displayOrder: ssgp.displayOrder, hasSubMenuGroup: ssgp.hasSubMenuGroup, hsnsac: ssgp.hsnsac, isActive: ssgp.isActive, menuGroupId: ssgp.menuGroupId, menuGroupName: ssgp.menuGroupName, subMenuGroup: ssgp.subMenuGroup, noOfItems: itemCount });\r\n }\r\n\r\n });\r\n\r\n });\r\n // console.log(subgrplst);\r\n if (subgrplst.length > 0) {\r\n filterGroups.push({ classification: grp.classification, description: grp.description, displayOrder: grp.displayOrder, hasSubMenuGroup: grp.hasSubMenuGroup, hsnsac: grp.hsnsac, isActive: grp.isActive, menuGroupId: grp.menuGroupId, menuGroupName: grp.menuGroupName, subMenuGroup: subgrplst, noOfItems: itemCount });\r\n }\r\n }\r\n else {\r\n grplst = _uniquesGroups.filter(x => x.groupId === grp.menuGroupId);\r\n if (grplst.length > 0)\r\n filterGroups.push({ classification: grp.classification, description: grp.description, displayOrder: grp.displayOrder, hasSubMenuGroup: grp.hasSubMenuGroup, hsnsac: grp.hsnsac, isActive: grp.isActive, menuGroupId: grp.menuGroupId, menuGroupName: grp.menuGroupName, subMenuGroup: [], noOfItems: itemCount });\r\n }\r\n });\r\n //console.log(filterGroups);\r\n\r\n filterGroups = [...filterGroups].sort((a, b) => a.displayOrder - b.displayOrder);\r\n\r\n\r\n return filterGroups;\r\n\r\n }\r\n\r\n getFilterItemList(itemslist, mgList) {\r\n\r\n let filterItemList = [];\r\n let items = [];\r\n Array.prototype.forEach.call(mgList, grp => {\r\n\r\n items = itemslist.filter(itm => itm.menuGroupId === grp.menuGroupId);\r\n\r\n if (items.length > 0) filterItemList = this.getFilterItems(items, filterItemList);\r\n\r\n // 2nd lvele items\r\n if (grp.subMenuGroup.length > 0) {\r\n Array.prototype.forEach.call(grp.subMenuGroup, sgp => {\r\n items = itemslist.filter(itm => itm.menuGroupId === sgp.menuGroupId);\r\n if (items.length > 0) filterItemList = this.getFilterItems(items, filterItemList);\r\n\r\n // third Level menus \r\n Array.prototype.forEach.call(sgp.subMenuGroup, ssgp => {\r\n items = itemslist.filter(itm => itm.menuGroupId === ssgp.menuGroupId);\r\n if (items.length > 0) filterItemList = this.getFilterItems(items, filterItemList);\r\n })\r\n })\r\n }\r\n });\r\n // console.log(filterItemList);\r\n return filterItemList;\r\n\r\n }\r\n\r\n getFilterItems(aList, oList) {\r\n let itemlist = [];\r\n Array.prototype.forEach.call(aList, i => {\r\n itemlist = {\r\n itemType: i.itemType, itemId: i.itemId, itemName: i.itemName,\r\n description: i.description, rate: i.rate, mrp: i.mrp, foodType: i.foodType, spiciness: i.spiciness,\r\n menuGroupId: i.menuGroupId, classification: i.classification, taxId: i.taxId, modifierGroupIds: i.modifierGroupIds,\r\n chargeIds: i.chargeIds, imageUrl: i.imageUrl, outOfStock: i.outOfStock, bestSellerItem: i.bestSellerItem, isRecommended: i.isRecommended,\r\n displayOrder: i.displayOrder, hsnsac: i.hsnsac, subItems: i.subItems, isActive: i.isActive\r\n }\r\n oList.push(itemlist);\r\n })\r\n return oList;\r\n };\r\n\r\n showMessage(msg, type) {\r\n window.scrollTo(0, 0);\r\n this.setState({ msgShow: true });\r\n this.setState({ msgType: type });\r\n this.setState({ alertMessage: msg });\r\n this.setState({ loading: false });\r\n setTimeout(() => {\r\n // this.setState({ msgShow: false });\r\n }, Config.minMsgTimeout);\r\n };\r\n\r\n getCartDetails() {\r\n if (sessionStorage.getItem(\"cartList\") != null) {\r\n cartList = JSON.parse(sessionStorage.getItem(\"cartList\"));\r\n this.setState({ totalItems: cartList.totalItems, totalAmount: cartList.totalAmount });\r\n totalItems = cartList.totalItems;\r\n totalAmount = cartList.totalAmount;\r\n taxList = sessionStorage.getItem(\"taxCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"taxCartList\"));\r\n chargeList = sessionStorage.getItem(\"chargeCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"chargeCartList\"));\r\n // group by item \r\n Array.prototype.forEach.call(cartList.itemList, itm => {\r\n if (document.getElementById(\"\" + itm.id + \"\") != null) {\r\n let totlaQty = document.getElementById(\"\" + itm.id + \"\").innerHTML === \"\" ? 0 : JSON.parse(document.getElementById(\"\" + itm.id + \"\").innerHTML);\r\n document.getElementById(\"\" + itm.id + \"\").innerHTML = (totlaQty + itm.qty);\r\n let sout = document.getElementById(\"\" + itm.id + \"\").getAttribute('data-so');\r\n this.qtyMode('item-add-' + itm.id, 'item-entry-' + itm.id, itm.id, sout);\r\n }\r\n });\r\n\r\n }\r\n else {\r\n cartList = { mobileNo: 0, totalItems: 0, totalAmount: 0, itemList: [] };\r\n this.setState({ cartList: { mobileNo: 0, totalItems: 0, totalAmount: 0, itemList: [] } });\r\n this.setState({ totalItems: 0, totalAmount: 0 });\r\n totalAmount = 0;\r\n totalItems = 0;\r\n taxList = [];\r\n chargeList = [];\r\n }\r\n };\r\n\r\n render() {\r\n // console.log('dome update');\r\n let mnugrp = \"mnu-grp-\";\r\n //let recmnu = \"mnu-rec-\";\r\n let showCart = cartList.itemList.length > 0 ? \"block\" : \"none\";\r\n // let itmindex = -1; \r\n const { scrollPosition } = this.props;\r\n return (\r\n\r\n
\r\n {this.state.loading && }\r\n
\r\n {this.state.msgShow && }\r\n {/*
*/}\r\n
\r\n
\r\n
\r\n {\r\n sessionStorage.getItem('dashboard-hide') !== \"true\" &&\r\n
\r\n
\r\n
\r\n }\r\n {/*
*/}\r\n {/* {sessionStorage.getItem(\"user-propertyname\")} */}\r\n
{this.state.pageTitle !== '' ? this.state.pageTitle : \"Welcome to \" + sessionStorage.getItem(\"user-outletname\")}
\r\n {/* {sessionStorage.getItem(\"user-outletname\")} - {sessionStorage.getItem(\"user-servicetype\") === \"FINE-DINE\" ? 'Table Service' : sessionStorage.getItem(\"user-servicetype\")} */}\r\n {/* {guestLoggedIn === \"false\" &&
Login
} */}\r\n {(guestLoggedIn === \"true\" && outletDetails.enableHelp) &&
Help
}\r\n
\r\n {/*
\r\n \r\n \r\n
\r\n
\r\n { this.searchInp = input; }} placeholder=\"Start typing to search\" value={this.state.searchText} onChange={(e) => this.handlechange(e)} />\r\n \r\n
*/}\r\n
\r\n\r\n\r\n {/*
\r\n {guestLoggedIn === \"true\" && }\r\n\r\n {(guestLoggedIn === \"true\" && this.state.orders.length > 0 && outletDetails.enableOrderTracking) && }\r\n\r\n\r\n
*/}\r\n
\r\n\r\n\r\n
\r\n \r\n {this.state.sliderImages.map(img =>\r\n
\r\n \"lucid-slider-contact-less-order\"\r\n
\r\n )}\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n {outletDetails.enableGuestAppOrders === true &&\r\n
\r\n {sessionStorage.getItem(\"user-servicetype\") === \"FINE-DINE\" &&\r\n\r\n //
\r\n //
Table No: {sessionStorage.getItem(\"user-tableno\")}
{groupPin !== '' &&
Group Pin: {groupPin}
}\r\n //
\r\n
\r\n
Table No:{sessionStorage.getItem(\"user-tableno\")}
\r\n {/* group pin added by dasprakash on 11-10-2023 jira-1490 */}\r\n {\r\n sessionStorage.getItem(\"user-servicetype\") === \"FINE-DINE\" && tablePins !== '' &&\r\n
\r\n {/* */}\r\n Table Pin:{tablePins}\r\n
\r\n }\r\n\r\n
\r\n\r\n }\r\n\r\n\r\n\r\n {/*
\r\n {!enmConfig.checkOutTypewithPay &&\r\n \r\n }\r\n {enmConfig.checkOutTypewithPay &&\r\n \r\n }\r\n \r\n
\r\n {guestLoggedIn === \"true\" &&\r\n
\r\n {(this.state.ordertrack && outletDetails.enableOrderTracking) && }\r\n {guestLoggedIn === \"true\" && }\r\n
\r\n } */}\r\n
\r\n }\r\n {\r\n this.state.pagePreview !== \"\" &&\r\n
\r\n }\r\n
\r\n\r\n
\r\n\r\n {/* Switch wise Condition Added by vijay on 19-12-2023- JIra id -2035 */}\r\n {/* Search ,Veg, Refersh */}\r\n {outletDetails.enableVegOnly && outletDetails.enableSearch && outletDetails.enableRefresh &&\r\n
\r\n
\r\n { this.searchInp = input; }} placeholder=\"Start typing to search\" value={this.state.searchText} onChange={(e) => this.handlechange(e)} />\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n }\r\n {/*Search , Refersh */}\r\n {!outletDetails.enableVegOnly && outletDetails.enableSearch && outletDetails.enableRefresh &&\r\n
\r\n
\r\n { this.searchInp = input; }} placeholder=\"Start typing to search\" value={this.state.searchText} onChange={(e) => this.handlechange(e)} />\r\n \r\n
\r\n {/*
\r\n \r\n \r\n
*/}\r\n
\r\n
\r\n }\r\n {/*Veg, Refersh */}\r\n {outletDetails.enableVegOnly && !outletDetails.enableSearch && outletDetails.enableRefresh &&\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n }\r\n {/* Search ,Veg */}\r\n {outletDetails.enableVegOnly && outletDetails.enableSearch && !outletDetails.enableRefresh &&\r\n
\r\n
\r\n { this.searchInp = input; }} placeholder=\"Start typing to search\" value={this.state.searchText} onChange={(e) => this.handlechange(e)} />\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n {/*
*/}\r\n
\r\n }\r\n {/* Veg only */}\r\n {outletDetails.enableVegOnly && !outletDetails.enableSearch && !outletDetails.enableRefresh &&\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n }\r\n {/* Search only */}\r\n {!outletDetails.enableVegOnly && outletDetails.enableSearch && !outletDetails.enableRefresh &&\r\n
\r\n
\r\n { this.searchInp = input; }} placeholder=\"Start typing to search\" value={this.state.searchText} onChange={(e) => this.handlechange(e)} />\r\n \r\n
\r\n
\r\n }\r\n\r\n {/* Refersh only */}\r\n {!outletDetails.enableVegOnly && !outletDetails.enableSearch && outletDetails.enableRefresh &&\r\n
\r\n
\r\n {/*
Refresh
*/}\r\n
\r\n\r\n }\r\n\r\n\r\n {/* Pay bill, my orders, track orders */}\r\n\r\n {outletDetails.enableGuestAppOrders === true &&\r\n
\r\n {(!enmConfig.checkOutTypewithPay && outletDetails.enableViewBill) &&\r\n
View Bill
\r\n }\r\n {(enmConfig.checkOutTypewithPay && outletDetails.enableViewBill) &&\r\n
Pay Bill
\r\n }\r\n {outletDetails.enableMyOrder &&
My Orders
}\r\n {guestLoggedIn === \"true\" &&\r\n <>\r\n {(this.state.ordertrack && outletDetails.enableOrderTracking) &&
Order Tracking
}\r\n {/* {(serviceType === \"FINE-DINE\" && this.state.groupMemberList.length > 0) &&
Group Members
} */}\r\n\r\n \r\n }\r\n
\r\n }\r\n {/* Classification */}\r\n\r\n {this.state.getClassification.length > 1 &&\r\n\r\n //
\r\n // {\r\n // this.state.getClassification.map((clf, idx) =>\r\n\r\n //
\r\n // {clf.classificationName + ' (' + getItems.filter(obj => { return (obj.classification === clf.classification) }).length + ')'}\r\n // {/* {clf.classificationName}
{'' + getItems.filter(obj => { return (obj.classification === clf.classification) }).length + ''} */}\r\n //
\r\n\r\n // )\r\n\r\n // }\r\n //
\r\n\r\n
\r\n\r\n \r\n {\r\n this.state.getClassification.map((clf, idx) =>\r\n
\r\n
\r\n {clf.classificationName + ' (' + (outletDetails.showOnlySelectedMenuGroupItems ? getGlobalItems.filter(obj => { return (obj.classification === clf.classification) }).length : getItems.filter(obj => { return (obj.classification === clf.classification) }).length) + ')'}\r\n {/* {clf.classificationName}
{'' + getItems.filter(obj => { return (obj.classification === clf.classification) }).length + ''} */}\r\n
\r\n
\r\n )\r\n\r\n }\r\n
\r\n
\r\n\r\n\r\n }\r\n {this.state.themeId !== 2 &&\r\n
\r\n\r\n \r\n\r\n {\r\n //this.state.recommendedList.length > 0 \r\n this.state.isRecommendedItemEnabled &&\r\n //
  • \r\n // Recommended\r\n // {this.state.recommendedList.length}\r\n //
  • \r\n
    \r\n {/*
    */}\r\n
    \r\n {/* {'Recommended (' + this.state.recommendedList.length + ')'} */}\r\n {'Recommended (' + this.state.recommendedItemCount + ')'}\r\n
    \r\n
    \r\n }\r\n {\r\n\r\n this.state.getMenus.map((mng, idx) =>\r\n
    \r\n {/*
    */}\r\n {/*
    */}\r\n
    \r\n\r\n {mng.menuGroupName + ' (' + mng.noOfItems + ')'}\r\n
    \r\n
    \r\n )\r\n\r\n\r\n }\r\n\r\n \r\n
    \r\n }\r\n
    \r\n\r\n
    \r\n {this.state.recommendedList.length > 0 &&\r\n <>\r\n {/* {this.state.themeId === 1 && // Vertical / double item Mode\r\n\r\n // this.handleGenerateRecommendedListDom()\r\n this.handleGenerateRowRecommendedListDom()\r\n }\r\n {this.state.themeId === 2 && // horizantal / Multi Item Mode\r\n this.handleVerticalGenerateRecommendedListDom()\r\n }\r\n {this.state.themeId === 3 && // horizantal / Row mode single mode\r\n this.handleGenerateRowRecommendedListDom()\r\n } */}\r\n\r\n\r\n {this.handleGenerateRowRecommendedListDom()}\r\n \r\n\r\n //this.handleGenerateRecommendedListDom()\r\n //
    \r\n //
    Recommended
    \r\n //
    \r\n // {\r\n // this.state.recommendedList.map(itm =>\r\n //
    \r\n //
    \r\n // {itm.bestSellerItem === true && BEST SELLER}\r\n //
    \r\n // \"item\"\r\n //
    \r\n //
    \r\n //
    \r\n // {itm.foodType === 1 && \"item\"}\r\n // {itm.foodType === 2 && \"item\"}\r\n // {itm.itemName.toLowerCase()}\r\n //
    \r\n // {/*
    \r\n // {itm.description.toLowerCase()}\r\n //
    */}\r\n //
    \r\n //
    \r\n //
    \r\n // \r\n // 0\r\n // \r\n\r\n //
    \r\n\r\n // {!itm.outOfStock &&
    \r\n // ADD\r\n //
    \r\n // }\r\n // {itm.outOfStock &&
    \r\n // SOLD OUT\r\n //
    }\r\n\r\n //
    \r\n // {itm.modifierGroupIds !== null && itm.modifierGroupIds.length > 0 &&
    customizable
    }\r\n //
    \r\n // ₹{itm.mrp}\r\n //
    \r\n //
    \r\n\r\n\r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n // )\r\n // }\r\n //
    \r\n //
    \r\n //
    \r\n }\r\n {\r\n this.state.getMenus.map(itmgrp =>\r\n
    \r\n {(itmgrp.subMenuGroup.length > 0) &&\r\n (this.state.getItems.filter(i => i.menuGroupId === itmgrp.subMenuGroup[0].menuGroupId).length > 0) &&\r\n
    {itmgrp.menuGroupName.toLowerCase()}
    \r\n }\r\n {(this.state.getItems.filter(i => i.menuGroupId === itmgrp.menuGroupId).length > 0 && itmgrp.subMenuGroup.length === 0) &&\r\n
    {itmgrp.menuGroupName.toLowerCase()}
    \r\n }\r\n {itmgrp.subMenuGroup.length > 0 &&\r\n\r\n
    \r\n {\r\n itmgrp.subMenuGroup.map(sgrp =>\r\n <>\r\n {this.state.getItems.filter(i => i.menuGroupId === sgrp.menuGroupId).length > 0 &&\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {/* {itemList = getItems.filter(fitm => { return(fitm.menuGroupId === itmgrp.menuGroupId);})} */}\r\n {\r\n this.state.getItems.filter(i => i.menuGroupId === sgrp.menuGroupId).map(itm =>\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n 0\r\n \r\n
    \r\n\r\n {(!itm.outOfStock && outletDetails.enableGuestAppOrders === true) && \r\n
    \r\n ADD\r\n
    }\r\n\r\n {/* Modifier Added by vijay on 11-05-2024 - Digital Menu Mode */}\r\n {!outletDetails.enableGuestAppOrders && itm.modifierGroupIds !== null && itm.modifierGroupIds.length > 0 && !(itm.outOfStock && !outletDetails.enableGuestAppOrders) ? (\r\n
    \r\n \r\n customisable\r\n \r\n
    \r\n ) :
    \r\n
    }\r\n\r\n {(itm.outOfStock && outletDetails.enableGuestAppOrders === true) &&
    \r\n SOLD OUT\r\n
    }\r\n {\r\n (itm.modifierGroupIds !== null &&\r\n itm.modifierGroupIds.length > 0 && outletDetails.enableGuestAppOrders === true) &&
    customizable
    \r\n }\r\n {(itm.imageUrl !== null && itm.imageUrl !== \"\") &&
    \r\n {/* */}\r\n \r\n
    }\r\n {(itm.outOfStock && outletDetails.enableGuestAppOrders === false) &&
    SOLD OUT
    }\r\n
    \r\n {/* {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n {itm.itemName} */}\r\n \r\n
    \r\n {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n
    \r\n
    \r\n {itm.itemName}\r\n\r\n\r\n {/*
    \r\n \r\n
    \r\n {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n
    \r\n
    \r\n
    \r\n
    {itm.itemName}
    \r\n
    \r\n
    */}\r\n {/* {(itm.outOfStock && outletDetails.enableGuestAppOrders === false) && SOLD OUT} */}\r\n
    \r\n
    \r\n {/* {itm.description.toLowerCase()} */}\r\n this.handleSetPopupImage(itm.itemName, itm.description, itm.mrp, itm.foodType, itm.imageUrl)}\r\n />\r\n {/* */}\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n ₹{itm.mrp}\r\n
    \r\n {/*
    \r\n \r\n
    */}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n ) // End Item\r\n\r\n }\r\n
    \r\n {/* Third Level Menugroup - Start */}\r\n {sgrp.subMenuGroup.length > 0 &&\r\n <>\r\n {sgrp.subMenuGroup.map(ssgrp =>\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {/* {itemList = getItems.filter(fitm => { return(fitm.menuGroupId === itmgrp.menuGroupId);})} */}\r\n {\r\n this.state.getItems.filter(i => i.menuGroupId === ssgrp.menuGroupId).map(itm =>\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n 0\r\n \r\n
    \r\n\r\n {(!itm.outOfStock && outletDetails.enableGuestAppOrders === true) && \r\n
    \r\n ADD\r\n
    }\r\n\r\n {/* Modifier Added by vijay on 11-05-2024 - Digital Menu Mode */}\r\n {!outletDetails.enableGuestAppOrders && itm.modifierGroupIds !== null && itm.modifierGroupIds.length > 0 && !(itm.outOfStock && !outletDetails.enableGuestAppOrders) ? (\r\n
    \r\n \r\n customisable\r\n \r\n
    \r\n ) :
    \r\n
    }\r\n\r\n\r\n {(itm.outOfStock && outletDetails.enableGuestAppOrders === true) &&
    \r\n SOLD OUT\r\n
    }\r\n {\r\n\r\n (itm.modifierGroupIds !== null &&\r\n itm.modifierGroupIds.length > 0 && outletDetails.enableGuestAppOrders === true) &&
    customizable
    \r\n }\r\n {(itm.imageUrl !== null && itm.imageUrl !== \"\") &&
    \r\n {/* \"item\" */}\r\n \r\n
    }\r\n {(itm.outOfStock && outletDetails.enableGuestAppOrders === false) &&
    SOLD OUT
    }\r\n
    \r\n {/* {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n {itm.itemName} */}\r\n \r\n
    \r\n {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n
    \r\n
    \r\n {itm.itemName}\r\n\r\n {/*
    \r\n \r\n
    \r\n {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n
    \r\n
    \r\n
    \r\n
    {itm.itemName}
    \r\n
    \r\n
    */}\r\n {/* {(itm.outOfStock && outletDetails.enableGuestAppOrders === false) && SOLD OUT} */}\r\n
    \r\n
    \r\n {/* {itm.description.toLowerCase()} */}\r\n this.handleSetPopupImage(itm.itemName, itm.description, itm.mrp, itm.foodType, itm.imageUrl)}\r\n />\r\n {/* */}\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n ₹{itm.mrp}\r\n
    \r\n {/*
    \r\n \r\n
    */}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n ) // End Item\r\n\r\n }\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n \r\n }\r\n {/* Third Level Menugroup - End */}\r\n
    \r\n
    \r\n\r\n
    \r\n }\r\n \r\n\r\n )\r\n }\r\n
    \r\n\r\n\r\n }\r\n {(itmgrp.subMenuGroup.length === 0 && this.state.getItems.filter(i => i.menuGroupId === itmgrp.menuGroupId).length > 0) &&\r\n\r\n
    \r\n {/* {itemList = getItems.filter(fitm => { return(fitm.menuGroupId === itmgrp.menuGroupId);})} */}\r\n {\r\n this.state.getItems.filter(i => i.menuGroupId === itmgrp.menuGroupId).map(itm =>\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n 0\r\n \r\n
    \r\n\r\n {(!itm.outOfStock && outletDetails.enableGuestAppOrders === true) && \r\n
    \r\n ADD\r\n
    }\r\n\r\n {/* Modifier Added by vijay on 11-05-2024 - Digital Menu Mode */}\r\n {!outletDetails.enableGuestAppOrders && itm.modifierGroupIds !== null && itm.modifierGroupIds.length > 0 && !(itm.outOfStock && !outletDetails.enableGuestAppOrders) ? (\r\n
    \r\n \r\n customisable\r\n \r\n
    \r\n ) :
    \r\n }\r\n\r\n {(itm.outOfStock && outletDetails.enableGuestAppOrders === true) &&
    \r\n SOLD OUT\r\n
    }\r\n\r\n {(itm.modifierGroupIds !== null &&\r\n itm.modifierGroupIds.length > 0 && outletDetails.enableGuestAppOrders === true) &&
    customizable
    }\r\n {(itm.imageUrl !== null && itm.imageUrl !== \"\") &&
    \r\n\r\n {/* \"item\" */}\r\n \r\n\r\n
    }\r\n {(itm.outOfStock && outletDetails.enableGuestAppOrders === false) &&
    SOLD OUT
    }\r\n
    \r\n {/* {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n {itm.itemName} */}\r\n \r\n
    \r\n {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n
    \r\n
    \r\n {itm.itemName}\r\n\r\n {/*
    \r\n \r\n
    \r\n {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n
    \r\n
    \r\n
    \r\n
    {itm.itemName}
    \r\n
    \r\n
    */}\r\n {/* {(itm.outOfStock && outletDetails.enableGuestAppOrders === false) && SOLD OUT} */}\r\n
    \r\n
    \r\n {/* {itm.description.toLowerCase()} */}\r\n this.handleSetPopupImage(itm.itemName, itm.description, itm.mrp, itm.foodType, itm.imageUrl)}\r\n />\r\n {/* */}\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n ₹{itm.mrp}\r\n
    \r\n {/*
    \r\n \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) // End Item\r\n\r\n }\r\n
    \r\n\r\n\r\n }\r\n {/* Menu Item with submeu group */}\r\n {(itmgrp.subMenuGroup.length > 0 && this.state.getItems.filter(i => i.menuGroupId === itmgrp.menuGroupId).length > 0) &&\r\n\r\n
    \r\n {/* {itemList = getItems.filter(fitm => { return(fitm.menuGroupId === itmgrp.menuGroupId);})} */}\r\n {\r\n this.state.getItems.filter(i => i.menuGroupId === itmgrp.menuGroupId).map(itm =>\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n 0\r\n \r\n
    \r\n\r\n {(!itm.outOfStock && outletDetails.enableGuestAppOrders === true) && \r\n
    \r\n ADD\r\n
    }\r\n {/* Modifier Added by vijay on 11-05-2024 - Digital Menu Mode */}\r\n {!outletDetails.enableGuestAppOrders && itm.modifierGroupIds !== null && itm.modifierGroupIds.length > 0 && !(itm.outOfStock && !outletDetails.enableGuestAppOrders) ? (\r\n
    \r\n \r\n customisable\r\n \r\n
    \r\n ) :
    \r\n
    }\r\n\r\n {(itm.outOfStock && outletDetails.enableGuestAppOrders === true) &&
    \r\n SOLD OUT\r\n
    }\r\n {(itm.modifierGroupIds !== null &&\r\n itm.modifierGroupIds.length > 0 && outletDetails.enableGuestAppOrders === true) &&
    customizable
    }\r\n {(itm.imageUrl !== null && itm.imageUrl !== \"\") &&
    \r\n {/* \"item\" */}\r\n \r\n
    }\r\n {(itm.outOfStock && outletDetails.enableGuestAppOrders === false) &&
    SOLD OUT
    }\r\n
    \r\n {/* {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n {itm.itemName} */}\r\n \r\n
    \r\n {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n
    \r\n
    \r\n {itm.itemName}\r\n\r\n {/*
    \r\n \r\n
    \r\n {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n
    \r\n
    \r\n
    \r\n
    {itm.itemName}
    \r\n
    \r\n
    */}\r\n {/* {(itm.outOfStock && outletDetails.enableGuestAppOrders === false) && SOLD OUT} */}\r\n\r\n
    \r\n
    \r\n {/* {itm.description.toLowerCase()} */}\r\n this.handleSetPopupImage(itm.itemName, itm.description, itm.mrp, itm.foodType, itm.imageUrl)}\r\n />\r\n {/* */}\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n ₹{itm.mrp}\r\n
    \r\n {/*
    \r\n \r\n
    */}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n ) // End Item\r\n\r\n }\r\n
    \r\n\r\n\r\n }\r\n {/* Menu Item with submeu group - end */}\r\n {!this.state.showOnlySelectedMenuGroupItems &&\r\n
    \r\n }\r\n
    \r\n ) // End Group\r\n }\r\n {this.state.getMenus.length > 0 &&
    \r\n}\r\n {this.state.getMenus.length === 0 &&\r\n < div className=\"no-menu-img\">\"lucid-no-menus\"
    \r\n }\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/*
    */}\r\n {(this.state.themeId === 2 && this.state.searchText.trim() === '') && }\r\n\r\n {/*
    \r\n \r\n
    */}\r\n {this.state.totalItems > 0 &&\r\n \r\n }\r\n {/*
    \r\n
    3 Items | ₹ 525
    \r\n
    View Cart
    \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n","\r\nimport { Component } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\n\r\n//let cartList = {};\r\n//let modifierCartList = [];\r\nlet taxList = [];\r\nlet chargeList = [];\r\n//let getMenus = [];\r\n//let getItems = [];\r\nlet getTaxes = [];\r\n//let getModifiers = [];\r\nlet getCharges = [];\r\nclass CartCalculation extends Component {\r\n\r\n static initiate() {\r\n // getMenus = sessionStorage.getItem(\"getMenuGroups\") === null ? [] : JSON.parse(sessionStorage.getItem(\"getMenuGroups\"));\r\n // getItems = sessionStorage.getItem(\"getmenuItems\") === null ? [] : JSON.parse(sessionStorage.getItem(\"getmenuItems\"));\r\n // getModifiers = sessionStorage.getItem(\"getModifierGroups\") === null ? [] : JSON.parse(sessionStorage.getItem(\"getModifierGroups\"));\r\n getTaxes = sessionStorage.getItem(\"getTaxes\") === null ? [] : JSON.parse(sessionStorage.getItem(\"getTaxes\"));\r\n getCharges = sessionStorage.getItem(\"getCharges\") === null ? [] : JSON.parse(sessionStorage.getItem(\"getCharges\"));\r\n\r\n taxList = sessionStorage.getItem(\"taxCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"taxCartList\"));\r\n chargeList = sessionStorage.getItem(\"chargeCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"chargeCartList\"));\r\n }\r\n\r\n static itemTaxCartCalculation(taxId, rate, qty, itemId, uid) {\r\n this.initiate();\r\n let cList = getTaxes.filter(x => x.taxId === taxId);\r\n let taxObj = [];\r\n let taxAmt = 0;\r\n let itemValue = rate * qty;\r\n let bInsertTax = false;\r\n if (cList.length > 0) {\r\n Array.prototype.forEach.call(cList[0].structure, tx => {\r\n bInsertTax = false;\r\n taxAmt = 0;\r\n //Applicable on = 2 Discount Value && applicableon = 1 direct value\r\n if (tx.applicableOn === 3) { // Tax on Tax \r\n let serialTax = taxObj.filter(x => x.serialNo === tx.taxOnSerialNo);\r\n if (serialTax.length > 0) {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = serialTax[0].taxAmount * tx.taxValue * 0.01;\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue * qty;\r\n\r\n bInsertTax = true;\r\n }\r\n }\r\n else {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = itemValue * tx.taxValue * 0.01;\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue * qty; // \r\n\r\n bInsertTax = true;\r\n }\r\n\r\n if (bInsertTax === true) {\r\n taxObj.push({ itemId: itemId, uid: uid, taxId: taxId, taxGroupName: cList[0].taxName, serialNo: tx.serialNo, taxCode: tx.taxCode, taxName: tx.taxName, applicableOn: tx.applicableOn, taxType: tx.taxType, taxValue: tx.taxValue, taxAmount: Number((taxAmt).toFixed(2)) });\r\n taxList.push({ itemId: itemId, uid: uid, taxId: taxId, taxGroupName: cList[0].taxName, serialNo: tx.serialNo, taxCode: tx.taxCode, taxName: tx.taxName, applicableOn: tx.applicableOn, taxType: tx.taxType, taxValue: tx.taxValue, taxAmount: Number((taxAmt).toFixed(2)) });\r\n }\r\n });\r\n }\r\n sessionStorage.setItem(\"taxCartList\", JSON.stringify(taxList));\r\n\r\n }\r\n\r\n static itemChargeCartCalculation(chargeId, rate, qty, itemId, uid) {\r\n this.initiate();\r\n chargeId = chargeId === null ? [] : chargeId;\r\n if (chargeId.length > 0) {\r\n Array.prototype.forEach.call(chargeId, cId => {\r\n // filter based on Item wise & Item Qty wise => apply category\r\n let chargelist = getCharges.filter(x => x.chargeId === cId && x.applyTo === 1);\r\n let taxlist = [];\r\n let taxObj = [];\r\n let taxAmt = 0;\r\n\r\n let itemValue = rate * qty;\r\n let chargeAmt = 0;\r\n if (chargelist.length > 0) {\r\n Array.prototype.forEach.call(chargelist, chg => {\r\n let rnTaxAmt = 0;\r\n if (chg.applyType === 2) { // slabe wise (%) - only for slab base value from and value to (percentage =>itmvalue * per * 0.01) or amount=> direct slab amount) \r\n chg.chargeSlab = chg.chargeSlab === null ? [] : chg.chargeSlab;\r\n let cslab = chg.chargeSlab.filter(x => x.ValueFrom > itemValue && x.ValueTo < itemValue)\r\n if (cslab.length > 0) {\r\n if (cslab.chargeValueType === 1)\r\n chargeAmt = itemValue * chg.chargeValue * 0.01;\r\n else if (cslab.chargeValueType === 2)\r\n chargeAmt = cslab.ChargeValue;\r\n }\r\n }\r\n else if (chg.chargeValueType === 2) // Amount only qty based \r\n chargeAmt = chg.chargeValue * qty; // \r\n // Tax \r\n taxlist = getTaxes.filter(x => x.taxId === chg.taxId);\r\n if (taxlist.length > 0) {\r\n Array.prototype.forEach.call(taxlist[0].structure, tx => {\r\n taxAmt = 0;\r\n if (tx.applicableOn === 3) {\r\n let serialTax = taxObj.filter(x => x.serialNo === tx.taxOnSerialNo);\r\n if (serialTax.length > 0) {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = serialTax[0].taxAmount * tx.taxValue * 0.01;\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue;\r\n }\r\n }\r\n else {\r\n\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = (chargeAmt * tx.taxValue * 0.01);\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue; // \r\n }\r\n rnTaxAmt += taxAmt;\r\n taxObj.push({ itemId: itemId, uid: uid, chargeId: chg.chargeId, taxId: chg.taxId, taxGroupName: taxlist[0].taxName, serialNo: tx.serialNo, taxCode: tx.taxCode, taxName: tx.taxName, applicableOn: tx.applicableOn, taxType: tx.taxType, taxValue: tx.taxValue, taxAmount: Number((taxAmt).toFixed(2)) });\r\n });\r\n }\r\n chargeList.push({ itemId: itemId, uid: uid, chargeId: chg.chargeId, chargeName: chg.chargeName, chargeType: chg.chargeType, isMerchantCharge: false, chargeValueType: chg.chargeValueType, chargeValue: chg.chargeValue, chargeAmount: Number((chargeAmt).toFixed(2)), taxes: taxObj, totalTaxAmount: Number((rnTaxAmt).toFixed(2)) });\r\n });\r\n }\r\n });\r\n }\r\n sessionStorage.setItem(\"chargeCartList\", JSON.stringify(chargeList));\r\n }\r\n\r\n /// Modifier\r\n static modifierItemTaxCartCalculation(taxId, rate, qty, itemId, uid) {\r\n\r\n this.initiate();\r\n let cList = getTaxes.filter(x => x.taxId === taxId);\r\n let taxObj = [];\r\n let taxAmt = 0;\r\n let itemValue = rate * qty;\r\n\r\n\r\n let bInsertTax = false;\r\n if (cList.length > 0) {\r\n Array.prototype.forEach.call(cList[0].structure, tx => {\r\n bInsertTax = false;\r\n taxAmt = 0;\r\n //Applicable on = 2 Discount Value && applicableon = 1 direct value\r\n if (tx.applicableOn === 3) { // Tax on Tax \r\n let serialTax = taxObj.filter(x => x.serialNo === tx.taxOnSerialNo);\r\n if (serialTax.length > 0) {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = serialTax[0].taxAmount * tx.taxValue * 0.01;\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue * qty;\r\n\r\n bInsertTax = true;\r\n }\r\n }\r\n else {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = itemValue * tx.taxValue * 0.01;\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue * qty; // \r\n\r\n bInsertTax = true;\r\n }\r\n\r\n if (bInsertTax === true) {\r\n taxObj.push({ itemId: itemId, uid: uid, taxId: taxId, taxGroupName: cList[0].taxName, serialNo: tx.serialNo, taxCode: tx.taxCode, taxName: tx.taxName, applicableOn: tx.applicableOn, taxType: tx.taxType, taxValue: tx.taxValue, taxAmount: Number((taxAmt).toFixed(2)) });\r\n }\r\n });\r\n }\r\n return taxObj;\r\n }\r\n\r\n static modifierItemChargeCartCalculation(chargeId, rate, qty, itemId, uid) {\r\n this.initiate();\r\n chargeId = chargeId === null ? [] : chargeId;\r\n let modifierChargeList = [];\r\n if (chargeId.length > 0) {\r\n Array.prototype.forEach.call(chargeId, cId => {\r\n // filter based on Item wise & Item Qty wise => apply category\r\n let chargelist = getCharges.filter(x => x.chargeId === cId && x.applyTo === 1 && x.applyType === 1);\r\n let taxlist = [];\r\n let taxObj = [];\r\n let taxAmt = 0;\r\n let itemValue = rate * qty;\r\n let chargeAmt = 0;\r\n if (chargelist.length > 0) {\r\n Array.prototype.forEach.call(chargelist, chg => {\r\n let rnTaxAmt = 0;\r\n if (chg.applyType === 2) { // slabe wise (%) - only for slab base value from and value to (percentage =>itmvalue * per * 0.01) or amount=> direct slab amount) \r\n chg.chargeSlab = chg.chargeSlab === null ? [] : chg.chargeSlab;\r\n let cslab = chg.chargeSlab.filter(x => x.ValueFrom > itemValue && x.ValueTo < itemValue)\r\n if (cslab.length > 0) {\r\n if (cslab.chargeValueType === 1)\r\n chargeAmt = itemValue * chg.chargeValue * 0.01;\r\n else if (cslab.chargeValueType === 2)\r\n chargeAmt = cslab.ChargeValue;\r\n }\r\n }\r\n else if (chg.chargeValueType === 2) // Amount only qty based \r\n chargeAmt = chg.chargeValue * qty; // \r\n // Tax \r\n taxlist = getTaxes.filter(x => x.taxId === chg.taxId);\r\n if (taxlist.length > 0) {\r\n Array.prototype.forEach.call(taxlist[0].structure, tx => {\r\n taxAmt = 0;\r\n if (tx.applicableOn === 3) { //tax on tax\r\n let serialTax = taxObj.filter(x => x.serialNo === tx.taxOnSerialNo);\r\n if (serialTax.length > 0) {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = serialTax[0].taxAmount * tx.taxValue * 0.01;\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue;\r\n }\r\n }\r\n else {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = (chargeAmt * tx.taxValue * 0.01);\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue; // \r\n }\r\n rnTaxAmt += taxAmt;\r\n taxObj.push({ itemId: itemId, uid: uid, chargeId: chg.chargeId, taxId: chg.taxId, taxGroupName: taxlist[0].taxName, serialNo: tx.serialNo, taxCode: tx.taxCode, taxName: tx.taxName, applicableOn: tx.applicableOn, taxType: tx.taxType, taxValue: tx.taxValue, taxAmount: Number((taxAmt).toFixed(2)) });\r\n })\r\n }\r\n modifierChargeList.push({ itemId: itemId, uid: uid, chargeId: chg.chargeId, chargeName: chg.chargeName, chargeType: chg.chargeType, isMerchantCharge: false, chargeValueType: chg.chargeValueType, chargeValue: chg.chargeValue, chargeAmount: Number((chargeAmt).toFixed(2)), taxes: taxObj, totalTaxAmount: rnTaxAmt });\r\n\r\n });\r\n }\r\n });\r\n }\r\n return modifierChargeList;\r\n }\r\n\r\n // On Bill Tax(Item total + ItemTaxTotal(with modifier) - Discount = Bill Value on Tax )\r\n static OnBillTaxCalculation(billValue) {\r\n this.initiate();\r\n let cList = getTaxes.filter(x => x.applyTo === 2); // on Bill Type\r\n let taxObj = [];\r\n let taxAmt = 0;\r\n let bInsertTax = false;\r\n let onBillTaxValue = 0;\r\n if (cList.length > 0) {\r\n Array.prototype.forEach.call(cList[0].structure, tx => {\r\n bInsertTax = false;\r\n taxAmt = 0;\r\n //Applicable on = 2 Discount Value && applicableon = 1 direct value\r\n if (tx.applicableOn === 3) { // Tax on Tax \r\n let serialTax = taxObj.filter(x => x.serialNo === tx.taxOnSerialNo);\r\n if (serialTax.length > 0) {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = serialTax[0].taxAmount * tx.taxValue * 0.01;\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue;\r\n\r\n bInsertTax = true;\r\n }\r\n }\r\n else {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = billValue * tx.taxValue * 0.01;\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue; // \r\n\r\n bInsertTax = true;\r\n }\r\n\r\n if (bInsertTax === true) {\r\n onBillTaxValue += taxAmt;\r\n // taxObj.push({ itemId: itemId, uid: uid, taxId: taxId, taxGroupName: cList[0].taxName, serialNo: tx.serialNo, taxCode: tx.taxCode, taxName: tx.taxName, applicableOn: tx.applicableOn, taxType: tx.taxType, taxValue: tx.taxValue, taxAmount: Number((taxAmt).toFixed(2)) });\r\n // taxList.push({ itemId: itemId, uid: uid, taxId: taxId, taxGroupName: cList[0].taxName, serialNo: tx.serialNo, taxCode: tx.taxCode, taxName: tx.taxName, applicableOn: tx.applicableOn, taxType: tx.taxType, taxValue: tx.taxValue, taxAmount: Number((taxAmt).toFixed(2)) });\r\n }\r\n });\r\n }\r\n return onBillTaxValue;\r\n }\r\n\r\n // Order Level Charges ( Apply To = 1:- Item wise and *ApplyTo=2 :- Order Level)\r\n static OrderLevelCharge(itemTotal) {\r\n this.initiate();\r\n let totalChargeAmount = 0;\r\n let totalChargeTaxAmount = 0;\r\n // filter based on Item wise & Item Qty wise => apply category\r\n let chargelist = getCharges.filter(x => x.applyTo === 2);\r\n let taxlist = [];\r\n let taxObj = [];\r\n let taxAmt = 0;\r\n let orderLeveChargeList = [];\r\n let itemValue = itemTotal;\r\n let chargeAmt = 0;\r\n if (chargelist.length > 0) {\r\n Array.prototype.forEach.call(chargelist, chg => {\r\n let rnTaxAmt = 0;\r\n chargeAmt = 0;\r\n if (chg.applyType === 2) { // slabe wise (%) - only for slab base value from and value to (percentage =>itmvalue * per * 0.01) or amount=> direct slab amount) \r\n chg.chargeSlab = chg.chargeSlab === null ? [] : chg.chargeSlab;\r\n let cslab = chg.chargeSlab.filter(x => x.ValueFrom > itemValue && x.ValueTo < itemValue)\r\n if (cslab.length > 0) {\r\n if (cslab.chargeValueType === 1)\r\n chargeAmt = itemValue * chg.chargeValue * 0.01;\r\n else if (cslab.chargeValueType === 2)\r\n chargeAmt = cslab.ChargeValue;\r\n }\r\n }\r\n else if (chg.chargeValueType === 2) // Amount only qty based \r\n chargeAmt = chg.chargeValue; // \r\n // Tax \r\n taxlist = getTaxes.filter(x => x.taxId === chg.taxId);\r\n if (taxlist.length > 0) {\r\n Array.prototype.forEach.call(taxlist[0].structure, tx => {\r\n taxAmt = 0;\r\n if (tx.applicableOn === 3) {\r\n let serialTax = taxObj.filter(x => x.serialNo === tx.taxOnSerialNo);\r\n if (serialTax.length > 0) {\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = serialTax[0].taxAmount * tx.taxValue * 0.01;\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue;\r\n }\r\n }\r\n else {\r\n\r\n if (tx.taxType === 1) // (%) \r\n taxAmt = (chargeAmt * tx.taxValue * 0.01);\r\n else if (tx.taxType === 2) // Amount\r\n taxAmt = tx.taxValue; // \r\n }\r\n rnTaxAmt += taxAmt;\r\n taxObj.push({ chargeId: chg.chargeId, taxId: chg.taxId, taxGroupName: taxlist[0].taxName, serialNo: tx.serialNo, taxCode: tx.taxCode, taxName: tx.taxName, applicableOn: tx.applicableOn, taxType: tx.taxType, taxValue: tx.taxValue, taxAmount: Number((taxAmt).toFixed(2)) });\r\n });\r\n }\r\n orderLeveChargeList.push({ chargeId: chg.chargeId, chargeName: chg.chargeName, chargeType: chg.chargeType, isMerchantCharge: false, chargeValueType: chg.chargeValueType, chargeValue: chg.chargeValue, chargeAmount: Number((chargeAmt).toFixed(2)), taxes: taxObj, totalTaxAmount: Number((rnTaxAmt).toFixed(2)) });\r\n totalChargeTaxAmount += rnTaxAmt;\r\n totalChargeAmount += chargeAmt;\r\n });\r\n }\r\n sessionStorage.setItem('order-charge-Amount', totalChargeAmount);\r\n sessionStorage.setItem('order-charge-Tax-Amount', totalChargeTaxAmount);\r\n sessionStorage.setItem('order-charge-List', JSON.stringify(orderLeveChargeList));\r\n }\r\n}\r\n\r\nexport default withRouter(CartCalculation)","import React, { Component } from 'react';\r\nimport './cart.scss';\r\nimport Config from '../../data/SiteConfig';\r\nimport enmConfig from '../../data/enumConfig';\r\n//import uuid from 'react-uuid';\r\n//import Cookies from 'universal-cookie';\r\nimport LoadingAnimation from '../../components/loadinganimation';\r\nimport ErrorAlert from '../../components/alertmessages';\r\nimport CartCalCulation from '../../modules/cart/cartcalculation';\r\nimport { isMobile } from 'react-device-detect';\r\n//import sHelpers from '../../modules/helpers/statichelpers';\r\n\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport 'react-confirm-alert/src/react-confirm-alert.css'; // Import css\r\nimport sHelpers from '../../modules/helpers/statichelpers';\r\n\r\nlet totalItems = 0;\r\nlet totalItemAmount = 0;\r\nlet totalNetAmount = 0;\r\nlet cartList = {};\r\nlet modifierCartList = [];\r\nlet taxList = [];\r\nlet chargeList = [];\r\nlet orderChargeList = [];\r\nlet mobileNo = '';\r\nlet token = '';\r\nlet tableNo = '';\r\nlet serviceType = '';\r\nlet orgnationTd = '';\r\nlet propertyId = '';\r\nlet outletCode = '';\r\nlet totalChargesAmount = 0;\r\nlet totaltaxAmount = 0;\r\nlet outletDetails = null;\r\nlet olDetail = {};\r\nlet orderCheckoutType = 0;\r\nlet mainGuestMobileNo = '';\r\nlet groupPin = '';\r\nlet guestLoggedIn = \"false\";\r\nlet guestDetailsStr = null;\r\nlet guestDetails = {};\r\nlet guestCurrentAddress = null;\r\nlet guestName = '';\r\n// Validate Order\r\n\r\n// let vaildCartList = {};\r\n// let vaildModifierCartList = [];\r\n// let vaildTaxList = [];\r\n// let vaildChargeList = [];\r\nlet vailduniquesGroups = [];\r\n// let vaildtotalItemAmount = 0;\r\n// let vaildtotalItemTaxAmount = 0; \r\n// let vaildtotalItemChargesAmount = 0;\r\n\r\n\r\n// let vaildtotalChargesAmount = 0;\r\n// let vaildtotalTaxAmount = 0;\r\n// let vaildtotalAmount = 0;\r\n// let vaildVendorOrderId = '';\r\nlet userSessionId = '';\r\nlet urlPattern = '';\r\nexport default class Cart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.goBack = this.goBack.bind(this);\r\n this.goPayments = this.goPayments.bind(this);\r\n this.handleValidateOrder = this.handleValidateOrder.bind(this);\r\n //this.handlePlaceOrder = this.handlePlaceOrder.bind(this);\r\n this.state = {\r\n loading: false,\r\n // cartItemList: [\r\n // { mnuId: 1, mnuName: \"Chilli Chicken\", price: \"166\", qty: 2, foodType: 2, modifier: [] },\r\n // { mnuId: 2, mnuName: \"Chilli Paneer\", price: \"178\", qty: 1, foodType: 1, modifier: [{ modifierId: 1, modifierName: \"spicy\", price: 10 }, { modifierId: 2, modifierName: \"spicy\", price: 10 }] },\r\n // { mnuId: 3, mnuName: \"Veg Manchurian\", price: \"127\", qty: 1, foodType: 2, modifier: [{ modifierId: 3, modifierName: \"jam\", price: 22 }] }\r\n // ],\r\n cartItemList: [\r\n // { mnuId: 1, mnuName: \"Chilli Chicken\", price: \"166\", qty: 2, foodType: 2, modifier: [] },\r\n // { mnuId: 2, mnuName: \"Chilli Paneer\", price: \"178\", qty: 1, foodType: 1, modifier: [{ modifierId: 1, modifierName: \"spicy\", price: 10 }, { modifierId: 2, modifierName: \"spicy\", price: 10 }] },\r\n // { mnuId: 3, mnuName: \"Veg Manchurian\", price: \"127\", qty: 1, foodType: 2, modifier: [{ modifierId: 3, modifierName: \"jam\", price: 22 }] }\r\n ],\r\n getMenus: [],\r\n getItems: [],\r\n getModifiers: [],\r\n getTaxes: [],\r\n getCharges: [],\r\n orderId: 0,\r\n orderInstruction: \"\",\r\n alertMessage: '',\r\n msgType: '',\r\n msgShow: false,\r\n totalItems: 0,\r\n totalItemAmount: 0,\r\n totalAmount: 0,\r\n totalNetAmount: 0,\r\n totalChargesAmount: 0,\r\n totaltaxAmount: 0,\r\n modifierItemList: [],\r\n roundOff: 0\r\n }\r\n\r\n };\r\n componentWillMount() {\r\n\r\n if (Config.IsMobileAccess) {\r\n if (!isMobile) {\r\n this.props.history.push('/deviceerror' + urlPattern);\r\n return false;\r\n }\r\n }\r\n mobileNo = sessionStorage.getItem('user-mobileno');\r\n token = sessionStorage.getItem('user-token');\r\n tableNo = sessionStorage.getItem('user-tableno');\r\n serviceType = sessionStorage.getItem('user-servicetype');\r\n orgnationTd = sessionStorage.getItem('user-orgnationid');\r\n propertyId = sessionStorage.getItem('user-propertyid');\r\n outletCode = sessionStorage.getItem('user-outletcode');\r\n outletDetails = sessionStorage.getItem('user-outletDetails');\r\n mainGuestMobileNo = sessionStorage.getItem('main-guest-no') == null ? '' : sessionStorage.getItem('main-guest-no');\r\n groupPin = sessionStorage.getItem('group-pin') == null ? '' : sessionStorage.getItem('group-pin');\r\n guestLoggedIn = sessionStorage.getItem('user-loggedin') == null ? \"false\" : sessionStorage.getItem('user-loggedin');\r\n guestDetailsStr = sessionStorage.getItem('user-GuestDetails');\r\n //sessionStorage.removeItem(\"order-instruction\");\r\n // sessionStorage.removeItem(\"user-vendorOrderId\");\r\n guestCurrentAddress = sessionStorage.getItem('user-CurrentAddress') === null ? null : JSON.parse(sessionStorage.getItem('user-CurrentAddress'));\r\n guestName = sessionStorage.getItem('guest-name') === null ? '' : sessionStorage.getItem('guest-name');\r\n userSessionId = sessionStorage.getItem('user-session-id') == null ? \"\" : sessionStorage.getItem('user-session-id');\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n // remove Order charges\r\n sessionStorage.removeItem('order-charge-Amount');\r\n sessionStorage.removeItem('order-charge-Tax-Amount');\r\n sessionStorage.removeItem('order-charge-List');\r\n sessionStorage.removeItem('proceed-pod');\r\n\r\n // //console.log(mobileNo);\r\n // //console.log(token);\r\n // //console.log(tableNo);\r\n // //console.log(serviceType);\r\n // //console.log(orgnationTd);\r\n // //console.log(propertyId);\r\n // //console.log(outletCode);\r\n if (!urlPattern) {\r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n\r\n const sessionDt = sessionStorage.getItem(\"u-l-v-url-dt\");\r\n if (!sessionDt) {\r\n this.props.history.push('/sessionerror' + urlPattern);\r\n return false;\r\n }\r\n\r\n\r\n if (token === undefined || token === \"\" || token === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (mobileNo === undefined || mobileNo === \"\" || mobileNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (tableNo === undefined || tableNo === \"\" || tableNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (serviceType === undefined || serviceType === \"\" || serviceType === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (orgnationTd === undefined || orgnationTd === \"\" || orgnationTd === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (propertyId === undefined || propertyId === \"\" || propertyId === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (outletCode === undefined || outletCode === \"\" || outletCode === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (outletDetails === undefined || outletDetails === \"\" || outletDetails === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n else {\r\n olDetail = JSON.parse(outletDetails);\r\n orderCheckoutType = olDetail.orderCheckOutType;\r\n }\r\n\r\n if (guestDetailsStr === undefined || guestDetailsStr === \"\" || guestDetailsStr === null) {\r\n guestDetails = null;\r\n }\r\n else {\r\n guestDetails = JSON.parse(guestDetailsStr);\r\n }\r\n\r\n window.scrollTo(0, 0);\r\n document.body.classList.remove('modal-open');\r\n let modalPopup = document.querySelector('.modal-backdrop');\r\n if (modalPopup !== null) {\r\n modalPopup.classList.remove('modal-backdrop', 'fade', 'show');\r\n }\r\n\r\n /// Session Validation for Fine Dine\r\n // if (serviceType === \"FINE-DINE\") {\r\n // if (!sHelpers.sessionValidation()) {\r\n // this.showMessage(\"Your session has expired, please scan once again\", \"danger\");\r\n // this.setState({ loading: true });\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/logout');\r\n // }, 3000);\r\n // return false;\r\n // }\r\n // }\r\n\r\n\r\n\r\n this.handleCartRecalculate();\r\n /// Check the Logged in Mode Click\r\n if (this.props.location.state !== undefined) {\r\n if (this.props.location.state.onClick !== undefined || this.props.location.state.onClick !== null || this.props.location.state.onClick !== false) {\r\n this.setState({ loading: true });\r\n\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n let typeId = sessionStorage.getItem('on-click-mode') === null ? 0 : parseInt(sessionStorage.getItem('on-click-mode'));\r\n if (typeId > 0) {\r\n if (serviceType !== Config.serviceType.DELIVERY)\r\n this.handleValidateOrder(typeId, false);\r\n };\r\n }, Config.minMsgTimeout);\r\n }\r\n }\r\n };\r\n\r\n componentDidMount() {\r\n\r\n this.handleCartRecalculate();\r\n\r\n // get unique modifier group\r\n //set Order Instruction\r\n this.setState({ orderInstruction: (sessionStorage.getItem(\"order-instruction\") === null || sessionStorage.getItem(\"order-instruction\") === undefined) ? '' : sessionStorage.getItem(\"order-instruction\") });\r\n\r\n\r\n // //console.log(_uniquesGroups);\r\n };\r\n\r\n handleCartRecalculate() {\r\n // re calculate cart value \r\n let cartItemValue = 0;\r\n let cartItemQty = 0;\r\n let modifierCartValue = 0;\r\n let onBillTaxValue = 0;\r\n let orderLevelCharge = 0;\r\n let orderLevelChargeTaxAmount = 0;\r\n totaltaxAmount = 0;\r\n totaltaxAmount = 0;\r\n totalChargesAmount = 0;\r\n\r\n totalItemAmount = 0;\r\n totalNetAmount = 0;\r\n totalItems = 0;\r\n\r\n\r\n\r\n cartList = sessionStorage.getItem(\"cartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"cartList\"));\r\n taxList = sessionStorage.getItem(\"taxCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"taxCartList\"));\r\n modifierCartList = sessionStorage.getItem(\"modifierCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"modifierCartList\"));\r\n chargeList = sessionStorage.getItem(\"chargeCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"chargeCartList\"));\r\n\r\n\r\n if (sessionStorage.getItem(\"cartList\") !== null) {\r\n Array.prototype.forEach.call(cartList.itemList, itm => {\r\n cartItemValue += (itm.rate * itm.qty);\r\n cartItemQty += itm.qty;\r\n // //console.log(cartItemValue);\r\n let mdcartItemList = modifierCartList.filter(x => x.uid === itm.uid);\r\n // //console.log(mdcartItemList);\r\n Array.prototype.forEach.call(mdcartItemList, md => {\r\n modifierCartValue += md.rate * itm.qty;\r\n });\r\n });\r\n\r\n totaltaxAmount = taxList.reduce((prev, next) => prev + next.taxAmount, 0);\r\n totaltaxAmount += chargeList.reduce((prev, next) => prev + next.totalTaxAmount, 0);\r\n totaltaxAmount += modifierCartList.reduce((prev, next) => prev + next.totalTaxAmount, 0);\r\n totalChargesAmount = chargeList.reduce((prev, next) => prev + next.chargeAmount, 0);\r\n totalChargesAmount += modifierCartList.reduce((prev, next) => prev + next.totalChargeAmount, 0);\r\n\r\n totalItemAmount = cartItemValue + modifierCartValue;\r\n onBillTaxValue = CartCalCulation.OnBillTaxCalculation(totalItemAmount);\r\n // //console.log(onBillTaxValue); \r\n CartCalCulation.OrderLevelCharge(totalItemAmount);\r\n orderLevelCharge = sessionStorage.getItem('order-charge-Amount') === null ? 0 : parseFloat(sessionStorage.getItem('order-charge-Amount'));\r\n orderLevelChargeTaxAmount = sessionStorage.getItem('order-charge-Tax-Amount') === null ? 0 : parseFloat(sessionStorage.getItem('order-charge-Tax-Amount'));\r\n // //console.log(orderLevelCharge);\r\n totalChargesAmount += orderLevelCharge;\r\n totaltaxAmount += onBillTaxValue;\r\n totaltaxAmount += orderLevelChargeTaxAmount;\r\n totalNetAmount = totalItemAmount + totalChargesAmount + totaltaxAmount;\r\n totalItems = cartItemQty;\r\n\r\n cartList.totalItems = totalItems;\r\n cartList.totalAmount = totalItemAmount;\r\n sessionStorage.setItem(\"cartList\", JSON.stringify(cartList));\r\n\r\n\r\n // round off\r\n let roundOffAmt = sHelpers.roundOff(olDetail.roundOffType, totalNetAmount, olDetail.roundOffValue);\r\n let rndOffAmt = roundOffAmt - totalNetAmount;\r\n totalNetAmount = roundOffAmt;\r\n // roundOff = roundOffAmt - totalNetAmount;\r\n ////console.log(roundOff.toFixed(2));\r\n\r\n this.setState({\r\n totaltaxAmount: totaltaxAmount,\r\n totalChargesAmount: totalChargesAmount,\r\n totalItemAmount: totalItemAmount,\r\n totalNetAmount: totalNetAmount,\r\n totalItems: cartItemQty,\r\n modifierItemList: modifierCartList,\r\n cartItemList: cartList.itemList,\r\n roundOff: rndOffAmt\r\n });\r\n }\r\n if (totalItems === 0) {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n sessionStorage.removeItem(\"cartList\");\r\n sessionStorage.removeItem(\"taxCartList\");\r\n sessionStorage.removeItem(\"modifierCartList\");\r\n sessionStorage.removeItem(\"chargeCartList\");\r\n sessionStorage.removeItem(\"paymentInitiatedId\");\r\n sessionStorage.removeItem(\"paymentStatus\");\r\n this.setState({ loading: false });\r\n this.props.history.push('/items' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n };\r\n\r\n goBack() {\r\n //this.props.history.goBack();\r\n this.props.history.push('/items' + urlPattern);\r\n };\r\n\r\n goPayments(checkoutTypeId) {\r\n\r\n this.setState({ loading: true });\r\n\r\n if (this.state.totalNetAmount > 0) {\r\n this.handleValidateOrder();\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // sessionStorage.setItem(\"order-instruction\", this.state.OrderInstruction);\r\n // this.props.history.push('/payment', { totalNetAmount: this.state.totalNetAmount, totalItems: this.state.totalItems });\r\n // }, 2000);\r\n }\r\n else {\r\n this.showMessage(\"Item details are required\", \"danger\");\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/items' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n }\r\n\r\n handleQtyIncDec(itmId, val, rate, itmName, itemId, groupId, foodType, isModifier, uid, taxId, chargeId) {\r\n if (isModifier === 0) {\r\n let qty = document.getElementById(\"\" + uid + \"\").innerHTML === \"\" ? 0 : JSON.parse(document.getElementById(\"\" + uid + \"\").innerHTML);\r\n let _qtyVal = val === 1 ? qty += 1 : qty -= 1;\r\n if (qty >= 0) {\r\n this.setState({ qty: _qtyVal });\r\n document.getElementById(\"\" + uid + \"\").innerHTML = _qtyVal;\r\n totalItems = val === 1 ? totalItems += 1 : totalItems -= 1;\r\n totalItemAmount = val === 1 ? totalItemAmount += rate : totalItemAmount -= rate;\r\n }\r\n //let _amtVal = _qtyVal * rate;\r\n // totalAmount += _amtVal; \r\n\r\n this.setState({ totalItems: totalItems });\r\n this.setState({ totalItemAmount: totalItemAmount });\r\n\r\n cartList.totalItems = totalItems;\r\n cartList.totalAmount = totalItemAmount;\r\n\r\n let index = cartList.itemList.findIndex(x => x.uid === uid);\r\n // if (index < 0) {\r\n // cartList.itemList.push({ id: \"\" + itmId + \"\", itemId: itemId, groupId: groupId, foodType: foodType, qty: _qtyVal, rate: rate, itemName: itmName, isModifier: 0, uid: \"\" });\r\n // }\r\n if (index > -1) {\r\n if (_qtyVal > 0) {\r\n\r\n // tax\r\n let exTax = taxList.filter(x => x.uid === cartList.itemList[index].uid);\r\n let txidx = -1;\r\n Array.prototype.forEach.call(exTax, tx => {\r\n txidx = taxList.findIndex(x => x.serialNo === tx.serialNo && x.uid === tx.uid);\r\n taxList.splice(txidx, 1);\r\n });\r\n\r\n // charge\r\n let exCharge = chargeList.filter(x => x.uid === cartList.itemList[index].uid);\r\n let chgidx = -1;\r\n Array.prototype.forEach.call(exCharge, chg => {\r\n chgidx = chargeList.findIndex(x => x.uid === chg.uid);\r\n chargeList.splice(chgidx, 1);\r\n });\r\n\r\n cartList.itemList[index].qty = _qtyVal;\r\n\r\n sessionStorage.setItem(\"cartList\", JSON.stringify(cartList));\r\n sessionStorage.setItem(\"taxCartList\", JSON.stringify(taxList));\r\n sessionStorage.setItem(\"chargeCartList\", JSON.stringify(chargeList));\r\n CartCalCulation.itemTaxCartCalculation(taxId, rate, _qtyVal, itemId, cartList.itemList[index].uid);\r\n CartCalCulation.itemChargeCartCalculation(chargeId, rate, _qtyVal, itemId, cartList.itemList[index].uid);\r\n this.handleCartRecalculate();\r\n }\r\n else {\r\n\r\n // tax\r\n let exTax = taxList.filter(x => x.uid === cartList.itemList[index].uid);\r\n let txidx = -1;\r\n Array.prototype.forEach.call(exTax, tx => {\r\n txidx = taxList.findIndex(x => x.serialNo === tx.serialNo && x.uid === tx.uid);\r\n taxList.splice(txidx, 1);\r\n });\r\n\r\n // charge\r\n let exCharge = chargeList.filter(x => x.uid === cartList.itemList[index].uid);\r\n let chgidx = -1;\r\n Array.prototype.forEach.call(exCharge, chg => {\r\n chgidx = chargeList.findIndex(x => x.uid === chg.uid);\r\n chargeList.splice(chgidx, 1);\r\n });\r\n\r\n cartList.itemList.splice(index, 1);\r\n\r\n sessionStorage.setItem(\"cartList\", JSON.stringify(cartList));\r\n sessionStorage.setItem(\"taxCartList\", JSON.stringify(taxList));\r\n sessionStorage.setItem(\"chargeCartList\", JSON.stringify(chargeList));\r\n this.handleCartRecalculate();\r\n }\r\n\r\n }\r\n\r\n\r\n }\r\n else { // modifier Items\r\n\r\n // cart\r\n let index = cartList.itemList.findIndex(x => x.uid === \"\" + uid + \"\");\r\n\r\n if (index > -1)\r\n // cartList.itemList.push({ id: \"\" + itmId + \"\", itemId: itemId, groupId: groupId, foodType: foodType, qty: _qtyVal, rate: rate, itemName: itmName, isModifier: 0, uid: \"\" });\r\n {\r\n\r\n let qty = document.getElementById(\"\" + uid + \"\").innerHTML === \"\" ? 0 : JSON.parse(document.getElementById(\"\" + uid + \"\").innerHTML);\r\n let _qtyVal = val === 1 ? qty += 1 : qty -= 1;\r\n\r\n if (_qtyVal > 0) {\r\n this.setState({ qty: _qtyVal });\r\n document.getElementById(\"\" + uid + \"\").innerHTML = _qtyVal;\r\n totalItems = val === 1 ? totalItems += 1 : totalItems -= 1;\r\n totalItemAmount = val === 1 ? totalItemAmount += rate : totalItemAmount -= rate;\r\n\r\n this.setState({ totalItems: totalItems });\r\n this.setState({ totalItemAmount: totalItemAmount });\r\n\r\n cartList.totalItems = totalItems;\r\n cartList.totalAmount = totalItemAmount;\r\n\r\n // tax\r\n let exTax = taxList.filter(x => x.uid === cartList.itemList[index].uid);\r\n let txidx = -1;\r\n Array.prototype.forEach.call(exTax, tx => {\r\n txidx = taxList.findIndex(x => x.serialNo === tx.serialNo && x.uid === tx.uid);\r\n taxList.splice(txidx, 1);\r\n })\r\n\r\n // charge\r\n let exCharge = chargeList.filter(x => x.uid === cartList.itemList[index].uid);\r\n let chgidx = -1;\r\n Array.prototype.forEach.call(exCharge, chg => {\r\n chgidx = chargeList.findIndex(x => x.uid === chg.uid);\r\n chargeList.splice(chgidx, 1);\r\n });\r\n\r\n // modifier\r\n // charge\r\n let exmodifierList = modifierCartList.filter(x => x.uid === cartList.itemList[index].uid);\r\n Array.prototype.forEach.call(exmodifierList, md => {\r\n let txList = CartCalCulation.modifierItemTaxCartCalculation(md.taxId, md.rate, _qtyVal, md.itemId, md.uid);\r\n let txAmount = txList.reduce((prev, next) => prev + next.taxAmount, 0);\r\n let chgList = CartCalCulation.modifierItemChargeCartCalculation(md.chargeIds, md.rate, _qtyVal, md.itemId, md.uid);\r\n let chgAmount = chgList.reduce((prev, next) => prev + next.taxAmount, 0);\r\n md.taxes = txList;\r\n md.charges = chgList;\r\n md.totalTaxAmount = txAmount;\r\n md.totalChargeAmount = chgAmount;\r\n\r\n });\r\n\r\n cartList.itemList[index].qty = _qtyVal;\r\n\r\n sessionStorage.setItem(\"cartList\", JSON.stringify(cartList));\r\n sessionStorage.setItem(\"taxCartList\", JSON.stringify(taxList));\r\n sessionStorage.setItem(\"chargeCartList\", JSON.stringify(chargeList));\r\n sessionStorage.setItem(\"modifierCartList\", JSON.stringify(modifierCartList));\r\n\r\n CartCalCulation.itemTaxCartCalculation(taxId, rate, _qtyVal, itemId, cartList.itemList[index].uid);\r\n CartCalCulation.itemChargeCartCalculation(chargeId, rate, _qtyVal, itemId, cartList.itemList[index].uid);\r\n this.handleCartRecalculate();\r\n }\r\n else {\r\n // tax\r\n let exTax = taxList.filter(x => x.uid === cartList.itemList[index].uid);\r\n let txidx = -1;\r\n Array.prototype.forEach.call(exTax, tx => {\r\n txidx = taxList.findIndex(x => x.serialNo === tx.serialNo && x.uid === tx.uid);\r\n taxList.splice(txidx, 1);\r\n })\r\n\r\n // charge\r\n let exCharge = chargeList.filter(x => x.uid === cartList.itemList[index].uid);\r\n let chgidx = -1;\r\n Array.prototype.forEach.call(exCharge, chg => {\r\n chgidx = chargeList.findIndex(x => x.uid === chg.uid);\r\n // //console.log(chgidx);\r\n chargeList.splice(chgidx, 1);\r\n });\r\n\r\n // modifier\r\n // charge\r\n let exmodifierList = modifierCartList.filter(x => x.uid === cartList.itemList[index].uid);\r\n let mdidx = -1;\r\n Array.prototype.forEach.call(exmodifierList, md => {\r\n mdidx = modifierCartList.findIndex(x => x.uid === md.uid);\r\n modifierCartList.splice(mdidx, 1);\r\n });\r\n\r\n cartList.itemList.splice(index, 1);\r\n sessionStorage.setItem(\"cartList\", JSON.stringify(cartList));\r\n sessionStorage.setItem(\"taxCartList\", JSON.stringify(taxList));\r\n sessionStorage.setItem(\"chargeCartList\", JSON.stringify(chargeList));\r\n sessionStorage.setItem(\"modifierCartList\", JSON.stringify(modifierCartList));\r\n this.handleCartRecalculate();\r\n\r\n }\r\n }\r\n }\r\n };\r\n\r\n handleInstrucChange = event => {\r\n const value = event.target.value;\r\n this.setState({ orderInstruction: value });\r\n // //console.log(value);\r\n };\r\n\r\n guestTableCheck(typeId) {\r\n this.setState({ loading: true });\r\n\r\n // Check Loggin Process\r\n sessionStorage.setItem('main-guest-no', mobileNo);\r\n mobileNo = sessionStorage.getItem('main-guest-no');\r\n\r\n let postObj = {\r\n OutletId: propertyId + outletCode,\r\n GuestMobileCountryCode: \"91\",\r\n // GuestMobileNumber: (mainGuestMobileNo === '' || mainGuestMobileNo === \"0000000000\") ? mobileNo : mainGuestMobileNo, // added by vijay on 04-11-2023 \r\n GuestMobileNumber: mobileNo,\r\n TableNumber: serviceType !== \"FINE-DINE\" ? '' : tableNo\r\n }\r\n\r\n // //console.log(postObj);\r\n\r\n fetch(Config.basePOSUrl + 'GetGuestTableStatus', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n if (response.errorCode === 0) {\r\n if (!response.response.guestTableStatus.isCheckedIn) {\r\n //console.log(response);\r\n // Commended by vijay on 01-02-2024 -Jira id -2078 -Testing Poits -Switch based \r\n // if (olDetail.autoCheckInWhenGuestContinueOrderInSameTable) {\r\n // let postObj = {\r\n // OutletId: propertyId + outletCode,\r\n // GuestName: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n // MobileNo: mobileNo,\r\n // TableNumber: tableNo,\r\n // GroupCode: groupPin\r\n // }\r\n // //console.log(postObj)\r\n // fetch(Config.basePOSUrl + 'GuestCheckIn', {\r\n // method: 'POST',\r\n // headers: {\r\n // Authorization: \"Bearer \" + token,\r\n // 'content-type': 'application/json'\r\n // },\r\n // body: JSON.stringify(postObj)\r\n // })\r\n // .then(res => res.json())\r\n // .then(response => {\r\n // if (response.errorCode === 0) {\r\n // //console.log(\"response2wwww\");\r\n // //console.log(response);\r\n // sessionStorage.setItem('main-guest-no', mobileNo);\r\n // mainGuestMobileNo = sessionStorage.getItem('main-guest-no');\r\n // // group pin commented by daspraksh on 04-10-2023 jira-1490\r\n // // sessionStorage.setItem('group-pin', response.response.groupCode);\r\n // // group pin added by daspraksh on 04-10-2023 jira-1490\r\n // sessionStorage.setItem('group-pin', response.response !== null ? response.response.groupCode : \"\");\r\n // groupPin = sessionStorage.getItem('group-pin');\r\n\r\n // sessionStorage.setItem('main-guest-name', sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"));\r\n // sessionStorage.setItem('group-session', false);\r\n\r\n // sessionStorage.setItem('main-guest-mask-no', '');\r\n // sessionStorage.setItem('ex-main-guest-no', mobileNo);\r\n\r\n // setTimeout(() => {\r\n // this.handleValidateOrder(typeId, true);\r\n // }, 500);\r\n // }\r\n // else {\r\n // this.showMessage(\"Your selected table has been checked out.\", \"danger\");\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/logout');\r\n // }, 3000);\r\n // }\r\n // })\r\n // .catch(err => {\r\n // sessionStorage.removeItem(\"user-token\");\r\n // sessionStorage.removeItem(\"user-mobileno\");\r\n // this.showMessage('Guest Check IN - Failed to fetch - ' + err, \"danger\");\r\n // //console.log(err)\r\n // });\r\n // } \r\n // else {\r\n // this.showMessage('Your table has been Closed! , Please scan and login once again', \"danger\");\r\n // this.setState({ loading: true });\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/');\r\n // }, 3000);\r\n // }\r\n\r\n // Added by vijay on 01-02-2024 -Jira id -2078 -Testing Poits \r\n if (olDetail.checkInWithTablePin) {\r\n sessionStorage.setItem(\"login-page-session\", 3); // Cart Session\r\n sessionStorage.setItem(\"on-click-mode\", typeId); // Cart Session\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/loginverification' + urlPattern, // set valid OTP= false due to show only table pin mode in the loginverification \r\n { mobileNo: mobileNo, validateOTP: false, validatePIN: olDetail.checkInWithTablePin });\r\n // { mobileNo: mobileNo, validatePIN: validatePIN }); // Added by vijay Testing Points\r\n }, Config.minMsgTimeout);\r\n }\r\n\r\n else {\r\n let postObj = {\r\n OutletId: propertyId + outletCode,\r\n GuestName: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n MobileNo: mobileNo,\r\n TableNumber: tableNo,\r\n GroupCode: groupPin\r\n }\r\n // console.log( \"GuestCheckIn before\",postObj)\r\n fetch(Config.basePOSUrl + 'GuestCheckIn', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n console.log(\"GuestCheckIn API response\", response);\r\n if (response.errorCode === 0) {\r\n sessionStorage.setItem('main-guest-no', mobileNo);\r\n mainGuestMobileNo = sessionStorage.getItem('main-guest-no');\r\n // group pin commented by daspraksh on 04-10-2023 jira-1490\r\n // sessionStorage.setItem('group-pin', response.response.groupCode);\r\n // group pin added by daspraksh on 04-10-2023 jira-1490\r\n sessionStorage.setItem('group-pin', response.response !== null ? response.response.groupCode : \"\");\r\n groupPin = sessionStorage.getItem('group-pin');\r\n\r\n sessionStorage.setItem('main-guest-name', sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"));\r\n sessionStorage.setItem('group-session', false);\r\n\r\n sessionStorage.setItem('main-guest-mask-no', '');\r\n sessionStorage.setItem('ex-main-guest-no', mobileNo);\r\n\r\n setTimeout(() => {\r\n this.handleValidateOrder(typeId, true);\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n // added by dasprakash on 21-10-2023 jira-1644\r\n this.setState({ errorMessage: \"Your selected table has been checked out.\" })\r\n //this.showMessage(\"Your selected table has been checked out.\", \"danger\");\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/logout' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n })\r\n .catch(err => {\r\n sessionStorage.removeItem(\"user-token\");\r\n sessionStorage.removeItem(\"user-mobileno\");\r\n // added by dasprakash on 21-10-2023 jira-1644\r\n this.setState({ errorMessage: 'Guest Check IN - Failed to fetch - ' + err })\r\n //this.showMessage('Guest Check IN - Failed to fetch - ' + err, \"danger\");\r\n //console.log(err)\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n else {\r\n if (mobileNo !== mainGuestMobileNo) { //if not main guest\r\n sessionStorage.setItem('main-guest-mask-no', response.response.guestTableStatus.maskMobileNo);\r\n sessionStorage.setItem('main-guest-no', response.response.guestTableStatus.mainGuestMobileNo);\r\n sessionStorage.setItem('main-guest-name', response.response.guestTableStatus.mainGuestName);\r\n sessionStorage.setItem('ex-main-guest-no', response.response.guestTableStatus.mainGuestMobileNo);\r\n mainGuestMobileNo = response.response.guestTableStatus.mainGuestMobileNo;\r\n }\r\n\r\n if (tableNo !== response.response.guestTableStatus.currentTableNumber) {\r\n this.showMessage(\"Your table has been transfer from \" + tableNo + \" to \" + response.response.guestTableStatus.currentTableNumber, \"danger\");\r\n sessionStorage.setItem('user-tableno', response.response.guestTableStatus.currentTableNumber);\r\n tableNo = sessionStorage.getItem('user-tableno');\r\n }\r\n setTimeout(() => {\r\n this.handleValidateOrder(typeId, true);\r\n }, Config.minMsgTimeout);\r\n }\r\n }\r\n else {\r\n this.setState({ loading: false });\r\n this.showMessage(response.message, \"danger\");\r\n\r\n }\r\n })\r\n .catch(err => {\r\n this.setState({ loading: false });\r\n this.showMessage(err, \"danger\");\r\n });\r\n }\r\n\r\n handleValidateOrder(typeId, tableCheck) {\r\n\r\n /// user Session Validation \r\n if (!sHelpers.userSessionValidation(userSessionId)) {\r\n this.showMessage(\"Your session has been expired, please try again\", \"danger\");\r\n setTimeout(() => {\r\n window.location.reload(true);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n\r\n\r\n //console.log(\"handleValidateOrder\")\r\n let IsAddressChange = false;\r\n let addressObj = null;\r\n // Special Instruction Saved \r\n sessionStorage.setItem(\"order-instruction\", this.state.orderInstruction !== '' ? this.state.orderInstruction : sessionStorage.getItem('order-instruction') !== null ? sessionStorage.getItem('order-instruction') : '');\r\n orderChargeList = sessionStorage.getItem(\"order-charge-List\") === null ? [] : JSON.parse(sessionStorage.getItem(\"order-charge-List\"));\r\n\r\n if (guestLoggedIn === \"false\") {\r\n this.setState({ loading: true });\r\n sessionStorage.setItem(\"login-page-session\", 3); // Cart Session\r\n sessionStorage.setItem(\"on-click-mode\", typeId); // Cart Session\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/login' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n else {\r\n sessionStorage.removeItem(\"login-page-session\"); // Cart Session\r\n sessionStorage.removeItem(\"on-click-mode\"); // Cart Session\r\n }\r\n\r\n // Delivery Mode\r\n if (serviceType === Config.serviceType.DELIVERY) {\r\n\r\n if (guestCurrentAddress === null) {\r\n sessionStorage.setItem('user-addressId', 0);\r\n this.showMessage('Address not found, Please change the valid address', \"danger\");\r\n IsAddressChange = true;\r\n }\r\n else {\r\n sessionStorage.setItem('user-addressId', parseInt(guestCurrentAddress.addressId));\r\n if (guestCurrentAddress.addressLine1.trim() === '') {\r\n if (guestCurrentAddress.addressLine2.trim() === '') {\r\n if (guestCurrentAddress.addressLine3.trim() === '') {\r\n this.showMessage('Address not found, Please change the valid address', \"danger\");\r\n IsAddressChange = true;\r\n }\r\n }\r\n }\r\n\r\n if (guestCurrentAddress.zipCode.trim() === '') {\r\n this.showMessage('Invalid zipcode, Please change the valid address', \"danger\");\r\n IsAddressChange = true;\r\n }\r\n if (guestCurrentAddress.city.trim() === '') {\r\n this.showMessage('Invalid city name, Please change the valid address', \"danger\");\r\n IsAddressChange = true;\r\n }\r\n if (guestCurrentAddress.area.trim() === '') {\r\n this.showMessage('Invalid area name, Please change the valid address', \"danger\");\r\n IsAddressChange = true;\r\n }\r\n }\r\n\r\n if (IsAddressChange) {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/chooseaddress' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n\r\n // Get Address \r\n addressObj = {\r\n AddressId: guestCurrentAddress.addressId,\r\n AddressLine1: guestCurrentAddress.addressLine1,\r\n AddressLine2: guestCurrentAddress.addressLine2,\r\n AddressLine3: guestCurrentAddress.addressLine3,\r\n Area: guestCurrentAddress.area,\r\n City: guestCurrentAddress.city,\r\n State: guestCurrentAddress.addressId,\r\n Landmark: guestCurrentAddress.landmark,\r\n ZipCode: guestCurrentAddress.zipCode,\r\n AddressType: guestCurrentAddress.addressType\r\n }\r\n }\r\n\r\n // Guest Table Check - CheckIn / Check Out / Table Transfer - to Get latest Table Detail\r\n if (serviceType === \"FINE-DINE\" && tableCheck === false) {\r\n this.guestTableCheck(typeId);\r\n return false;\r\n }\r\n\r\n this.setState({ loading: true });\r\n let postItemList = [];\r\n Array.prototype.forEach.call(cartList.itemList, itm => {\r\n let postTaxes = [];\r\n let postModifiers = [];\r\n let postCharges = [];\r\n vailduniquesGroups = [];\r\n\r\n // tax\r\n let ctax = taxList.filter(x => x.uid === itm.uid);\r\n ctax.map(tx =>\r\n postTaxes.push({ TaxCode: tx.taxCode, TaxValueType: tx.taxType, TaxValue: tx.taxValue, TaxAmount: tx.taxAmount })\r\n )\r\n\r\n //modifier\r\n let cmodifer = modifierCartList.filter(x => x.uid === itm.uid);\r\n // //console.log(cmodifer);\r\n var _taxItmFound = {};\r\n for (var md = 0, lenc = cmodifer.length; md <= lenc - 1; md++) {\r\n var stringified = JSON.stringify(cmodifer[md].modifierGroupId);\r\n if (_taxItmFound[stringified]) { continue; }\r\n vailduniquesGroups.push({ groupId: cmodifer[md].modifierGroupId, groupName: cmodifer[md].modifierGroupName });\r\n _taxItmFound[stringified] = true;\r\n };\r\n // //console.log(vailduniquesGroups);\r\n // Modifier\r\n Array.prototype.forEach.call(vailduniquesGroups, mdg => {\r\n var modifr = [];\r\n let mdlist = cmodifer.filter(x => x.modifierGroupId === mdg.groupId);\r\n Array.prototype.forEach.call(mdlist, md => {\r\n let modifiertax = [];\r\n let modifierCharge = [];\r\n\r\n //tax\r\n Array.prototype.forEach.call(md.taxes, x => {\r\n modifiertax.push({ TaxCode: x.taxCode, TaxValueType: x.taxType, TaxValue: x.taxValue, TaxAmount: x.taxAmount })\r\n });\r\n\r\n //charge\r\n Array.prototype.forEach.call(md.charges, chg => {\r\n let chargetax = [];\r\n\r\n //tax\r\n Array.prototype.forEach.call(chg.taxes, x => {\r\n chargetax.push({ TaxCode: x.taxCode, TaxValueType: x.taxType, TaxValue: x.taxValue, TaxAmount: x.taxAmount })\r\n })\r\n\r\n // IsMerchantCharge is hardcorded \r\n modifierCharge.push({\r\n ChargeId: chg.chargeId, ChargeName: chg.chargeName,\r\n ChargeType: chg.chargeType, IsMerchantCharge: false, ChargeValueType: chg.chargeValueType,\r\n ChargeValue: chg.chargeValue, ChargeAmount: chg.chargeAmount,\r\n Taxes: chargetax\r\n })\r\n });\r\n\r\n modifr.push({ ModfierId: md.modifierId, ModifierName: md.modifierName, Rate: md.rate, Quantity: itm.qty, Amount: md.rate * itm.qty, Taxes: modifiertax, Charges: modifierCharge })\r\n })\r\n postModifiers.push({ ModifierGroupId: mdg.groupId, GroupName: mdg.groupName, Modifiers: modifr });\r\n });\r\n // //console.log(postModifiers);\r\n\r\n // charges \r\n let ccharge = chargeList.filter(x => x.uid === itm.uid);\r\n\r\n Array.prototype.forEach.call(ccharge, chg => {\r\n let chargetax = [];\r\n\r\n //tax\r\n Array.prototype.forEach.call(chg.taxes, x => {\r\n chargetax.push({ TaxCode: x.taxCode, TaxValueType: x.taxType, TaxValue: x.taxValue, TaxAmount: x.taxAmount })\r\n })\r\n\r\n // IsMerchantCharge is hardcorded \r\n postCharges.push({\r\n ChargeId: chg.chargeId, ChargeName: chg.chargeName,\r\n ChargeType: chg.chargeType, IsMerchantCharge: false, ChargeValueType: chg.chargeValueType,\r\n ChargeValue: chg.chargeValue, ChargeAmount: chg.chargeAmount,\r\n Taxes: chargetax\r\n })\r\n });\r\n // //console.log(postCharges);\r\n\r\n postItemList.push({\r\n ItemId: itm.itemId,\r\n ItemName: itm.itemName, Rate: itm.rate,\r\n Quantity: itm.qty, Amount: (itm.qty * itm.rate),\r\n Instruction: itm.specInsc === undefined ? \"\" : itm.specInsc,\r\n Taxes: postTaxes,\r\n ModifierGroups: postModifiers,\r\n Charges: postCharges\r\n });\r\n\r\n });\r\n let orderdate = new Date();\r\n let mseconds = orderdate.getTime() //1440516958\r\n let deliveryTime = orderdate.getTime() + (olDetail.minimumDeliveryTime * 60000); //1440516958\r\n // //console.log(mseconds);\r\n\r\n // this.handleCartRecalculate();\r\n\r\n // paymentDetails.push({\r\n // PayMode: \"ONLP\", // Online Pay \r\n // PaymentAmount: this.state.totalNetAmount.toFixed(2),\r\n // TransactionRefId: '',\r\n // PaymentVendorId: '', // Vendor Id\r\n // PaymentVendorName: ''\r\n // });\r\n //this.setState({vendorOrderId: uuid()});\r\n // sessionStorage.setItem('user-vendorOrderId', uuid());\r\n /// Get QR Location \r\n let specialInstu = '';\r\n\r\n if (olDetail.orderInstructionIncludeQRCodeLocation === true) {\r\n // //console.log(olDetail.orderInstructionIncludeQRCodeLocation);\r\n specialInstu = sessionStorage.getItem('url-remarks') === null ? '' : sessionStorage.getItem('url-remarks') !== '' ? sessionStorage.getItem('url-remarks') : '';\r\n // //console.log(specialInstu);\r\n }\r\n\r\n /// Order Charges\r\n let orderCharges = [];\r\n Array.prototype.forEach.call(orderChargeList, ochg => {\r\n let chargetax = [];\r\n //tax\r\n Array.prototype.forEach.call(ochg.taxes, x => {\r\n chargetax.push({ TaxCode: x.taxCode, TaxValueType: x.taxType, TaxValue: x.taxValue, TaxAmount: x.taxAmount })\r\n })\r\n\r\n // IsMerchantCharge is hardcorded \r\n orderCharges.push({\r\n ChargeId: ochg.chargeId, ChargeName: ochg.chargeName,\r\n ChargeType: ochg.chargeType, IsMerchantCharge: false, ChargeValueType: ochg.chargeValueType,\r\n ChargeValue: ochg.chargeValue, ChargeAmount: ochg.chargeAmount,\r\n Taxes: chargetax\r\n });\r\n });\r\n\r\n // //console.log(orderCharges);\r\n mainGuestMobileNo = sessionStorage.getItem('main-guest-no');\r\n let postObj = {\r\n OutletId: propertyId + outletCode,\r\n ServiceType: serviceType,\r\n GuestDetails: {\r\n // group pin commented by dasprakash on 11-10-2023 jira-1490\r\n // MobileNo: mainGuestMobileNo,\r\n // group pin added by dasprakash on 11-10-2023 jira-1490\r\n // MobileNo: mobileNo,\r\n //Commended by vijay on Jira id - 06-11-2023\r\n // MobileNo: mainGuestMobileNo === \"\" ? mobileNo : mainGuestMobileNo,\r\n //Added by vijay on 06-11-2023 Jira id -\r\n MobileNo: (mainGuestMobileNo === '' || mainGuestMobileNo === \"0000000000\") ? mobileNo : mainGuestMobileNo,\r\n\r\n OrderedGuestMobileNo: mobileNo,\r\n OrderedGuestName: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"), GuestName: sessionStorage.getItem(\"main-guest-name\") === null ? (sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\")) : sessionStorage.getItem(\"main-guest-name\"),\r\n Address: addressObj === null ? {} : addressObj\r\n },\r\n OrderDetails: {\r\n VendorOrderId: sessionStorage.getItem('user-vendorOrderId'),\r\n OrderDateTime: mseconds,\r\n DeliveryDateTime: serviceType === Config.serviceType.DELIVERY ? deliveryTime : null,\r\n TableNumber: serviceType !== \"FINE-DINE\" ? '' : tableNo,\r\n OrderStatus: \"placed\",\r\n // Instruction: (specialInstu !== '' ? specialInstu + ' - ' : '') + (this.state.orderInstruction === null ? '' : this.state.orderInstruction),\r\n Instruction: (specialInstu !== '' ? specialInstu : '') + (this.state.orderInstruction === null ? '' : (specialInstu !== '' && this.state.orderInstruction !== '') ? ' - ' + this.state.orderInstruction : this.state.orderInstruction),\r\n Items: postItemList,\r\n // TotalItemValue: this.state.totalItemAmount.toFixed(2),\r\n // TotalItemTaxes: this.state.totaltaxAmount.toFixed(2),\r\n // TotalItemCharges: this.state.totalChargesAmount.toFixed(2),\r\n TotalTaxes: this.state.totaltaxAmount.toFixed(2),\r\n TotalCharges: totalChargesAmount,\r\n TotalAmount: this.state.totalNetAmount.toFixed(2),\r\n IsPaid: false,\r\n Charges: orderCharges\r\n },\r\n PaymentDetails: []\r\n }\r\n \r\n\r\n //console.log(\"postObj\");\r\n //console.log(postObj);\r\n //console.log(JSON.stringify(postObj));\r\n // //console.log(Config.basePOSUrl + 'ValidateOrder');\r\n\r\n fetch(Config.basePOSUrl + 'ValidateOrder', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(\"response34\");\r\n // console.log(response);\r\n // console.log(postObj);\r\n if (response.errorCode === 0) {\r\n if (typeId === 1) // Place Order\r\n {\r\n fetch(Config.basePOSUrl + 'PlaceOrder', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n //console.log(new Date());\r\n\r\n // //console.log(response);\r\n if (response.errorCode === 0) {\r\n setTimeout(() => {\r\n this.setState({ loading: true });\r\n sessionStorage.removeItem(\"paymentInitiatedId\");\r\n sessionStorage.removeItem(\"vendorTransactionId\");\r\n sessionStorage.removeItem(\"vendorId\");\r\n sessionStorage.removeItem(\"vendorName\");\r\n sessionStorage.removeItem(\"paymentStatus\");\r\n sessionStorage.removeItem(\"order-instruction\");\r\n sessionStorage.removeItem(\"user-vendorOrderId\");\r\n //console.log(new Date());\r\n\r\n this.props.history.push('/ordersuccess' + urlPattern,\r\n {\r\n // orderId: response.response.orderId\r\n orderId: postObj.OrderDetails.VendorOrderId,\r\n orderNo: response.response != null ? response.response.orderNo : ''\r\n });\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n // //console.log(response.message);\r\n this.setState({ loading: true });\r\n this.showMessage('Error Order was not placed', \"danger\");\r\n sessionStorage.removeItem(\"user-vendorOrderId\");\r\n }\r\n })\r\n .catch(err => {\r\n // //console.log(err);\r\n this.setState({ loading: true });\r\n this.showMessage('Error Order was not placed', \"danger\");\r\n sessionStorage.removeItem(\"user-vendorOrderId\");\r\n });\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.setState({ loading: true });\r\n sessionStorage.setItem(\"order-instruction\", this.state.orderInstruction);\r\n this.props.history.push('/payment' + urlPattern, { totalNetAmount: this.state.totalNetAmount, totalItems: this.state.totalItems });\r\n }, Config.minMsgTimeout);\r\n }\r\n }\r\n else if (response.errorCode === 3) { /// Check in table \r\n if (serviceType === \"FINE-DINE\") { // Table Check In \r\n if (olDetail.checkInWithTablePin) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/tableverification' + urlPattern, { redirectCart: true });\r\n }, Config.minMsgTimeout);\r\n return false\r\n }\r\n let postTableObj = {\r\n OutletId: propertyId + outletCode,\r\n GuestName: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n MobileNo: mobileNo,\r\n TableNumber: tableNo,\r\n GroupCode: groupPin\r\n }\r\n fetch(Config.basePOSUrl + 'GuestCheckIn', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postTableObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n //console.log(postTableObj);\r\n if (response.errorCode === 0) {\r\n sessionStorage.setItem('user-table-verified', true);\r\n if (typeId === 1) // Place Order\r\n {\r\n fetch(Config.basePOSUrl + 'PlaceOrder', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n //console.log(new Date());\r\n\r\n if (response.errorCode === 0) {\r\n setTimeout(() => {\r\n // this.setState({ loading: false });\r\n sessionStorage.removeItem(\"paymentInitiatedId\");\r\n sessionStorage.removeItem(\"vendorTransactionId\");\r\n sessionStorage.removeItem(\"vendorId\");\r\n sessionStorage.removeItem(\"vendorName\");\r\n sessionStorage.removeItem(\"paymentStatus\");\r\n sessionStorage.removeItem(\"order-instruction\");\r\n sessionStorage.removeItem(\"user-vendorOrderId\");\r\n //console.log(new Date());\r\n\r\n this.props.history.push('/ordersuccess' + urlPattern,\r\n {\r\n // orderId: response.response.orderId\r\n orderId: postObj.OrderDetails.VendorOrderId,\r\n orderNo: response.response.orderNo\r\n });\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n // //console.log(response.message);\r\n this.setState({ loading: true });\r\n this.showMessage('Error Order was not placed', \"danger\");\r\n sessionStorage.removeItem(\"user-vendorOrderId\");\r\n }\r\n })\r\n .catch(err => {\r\n // //console.log(err);\r\n this.setState({ loading: true });\r\n this.showMessage('Error Order was not placed', \"danger\");\r\n sessionStorage.removeItem(\"user-vendorOrderId\");\r\n });\r\n }\r\n else {\r\n setTimeout(() => {\r\n // this.setState({ loading: false });\r\n sessionStorage.setItem(\"order-instruction\", this.state.orderInstruction);\r\n this.props.history.push('/payment' + urlPattern, { totalNetAmount: this.state.totalNetAmount, totalItems: this.state.totalItems });\r\n }, Config.minMsgTimeout);\r\n }\r\n }\r\n else {\r\n this.showMessage(response.message, \"danger\");\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/qrcoderror' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n })\r\n .catch(err => {\r\n this.showMessage('Guest Check IN - Failed to fetch - ' + err, \"danger\");\r\n });\r\n\r\n } // End Service Type - Fine Dine\r\n else {\r\n sessionStorage.setItem('user-table-verified', true);\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/home' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n }\r\n else if (response.errorCode === 4) { // Addded by vijay - duplicate Order handled on 11-10-2024 - jira id -3924\r\n\t\t\t\t\tthis.setState({ loading: true });\r\n\t\t\t\t\tsetTimeout(() => {\r\n sessionStorage.removeItem(\"paymentInitiatedId\");\r\n sessionStorage.removeItem(\"vendorTransactionId\");\r\n sessionStorage.removeItem(\"vendorId\");\r\n sessionStorage.removeItem(\"vendorName\");\r\n sessionStorage.removeItem(\"paymentStatus\");\r\n sessionStorage.removeItem(\"order-instruction\");\r\n sessionStorage.removeItem(\"user-vendorOrderId\");\r\n //console.log(new Date());\r\n\r\n this.props.history.push(\r\n \"/ordersuccess\" + urlPattern,\r\n {\r\n orderId: postObj.OrderDetails.VendorOrderId,\r\n orderNo: response.response.orderNo,\r\n }\r\n );\r\n }, 200);\r\n\t\t\t\t}\r\n else {\r\n //console.log(\"response.message\");\r\n //console.log(response.message);\r\n this.setState({ loading: false });\r\n this.showMessage(response.message, \"danger\");\r\n\r\n }\r\n })\r\n .catch(err => {\r\n //console.log(err.stack);\r\n this.setState({ loading: false });\r\n this.showMessage(err.message, \"danger\");\r\n }); // End Validate Order\r\n\r\n };\r\n\r\n handleSpecialInstruction = (itmName, uid, specInsc) => {\r\n confirmAlert({\r\n customUI: ({ onClose }) => {\r\n return (\r\n
    \r\n
    Special Instruction
    \r\n {itmName}\r\n \r\n \r\n {\r\n this.handleUpdateSpecialInstruction(uid, false);\r\n onClose();\r\n }}\r\n className=\"btn-right\">\r\n Done\r\n \r\n
    \r\n );\r\n }\r\n });\r\n };\r\n\r\n handleUpdateSpecialInstruction(uid, remove) {\r\n let index = cartList.itemList.findIndex(x => x.uid === uid);\r\n let specInscVal = '';\r\n if (index > -1) {\r\n if (!remove) {\r\n specInscVal = document.getElementById('spec-insc-' + uid).value;\r\n if (cartList.itemList[index].specInsc === undefined)\r\n cartList.itemList.map(x => Object.assign({}, cartList.itemList, { \"specInsc\": specInscVal }));\r\n else\r\n cartList.itemList[index].specInsc = specInscVal;\r\n }\r\n\r\n cartList.itemList[index].specInsc = specInscVal;\r\n this.setState({ cartItemList: cartList.itemList });\r\n sessionStorage.setItem(\"cartList\", JSON.stringify(cartList));\r\n }\r\n\r\n };\r\n\r\n gotoAddressChoose(addressId) {\r\n // Special Instruction Saved \r\n sessionStorage.setItem(\"order-instruction\", this.state.orderInstruction !== '' ? this.state.orderInstruction : sessionStorage.getItem('order-instruction') !== null ? sessionStorage.getItem('order-instruction') : '');\r\n\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n sessionStorage.setItem('user-addressId', addressId)\r\n this.props.history.push('/chooseaddress' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n };\r\n\r\n handleChooseAddrss() {\r\n // Special Instruction Saved \r\n sessionStorage.setItem(\"order-instruction\", this.state.orderInstruction !== '' ? this.state.orderInstruction : sessionStorage.getItem('order-instruction') !== null ? sessionStorage.getItem('order-instruction') : '');\r\n\r\n if (guestLoggedIn === \"false\") {\r\n this.setState({ loading: true });\r\n sessionStorage.setItem(\"login-page-session\", 9); // Address Session \r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/login' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n this.gotoAddressChoose(0);\r\n };\r\n\r\n showMessage(msg, type) {\r\n\r\n window.scrollTo(0, 0);\r\n this.setState({ msgShow: true });\r\n this.setState({ msgType: type });\r\n this.setState({ alertMessage: msg });\r\n this.setState({ loading: false });\r\n setTimeout(() => {\r\n this.setState({ msgShow: false });\r\n }, Config.minMsgTimeout);\r\n };\r\n\r\n // componentDidCatch(error, info) {\r\n // // Display fallback UI\r\n // this.setState({ hasError: true });\r\n // this.showMessage(error, \"danger\");\r\n // //console.log(error)\r\n // // You can also log the error to an error reporting service\r\n // //logErrorToMyService(error, info);\r\n // }\r\n\r\n render() {\r\n\r\n // totaltaxAmount = this.state.cartItemList.length > 0 ? taxList.reduce((prev, next) => prev + next.taxAmount, 0) : 0;\r\n // totaltaxAmount += this.state.cartItemList.length > 0 ? chargeList.reduce((prev, next) => prev + next.totalTaxAmount, 0) : 0;\r\n // totaltaxAmount += this.state.cartItemList.length > 0 ? modifierCartList.reduce((prev, next) => prev + next.totalTaxAmount, 0) : 0;\r\n // totalChargesAmount = this.state.cartItemList.length > 0 ? chargeList.reduce((prev, next) => prev + next.chargeAmount, 0) : 0;\r\n // totalChargesAmount += this.state.cartItemList.length > 0 ? modifierCartList.reduce((prev, next) => prev + next.totalChargeAmount, 0) : 0;\r\n // totalAmount = totalItemAmount + totaltaxAmount + totalChargesAmount;\r\n\r\n return (\r\n\r\n
    \r\n {this.state.loading && }\r\n
    \r\n {this.state.msgShow && }\r\n
    \r\n
    \r\n
    \r\n Checkout\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {sessionStorage.getItem(\"user-propertyname\")}\r\n {sessionStorage.getItem(\"user-outletname\")} - {sessionStorage.getItem(\"user-servicetype\") === \"FINE-DINE\" ? 'Table Service' : sessionStorage.getItem(\"user-servicetype\")}\r\n
    \r\n {serviceType === Config.serviceType.DELIVERY &&\r\n <>\r\n {(guestLoggedIn === \"true\" && guestCurrentAddress !== null) &&\r\n
    \r\n
    Delivery To {guestCurrentAddress.addressType}
    \r\n \r\n
    \r\n {guestName === '' && guestDetails.guestName}\r\n {guestName !== '' && guestName}\r\n
    \r\n {guestCurrentAddress.addressLine1} {guestCurrentAddress.addressLine2} {guestCurrentAddress.addressLine3}\r\n
    \r\n {guestCurrentAddress.area}\r\n
    \r\n {guestCurrentAddress.city} - {guestCurrentAddress.zipCode}
    \r\n {guestCurrentAddress.landmark.trim() !== '' && 'Landmark: ' + guestCurrentAddress.landmark}\r\n
    \r\n
    \r\n }\r\n {(guestLoggedIn === \"false\") &&\r\n
    \r\n
    \r\n We couldn't find your address. Please login and continue. Login\r\n {/* */}\r\n
    \r\n\r\n
    \r\n }\r\n {(guestLoggedIn === \"true\" && guestCurrentAddress === null) &&\r\n
    \r\n
    \r\n Choose Address\r\n {/* */}\r\n
    \r\n\r\n
    \r\n }\r\n \r\n }\r\n\r\n
    \r\n {\r\n this.state.cartItemList.map(itm =>\r\n\r\n
    \r\n
    \r\n
    \r\n {/* */}\r\n ₹{itm.rate.toFixed(2)}\r\n
    \r\n
    \r\n \r\n {/* {itm.isModifier === 1 && } */}\r\n {itm.qty}\r\n \r\n
    \r\n
    \r\n {/* ADD */}\r\n
    \r\n
    \r\n
    \r\n {itm.foodType === 1 && \"item\"}\r\n {itm.foodType === 2 && \"item\"}\r\n {itm.itemName.toLowerCase()}\r\n
    \r\n\r\n {/*
    \r\n 10 \r\n
    */}\r\n\r\n {/*
    \r\n Dark Chocolate Chunk\r\n
    */}\r\n
    \r\n
    \r\n
    \r\n {itm.isModifier === 1 &&\r\n this.state.modifierItemList.filter(x => x.uid === itm.uid).map((mitm, idx) =>\r\n
    \r\n
    \r\n
    \r\n
    \r\n ₹{mitm.rate.toFixed(2)}\r\n\r\n
    \r\n {mitm.foodType === 1 && \"item\"}\r\n {mitm.foodType === 2 && \"item\"}\r\n {mitm.modifierName}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n {(olDetail.enableSpecialInstruction) &&\r\n
    \r\n {(itm.specInsc === undefined || itm.specInsc === \"\") &&\r\n
    Add Special Instruction
    \r\n }\r\n {(itm.specInsc !== \"\" && itm.specInsc !== undefined) &&\r\n
    {itm.specInsc}
    \r\n }\r\n
    \r\n }\r\n
    \r\n\r\n
    \r\n\r\n\r\n )\r\n }\r\n
    \r\n {(olDetail.enableSpecialInstruction) &&\r\n
    \r\n this.handleInstrucChange(e)} className=\"instc\" id=\"input-bill-instruction\" placeholder=\"Write Suggestions to Restaurant?\" autoComplete=\"off\" value={this.state.orderInstruction} />\r\n
    \r\n }\r\n
    \r\n
    Bill Details
    \r\n
    Item Total₹{this.state.totalItemAmount.toFixed(2)}
    \r\n {/*
    Charges ₹27.00
    */}\r\n {/* Charges condtion Added by vijay on 04-02-2024 JIra id -2078 -Testing Points */}\r\n {this.state.totalChargesAmount !== 0 ? (\r\n
    Charges ₹{this.state.totalChargesAmount.toFixed(2)}
    \r\n ) : null}\r\n
    Tax₹{this.state.totaltaxAmount.toFixed(2)}\r\n {this.state.roundOff !== 0 &&
    RoundOff ₹{this.state.roundOff.toFixed(2)}
    }\r\n
    \r\n\r\n\r\n\r\n
    To Pay₹{this.state.totalNetAmount.toFixed(2)}
    \r\n\r\n
    \r\n\r\n {/*
    \r\n
    \r\n \r\n \r\n Pay & Place Order\r\n
    \r\n
    */}\r\n\r\n
    \r\n {orderCheckoutType === enmConfig.orderCheckOutType.placeOrder &&\r\n\r\n
    \r\n \r\n \"lucid-place-order\"\r\n Place Order\r\n
    \r\n }\r\n {orderCheckoutType === enmConfig.orderCheckOutType.paynPlaceOrder &&\r\n\r\n
    \r\n \r\n \"lucid-rupee\"\r\n Pay & Place Order\r\n
    \r\n }\r\n\r\n {orderCheckoutType === enmConfig.orderCheckOutType.both &&\r\n
    \r\n
    \r\n \r\n \"lucid-place-order\"\r\n Place Order\r\n
    \r\n\r\n
    \r\n \r\n \"lucid-rupee\"\r\n\r\n Pay & Place Order\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 from 'react';\r\nimport PropTypes from 'prop-types';\r\nconst Radio = ({ type = 'radio', name, id, checked, onChange, value }) => (\r\n \r\n);\r\n\r\nRadio.propTypes = {\r\n type: PropTypes.string,\r\n name: PropTypes.string.isRequired,\r\n id: PropTypes.string.isRequired,\r\n checked: PropTypes.bool,\r\n onChange: PropTypes.func.isRequired,\r\n value: PropTypes.string\r\n}\r\n\r\nexport default Radio;","import React, { Component, Fragment } from 'react';\r\nimport './payment.scss';\r\n//import LoadingAnimation from '../../components/loadinganimation/paymentloading';\r\nimport LoadingAnimation from '../../components/loadinganimation';\r\nimport Config from '../../data/SiteConfig';\r\nimport ErrorAlert from '../../components/alertmessages';\r\nimport { isMobile } from 'react-device-detect';\r\nimport sHelpers from '../../modules/helpers/statichelpers';\r\n//import GooglePayButton from '@google-pay/button-react';\r\n\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport 'react-confirm-alert/src/react-confirm-alert.css'; // Import css\r\nimport Radio from '../../components/radionbutton/radiobutton';\r\nconst podImg = '/img/payment/lucid-pod.png';\r\nlet mobileNo = '';\r\nlet token = '';\r\nlet tableNo = '';\r\nlet serviceType = '';\r\nlet orgnationTd = '';\r\nlet propertyId = '';\r\nlet outletCode = '';\r\nlet olDetail = {};\r\nlet outletDetails = null;\r\nlet mainGuestMobileNo = '';\r\nlet urlPattern = '';\r\n// const paymentMethods = [\r\n// {\r\n// type: 'CARD',\r\n// parameters: {\r\n// allowedAuthMethods: ['PAN_ONLY', 'CRYPTOGRAM_3DS'],\r\n// allowedCardNetworks: ['AMEX', 'DISCOVER', 'INTERAC', 'JCB', 'MASTERCARD', 'VISA']\r\n// },\r\n// tokenizationSpecification: {\r\n// type: 'PAYMENT_GATEWAY',\r\n// parameters: {\r\n// // 'gateway': 'stripe',\r\n// // 'stripe:version': '2019-03-14',\r\n// // 'stripe:publishableKey': ''\r\n// gateway: 'example',\r\n// gatewayMerchantId: 'exampleGatewayMerchantId'\r\n// }\r\n// }\r\n// },\r\n// {\r\n// type: 'PAYPAL',\r\n// parameters: {\r\n// 'purchase_context': {\r\n// 'purchase_units': [{\r\n// 'payee': {\r\n// 'merchant_id': 'BCR2DN6TV77ITYBK'\r\n// }\r\n// }]\r\n// }\r\n// },\r\n// tokenizationSpecification: {\r\n// type: 'DIRECT'\r\n// }\r\n// }\r\n// ]\r\nexport default class Payment extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.goBack = this.goBack.bind(this);\r\n this.gotoThirdParty = this.gotoThirdParty.bind(this);\r\n this.handlePrepaidCardBalance = this.handlePrepaidCardBalance.bind(this);\r\n this.gotoPrepaidCardVerification = this.gotoPrepaidCardVerification.bind(this);\r\n this.state = {\r\n\r\n cartValue: 1500,\r\n paymentList: [\r\n { vendorId: 3, vendorName: \"Razorpay\", imgUrl: \"/img/payment/razorpay.png\" },\r\n { vendorId: 2, vendorName: \"Instamojo\", imgUrl: \"/img/payment/instamojo.png\" },\r\n // { paymentId: 2, paymentName: \"CCAvenue\", imgUrl: \"../assets/theme1/img/payment/ccavenue.png\" },\r\n // { paymentId: 3, paymentName: \"Paytm\", imgUrl: \"../assets/theme1/img/payment/paytm.png\" },\r\n // { paymentId: 4, paymentName: \"GPay\", imgUrl: \"../assets/theme1/img/payment/gpay.png\" },\r\n // { paymentId: 5, paymentName: \"PhonePe\", imgUrl: \"../assets/theme1/img/payment/phonepe.png\" },\r\n ],\r\n onlineWalletVendorsList: [\r\n { vendorId: 1, vendorName: \"LUCID Prepaid Card\", imgUrl: \"/img/payment/lucid-prepadicard.png\" }\r\n ],\r\n loading: false,\r\n alertMessage: '',\r\n msgShow: false,\r\n totalItems: 0,\r\n totalNetAmount: 0,\r\n vendorKey: '',\r\n vendorTransactionId: '',\r\n vendorOrderId: '',\r\n paymentVendorLogo: '',\r\n prepaidCardBalance: 0,\r\n radiostatus: 0,\r\n selected: 'radio-0'\r\n }\r\n this.handlePayOnRadioChange = this.handlePayOnRadioChange.bind(this);\r\n }\r\n\r\n componentWillMount() {\r\n\r\n if (Config.IsMobileAccess) {\r\n if (!isMobile) {\r\n this.props.history.push('/deviceerror' + urlPattern);\r\n return false;\r\n }\r\n }\r\n\r\n mobileNo = sessionStorage.getItem('user-mobileno');\r\n token = sessionStorage.getItem('user-token');\r\n tableNo = sessionStorage.getItem('user-tableno');\r\n serviceType = sessionStorage.getItem('user-servicetype');\r\n orgnationTd = sessionStorage.getItem('user-orgnationid');\r\n propertyId = sessionStorage.getItem('user-propertyid');\r\n outletCode = sessionStorage.getItem('user-outletcode');\r\n outletDetails = sessionStorage.getItem('user-outletDetails');\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n mainGuestMobileNo = sessionStorage.getItem('main-guest-no') == null ? '' : sessionStorage.getItem('main-guest-no');\r\n // console.log(mobileNo);\r\n // console.log(token);\r\n // console.log(tableNo);\r\n // console.log(serviceType);\r\n // console.log(orgnationTd);\r\n // console.log(propertyId);\r\n // console.log(outletCode);\r\n\r\n const sessionDt = sessionStorage.getItem(\"u-l-v-url-dt\");\r\n if (!sessionDt) {\r\n this.props.history.push('/sessionerror' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (!urlPattern) {\r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n if (token === undefined || token === \"\" || token === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (mobileNo === undefined || mobileNo === \"\" || mobileNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (tableNo === undefined || tableNo === \"\" || tableNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (serviceType === undefined || serviceType === \"\" || serviceType === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (orgnationTd === undefined || orgnationTd === \"\" || orgnationTd === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (propertyId === undefined || propertyId === \"\" || propertyId === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (outletCode === undefined || outletCode === \"\" || outletCode === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (outletDetails === undefined || outletDetails === \"\" || outletDetails === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n else {\r\n olDetail = JSON.parse(outletDetails);\r\n this.setState({ paymentVendorLogo: olDetail.outletImageUrl !== '' ? olDetail.outletImageUrl : \"https://cdn.razorpay.com/logos/BUVwvgaqVByGp2_large.png\" });\r\n if (olDetail.paymentVendors.length === 1 && olDetail.onlineWalletVendors.length === 0) // Single Vendor to direct\r\n this.gotoThirdParty(olDetail.paymentVendors[0].vendorId, olDetail.paymentVendors[0].vendorName);\r\n }\r\n\r\n /// Session Validation for Fine Dine\r\n if (serviceType === \"FINE-DINE\") {\r\n if (!sHelpers.sessionValidation()) {\r\n this.showMessage(\"Your session has expired, please scan once again\", \"danger\");\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/logout' + urlPattern);\r\n }, 3000);\r\n return false;\r\n }\r\n }\r\n\r\n if (sessionStorage.getItem(\"cartList\") === null) {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/items' + urlPattern);\r\n }, 800);\r\n }\r\n\r\n\r\n // Validate Vendor Order Id ()\r\n if (sessionStorage.getItem('user-vendorOrderId') === undefined || sessionStorage.getItem('user-vendorOrderId') === null || sessionStorage.getItem('user-vendorOrderId') === '') {\r\n this.setState({ loading: false });\r\n this.props.history.push('/cart' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (this.props.location.state !== undefined) {\r\n\r\n if (this.props.location.state.totalNetAmount === undefined || this.props.location.state.totalNetAmount === null || this.props.location.state.totalNetAmount === 0) {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/items' + urlPattern);\r\n }, 2000);\r\n }\r\n else {\r\n\r\n this.setState({\r\n totalItems: this.props.location.state.totalItems,\r\n totalNetAmount: this.props.location.state.totalNetAmount\r\n })\r\n }\r\n }\r\n else {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/items' + urlPattern);\r\n }, 2000);\r\n }\r\n window.scrollTo(0, 0);\r\n\r\n sessionStorage.removeItem('proceed-pod');\r\n }\r\n loadPaymentDataHandler = paymentData => {\r\n const paymentToken = paymentData.paymentMethodData.tokenizationData.token\r\n console.log(paymentToken);\r\n }\r\n submitClick = (e) => {\r\n e.preventDefault();\r\n\r\n // e.preventDefault();\r\n e.click();\r\n //this.inputElement.click();\r\n }\r\n\r\n goBack() {\r\n //this.props.history.goBack();\r\n this.props.history.push('/cart' + urlPattern);\r\n }\r\n gotoThirdParty(vendorId, vendorName) {\r\n\r\n // Validate Vendor Order Id ()\r\n if (sessionStorage.getItem('user-vendorOrderId') === undefined || sessionStorage.getItem('user-vendorOrderId') === null || sessionStorage.getItem('user-vendorOrderId') === '') {\r\n this.setState({ loading: false });\r\n this.showMessage('OOPS! Initial transaction failed. Please try again', \"danger\");\r\n setTimeout(() => {\r\n this.props.history.push('/cart' + urlPattern);\r\n }, 1500);\r\n\r\n return false;\r\n }\r\n\r\n // e.preventDefault();\r\n this.setState({ loading: true });\r\n\r\n setTimeout(() => {\r\n var postObj = {\r\n OutletId: propertyId + outletCode,\r\n PaymentVendorId: vendorId,\r\n Amount: this.state.totalNetAmount.toFixed(2),\r\n GuestName: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n MobileNoCountryCode: \"91\",\r\n // MobileNo: mainGuestMobileNo,\r\n MobileNo: (mainGuestMobileNo === '' || mainGuestMobileNo === \"0000000000\") ? mobileNo : mainGuestMobileNo,\r\n EmailId: \"\",\r\n OrderId: \"\",\r\n BillId: \"\",\r\n RedirectUrl: Config.redirectUrl\r\n }\r\n\r\n // console.log(postObj);\r\n // API Call\r\n fetch(Config.basePaymentUrl + 'InitiateOnlinePayment', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.errorCode === 0) {\r\n setTimeout(() => {\r\n sessionStorage.setItem(\"paymentInitiatedId\", response.response.paymentInitiatedId);\r\n sessionStorage.setItem(\"vendorTransactionId\", response.response.vendorTransactionId);\r\n sessionStorage.setItem(\"vendorId\", vendorId);\r\n sessionStorage.setItem(\"vendorName\", vendorName);\r\n sessionStorage.setItem(\"paymentStatus\", response.response.status);\r\n if (vendorId === 2) { // instamojo \r\n window.location.href = response.response.vendorRedirectUrl;\r\n sessionStorage.setItem('redirect-page', \"paymentverification\");\r\n }\r\n else if (vendorId === 3) { // Razor Pay\r\n this.setState({\r\n vendorTransactionId: response.response.vendorTransactionId,\r\n vendorKey: response.response.vendorKey\r\n })\r\n setTimeout(() => {\r\n sessionStorage.setItem('redirect-page', \"paymentverification\");\r\n this.inputElement.click();\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n this.setState({ loading: true });\r\n this.showMessage('OOPS! Initial transaction failed. Please try again', \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/cart' + urlPattern); }, Config.averageMsgTimeout);\r\n }\r\n\r\n //window.location.href =\"https://www.instamojo.com/@gatewayofficeparks/c57b613d098242c4adf6893321a78b35\";\r\n // this.props.history.push('/paymentVerification?payment_status=Failed');\r\n }, 2000);\r\n }\r\n else {\r\n // console.log(response.message);\r\n this.setState({ loading: true });\r\n this.showMessage('OOPS! Initial transaction failed [' + response.message + ']. Please try again', \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/cart' + urlPattern); }, Config.averageMsgTimeout);\r\n }\r\n })\r\n .catch(err => {\r\n // console.log(err);\r\n this.setState({ loading: true });\r\n this.showMessage('OOPS! Initial transaction failed. Please try again', \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/cart' + urlPattern); }, Config.averageMsgTimeout);\r\n });\r\n }, Config.minMsgTimeout);\r\n }\r\n\r\n handlePrepaidCardBalance(vendorId, vendorName, rowId) {\r\n this.setState({ loading: true });\r\n // this.handleMultiPrepaidCardAccountBalance(vendorId, []);\r\n\r\n var postObj = {\r\n OutletId: propertyId + outletCode,\r\n VendorId: vendorId,\r\n // GuestMobileNo: mainGuestMobileNo Commended by on 08-11-2023\r\n // Added by on 08-11-2023\r\n GuestMobileNo: (mainGuestMobileNo === '' || mainGuestMobileNo === \"0000000000\") ? mobileNo : mainGuestMobileNo,\r\n }\r\n // console.log(postObj);\r\n // API Call\r\n fetch(Config.basePOSUrl + 'GetGuestOnlineWalletDetails', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.errorCode === 0) {\r\n if (response.response != null) {\r\n let activeCardList = response.response.walletDetails.filter(c => c.remarks === \"Card is Valid\");\r\n if (activeCardList.length > 0) {\r\n this.setState({ loading: false });\r\n confirmAlert({\r\n customUI: ({ onClose }) => {\r\n return (\r\n
    \r\n
    Select card to pay
    \r\n
    {this.state.totalItems} items, To pay: ₹{this.state.totalNetAmount.toFixed(2)}
    \r\n
      \r\n {\r\n activeCardList.map((acc, idx) =>\r\n
    • \r\n {acc.availableBalance > this.state.totalNetAmount &&\r\n
      \r\n {acc.accountId}Pay\r\n Wallet Balance ₹{acc.availableBalance} \r\n
      \r\n }\r\n {acc.availableBalance < this.state.totalNetAmount &&\r\n
      \r\n {acc.accountId}\r\n Insufficient Wallet Balance ₹{acc.availableBalance} \r\n
      \r\n }\r\n
    • \r\n )\r\n }\r\n\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n });\r\n }\r\n // else if (activeCardList.length === 1) {\r\n // const payclick = document.getElementById(\"\" + rowId + \"\");\r\n // payclick.innerHTML = 'Pay ₹' + activeCardList[0].availableBalance + ''; //'Pay ₹' + activeCardList[0].availableBalance + '';\r\n // // payclick.onClick(this.gotoPrepaidCardVerification.bind(this, vendorId, vendorName, activeCardList[0].accountId, null));\r\n // //document.getElementById(\"\" + rowId + \"\").innerHTML = this.SingleCardPayDom(vendorId, vendorName, activeCardList[0].accountId, activeCardList[0].availableBalance); // 'Pay ₹' + activeCardList[0].availableBalance + '';\r\n // }\r\n else {\r\n this.showMessage('OOPS! Card detail is not available', \"danger\");\r\n }\r\n }\r\n }\r\n else {\r\n //console.log(response.message);\r\n //this.showMessage('OOPS! Get Balance failed [' + response.message + ']. Please try again', \"danger\");\r\n this.showMessage(response.message, \"danger\");\r\n }\r\n this.setState({ loading: false });\r\n })\r\n .catch(err => {\r\n //console.log(err);\r\n this.setState({ loading: false });\r\n this.showMessage('OOPS! Get Balance failed. Please try again', \"danger\");\r\n });\r\n }\r\n\r\n gotoPrepaidCardVerification(vendorId, vendorName, accountId, close) {\r\n if (close != null) close();\r\n this.setState({ loading: true });\r\n if (sessionStorage.getItem('user-vendorOrderId') === undefined || sessionStorage.getItem('user-vendorOrderId') === null || sessionStorage.getItem('user-vendorOrderId') === '') {\r\n this.setState({ loading: false });\r\n this.showMessage('OOPS! Initial transaction failed. Please try again', \"danger\");\r\n setTimeout(() => {\r\n this.props.history.push('/cart' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n\r\n return false;\r\n }\r\n\r\n sessionStorage.setItem(\"vendorId\", vendorId);\r\n sessionStorage.setItem(\"vendorName\", vendorName);\r\n sessionStorage.setItem(\"prepaidCardAccountId\", accountId);\r\n\r\n setTimeout(() => {\r\n this.props.history.push('/prepaidcardverification' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n\r\n }\r\n\r\n handlePayOnDelivery() {\r\n sessionStorage.setItem(\"payonDeliveryMode\", '');\r\n this.setState({ loading: true });\r\n if (olDetail.payOnDeliveryModes.length > 0) {\r\n this.setState({ loading: false });\r\n confirmAlert({\r\n customUI: ({ onClose }) => {\r\n return (\r\n
    \r\n
    Pay On Delivery Mode
    \r\n
    {this.state.totalItems} items, To pay: ₹{this.state.totalNetAmount.toFixed(2)}
    \r\n
      \r\n {\r\n olDetail.payOnDeliveryModes.map((acc, idx) =>\r\n
    • \r\n\r\n
      \r\n \r\n
      \r\n\r\n
    • \r\n )\r\n }\r\n\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n });\r\n\r\n setTimeout(() => {\r\n document.getElementById('pay-mode-chk-' + 0).setAttribute('checked', true);\r\n let val = document.getElementById('pay-mode-chk-' + 0).value;\r\n sessionStorage.setItem(\"payonDeliveryMode\", val);\r\n }, Config.minMsgTimeout);\r\n }\r\n }\r\n\r\n handlePayOnRadioChange(e, value) {\r\n sessionStorage.setItem(\"payonDeliveryMode\", value);\r\n // console.log(sessionStorage.getItem('payonDeliveryMode'));\r\n }\r\n\r\n gotoClosePayOnDelivery(close) {\r\n if (close != null) close();\r\n sessionStorage.setItem(\"payonDeliveryMode\", '');\r\n }\r\n gotoProceedPayOnDelivery(close) {\r\n this.setState({ loading: true });\r\n if (sessionStorage.getItem('payonDeliveryMode') === undefined || sessionStorage.getItem('payonDeliveryMode') === null || sessionStorage.getItem('payonDeliveryMode') === '') {\r\n if (close != null) close();\r\n this.setState({ loading: false });\r\n this.showMessage('OOPS! Initial transaction failed. Please try again', \"danger\");\r\n setTimeout(() => {\r\n this.props.history.push('/cart' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n\r\n return false;\r\n }\r\n\r\n if (close != null) close();\r\n sessionStorage.setItem('proceed-pod', true);\r\n setTimeout(() => {\r\n this.props.history.push('/payondeliveryverification' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n\r\n showMessage(msg, type) {\r\n window.scrollTo(0, 0);\r\n this.setState({ msgShow: true });\r\n this.setState({ msgType: type });\r\n this.setState({ alertMessage: msg });\r\n this.setState({ loading: false });\r\n setTimeout(() => {\r\n this.setState({ msgShow: false });\r\n }, Config.minMsgTimeout);\r\n };\r\n\r\n render() {\r\n return (\r\n
    {this.state.loading && }\r\n
    \r\n {this.state.msgShow && }\r\n
    \r\n
    \r\n
    \r\n Payments\r\n {this.state.totalItems} items, To pay: ₹{this.state.totalNetAmount.toFixed(2)} \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n this.state.paymentList.map((pay, i) => {\r\n return (\r\n \r\n {\r\n (olDetail.paymentVendors.length > 1 || olDetail.onlineWalletVendors.length > 0) &&\r\n olDetail.paymentVendors.filter(x => x.vendorId === pay.vendorId).length > 0 &&\r\n
    \"\"{pay.vendorName}
    \r\n }\r\n
    \r\n\r\n );\r\n })\r\n }\r\n {\r\n this.state.onlineWalletVendorsList.map((pay, i) => {\r\n return (\r\n \r\n {\r\n // olDetail.paymentVendors.length > 1 &&\r\n olDetail.onlineWalletVendors.filter(x => x.vendorId === pay.vendorId).length > 0 &&\r\n
    \"\"{pay.vendorName}
    \r\n }\r\n
    \r\n\r\n );\r\n })\r\n }\r\n {\r\n /* Pay on Delivery */\r\n\r\n (olDetail.enablePayOnDelivery && serviceType === Config.serviceType.DELIVERY &&\r\n
    \"lucid-pay-on-Pay On Delivery
    \r\n )\r\n\r\n }\r\n {\r\n (olDetail.paymentVendors.length === 1 && olDetail.onlineWalletVendors.length === 0) &&
    Please wait...
    \r\n //
    \r\n // {\r\n // console.log('load payment data', paymentRequest);\r\n // }}\r\n // onPaymentAuthorized={paymentRequest => {\r\n // console.log('load payment data', paymentRequest);\r\n // // setTimeout(() => {\r\n // // this.setState({ loading: false });\r\n // // this.props.history.push('/gpaysuccess');\r\n // // }, 2000);\r\n // return { transaction: \"success\", }\r\n\r\n // }}\r\n // onCancel={paymentRequest => {\r\n // console.log('load cancel data', paymentRequest);\r\n // }}\r\n // onError={paymentRequest => {\r\n // console.log('load error data', paymentRequest);\r\n // }}\r\n // onReadyToPayChange={paymentRequest => {\r\n // console.log('ready to data', paymentRequest);\r\n // }}\r\n // existingPaymentMethodRequired='false'\r\n // buttonColor='white'\r\n // buttonType='buy'\r\n // buttonSizeMode='fill'\r\n // style={{ color: \"#ddd\" }}\r\n // />\r\n\r\n //
    \r\n\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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, { Component } from 'react';\r\nimport './payment.scss';\r\n//import LoadingAnimation from '../../components/loadinganimation/paymentloading';\r\nimport LoadingAnimation from '../../components/loadinganimation';\r\nimport Config from '../../data/SiteConfig';\r\nimport ErrorAlert from '../../components/alertmessages';\r\nimport { isMobile } from 'react-device-detect';\r\nimport CartCalCulation from '../../modules/cart/cartcalculation';\r\nimport sHelpers from '../../modules/helpers/statichelpers';\r\n//import GooglePayButton from '@google-pay/button-react';\r\n\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport 'react-confirm-alert/src/react-confirm-alert.css'; // Import css\r\nimport Radio from '../../components/radionbutton/radiobutton';\r\n//const podImg = '../assets/theme1/img/payment/lucid-pod.png';\r\nlet mobileNo = '';\r\nlet token = '';\r\nlet tableNo = '';\r\nlet serviceType = '';\r\nlet orgnationTd = '';\r\nlet propertyId = '';\r\nlet outletCode = '';\r\nlet olDetail = {};\r\nlet outletDetails = null;\r\nlet mainGuestMobileNo = '';\r\n//let paymentInitiatedId = '';\r\nlet vendorTransactionId = '';\r\n//let vendorId = '';\r\n//let vendorName = '';\r\nlet orderInstruction = '';\r\n//let paymentStatus = 'NONE';\r\nlet cartList = {};\r\nlet modifierCartList = [];\r\nlet taxList = [];\r\nlet chargeList = [];\r\nlet orderChargeList = [];\r\nlet _uniquesGroups = [];\r\nlet totalItemAmount = 0;\r\nlet totalItemTaxAmount = 0;\r\nlet totalItemChargesAmount = 0;\r\n\r\n//let totalItems = 0;\r\nlet totalChargesAmount = 0;\r\nlet totalTaxAmount = 0;\r\nlet totalAmount = 0;\r\nlet vendorOrderId = '';\r\nlet guestCurrentAddress = null;\r\nlet urlPattern = '';\r\n// const paymentMethods = [\r\n// {\r\n// type: 'CARD',\r\n// parameters: {\r\n// allowedAuthMethods: ['PAN_ONLY', 'CRYPTOGRAM_3DS'],\r\n// allowedCardNetworks: ['AMEX', 'DISCOVER', 'INTERAC', 'JCB', 'MASTERCARD', 'VISA']\r\n// },\r\n// tokenizationSpecification: {\r\n// type: 'PAYMENT_GATEWAY',\r\n// parameters: {\r\n// // 'gateway': 'stripe',\r\n// // 'stripe:version': '2019-03-14',\r\n// // 'stripe:publishableKey': ''\r\n// gateway: 'example',\r\n// gatewayMerchantId: 'exampleGatewayMerchantId'\r\n// }\r\n// }\r\n// },\r\n// {\r\n// type: 'PAYPAL',\r\n// parameters: {\r\n// 'purchase_context': {\r\n// 'purchase_units': [{\r\n// 'payee': {\r\n// 'merchant_id': 'BCR2DN6TV77ITYBK'\r\n// }\r\n// }]\r\n// }\r\n// },\r\n// tokenizationSpecification: {\r\n// type: 'DIRECT'\r\n// }\r\n// }\r\n// ]\r\nexport default class PaymentQR extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.goBack = this.goBack.bind(this);\r\n this.gotoThirdParty = this.gotoThirdParty.bind(this);\r\n this.handlePrepaidCardBalance = this.handlePrepaidCardBalance.bind(this);\r\n this.gotoPrepaidCardVerification = this.gotoPrepaidCardVerification.bind(this);\r\n this.state = {\r\n\r\n cartValue: 1500,\r\n paymentList: [\r\n { vendorId: 3, vendorName: \"Razorpay\", imgUrl: \"/img/payment/razorpay.png\" },\r\n { vendorId: 2, vendorName: \"Instamojo\", imgUrl: \"/img/payment/instamojo.png\" },\r\n // { paymentId: 2, paymentName: \"CCAvenue\", imgUrl: \"../assets/theme1/img/payment/ccavenue.png\" },\r\n // { paymentId: 3, paymentName: \"Paytm\", imgUrl: \"../assets/theme1/img/payment/paytm.png\" },\r\n // { paymentId: 4, paymentName: \"GPay\", imgUrl: \"../assets/theme1/img/payment/gpay.png\" },\r\n // { paymentId: 5, paymentName: \"PhonePe\", imgUrl: \"../assets/theme1/img/payment/phonepe.png\" },\r\n ],\r\n onlineWalletVendorsList: [\r\n { vendorId: 1, vendorName: \"LUCID Prepaid Card\", imgUrl: \"/img/payment/lucid-prepadicard.png\" }\r\n ],\r\n loading: false,\r\n alertMessage: '',\r\n msgShow: false,\r\n totalItems: 0,\r\n totalNetAmount: 0,\r\n vendorKey: '',\r\n vendorTransactionId: '',\r\n vendorOrderId: '',\r\n paymentVendorLogo: '',\r\n prepaidCardBalance: 0,\r\n radiostatus: 0,\r\n selected: 'radio-0'\r\n }\r\n this.handlePayOnRadioChange = this.handlePayOnRadioChange.bind(this);\r\n }\r\n\r\n componentWillMount() {\r\n if (Config.IsMobileAccess) {\r\n if (!isMobile) {\r\n this.props.history.push('/deviceerror' + urlPattern);\r\n return false;\r\n }\r\n }\r\n mobileNo = sessionStorage.getItem('user-mobileno');\r\n token = sessionStorage.getItem('user-token');\r\n tableNo = sessionStorage.getItem('user-tableno');\r\n serviceType = sessionStorage.getItem('user-servicetype');\r\n orgnationTd = sessionStorage.getItem('user-orgnationid');\r\n propertyId = sessionStorage.getItem('user-propertyid');\r\n outletCode = sessionStorage.getItem('user-outletcode');\r\n outletDetails = sessionStorage.getItem('user-outletDetails');\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n mainGuestMobileNo = sessionStorage.getItem('main-guest-no') == null ? '' : sessionStorage.getItem('main-guest-no');\r\n // console.log(mobileNo);\r\n // console.log(token);\r\n // console.log(tableNo);\r\n // console.log(serviceType);\r\n // console.log(orgnationTd);\r\n // console.log(propertyId);\r\n // console.log(outletCode);\r\n const sessionDt = sessionStorage.getItem(\"u-l-v-url-dt\");\r\n if (!sessionDt) {\r\n this.props.history.push('/sessionerror' + urlPattern);\r\n return false;\r\n }\r\n \r\n if (!urlPattern) { \r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n if (token === undefined || token === \"\" || token === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (mobileNo === undefined || mobileNo === \"\" || mobileNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (tableNo === undefined || tableNo === \"\" || tableNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (serviceType === undefined || serviceType === \"\" || serviceType === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (orgnationTd === undefined || orgnationTd === \"\" || orgnationTd === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (propertyId === undefined || propertyId === \"\" || propertyId === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (outletCode === undefined || outletCode === \"\" || outletCode === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (outletDetails === undefined || outletDetails === \"\" || outletDetails === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n else {\r\n olDetail = JSON.parse(outletDetails);\r\n this.setState({ paymentVendorLogo: olDetail.outletImageUrl !== '' ? olDetail.outletImageUrl : \"https://cdn.razorpay.com/logos/BUVwvgaqVByGp2_large.png\" });\r\n }\r\n\r\n /// Session Validation for Fine Dine\r\n if (serviceType === \"FINE-DINE\") {\r\n if (!sHelpers.sessionValidation()) {\r\n this.showMessage(\"Your session has expired, please scan once again\", \"danger\");\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/logout' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n }\r\n\r\n if (sessionStorage.getItem(\"cartList\") === null) {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/items' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n\r\n\r\n // Validate Vendor Order Id ()\r\n if (sessionStorage.getItem('user-vendorOrderId') === undefined || sessionStorage.getItem('user-vendorOrderId') === null || sessionStorage.getItem('user-vendorOrderId') === '') {\r\n this.setState({ loading: false });\r\n this.props.history.push('/cart' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (this.props.location.state !== undefined) {\r\n\r\n if (this.props.location.state.totalNetAmount === undefined || this.props.location.state.totalNetAmount === null || this.props.location.state.totalNetAmount === 0) {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/items' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n\r\n this.setState({\r\n totalItems: this.props.location.state.totalItems,\r\n totalNetAmount: this.props.location.state.totalNetAmount\r\n })\r\n }\r\n }\r\n else {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/items' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n window.scrollTo(0, 0);\r\n\r\n sessionStorage.removeItem('proceed-pod');\r\n }\r\n\r\n componentDidMount() {\r\n taxList = sessionStorage.getItem(\"taxCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"taxCartList\"));\r\n modifierCartList = sessionStorage.getItem(\"modifierCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"modifierCartList\"));\r\n chargeList = sessionStorage.getItem(\"chargeCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"chargeCartList\"));\r\n cartList = sessionStorage.getItem(\"cartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"cartList\"));\r\n\r\n // setTimeout(() => {\r\n // //this.handlePlaceOrder();\r\n // }, 2500);\r\n\r\n\r\n }\r\n\r\n loadPaymentDataHandler = paymentData => {\r\n const paymentToken = paymentData.paymentMethodData.tokenizationData.token\r\n console.log(paymentToken);\r\n }\r\n submitClick = (e) => {\r\n e.preventDefault();\r\n\r\n // e.preventDefault();\r\n e.click();\r\n //this.inputElement.click();\r\n }\r\n\r\n goBack() {\r\n //this.props.history.goBack();\r\n this.props.history.push('/cart' + urlPattern);\r\n }\r\n gotoThirdParty(vendorId, vendorName) {\r\n\r\n // Validate Vendor Order Id ()\r\n if (sessionStorage.getItem('user-vendorOrderId') === undefined || sessionStorage.getItem('user-vendorOrderId') === null || sessionStorage.getItem('user-vendorOrderId') === '') {\r\n this.setState({ loading: false });\r\n this.showMessage('OOPS! Initial transaction failed. Please try again', \"danger\");\r\n setTimeout(() => {\r\n this.props.history.push('/cart' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n\r\n return false;\r\n }\r\n\r\n // e.preventDefault();\r\n this.setState({ loading: true });\r\n\r\n setTimeout(() => {\r\n var postObj = {\r\n OutletId: propertyId + outletCode,\r\n PaymentVendorId: vendorId,\r\n Amount: this.state.totalNetAmount.toFixed(2),\r\n GuestName: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n MobileNoCountryCode: \"91\",\r\n // MobileNo: mainGuestMobileNo,\r\n MobileNo: (mainGuestMobileNo === '' || mainGuestMobileNo === \"0000000000\") ? mobileNo : mainGuestMobileNo,\r\n EmailId: \"\",\r\n OrderId: \"\",\r\n BillId: \"\",\r\n RedirectUrl: Config.redirectUrl\r\n }\r\n\r\n // console.log(postObj);\r\n // API Call\r\n fetch(Config.basePaymentUrl + 'InitiateOnlinePayment', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.errorCode === 0) {\r\n setTimeout(() => {\r\n sessionStorage.setItem(\"paymentInitiatedId\", response.response.paymentInitiatedId);\r\n sessionStorage.setItem(\"vendorTransactionId\", response.response.vendorTransactionId);\r\n sessionStorage.setItem(\"vendorId\", vendorId);\r\n sessionStorage.setItem(\"vendorName\", vendorName);\r\n sessionStorage.setItem(\"paymentStatus\", response.response.status);\r\n if (vendorId === 2) { // instamojo \r\n window.location.href = response.response.vendorRedirectUrl;\r\n }\r\n else if (vendorId === 3) { // Razor Pay\r\n this.setState({\r\n vendorTransactionId: response.response.vendorTransactionId,\r\n vendorKey: response.response.vendorKey\r\n })\r\n setTimeout(() => {\r\n this.inputElement.click();\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n this.setState({ loading: true });\r\n this.showMessage('OOPS! Initial transaction failed. Please try again', \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/cart' + urlPattern); }, Config.averageMsgTimeout);\r\n }\r\n\r\n //window.location.href =\"https://www.instamojo.com/@gatewayofficeparks/c57b613d098242c4adf6893321a78b35\";\r\n // this.props.history.push('/paymentVerification?payment_status=Failed');\r\n }, 2000);\r\n }\r\n else {\r\n // console.log(response.message);\r\n this.setState({ loading: true });\r\n this.showMessage('OOPS! Initial transaction failed [' + response.message + ']. Please try again', \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/cart' + urlPattern); }, Config.averageMsgTimeout);\r\n }\r\n })\r\n .catch(err => {\r\n // console.log(err);\r\n this.setState({ loading: true });\r\n this.showMessage('OOPS! Initial transaction failed. Please try again', \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/cart' + urlPattern); }, Config.averageMsgTimeout);\r\n });\r\n }, Config.averageMsgTimeout);\r\n }\r\n\r\n handlePrepaidCardBalance(vendorId, vendorName, rowId) {\r\n this.setState({ loading: true });\r\n // this.handleMultiPrepaidCardAccountBalance(vendorId, []);\r\n\r\n var postObj = {\r\n OutletId: propertyId + outletCode,\r\n VendorId: vendorId,\r\n // GuestMobileNo: mainGuestMobileNo\r\n GuestMobileNo: (mainGuestMobileNo === '' || mainGuestMobileNo === \"0000000000\") ? mobileNo : mainGuestMobileNo,\r\n }\r\n // console.log(postObj);\r\n // API Call\r\n fetch(Config.basePOSUrl + 'GetGuestOnlineWalletDetails', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.errorCode === 0) {\r\n if (response.response != null) {\r\n let activeCardList = response.response.walletDetails.filter(c => c.remarks === \"Card is Valid\");\r\n if (activeCardList.length > 0) {\r\n this.setState({ loading: false });\r\n confirmAlert({\r\n customUI: ({ onClose }) => {\r\n return (\r\n
    \r\n
    Select card to pay
    \r\n
    {this.state.totalItems} items, To pay: ₹{this.state.totalNetAmount.toFixed(2)}
    \r\n
      \r\n {\r\n activeCardList.map((acc, idx) =>\r\n
    • \r\n {acc.availableBalance > this.state.totalNetAmount &&\r\n
      \r\n {acc.accountId}Pay\r\n Wallet Balance ₹{acc.availableBalance} \r\n
      \r\n }\r\n {acc.availableBalance < this.state.totalNetAmount &&\r\n
      \r\n {acc.accountId}\r\n Insufficient Wallet Balance ₹{acc.availableBalance} \r\n
      \r\n }\r\n
    • \r\n )\r\n }\r\n\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n });\r\n }\r\n // else if (activeCardList.length === 1) {\r\n // const payclick = document.getElementById(\"\" + rowId + \"\");\r\n // payclick.innerHTML = 'Pay ₹' + activeCardList[0].availableBalance + ''; //'Pay ₹' + activeCardList[0].availableBalance + '';\r\n // // payclick.onClick(this.gotoPrepaidCardVerification.bind(this, vendorId, vendorName, activeCardList[0].accountId, null));\r\n // //document.getElementById(\"\" + rowId + \"\").innerHTML = this.SingleCardPayDom(vendorId, vendorName, activeCardList[0].accountId, activeCardList[0].availableBalance); // 'Pay ₹' + activeCardList[0].availableBalance + '';\r\n // }\r\n else {\r\n this.showMessage('OOPS! Card detail is not available', \"danger\");\r\n }\r\n }\r\n }\r\n else {\r\n //console.log(response.message);\r\n //this.showMessage('OOPS! Get Balance failed [' + response.message + ']. Please try again', \"danger\");\r\n this.showMessage(response.message, \"danger\");\r\n }\r\n this.setState({ loading: false });\r\n })\r\n .catch(err => {\r\n //console.log(err);\r\n this.setState({ loading: false });\r\n this.showMessage('OOPS! Get Balance failed. Please try again', \"danger\");\r\n });\r\n }\r\n\r\n gotoPrepaidCardVerification(vendorId, vendorName, accountId, close) {\r\n if (close != null) close();\r\n this.setState({ loading: true });\r\n if (sessionStorage.getItem('user-vendorOrderId') === undefined || sessionStorage.getItem('user-vendorOrderId') === null || sessionStorage.getItem('user-vendorOrderId') === '') {\r\n this.setState({ loading: false });\r\n this.showMessage('OOPS! Initial transaction failed. Please try again', \"danger\");\r\n setTimeout(() => {\r\n this.props.history.push('/cart' + urlPattern);\r\n }, Config.averageMsgTimeout);\r\n\r\n return false;\r\n }\r\n\r\n sessionStorage.setItem(\"vendorId\", vendorId);\r\n sessionStorage.setItem(\"vendorName\", vendorName);\r\n sessionStorage.setItem(\"prepaidCardAccountId\", accountId);\r\n\r\n setTimeout(() => {\r\n this.props.history.push('/prepaidcardverification' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n\r\n }\r\n\r\n handlePayOnDelivery() {\r\n sessionStorage.setItem(\"payonDeliveryMode\", '');\r\n this.setState({ loading: true });\r\n if (olDetail.payOnDeliveryModes.length > 0) {\r\n this.setState({ loading: false });\r\n confirmAlert({\r\n customUI: ({ onClose }) => {\r\n return (\r\n
    \r\n
    Pay On Delivery Mode
    \r\n
    {this.state.totalItems} items, To pay: ₹{this.state.totalNetAmount.toFixed(2)}
    \r\n
      \r\n {\r\n olDetail.payOnDeliveryModes.map((acc, idx) =>\r\n
    • \r\n\r\n
      \r\n \r\n
      \r\n\r\n
    • \r\n )\r\n }\r\n\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n });\r\n\r\n setTimeout(() => {\r\n document.getElementById('pay-mode-chk-' + 0).setAttribute('checked', true);\r\n let val = document.getElementById('pay-mode-chk-' + 0).value;\r\n sessionStorage.setItem(\"payonDeliveryMode\", val);\r\n }, Config.minMsgTimeout);\r\n }\r\n }\r\n\r\n handlePayOnRadioChange(e, value) {\r\n sessionStorage.setItem(\"payonDeliveryMode\", value);\r\n // console.log(sessionStorage.getItem('payonDeliveryMode'));\r\n }\r\n\r\n gotoClosePayOnDelivery(close) {\r\n if (close != null) close();\r\n sessionStorage.setItem(\"payonDeliveryMode\", '');\r\n }\r\n gotoProceedPayOnDelivery(close) {\r\n this.setState({ loading: true });\r\n if (sessionStorage.getItem('payonDeliveryMode') === undefined || sessionStorage.getItem('payonDeliveryMode') === null || sessionStorage.getItem('payonDeliveryMode') === '') {\r\n if (close != null) close();\r\n this.setState({ loading: false });\r\n this.showMessage('OOPS! Initial transaction failed. Please try again', \"danger\");\r\n setTimeout(() => {\r\n this.props.history.push('/cart' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n\r\n return false;\r\n }\r\n\r\n if (close != null) close();\r\n sessionStorage.setItem('proceed-pod', true);\r\n setTimeout(() => {\r\n this.props.history.push('/payondeliveryverification' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n\r\n showMessage(msg, type) {\r\n window.scrollTo(0, 0);\r\n this.setState({ msgShow: true });\r\n this.setState({ msgType: type });\r\n this.setState({ alertMessage: msg });\r\n this.setState({ loading: false });\r\n setTimeout(() => {\r\n this.setState({ msgShow: false });\r\n }, Config.minMsgTimeout);\r\n };\r\n\r\n handlePlaceOrder() {\r\n let postItemList = [];\r\n let addressObj = null;\r\n if (cartList.length === 0) {\r\n this.setState({ loading: true });\r\n this.showMessage('OOPS! Error Order was not placed', \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/cart' + urlPattern); }, Config.averageMsgTimeout);\r\n return false;\r\n }\r\n else if (sessionStorage.getItem('user-vendorOrderId') === undefined || sessionStorage.getItem('user-vendorOrderId') === null || sessionStorage.getItem('user-vendorOrderId') === '') {\r\n this.setState({ loading: false });\r\n this.showMessage('OOPS! Error Order was not placed', \"danger\");\r\n setTimeout(() => {\r\n this.props.history.push('/cart' + urlPattern);\r\n }, Config.averageMsgTimeout);\r\n\r\n return false;\r\n }\r\n\r\n orderChargeList = sessionStorage.getItem(\"order-charge-List\") === null ? [] : JSON.parse(sessionStorage.getItem(\"order-charge-List\"));\r\n\r\n\r\n Array.prototype.forEach.call(cartList.itemList, itm => {\r\n let postTaxes = [];\r\n let postModifiers = [];\r\n let postCharges = [];\r\n _uniquesGroups = [];\r\n\r\n\r\n // tax\r\n let ctax = taxList.filter(x => x.uid === itm.uid);\r\n ctax.map(tx =>\r\n postTaxes.push({ TaxCode: tx.taxCode, TaxValueType: tx.taxType, TaxValue: tx.taxValue, TaxAmount: tx.taxAmount })\r\n )\r\n\r\n //modifier\r\n let cmodifer = modifierCartList.filter(x => x.uid === itm.uid);\r\n // console.log(cmodifer);\r\n var _taxItmFound = {};\r\n for (var md = 0, lenc = cmodifer.length; md <= lenc - 1; md++) {\r\n var stringified = JSON.stringify(cmodifer[md].modifierGroupId);\r\n if (_taxItmFound[stringified]) { continue; }\r\n _uniquesGroups.push({ groupId: cmodifer[md].modifierGroupId, groupName: cmodifer[md].modifierGroupName });\r\n _taxItmFound[stringified] = true;\r\n };\r\n // console.log(_uniquesGroups);\r\n // Modifier\r\n Array.prototype.forEach.call(_uniquesGroups, mdg => {\r\n var modifr = [];\r\n let mdlist = cmodifer.filter(x => x.modifierGroupId === mdg.groupId);\r\n Array.prototype.forEach.call(mdlist, md => {\r\n let modifiertax = [];\r\n let modifierCharge = [];\r\n\r\n //tax\r\n Array.prototype.forEach.call(md.taxes, x => {\r\n modifiertax.push({ TaxCode: x.taxCode, TaxValueType: x.taxType, TaxValue: x.taxValue, TaxAmount: x.taxAmount })\r\n });\r\n\r\n //charge\r\n Array.prototype.forEach.call(md.charges, chg => {\r\n let chargetax = [];\r\n\r\n //tax\r\n Array.prototype.forEach.call(chg.taxes, x => {\r\n chargetax.push({ TaxCode: x.taxCode, TaxValueType: x.taxType, TaxValue: x.taxValue, TaxAmount: x.taxAmount })\r\n })\r\n\r\n // IsMerchantCharge is hardcorded \r\n modifierCharge.push({\r\n ChargeId: chg.chargeId, ChargeName: chg.chargeName,\r\n ChargeType: chg.chargeType, IsMerchantCharge: false, ChargeValueType: chg.chargeValueType,\r\n ChargeValue: chg.chargeValue, ChargeAmount: chg.chargeAmount,\r\n Taxes: chargetax\r\n })\r\n });\r\n\r\n modifr.push({ ModfierId: md.modifierId, ModifierName: md.modifierName, Rate: md.rate, Quantity: itm.qty, Amount: md.rate * itm.qty, Taxes: modifiertax, Charges: modifierCharge })\r\n })\r\n postModifiers.push({ ModifierGroupId: mdg.groupId, GroupName: mdg.groupName, Modifiers: modifr });\r\n });\r\n // console.log(postModifiers);\r\n\r\n // charges \r\n let ccharge = chargeList.filter(x => x.uid === itm.uid);\r\n\r\n Array.prototype.forEach.call(ccharge, chg => {\r\n let chargetax = [];\r\n\r\n //tax\r\n Array.prototype.forEach.call(chg.taxes, x => {\r\n chargetax.push({ TaxCode: x.taxCode, TaxValueType: x.taxType, TaxValue: x.taxValue, TaxAmount: x.taxAmount })\r\n })\r\n\r\n // IsMerchantCharge is hardcorded \r\n postCharges.push({\r\n ChargeId: chg.chargeId, ChargeName: chg.chargeName,\r\n ChargeType: chg.chargeType, IsMerchantCharge: false, ChargeValueType: chg.chargeValueType,\r\n ChargeValue: chg.chargeValue, ChargeAmount: chg.chargeAmount,\r\n Taxes: chargetax\r\n })\r\n });\r\n // console.log(postCharges);\r\n\r\n postItemList.push({\r\n ItemId: itm.itemId,\r\n ItemName: itm.itemName, Rate: itm.rate,\r\n Quantity: itm.qty, Amount: (itm.qty * itm.rate),\r\n Instruction: itm.specInsc === undefined ? \"\" : itm.specInsc,\r\n Taxes: postTaxes,\r\n ModifierGroups: postModifiers,\r\n Charges: postCharges\r\n });\r\n\r\n });\r\n let orderdate = new Date();\r\n let mseconds = orderdate.getTime(); //1440516958\r\n let deliveryTime = orderdate.getTime() + (olDetail.minimumDeliveryTime * 60000); //1440516958\r\n\r\n\r\n\r\n // Get Address \r\n if (serviceType === Config.serviceType.DELIVERY) {\r\n addressObj = {\r\n AddressId: guestCurrentAddress.addressId,\r\n AddressLine1: guestCurrentAddress.addressLine1,\r\n AddressLine2: guestCurrentAddress.addressLine2,\r\n AddressLine3: guestCurrentAddress.addressLine3,\r\n Area: guestCurrentAddress.area,\r\n City: guestCurrentAddress.city,\r\n State: guestCurrentAddress.addressId,\r\n Landmark: guestCurrentAddress.landmark,\r\n ZipCode: guestCurrentAddress.zipCode,\r\n AddressType: guestCurrentAddress.addressType\r\n }\r\n }\r\n // console.log(mseconds);\r\n let paymentDetails = [];\r\n\r\n this.handleCartRecalculate();\r\n\r\n paymentDetails.push({\r\n PayMode: \"ONLP\", // Online Pay \r\n PaymentAmount: totalAmount,\r\n TransactionRefId: vendorTransactionId,\r\n PaymentVendorId: 3, // Vendor Id\r\n PaymentVendorName: \"LUCID\"\r\n });\r\n //vendorOrderId = uuid();\r\n vendorOrderId = sessionStorage.getItem('user-vendorOrderId');\r\n\r\n /// Get QR Location \r\n let specialInstu = '';\r\n // console.log(olDetail.orderInstructionIncludeQRCodeLocation);\r\n if (olDetail.orderInstructionIncludeQRCodeLocation === true) {\r\n specialInstu = sessionStorage.getItem('url-remarks') === null ? '' : sessionStorage.getItem('url-remarks') !== '' ? sessionStorage.getItem('url-remarks') : '';\r\n // console.log(specialInstu);\r\n }\r\n\r\n /// Order Charges\r\n let orderCharges = [];\r\n Array.prototype.forEach.call(orderChargeList, ochg => {\r\n let chargetax = [];\r\n //tax\r\n Array.prototype.forEach.call(ochg.taxes, x => {\r\n chargetax.push({ TaxCode: x.taxCode, TaxValueType: x.taxType, TaxValue: x.taxValue, TaxAmount: x.taxAmount })\r\n })\r\n\r\n // IsMerchantCharge is hardcorded \r\n orderCharges.push({\r\n ChargeId: ochg.chargeId, ChargeName: ochg.chargeName,\r\n ChargeType: ochg.chargeType, IsMerchantCharge: false, ChargeValueType: ochg.chargeValueType,\r\n ChargeValue: ochg.chargeValue, ChargeAmount: ochg.chargeAmount,\r\n Taxes: chargetax\r\n });\r\n });\r\n\r\n // console.log(orderCharges);\r\n\r\n let postObj = {\r\n OutletId: propertyId + outletCode,\r\n ServiceType: serviceType,\r\n GuestDetails: {\r\n // MobileNo: mainGuestMobileNo,\r\n MobileNo: (mainGuestMobileNo === '' || mainGuestMobileNo === \"0000000000\") ? mobileNo : mainGuestMobileNo,\r\n OrderedGuestMobileNo: mobileNo,\r\n GuestName: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n Address: addressObj === null ? {} : addressObj\r\n },\r\n OrderDetails: {\r\n VendorOrderId: vendorOrderId,\r\n OrderDateTime: mseconds,\r\n DeliveryDateTime: serviceType === Config.serviceType.DELIVERY ? deliveryTime : null,\r\n TableNumber: serviceType !== \"FINE-DINE\" ? '' : tableNo,\r\n OrderStatus: \"placed\",\r\n //Instruction: specialInstu + '' + (OrderInstruction === null ? '' : OrderInstruction),\r\n Instruction: (specialInstu !== '' ? specialInstu : '') + (orderInstruction === null ? '' : (specialInstu !== '' && orderInstruction !== '') ? ' - ' + orderInstruction : orderInstruction),\r\n Items: postItemList,\r\n TotalItemValue: totalItemAmount,\r\n TotalItemTaxes: totalItemTaxAmount,\r\n TotalItemCharges: totalItemChargesAmount,\r\n TotalTaxes: totalTaxAmount,\r\n TotalCharges: totalChargesAmount,\r\n TotalAmount: totalAmount,\r\n IsPaid: true,\r\n Charges: orderCharges\r\n },\r\n PaymentDetails: paymentDetails\r\n }\r\n this.setState({ loading: true });\r\n\r\n // console.log(postObj);\r\n\r\n fetch(Config.basePOSUrl + 'PlaceOrder', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n if (response.errorCode === 0) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n sessionStorage.removeItem(\"paymentInitiatedId\");\r\n sessionStorage.removeItem(\"vendorTransactionId\");\r\n sessionStorage.removeItem(\"vendorId\");\r\n sessionStorage.removeItem(\"vendorName\");\r\n sessionStorage.removeItem(\"paymentStatus\");\r\n sessionStorage.removeItem(\"order-instruction\");\r\n sessionStorage.removeItem(\"user-vendorOrderId\");\r\n // console.log(response);\r\n this.props.history.push('/ordersuccess' + urlPattern,\r\n {\r\n // orderId: response.response.orderId\r\n orderId: vendorOrderId,\r\n // orderNo: response.response.orderNo\r\n orderNo: response.response != null ? response.response.orderNo : ''\r\n });\r\n }, 2000);\r\n }\r\n else {\r\n console.log(response.message);\r\n this.setState({ loading: true });\r\n this.showMessage('Error Order was not placed', \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/cart' + urlPattern); }, Config.averageMsgTimeout);\r\n }\r\n })\r\n .catch(err => {\r\n // console.log(err);\r\n this.setState({ loading: true });\r\n this.showMessage('Error Order was not placed', \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/cart' + urlPattern); }, Config.averageMsgTimeout);\r\n });\r\n };\r\n\r\n handleCartRecalculate() {\r\n // re calculate cart value \r\n let cartItemValue = 0;\r\n // let cartItemQty = 0;\r\n let modifierCartValue = 0;\r\n\r\n totalTaxAmount = 0;\r\n totalChargesAmount = 0;\r\n totalAmount = 0;\r\n\r\n totalItemAmount = 0;\r\n totalItemTaxAmount = 0;\r\n totalItemChargesAmount = 0;\r\n\r\n\r\n // console.log(cartList);\r\n\r\n if (sessionStorage.getItem(\"cartList\") !== null) {\r\n Array.prototype.forEach.call(cartList.itemList, itm => {\r\n // console.log(itm.qty);\r\n cartItemValue += (itm.rate * itm.qty);\r\n // cartItemQty += itm.qty;\r\n // console.log(cartItemValue);\r\n let mdcartItemList = modifierCartList.filter(x => x.uid === itm.uid);\r\n // console.log(mdcartItemList);\r\n Array.prototype.forEach.call(mdcartItemList, md => {\r\n modifierCartValue += md.rate * itm.qty;\r\n });\r\n });\r\n\r\n totalItemTaxAmount = taxList.reduce((prev, next) => prev + next.taxAmount, 0);\r\n totalItemTaxAmount += modifierCartList.reduce((prev, next) => prev + next.totalTaxAmount, 0);\r\n\r\n totalItemChargesAmount = chargeList.reduce((prev, next) => prev + next.chargeAmount, 0);\r\n totalItemChargesAmount += modifierCartList.reduce((prev, next) => prev + next.totalChargeAmount, 0);\r\n totalChargesAmount = totalItemChargesAmount;\r\n\r\n\r\n\r\n totalItemAmount = cartItemValue + modifierCartValue;\r\n\r\n\r\n totalTaxAmount = chargeList.reduce((prev, next) => prev + next.totalTaxAmount, 0);\r\n totalTaxAmount += totalItemTaxAmount;\r\n\r\n let onBillTaxValue = CartCalCulation.OnBillTaxCalculation(totalItemAmount);\r\n let orderLevelCharge = sessionStorage.getItem('order-charge-Amount') === null ? 0 : parseFloat(sessionStorage.getItem('order-charge-Amount'));\r\n let orderLevelChargeTaxAmount = sessionStorage.getItem('order-charge-Tax-Amount') === null ? 0 : parseFloat(sessionStorage.getItem('order-charge-Tax-Amount'));\r\n // console.log(orderLevelCharge);\r\n totalChargesAmount += orderLevelCharge;\r\n totalTaxAmount += onBillTaxValue;\r\n totalTaxAmount += orderLevelChargeTaxAmount;\r\n\r\n totalAmount = totalItemAmount + totalChargesAmount + totalTaxAmount;\r\n\r\n let roundOffAmt = sHelpers.roundOff(olDetail.roundOffType, totalAmount, olDetail.roundOffValue);\r\n // let rndOffAmt = roundOffAmt - totalAmount;\r\n totalAmount = roundOffAmt;\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n
    {this.state.loading && }\r\n
    \r\n {this.state.msgShow && }\r\n
    \r\n
    \r\n
    \r\n Payments\r\n {this.state.totalItems} items, To pay: ₹{this.state.totalNetAmount.toFixed(2)} \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n < div className=\"payment-qr-img\" style={{ margin: \"auto\", width: \"50%\", padding: \"10px\", paddingTop: \"70px\" }} >\"lucid-payment-qr\"
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 from 'react'\r\nimport './checkmark.scss';\r\nexport default function index() {\r\n return (\r\n
    \r\n \r\n
    \r\n )\r\n}","import React, { Component } from 'react';\r\nimport './ordersuccess.scss';\r\nimport LoadingAnimation from '../../components/checkmarkanimation';\r\nimport { isMobile } from 'react-device-detect';\r\nimport Config from '../../data/SiteConfig';\r\nlet urlPattern = '';\r\nexport default class OrderSuccess extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.goBack = this.goBack.bind(this);\r\n this.gotoShopping = this.gotoShopping.bind(this);\r\n this.gotoMyOrders = this.gotoMyOrders.bind(this);\r\n this.state = {\r\n cartValue: 1500,\r\n loading: false,\r\n orderId: '',\r\n orderNo: '',\r\n }\r\n }\r\n componentWillMount() {\r\n if (Config.IsMobileAccess) {\r\n if (!isMobile) {\r\n this.props.history.push('/deviceerror' + urlPattern);\r\n return false;\r\n }\r\n }\r\n const sessionDt = sessionStorage.getItem(\"u-l-v-url-dt\");\r\n if (!sessionDt) {\r\n this.props.history.push('/sessionerror' + urlPattern);\r\n return false;\r\n }\r\n\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n if (!urlPattern) { \r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n if (this.props.location.state !== undefined) {\r\n if (this.props.location.state.orderId === undefined || this.props.location.state.orderId === null) {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/items' + urlPattern);\r\n }, Config.averageMsgTimeout);\r\n }\r\n else if (this.props.location.state.orderNo === undefined || this.props.location.state.orderNo === null) {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/items' + urlPattern);\r\n }, Config.averageMsgTimeout);\r\n }\r\n else {\r\n this.setState({\r\n orderId: this.props.location.state.orderId,\r\n orderNo: this.props.location.state.orderNo\r\n });\r\n sessionStorage.removeItem('cartList');\r\n sessionStorage.removeItem('modifierCartList');\r\n sessionStorage.removeItem('taxCartList');\r\n sessionStorage.removeItem('chargeCartList');\r\n }\r\n }\r\n else {\r\n // console.log('out' + this.props.location.state.orderId);\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/items' + urlPattern);\r\n }, 200);\r\n }\r\n\r\n window.scrollTo(0, 0);\r\n\r\n }\r\n componentDidMount() {\r\n // this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/items' + urlPattern);\r\n }, Config.averageMsgTimeout);\r\n }\r\n goBack() {\r\n this.props.history.push('/home' + urlPattern);\r\n }\r\n gotoShopping() {\r\n this.props.history.push('/items' + urlPattern);\r\n }\r\n gotoMyOrders() {\r\n this.props.history.push('/myorders' + urlPattern);\r\n }\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {sessionStorage.getItem(\"user-propertyname\")}\r\n {sessionStorage.getItem(\"user-outletname\")} - {sessionStorage.getItem(\"user-servicetype\") === \"FINE-DINE\" ? 'Table Service' : sessionStorage.getItem(\"user-servicetype\")} \r\n {/*
    \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Your order has been
    placed successfully.
    \r\n {this.state.orderNo !== \"\" &&
    Order No : {this.state.orderNo === \"\" ? \"-\" : this.state.orderNo.substr(-4)}
    }\r\n {/*
    Order Id : {this.state.orderId}
    */}\r\n {/*
    */}\r\n {/*
    Go to My Orders
    */}\r\n
    \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, { Component, Fragment } from 'react';\r\nimport './myorders.scss';\r\nimport LoadingAnimation from '../../components/loadinganimation';\r\n//import * as QueryString from \"query-string\"\r\nimport Config from '../../data/SiteConfig';\r\nimport ErrorAlert from '../../components/alertmessages';\r\nimport { isMobile } from 'react-device-detect';\r\nimport enmConfig from '../../data/enumConfig';\r\nimport { Tab, Tabs, TabList, TabPanel } from 'react-tabs';\r\nimport 'react-tabs/style/react-tabs.css';\r\n\r\n//let ordersList = [];\r\n//let billsList = [];\r\nlet mobileNo = '';\r\nlet token = '';\r\nlet tableNo = '';\r\nlet serviceType = '';\r\nlet orgnationTd = '';\r\nlet propertyId = '';\r\nlet outletCode = '';\r\nlet loadcomfn = null;\r\nlet outletDetailsStr = null;\r\nlet outletDetails = {}\r\nlet mainMobileNo = '';\r\nlet guestLoggedIn = \"false\";\r\nlet urlPattern ='';\r\nexport default class MyOrders extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.goBack = this.goBack.bind(this);\r\n this.goViewBill = this.goViewBill.bind(this);\r\n this.GetUpdateOrders = this.GetUpdateOrders.bind(this);\r\n this.handleProcessRequest = this.handleProcessRequest.bind(this);\r\n this.handleToDayOrder = this.handleToDayOrder.bind(this);\r\n this.handleTodayBill = this.handleTodayBill.bind(this);\r\n this.handleHistoryBill = this.handleHistoryBill.bind(this);\r\n this.goBill = this.goBill.bind(this);\r\n this.state = {\r\n cartValue: 1500,\r\n todayOrderList: [],\r\n todayBillList: [],\r\n historyBillsList: [],\r\n ordersList: [],\r\n billsList: [],\r\n loading: false,\r\n alertMessage: '',\r\n msgShow: false,\r\n orderMsg: '',\r\n orderErrorMsg: '',\r\n billMsg: '',\r\n billErrorMsg: '',\r\n refreshSpin: 0,\r\n billhidden: '',\r\n orderhidden: 'active',\r\n unBillAmount: 0.00,\r\n historyBillMsg: \"\",\r\n todayBillMsg: \"\",\r\n todayOrderMsg: \"\",\r\n totalOrders: 0,\r\n totalBills: 0,\r\n totalHistory: 0\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if (Config.IsMobileAccess) {\r\n if (!isMobile) {\r\n this.props.history.push('/deviceerror' + urlPattern);\r\n return false;\r\n }\r\n }\r\n mobileNo = sessionStorage.getItem('user-mobileno');\r\n token = sessionStorage.getItem('user-token');\r\n tableNo = sessionStorage.getItem('user-tableno');\r\n serviceType = sessionStorage.getItem('user-servicetype');\r\n orgnationTd = sessionStorage.getItem('user-orgnationid');\r\n propertyId = sessionStorage.getItem('user-propertyid');\r\n outletCode = sessionStorage.getItem('user-outletcode');\r\n outletDetailsStr = sessionStorage.getItem('user-outletDetails');\r\n mainMobileNo = sessionStorage.getItem('main-guest-no');\r\n guestLoggedIn = sessionStorage.getItem('user-loggedin') == null ? \"false\" : sessionStorage.getItem('user-loggedin');\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n \r\n const sessionDt = sessionStorage.getItem(\"u-l-v-url-dt\");\r\n if (!sessionDt) {\r\n this.props.history.push('/sessionerror' + urlPattern);\r\n return false;\r\n }\r\n if (!urlPattern) { \r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n \r\n if (token === undefined || token === \"\" || token === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (mobileNo === undefined || mobileNo === \"\" || mobileNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (tableNo === undefined || tableNo === \"\" || tableNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (serviceType === undefined || serviceType === \"\" || serviceType === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (orgnationTd === undefined || orgnationTd === \"\" || orgnationTd === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (propertyId === undefined || propertyId === \"\" || propertyId === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (outletCode === undefined || outletCode === \"\" || outletCode === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (outletDetailsStr === undefined || outletDetailsStr === \"\" || outletDetailsStr === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n else {\r\n outletDetails = JSON.parse(outletDetailsStr);\r\n enmConfig.checkOutTypewithPay = outletDetails.paymentVendors.length > 0 ? true : false;\r\n }\r\n\r\n const script = document.createElement(\"script\");\r\n script.src = \"../assets/theme1/js/theme.js\"; // it is not calling mentioned for to avoid null value\r\n script.async = true;\r\n script.onload = () => this.loadJS();\r\n document.body.appendChild(script);\r\n\r\n\r\n if (guestLoggedIn === \"false\") {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/items' + urlPattern);\r\n }, 200);\r\n return false;\r\n }\r\n\r\n\r\n // this.setState({ orderList: [],loading:false });\r\n // this.setState({ orderMsg: 'Fetching...',loading: true });\r\n // this.setState({ orderErrorMsg: 'Looks like you have not made your menu yet.',orderMsg: \"NO ORDERS FOUND\",loading:false });\r\n this.handleToDayOrder();\r\n\r\n // let urlParam = \"?MobileNo=\" + mobileNo + \"&NoOfRowsPerPage=100&CurrentPageNumber=1\";\r\n // this.setState({ orderMsg: 'Fetching...',loading: true });\r\n // fetch(Config.basePOSUrl + 'GetGuestOrders' + urlParam, {\r\n // method: 'GET',\r\n // headers: {\r\n // Authorization: \"Bearer \" + token,\r\n // 'content-type': 'application/json'\r\n // }\r\n // })\r\n // .then(res => res.json())\r\n // .then(response => {\r\n // if (response.errorCode === 0) {\r\n // setTimeout(() => {\r\n // console.log(response);\r\n // orderList = response.response.bills;\r\n // if (orderList.length > 0)\r\n // this.setState({ orderList: orderList,loading:false });\r\n // else {\r\n // this.setState({ orderErrorMsg: 'Looks like you have not made your menu yet.',orderMsg: \"NO ORDERS FOUND\",loading:false });\r\n // }\r\n // }, 2000);\r\n // }\r\n // else {\r\n // this.showMessage(response.message, \"danger\");\r\n // console.log(response.message);\r\n // }\r\n // })\r\n // .catch(err => {\r\n // console.log(err);\r\n // this.showMessage(\"An error occured\", \"danger\");\r\n // });\r\n\r\n }\r\n loadJS() {\r\n loadcomfn = window.myodersInitiate;\r\n loadcomfn();\r\n }\r\n goBack() {\r\n this.props.history.push('/items' + urlPattern);\r\n }\r\n goViewBill(billUrl, bAmount, isPay, billId, refBillId) {\r\n this.setState({ loading: true });\r\n // console.log(refBillId);\r\n setTimeout(() => {\r\n this.props.history.push('/viewbill' + urlPattern, { eBillUrl: billUrl, billAmount: bAmount, isPay: isPay, posBillId: billId, refBillId: refBillId });\r\n }, Config.minMsgTimeout);\r\n }\r\n\r\n GetUpdateOrders() {\r\n window.scrollTo(0, 0);\r\n this.setState({ loading: true });\r\n this.setState({ todayOrderList: [], todayBillList: [], refreshSpin: 1, historyBillsList: [] });\r\n this.setState({ todayBillMsg: 'Fetching Records..', todayOrderMsg: 'Fetching Records..', historyBillMsg: 'Fetching Records..' });\r\n this.handleToDayOrder();\r\n this.handleTodayBill();\r\n this.handleHistoryBill();\r\n }\r\n\r\n handleProcessRequest() {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.props.history.push('/processrequest' + urlPattern, { totalNetAmount: this.state.totalOrderAmount });\r\n }, Config.minMsgTimeout);\r\n }\r\n\r\n handleToDayOrder() {\r\n this.setState({ loading: true });\r\n let postObj = {\r\n OutletId: propertyId + outletCode,\r\n ServiceType: serviceType,\r\n GuestMobileCountryCode: \"91\",\r\n GuestMobileNumber: mobileNo,\r\n MainGuestMobileCountryCode: \"91\",\r\n MainGuestMobileNumber: mainMobileNo,\r\n TableNumber: serviceType !== \"FINE-DINE\" ? '' : tableNo,\r\n NoOfRowsPerPage: 100,\r\n CurrentPageNumber: 1\r\n\r\n }\r\n fetch(Config.basePOSUrl + 'GetGuestTodayOrders', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.errorCode === 0) {\r\n if (response.response != null) {\r\n this.setState({ refreshSpin: 0 });\r\n this.setState({ unBillAmount: response.response.unBilledAmount, todayOrderList: response.response.orders, loading: false, todayOrderMsg: \"\", totalOrders: response.response.orders.length });\r\n setTimeout(() => {\r\n if (response.response.orders.length === 0) {\r\n this.setState({ todayOrderMsg: 'NO ORDERS FOUND' });\r\n }\r\n }, Config.minMsgTimeout);\r\n\r\n }\r\n else {\r\n this.setState({ unBillAmount: 0.00, todayOrderList: [], todayOrderMsg: \"Looks like you have not made your menu yet.\", totalOrders: 0 });\r\n }\r\n }\r\n else {\r\n\r\n this.showMessage(response.message, \"danger\");\r\n this.setState({ unBillAmount: 0.00, todayOrderList: [], todayOrderMsg: \"Looks like you have not made your menu yet.\", totalOrders: 0 });\r\n // console.log(response.message);\r\n }\r\n })\r\n .catch(err => {\r\n // console.log(err);\r\n this.showMessage(\"An error occured\", \"danger\");\r\n this.setState({ todayOrderList: [], loading: false, unBillAmount: 0.00, todayOrderMsg: \"Looks like you have not made your menu yet.\", totalOrders: 0 });\r\n });\r\n }\r\n\r\n handleTodayBill() {\r\n this.setState({ loading: true });\r\n let postObj = {\r\n OutletId: propertyId + outletCode,\r\n ServiceType: serviceType,\r\n GuestMobileCountryCode: \"91\",\r\n GuestMobileNumber: mainMobileNo,\r\n NoOfRowsPerPage: 50,\r\n CurrentPageNumber: 1\r\n }\r\n\r\n fetch(Config.basePOSUrl + 'GetGuestTodayBills', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.errorCode === 0) {\r\n if (response.response != null) {\r\n // console.log(response);\r\n this.setState({ refreshSpin: 0 });\r\n this.setState({ todayBillList: response.response.bills, loading: false, todayBillMsg: \"\", totalBills: response.response.bills.length });\r\n\r\n setTimeout(() => {\r\n if (response.response.bills.length === 0) {\r\n this.setState({ todayBillMsg: 'NO BILLS FOUND' });\r\n }\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n this.setState({ todayBillList: [], todayBillMsg: \"Looks like you have not made your menu yet.\", totalBills: 0 });\r\n }\r\n }\r\n else {\r\n\r\n this.showMessage(response.message, \"danger\");\r\n this.setState({ todayBillList: [], loading: false, todayBillMsg: \"Looks like you have not made your menu yet.\", totalBills: 0 });\r\n }\r\n })\r\n .catch(err => {\r\n // console.log(err);\r\n this.showMessage(\"An error occured\", \"danger\");\r\n this.setState({ todayBillList: [], loading: false });\r\n this.setState({ todayBillMsg: \"Looks like you have not made your menu yet.\", loading: false, totalBills: 0 });\r\n });\r\n\r\n }\r\n\r\n handleHistoryBill() {\r\n this.setState({ loading: true });\r\n let postObj = {\r\n OutletId: propertyId + outletCode,\r\n ServiceType: serviceType,\r\n GuestMobileCountryCode: \"91\",\r\n GuestMobileNumber: mobileNo,\r\n NoOfRowsPerPage: 30,\r\n CurrentPageNumber: 1\r\n }\r\n fetch(Config.basePOSUrl + 'GetGuestHistory', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.errorCode === 0) {\r\n if (response.response != null) {\r\n this.setState({ refreshSpin: 0 });\r\n this.setState({ historyBillsList: response.response.bills, loading: false, historyBillMsg: \"\", totalHistory: response.response.bills.length });\r\n setTimeout(() => {\r\n if (response.response.bills.length === 0) {\r\n this.setState({ historyBillMsg: 'NO BILLS FOUND' });\r\n }\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n this.setState({ historyBillsList: [], historyBillMsg: \"Looks like you have not made your menu yet.\", totalHistory: 0 });\r\n }\r\n }\r\n else {\r\n this.showMessage(response.message, \"danger\");\r\n this.setState({ historyBillsList: [], loading: false, historyBillMsg: \"Looks like you have not made your menu yet.\", totalHistory: 0 });\r\n }\r\n })\r\n .catch(err => {\r\n // console.log(err);\r\n this.showMessage(\"An error occured\", \"danger\");\r\n this.setState({ historyBillsList: [], loading: false });\r\n this.setState({ historyBillMsg: 'Looks like you have not made your menu yet.', loading: false, totalHistory: 0 });\r\n });\r\n\r\n\r\n }\r\n\r\n handleTodayOrderDom() {\r\n return (\r\n
    \r\n {outletDetails.enableViewBill &&\r\n
    \r\n
    \r\n
    Unbill Amount
    \r\n
    ₹ {this.state.unBillAmount.toFixed(2)}
    \r\n
    \r\n {enmConfig.checkOutTypewithPay &&
    \"lucid-rupee\"Pay Now
    }\r\n {!enmConfig.checkOutTypewithPay &&
    \"lucid-rupee\"View Bill
    }\r\n
    \r\n }\r\n {this.state.todayOrderList.map(ord =>\r\n
    \r\n
    \r\n
    \r\n \"profile\"\r\n
    \r\n
    \r\n
    {ord.guestName === '' ? ' ' : ord.guestName}
    \r\n
    {ord.guestMobileNumber === '' ? '-' : ord.guestMobileNumber}
    \r\n
    Table No: {ord.tableNumber}
    \r\n
    \r\n {/*
    Repeat Order
    */}\r\n {ord.orderStatus === \"Placed\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Accepted\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Preparing\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Prepared\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Food Ready\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"FoodReady\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Dispatched\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Completed\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Delivered\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Forward\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Rejected\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Cancelled\" &&
    {ord.orderStatus}
    }\r\n
    {ord.orderStatusUpdatedDateTime}
    \r\n
    Order No: {ord.orderNo}
    \r\n
    Order Date: {ord.orderDateTime}
    \r\n
    KOT No: {ord.kotNo}
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n ord.orderDetails.map((oitm, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n oitm.modifiers.map(gmd =>\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n {\r\n oitm.instruction !== \"\" &&\r\n \r\n \r\n \r\n }\r\n \r\n );\r\n })\r\n }\r\n \r\n
    NameQtyRateAmount
    {oitm.itemName.toLowerCase()}x{oitm.quantity}₹{oitm.rate.toFixed(2)}₹{(oitm.rate * oitm.quantity).toFixed(2)}
    {gmd.modifierName.toLowerCase()}x{gmd.quantity}₹{gmd.rate.toFixed(2)}₹{(gmd.rate * gmd.quantity).toFixed(2)}
    Ins:[{oitm.instruction}]
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {(ord.orderInstruction !== '' && ord.reason !== '') &&
    Ins: [{ord.orderInstruction}] || Reason: [{ord.reason}]
    }\r\n {ord.orderInstruction !== '' &&
    Ins: [{ord.orderInstruction}]
    }\r\n {ord.reason !== '' &&
    Reason: [{ord.reason}]
    }\r\n
    \r\n
    \r\n )\r\n }\r\n
    \r\n\r\n );\r\n }\r\n\r\n handleBillDom() {\r\n return (\r\n
    \r\n {\r\n this.state.todayBillList.map(bill =>\r\n
    \r\n
    \r\n
    Bill No: {bill.billNo}
    \r\n
    Bill Date: {bill.billDateTime}
    \r\n {bill.paymentModes !== '' &&
    Pay Mode: {bill.paymentModes}
    }\r\n {bill.serviceType === Config.serviceType.TABLESERVICE &&
    Table No: {bill.tableNumber}
    }\r\n
    Bill Amount: ₹{bill.billAmount.toFixed(2)}
    \r\n {/*
    {bill.billStatus} / {bill.paymentModes}
    */}\r\n\r\n {bill.billStatus.toLowerCase() === \"paid\" &&
    Paid
    }\r\n {bill.billStatus.toLowerCase() === \"cancelled\" &&
    Cancelled
    }\r\n {bill.billStatus.toLowerCase() === \"cancelled & refunded\" &&
    Cancelled & Refunded
    }\r\n {bill.billStatus.toLowerCase() === \"notpaid\" &&
    NotPaid
    }\r\n {bill.billStatus.toLowerCase() === \"void\" &&
    Void
    }\r\n {bill.billStatus.toLowerCase() === \"not paid\" &&
    Not Paid
    }\r\n {(bill.billStatus.toLowerCase() === \"not paid\" && bill.crmBillId !== \"\" &&\r\n enmConfig.checkOutTypewithPay && outletDetails.enableViewBill) && \"lucid-rupee\"Pay Bill\r\n }\r\n {(bill.billStatus.toLowerCase() === \"not paid\" && bill.crmBillId !== \"\" &&\r\n !enmConfig.checkOutTypewithPay && outletDetails.enableViewBill) && \"lucid-rupee\"View Bill\r\n }\r\n
    View Bill Details
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {\r\n bill.billDetails.map(ord =>\r\n
    \r\n
    \r\n
    \r\n \"profile\"\r\n
    \r\n
    \r\n
    {ord.guestName === '' ? '-' : ord.guestName}
    \r\n
    {ord.guestMobileNumber === '' ? '-' : ord.guestMobileNumber}
    \r\n
    Table No: {ord.tableNumber}
    \r\n
    \r\n {/*
    Repeat Order
    */}\r\n {ord.orderStatus === \"Placed\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Accepted\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Preparing\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Prepared\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Food Ready\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"FoodReady\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Dispatched\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Completed\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Delivered\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Forward\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Rejected\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Cancelled\" &&
    {ord.orderStatus}
    }\r\n
    {ord.orderStatusUpdatedDateTime}
    \r\n
    Order No: {ord.orderNo}
    \r\n
    Order Date: {ord.orderDateTime}
    \r\n
    KOT No: {ord.kotNo}
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n ord.orderDetails.map((oitm, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n oitm.modifiers.map(gmd =>\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n {\r\n oitm.instruction !== \"\" &&\r\n \r\n \r\n \r\n }\r\n \r\n );\r\n })\r\n }\r\n \r\n
    NameQtyRateAmount
    {oitm.itemName.toLowerCase()}x{oitm.quantity}₹{oitm.rate.toFixed(2)}₹{(oitm.rate * oitm.quantity).toFixed(2)}
    {gmd.modifierName.toLowerCase()}x{gmd.quantity}₹{gmd.rate.toFixed(2)}₹{(gmd.rate * gmd.quantity).toFixed(2)}
    Ins:[{oitm.instruction}]
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {ord.orderInstruction !== '' &&
    Ins: [{ord.orderInstruction}]
    }\r\n
    \r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n\r\n {(bill.guestAddress != null && bill.serviceType === Config.serviceType.DELIVERY) &&\r\n
    \r\n Delivery: {bill.guestAddress.addressLine1} {bill.guestAddress.addressLine2} {bill.guestAddress.addressLine3}
    \r\n {bill.guestAddress.area}
    \r\n {bill.guestAddress.city} - {bill.guestAddress.zipCode}
    \r\n Landmark: {bill.guestAddress.landmark}\r\n
    \r\n }\r\n {bill.reason !== '' &&
    Reason: [{bill.reason}]
    }\r\n
    \r\n )\r\n }\r\n
    \r\n );\r\n }\r\n\r\n handleHistoryDom() {\r\n\r\n return (\r\n
    \r\n {\r\n this.state.historyBillsList.map((bill, i) =>\r\n
    \r\n
    \r\n
    Bill No: {bill.billNo}
    \r\n
    Bill Date: {bill.billDateTime}
    \r\n {bill.paymentModes !== '' &&
    Pay Mode: {bill.paymentModes}
    }\r\n {bill.serviceType === Config.serviceType.TABLESERVICE &&
    Table No: {bill.tableNumber}
    }\r\n
    Bill Amount: ₹{bill.billAmount.toFixed(2)}
    \r\n {/*
    {bill.billStatus} / {bill.paymentModes}
    */}\r\n\r\n {bill.billStatus.toLowerCase() === \"paid\" &&
    Paid
    }\r\n {bill.billStatus.toLowerCase() === \"cancelled\" &&
    Cancelled
    }\r\n {bill.billStatus.toLowerCase() === \"cancelled & refunded\" &&
    Cancelled & Refunded
    }\r\n {bill.billStatus.toLowerCase() === \"notpaid\" &&
    NotPaid
    }\r\n {bill.billStatus.toLowerCase() === \"void\" &&
    Void
    }\r\n {bill.billStatus.toLowerCase() === \"not paid\" &&
    Not Paid
    }\r\n {(bill.billStatus.toLowerCase() === \"not paid\" && bill.crmBillId !== \"\" &&\r\n enmConfig.checkOutTypewithPay && outletDetails.enableViewBill) && \"lucid-rupee\"Pay Bill\r\n }\r\n {(bill.billStatus.toLowerCase() === \"not paid\" && bill.crmBillId !== \"\" &&\r\n !enmConfig.checkOutTypewithPay && outletDetails.enableViewBill) && \"lucid-rupee\"View Bill\r\n }\r\n
    View Bill Details
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {\r\n bill.billDetails.map((ord, i) =>\r\n
    \r\n
    \r\n
    \r\n \"profile\"\r\n
    \r\n
    \r\n
    {ord.guestName === '' ? '-' : ord.guestName}
    \r\n
    {ord.guestMobileNumber === '' ? '-' : ord.guestMobileNumber}
    \r\n
    Table No: {ord.tableNumber}
    \r\n
    \r\n {/*
    Repeat Order
    */}\r\n {ord.orderStatus === \"Placed\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Accepted\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Preparing\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Prepared\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Food Ready\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"FoodReady\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Dispatched\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Completed\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Delivered\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Forward\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Rejected\" &&
    {ord.orderStatus}
    }\r\n {ord.orderStatus === \"Cancelled\" &&
    {ord.orderStatus}
    }\r\n
    {ord.orderStatusUpdatedDateTime}
    \r\n
    Order No: {ord.orderNo}
    \r\n
    Order Date: {ord.orderDateTime}
    \r\n
    KOT No: {ord.kotNo}
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n ord.orderDetails.map((oitm, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n oitm.modifiers.map((gmd, i) =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n {\r\n oitm.instruction !== \"\" &&\r\n \r\n \r\n \r\n }\r\n \r\n );\r\n })\r\n }\r\n \r\n
    NameQtyRateAmount
    {oitm.itemName.toLowerCase()}x{oitm.quantity}₹{oitm.rate.toFixed(2)}₹{(oitm.rate * oitm.quantity).toFixed(2)}
    {gmd.modifierName.toLowerCase()}x{gmd.quantity}₹{gmd.rate.toFixed(2)}₹{(gmd.rate * gmd.quantity).toFixed(2)}
    Ins:[{oitm.instruction}]
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {ord.orderInstruction !== '' &&
    Ins: [{ord.orderInstruction}]
    }\r\n
    \r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n {(bill.guestAddress != null && bill.serviceType === Config.serviceType.DELIVERY) &&\r\n
    \r\n Delivery: {bill.guestAddress.addressLine1} {bill.guestAddress.addressLine2} {bill.guestAddress.addressLine3}
    \r\n {bill.guestAddress.area}
    \r\n {bill.guestAddress.city} - {bill.guestAddress.zipCode}
    \r\n Landmark: {bill.guestAddress.landmark}\r\n
    \r\n }\r\n {bill.reason !== '' &&
    Reason: [{bill.reason}]
    }\r\n\r\n
    \r\n )\r\n }\r\n
    \r\n );\r\n }\r\n\r\n goBill() {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/mybills' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n\r\n showMessage(msg, type) {\r\n window.scrollTo(0, 0);\r\n this.setState({ msgShow: true });\r\n this.setState({ msgType: type });\r\n this.setState({ alertMessage: msg });\r\n this.setState({ loading: false });\r\n setTimeout(() => {\r\n this.setState({ msgShow: false });\r\n }, Config.minMsgTimeout);\r\n };\r\n render() {\r\n return (\r\n
    \r\n {this.state.loading && }\r\n {this.state.msgShow && }\r\n
    \r\n
    \r\n
    \r\n
    \r\n My Orders\r\n
    \r\n
    \r\n
    \r\n {/*
    */}\r\n
    \r\n {/*
    \r\n
    \r\n {\r\n this.state.billsList.map(ord =>\r\n
    Bill no : {ord.billNo}Details\r\n
    {ord.billDateTime}
    \r\n {ord.billStatus === \"Paid\" &&
    PAID
    }\r\n {ord.billStatus === \"Cancelled\" &&
    CANCELLED
    }\r\n {ord.billStatus === \"NotPaid\" &&
    NotPaid
    }\r\n
    \r\n\r\n )\r\n }\r\n {this.state.ordersList.length === 0 &&\r\n
    \r\n {this.state.orderMsg}\r\n
    {this.state.orderErrorMsg}
    \r\n
    \r\n }\r\n
    \r\n
    */}\r\n
    \r\n \r\n \r\n Today Orders\r\n History {this.state.totalHistory > 0 && ({this.state.totalHistory})}\r\n \r\n \r\n \r\n \r\n Orders {this.state.totalOrders > 0 && ({this.state.totalOrders})}\r\n Bills {this.state.totalBills > 0 && ({this.state.totalBills})}\r\n \r\n \r\n {this.handleTodayOrderDom()}\r\n
    \r\n {this.state.todayOrderMsg}\r\n
    \r\n
    \r\n \r\n {this.handleBillDom()}\r\n
    \r\n {this.state.todayBillMsg}\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n {this.handleHistoryDom()}\r\n
    \r\n {this.state.historyBillMsg}\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, { Component } from 'react';\r\nimport './qrcodeerror.scss';\r\n//import Cookies from 'universal-cookie';\r\n\r\nexport default class QRCodeError extends Component {\r\n\r\n componentWillMount() {\r\n localStorage.clear();\r\n sessionStorage.removeItem(\"u-l-v-url-dt\");\r\n sessionStorage.removeItem('user-orgnationid');\r\n sessionStorage.removeItem('user-propertyid');\r\n sessionStorage.removeItem('user-propertyname');\r\n sessionStorage.removeItem('user-outletcode');\r\n sessionStorage.removeItem('user-tableno');\r\n sessionStorage.removeItem('user-servicetype');\r\n sessionStorage.removeItem('user-organizationname');\r\n sessionStorage.removeItem('user-outletname');\r\n sessionStorage.removeItem('user-mobileno');\r\n sessionStorage.removeItem('user-token');\r\n\r\n\r\n sessionStorage.removeItem('getMenuGroups');\r\n sessionStorage.removeItem('getModifierGroups');\r\n sessionStorage.removeItem('getTaxes');\r\n sessionStorage.removeItem('getmenuItems');\r\n sessionStorage.removeItem('getCharges');\r\n\r\n\r\n sessionStorage.removeItem('cartList');\r\n sessionStorage.removeItem('modifierCartList');\r\n sessionStorage.removeItem('taxCartList');\r\n sessionStorage.removeItem('chargeCartList');\r\n\r\n\r\n sessionStorage.removeItem(\"paymentInitiatedId\");\r\n sessionStorage.removeItem(\"vendorTransactionId\");\r\n sessionStorage.removeItem(\"vendorId\");\r\n sessionStorage.removeItem(\"vendorName\");\r\n sessionStorage.removeItem(\"paymentStatus\");\r\n sessionStorage.removeItem(\"order-instruction\");\r\n sessionStorage.removeItem('otpReferenceId');\r\n sessionStorage.removeItem(\"user-vendorOrderId\");\r\n sessionStorage.removeItem(\"user-table-verified\");\r\n sessionStorage.removeItem(\"user-outletDetails\");\r\n sessionStorage.removeItem('payAmount');\r\n sessionStorage.removeItem('pageCMSSettings');\r\n sessionStorage.removeItem('user-digitalMenu');\r\n sessionStorage.removeItem(\"user-loggedin-date\");\r\n sessionStorage.removeItem('otp-exp-duration');\r\n sessionStorage.removeItem(\"ebillUrl\");\r\n sessionStorage.removeItem(\"isPay\");\r\n sessionStorage.removeItem(\"posBillId\");\r\n sessionStorage.removeItem('user-statsid');\r\n sessionStorage.removeItem('main-guest-mask-no');\r\n sessionStorage.removeItem('main-guest-no');\r\n sessionStorage.removeItem('group-session');\r\n sessionStorage.removeItem('group-pin');\r\n sessionStorage.removeItem('ex-main-guest-no');\r\n sessionStorage.removeItem('cms-logo');\r\n sessionStorage.removeItem('guest-name');\r\n sessionStorage.removeItem('user-loggedin');\r\n sessionStorage.removeItem(\"login-page-session\"); // Cart Session\r\n sessionStorage.removeItem(\"on-click-mode\"); // Cart Session\r\n sessionStorage.removeItem('main-guest-name');\r\n sessionStorage.removeItem('user-qr-level');\r\n sessionStorage.removeItem('url-remarks');\r\n sessionStorage.removeItem('url-remarks');\r\n sessionStorage.removeItem('menuFetchDateTime');\r\n sessionStorage.removeItem('user-GuestDetails');\r\n sessionStorage.removeItem('user-addressId');\r\n sessionStorage.removeItem('user-CurrentAddress');\r\n sessionStorage.removeItem('prepaidCardAccountId');\r\n sessionStorage.removeItem('mobile-app');\r\n sessionStorage.removeItem('app-CountryCode');\r\n sessionStorage.removeItem('app-CountryCode');\r\n sessionStorage.removeItem('order-track-status');\r\n\r\n\r\n sessionStorage.removeItem('pageCMSSettings');\r\n sessionStorage.removeItem('menuFetchDateTime');\r\n\r\n sessionStorage.removeItem('group-pin');\r\n sessionStorage.removeItem('dashboard-hide');\r\n sessionStorage.removeItem('dashboard-hide');\r\n sessionStorage.removeItem('entered-mobile-no');\r\n sessionStorage.removeItem('entered-name');\r\n sessionStorage.removeItem('user-access-mode');\r\n sessionStorage.removeItem('otp');\r\n sessionStorage.removeItem('verified-otp');\r\n sessionStorage.removeItem('selectedClassification');\r\n sessionStorage.removeItem('dashboard-hide');\r\n sessionStorage.removeItem('order-charge-Tax-Amount');\r\n sessionStorage.removeItem('getclf');\r\n sessionStorage.removeItem('order-charge-Amount');\r\n sessionStorage.removeItem('app-ContactNo');\r\n sessionStorage.removeItem('order-charge-List');\r\n sessionStorage.removeItem('url-pattern');\r\n sessionStorage.removeItem('url-key');\r\n sessionStorage.removeItem('dt-number');\r\n sessionStorage.removeItem('uid');\r\n sessionStorage.removeItem('url-version');\r\n sessionStorage.removeItem('app-ver');\r\n sessionStorage.removeItem('user-session-id');\r\n sessionStorage.removeItem('redirect-page');\r\n window.history.replaceState(null, null, \"/\");\r\n }\r\n render() {\r\n return (\r\n
    \r\n {/* {loading && } */}\r\n
    \r\n
    \r\n {/* \"\" */}\r\n \"lucid-contactless-food-ordering\"\r\n\r\n
    \r\n {/*
    OOPS!
    */}\r\n {/*
    404 - Page Not Found.
    */}\r\n
    We're sorry. Something went wrong.
    Please scan once again.
    {/*
    The page you are looking for might have been removed
    \r\n had its name changed or is temporarily unavailable.\r\n
    */}\r\n
    \r\n
    \r\n {/* \"\" */}\r\n
    \r\n
    \r\n )\r\n }\r\n}","import React, { Component } from \"react\"\r\nimport './payment.scss';\r\n//import LoadingAnimation from '../../components/loadinganimation/verificationloading';\r\n// import LoadingAnimation from '../../components/loadinganimation/paymentloading';\r\nimport LoadingAnimation from '../../components/loadinganimation';\r\nimport * as QueryString from \"query-string\"\r\nimport Config from '../../data/SiteConfig';\r\nimport ErrorAlert from '../../components/alertmessages';\r\nimport { isMobile } from 'react-device-detect';\r\nimport CartCalCulation from '../../modules/cart/cartcalculation';\r\nimport sHelpers from '../../modules/helpers/statichelpers';\r\n//import uuid from 'react-uuid';\r\nlet mobileNo = '';\r\nlet token = '';\r\nlet tableNo = '';\r\nlet serviceType = '';\r\nlet orgnationTd = '';\r\nlet propertyId = '';\r\nlet outletCode = '';\r\nlet paymentInitiatedId = '';\r\nlet vendorTransactionId = '';\r\nlet vendorId = '';\r\nlet vendorName = '';\r\nlet orderInstruction = '';\r\n//let paymentStatus = 'NONE';\r\nlet cartList = {};\r\nlet modifierCartList = [];\r\nlet taxList = [];\r\nlet chargeList = [];\r\nlet orderChargeList = [];\r\nlet _uniquesGroups = [];\r\nlet totalItemAmount = 0;\r\nlet totalItemTaxAmount = 0;\r\nlet totalItemChargesAmount = 0;\r\n\r\n//let totalItems = 0;\r\nlet totalChargesAmount = 0;\r\nlet totalTaxAmount = 0;\r\nlet totalAmount = 0;\r\nlet vendorOrderId = '';\r\nlet mainGuestMobileNo = '';\r\nlet guestCurrentAddress = null;\r\nlet outletDetails = null;\r\nlet olDetail = {};\r\nlet urlPattern = '';\r\nexport default class PaymentVerification extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loading: false,\r\n alertMessage: '',\r\n msgShow: false,\r\n paymentInitiatedId: \"\",\r\n statusMsg: \"\",\r\n roundOff: 0\r\n }\r\n }\r\n\r\n\r\n componentDidMount() {\r\n if (Config.IsMobileAccess) {\r\n if (!isMobile) {\r\n this.props.history.push('/deviceerror' + urlPattern);\r\n return false;\r\n }\r\n }\r\n\r\n sessionStorage.removeItem('redirect-page');\r\n\r\n let inputParam = QueryString.parse(window.location.search);\r\n let vendorPaymentStatus = inputParam.payment_status;\r\n this.setState({ statusMsg: \"Processing Your Request\" });\r\n // console.log(inputParam);\r\n\r\n mobileNo = sessionStorage.getItem('user-mobileno');\r\n token = sessionStorage.getItem('user-token');\r\n tableNo = sessionStorage.getItem('user-tableno');\r\n serviceType = sessionStorage.getItem('user-servicetype');\r\n orgnationTd = sessionStorage.getItem('user-orgnationid');\r\n propertyId = sessionStorage.getItem('user-propertyid');\r\n outletCode = sessionStorage.getItem('user-outletcode');\r\n\r\n paymentInitiatedId = sessionStorage.getItem('paymentInitiatedId');\r\n vendorTransactionId = sessionStorage.getItem('vendorTransactionId');\r\n vendorId = sessionStorage.getItem('vendorId');\r\n vendorName = sessionStorage.getItem('vendorName');\r\n orderInstruction = sessionStorage.getItem('order-instruction');\r\n vendorOrderId = sessionStorage.getItem('user-vendorOrderId');\r\n mainGuestMobileNo = sessionStorage.getItem('main-guest-no') == null ? '' : sessionStorage.getItem('main-guest-no');\r\n guestCurrentAddress = sessionStorage.getItem('user-CurrentAddress') === null ? null : JSON.parse(sessionStorage.getItem('user-CurrentAddress'));\r\n outletDetails = sessionStorage.getItem('user-outletDetails');\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n //paymentStatus = sessionStorage.getItem('paymentStatus');\r\n\r\n const sessionDt = sessionStorage.getItem(\"u-l-v-url-dt\");\r\n if (!sessionDt) {\r\n this.props.history.push('/sessionerror' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (!urlPattern) {\r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n if (token === undefined || token === \"\" || token === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (mobileNo === undefined || mobileNo === \"\" || mobileNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (tableNo === undefined || tableNo === \"\" || tableNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (serviceType === undefined || serviceType === \"\" || serviceType === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (orgnationTd === undefined || orgnationTd === \"\" || orgnationTd === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (propertyId === undefined || propertyId === \"\" || propertyId === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (outletCode === undefined || outletCode === \"\" || outletCode === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (outletDetails === undefined || outletDetails === \"\" || outletDetails === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n else {\r\n olDetail = JSON.parse(outletDetails);\r\n }\r\n\r\n\r\n if (paymentInitiatedId === undefined || paymentInitiatedId === \"\" || paymentInitiatedId === null) {\r\n this.showMessage('Transaction failed. Please try again', \"danger\");\r\n this.setState({ loading: true });\r\n setTimeout(() => { this.props.history.push('/cart' + urlPattern); }, Config.averageMsgTimeout);\r\n return false;\r\n }\r\n\r\n taxList = sessionStorage.getItem(\"taxCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"taxCartList\"));\r\n modifierCartList = sessionStorage.getItem(\"modifierCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"modifierCartList\"));\r\n chargeList = sessionStorage.getItem(\"chargeCartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"chargeCartList\"));\r\n cartList = sessionStorage.getItem(\"cartList\") === null ? [] : JSON.parse(sessionStorage.getItem(\"cartList\"));\r\n\r\n window.scrollTo(0, 0);\r\n\r\n if (vendorPaymentStatus !== null && vendorPaymentStatus !== \"Failed\") {\r\n // API Call\r\n this.handleCheckPaymentStatus();\r\n\r\n }\r\n else {\r\n sessionStorage.removeItem(\"paymentInitiatedId\");\r\n sessionStorage.removeItem(\"vendorTransactionId\");\r\n sessionStorage.removeItem(\"vendorId\");\r\n sessionStorage.removeItem(\"vendorName\");\r\n sessionStorage.removeItem(\"paymentStatus\");\r\n sessionStorage.removeItem(\"order-instruction\");\r\n sessionStorage.removeItem(\"user-vendorOrderId\");\r\n this.setState({ loading: false, statusMsg: \"Redirecting...\" });\r\n this.showMessage('Transaction failed. Please try again', \"danger\");\r\n setTimeout(() => { this.setState({ loading: true }); setTimeout(() => { this.props.history.push('/cart' + urlPattern); }, Config.minMsgTimeout); }, Config.minMsgTimeout);\r\n }\r\n }\r\n handleCheckPaymentStatus() {\r\n\r\n this.setState({ loading: true });\r\n fetch(Config.basePaymentUrl + 'GetPaymentStatus?PaymentInitiatedId=' + paymentInitiatedId, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n if (response.errorCode === 0) {\r\n setTimeout(() => {\r\n // console.log(response);\r\n if (response.response.status === \"SUCCESS\") {\r\n this.handlePlaceOrder();\r\n }\r\n else if (response.response.status === \"PENDING\") {\r\n setTimeout(() => {\r\n this.handleCheckPaymentStatus();\r\n }, Config.averageMsgTimeout);\r\n }\r\n else {\r\n this.setState({ loading: true });\r\n this.showMessage('Transaction failed. Please try again', \"danger\");\r\n setTimeout(() => { this.props.history.push('/cart' + urlPattern); }, Config.averageMsgTimeout);\r\n }\r\n\r\n // window.location.href = response.response.vendorRedirectUrl;\r\n\r\n // this.props.history.push('/paymentVerification', {\r\n // getMenus: this.state.getMenus,\r\n // getItems: this.state.getItems,\r\n // getModifiers: this.state.getModifiers,\r\n // getTaxes: this.state.getTaxes,\r\n // getCharges: this.state.getCharges\r\n // });\r\n }, 2000);\r\n }\r\n else {\r\n // console.log(response.message);\r\n this.setState({ loading: true });\r\n this.showMessage('Error Order was not placed', \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/cart' + urlPattern); }, Config.averageMsgTimeout);\r\n }\r\n })\r\n .catch(err => {\r\n // console.log(err);\r\n this.setState({ loading: true });\r\n this.showMessage('Error Order was not placed', \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/cart' + urlPattern); }, Config.minMsgTimeout);\r\n });\r\n }\r\n\r\n handlePlaceOrder() {\r\n let postItemList = [];\r\n let addressObj = null;\r\n if (cartList.length === 0) {\r\n this.setState({ loading: true });\r\n this.showMessage('OOPS! Error Order was not placed', \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/cart' + urlPattern); }, Config.averageMsgTimeout);\r\n return false;\r\n }\r\n else if (sessionStorage.getItem('user-vendorOrderId') === undefined || sessionStorage.getItem('user-vendorOrderId') === null || sessionStorage.getItem('user-vendorOrderId') === '') {\r\n this.setState({ loading: false });\r\n this.showMessage('OOPS! Error Order was not placed', \"danger\");\r\n setTimeout(() => {\r\n this.props.history.push('/cart' + urlPattern);\r\n }, Config.averageMsgTimeout);\r\n\r\n return false;\r\n }\r\n\r\n orderChargeList = sessionStorage.getItem(\"order-charge-List\") === null ? [] : JSON.parse(sessionStorage.getItem(\"order-charge-List\"));\r\n\r\n\r\n Array.prototype.forEach.call(cartList.itemList, itm => {\r\n let postTaxes = [];\r\n let postModifiers = [];\r\n let postCharges = [];\r\n _uniquesGroups = [];\r\n\r\n\r\n // tax\r\n let ctax = taxList.filter(x => x.uid === itm.uid);\r\n ctax.map(tx =>\r\n postTaxes.push({ TaxCode: tx.taxCode, TaxValueType: tx.taxType, TaxValue: tx.taxValue, TaxAmount: tx.taxAmount })\r\n )\r\n\r\n //modifier\r\n let cmodifer = modifierCartList.filter(x => x.uid === itm.uid);\r\n // console.log(cmodifer);\r\n var _taxItmFound = {};\r\n for (var md = 0, lenc = cmodifer.length; md <= lenc - 1; md++) {\r\n var stringified = JSON.stringify(cmodifer[md].modifierGroupId);\r\n if (_taxItmFound[stringified]) { continue; }\r\n _uniquesGroups.push({ groupId: cmodifer[md].modifierGroupId, groupName: cmodifer[md].modifierGroupName });\r\n _taxItmFound[stringified] = true;\r\n };\r\n // console.log(_uniquesGroups);\r\n // Modifier\r\n Array.prototype.forEach.call(_uniquesGroups, mdg => {\r\n var modifr = [];\r\n let mdlist = cmodifer.filter(x => x.modifierGroupId === mdg.groupId);\r\n Array.prototype.forEach.call(mdlist, md => {\r\n let modifiertax = [];\r\n let modifierCharge = [];\r\n\r\n //tax\r\n Array.prototype.forEach.call(md.taxes, x => {\r\n modifiertax.push({ TaxCode: x.taxCode, TaxValueType: x.taxType, TaxValue: x.taxValue, TaxAmount: x.taxAmount })\r\n });\r\n\r\n //charge\r\n Array.prototype.forEach.call(md.charges, chg => {\r\n let chargetax = [];\r\n\r\n //tax\r\n Array.prototype.forEach.call(chg.taxes, x => {\r\n chargetax.push({ TaxCode: x.taxCode, TaxValueType: x.taxType, TaxValue: x.taxValue, TaxAmount: x.taxAmount })\r\n })\r\n\r\n // IsMerchantCharge is hardcorded \r\n modifierCharge.push({\r\n ChargeId: chg.chargeId, ChargeName: chg.chargeName,\r\n ChargeType: chg.chargeType, IsMerchantCharge: false, ChargeValueType: chg.chargeValueType,\r\n ChargeValue: chg.chargeValue, ChargeAmount: chg.chargeAmount,\r\n Taxes: chargetax\r\n })\r\n });\r\n\r\n modifr.push({ ModfierId: md.modifierId, ModifierName: md.modifierName, Rate: md.rate, Quantity: itm.qty, Amount: md.rate * itm.qty, Taxes: modifiertax, Charges: modifierCharge })\r\n })\r\n postModifiers.push({ ModifierGroupId: mdg.groupId, GroupName: mdg.groupName, Modifiers: modifr });\r\n });\r\n // console.log(postModifiers);\r\n\r\n // charges \r\n let ccharge = chargeList.filter(x => x.uid === itm.uid);\r\n\r\n Array.prototype.forEach.call(ccharge, chg => {\r\n let chargetax = [];\r\n\r\n //tax\r\n Array.prototype.forEach.call(chg.taxes, x => {\r\n chargetax.push({ TaxCode: x.taxCode, TaxValueType: x.taxType, TaxValue: x.taxValue, TaxAmount: x.taxAmount })\r\n })\r\n\r\n // IsMerchantCharge is hardcorded \r\n postCharges.push({\r\n ChargeId: chg.chargeId, ChargeName: chg.chargeName,\r\n ChargeType: chg.chargeType, IsMerchantCharge: false, ChargeValueType: chg.chargeValueType,\r\n ChargeValue: chg.chargeValue, ChargeAmount: chg.chargeAmount,\r\n Taxes: chargetax\r\n })\r\n });\r\n // console.log(postCharges);\r\n\r\n postItemList.push({\r\n ItemId: itm.itemId,\r\n ItemName: itm.itemName, Rate: itm.rate,\r\n Quantity: itm.qty, Amount: (itm.qty * itm.rate),\r\n Instruction: itm.specInsc === undefined ? \"\" : itm.specInsc,\r\n Taxes: postTaxes,\r\n ModifierGroups: postModifiers,\r\n Charges: postCharges\r\n });\r\n\r\n });\r\n let orderdate = new Date();\r\n let mseconds = orderdate.getTime(); //1440516958\r\n let deliveryTime = orderdate.getTime() + (olDetail.minimumDeliveryTime * 60000); //1440516958\r\n\r\n\r\n\r\n // Get Address \r\n if (serviceType === Config.serviceType.DELIVERY) {\r\n addressObj = {\r\n AddressId: guestCurrentAddress.addressId,\r\n AddressLine1: guestCurrentAddress.addressLine1,\r\n AddressLine2: guestCurrentAddress.addressLine2,\r\n AddressLine3: guestCurrentAddress.addressLine3,\r\n Area: guestCurrentAddress.area,\r\n City: guestCurrentAddress.city,\r\n State: guestCurrentAddress.addressId,\r\n Landmark: guestCurrentAddress.landmark,\r\n ZipCode: guestCurrentAddress.zipCode,\r\n AddressType: guestCurrentAddress.addressType\r\n }\r\n }\r\n // console.log(mseconds);\r\n let paymentDetails = [];\r\n\r\n this.handleCartRecalculate();\r\n\r\n paymentDetails.push({\r\n PayMode: \"ONLP\", // Online Pay \r\n PaymentAmount: totalAmount,\r\n TransactionRefId: vendorTransactionId,\r\n PaymentVendorId: vendorId, // Vendor Id\r\n PaymentVendorName: vendorName\r\n });\r\n //vendorOrderId = uuid();\r\n vendorOrderId = sessionStorage.getItem('user-vendorOrderId');\r\n\r\n /// Get QR Location \r\n let specialInstu = '';\r\n // console.log(olDetail.orderInstructionIncludeQRCodeLocation);\r\n if (olDetail.orderInstructionIncludeQRCodeLocation === true) {\r\n specialInstu = sessionStorage.getItem('url-remarks') === null ? '' : sessionStorage.getItem('url-remarks') !== '' ? sessionStorage.getItem('url-remarks') : '';\r\n // console.log(specialInstu);\r\n }\r\n\r\n /// Order Charges\r\n let orderCharges = [];\r\n Array.prototype.forEach.call(orderChargeList, ochg => {\r\n let chargetax = [];\r\n //tax\r\n Array.prototype.forEach.call(ochg.taxes, x => {\r\n chargetax.push({ TaxCode: x.taxCode, TaxValueType: x.taxType, TaxValue: x.taxValue, TaxAmount: x.taxAmount })\r\n })\r\n\r\n // IsMerchantCharge is hardcorded \r\n orderCharges.push({\r\n ChargeId: ochg.chargeId, ChargeName: ochg.chargeName,\r\n ChargeType: ochg.chargeType, IsMerchantCharge: false, ChargeValueType: ochg.chargeValueType,\r\n ChargeValue: ochg.chargeValue, ChargeAmount: ochg.chargeAmount,\r\n Taxes: chargetax\r\n });\r\n });\r\n\r\n // console.log(orderCharges);\r\n\r\n let postObj = {\r\n OutletId: propertyId + outletCode,\r\n ServiceType: serviceType,\r\n GuestDetails: {\r\n // MobileNo: mainGuestMobileNo,\r\n MobileNo: (mainGuestMobileNo === '' || mainGuestMobileNo === \"0000000000\") ? mobileNo : mainGuestMobileNo,\r\n OrderedGuestMobileNo: mobileNo,\r\n GuestName: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n Address: addressObj === null ? {} : addressObj\r\n },\r\n OrderDetails: {\r\n VendorOrderId: vendorOrderId,\r\n OrderDateTime: mseconds,\r\n DeliveryDateTime: serviceType === Config.serviceType.DELIVERY ? deliveryTime : null,\r\n TableNumber: serviceType !== \"FINE-DINE\" ? '' : tableNo,\r\n OrderStatus: \"placed\",\r\n //Instruction: specialInstu + '' + (OrderInstruction === null ? '' : OrderInstruction),\r\n Instruction: (specialInstu !== '' ? specialInstu : '') + (orderInstruction === null ? '' : (specialInstu !== '' && orderInstruction !== '') ? ' - ' + orderInstruction : orderInstruction),\r\n Items: postItemList,\r\n TotalItemValue: totalItemAmount,\r\n TotalItemTaxes: totalItemTaxAmount,\r\n TotalItemCharges: totalItemChargesAmount,\r\n TotalTaxes: totalTaxAmount,\r\n TotalCharges: totalChargesAmount,\r\n TotalAmount: totalAmount,\r\n IsPaid: true,\r\n Charges: orderCharges\r\n },\r\n PaymentDetails: paymentDetails\r\n }\r\n this.setState({ loading: true });\r\n\r\n // console.log(postObj);\r\n\r\n fetch(Config.basePOSUrl + 'PlaceOrder', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n if (response.errorCode === 0) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n sessionStorage.removeItem(\"paymentInitiatedId\");\r\n sessionStorage.removeItem(\"vendorTransactionId\");\r\n sessionStorage.removeItem(\"vendorId\");\r\n sessionStorage.removeItem(\"vendorName\");\r\n sessionStorage.removeItem(\"paymentStatus\");\r\n sessionStorage.removeItem(\"order-instruction\");\r\n sessionStorage.removeItem(\"user-vendorOrderId\");\r\n // console.log(response);\r\n this.props.history.push('/ordersuccess' + urlPattern,\r\n {\r\n // orderId: response.response.orderId\r\n orderId: vendorOrderId,\r\n // orderNo: response.response.orderNo\r\n orderNo: response.response != null ? response.response.orderNo : ''\r\n });\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n console.log(response.message);\r\n this.setState({ loading: true });\r\n this.showMessage('Error Order was not placed', \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/cart' + urlPattern); }, Config.averageMsgTimeout);\r\n }\r\n })\r\n .catch(err => {\r\n // console.log(err);\r\n this.setState({ loading: true });\r\n this.showMessage('Error Order was not placed', \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/cart' + urlPattern); }, Config.minMsgTimeout);\r\n });\r\n };\r\n handleCartRecalculate() {\r\n // re calculate cart value \r\n let cartItemValue = 0;\r\n // let cartItemQty = 0;\r\n let modifierCartValue = 0;\r\n\r\n totalTaxAmount = 0;\r\n totalChargesAmount = 0;\r\n totalAmount = 0;\r\n\r\n totalItemAmount = 0;\r\n totalItemTaxAmount = 0;\r\n totalItemChargesAmount = 0;\r\n\r\n\r\n // console.log(cartList);\r\n\r\n if (sessionStorage.getItem(\"cartList\") !== null) {\r\n Array.prototype.forEach.call(cartList.itemList, itm => {\r\n // console.log(itm.qty);\r\n cartItemValue += (itm.rate * itm.qty);\r\n // cartItemQty += itm.qty;\r\n // console.log(cartItemValue);\r\n let mdcartItemList = modifierCartList.filter(x => x.uid === itm.uid);\r\n // console.log(mdcartItemList);\r\n Array.prototype.forEach.call(mdcartItemList, md => {\r\n modifierCartValue += md.rate * itm.qty;\r\n });\r\n });\r\n\r\n totalItemTaxAmount = taxList.reduce((prev, next) => prev + next.taxAmount, 0);\r\n totalItemTaxAmount += modifierCartList.reduce((prev, next) => prev + next.totalTaxAmount, 0);\r\n\r\n totalItemChargesAmount = chargeList.reduce((prev, next) => prev + next.chargeAmount, 0);\r\n totalItemChargesAmount += modifierCartList.reduce((prev, next) => prev + next.totalChargeAmount, 0);\r\n totalChargesAmount = totalItemChargesAmount;\r\n\r\n\r\n\r\n totalItemAmount = cartItemValue + modifierCartValue;\r\n\r\n\r\n totalTaxAmount = chargeList.reduce((prev, next) => prev + next.totalTaxAmount, 0);\r\n totalTaxAmount += totalItemTaxAmount;\r\n\r\n let onBillTaxValue = CartCalCulation.OnBillTaxCalculation(totalItemAmount);\r\n let orderLevelCharge = sessionStorage.getItem('order-charge-Amount') === null ? 0 : parseFloat(sessionStorage.getItem('order-charge-Amount'));\r\n let orderLevelChargeTaxAmount = sessionStorage.getItem('order-charge-Tax-Amount') === null ? 0 : parseFloat(sessionStorage.getItem('order-charge-Tax-Amount'));\r\n // console.log(orderLevelCharge);\r\n totalChargesAmount += orderLevelCharge;\r\n totalTaxAmount += onBillTaxValue;\r\n totalTaxAmount += orderLevelChargeTaxAmount;\r\n\r\n totalAmount = totalItemAmount + totalChargesAmount + totalTaxAmount;\r\n\r\n let roundOffAmt = sHelpers.roundOff(olDetail.roundOffType, totalAmount, olDetail.roundOffValue);\r\n // let rndOffAmt = roundOffAmt - totalAmount;\r\n totalAmount = roundOffAmt;\r\n }\r\n }\r\n showMessage(msg, type) {\r\n window.scrollTo(0, 0);\r\n this.setState({ msgShow: true });\r\n this.setState({ msgType: type });\r\n this.setState({ alertMessage: msg });\r\n this.setState({ loading: false });\r\n setTimeout(() => {\r\n this.setState({ msgShow: false });\r\n }, Config.minMsgTimeout);\r\n };\r\n\r\n render() {\r\n return (\r\n
    \r\n {this.state.loading && }\r\n
    \r\n {this.state.msgShow && }\r\n
    \r\n
    \r\n
    \r\n {sessionStorage.getItem(\"user-propertyname\")}\r\n {sessionStorage.getItem(\"user-outletname\")} - {sessionStorage.getItem(\"user-servicetype\") === \"FINE-DINE\" ? 'Table Service' : sessionStorage.getItem(\"user-servicetype\")} \r\n {/*
    \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {/*
    */}\r\n
    {this.state.statusMsg}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n}","import React from 'react'\r\nimport './animate.scss';\r\nexport default function failed() {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}","import React, { Component } from 'react';\r\nimport './orderfailed.scss';\r\nimport LoadingSVGAnimation from '../../components/checkmarkanimation/failed';\r\n//import LoadingAnimation from '../../components/loadinganimation/paymentloading';\r\nimport LoadingAnimation from '../../components/loadinganimation';\r\nimport { isMobile } from 'react-device-detect';\r\nimport Config from '../../data/SiteConfig';\r\nlet urlPattern = '';\r\nexport default class OrderFailed extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.goBack = this.goBack.bind(this);\r\n this.gotocart = this.gotocart.bind(this);\r\n this.gotoMyOrders = this.gotoMyOrders.bind(this);\r\n this.state = {\r\n cartValue: 1500,\r\n loading: false,\r\n orderId: ''\r\n }\r\n }\r\n componentWillMount() {\r\n if (Config.IsMobileAccess) {\r\n if (!isMobile) {\r\n this.props.history.push('/deviceerror' + urlPattern);\r\n return false;\r\n }\r\n }\r\n sessionStorage.removeItem('redirect-page');\r\n const sessionDt = sessionStorage.getItem(\"u-l-v-url-dt\");\r\n if (!sessionDt) {\r\n this.props.history.push('/sessionerror' + urlPattern);\r\n return false;\r\n }\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n if (!urlPattern) {\r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n // this.setState({ loading: true });\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/items');\r\n // }, 900000);\r\n\r\n sessionStorage.removeItem(\"paymentInitiatedId\");\r\n sessionStorage.removeItem(\"vendorTransactionId\");\r\n sessionStorage.removeItem(\"vendorId\");\r\n sessionStorage.removeItem(\"vendorName\");\r\n sessionStorage.removeItem(\"paymentStatus\");\r\n sessionStorage.removeItem(\"order-instruction\");\r\n sessionStorage.removeItem(\"user-vendorOrderId\");\r\n }\r\n goBack() {\r\n // this.props.history.push('/home');\r\n }\r\n gotocart() {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/cart' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n\r\n }\r\n gotoMyOrders() {\r\n // this.props.history.push('/myorders');\r\n }\r\n render() {\r\n return (\r\n
    \r\n {this.state.loading && }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {sessionStorage.getItem(\"user-propertyname\")}\r\n {sessionStorage.getItem(\"user-outletname\")} \r\n {/*
    \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Transaction Failed.
    \r\n
    Please Try Again
    \r\n
    \r\n
    \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, { Component } from 'react';\r\nimport './logout.scss';\r\nimport LoadingAnimation from '../../components/checkmarkanimation';\r\n\r\nexport default class Logout extends Component {\r\n\r\n componentWillMount() {\r\n \r\n sessionStorage.removeItem('user-orgnationid');\r\n sessionStorage.removeItem('user-propertyid');\r\n sessionStorage.removeItem('user-propertyname');\r\n sessionStorage.removeItem('user-outletcode');\r\n sessionStorage.removeItem('user-tableno');\r\n sessionStorage.removeItem('user-servicetype');\r\n sessionStorage.removeItem('user-organizationname');\r\n sessionStorage.removeItem('user-outletname');\r\n sessionStorage.removeItem('user-mobileno');\r\n sessionStorage.removeItem('user-token');\r\n\r\n\r\n sessionStorage.removeItem('getMenuGroups');\r\n sessionStorage.removeItem('getModifierGroups');\r\n sessionStorage.removeItem('getTaxes');\r\n sessionStorage.removeItem('getmenuItems');\r\n sessionStorage.removeItem('getCharges');\r\n\r\n\r\n sessionStorage.removeItem('cartList');\r\n sessionStorage.removeItem('modifierCartList');\r\n sessionStorage.removeItem('taxCartList');\r\n sessionStorage.removeItem('chargeCartList');\r\n\r\n\r\n sessionStorage.removeItem(\"paymentInitiatedId\");\r\n sessionStorage.removeItem(\"vendorTransactionId\");\r\n sessionStorage.removeItem(\"vendorId\");\r\n sessionStorage.removeItem(\"vendorName\");\r\n sessionStorage.removeItem(\"paymentStatus\");\r\n sessionStorage.removeItem(\"order-instruction\");\r\n sessionStorage.removeItem('otpReferenceId');\r\n sessionStorage.removeItem(\"user-vendorOrderId\");\r\n sessionStorage.removeItem(\"user-table-verified\");\r\n sessionStorage.removeItem(\"user-outletDetails\");\r\n sessionStorage.removeItem(\"user-loggedin-date\");\r\n sessionStorage.removeItem('user-digitalMenu');\r\n sessionStorage.removeItem(\"ebillUrl\");\r\n sessionStorage.removeItem(\"isPay\");\r\n sessionStorage.removeItem(\"posBillId\");\r\n sessionStorage.removeItem('otp-exp-duration');\r\n sessionStorage.removeItem('user-statsid');\r\n sessionStorage.removeItem('main-guest-mask-no');\r\n sessionStorage.removeItem('main-guest-no');\r\n sessionStorage.removeItem('group-session');\r\n sessionStorage.removeItem('group-pin');\r\n\r\n sessionStorage.removeItem('guest-name');\r\n sessionStorage.removeItem('user-loggedin');\r\n sessionStorage.removeItem(\"login-page-session\"); // Cart Session\r\n sessionStorage.removeItem(\"on-click-mode\"); // Cart Session\r\n sessionStorage.removeItem('main-guest-name');\r\n sessionStorage.removeItem('ex-main-guest-no');\r\n sessionStorage.removeItem('cms-logo');\r\n sessionStorage.removeItem('user-CurrentAddress');\r\n sessionStorage.removeItem('url-remarks');\r\n sessionStorage.removeItem('user-GuestDetails');\r\n sessionStorage.removeItem('pageCMSSettings');\r\n // group pin added by dasprakash on 06-10-2023 jira-1490\r\n sessionStorage.removeItem('table-pins');\r\n sessionStorage.removeItem('u-l-v-url-dt');\r\n sessionStorage.removeItem('url-pattern');\r\n localStorage.clear();\r\n \r\n }\r\n render() {\r\n return (\r\n
    \r\n {/* {loading && } */}\r\n
    \r\n
    \r\n {/* \"\" */}\r\n {/* \"lucid-contactless-food-ordering\" */}\r\n\r\n
    \r\n
    \r\n
    You have logged out successfully.
    \r\n
    Thank You!
    \r\n
    \r\n
    \r\n {/* \"\" */}\r\n
    \r\n
    \r\n )\r\n }\r\n}","import React, { Component } from 'react';\r\nimport './login.scss';\r\nimport ErrorAlert from '../../components/alertmessages';\r\nimport LoadingAnimation from '../../components/loadinganimation/login';\r\nimport Config from '../../data/SiteConfig';\r\nimport { isMobile } from 'react-device-detect';\r\nimport sHelpers from '../../modules/helpers/statichelpers';\r\n//import Cookies from 'universal-cookie';\r\nimport Slider from \"react-slick\";\r\nimport Header from '../../components/Header';\r\nconst homeslidersettings = {\r\n autoplay: true,\r\n dots: true,\r\n infinite: true,\r\n arrows: false,\r\n speed: 300,\r\n slidesToShow: 1,\r\n adaptiveHeight: false\r\n};\r\n\r\nlet tableNo = '';\r\nlet serviceType = '';\r\nlet orgnationId = '';\r\nlet propertyId = '';\r\nlet outletCode = '';\r\nlet mobileNo = '';\r\nlet token = '';\r\nlet urlPattern = '';\r\nexport default class TableVerification extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n loading: false,\r\n mobileNo: '',\r\n orgId: 0,\r\n propertyId: '',\r\n outletCode: '',\r\n tableNo: '',\r\n serviceType: '',\r\n pin: '',\r\n alertMessage: '',\r\n msgType: '',\r\n msgShow: false,\r\n redirectCart: false,\r\n sliderImages: [\r\n {\r\n altName: \"\",\r\n sortOrder: 0,\r\n bannerType: 0,\r\n height: 0,\r\n imageName: \"\",\r\n imagePathName: \"\",\r\n primaryImageType: \"\",\r\n secondaryImageType: \"\",\r\n bannerName: \"Slide 1\",\r\n primaryImageUrl: \"/img/slider/login-verification-df-lucid.jpg\",\r\n secondaryImageUrl: \"\",\r\n status: 0,\r\n width: 0\r\n }\r\n ],\r\n loggedIn: false,\r\n }\r\n }\r\n componentWillMount() {\r\n if (Config.IsMobileAccess) {\r\n if (!isMobile) {\r\n this.props.history.push('/deviceerror' + urlPattern);\r\n return false;\r\n }\r\n }\r\n\r\n tableNo = localStorage.getItem('user-tableno');\r\n serviceType = localStorage.getItem('user-servicetype');\r\n orgnationId = localStorage.getItem('user-orgnationid');\r\n propertyId = localStorage.getItem('user-propertyid');\r\n outletCode = localStorage.getItem('user-outletcode');\r\n mobileNo = localStorage.getItem('user-mobileno');\r\n token = localStorage.getItem('user-token');\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n\r\n const sessionDt = localStorage.getItem(\"u-l-v-url-dt\");\r\n if (!sessionDt) {\r\n this.props.history.push('/sessionerror' + urlPattern);\r\n return false;\r\n }\r\n if (!urlPattern) { \r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n \r\n if (tableNo === undefined || tableNo === \"\" || tableNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (serviceType === undefined || serviceType === \"\" || serviceType === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (orgnationId === undefined || orgnationId === \"\" || orgnationId === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (propertyId === undefined || propertyId === \"\" || propertyId === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (outletCode === undefined || outletCode === \"\" || outletCode === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (mobileNo === undefined || mobileNo === \"\" || mobileNo === null) {\r\n this.setState({ loading: true });\r\n this.showMessage('Invalid Mobile Number', \"danger\");\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/login' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n\r\n if (this.props.location.state !== undefined) {\r\n if (this.props.location.state.redirectCart === undefined || this.props.location.state.redirectCart === null || this.props.location.state.redirectCart === '') {\r\n this.setState({ redirectCart: false });\r\n localStorage.removeItem('user-table-verified');\r\n }\r\n else {\r\n this.setState({ redirectCart: this.props.location.state.redirectCart });\r\n }\r\n }\r\n this.getCMSDetails(); //Get CMS Page\r\n }\r\n\r\n handlechange = event => {\r\n const value = event.target.value;\r\n this.setState({ pin: value });\r\n // console.log(value);\r\n };\r\n\r\n handleClick = (e) => {\r\n e.preventDefault();\r\n // console.log(this.state.pin);\r\n\r\n this.setState({ loading: true });\r\n\r\n if (this.state.pin === \"\") {\r\n this.showMessage(\"Please enter the valid PIN No.\", \"info\")\r\n return false;\r\n }\r\n\r\n let postObj = {\r\n OutletId: propertyId + outletCode,\r\n GuestName: \" \",\r\n MobileNo: mobileNo,\r\n PIN: this.state.pin,\r\n TableNumber: tableNo\r\n }\r\n\r\n fetch(Config.basePOSUrl + 'VerifyPin', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n if (response.errorCode === 0) {\r\n localStorage.setItem('user-table-verified', true);\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n if (this.state.redirectCart)\r\n this.props.history.push('/cart' + urlPattern);\r\n else {\r\n // set Logged in Date \r\n let loggedIn = sHelpers.getFormattedDate(new Date());\r\n localStorage.setItem('user-loggedin-date', loggedIn);\r\n\r\n this.props.history.push('/home' + urlPattern);\r\n }\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n localStorage.removeItem('user-table-verified');\r\n // console.log(response.message);\r\n this.showMessage(response.message, \"danger\");\r\n }\r\n })\r\n .catch(err => {\r\n localStorage.removeItem('user-table-verified');\r\n // console.log(err);\r\n this.showMessage(\"An error occured\", \"danger\");\r\n });\r\n };\r\n getCMSDetails() {\r\n let postobj = {\r\n organizationId: parseInt(orgnationId),\r\n propertyId: propertyId,\r\n outletCode: outletCode,\r\n ServiceMode: serviceType,\r\n ApplicationCode: Config.applicationCode,\r\n PageId: Config.pageIds.login, // Default Login\r\n PageType: Config.pageType.login, // Login \r\n RequestIp: \"\",\r\n username: Config.cmsUserName,\r\n password: Config.cmsPassword\r\n }\r\n\r\n fetch(Config.baseAPIUrl + 'PageDetails', {\r\n method: 'POST',\r\n headers: {\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postobj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.isSuccessful) {\r\n\r\n // Slider \r\n if (response.banners.filter(i => i.bannerType === Config.bannerImageType.Slider) !== null && response.banners.filter(i => i.bannerType === Config.bannerImageType.Slider).length > 0)\r\n this.setState({ sliderImages: response.banners.filter(i => i.bannerType === Config.bannerImageType.Slider) });\r\n\r\n // if (response.page != null) {\r\n // if (response.page.preview !== '')\r\n // this.setState({ pageContent: response.page.content, pagePreview: response.page.preview });\r\n\r\n // }\r\n }\r\n\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n //this.showMessage(\"CMS - Failed to fetch\", \"danger\");\r\n });\r\n }\r\n showMessage(msg, type) {\r\n window.scrollTo(0, 0);\r\n this.setState({ msgShow: true });\r\n this.setState({ msgType: type });\r\n this.setState({ alertMessage: msg });\r\n this.setState({ loading: false });\r\n setTimeout(() => {\r\n this.setState({ msgShow: false });\r\n }, Config.minMsgTimeout);\r\n };\r\n render() {\r\n const { loading } = this.state;\r\n\r\n return (\r\n
    \r\n {loading &&\r\n \r\n }\r\n
    \r\n {this.state.msgShow && }\r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n \"slider\"\r\n
    \r\n
    */}\r\n
    \r\n \r\n {this.state.sliderImages.map(img =>\r\n
    \r\n \"lucid-slider-contact-less-order\"\r\n
    \r\n )}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \"lucid-contactless-app-user-table-service\"
    \r\n
    Confirm Table
    \r\n
    Table No: {tableNo}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n this.handlechange(e)} ref={(input) => { this.nameInput = input; }} name=\"input-table-pin\" id=\"input-table-pin\" placeholder=\"Enter PIN\" maxLength=\"6\" autoFocus autoComplete=\"off\" />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \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, { Component } from 'react';\r\nimport './qrcodeerror.scss';\r\n\r\nexport default class DeviceError extends Component {\r\n\r\n componentWillMount() {\r\n localStorage.clear();\r\n sessionStorage.removeItem('user-orgnationid');\r\n sessionStorage.removeItem('user-propertyid');\r\n sessionStorage.removeItem('user-propertyname');\r\n sessionStorage.removeItem('user-outletcode');\r\n sessionStorage.removeItem('user-tableno');\r\n sessionStorage.removeItem('user-servicetype');\r\n sessionStorage.removeItem('user-organizationname');\r\n sessionStorage.removeItem('user-outletname');\r\n sessionStorage.removeItem('user-mobileno');\r\n sessionStorage.removeItem('user-token');\r\n\r\n\r\n sessionStorage.removeItem('getMenuGroups');\r\n sessionStorage.removeItem('getModifierGroups');\r\n sessionStorage.removeItem('getTaxes');\r\n sessionStorage.removeItem('getmenuItems');\r\n sessionStorage.removeItem('getCharges');\r\n\r\n\r\n sessionStorage.removeItem('cartList');\r\n sessionStorage.removeItem('modifierCartList');\r\n sessionStorage.removeItem('taxCartList');\r\n sessionStorage.removeItem('chargeCartList');\r\n\r\n\r\n sessionStorage.removeItem(\"paymentInitiatedId\");\r\n sessionStorage.removeItem(\"vendorTransactionId\");\r\n sessionStorage.removeItem(\"vendorId\");\r\n sessionStorage.removeItem(\"vendorName\");\r\n sessionStorage.removeItem(\"paymentStatus\");\r\n sessionStorage.removeItem(\"order-instruction\");\r\n sessionStorage.removeItem('otpReferenceId');\r\n sessionStorage.removeItem(\"user-vendorOrderId\");\r\n sessionStorage.removeItem(\"user-table-verified\");\r\n sessionStorage.removeItem(\"user-outletDetails\");\r\n sessionStorage.removeItem('payAmount');\r\n sessionStorage.removeItem('pageCMSSettings');\r\n sessionStorage.removeItem('user-digitalMenu');\r\n sessionStorage.removeItem(\"user-loggedin-date\");\r\n sessionStorage.removeItem(\"ebillUrl\");\r\n sessionStorage.removeItem(\"isPay\");\r\n sessionStorage.removeItem(\"posBillId\");\r\n sessionStorage.removeItem('otp-exp-duration');\r\n sessionStorage.removeItem('user-statsid');\r\n sessionStorage.removeItem('main-guest-mask-no');\r\n sessionStorage.removeItem('main-guest-no');\r\n sessionStorage.removeItem('group-session');\r\n sessionStorage.removeItem('group-pin');\r\n sessionStorage.removeItem('guest-name');\r\n sessionStorage.removeItem('user-loggedin');\r\n sessionStorage.removeItem(\"login-page-session\"); // Cart Session\r\n sessionStorage.removeItem(\"on-click-mode\"); // Cart Session\r\n sessionStorage.removeItem('main-guest-name');\r\n sessionStorage.removeItem('user-qr-level');\r\n sessionStorage.removeItem('url-remarks');\r\n sessionStorage.removeItem('menuFetchDateTime');\r\n sessionStorage.removeItem('user-GuestDetails');\r\n sessionStorage.removeItem('user-addressId');\r\n sessionStorage.removeItem('user-CurrentAddress');\r\n sessionStorage.removeItem('prepaidCardAccountId');\r\n sessionStorage.removeItem('mobile-app');\r\n sessionStorage.removeItem('app-CountryCode');\r\n sessionStorage.removeItem('app-CountryCode');\r\n sessionStorage.removeItem('order-track-status');\r\n\r\n sessionStorage.removeItem('pageCMSSettings');\r\n sessionStorage.removeItem('menuFetchDateTime');\r\n\r\n sessionStorage.removeItem('group-pin');\r\n sessionStorage.removeItem('dashboard-hide');\r\n sessionStorage.removeItem('dashboard-hide');\r\n sessionStorage.removeItem('entered-mobile-no');\r\n sessionStorage.removeItem('entered-name');\r\n sessionStorage.removeItem('user-access-mode');\r\n sessionStorage.removeItem('otp');\r\n sessionStorage.removeItem('verified-otp');\r\n sessionStorage.removeItem('selectedClassification');\r\n sessionStorage.removeItem('dashboard-hide');\r\n sessionStorage.removeItem('order-charge-Tax-Amount');\r\n sessionStorage.removeItem('getclf');\r\n sessionStorage.removeItem('order-charge-Amount');\r\n sessionStorage.removeItem('app-ContactNo');\r\n sessionStorage.removeItem('order-charge-List');\r\n sessionStorage.removeItem('url-pattern');\r\n sessionStorage.removeItem('url-key');\r\n sessionStorage.removeItem('dt-number');\r\n sessionStorage.removeItem('uid');\r\n sessionStorage.removeItem('url-version');\r\n sessionStorage.removeItem('app-ver');\r\n sessionStorage.removeItem('user-session-id');\r\n sessionStorage.removeItem('redirect-page');\r\n\r\n }\r\n render() {\r\n return (\r\n
    \r\n {/* {loading && } */}\r\n
    \r\n
    \r\n {/* \"\" */}\r\n {/* \"lucid-contactless-food-ordering\" */}\r\n\r\n
    \r\n \"lucid-device-error\"\r\n
    Device not supported
    \r\n {/*
    404 - Page Not Found.
    */}\r\n
    Sorry, Web App doesn’t have a desktop version.\r\n
    Please use a mobile device for the best experience.
    \r\n {/*
    The page you are looking for might have been removed
    \r\n had its name changed or is temporarily unavailable.\r\n
    */}\r\n
    \r\n
    \r\n {/* \"\" */}\r\n
    \r\n
    \r\n )\r\n }\r\n}","import React, { Component } from 'react';\r\nimport './qrcodeerror.scss';\r\n\r\nexport default class Orientation extends Component { \r\n render()\r\n {\r\n return(\r\n
    \r\n {/* {loading && } */}\r\n
    \r\n
    \r\n {/* \"\" */}\r\n {/* \"lucid-contactless-food-ordering\" */}\r\n \r\n
    \r\n {/* \"lucid-device-error\"/ */}\r\n
    Rotate Your Device
    \r\n {/*
    404 - Page Not Found.
    */}\r\n
    We do not support landscape mode yet.\r\n
    Please go back to portrait mode for the best experience.\r\n
    \r\n {/*
    The page you are looking for might have been removed
    \r\n had its name changed or is temporarily unavailable.\r\n
    */}\r\n
    \r\n
    \r\n {/* \"\" */}\r\n
    \r\n
    \r\n )\r\n }\r\n}","import React, { Component, Fragment } from 'react';\r\nimport './process.scss';\r\n//import LoadingAnimation from '../../components/loadinganimation/paymentloading';\r\nimport LoadingAnimation from '../../components/loadinganimation';\r\nimport Config from '../../data/SiteConfig';\r\nimport ErrorAlert from '../../components/alertmessages';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\n//import uuid from 'react-uuid';\r\nlet mobileNo = '';\r\nlet token = '';\r\nlet tableNo = '';\r\nlet serviceType = '';\r\nlet orgnationTd = '';\r\nlet propertyId = '';\r\nlet outletCode = '';\r\nlet olDetail = {};\r\nlet outletDetails = null;\r\nlet mainGuestMobileNo = '';\r\nlet urlPattern = '';\r\nexport default class ProcessRequest extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.goBack = this.goBack.bind(this);\r\n this.gotoThirdParty = this.gotoThirdParty.bind(this);\r\n this.state = {\r\n cartValue: 0,\r\n paymentList: [\r\n { vendorId: 3, vendorName: \"Razorpay\", imgUrl: \"/img/payment/razorpay.png\" },\r\n { vendorId: 2, vendorName: \"Instamojo\", imgUrl: \"/img/payment/instamojo.png\" },\r\n // { paymentId: 2, paymentName: \"CCAvenue\", imgUrl: \"../assets/theme1/img/payment/ccavenue.png\" },\r\n // { paymentId: 3, paymentName: \"Paytm\", imgUrl: \"../assets/theme1/img/payment/paytm.png\" },\r\n // { paymentId: 4, paymentName: \"GPay\", imgUrl: \"../assets/theme1/img/payment/gpay.png\" },\r\n // { paymentId: 5, paymentName: \"PhonePe\", imgUrl: \"../assets/theme1/img/payment/phonepe.png\" },\r\n ],\r\n onlineWalletVendorsList: [\r\n { vendorId: 1, vendorName: \"LUCID Prepaid Card\", imgUrl: \"/img/payment/lucid-prepadicard.png\" }\r\n ],\r\n loading: false,\r\n alertMessage: '',\r\n msgShow: false,\r\n totalNetAmount: 0,\r\n vendorKey: '',\r\n vendorTransactionId: '',\r\n vendorOrderId: '',\r\n paymentVendorLogo: ''\r\n }\r\n }\r\n\r\n componentWillMount() {\r\n if (Config.IsMobileAccess) {\r\n if (!isMobile) {\r\n this.props.history.push('/deviceerror' + urlPattern);\r\n return false;\r\n }\r\n }\r\n\r\n mobileNo = sessionStorage.getItem('user-mobileno');\r\n token = sessionStorage.getItem('user-token');\r\n tableNo = sessionStorage.getItem('user-tableno');\r\n serviceType = sessionStorage.getItem('user-servicetype');\r\n orgnationTd = sessionStorage.getItem('user-orgnationid');\r\n propertyId = sessionStorage.getItem('user-propertyid');\r\n outletCode = sessionStorage.getItem('user-outletcode');\r\n outletDetails = sessionStorage.getItem('user-outletDetails');\r\n mainGuestMobileNo = sessionStorage.getItem('main-guest-no') == null ? '' : sessionStorage.getItem('main-guest-no');\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n // console.log(mobileNo);\r\n // console.log(token);\r\n // console.log(tableNo);\r\n // console.log(serviceType);\r\n // console.log(orgnationTd);\r\n // console.log(propertyId);\r\n // console.log(outletCode);\r\n const sessionDt = sessionStorage.getItem(\"u-l-v-url-dt\");\r\n if (!sessionDt) {\r\n this.props.history.push('/sessionerror' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (!urlPattern) {\r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n if (token === undefined || token === \"\" || token === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (mobileNo === undefined || mobileNo === \"\" || mobileNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (tableNo === undefined || tableNo === \"\" || tableNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (serviceType === undefined || serviceType === \"\" || serviceType === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (orgnationTd === undefined || orgnationTd === \"\" || orgnationTd === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (propertyId === undefined || propertyId === \"\" || propertyId === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (outletCode === undefined || outletCode === \"\" || outletCode === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (outletDetails === undefined || outletDetails === \"\" || outletDetails === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n else {\r\n olDetail = JSON.parse(outletDetails);\r\n this.setState({ paymentVendorLogo: olDetail.outletImageUrl !== '' ? olDetail.outletImageUrl : \"https://cdn.razorpay.com/logos/BUVwvgaqVByGp2_large.png\" });\r\n // if (olDetail.paymentVendors.length === 1) // Single Vendor to direct\r\n if (olDetail.paymentVendors.length === 1 && olDetail.onlineWalletVendors.length === 0) // Single Vendor to direct\r\n this.gotoThirdParty(olDetail.paymentVendors[0].vendorId, olDetail.paymentVendors[0].vendorName);\r\n }\r\n if (this.props.location.state !== undefined) {\r\n if (this.props.location.state.totalNetAmount === undefined || this.props.location.state.totalNetAmount === null || this.props.location.state.totalNetAmount === 0) {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/mybills' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n if (this.props.location.state.totalNetAmount === 0) {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/mybills' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n\r\n this.setState({\r\n totalNetAmount: this.props.location.state.totalNetAmount\r\n })\r\n }\r\n }\r\n else {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/mybills' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n submitClick = (e) => {\r\n e.preventDefault();\r\n\r\n // e.preventDefault();\r\n e.click();\r\n //this.inputElement.click();\r\n }\r\n\r\n goBack() {\r\n //this.props.history.goBack();\r\n this.props.history.push('/mybills' + urlPattern);\r\n }\r\n gotoThirdParty(vendorId, vendorName) {\r\n //e.preventDefault(); \r\n this.setState({ loading: true });\r\n\r\n setTimeout(() => {\r\n var postObj = {\r\n OutletId: propertyId + outletCode,\r\n PaymentVendorId: vendorId,\r\n Amount: this.state.totalNetAmount.toFixed(2),\r\n GuestName: sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\"),\r\n MobileNoCountryCode: \"91\",\r\n // MobileNo: mainGuestMobileNo,\r\n MobileNo: (mainGuestMobileNo === '' || mainGuestMobileNo === \"0000000000\") ? mobileNo : mainGuestMobileNo,\r\n EmailId: \"\",\r\n OrderId: \"\",\r\n BillId: \"\",\r\n RedirectUrl: Config.redirectPostPaidUrl\r\n }\r\n\r\n // console.log(postObj);\r\n // API Call\r\n fetch(Config.basePaymentUrl + 'InitiateOnlinePayment', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n if (response.errorCode === 0) {\r\n // console.log(response);\r\n setTimeout(() => {\r\n sessionStorage.setItem(\"paymentInitiatedId\", response.response.paymentInitiatedId);\r\n sessionStorage.setItem(\"vendorTransactionId\", response.response.vendorTransactionId);\r\n sessionStorage.setItem(\"vendorId\", vendorId);\r\n sessionStorage.setItem(\"vendorName\", vendorName);\r\n sessionStorage.setItem(\"paymentStatus\", response.response.status);\r\n sessionStorage.setItem(\"payAmount\", this.state.totalNetAmount.toFixed(2));\r\n if (vendorId === 2) { // instamojo \r\n window.location.href = response.response.vendorRedirectUrl;\r\n sessionStorage.setItem('redirect-page', \"processverification\");\r\n }\r\n else if (vendorId === 3) { // Razor Pay\r\n this.setState({\r\n vendorTransactionId: response.response.vendorTransactionId,\r\n vendorKey: response.response.vendorKey\r\n })\r\n setTimeout(() => {\r\n sessionStorage.setItem('redirect-page', \"processverification\");\r\n this.inputElement.click();\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n this.setState({ loading: true });\r\n this.showMessage('OOPS! Initial transaction failed. Please try again', \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/mybills' + urlPattern); }, 1500);\r\n }\r\n //window.location.href =\"https://www.instamojo.com/@gatewayofficeparks/c57b613d098242c4adf6893321a78b35\";\r\n // this.props.history.push('/paymentVerification?payment_status=Failed');\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n // console.log(response.message);\r\n this.setState({ loading: true });\r\n this.showMessage('OOPS! Initial transaction failed [' + response.message + ']. Please try again', \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/mybills' + urlPattern); }, 1500);\r\n }\r\n })\r\n .catch(err => {\r\n // console.log(err);\r\n this.setState({ loading: true });\r\n this.showMessage('OOPS! Initial transaction failed. Please try again', \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/mybills' + urlPattern); }, 1500);\r\n });\r\n }, 2000);\r\n\r\n\r\n }\r\n\r\n handlePrepaidCardBalance(vendorId, vendorName, rowId) {\r\n this.setState({ loading: true });\r\n // this.handleMultiPrepaidCardAccountBalance(vendorId, []);\r\n\r\n var postObj = {\r\n OutletId: propertyId + outletCode,\r\n VendorId: vendorId,\r\n // GuestMobileNo: mainGuestMobileNo\r\n GuestMobileNo: (mainGuestMobileNo === '' || mainGuestMobileNo === \"0000000000\") ? mobileNo : mainGuestMobileNo\r\n }\r\n // console.log(postObj);\r\n // API Call\r\n fetch(Config.basePOSUrl + 'GetGuestOnlineWalletDetails', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n // console.log(response);\r\n if (response.errorCode === 0) {\r\n if (response.response != null) {\r\n let activeCardList = response.response.walletDetails.filter(c => c.remarks === \"Card is Valid\");\r\n if (activeCardList.length > 0) {\r\n this.setState({ loading: false });\r\n confirmAlert({\r\n customUI: ({ onClose }) => {\r\n return (\r\n
    \r\n
    Select card to pay
    \r\n
    {this.state.totalItems} items, To pay: ₹{this.state.totalNetAmount.toFixed(2)}
    \r\n
      \r\n {\r\n activeCardList.map((acc, idx) =>\r\n
    • \r\n {acc.availableBalance > this.state.totalNetAmount &&\r\n
      \r\n {acc.accountId}Pay\r\n Wallet Balance ₹{acc.availableBalance} \r\n
      \r\n }\r\n {acc.availableBalance < this.state.totalNetAmount &&\r\n
      \r\n {acc.accountId}\r\n Insufficient Wallet Balance ₹{acc.availableBalance} \r\n
      \r\n }\r\n
    • \r\n )\r\n }\r\n\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n });\r\n }\r\n // else if (activeCardList.length === 1) {\r\n // const payclick = document.getElementById(\"\" + rowId + \"\");\r\n // payclick.innerHTML = 'Pay ₹' + activeCardList[0].availableBalance + ''; //'Pay ₹' + activeCardList[0].availableBalance + '';\r\n // // payclick.onClick(this.gotoPrepaidCardVerification.bind(this, vendorId, vendorName, activeCardList[0].accountId, null));\r\n // //document.getElementById(\"\" + rowId + \"\").innerHTML = this.SingleCardPayDom(vendorId, vendorName, activeCardList[0].accountId, activeCardList[0].availableBalance); // 'Pay ₹' + activeCardList[0].availableBalance + '';\r\n // }\r\n else {\r\n this.showMessage('OOPS! Card detail is not available', \"danger\");\r\n }\r\n }\r\n }\r\n else {\r\n // console.log(response.message);\r\n this.showMessage('OOPS! Get Balance failed [' + response.message + ']. Please try again', \"danger\");\r\n }\r\n this.setState({ loading: false });\r\n })\r\n .catch(err => {\r\n //console.log(err);\r\n this.setState({ loading: false });\r\n this.showMessage('OOPS! Get Balance failed. Please try again', \"danger\");\r\n });\r\n }\r\n\r\n gotoPrepaidCardVerification(vendorId, vendorName, accountId, close) {\r\n if (close != null) close();\r\n this.setState({ loading: true });\r\n if (sessionStorage.getItem('user-vendorOrderId') === undefined || sessionStorage.getItem('user-vendorOrderId') === null || sessionStorage.getItem('user-vendorOrderId') === '') {\r\n this.setState({ loading: false });\r\n this.showMessage('OOPS! Initial transaction failed. Please try again', \"danger\");\r\n setTimeout(() => {\r\n this.props.history.push('/mybills' + urlPattern);\r\n }, 1500);\r\n\r\n return false;\r\n }\r\n\r\n sessionStorage.setItem(\"vendorId\", vendorId);\r\n sessionStorage.setItem(\"vendorName\", vendorName);\r\n sessionStorage.setItem(\"prepaidCardAccountId\", accountId);\r\n\r\n setTimeout(() => {\r\n this.props.history.push('/prepaidcardverification' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n\r\n }\r\n showMessage(msg, type) {\r\n window.scrollTo(0, 0);\r\n this.setState({ msgShow: true });\r\n this.setState({ msgType: type });\r\n this.setState({ alertMessage: msg });\r\n this.setState({ loading: false });\r\n setTimeout(() => {\r\n this.setState({ msgShow: false });\r\n }, Config.minMsgTimeout);\r\n };\r\n\r\n render() {\r\n\r\n return (\r\n
    {this.state.loading && }\r\n
    \r\n {this.state.msgShow && }\r\n
    \r\n
    \r\n
    \r\n Payments\r\n To pay: ₹{this.state.totalNetAmount.toFixed(2)} \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n this.state.paymentList.map((pay, i) => {\r\n return (\r\n \r\n {\r\n // olDetail.paymentVendors.length > 1 &&\r\n // olDetail.paymentVendors.filter(x => x.vendorId === pay.vendorId).length > 0 &&\r\n (olDetail.paymentVendors.length > 1 || olDetail.onlineWalletVendors.length > 0) &&\r\n olDetail.paymentVendors.filter(x => x.vendorId === pay.vendorId).length > 0 &&\r\n
    \"\"{pay.vendorName}
    \r\n }\r\n
    \r\n );\r\n })\r\n }\r\n {\r\n this.state.onlineWalletVendorsList.map((pay, i) => {\r\n return (\r\n \r\n {\r\n // olDetail.paymentVendors.length > 1 &&\r\n olDetail.onlineWalletVendors.filter(x => x.vendorId === pay.vendorId).length > 0 &&\r\n
    \"\"{pay.vendorName}
    \r\n }\r\n
    \r\n\r\n );\r\n })\r\n }\r\n {\r\n (olDetail.paymentVendors.length === 1 && olDetail.onlineWalletVendors.length === 0) &&
    Please wait...
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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, { Component } from \"react\"\r\nimport './process.scss';\r\n//import LoadingAnimation from '../../components/loadinganimation/verificationloading';\r\n// import LoadingAnimation from '../../components/loadinganimation/paymentloading';\r\nimport LoadingAnimation from '../../components/loadinganimation';\r\nimport * as QueryString from \"query-string\"\r\nimport Config from '../../data/SiteConfig';\r\nimport ErrorAlert from '../../components/alertmessages';\r\nimport { isMobile } from 'react-device-detect';\r\n//import uuid from 'react-uuid';\r\nlet mobileNo = '';\r\nlet token = '';\r\nlet tableNo = '';\r\nlet serviceType = '';\r\nlet orgnationTd = '';\r\nlet propertyId = '';\r\nlet outletCode = '';\r\nlet paymentInitiatedId = '';\r\nlet vendorTransactionId = '';\r\nlet vendorId = '';\r\nlet vendorName = '';\r\nlet totalAmount = 0;\r\nlet mainGuestMobileNo = '';\r\nlet urlPattern = '';\r\nexport default class ProcessVerification extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loading: false,\r\n alertMessage: '',\r\n msgShow: false,\r\n paymentInitiatedId: \"\",\r\n statusMsg: \"\"\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if (Config.IsMobileAccess) {\r\n if (!isMobile) {\r\n this.props.history.push('/deviceerror' + urlPattern);\r\n return false;\r\n }\r\n }\r\n sessionStorage.removeItem('redirect-page');\r\n\r\n let inputParam = QueryString.parse(window.location.search);\r\n let vendorPaymentStatus = inputParam.payment_status;\r\n this.setState({ statusMsg: \"Processing Your Request\" });\r\n // console.log(inputParam);\r\n\r\n mobileNo = sessionStorage.getItem('user-mobileno');\r\n token = sessionStorage.getItem('user-token');\r\n tableNo = sessionStorage.getItem('user-tableno');\r\n serviceType = sessionStorage.getItem('user-servicetype');\r\n orgnationTd = sessionStorage.getItem('user-orgnationid');\r\n propertyId = sessionStorage.getItem('user-propertyid');\r\n outletCode = sessionStorage.getItem('user-outletcode');\r\n mainGuestMobileNo = sessionStorage.getItem('main-guest-no') == null ? '' : sessionStorage.getItem('main-guest-no');\r\n\r\n paymentInitiatedId = sessionStorage.getItem('paymentInitiatedId');\r\n vendorTransactionId = sessionStorage.getItem('vendorTransactionId');\r\n vendorId = sessionStorage.getItem('vendorId');\r\n vendorName = sessionStorage.getItem('vendorName');\r\n totalAmount = sessionStorage.getItem('payAmount');\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n\r\n const sessionDt = sessionStorage.getItem(\"u-l-v-url-dt\");\r\n if (!sessionDt) {\r\n this.props.history.push('/sessionerror' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (!urlPattern) {\r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n if (token === undefined || token === \"\" || token === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (mobileNo === undefined || mobileNo === \"\" || mobileNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (tableNo === undefined || tableNo === \"\" || tableNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (serviceType === undefined || serviceType === \"\" || serviceType === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (orgnationTd === undefined || orgnationTd === \"\" || orgnationTd === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (propertyId === undefined || propertyId === \"\" || propertyId === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (outletCode === undefined || outletCode === \"\" || outletCode === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (paymentInitiatedId === undefined || paymentInitiatedId === \"\" || paymentInitiatedId === null) {\r\n this.showMessage('Transaction failed. Please try again', \"danger\");\r\n this.setState({ loading: true });\r\n setTimeout(() => { this.props.history.push('/mybills' + urlPattern); }, Config.averageMsgTimeout);\r\n return false;\r\n }\r\n\r\n window.scrollTo(0, 0);\r\n\r\n if (vendorPaymentStatus !== null && vendorPaymentStatus !== \"Failed\") {\r\n // API Call\r\n this.handleCheckPaymentStatus();\r\n }\r\n else {\r\n sessionStorage.removeItem(\"paymentInitiatedId\");\r\n sessionStorage.removeItem(\"vendorTransactionId\");\r\n sessionStorage.removeItem(\"vendorId\");\r\n sessionStorage.removeItem(\"vendorName\");\r\n sessionStorage.removeItem(\"paymentStatus\");\r\n sessionStorage.removeItem('payAmount');\r\n this.setState({ loading: false, statusMsg: \"Redirecting...\" });\r\n this.showMessage('Transaction failed. Please try again', \"danger\");\r\n setTimeout(() => { this.setState({ loading: true }); setTimeout(() => { this.props.history.push('/mybills' + urlPattern); }, Config.averageMsgTimeout); }, Config.averageMsgTimeout);\r\n }\r\n }\r\n handleCheckPaymentStatus() {\r\n\r\n this.setState({ loading: true });\r\n fetch(Config.basePaymentUrl + 'GetPaymentStatus?PaymentInitiatedId=' + paymentInitiatedId, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n if (response.errorCode === 0) {\r\n setTimeout(() => {\r\n // console.log(response);\r\n if (response.response.status === \"SUCCESS\") {\r\n this.handleBillandSettle();\r\n }\r\n else if (response.response.status === \"PENDING\") {\r\n setTimeout(() => {\r\n this.handleCheckPaymentStatus();\r\n }, Config.averageMsgTimeout);\r\n }\r\n else {\r\n this.setState({ loading: true });\r\n this.setState({ statusMsg: \"Transaction failed. Please try again\" });\r\n this.showMessage('Transaction failed. Please try again', \"danger\");\r\n setTimeout(() => { this.props.history.push('/mybills' + urlPattern); }, Config.minMsgTimeout);\r\n }\r\n\r\n // window.location.href = response.response.vendorRedirectUrl;\r\n\r\n // this.props.history.push('/paymentVerification', {\r\n // getMenus: this.state.getMenus,\r\n // getItems: this.state.getItems,\r\n // getModifiers: this.state.getModifiers,\r\n // getTaxes: this.state.getTaxes,\r\n // getCharges: this.state.getCharges\r\n // });\r\n }, 2000);\r\n }\r\n else {\r\n // console.log(response.message);\r\n this.setState({ loading: true });\r\n this.showMessage(response.message, \"danger\");\r\n this.setState({ statusMsg: response.message });\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/mybills' + urlPattern); }, 1500);\r\n }\r\n })\r\n .catch(err => {\r\n // console.log(err);\r\n this.setState({ loading: true });\r\n this.showMessage('Transaction failed. Please try again', \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/mybills' + urlPattern); }, 1500);\r\n });\r\n }\r\n\r\n handleBillandSettle() {\r\n let paymentDetails = [];\r\n\r\n paymentDetails.push({\r\n PayMode: \"ONLP\", // Online Pay \r\n PaymentAmount: totalAmount,\r\n TransactionRefId: vendorTransactionId,\r\n PaymentVendorId: vendorId, // Vendor Id\r\n PaymentVendorName: vendorName\r\n });\r\n\r\n let postObj = {\r\n OutletId: propertyId + outletCode,\r\n ServiceType: serviceType,\r\n TableNumber: tableNo,\r\n OrderAmount: totalAmount,\r\n PaymentDetails: paymentDetails,\r\n GuestName: sessionStorage.getItem(\"main-guest-name\") === null ? (sessionStorage.getItem(\"guest-name\") === null ? ' ' : sessionStorage.getItem(\"guest-name\")) : sessionStorage.getItem(\"main-guest-name\"),\r\n // MobileNo: mainGuestMobileNo\r\n MobileNo: (mainGuestMobileNo === '' || mainGuestMobileNo === \"0000000000\") ? mobileNo : mainGuestMobileNo\r\n }\r\n this.setState({ loading: true });\r\n\r\n // console.log(postObj);\r\n\r\n fetch(Config.basePOSUrl + 'BillAndSettle', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n .then(res => res.json())\r\n .then(response => {\r\n if (response.errorCode === 0) {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n sessionStorage.removeItem(\"paymentInitiatedId\");\r\n sessionStorage.removeItem(\"vendorTransactionId\");\r\n sessionStorage.removeItem(\"vendorId\");\r\n sessionStorage.removeItem(\"vendorName\");\r\n sessionStorage.removeItem(\"paymentStatus\");\r\n sessionStorage.removeItem(\"payAmount\");\r\n sessionStorage.removeItem(\"order-instruction\");\r\n\r\n // console.log(response);\r\n this.props.history.push('/processsuccess' + urlPattern,\r\n {\r\n billSuccess: true\r\n });\r\n }, 2000);\r\n }\r\n else {\r\n // console.log(response.message);\r\n this.setState({ loading: true });\r\n this.showMessage(response.message, \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/mybills' + urlPattern); }, Config.minMsgTimeout);\r\n }\r\n })\r\n .catch(err => {\r\n // console.log(err);\r\n this.setState({ loading: true });\r\n this.showMessage('Error the bill was not settled', \"danger\");\r\n setTimeout(() => { this.setState({ loading: false }); this.props.history.push('/mybills' + urlPattern); }, Config.minMsgTimeout);\r\n });\r\n };\r\n\r\n showMessage(msg, type) {\r\n window.scrollTo(0, 0);\r\n this.setState({ msgShow: true });\r\n this.setState({ msgType: type });\r\n this.setState({ alertMessage: msg });\r\n this.setState({ loading: false });\r\n setTimeout(() => {\r\n this.setState({ msgShow: false });\r\n }, 2000);\r\n };\r\n\r\n render() {\r\n return (\r\n
    \r\n {this.state.loading && }\r\n
    \r\n {this.state.msgShow && }\r\n
    \r\n
    \r\n
    \r\n {sessionStorage.getItem(\"user-propertyname\")}\r\n {sessionStorage.getItem(\"user-outletname\")} - {sessionStorage.getItem(\"user-servicetype\") === \"FINE-DINE\" ? 'Table Service' : sessionStorage.getItem(\"user-servicetype\")} \r\n {/*
    \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {/*
    */}\r\n
    {this.state.statusMsg}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n}","import React, { Component } from 'react';\r\nimport './processsuccess.scss';\r\nimport LoadingAnimation from '../../components/checkmarkanimation';\r\nimport { isMobile } from 'react-device-detect';\r\nimport Config from '../../data/SiteConfig';\r\nlet urlPattern = '';\r\nexport default class ProcessSuccess extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.gotoShopping = this.gotoShopping.bind(this);\r\n this.gotoMyOrders = this.gotoMyOrders.bind(this);\r\n this.state = {\r\n cartValue: 0,\r\n loading: false,\r\n billSuccess: false\r\n }\r\n }\r\n componentWillMount() {\r\n if (Config.IsMobileAccess) {\r\n if (!isMobile) {\r\n this.props.history.push('/deviceerror' + urlPattern);\r\n return false;\r\n }\r\n }\r\n\r\n const sessionDt = sessionStorage.getItem(\"u-l-v-url-dt\");\r\n if (!sessionDt) {\r\n this.props.history.push('/sessionerror' + urlPattern);\r\n return false;\r\n }\r\n\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n if (!urlPattern) { \r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n if (this.props.location.state !== undefined) {\r\n if (this.props.location.state.billSuccess === undefined || this.props.location.state.billSuccess === null || this.props.location.state.billSuccess === false) {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/myorders' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n\r\n this.setState({\r\n billSuccess: this.props.location.state.billSuccess\r\n });\r\n }\r\n }\r\n else {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/myorders' + urlPattern);\r\n }, 200);\r\n }\r\n\r\n }\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/items' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n gotoShopping() {\r\n this.props.history.push('/items' + urlPattern);\r\n }\r\n gotoMyOrders() {\r\n this.props.history.push('/myorders' + urlPattern);\r\n }\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {sessionStorage.getItem(\"user-propertyname\")}\r\n {sessionStorage.getItem(\"user-outletname\")} - {sessionStorage.getItem(\"user-servicetype\") === \"FINE-DINE\" ? 'Table Service' : sessionStorage.getItem(\"user-servicetype\")} \r\n {/*
    \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Payment was completed successfully.
    \r\n
    Thank you!
    \r\n {/*
    Order Id : {this.state.orderId}
    */}\r\n {/*
    \r\n
    Go to Orders
    */}\r\n
    \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, { Component } from 'react';\r\nimport './processfailed.scss';\r\nimport LoadingSVGAnimation from '../../components/checkmarkanimation/failed';\r\n//import LoadingAnimation from '../../components/loadinganimation/paymentloading';\r\nimport LoadingAnimation from '../../components/loadinganimation';\r\nimport { isMobile } from 'react-device-detect';\r\nimport Config from '../../data/SiteConfig';\r\nlet urlPattern = '';\r\nexport default class ProcessFailed extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.goBack = this.goBack.bind(this);\r\n this.gotomyorders = this.gotomyorders.bind(this);\r\n this.state = {\r\n cartValue: 1500,\r\n loading: false,\r\n orderId: ''\r\n }\r\n }\r\n componentWillMount() {\r\n if (Config.IsMobileAccess) {\r\n if (!isMobile) {\r\n this.props.history.push('/deviceerror' + urlPattern);\r\n return false;\r\n }\r\n }\r\n sessionStorage.removeItem('redirect-page');\r\n const sessionDt = sessionStorage.getItem(\"u-l-v-url-dt\");\r\n if (!sessionDt) {\r\n this.props.history.push('/sessionerror' + urlPattern);\r\n return false;\r\n }\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n if (!urlPattern) {\r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n // this.setState({ loading: true });\r\n // setTimeout(() => {\r\n // this.setState({ loading: false });\r\n // this.props.history.push('/items');\r\n // }, 900000);\r\n\r\n sessionStorage.removeItem(\"paymentInitiatedId\");\r\n sessionStorage.removeItem(\"vendorTransactionId\");\r\n sessionStorage.removeItem(\"vendorId\");\r\n sessionStorage.removeItem(\"vendorName\");\r\n sessionStorage.removeItem(\"paymentStatus\");\r\n sessionStorage.removeItem(\"payAmount\");\r\n\r\n }\r\n goBack() {\r\n // this.props.history.push('/home');\r\n }\r\n gotomyorders() {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/mybills' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n {this.state.loading && }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {sessionStorage.getItem(\"user-propertyname\")}\r\n {sessionStorage.getItem(\"user-outletname\")} - {sessionStorage.getItem(\"user-servicetype\") === \"FINE-DINE\" ? 'Table Service' : sessionStorage.getItem(\"user-servicetype\")} \r\n {/*
    \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Transaction Failed.
    \r\n
    Please Try Again
    \r\n
    \r\n
    \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, { Component, Fragment } from 'react';\r\nimport './mybills.scss';\r\nimport LoadingAnimation from '../../components/loadinganimation';\r\n//import * as QueryString from \"query-string\"\r\nimport Config from '../../data/SiteConfig';\r\nimport ErrorAlert from '../../components/alertmessages';\r\nimport { isMobile } from 'react-device-detect';\r\nimport enmConfig from '../../data/enumConfig';\r\nlet mobileNo = '';\r\nlet token = '';\r\nlet tableNo = '';\r\nlet serviceType = '';\r\nlet orgnationTd = '';\r\nlet propertyId = '';\r\nlet outletCode = '';\r\nlet loadcomfn = null;\r\nlet outletDetailsStr = null;\r\nlet outletDetails = {};\r\nlet urlPattern = '';\r\nexport default class MyOrders extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.goBack = this.goBack.bind(this);\r\n this.GetUpdateOrders = this.GetUpdateOrders.bind(this);\r\n this.handleProcessRequest = this.handleProcessRequest.bind(this);\r\n this.gotoShopping = this.gotoShopping.bind(this);\r\n this.state = {\r\n cartValue: 1500,\r\n loading: false,\r\n alertMessage: '',\r\n msgShow: false,\r\n billMsg: '',\r\n billErrorMsg: '',\r\n refreshSpin: 0,\r\n billhidden: '',\r\n orderhidden: 'active',\r\n totalOrderAmount: 0,\r\n totalOrderDetail: [],\r\n totalOrderSubTotal: {\r\n totalAmount: 0,\r\n totalChargeAmount: 0,\r\n totalTaxAmount: 0,\r\n netAmount: 0\r\n },\r\n totalOrderHeader: {\r\n tableNumber: '',\r\n outletImageUrl: '',\r\n organizationName: '',\r\n outletName: ''\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if (Config.IsMobileAccess) {\r\n if (!isMobile) {\r\n this.props.history.push('/deviceerror' + urlPattern);\r\n return false;\r\n }\r\n }\r\n mobileNo = sessionStorage.getItem('user-mobileno');\r\n token = sessionStorage.getItem('user-token');\r\n tableNo = sessionStorage.getItem('user-tableno');\r\n serviceType = sessionStorage.getItem('user-servicetype');\r\n orgnationTd = sessionStorage.getItem('user-orgnationid');\r\n propertyId = sessionStorage.getItem('user-propertyid');\r\n outletCode = sessionStorage.getItem('user-outletcode');\r\n outletDetailsStr = sessionStorage.getItem('user-outletDetails');\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n\r\n const sessionDt = sessionStorage.getItem(\"u-l-v-url-dt\");\r\n if (!sessionDt) {\r\n this.props.history.push('/sessionerror' + urlPattern);\r\n return false;\r\n }\r\n if (!urlPattern) { \r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n if (token === undefined || token === \"\" || token === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (mobileNo === undefined || mobileNo === \"\" || mobileNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (tableNo === undefined || tableNo === \"\" || tableNo === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (serviceType === undefined || serviceType === \"\" || serviceType === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (orgnationTd === undefined || orgnationTd === \"\" || orgnationTd === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (propertyId === undefined || propertyId === \"\" || propertyId === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n if (outletCode === undefined || outletCode === \"\" || outletCode === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n\r\n if (outletDetailsStr === undefined || outletDetailsStr === \"\" || outletDetailsStr === null) {\r\n this.props.history.push('/' + urlPattern);\r\n return false;\r\n }\r\n else {\r\n outletDetails = JSON.parse(outletDetailsStr);\r\n enmConfig.checkOutTypewithPay = outletDetails.paymentVendors.length > 0 ? true : false;\r\n }\r\n\r\n\r\n const script = document.createElement(\"script\");\r\n script.src = \"../assets/theme1/js/theme.js\"; // it is not calling mentioned for to avoid null value\r\n script.async = true;\r\n script.onload = () => this.loadJS();\r\n document.body.appendChild(script);\r\n\r\n\r\n\r\n // this.setState({ orderList: [],loading:false });\r\n // this.setState({ orderMsg: 'Fetching...',loading: true });\r\n // this.setState({ orderErrorMsg: 'Looks like you have not made your menu yet.',orderMsg: \"NO ORDERS FOUND\",loading:false });\r\n this.GetUpdateOrders();\r\n // let urlParam = \"?MobileNo=\" + mobileNo + \"&NoOfRowsPerPage=100&CurrentPageNumber=1\";\r\n // this.setState({ orderMsg: 'Fetching...',loading: true });\r\n // fetch(Config.basePOSUrl + 'GetGuestOrders' + urlParam, {\r\n // method: 'GET',\r\n // headers: {\r\n // Authorization: \"Bearer \" + token,\r\n // 'content-type': 'application/json'\r\n // }\r\n // })\r\n // .then(res => res.json())\r\n // .then(response => {\r\n // if (response.errorCode === 0) {\r\n // setTimeout(() => {\r\n // console.log(response);\r\n // orderList = response.response.bills;\r\n // if (orderList.length > 0)\r\n // this.setState({ orderList: orderList,loading:false });\r\n // else {\r\n // this.setState({ orderErrorMsg: 'Looks like you have not made your menu yet.',orderMsg: \"NO ORDERS FOUND\",loading:false });\r\n // }\r\n // }, 2000);\r\n // }\r\n // else {\r\n // this.showMessage(response.message, \"danger\");\r\n // console.log(response.message);\r\n // }\r\n // })\r\n // .catch(err => {\r\n // console.log(err);\r\n // this.showMessage(\"An error occured\", \"danger\");\r\n // });\r\n\r\n }\r\n loadJS() {\r\n loadcomfn = window.myodersInitiate;\r\n loadcomfn();\r\n }\r\n goBack() {\r\n this.props.history.push('/myorders' + urlPattern);\r\n }\r\n gotoShopping() {\r\n this.props.history.push('/items' + urlPattern);\r\n }\r\n GetUpdateOrders() {\r\n window.scrollTo(0, 0);\r\n this.setState({ billMsg: 'Fetching...', loading: true });\r\n // Get Running Order Amount\r\n if (serviceType === \"FINE-DINE\") {\r\n let postObj = {\r\n OutletId: propertyId + outletCode,\r\n ServiceType: serviceType,\r\n TableNumber: tableNo\r\n }\r\n\r\n fetch(Config.basePOSUrl + 'GetOrderAmount', {\r\n method: \"POST\",\r\n headers:\r\n {\r\n Authorization: \"Bearer \" + token,\r\n 'content-type': 'application/json'\r\n },\r\n body: JSON.stringify(postObj)\r\n })\r\n // fetch(Config.basePOSUrl + 'GetOrderAmount', {\r\n // method: 'POST',\r\n // headers: {\r\n // Authorization: \"Bearer \" + token,\r\n // 'content-type': 'application/json'\r\n // },\r\n // body: JSON.stringify(postObj)\r\n // })\r\n .then(res => res.json())\r\n .then(response => {\r\n if (response.errorCode === 0) {\r\n this.setState({ loading: false });\r\n this.setState({ totalOrderAmount: response.response.orderAmount })\r\n this.setState({ totalOrderDetail: response.response.orderDetails.orderDetails })\r\n this.setState({ totalOrderSubTotal: response.response.orderDetails.orderSubTotal })\r\n this.setState({ totalOrderHeader: response.response.orderDetails.orderHeader })\r\n this.setState({ billErrorMsg: response.message })\r\n }\r\n else {\r\n // this.showMessage(response.message, \"danger\");\r\n this.setState({ loading: false });\r\n // this.showMessage(response.message, \"danger\");\r\n this.setState({ totalOrderAmount: 0, billMsg: response.message })\r\n }\r\n })\r\n .catch(err => {\r\n // console.log(err);\r\n this.setState({ totalOrderAmount: 0, billMsg: \"Sorry!! nothing to show\", loading: false });\r\n this.showMessage(err, \"danger\");\r\n });\r\n }\r\n else {\r\n this.setState({ totalOrderAmount: 0, billMsg: \"Sorry!! nothing to show\" });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/items' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n\r\n }\r\n handleProcessRequest() {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.props.history.push('/processrequest' + urlPattern, { totalNetAmount: this.state.totalOrderAmount });\r\n }, Config.minMsgTimeout);\r\n }\r\n showMessage(msg, type) {\r\n window.scrollTo(0, 0);\r\n this.setState({ msgShow: true });\r\n this.setState({ msgType: type });\r\n this.setState({ alertMessage: msg });\r\n this.setState({ loading: false });\r\n setTimeout(() => {\r\n this.setState({ msgShow: false });\r\n }, Config.minMsgTimeout);\r\n };\r\n render() {\r\n return (\r\n
    \r\n {this.state.loading && }\r\n {this.state.msgShow && }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {enmConfig.checkOutTypewithPay && Pay Dining Bill }\r\n {!enmConfig.checkOutTypewithPay && View Dining Bill }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {this.state.totalOrderAmount > 0 &&\r\n
    \r\n
    Paying to
    \r\n {/*
    Total Order Amount ₹ {this.state.totalOrderAmount.toFixed(2)}
    */}\r\n
    \r\n \"\"\r\n {sessionStorage.getItem(\"user-propertyname\")}
    \r\n {sessionStorage.getItem(\"user-outletname\")}\r\n
    \r\n
    \r\n Total bill amount\r\n ₹ {this.state.totalOrderAmount.toFixed(2)}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {\r\n this.state.totalOrderDetail.map((oitm, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n oitm.modifiers.map(md =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n }\r\n \r\n );\r\n })\r\n }\r\n \r\n
    NameQtyRateAmount
    {oitm.itemName.toLowerCase()}x{oitm.quantity}₹{oitm.rate.toFixed(2)}₹{(oitm.rate * oitm.quantity).toFixed(2)}
    {md.modifierName.toLowerCase()}x{md.quantity}₹{md.rate.toFixed(2)}₹{(md.rate * md.quantity).toFixed(2)}
    \r\n
    \r\n
    \r\n
    Bill Details
    \r\n
    Item Total₹{this.state.totalOrderSubTotal.totalAmount.toFixed(2)}
    \r\n
    Charges ₹{this.state.totalOrderSubTotal.totalChargeAmount.toFixed(2)}
    \r\n
    Tax₹{this.state.totalOrderSubTotal.totalTaxAmount.toFixed(2)}
    \r\n
    You need to pay₹{this.state.totalOrderSubTotal.netAmount.toFixed(2)}
    \r\n
    \r\n {enmConfig.checkOutTypewithPay &&\r\n
    \"lucid-rupee\" Proceed to Pay
    \r\n }\r\n {/*
    \"lucid-rupee\" Pay
    */}\r\n
    \r\n }\r\n {this.state.totalOrderAmount === 0 &&\r\n
    \r\n \"\"\r\n {this.state.billMsg} \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n}","import React, { Component } from 'react';\r\nimport './qrcodeerror.scss';\r\nexport default class Offline extends Component { \r\n \r\n constructor(props)\r\n {\r\n super(props)\r\n this.gotoOnline = this.gotoOnline.bind(this);\r\n }\r\n\r\n gotoOnline()\r\n {\r\n this.props.history.goBack();\r\n }\r\n \r\n render()\r\n {\r\n return(\r\n
    \r\n {/* {loading && } */}\r\n
    \r\n
    \r\n {/* \"\" */}\r\n \"lucid-contactless-food-ordering\"\r\n \r\n
    \r\n {/* \"lucid-device-error\"/ */}\r\n
    No internet connection
    \r\n {/*
    404 - Page Not Found.
    */}\r\n
    Make sure Wi-Fi or mobile data is turned on,\r\n
    then try again\r\n
    \r\n {/*
    The page you are looking for might have been removed
    \r\n had its name changed or is temporarily unavailable.\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, { Component } from 'react';\r\nimport Iframe from 'react-iframe';\r\nimport './myorders.scss';\r\nimport { isMobile } from 'react-device-detect';\r\nimport sHelpers from '../../modules/helpers/statichelpers';\r\nimport LoadingAnimation from '../../components/loadinganimation';\r\nimport ErrorAlert from '../../components/alertmessages';\r\nimport Config from '../../data/SiteConfig';\r\nlet guestLoggedIn = \"false\";\r\nlet urlPattern = '';\r\nexport default class ViewBill extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.goBack = this.goBack.bind(this);\r\n this.handleProcessRequest = this.handleProcessRequest.bind(this);\r\n this.state = {\r\n loading: false,\r\n alertMessage: '',\r\n msgShow: false,\r\n eBillUrl: '',\r\n isPay: false,\r\n billAmount: 0,\r\n posBillId: '',\r\n refBillId: '',\r\n iFrameHeight: '900px'\r\n }\r\n }\r\n\r\n\r\n componentWillMount() {\r\n\r\n const sessionDt = sessionStorage.getItem(\"u-l-v-url-dt\");\r\n if (!sessionDt) {\r\n this.props.history.push('/sessionerror' + urlPattern);\r\n return false;\r\n }\r\n urlPattern = sessionStorage.getItem('url-pattern');\r\n if (!urlPattern) { \r\n this.props.history.push('/qrcodeerror' + Config.defaultUrlPattern);\r\n return false;\r\n }\r\n if (this.props.location.state !== undefined) {\r\n // console.log(this.props.location.state.eBillUrl);\r\n if (this.props.location.state.eBillUrl === undefined || this.props.location.state.eBillUrl === null || this.props.location.state.eBillUrl === '') {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/myorders' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n else if (this.props.location.state.billAmount === undefined || this.props.location.state.billAmount === null || this.props.location.state.billAmount === '') {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/myorders' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n else if (this.props.location.state.eBillUrl === undefined || this.props.location.state.eBillUrl === null || this.props.location.state.eBillUrl === '') {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/myorders' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n else if (this.props.location.state.posBillId === undefined || this.props.location.state.posBillId === null || this.props.location.state.posBillId === '') {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/myorders' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n else if (this.props.location.state.refBillId === undefined || this.props.location.state.refBillId === null || this.props.location.state.refBillId === '') {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/myorders' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n else {\r\n this.setState({\r\n eBillUrl: this.props.location.state.eBillUrl,\r\n billAmount: Number((this.props.location.state.billAmount)),\r\n isPay: this.props.location.state.isPay,\r\n posBillId: this.props.location.state.posBillId,\r\n refBillId: this.props.location.state.refBillId,\r\n });\r\n }\r\n }\r\n else {\r\n //console.log('jk');\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/myorders' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n }\r\n\r\n\r\n }\r\n\r\n componentDidMount() {\r\n guestLoggedIn = sessionStorage.getItem('user-loggedin') == null ? \"false\" : sessionStorage.getItem('user-loggedin');\r\n if (Config.IsMobileAccess) {\r\n if (!isMobile) {\r\n this.props.history.push('/deviceerror' + urlPattern);\r\n return false;\r\n }\r\n }\r\n if (!sHelpers.inputParamValidation()) {\r\n this.props.history.push('/' + urlPattern);\r\n }\r\n this.setState({ loading: true });\r\n\r\n window.scrollTo(0, 0);\r\n\r\n if (guestLoggedIn === \"false\") {\r\n setTimeout(() => {\r\n this.setState({ loading: false });\r\n this.props.history.push('/items' + urlPattern);\r\n }, Config.minMsgTimeout);\r\n return false;\r\n }\r\n\r\n }\r\n\r\n resizeIframe(obj) {\r\n // obj.style.height = obj.contentWindow.document.documentElement.scrollHeight + 'px';\r\n this.setState({ loading: false });\r\n }\r\n\r\n goBack() {\r\n this.props.history.push('/myorders' + urlPattern);\r\n }\r\n\r\n handleProcessRequest() {\r\n this.setState({ loading: true });\r\n setTimeout(() => {\r\n this.props.history.push('/settleprocessrequest' + urlPattern, { eBillUrl: this.state.eBillUrl, totalNetAmount: this.state.billAmount, isPay: this.state.isPay, posBillId: this.state.posBillId, refBillId: this.state.refBillId });\r\n }, Config.minMsgTimeout);\r\n }\r\n render() {\r\n return (\r\n <>\r\n {this.state.loading && }\r\n {this.state.msgShow && }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {this.state.isPay && ₹{this.state.billAmount.toFixed(2)}}\r\n {!this.state.isPay && View Bill}\r\n
    \r\n
    \r\n
    \r\n {this.state.isPay &&
    \"lucid-rupee\" Proceed to Pay
    }\r\n
    \r\n
    \r\n\r\n