{"version":3,"sources":["assets/images/no-image.png","assets/images/subrecipe-image.png","assets/images/small-circle.png","assets/images/search-box.png","assets/images/not-available.png","assets/images/special-request.png","assets/images/shopping-list-added-or-updated.png","assets/images/order/check.png","assets/images/order/cancelled.png","assets/images/order/car-blue.png","assets/images/coming-soon.png","assets/images/rebate-sticker.gif","assets/audios/rebate.wav","assets/images/tip-tour.png","assets/images/bookmark-red.png","assets/images/sync.gif","assets/images/drag-drop.svg","assets/images/bookmark-green.png","assets/images/bookmark-purple.png","assets/images/bookmark-blue.png","assets/images/meal.svg","assets/images/list-white.svg","assets/images/arrow-right.png","assets/images/cards/american express.png","assets/images/cards/diners club.png","assets/images/cards/discover.png","assets/images/cards/jcb.png","assets/images/cards/mastercard.png","assets/images/cards/unionpay.png","assets/images/cards/visa.png","assets/images/download-white-icon.png","assets/images/upload-icon.svg","assets/images/download-icon.svg","assets/images/upload-file.svg","assets/images/reject.png","assets/images/empty-list.png","assets/images/unchecked-circle.svg","assets/images/checked-circle.svg","assets/images/shopping-list.svg","assets/images/more.svg","assets/images/lightning-bolt.svg","assets/images/excel-icon.jpg","assets/images/inventory-tutorial-1.png","assets/images/inventory-tutorial-2.png","assets/images/inventory-tutorial-3.png","assets/images/inventory-tutorial-4.png","assets/images/inventory-tutorial-5.png","assets/images/inventory-tutorial-6.png","assets/images/timestamped-inventory.png","reducers/modals/modalsActions.js","SharedComponents/ShowIf/ShowIf.js","reducers/connection/connectionActions.js","config/constants.js","SharedComponents/Modals/useModal.js","SharedComponents/Modals/ConnectionModal/ConnectionModal.js","local/dbConstants.js","local/db.js","local/CartLocal.js","api/cartApi.js","api/itemApi.js","reducers/cart/cartActions.js","reducers/header/headerActions.js","SharedComponents/GoTo/useGoTo.js","SharedComponents/Sync/Modals/CartSyncModal.js","SharedComponents/ShoppingCart/useShoppingCart.js","SharedComponents/Sync/useCartSync.js","api/comparisonViewsApi.js","local/ItemsLocal.js","local/ComparisonViewLocal.js","reducers/sync/syncActions.js","reducers/items/itemsActions.js","reducers/userInterface/userInterfaceActions.js","SharedComponents/Modals/AlertModal/AlertModal.js","SharedComponents/Sync/useItemsSync.js","SharedComponents/OfflineMode/useConnection.js","SharedComponents/OfflineMode/OfflineMode.js","serviceWorker.js","Views/MainApp/Views/Analytics/PurchasesGraphs/PurchasesGraphs.js","api/analyticsApi.js","Views/MainApp/Views/Analytics/ItemsList/ItemsList.js","Views/MainApp/Views/Analytics/OrdersGraph/OrdersGraph.js","Views/MainApp/Views/Analytics/OrdersList/OrdersList.js","SharedComponents/SharedEffects/useInput.js","SharedComponents/IconBadge/IconBadgeSolid.js","Views/MainApp/Views/Analytics/SavingsGraph/SavingsGraph.js","SharedComponents/InputSearch/InputSearch.js","Views/MainApp/Views/Analytics/ItemGraph/ItemGraph.js","api/distributorsApi.js","api/shoppingListsApi.js","api/ordersApi.js","SharedComponents/Modals/SearchFiltersModal/SearchFilterModalCheckbox.js","SharedComponents/Modals/SearchFiltersModal/useSearchFiltersModal.js","reducers/orders/ordersActions.js","reducers/shoppingLists/shoppingListsActions.js","SharedComponents/Modals/SearchFiltersModal/SearchFiltersModalFooter.js","SharedComponents/Modals/SearchFiltersModal/SearchFiltersModalBody.js","SharedComponents/Modals/SearchFiltersModal/SearchFiltersModal.js","Views/MainApp/Views/Analytics/ItemLookup/ItemLookup.js","SharedComponents/Header/useHeader.js","SharedComponents/Animations/CartAnimation.js","SharedComponents/Header/HeaderCart.js","SharedComponents/Modals/WelComeTourModal/WelcomeTourModal.js","SharedComponents/Header/HeaderSearch.js","SharedComponents/Header/HeaderMenuButton.js","SharedComponents/Header/HeaderSubHeader.js","SharedComponents/Header/HeaderLogo.js","SharedComponents/Header/HeaderTitle.js","SharedComponents/Header/HeaderRightButton.js","SharedComponents/Header/HeaderLeftButton.js","SharedComponents/Header/HeaderBackButton.js","SharedComponents/Header/HeaderReviewOrder.js","SharedComponents/ShoppingCart/useShoppingCartOffline.js","SharedComponents/ShoppingCart/useShoppingCartInterface.js","SharedComponents/Header/Header.js","SharedComponents/Bookmark/Bookmark.js","SharedComponents/Bookmark/OrderGuideBookmark.js","SharedComponents/ListGroup/ListGroup.jsx","SharedComponents/ListGroup/ListGroupItem.jsx","Views/MainApp/Views/Analytics/ItemsPurchased/ItemsPurchased.jsx","SharedComponents/SharedEffects/useTouch.js","SharedComponents/MinusButton/MinusButton.js","SharedComponents/PlusButton/PlusButton.js","SharedComponents/Modals/ItemUnavailableModal/ItemUnavailableModal.js","SharedComponents/Modals/ConfirmationModal/ConfirmationModal.js","Views/MainApp/Views/SpecialRequest/useSpecialRequest.js","reducers/distributors/distributorsActions.js","Views/MainApp/Views/SpecialRequest/SpecialRequestForm.js","SharedComponents/Modals/SpecialRequestModal/SpecialRequestModal.js","SharedComponents/Modals/PunchedOutModal/PunchedOutModal.js","SharedComponents/ShoppingCartItem/useShoppingCartItem.js","SharedComponents/ShoppingCartItem/useShoppingCartItemOffline.js","SharedComponents/ShoppingCartItem/useShoppingCartItemInterface.js","SharedComponents/NextButton/NextButton.jsx","Views/MainApp/Views/Analytics/SavingsSuggestions/SavingSuggestion.jsx","Views/MainApp/Views/Analytics/SavingsSuggestions/SavingsSuggestions.jsx","Views/MainApp/Views/Analytics/ItemsPurchased/useItemsPurchased.js","Views/MainApp/Views/Analytics/Analytics.js","SharedComponents/SubHeader/SubHeaderPlaceOrder/SubHeaderPlaceOrderViewIcons.js","SharedComponents/Modals/InventorySortByModal/InventorySortByModal.js","SharedComponents/SubHeader/SubHeaderPlaceOrder/SubHeaderPlaceOrderSortBy.js","SharedComponents/Modals/QuestionModal/QuestionModal.js","SharedComponents/Modals/OneInputModal/OneInputModal.js","SharedComponents/Modals/InventoryListModal/InventoryListItem.js","SharedComponents/Modals/InventoryListModal/useInventoryList.js","SharedComponents/Modals/InventoryListModal/useInventoryListOffline.js","SharedComponents/Modals/InventoryListModal/useInventoryListInterface.js","SharedComponents/Modals/InventoryListModal/InventoryListModal.js","SharedComponents/SubHeader/SubHeaderPlaceOrder/SubHeaderPlaceOrderInventoryList.js","reducers/user/userAction.js","SharedComponents/Modals/StartInventoryModal/StartInventoryModal.js","api/timestampedInventoryApi.js","reducers/groups/groupsActions.js","SharedComponents/Modals/SyncModal/SyncModal.js","SharedComponents/Sync/usePlaceOrderSync.js","SharedComponents/SubHeader/SubHeaderPlaceOrder/Subcomponents/SyncInventory.js","SharedComponents/SubHeader/SubHeaderPlaceOrder/SubHeaderPlaceOrderInventoryOptions.js","SharedComponents/SubHeader/SubHeaderPlaceOrder/SubHeaderPlaceOrderOnHand.js","SharedComponents/SubHeader/SubHeaderPlaceOrder/SubHeaderPlaceOrder.js","Views/MainApp/Views/PlaceOrder/PlaceOrderList/usePlaceOrderList.js","SharedComponents/Icons/PriceOutdatedIcon/usePriceOutdatedIcon.js","SharedComponents/Icons/PriceOutdatedIcon/PriceOutdatedIcon.js","SharedComponents/Icons/PunchedOutIcon/PunchedOutIcon.js","Views/MainApp/Views/PlaceOrder/PlaceOrderList/usePlaceOrderListRow.js","SharedComponents/Icons/Circle/Circle.js","SharedComponents/ShoppingCartItem/ShoppingCartItem.js","SharedComponents/Icons/RebateIcon/RebateIcon.js","SharedComponents/SavingsButton/useSavingsButton.js","SharedComponents/SavingsButton/SavingsButton.js","Views/MainApp/Views/PlaceOrder/PlaceOrderList/PlaceOrderListRow.js","Views/MainApp/Views/PlaceOrder/PlaceOrderList/PlaceOrderList.js","api/recipeApi.js","SharedComponents/Modals/AddFoodbamItemModal/useAddFoodbamItemModal.js","SharedComponents/LinkButton/LinkButton.js","SharedComponents/Modals/AddFoodbamItemModal/AddFoodbamItemModalCart.js","SharedComponents/Modals/AddFoodbamItemModal/AddFoodbamItemModalRow.js","SharedComponents/Modals/AddFoodbamItemModal/AddFoodbamItemModalHeader.js","SharedComponents/Modals/AddCustomItemModal/AddCustomItemModalContent.js","SharedComponents/Modals/OptionsModal/OptionsModal.js","SharedComponents/Modals/AddCustomItemModal/useAddCustomItemModal.js","SharedComponents/Modals/AddCustomItemModal/AddCustomItemModal.js","SharedComponents/Modals/AddFoodbamItemModal/AddFoodbamItemModal.js","SharedComponents/Conversion/useConversion.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/usePlaceOrderInventory.js","SharedComponents/Modals/CountModal/CountModal.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/Subcomponents/useShowItemsIn.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/Subcomponents/ShowItemsIn.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/Subcomponents/GroupTitle.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/Subcomponents/useGroupTitleNew.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/Subcomponents/GroupTitleNew.js","SharedComponents/Bookmark/LastPurchasedBookmark.js","SharedComponents/Bookmark/HeartBookmark.js","SharedComponents/Bookmark/AutoAddedBookmark.js","SharedComponents/Bookmark/SubrecipeBookmark.js","SharedComponents/Bookmark/CallInItemBookmark.js","SharedComponents/TooltipMenu/TooltipMenu.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/PlaceOrderInventoryItem/Subcomponents/ItemHeader.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/PlaceOrderInventoryItem/Subcomponents/ItemBasicInfo.js","SharedComponents/Icons/CantConvertIcon/CantConvertIcon.js","SharedComponents/iconTooltip/IconTooltipSolid.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/PlaceOrderInventoryItem/Subcomponents/ItemPriceInfo.js","SharedComponents/Modals/EditPackSizeModal/EditPackSizeModal.js","api/genericItemApi.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/PlaceOrderInventoryItem/Subcomponents/useItemHeader.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/PlaceOrderInventoryItem/context/InventoryContext.js","reducers/inventoyView/inventoryViewActions.js","SharedComponents/OnHandItem/useOnHandItem.js","SharedComponents/OnHandItem/useOnHandItemOffline.js","SharedComponents/OnHandItem/useOnHandItemInterface.js","SharedComponents/OnHandItem/OnHandItem.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/PlaceOrderInventoryItem/Subcomponents/ItemInventory.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/PlaceOrderInventoryItem/Subcomponents/ItemTimestampedInventory.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/PlaceOrderInventoryItem/PlaceOrderInventoryItem.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/Subcomponents/AddNewItem.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/PlaceOrderInventoryGroup.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/Subcomponents/GroupTitleFirst.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/PlaceOrderInventoryAnalytics/PlaceOrderInventoryAnalytics.js","SharedComponents/SharedEffects/useDragDrop.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/PlaceOrderInventoryOnline.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/usePlaceOrderInventoryOffline.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/PlaceOrderInventoryOffline.js","Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/PlaceOrderInventory.js","Views/MainApp/Views/PlaceOrder/PlaceOrderContent.js","api/locationsApi.js","SharedComponents/Messages/useMessages.js","Views/MainApp/Views/PlaceOrder/PlaceOrder.js","reducers/recipeCosting/recipeCostingActions.js","SharedComponents/InputCheckbox/InputCheckbox.jsx","Views/MainApp/Views/RecipeCosting/RecipeCostingMenu/RecipeCostingTableRow.js","Views/MainApp/Views/RecipeCosting/RecipeCostingMenu/RecipeCostingTable.js","Views/MainApp/Views/RecipeCosting/RecipeCostingMenu/RecipeCostingSubHeader.jsx","Views/MainApp/Views/RecipeCosting/RecipeCostingMenu/useRecipeCostingMenu.js","Views/MainApp/Views/RecipeCosting/RecipeCostingRecipe/Subcomponents/RecipeIngredientsItemRowMobile.js","Views/MainApp/Views/RecipeCosting/RecipeCostingRecipe/Subcomponents/RecipeIngredientsItemRowDesktop.js","Views/MainApp/Views/RecipeCosting/RecipeCostingRecipe/Subcomponents/RecipeIngredientsItemRow.js","Views/MainApp/Views/RecipeCosting/Modals/RecipeInfoModal/useRecipeInfoModal.js","Views/MainApp/Views/RecipeCosting/Modals/RecipeInfoModal/RecipeInfoModal.js","Views/MainApp/Views/RecipeCosting/Modals/AddIngredientModal/AddIngredientModalRow.js","Views/MainApp/Views/RecipeCosting/Modals/AddIngredientModal/AddIngredientModal.js","Views/MainApp/Views/RecipeCosting/Modals/ItemDetails/SharedComponents/ItemDetailsInfoCol.js","Views/MainApp/Views/RecipeCosting/Modals/ItemDetails/SharedComponents/ItemDetailsImage.js","Views/MainApp/Views/RecipeCosting/Modals/ItemDetails/ItemDetailsFoodbam/ItemDetailsFoodbamInfo.js","Views/MainApp/Views/RecipeCosting/Modals/ItemDetails/SharedComponents/ItemDetailsInputCol.js","Views/MainApp/Views/RecipeCosting/Modals/ItemDetails/SharedComponents/ItemDetailsInputUnitsCol.js","Views/MainApp/Views/RecipeCosting/Modals/ItemDetails/SharedComponents/ItemDetailsHowMuch.js","Views/MainApp/Views/RecipeCosting/Modals/ItemDetails/SharedComponents/ItemDetailsUnitConversion.js","Views/MainApp/Views/RecipeCosting/Modals/ItemDetails/SharedComponents/ItemDetailsFooter.js","Views/MainApp/Views/RecipeCosting/Modals/ItemDetails/useItemDetails.js","Views/MainApp/Views/RecipeCosting/Modals/ItemDetails/ItemDetailsFoodbam/ItemDetailsFoodbam.js","Views/MainApp/Views/RecipeCosting/Modals/ItemDetails/ItemDetailsSubrecipe/ItemDetailsSubrecipe.js","Views/MainApp/Views/RecipeCosting/Modals/ItemDetails/ItemDetailsInventory/ItemDetailsInventoryInfo.js","Views/MainApp/Views/RecipeCosting/Modals/ItemDetails/ItemDetailsInventory/ItemDetailsInventoryLinkItemInfo.js","Views/MainApp/Views/RecipeCosting/Modals/ItemDetails/ItemDetailsInventory/ItemDetailsInventoryLinkItemImage.js","Views/MainApp/Views/RecipeCosting/Modals/ItemDetails/ItemDetailsInventory/ItemDetailsInventoryLinkItemButton.js","Views/MainApp/Views/RecipeCosting/Modals/ItemDetails/ItemDetailsInventory/ItemDetailsInventoryLinkItem.js","Views/MainApp/Views/RecipeCosting/Modals/ItemDetails/ItemDetailsInventory/ItemDetailsInventory.js","SharedComponents/Modals/AddSubrecipe/useAddSubrecipe.js","SharedComponents/Modals/AddSubrecipe/AddSubrecipe.js","SharedComponents/Modals/AddInventoryItem/useAddInventoryItem.js","SharedComponents/Modals/AddInventoryItem/AddInventoryItem.js","Views/MainApp/Views/RecipeCosting/RecipeCostingRecipe/useRecipeCostingRecipe.js","Views/MainApp/Views/RecipeCosting/RecipeCostingRecipe/Subcomponents/RecipeInfoInput.js","Views/MainApp/Views/RecipeCosting/RecipeCostingRecipe/Subcomponents/RecipeInfoTextarea.js","Views/MainApp/Views/RecipeCosting/RecipeCostingRecipe/Subcomponents/RecipeInfoSubrecipeInfo.js","Views/MainApp/Views/RecipeCosting/RecipeCostingRecipe/Subcomponents/RecipeInfo.js","Views/MainApp/Views/RecipeCosting/RecipeCostingRecipe/Subcomponents/RecipeIngredientsInfoRow.js","Views/MainApp/Views/RecipeCosting/RecipeCostingRecipe/Subcomponents/RecipeIngredients.js","Views/MainApp/Views/RecipeCosting/RecipeCostingRecipe/RecipeCostingRecipe.js","Views/MainApp/Views/RecipeCosting/RecipeCostingMenu/RecipeCostingMenu.js","Views/MainApp/Views/RecipeCosting/RecipeCostingCategory/RecipeCostingCategory.js","Views/MainApp/Views/RecipeCosting/RecipeCostingCategory/RecipeCostingMenuRow.js","api/recipeMenuCategoryApi.js","Views/MainApp/Views/RecipeCosting/RecipeCostingCategory/useRecipeCostingCategory.js","Views/MainApp/Views/RecipeCosting/RecipeCosting.js","Views/MainApp/Views/Pos/PosList/PosListRow.js","api/posApi.js","Views/MainApp/Views/Pos/PosList/usePosList.js","Views/MainApp/Views/Pos/PosList/PosList.js","SharedComponents/Modals/SelectModal/SelectModal.js","Views/MainApp/Views/Pos/PosDetail/usePosDetail.js","Views/MainApp/Views/Pos/PosDetail/PosDetailRow.js","Views/MainApp/Views/Pos/PosDetail/PosDetail.js","Views/MainApp/Views/Pos/Pos.js","api/cardspApi.js","Views/MainApp/Views/ManageCards/cardIconHandler.js","Views/MainApp/Views/ManageCards/CardsList/CardRow.js","Views/MainApp/Views/ManageCards/CardsList/useCarList.js","Views/MainApp/Views/ManageCards/CardsList/CardsList.js","Views/MainApp/Views/ManageCards/CardForm/CardForm.js","Views/MainApp/Views/ManageCards/ManageCards.js","api/helpApi.js","Views/MainApp/Views/Help/HelpContent/useHelpContent.js","Views/MainApp/Views/Help/HelpContent/HelpContent.js","Views/MainApp/Views/Help/Help.js","api/accountingApi.js","Views/MainApp/Views/Accounting/ItemsAndDistributors/ItemsAndDistributors.js","Views/MainApp/Views/Accounting/BulkUploadModal/BulkUploadModal.js","SharedComponents/Modals/DownloadQuickbooksModal/DownloadQuickbooksModal.js","Views/MainApp/Views/Accounting/Accounting.js","SharedComponents/InputCounter/InputCounter.js","SharedComponents/IconBadge/IconBadge.js","Views/MainApp/Views/CheckoutOrdering/ReviewOrder/ReviewOrderCard.js","Views/MainApp/Views/CheckoutOrdering/ReviewOrder/useReviewOrder.js","reducers/reviewOrder/reviewOrderActions.js","SharedComponents/Modals/SimpleModal/SimpleModal.js","SharedComponents/Modals/NoteModal/NoteModal.js","Views/MainApp/Views/CheckoutOrdering/ShippingAndPayment/ShippingAndPaymentCardModal.js","Views/MainApp/Views/CheckoutOrdering/ShippingAndPayment/ShippingAndPaymentMobile.js","Views/MainApp/Views/CheckoutOrdering/ReviewOrder/ReviewOrderRowMobile.js","Views/MainApp/Views/CheckoutOrdering/ReviewOrder/ReviewOrderRow.js","SharedComponents/ShoppingCart/useShoppingCartReviewOrder.js","SharedComponents/ShoppingCartItem/ShoppingCartItemGroup.js","Views/MainApp/Views/OrderHistory/OrderUpload/TakePhoto.js","Views/MainApp/Views/CheckoutOrdering/ReviewOrder/GroupItemDistributor.js","Views/MainApp/Views/CheckoutOrdering/ReviewOrder/ItemDistributorModal.js","reducers/groupEvent/groupEventAction.js","Views/MainApp/Views/CheckoutOrdering/ReviewOrder/ReviewOrder.js","Views/MainApp/Views/CheckoutOrdering/ShippingAndPayment/ShippingAndPaymentCard.js","Views/MainApp/Views/CheckoutOrdering/ShippingAndPayment/ShippingAndPayment.js","Views/MainApp/Views/CheckoutOrdering/FinalReview/FinalReviewCard.js","Views/MainApp/Views/CheckoutOrdering/FinalReview/FinalReviewRow.js","Views/MainApp/Views/CheckoutOrdering/FinalReview/FinalReview.js","Views/MainApp/Views/CheckoutOrdering/Savings/useSavings.js","Views/MainApp/Views/CheckoutOrdering/Savings/SavingsFirstCard.js","Views/MainApp/Views/CheckoutOrdering/Savings/SavingsSecondCard.js","Views/MainApp/Views/CheckoutOrdering/Savings/SavingsRow.js","Views/MainApp/Views/CheckoutOrdering/Savings/Savings.js","Views/MainApp/Views/CheckoutOrdering/CheckoutOrderingContent.js","Views/MainApp/Views/CheckoutOrdering/CheckoutOrdering.js","Views/MainApp/Views/ShoppingLists/SingleShoppingList/ListItemRow/ListItemRow.js","Views/MainApp/Views/ShoppingLists/SingleShoppingList/useSingleShoppingList.js","Views/MainApp/Views/ShoppingLists/SingleShoppingList/SingleShoppingList.js","Views/MainApp/Views/ShoppingLists/ShoppingListItemBlock/ShoppingListItemBlock.js","Views/MainApp/Views/ShoppingLists/ShoppingListForm/ShoppingListForm.js","Views/MainApp/Views/ShoppingLists/ShoppingListItemsManager/ShoppingListItemsManager.js","Views/MainApp/Views/ShoppingLists/ShoppingListsRow.js","Views/MainApp/Views/ShoppingLists/useShoppingLists.js","Views/MainApp/Views/ShoppingLists/ShoppingLists.js","Views/MainApp/Views/SpecialRequest/SpecialRequest.js","Views/MainApp/Views/OrderHistory/OrderHistoryList/OrderHistoryListRow.js","Views/MainApp/Views/OrderHistory/OrderUpload/InvoiceImage.js","Views/MainApp/Views/OrderHistory/OrderUpload/OrderUploadInvoiceModal.js","Views/MainApp/Views/OrderHistory/OrderHistoryList/DownloadModal.js","Views/MainApp/Views/OrderHistory/OrderHistoryList/useOrderHistoryList.js","Views/MainApp/Views/OrderHistory/OrderHistoryList/SubHeaderOrderHistoryList.js","Views/MainApp/Views/OrderHistory/OrderHistoryList/OrderHistoryList.js","Views/MainApp/Views/OrderHistory/OrderReceive/OrderReceiveRow.js","Views/MainApp/Views/OrderHistory/Modals/OrderReceive/AddNewItem.js","Views/MainApp/Views/OrderHistory/Modals/OrderReceive/RejectCreateModal.js","Views/MainApp/Views/OrderHistory/Modals/OrderReceive/OrderReceiveRejectModal.js","Views/MainApp/Views/OrderHistory/Modals/OrderReceive/OrderReceiveCheckedModal.js","Views/MainApp/Views/OrderHistory/OrderReceive/useOrderReceive.js","Views/MainApp/Views/OrderHistory/OrderView/OrderViewRow.js","Views/MainApp/Views/OrderHistory/Modals/OrderView/OrderViewDetailsModal.js","Views/MainApp/Views/OrderHistory/Modals/OrderView/OrderViewDownloadModal.js","Views/MainApp/Views/OrderHistory/OrderView/useOrderView.js","Views/MainApp/Views/OrderHistory/OrderReceive/OrderReceive.js","Views/MainApp/Views/OrderHistory/OrderView/OrderView.js","Views/MainApp/Views/OrderHistory/OrderReceive/OrderReceiveComplete.js","Views/MainApp/Views/OrderHistory/OrderInventory/OrderInventoryRow.js","Views/MainApp/Views/OrderHistory/Modals/OrderInventory/OrderInventoryDetailsModal.js","Views/MainApp/Views/OrderHistory/OrderInventory/useOrderInventory.js","Views/MainApp/Views/OrderHistory/OrderInventory/OrderInventory.js","Views/MainApp/Views/OrderHistory/OrderUpload/OrderUploadInvoiceMobile.js","Views/MainApp/Views/OrderHistory/OrderHistory.js","Views/MainApp/Views/SortInventory/useSortInventory.js","Views/MainApp/Views/SortInventory/GroupRow.js","Views/MainApp/Views/SortInventory/SortInventory.js","Views/MainApp/Views/InventoryView/Inventories/Inventories.js","SharedComponents/OnHandItem/OnHandItemReview.js","Views/MainApp/Views/InventoryView/InventoriesDetail/ListItemsGroupInventoryDetail.js","Views/MainApp/Views/InventoryView/InventoriesDetail/ListGroupInventoryDetail.js","Views/MainApp/Views/InventoryView/InventoriesDetail/ListComparisonViewDetail.js","Views/MainApp/Views/InventoryView/ReviewInventory/HeaderReviewInventory.js","Views/MainApp/Views/InventoryView/InventoriesDetail/InventoriesDetail.js","Views/MainApp/Views/InventoryView/ReviewInventory/ListItemsGroupInventory.js","Views/MainApp/Views/InventoryView/ReviewInventory/ListGroupInventory.js","Views/MainApp/Views/InventoryView/ReviewInventory/ListComparisonView.js","Views/MainApp/Views/InventoryView/ReviewInventory/ReviewInventory.js","Views/MainApp/Views/InventoryView/InventoryViewContent.js","Views/MainApp/Views/InventoryView/InventoryView.js","Views/MainApp/Views/Distributor/useDistributor.js","Views/MainApp/Views/Distributor/DistributorList/DistributorRow.js","Views/MainApp/Views/Distributor/DistributorList/DistributorList.js","Views/MainApp/Views/Distributor/DistributorDetail/DsrRow.js","SharedComponents/Modals/UserInputsModal/UserInputsModal.js","Views/MainApp/Views/Distributor/DistributorDetail/DistributorDetail.js","api/merchantApi.js","api/orderGuideApi.js","Views/MainApp/Views/Distributor/OrderGuideDetail/OrderGuideDetailRow.js","Views/MainApp/Views/Distributor/OrderGuideDetail/UploadOgModal.js","Views/MainApp/Views/Distributor/OrderGuideDetail/NoTemplateModal.js","Views/MainApp/Views/Distributor/OrderGuideDetail/useOrderGuideDetail.js","Views/MainApp/Views/Distributor/OrderGuideDetail/OrderGuideDetail.js","Views/MainApp/Views/Distributor/Distributor.js","Views/MainApp/MainAppRouter.js","SharedComponents/Sidebar/useSidebar.js","SharedComponents/Sidebar/SidebarHeader.js","SharedComponents/Modals/WhatInventoryViewModal/WhatInventoryViewModal.js","SharedComponents/Sidebar/SidebarBody.js","api/usersApi.js","api/authenticateApi.js","SharedComponents/FullStory/useFullStory.js","Views/Login/useLogin.js","SharedComponents/Sidebar/Sidebar.js","Views/MainApp/MainApp.js","Views/Login/LoginHeader.js","Views/Login/LoginFormInput.js","SharedComponents/Modals/ForgotPasswordModal/ForgotPasswordModal.js","Views/Login/LoginForm.js","Views/Login/Login.js","Views/Logout/Logout.js","Views/Logout/useLogout.js","Views/AdminLogin/AdminLoginHeader.js","Views/AdminLogin/AdminLoginFormDropdown.js","Views/AdminLogin/AdminLoginForm.js","Views/AdminLogin/useAdminLogin.js","Views/AdminLogin/AdminLogin.js","Views/AuthenticationRouter/useAuthenticationRouter.js","Views/SignUp/SignUpSidebar.js","Views/SignUp/Subcomponents/SignUpHeader.js","Views/SignUp/Subcomponents/SignUpSteps.js","Views/SignUp/Subcomponents/SignUpInput.js","Views/SignUp/Sections/SignUpContactInformation.js","api/singupApi.js","Views/SignUp/useSignUp.js","Views/SignUp/Sections/SignUpLocationInformation.js","Views/SignUp/Steps/SignUpStep1.js","Views/SignUp/Sections/SignUpAddDistributorLocationCheckbox.js","Views/SignUp/Sections/SignUpAddDistributor.js","Views/SignUp/Steps/SignUpStepDistributors.js","Views/SignUp/Sections/SignUpLegalInformation.js","Views/SignUp/Steps/SignUpStepLegal.js","Views/SignUp/Sections/SingUpPayment.js","Views/SignUp/SignUpContent.js","Views/SignUp/SignUp.js","Views/ChangePassword/ChangePasswordHeader.js","Views/ChangePassword/ChangePasswordFormInput.js","Views/ChangePassword/ChangePasswordForm.js","Views/ChangePassword/useChangePassword.js","Views/ChangePassword/ChangePassword.js","Views/AuthenticationRouter/AuthenticationRouter.js","SharedComponents/Modals/Modals.js","SharedComponents/Spinner/SpinnerOnline.js","SharedComponents/Spinner/SpinnerOffline.js","SharedComponents/Spinner/Spinner.js","SharedComponents/SharedEffects/useApi.js","config/api.js","SharedComponents/SharedEffects/useResizeListener.js","Views/App/App.js","SharedComponents/FullStory/FullStory.js","reducers/userInterface/userInterfaceReducer.js","reducers/company/companyReducer.js","reducers/store.js","reducers/connection/connectionReducer.js","reducers/sync/syncReducer.js","reducers/user/userReducer.js","reducers/modals/modalsReducer.js","reducers/items/itemsReducer.js","reducers/cart/cartReducer.js","reducers/distributors/distributorsReducer.js","reducers/header/headerReducer.js","reducers/recipeCosting/recipeCostingReducer.js","reducers/reviewOrder/reviewOrderReduces.js","reducers/groupEvent/groupEventReducer.js","reducers/inventoyView/inventoryViewReducer.js","reducers/groups/groupsReducer.js","reducers/orders/ordersReducer.js","reducers/shoppingLists/shoppingListsReducer.js","config/customValidations.js","index.js"],"names":["module","exports","showModal","component","props","type","payload","id","uniqid","changeTourMoral","ShowIf","show","children","saveConnection","connection","saveOpen","open","saveModal","modal","mobileClassName","isMobile","modalMenuClassName","modalTourInventoryViewClassName","timezone","fullstory","online","offline","colorsGraph","colors","dark","green","lightBlueText","lightBlueBorder","orange","blanck","blue","blueDark","yellow","white","red","lightBlueSav","localStorageConst","userName","authKey","currentRole","userInfo","activeLocation","locations","cartItems","lastModifiedCart","savingOptions","view","listSelected","listItems","listItemsPage","inventoryItems","inventoryItemsPage","inventorySync","inventoryItemsToSync","inventoryList","inventorySortBySelected","sortOptions","listView","value","label","name","desc","default","drag","listViewSearch","inventoryView","inventoryOptions","rearrange","expand","limitOptions","searchText","recipes","placeOrderViews","itemCart","delay","onHandTypes","inventoryItemTypes","cartAnimations","none","cartUpdated","rebatesEarned","savingItemAdded","specialRequest","processStatus","savings","orderImageUpload","allowTypes","downloadTypes","displayTypes","sizeLimit","cameraConstraints","video","facingMode","height","min","ideal","max","width","validateZipcode","format","pattern","length","maximum","usState","unitsOfMeasure","packSizeUomsConversion","packSizeUomsCustomItem","shorthand","type_id","getTypeConversion","baseValueConversion","Volume","Mass","Length","orderItemFields","orderId","description","unitPrice","price","unitQuantity","unitSize","packSizeUnit","packSize","total","OGPAccessTypeOptions","showCalendar","useModal","isMenu","fullMenu","dispatch","useDispatch","useState","setOpen","useEffect","console","log","window","setTimeout","drift","hide","h","useSelector","userInterface","size","useLayoutEffect","header","$","outerHeight","body","footer","style","isIOS","css","onClosed","hideModal","isOpen","toggle","modalClassName","ConnectionModal","title","message","onOk","btnLabel","btnSize","footerClass","color","showTitle","modalprops","currentOpen","currentModal","modals","cnModal","Modal","backdrop","keyboard","ModalHeader","className","ModalBody","ModalFooter","Button","onClick","defaultProps","syncParam","field","dbMain","dbStores","tables","items","itemsBase","lists","groups","groupsBase","cart","cartBase","structure","fields","stores","map","st","db","Dexie","version","cartTable","cartBaseTable","saveAll","a","nItems","forEach","item","i","nItem","shoppingCartId","isSpecialItem","itemDistributorId","distributorId","unit","uom","unitMeasure","packsize","caseQuantity","toUpdate","push","table","bulkAdd","deleteAll","clear","getAll","toArray","find","param","where","equals","findOne","insertOne","add","updateOne","params","modify","findOneBase","saveBase","lastModified","cartCount","orderTotal","updateBase","deleteBase","axios","get","post","sort","filters","page","search","obj","product","purchasedOnly","distributorIds","shoppingIds","pastOrderIds","filterOptions","JSON","stringify","limit","custom_order_data","analytics","saveCartItems","saveCartCount","date","saveLastModified","saveUnsyncedItems","uitems","saveAnimation","animation","saveOrderTotal","saveHeaderIndexRevOrder","index","history","useHistory","user","placeOrder","localView","localStorage","getItem","itemsView","display_comparison_view","replace","placeOrderDefault","defaultPath","location","pathname","addSpecialRequest","reviewOrder","goTo","path","newLocation","CartSyncModal","sameModifiedItems","syncBatch","useShoppingCart","useBatchUpdateCart","getCartItems","useCartItems","useGoTo","Row","Col","xs","key","currentQuantity","newQuantity","useApi","setCartStructure","nCartItems","structuredCart","totalQty","totalOrder","cItem","specialItem","newItem","parseFloat","quantity","Math","random","parseInt","din","undefined","rebate","swapAcceptId","distributor","distributorName","isMarketPrice","active","caseSavings","belongsToGroup","brand","brandImageUrl","imageUrl","status","isPriceOutdated","isPunchedOut","parLevel","onHand","isPartner","isPurchased","lastPurchasedDate","lastPurchasedQty","cartApi","then","res","data","shoppingCart","setItem","unsyncedItems","catch","error","useCartSavings","getCartMatches","itemApi","useDistributorConvert","storeCartItems","localCartItems","parse","cartByDistributor","reduce","dist","ci","cartItemsByDistributor","GoTo","updateBatch","processItems","original_quantity","itemList","lastModifiedSync","syncItems","newModifiedItems","mi","filter","cartLastModified","cartOrderTotal","syncCartToLocal","syncCartToServer","syncLastModified","response","lengh","patch","delete","onInventory","groupId","operator","itemId","unitId","idDistributor","showItems","cId","batch","inventoryId","itemsTable","itemsBaseTable","saveAllItems","foodbamCustomDescription","purchasedPrice","unitType","packSizeUom","showSavings","savingItems","sortIndex","matchType","merchantId","midpId","notes","orderGuideId","endDate","count","isCatchWeight","isFixedWeight","isUnpurchasable","isElectronicInvoiceItem","isSubRecipe","subRecipeId","updateTime","averageWeight","deleteAllItems","saveBaseItems","sortByOptions","sortBy","deleteBaseItems","listsTable","deleteAllInventoryLists","saveAllInventoryLists","getInventoryLists","groupsTable","groupsTableBaseTable","deleteAllGroups","saveAllGroups","getGroupsByList","cvId","findAllGroups","findOneGroup","updateOneGroup","saveBaseGroups","onHandTotal","deleteBaseGroups","saveOpenSync","saveView","setInventorySearch","saveInventoryList","list","init","selectInventoryList","selected","setInventoryOptionsRearrangeDisabled","selectedSort","disabled","editInventoryList","listId","saveInventoryItems","saveInventoryItemsPage","saveInventoryItemsPageTotal","insertInventoryGroup","group","removeInventoryGroup","editOneInventoryGroup","sortInventoryGroupsNew","editOneInventoryGroupItem","idLabel","removeInventoryGroupItem","saveInventoryOnHandTotal","saveListItems","setInventorySortBy","setListSortBy","setListSortByOptions","setListSearch","setListFilters","spinner","bool","AlertModal","connectionChange","useConnection","useActions","syncListToLocal","syncInventoryToLocal","iListSelected","iSortBy","iSearch","iOnHandTotal","comparisonViewsApi","syncInventoryItemsToServer","isCustomItem","genericGroupId","genericCustomItemId","onHandUom","onHandPack","totalOnHand","totalOnHandAmount","removeItem","checkItemsToSync","useStatus","navigator","onLine","setStatus","handleConnectionStatus","addEventListener","removeEventListener","newConnection","disablePopup","disableUpdate","msg","useSyncLocal","useSyncCart","useItemsSync","inventory","syncToLocal","useSyncServer","syncToServer","useMode","getConnectionState","inputConnectionState","l","inputDisable","OfflineMode","Boolean","hostname","match","PurchasesGraphs","currentDistributor","currentCategory","seriesDistributor","totalPurchasesAmountDist","seriesCategory","totalPurchasesAmountCat","getRandomColor","letters","split","floor","addTitle","chart","totalPurchasesAmount","destroy","title2","r","renderer","x","series","center","plotLeft","y","plotTop","text","Highcharts","numberFormat","fontSize","bbox","getBBox","bbox2","attr","setGeneralParams","typeId","onDistributorClick","categoryId","categoryName","onCategoryClick","_distributorGraph","margin","plotBackgroundColor","plotBorderWidth","plotShadow","events","load","this","redraw","tooltip","formatter","point","LocationName","credits","enabled","plotOptions","pie","dataLabels","distance","fontWeight","startAngle","endAngle","legendItemClick","e","_categoriesGraph","update","click","states","hover","halo","innerSize","showInLegend","legend","layout","align","verticalAlign","useHTML","padding","itemMarginTop","itemMarginBottom","labelFormatter","analyticsData","total_purchases","detail","distributorData","distributors","categories","slice","round","dataObjDist","distributor_id","categoryData","j","dataObjCat","category","distributorGraphAndCategoriesGraph","float","ItemsList","setSortBy","setItems","setPage","isLoading","setIsLoading","loadMore","setLoadMore","getColumnclass","setSortByAndReset","startsWith","getItems","filter_type","filterType","section","start_date","moment","startDate","end_date","analyticsApi","concat","_meta","pageCount","currentPage","scrollListener","innerHeight","document","documentElement","scrollTop","offsetHeight","Card","src","image_url","noImage","pack_size","total_quantity","unit_measure","numeral","tot_spent","average_price","best_price","OrdersGraph","totalOrdersAmount","total_orders","ordersGraph","display","maxWidth","OrdersList","orders","setOrders","orderIconHandler","order","receivedIcon","cancelledIcon","onTheWayIcon","getOrders","order_id","order_date","delivery_date","line_items","tot_amount","paddingRight","orderStatusHandler","onChange","evt","setValue","setError","newValue","currentTarget","validate","result","single","isNumber","allowEmpty","isInvalid","set","useCheckbox","initValue","setStateValue","val","clearValue","onBlur","isInvalidOnBlur","onFocus","initItems","toggleAll","all","setAll","check","allCheck","toggleItem","newData","radios","v","ii","IconBadgeSolid","Icon","elemId","colorIcon","useInput","backgroundColor","Tooltip","innerClassName","placement","autohide","target","SavingsGraph","_getSavingsColor","totalOrderSavingsAmount","total_savings","seriesSavings","totalSavingsAmount","savingString","dataObj","join","charAt","toUpperCase","substr","SavingsName","itemWidth","savingsGraph","str","FaInfo","company","nickname","InputSearch","onEnter","withItems","goToSearch","onBlurEvent","Input","placeholder","onKeyDown","position","zIndex","overflow","_i","comparisonViewId","genericName","comparisonViewName","ItemGraph","borderColor","borderRadius","xAxis","labels","yAxis","gridLineWidth","minorGridLineWidth","lineWidth","cursor","_analyticsItem","minWidth","tz","guess","dsrId","put","file","formData","FormData","append","headers","imgId","sendParams","SearchFilterModalCheckbox","col","rowClassName","colClassName","CustomInput","checked","setDistributors","allDistributors","toggleDistributor","toggleAllDistributors","distributorsApi","d","err","distributorsMapDesktop","distributorsMapMobile","setShoppingLists","allShoppingLists","toggleShoppingList","shoppingLists","toggleAllShoppingLists","shoppingListsApi","shop","s","shoppingMapDesktop","shoppingMapMobile","isLoadingOrders","setIsLoadingOrders","setPastOrders","allPastOrders","togglePastOrder","pastOrders","toggleAllPastOrders","ordersApi","ord","o","createTimeDisplay","orderMapDesktop","orderMapMobile","setShoppingListsFilters","SearchFiltersModalFooter","togglePurchasedOnly","toggleModal","distIds","shopIds","ordIds","SearchFiltersModalBody","SearchFiltersModal","modalProps","listFilters","shoppingListFilters","useSearchFiltersModal","past","bodyProps","ItemLookup","isFirstRun","useRef","lastSearch","listStatistics","setListStatistics","newPage","searchValue","scrolltop","current","onSearch","getStatistics","item_distributor_id","listSeries","series_length","_changePriceZero","itemData","alt","comingSoon","num_cases","overflowX","overflowY","maxHeight","threshold","initialLoad","pageStart","discardPage","hasMore","useWindow","marginRight","searchBox","setSearch","setSearchValue","storeView","setView","useLocation","parts","pathView","urlObj","qs","parseUrl","query","lw","defaultSort","iv","openModalWC","setOpenModalWC","tourElementSearch","tourElementFilters","clickMenu","enterSearch","animate","lws","clearSearch","clickBack","goBack","startTour","goToNextTourModal","skipDemo","goToCart","CartAnimation","showAnimation","setShowAnimation","setMessage","Audio","audioSource","audio","displayAnimation","handleMessage","play","image","HeaderCart","isDisplayShoppingCart","display_shopping_cart","useHeader","WelComeTourModal","openModal","tourElement","styleModal","arrowClass","firstText","secondText","imgClass","state","numTourModal","top","left","right","tipTour","HeaderSearch","showFilters","searchN","setSearchN","listInventory","inventoriesV","setInventoriesV","setWithItems","firstTime","setFirstTime","openFilters","enterSearchs","clearSearchs","setSearchs","searchs","clickBacks","callback","useCallback","debounce","useDebounce","valueSearch","ref","nameGroup","itemSelected","HeaderMenuButton","HeaderSubHeader","subHeaders","HeaderLogo","logo","HeaderTitle","HeaderRightButton","button","icon","iconArray","Array","isArray","buttonMap","b","iconMap","HeaderLeftButton","HeaderBackButton","HeaderReviewOrder","headerIndex","indexStep","setIndexStep","useGoto","listSteps","isDisabled","changeView","showMenu","showLogo","showBack","showCart","showReviewOrder","backFunct","step","changeIndexStep","getCartItemsOffline","setCartStructureOffline","base","useShoppingCartOffline","getCartItemsInterface","Header","useShoppingCartInterface","setHeight","isSidebarOpen","showSearchbar","showSearchFilters","rightButton","leftButton","companyLogoUrl","logo_url","searchProps","Container","fluid","Bookmark","img","hideArrow","OrderGuideBookmark","bookmarkImg","ListGroup","ListGroupItem","ItemsPurchased","itemImage","brandImage","sm","md","trim","baseDelay","lastTapAt","preventDoubleTapZoom","event","preventDefault","touches","tapAt","Date","getTime","timeDiff","originalEvent","scale","passive","MinusButton","large","isActive","isBlue","square","useTouch","PlusButton","ItemUnavailableModal","notAvailable","ConfirmationModal","getProps","distributorsList","setDistributor","setUnit","setAllDistributors","distributorSelected","setDistributorSelected","units","setUnits","unitSelected","setUnitSelected","nDistributors","nUnits","u","setDropdownData","uniSel","nUnit","toLowerCase","indexOf","distSel","nDist","distributorSel","unitSel","updateItemsInCart","useShoppingCartItem","useCartItemUpdate","setQuantity","setDescription","valid","test","submitDisabled","presence","numericality","greaterThan","minimum","onSubmit","SpecialRequestForm","useSpecialRequest","Form","noValidate","classNamePrefix","options","Label","block","SpecialRequestModal","menu","mprops","useCartValidate","PunchedOutModal","prevCartItems","newCartItems","newCartAmount","itemFound","splice","useCartUpdate","setCartAmount","groupTotalProps","updating","setUpdating","operation","setOperation","setDiffer","prevCartAmount","setPrevCartAmount","uItem","setUItem","uParentItem","setUParentItem","uNewCartAmount","setUNewCartAmount","uSameModifiedItems","setUSameModifiedItems","getPreviousValue","pCartItems","preValue","pci","updateGroup","oldCartAmount","parentItem","prevCartAmt","nLastModified","nitemList","matchId","newItemList","iteml","updateCartAmountGroup","cartAmount","alertModalprops","setTotalGroupSpent","purchased","verifyUpdate","updateCartAmount","useCartItemMerge","setCaseQuantity","useOverlay","overlay","setOverlay","useCartValidateOffline","validateOffline","newCartCount","updateCartAmountOffline","storeConnection","useShoppingCartItemOffline","updateCart","localConnection","setDisabled","NextButton","SavingSuggestion","useShoppingCartItemProps","isAddToCartOpen","setAddToCartOpen","useShoppingCartItemInterface","cartAmountClick","minusImg","plusImg","onKeyPress","charCode","SavingsSuggestions","suggestions","canLoadMore","setCanLoadMore","getLastPurchasedItems","totalCount","nextPage","Analytics","setFilterType","setStartDate","setEndDate","setAnalyticsData","setCategory","getHeaderText","isAnalytics","isTotalPurchases","isTotalOrders","getAnalytics","companyNickName","isFoodbam","itemsPurchasedApi","useItemsPurchased","itemsPurchased","showLoadMore","for","currentType","currentDescription","currentName","currentBrand","currentItemPrice","currentUnitMeasure","currentPackSize","marginBottom","showOverlayItem","currentUnit","currentPackSizeUom","embedly","embedly-key","error-url","em-height","em-length","newDescription","newName","newBrand","newDistributor","newItemPrice","newUnitMeasure","newPackSize","ng-click","ng-model","ng-blur","restrict-decimal","yearAvgSavings","paddingLeft","savingsItemDistributorId","savingsSavings","savingsMerchantId","savingsItemId","savingsName","savingsDescription","savingsUnitMeasure","savingsBrandImageUrl","savingsBrand","savingsDistributorId","savingsDistributor","savingsPrice","savingsPackSize","SubHeaderPlaceOrderViewIcons","goToView","newView","InventorySortByModal","optionsMap","SubHeaderPlaceOrderSortBy","inventorySort","listSortOptions","listSort","onSelectSort","QuestionModal","buttonStyle","belowButtons","OneInputModal","onSave","InventoryListItem","baseProps","isMove","getLists","isShowInput","setIsShowInput","listInput","setHover","setOptions","selectList","code","updateList","removeList","removeInventoryList","InventoryListModal","buildOptions","icons","editProps","editList","qProps","deleteList","nOptions","focus","onMouseEnter","onMouseLeave","setLists","inventoryListOnline","useInventoryList","inventoryListOffline","useInventoryListOffline","setMap","useInventoryListInterface","newListInput","createList","saveList","nMap","buildMap","SubHeaderPlaceOrderInventoryList","displayOnDropdown","openInventoryList","components","Menu","isSearchable","onMenuOpen","setUserData","setActiveInventoryEdit","StartInventoryModal","dateFormat","idInventory","saveGroups","saveListSelected","saveSortBy","saveSearch","editOneGroupItem","SyncModal","currentOpenSync","sync","openSync","syncImg","isCustomPackSize","customPackSize","getGroups","getAllGroups","SyncInventory","toSync","setToSync","tooltipOpen","setTooltipOpen","usePlaceOrderSync","showConnectionFail","handleSync","showSyncToLocal","goOnLine","goOffLine","SubHeaderPlaceOrderInventoryOptions","rearrangeOption","displayInventory","display_inventory","dataUser","isStartInventory","activeInventory","nameBtnInventory","setNameBtnInventory","pathName","isAnalyticsMode","setIsAnalyticsMode","expandAll","some","apiStartInventory","timestampedInventoryApi","startInventory","dragIcon","excelElement","createElement","href","SubHeaderPlaceOrderOnHand","SubHeaderPlaceHolder","cItems","getListItems","loadMoreNew","pageNew","structuredItems","today","setItemsStructure","email","sendEmail","to","emailBody","mailTo","encodeURIComponent","PriceOutdatedIcon","usePriceOutdatedIcon","FaExclamation","PunchedOutIcon","priceAndPackSection","setPriceAndPackSection","newPriceAndPackSection","newPacksize","priceOutdatedIcon","punchedOutIcon","marketPrice","catchweightFormat","fixedweightFormat","handlePricePackSection","Circle","content","iconFor","iconAdd","ShoppingCartItem","useInitialLeft","useLastRight","showAll","overlayProps","setSection","handleKeypress","cartAmountHandler","setButtons","newSection","newMinusButton","newPlusButton","circle","RebateIcon","displayRebate","display_rebate","showRebate","setShowRebate","setSavingItems","savingsMap","setSavingsMap","savingsNumber","setSavingsNumber","parent","getSavings","sitems","nSavings","savingsOpen","setSavingsOpen","buttonTitle","setButtonTitle","buttonColor","setButtonColor","nColor","displaySavings","SavingsButton","useSavingsButton","displayMatch","display_match","setShowSavings","PlaceOrderListRow","dragHandleProps","outline","setOutline","back","setBack","setImage","usePlaceOrderListRow","isSaving","newOutline","outlineHandler","newImage","imageHandler","substring","PlaceOrderList","dragApi","usePlaceOrderList","isDragging","reorder","startIndex","endIndex","from","removed","il","tryReleaseLock","onDragEnd","destination","source","orderedItemList","oldIndex","newIndex","special","itemDistId","reference_sort_index","sortedItems","item_distributor_ids","tag_id","sensors","api","onBeforeCapture","droppableId","provided","snapshot","droppableProps","innerRef","draggableId","isDragDisabled","draggableProps","searchBoxImage","menuId","getInRange","posBgnDate","posEndDate","bgn_date","getRecipe","recipeId","patchIngredient","duplicate","print","recipesId","copyRecipeToAnotherLocation","locationId","getGenericItem","genericId","postIngredient","getSubrecipes","deleteIngredient","rId","ingId","getAllSubrecipes","getGenericCustomItem","getAllRecipesBySearch","assingRecipe","linkItems","initSearch","includeSubrecipe","subrecipeItems","setSubrecipeItems","searchEnter","setSearchEnter","prevFilters","isAllLink","found","linkItem","loadMoreForce","cb","subrecipes","recipeApi","getSubrecipeFirst","linkAll","onClear","editQuantity","setShowFilters","setFilters","toggleFilters","includes","actions","apply","reset","setLinkItems","comingItem","alreadyOnList","remove","LinkButton","transform","AddFoodbamItemModalCart","quantityInput","clickButton","AddFoodbamItemModalRow","isLink","onAdd","exit","isOrder","isLinkActive","subrecipeImage","action","wordBreak","wordWrap","AddFoodbamItemModalHeader","AddCustomItemModalContent","showMore","setShowMore","outerPack","innerPack","OptionsModal","packSizeUomOptions","selectedPackSizeUomIndex","findIndex","unitOfMeasureOptions","optionsProps","IndicatorsContainer","AddCustomItemModal","foodbamItemProps","hideSearch","useAddCustomItemModal","formProps","clickSearch","AddFoodbamItemModal","saveIsDisabled","onlyInteger","greaterThanOrEqualTo","clickSave","onAddCustom","clickCustomCustom","useAddFoodbamItemModal","newItems","it","clickCustom","allProps","customModalProps","initItemsIds","initItemsSubrecipeIds","itemsArray","noItems","itemsMap","newUnit","nVal","conversion","baseValue","input","fromUnit","toUnit","num","fraction","strict","number","convertPacksize","convertUnitPrice","finalPackSize","getPacksizeParts","newUnitPrice","nUnitPrice","convertUnfixedUnitPrice","convertAllBase","itemFullPrice","isCustomPackSizeProp","fullPrice","isCustomPackSizeFull","bUnit","initPackSize","initUnitPrice","initPackSizeUom","fixedPackSize","finalPackSizeUom","fixedUnitPrice","finalUnitPrice","unfixedUnitPrice","unfixedFinalUnitPrice","convertAll","unitToConvert","convertAllFromBase","expandOne","useConversions","getInventoryList","save","invListSelected","listSelectedExists","slist","getInventoryItems","itemEndDate","isValid","isAfter","isFromInvoice","isGroup","scrollPos","setScrollPos","w","setW","canEditComparisonView","editComparisonView","canScrollRight","len","scrollRight","nextScrollRight","scrollLeft","nextScrollLeft","snapOffset","rawPos","newPos","openAdd","connectivity","allItems","values","packSizeVal","onConvert","down","showAdd","setShowAdd","offset","addDown","conectivity","addTop","hideAll","addProps","deleteGroup","showEdit","openMoveToInventory","openGroupOptions","deleteGroupApi","belongsToRecipe","isShowEdit","setIsShowEdit","editInput","inputProps","saveEdit","sortItems","nitems","setConectivity","CountModal","defaultValue","openParLevel","newParLevel","ShowItemsIn","bottomMobile","totalOnHandAmt","totalGroupSpent","grayFirstStyle","singleValue","styles","option","useShowItemsIn","dropDownParLevel","toString","borderLeft","borderRight","menuPlacement","GroupTitle","timer","spend","isInventoryView","prevent","usePlaceOrderInventory","onEnterKey","expandAction","border","borderBottom","onDoubleClick","clearTimeout","isUp","nameInputProps","hideInput","showInput","newSort","new_sort","isAllCollapse","newGroup","onEnterKeyExtreme","GroupTitleNew","useGroupTitleNew","tabIndex","LastPurchasedBookmark","HeartBookmark","fill","AutoAddedBookmark","SubrecipeBookmark","CallInItemBookmark","TooltipMenu","opt","onMouseDown","ItemHeader","orderGuide","isPreferred","autoAdded","itemHeaderProps","showHistoric","showPriceAnalytics","clickOptionsState","clickOptions","showOptionsState","toggleShowHistoric","togglePriceAnalytics","clickHeart","opacity","marginLeft","FaQuestion","ItemBasicInfo","CantConvertIcon","IconTooltipSolid","invoiceDate","ItemPriceInfo","MdFlashOn","EditPackSizeModal","defaultValues","uomSelected","uomState","genericItemId","useHistoricOnHand","setShowHistoric","historicData","setHistoricData","noData","setNoData","usePriceAnalytics","setShowPriceAnalytics","priceData","setPriceData","noPriceData","setNoPriceData","baseData","months","dateEnd","dateStart","subtract","diff","existsMonth","previousPrice","k","reload","optionsNoInventory","itemIsCustomPackSize","newValues","historicOnHand","editCustomItem","itemEdit","rest","genericItemApi","is_preferred","historicNoData","InventoryContext","createContext","InventoryContextProvider","collectiveOnHand","collectiveOnHandUom","OH","setOH","OHUom","setOHUom","OHPack","setOHPack","totalOH","setTotalOH","totalCase","setTotalCase","totalPack","setTotalPack","totalUnit","setTotalUnit","totalOHAmount","setTotalOHAmount","collectiveOH","setCollectiveOH","inventoryContext","collectiveOHUom","setCollectiveOHUom","Provider","saveExpandAll","textSearchInventory","saveInventoryEditAll","onHandProps","setOnHandAmount","responses","setResponses","onHandType","setTotalOnHandAmt","setTotalComparisonView","setTotalOnHandAmtShowOnlyMissing","setTotalComparisonViewShowMissing","setTotalOnHandTotalShowMissing","showOnlyMissingHv","useContext","newOnHandAmount","prevOnHandAmount","onHandPropsOH","refresh","onHandBase","onHandUomBase","onHandPackBase","nUnitSize","useConversion","totalPackSizeValue","unitPriceBase","totalOnHandUnit","totalOnHandPack","totalOnHandCase","getParamsByHand","totalOHAmt","collectiveOHU","newVal","on_hand","total_on_hand","total_on_hand_amount","on_hand_uom","on_hand_pack","callbackEdit","abs","newOnHandTotal","comparisonViewTotalOnHandAmount","allComparisonViewTotalOnHandAmount","updateOnHandAmount","updateTotalInit","updateInit","updateOnHandAmountEdit","updateParams","totalOHDiff","calcOnHandTotal","calcTotalOnHandAmt","newTotalOnHandAmt","updateTotals","updateOnHandAmountOffline","useOnHandItem","useOnHandItemOffline","updateOnHand","onHandAmount","updateOnHandEdit","OnHandItem","useOnHandItemInterface","getHandBase","onHandClick","ItemInventory","itemProps","marginTop","ItemTimestampedInventory","PlaceOrderInventoryItem","isLastPurchased","useItemHeader","minHeight","ordered","p","AddNewItem","PlaceOrderInventoryGroup","convertProps","onScroll","GroupTitleFirst","borderStyle","PlaceOrderInventoryAnalytics","graphsMap","g","marker","radius","symbol","turboThreshold","spline","connectEnds","followTouchMove","userOptions","startOnTick","endOnTick","tickInterval","range","clip","legendMap","highcharts","arr","old_index","new_index","PlaceOrderInventoryOnline","useDragDrop","every","exact","old_sort","ceil","PlaceOrderInventoryOffline","usePlaceOrderInventoryOffline","PlaceOrderInventory","onbeforeunload","PlaceOrderContent","string","merchant_id","readMessages","locationsApi","readBroadcastMessages","getMessages","getBroadcastMessages","broadcast_message","PlaceOrder","useMessages","headerProps","setMenuList","setRecipeList","setRecipeListPage","setRecipeListIsLoading","setRecipeListLoadMore","setIngredientsList","setRecipeInfo","info","clearRecipeInfo","menuList","recipeName","menuCategory","menuPrice","isSubrecipe","isSubrecipeUsed","recipeYield","recipeYieldUom","procedure","totalCost","marginGrossProfit","foodCostPercent","hasInactiveItems","InputCheckboxControlled","undetermined","defaultChecked","classNames","itemName","details","textAlign","detailsIcon","RecipeCostingTableRow","selectRecipe","posQuantitySold","posTotalSold","goToRecipe","useRecipeCostingMenu","useRow","scope","tableHeader","inputWrapper","alignItems","inputLabel","RecipeCostingTable","tableSort","updateSortBy","selectedRecipes","Table","prop","recipe","RecipeCostingSubHeader","tabs","changeTab","dateFilter","setPOSBgnDate","setPOSEndDate","nRecipes","selectAllRecipes","duplicateRecipes","printRecipes","deleteRecipes","nRecipesSelected","TabFilter","updateDateFilter","NavItem","NavLink","justifyContent","ButtonGroup","Nav","tabName","htmlFor","toDate","hour","minute","second","recipeCosting","recipeList","recipeListPage","recipeListIsLoading","recipeListLoadMore","useParams","m","getRecipes","tableTabs","startOf","updateSelectedRecipes","sorted","localeCompare","languages","language","numeric","ignorePunctuation","recipeDateFilter","chain","Promise","recipeIds","link","questionProps","recipeListTable","updatedRecipeList","selectedRecipeId","menuName","createRecipe","redirect","duplicateRecipe","deleteRecipe","openRecipeOptions","RecipeIngredientsItemRowMobile","amount","updateAmount","openDetails","isFraction","amountValue","setAmount","styleInactive","letterSpacing","recipe_id","ingredientType","ingredientId","RecipeIngredientsItemRowDesktop","amountEdit","RecipeIngredientsItemRow","useRecipeInfoModal","menuInfo","recipeInfo","useRecipeCostingRecipe","useInfoForms","isSubRecipeUsed","isRecipeInfoValid","subRecipeYield","subRecipeYieldUom","recipe_menu_category_id","is_sub_recipe","sub_recipe_yield","sub_recipe_yield_uom","RecipeInfoModal","lockMenu","isEdit","AddIngredientModalRow","AddIngredientModal","openFoodbam","openSubrecipe","openInventory","itemRad","inventoryRad","subrecipeRad","ItemDetailsInfoCol","ItemDetailsImage","ItemDetailsFoodbamInfo","ItemDetailsInputCol","sideText","full","ItemDetailsUnitsCol","formatCreateLabel","ItemDetailsHowMuch","recipeAmount","waste","isInventory","noMar","ItemDetailsUnitConversion","canConvert","ItemDetailsFooter","onDelete","hideDelete","setUom","useConvert","itemVal","getRecipeData","recipeUom","linkedItemsInitial","linkedItems","ingredientItemId","subImage","setLinkedItems","openLinkItem","isThere","customItem","setLinkItem","itemUom","ItemDetailsFoodbam","ingredient","isAdd","recipe_amount_fraction","recipe_amount","recipe_pack_size_uom","waste_percentage","conversion_pack_size_fraction","conversion_pack_size_value","conversion_pack_size_uom","recipe_pack_size_fraction","recipe_pack_size_value","useItemDetails","isAddSave","isEditSave","form","itemPackSize","recipePackSize","constrains","cantSave","ingredient_type","ingredient_id","toFraction","ItemDetailsSubrecipe","ItemDetailsInventoryInfo","ItemDetailsInventoryLinkItemInfo","ItemDetailsInventoryLinkItemImage","ItemDetailsInventoryLinkItemButton","ItemDetailsInventoryLinkItem","ItemDetailsInventory","comparisonView","apiCall","wastePercentage","conversionPackSizeFraction","conversionPackSizeValue","recipePackSizeFraction","deleteGroupItems","deleteItems","finish","patchGroup","cparams","link_items","itemD","onEdit","linkedItemsMap","setAllItems","array","addItems","addSubrecipeItems","adding","setAdding","addingItem","setAddingItem","addItemForm","toggleAdding","AddSubrecipe","useAddSubrecipe","useMemo","cantAdd","AddInventoryItem","useAddInventoryItem","noimage","gId","useIngredientsDetails","openFoodbamTypeDetails","openSubrecipeTypeDetails","openInventoryTypeDetails","ingredientsList","recipeData","ingredients","ing","errors","ri","flags","useIngredients","ingredientsMap","ingredientCosting","subimage","lastPurchasedDistributor","lastPurchasedDistributorPrice","lastPurchasedDistributorItem","lastPurchasedDistributorDate","useEditRecipeInfo","saveInfo","editInfo","useAddIngredients","openAddFoodbamType","optionProps","openInventoryType","openSubrecipeType","addIngredients","addIngredientsMobile","useUpdateTotals","nKey","handleKey","totalCostTotal","menuPriceTotal","marginGrossProfitTotal","foodCostPercentTotal","RecipeInfoInput","RecipeInfoTextarea","RecipeInfoSubrecipeInfo","RecipeInfo","create","subrecipeProps","RecipeIngredientsInfoRow","isPerc","first","last","hideEdit","isEdited","setIsEdited","RecipeIngredients","paddingBottom","meal","RecipeCostingRecipe","infoProps","RecipeCostingMenu","listWhite","RecipeCostingCategory","menuListMap","createMenu","openCreateMenu","RecipeCostingMenuRow","useRecipeCostingCategory","goToCategory","editCategory","deleteCategory","openCategoryOption","getMenulist","recipeMenuCategoryApi","deleteMenu","renameCategory","RecipeCosting","categoryProps","PosListRow","formattedDate","arrowRight","posApi","PosList","usePosList","SelectModal","valueOption","setValueOption","listRecipes","setListRecipes","getPosDetail","changeRecipe","itemSelect","item_name","force","PosDetailRow","setItemSelect","onChangeSelect","iSelect","selectM","pos_category","quantity_sold","quantity_void","quantity_net","PosDetail","usePosDetail","Pos","cardToken","card","cardIconHandler","cardType","americanExpressIcon","dinersClubIcon","discoverIcon","jcbIcon","mastercardIcon","unionpayIcon","visaIcon","CardRow","showDelete","setShowDelete","enableShowDelete","disableShowDelete","deleteCard","token","goToUpdateCard","noGutters","flex","last4","darkBlueText","cards","setCards","cardspApi","newCards","cardsMap","CardsList","useCarList","StripeForm","injectStripe","cardId","successSaveCard","setStep","errorMsg","setErrorMsg","validCard","setValidCard","setCard","addressLine1","addressLine2","addressCity","addressState","addressZip","isDefault","address1","address2","city","zip","role","FormGroup","hidePostalCode","lineHeight","fontSmoothing","invalid","iconColor","maxLength","address_line1","address_line2","address_city","address_state","address_zip","tokenData","stripe","createToken","is","validateForm","CardForm","ManageCards","helpApi","HelpContent","useHelpContent","Help","payableTerms","terms","ItemsAndDistributors","tab","setTab","suppliers","setSuppliers","setCategories","codes","setCodes","accountingApi","editTermsMode","unshift","supplier","TabContent","activeTab","TabPane","tabId","accountingId","ng-classname","editSupplierMode","currentItem","editCategoryMode","editCodeMode","accountingSupplier","merchant_accounting_supplier_id","updateSupplier","onCreateOption","addSupplier","accountingCategory","merchant_accounting_category_id","updateCategory","addCategory","accountingCode","merchant_accounting_gl_code_id","updateCode","addCode","setPayableTerms","Number","updateTerms","BulkUploadModal","setFile","allowedTypes","newFile","selectFile","accept","uploadFileIcon","template","DownloadQuickbooksModal","aElement","downloadWhiteIcon","Accounting","setTemplate","uploadIcon","downloadIcon","InputCounter","unitM","changeValue","indexCart","cant","setCant","newCaseQuantity","nitem","IconBadge","FaIcon","idPop","popoverOpen","setPopoverOpen","ReviewOrderCard","priceTotal","lineItems","totalItems","checkout","canPlaceOrder","texts","CardHeader","CardBody","dataDistributor","setDataDistributor","isFoodbamDelivery","isDelivery","deliveryDates","dt","String","useUpdateCartAmount","transformDate","newDate","useSaveOrder","valuesCheckout","payment_token","paymentMethod","paymentType","requestedDeliveryDate","deliveryDetail","valueDeliveryDate","cartList","isSameDayDeliveryFee","valueNote","foodbamPrice","priceTotalCard","priceReal","requestedDeliveryTime","valueDeliveryTime","skipOrderMinimum","useShowCard","acceptCC","isOnlySpecialLength","isOnlyMktPriceLength","isOnlySpecialItems","isOnlyMktPrice","isOnlyMktSplItem","useOptionsDeliveryTime","valueDelDate","useValShowDelTime","setValuesForCheckout","SimpleModal","dangerouslySetInnerHTML","__html","NoteModal","note","setNote","ShippingAndPaymentCardModal","listCard","onClickOk","ShippingAndPaymentMobile","updateListCart","setListCard","useOrdersApi","useReviewOrder","textHeader","setTextHeader","showListCard","setShowListCard","showNewCard","setShowNewCard","setCardToken","showCard","setShowCard","blockSaving","setBlockSaving","validateShowCard","getCards","goToNewCard","listCardItems","updateCard","openModalConfirm","resValidate","newValuesCheckout","ReviewOrderRowMobile","listCartItem","priceTotalCardR","validateProgress","progressValue","diffMinOrderAmount","contentList","optionsDeliveryDate","validationMinimumOrderAmoun","setValueDeliveryDate","setValueDeliveryTime","setValueNote","setIsOpen","useValuesReviewOrder","showDelTime","setShowDelTime","optionsDeliveryTime","setOptionsDeliveryTime","Progress","Collapse","resultVal","priceFormat","ReviewOrderRow","changeShowDetail","goToItemsDistributor","displayComparisonView","setpriceTotalCard","setPriceTotalCardR","listCartItemH","setListCartItemH","totalItem","setTotalItem","setProgressValue","setoptionsDeliveryDates","updateByModal","useUpdateCart","priceAux","totalItemAux","listCartItemA","calculateTotal","getClassName","minOrder","minOrderAmount","skipMinOrder","isMinOrderAmountRequired","cartItem","specialRequestImg","goToDetail","swipeLeft","openChangeCant","priceTotalRow","reverse","getCartItemsProm","getCartByDistributor","Object","entries","doGetItemDistributor","newRes","_item","_itemP","itemI","ShoppingCartItemGroup","changeItemGroup","cartAmountFirst","setCartAmountFirst","groupEvent","scaleVideo","GroupItemDistributor","listCols","ItemDistributorModal","listItemsChange","setListItemsChange","setGroup","_index","itemGroup","updateAll","previousPromise","nextItem","resolve","ListGroupItemDistributor","vh","ReviewOrder","UseShoppingCartReviewOrder","useShoppingCartReviewOrder","cartItemsArray","setCartItemsArray","itemsDistributor","setItemsDistributor","setOpenModal","getItemDistributor","resItemsDistributor","contentListCartsItems","listCartItems","getCountOrder","callDeleteAll","listResult","acc","deleteAllConfirm","isUpdate","ShippingAndPaymentCard","onchange","setShow","deleteBtn","setDeleteBtn","ShippingAndPayment","listDeliveryDates","setListDeliveryDates","checkTerms","setCheckTerms","onchangeCheck","newListCard","getPayMethod","payParams","lg","FinalReviewCard","nameDistributor","submit","FinalReviewRow","FinalReview","transformItemsSavings","listItemsSavings","detailItem","swap","reject","idItemSwap","idItemReject","optionReject","matches","swapAcceptApi","swapRejectApi","optionsReject","setOptionReject","SavingsFirstCard","SavingsSecondCard","itemComparable","swapActive","rejectActive","goToChangeReject","effectChange","classSwap","classTextSwap","SavingsRow","itemSavings","changeSwap","changeReject","useSavings","indexItem","setIndexItem","setItemComparable","setEffectChange","swapItem","newSwapValue","optionValue","newRejectValue","rejectItem","showEffect","Savings","listSavings","setListSavings","swapValue","newListSavings","idItemSwapReject","rejectValue","submitSwapAccept","listSubmit","el","old_item_dist_id","new_item_dist_id","reason_name","swaps","contentSaving","CheckoutOrderingContent","CheckoutOrdering","headerContents","contents","ListItemRow","smallCircle","setList","SingleShoppingList","useSingleShoppingList","deleteShoppingListItem","backFunction","emptyList","ShoppingListItemBlock","addShoppingListItem","onInsert","uncheckedCircle","checkedCircle","ShoppingListForm","setListItems","listName","addOrUpadateShoppingList","redirectToItems","displayAlert","redirectPath","shoppingListAddedOrUpdatedPng","getshoppingListItems","listItemsMap","shoppingListSvg","ShoppingListItemsManager","getAvailableItems","element","ShoppingListsRow","goToShoppingList","moreSvg","listsMap","ShoppingLists","useShoppingLists","SpecialRequest","OrderHistoryListRow","useOrderHistoryList","statusOptions","customInvoiceId","poStatus","poStatusDateTime","InvoiceImage","functionProps","showNormal","setShowNormal","setShowView","getImages","setOpenView","setModalTitle","setImageSrc","seeNormal","image_path","extension","download","dispatchEvent","MouseEvent","seeView","OrderUploadInvoiceModal","images","setImages","openView","imageSrc","modalTitle","typeAllowed","sizeAllowed","DownloadModal","mainOptions","setMainOptions","optionSelected","setOptionSelected","setOptionsMap","mOptions","selectOption","more","ordersMap","useDownload","firstActiveLoc","modalOptions","setModalOptions","downloadLink","setDownloadLink","downloadExcel","orderHistoryUrl","downloadQuickbooks","generateObject","display_accounting","buildModalOptions","openDownloadModal","setStatusOptions","receive","upload","openOrderOption","recieveEditOption","viewOption","reorderOption","uploadOption","buildStatusOptions","statusOnly","recieveEditIcon","statusButtons","lightIcon","SubHeaderOrderHistoryList","OrderHistoryList","OrderReceiveRow","getOrdersById","useOrderReceive","orderReceiveList","editStatus","selectedOrder","acceptItem","idOrder","setTotal","unit_price","merchantUnitPrice","setMerchantUnitPrice","editedUnitQuantity","merchantUnitQuantity","setMerchantUnitQuantity","editedUnitSize","merchantUnitSize","setMerchantUnitSize","editedPackSizeUnit","merchantPackSizeUnit","updateEditValues","modifiedValue","orderItem","order_item_id","oi_id","item_description","merchant_price","merchant_unit_price","isSpecial","isRejectSelected","isAccepted","createCustomItem","useCustom","modalPropsCustom","itemsNew","RejectCreateModal","OrderReceiveRejectModal","rejectOption","setRejectOption","option1","setOption1","option2","setOption2","option3","setOption3","option4","setOption4","disabledButton","setDisabledButton","valueQuantity","readOnly","itemQuantity","rejectReason","OrderReceiveCheckedModal","question1","setQuestion1","question2","setQuestion2","question3","setQuestion3","question4","setQuestion4","question5","setQuestion5","comment","setComment","onChangeChecked","question","question_1","question_2","question_3","question_4","question_5","setOrderReceiveList","setSelectedOrder","receiveChecked","isRejected","orderReceiveMap","c","acceptAllItems","allState","qtyReduction","statusReceived","preReject","close","orl","inputPropsRejectItem","unit_quantity","unit_size","pack_size_unit","useReceive","orderCheckedPreReject","objQuestions","orderItemArray","objOrderItem","orderItemAllArray","objOrderItemAll","resPreReject","orderChecked","inputPropsChecked","useReceiveComplete","orderRedirect","orderComplete","lineItemTotal","toLocaleString","maximumFractionDigits","minimumFractionDigits","OrderViewDetailsModal","showDetails","lastInventoryDate","subtotal","usedCredit","totalRebates","totalSavings","deliveryFee","OrderViewDownloadModal","titleOption","setOrder","onChangeOrder","orderViewList","setOrderViewList","itemsCount","clickDownload","elem","purchaseOrderUrl","invoiceUrl","purchaseOrderUrlExcel","order365Url","orderViewMap","OrderViewRow","openDownload","inputPropsDownload","OrderReceive","setEditStatus","setAllState","useOrderView","SubHeaderOrderReceive","clickAll","totalPrice","OrderView","SubHeaderOrderView","totalItemsPrice","sameDayDeliveryFee","salesTax","promoDiscount","OrderReceiveComplete","stateLocation","valueCustomInvoiceId","setCustomInvoiceId","submission_date","original_total_price","credit_refusal","new_total_price","OrderInventoryRow","useOrderInventory","showDetailsInventory","setShowDetails","OrderInventoryDetailsModal","orderInventoryList","setOrderInventoryList","orderInventoryMap","inputPropsInventory","OrderInventory","OrderUploadInvoiceMobile","uploadPhoto","takePhoto","TakePhoto","photos","setPhotos","photosMap","setPhotosMap","startUpload","setStartUpload","setLocalStream","setImageCapture","uploadMissingPics","getElementById","mediaDevices","getUserMedia","stream","srcObject","ImageCapture","getVideoTracks","takenPhotos","canvas","clientWidth","clientHeight","getContext","drawImage","toBlob","blob","url","URL","createObjectURL","File","photo","getSnap","OrderHistory","setGroups","GroupRow","SortInventory","useSortInventory","Inventories","listInventories","setListInventories","completeInventory","oPage","getItemsInventory","itemInventory","listInventoriesGroup","completed_date","total_on_hand_value","file_url","downloadSpreadsheet","OnHandItemReview","isActiveInventoryEdit","ListItemsGroupInventoryDetail","ListGroupInventoryDetail","setUpdateComparisonView","isExpand","isOpenItems","setIsOpenItems","toggleItems","textSearchValue","totalOnHandAmtShowOnlyMissing","listItemByGroup","ListComparisonViewDetail","listGroups","initTotalComparisonView","listGroupsItems","HeaderReviewInventory","setShowOnlyMissingHv","showOnlyMissing","showItemHand","setShowItemHand","setExpandAll","changeCheckItemHand","clickExpand","InventoriesDetail","listComparisonViewGroups","setListComparisonViewGroups","setInventory","nameButton","setNameButton","updateInventoryEditAll","userTitle","disabledReopen","setDisabledReopen","getAllItems","comparisonViews","listComparisonView","ifExist","itemsGroup","reOpenInventory","Alert","ListItemsGroupInventory","ListGroupInventory","ListComparisonView","totalComparisonView","totalComparisonViewShowMissing","ReviewInventory","totalOnHandTotalShowMissing","newList","_ii","InventoryViewContent","InventoryView","setTitle","getDistributors","distributorApi","dsrs","phone","viewLastOrderGuide","lastOrderGuide","editDist","updateDist","dsrld","sendInvite","DistributorRow","useDistributor","lastOGDate","deleteDist","utc","create_time","distributorsDsr","dsr","distributorsDsrMobile","item_count","DistributorList","distributorsMap","SubHeaderDistributor","DsrRow","isEditable","setName","setEmail","setPhone","is_primary","setIs_primary","access_type","setAccess_type","setIsUpdate","showBtnCalendar","setShowBtnCalendar","colorStatus","setColorStatus","backgroundStatus","setBackgroundStatus","setShowCalendar","messageInvite","setMessageInvite","accessType","validateSentInvite","access","invite_status","getColorByStatus","is_deleted","onChangeOGPA","calendarClassName","handleDateChange","inline","selectsRange","sendInvitation","FaEnvelope","RiMailLine","RiMailCheckLine","deleteDsr","AiOutlineUserDelete","AiOutlineUserAdd","UserInputsModal","usernameP","username","setUsername","password","setPassword","DistributorDetail","dsrsMap","setDsrsMap","dsrsMapD","setDsrsMapD","nameShowISR","setNameShowISR","idDis","resultDsrs","is_dsr_editable","isDeleted","isNotDeleted","dcn","skyloader","useSkyloader","showModalUserInputs","FaQuestionCircle","merchantIds","fastResponse","OrderGuideDetailRow","is_catch_weight","UploadOgModal","allMerchants","merchants","setMerchants","showSelectedFile","setShowSelectedFile","allMerchantsMap","updatedMerchants","updateMerchantSelected","newEndDate","minDate","select","excelIcon","widh","selectedMerchants","NoTemplateModal","ogId","merchant","orderGuideDetailList","setOrderGuideDetailList","setHasMore","setPageCount","getOrderGuideDetail","orderGuideApi","preupload","requestTemplate","delayedClickUpload","alertProps","resetUpload","uploadOG","orderGuideDetailMap","downloadOG","showUploadModal","merchantApi","OrderGuideDetail","useOrderGuideDetail","leftButtonUpload","rightButtonDownload","SubHeaderOrderGuideDetail","Distributor","MainAppRouter","display_recipe_costing","clickClose","SidebarHeader","logoUrl","isLocationOpen","noLocations","useSidebar","favico","WhatInventoryViewModal","numInventoryTutorialView","setNumInventoryTutorialView","inventTutoImg","paramsInventoryTutorialView","setParamsInventoryTutorialView","inventTutoImg1","inventTutoImg2","inventTutoImg3","inventTutoImg4","inventTutoImg5","inventTutoImg6","SidebarBody","colorOrderPlace","activeClassName","activeLocationId","active_location_id","identifyFullStory","identify","displayName","useLogin","useFullStory","doLogin","setUserActiveLocation","firstName","lastName","defaultView","companyId","authenticateApi","secret","company_id","connect","setIsLocationOpen","userId","locationsMap","locId","usersApi","MainApp","LoginHeader","LoginFormInput","ForgotPasswordModal","errorMessage","setErrorMessage","successMsg","setSuccessMsg","LoginForm","Login","Logout","isFinite","useLogout","AdminLoginHeader","AdminLoginFormDropdown","onInputChange","filterOption","AdminLoginForm","setLocationSearch","setLocation","users","setUser","useAdminLogin","setLocations","setUsers","locationSearch","AdminLogin","adminLoginProps","useAuthenticationRouter","isLogin","SignUpSidebar","SignUpHeader","SignUpSteps","maxStep","mapSteps","alignmentBaseline","SignUpInput","isDropdown","mb","getMaxLength","isPassword","mask","hideSelectedOptions","SignUpContactInformation","titleOptions","stateOptions","locationOptions","businessName","locationAddress","zipcode","phoneNumber","confirmPassword","confirmEmail","howManyLocations","setLocationData","locationName","abbreviation","n","setState","emptyLocation","locationArray","setLocationArray","locationsData","setData","nv","lastStep","setLastStep","showLocation","setShowLocation","showDistributor","setShowDistributor","futureStep","distributorsAdded","editDistributor","setDistributorsList","locs","skip","fullName","distributorsAddedIds","locationsCheckboxes","getDistributorsList","toggleLocation","distributorsOptions","allLocations","contactInformation","legalInformation","editDistributorName","setEditDistributorName","editDistributorLocations","setErrors","dataCard","setDataCard","backTitle","nextTitle","distributorsData","showSkip","handleNext","equality","dsrEmail","dsrFullName","setDistributorData","agreement","findDistributors","loc","valuesSend","businessAddress","businessCity","businessState","businessPostcode","passwordRepeat","totalReportingLocations","address","singupApi","handleBack","handleSkip","complete","distributorArray","setDistributorArray","SignUpLocationInformation","useSignUp","SignUpStep1","SignUpAddDistributorLocationCheckbox","updateData","SignUpAddDistributor","SignUpStepDistributors","openDistibutor","SignUpLegalInformation","SignUpStepLegal","getToken","SingUpPayment","SignUpContent","validateDisabldDone","SignUp","contactInformationState","locationsState","distributorsState","legalState","valuesHeader","showDet_ReviewOrder","ChangePasswordHeader","ChangePasswordFormInput","ChangePasswordForm","setConfirmPassword","tokenSecret","password_repeat","ChangePassword","useChangePassword","AuthenticationRouter","Modals","modalsMap","SpinnerOnline","SpinnerOffline","Spinner","mount","setMount","defaults","baseURL","process","interceptors","request","use","config","require","useResizeListener","updateDimensions","screen","App","t","q","_api","async","crossOrigin","getElementsByTagName","parentNode","insertBefore","uid","setUserVars","anonymize","shutdown","restart","consent","arguments","identifyAccount","acctId","clearUserCookie","setVars","_w","_v","initFullStory","reducer","combineReducers","modalSync","syncInventory","innerWidth","REACT_APP_COMPANY_ID","REACT_APP_COMPANY_TITLE","desription","REACT_APP_COMPANY_DESCRIPTION","domain","REACT_APP_COMPANY_DOMAIN","website","REACT_APP_COMPANY_WEBSITE","REACT_APP_COMPANY_LOGO","REACT_APP_COMPANY_SPINNER","favicon","REACT_APP_COMPANY_FAVICON","main","REACT_APP_COMPANY_MAIN_COLOR","secondary","REACT_APP_COMPANY_SECONDARY_COLOR","totalPageCount","alphaSort","uniqueRecipeIds","Set","isInSet","has","ap","createStore","validators","keyName","jQuery","ReactDOM","render","store","apiKey","serviceWorker","ready","registration","unregister"],"mappings":"sGAAAA,EAAOC,QAAU,kwF,uCCAjBD,EAAOC,QAAU,kxD,iCCAjBD,EAAOC,QAAU,kzC,sBCAjBD,EAAOC,QAAU,85Q,oDCAjBD,EAAOC,QAAU,IAA0B,2C,qBCA3CD,EAAOC,QAAU,siF,+GCAjBD,EAAOC,QAAU,kkY,+ECAjBD,EAAOC,QAAU,8rB,cCAjBD,EAAOC,QAAU,0d,cCAjBD,EAAOC,QAAU,kb,eCAjBD,EAAOC,QAAU,kkG,gBCAjBD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,oC,cCA3CD,EAAOC,QAAU,ssC,cCAjBD,EAAOC,QAAU,0S,gBCAjBD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,uC,eCA3CD,EAAOC,QAAU,kW,cCAjBD,EAAOC,QAAU,kR,cCAjBD,EAAOC,QAAU,kN,gBCAjBD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,cCA3CD,EAAOC,QAAU,8b,cCAjBD,EAAOC,QAAU,krE,cCAjBD,EAAOC,QAAU,s5E,cCAjBD,EAAOC,QAAU,0vD,cCAjBD,EAAOC,QAAU,siE,cCAjBD,EAAOC,QAAU,0lE,cCAjBD,EAAOC,QAAU,8hE,cCAjBD,EAAOC,QAAU,8rD,cCAjBD,EAAOC,QAAU,0c,gBCAjBD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,yC,cCA3CD,EAAOC,QAAU,knD,cCAjBD,EAAOC,QAAU,0tJ,gBCAjBD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,+RCA3CD,EAAOC,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","file":"static/js/main.80c245d6.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABaCAYAAAA4qEECAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAABKRJREFUeNrt3d1PU2ccwPHvOW1PXzgUK60CVpRKOitTwqaYbJotS5Ysy/4O/6j9AV54s7uNzCxeTNHo5gsanBUUsAgUS1v6dtqel10ondpijAM9Jb/vFTnn5OH0w5OHhvM0KI7jOEi7nioEAi3QkkC7Nm+ng3WLH23L/tnBiQvR+6egZFSPesHv4de2c53eddQadkaQPxw7qKnx94KuNiwR+x+FNE/bMVmjP1ICLdACLQm0QAu0EAi0QEsCLdACLQm0QEsCLdACLQm0QO9+F6emuXo3DcDVu2kuTk0DsLSa4+LUNEuruTeuL5Zr/Hn3Eb9cueXK1+PdC7NlbaPIlVuz2C7e3bYnlo7pmceuRt4T0KWKQc1ouP4+ux7aduyuuE9XQ9uOg2nZrWXBtGwsuztg3861vwyDfo3MWo5Ll/97d3Hp8o3W16GA1lXQrp3RwwP9257rCfrZH9YFeic6lRzmUCzSdjwU0Dg/8RmqqsjSsRP5PB6++TJFsVzjj5sPMBpNzp4cZWQohqp0F7KrZ/RWfXoQj+flbUb0UBuyHgryw1en+O7MCZnRu5lHVdgf1jEaTZnRkkALtEBLAu3m5DMsu5B8huUTJtACLdCSQAu0QAuBQAu0JNACLdCSQO+ldv2ZoePAw6fLrBdK9PfpjB2L82AuQ/xghEhvD8vZDRqmhebzMpdZw6soRCNhksODlKo17qQXUVDoD/eQiB+kaZrcSS+2xk8MxhiMRXgw/4xS1eDwwX6ODkaZz2QJ+H30hgKtMSK9QUaGDmA7TtsYh9+xj6QrZvTCyjr5zQqTY8fIlyo8XV4nVyxh1F8+TC1VDYrlKtVanYDXy3jyCKu5Is/WcjSbJjWjwenUCLbjMPN4sXVsMpVgMpVgILaPv2bncRyHieQR0osrbGyWKZQqVGv11vVnUiPooSDX7891HKPrl45oXy/5coVsvsi58SSJQ7FtrzWaJvnNCkajSdDvA8CjqoQCGkG/htEwATAtixeFEi8KJVRF5fl6geNHD6GHApyfOE7Q739jXI+qEgxoRPt0jEaj4xhdv3T09gT4ejxJemGFmcdLfPtFattrm02TilFHVRRMy0bzeshvlvnt2j3KNYOfzk1QNepYlk25Vn+1NDk0TRPN9/KP7Vs/oNfLb5aZuj5DUPNxOpUAaBsDlO6GfrS4gh7wc/bkKH8/fEommyfcE6Ty6kWWawaRsI5t2UTCPRw/OoTjQHajSPzAfiJhne/Pfs7vN+6TL1Xw+7yEAn5SI0Ot7xEJ66zligzFItz+Z4HB6JtLwdYYW+UKpbYxun5GD/T3cX1mjtmF5wCcSMQxTYubs/M8Wc7i13xMJKM8Wc6ytPqC9UIJzetlcixB/bVNMePJYW4/XGByLNGaoQCjhwc4M5bg2r009+cz6AE/A9F9PF/Pv/O+3h5jNH5gVx0+2jND23HatnM5DuzkNjrHcVBcsC/vkz4z7LQxcadN3IC87et37Z3tsQRaoAVaEmiBFmghEGiBlgRaoAVaEmiBlgRaoAVaEui9Dq2gZITmw9rOriO06lEvCPaHIase9ULHc/LPfT9OskYLtEBLAu3e/gU+PNRY20X8XAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjgwM0MwNDk2REJBRTExRTVBMzQyOTdENjFCQTgxNzg2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjgwM0MwNDk3REJBRTExRTVBMzQyOTdENjFCQTgxNzg2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ODAzQzA0OTREQkFFMTFFNUEzNDI5N0Q2MUJBODE3ODYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6ODAzQzA0OTVEQkFFMTFFNUEzNDI5N0Q2MUJBODE3ODYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4fqBiTAAAAQklEQVR42mIUUrGUY2BgmAPElkB8HIhTmDmFZNcAGa5AzAbEykBsyAQkLBhQgRVI8ASa4DGQYDIQ7wHir1A6ASDAAMbbCUsi468+AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/not-available.97ad7333.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAABGdBTUEAALGPC/xhBQAAAbBJREFUKBWdU00rRGEUPuedW74SEivsmOFPWCiSiAULKZmPojTjYmHLUj6akYVpPnxslYWVlSILKStxpyFlQUrZEGPuvcd5L+90lYXxbs7znHOf59xz3nsR/nHCRiKCYM8jwgIWq9ezyU7LtA6kjsUPohiDqdt0tWXZSaUhxOOiDChnrgFRw7fBcykI/c8G4Ux8gIhGVHcEMbnoC9z/aQez19v1H2bugrvXOQaIuzFfaFBiTb9K9Fpgz4AQ6Zg3uKU6uGPefN8AAkeMgI8aVkyourCAlpi0g21vho34uCqoGM4kRomgX3EBGFr2Dj8VOAKdK8LzrOtGfEjx6etUI5IdVRwR06utwX3FZRTllSWTfKGGJNxJ2IQ78q55YWjmzRTnqmSNze9qPGVTEruPs8TIzXYT5XMn6op4zldW7LDJ10iIpIHoWPEFDt1iiR0DCWayqba8aR3xe9RK7j786rGoLxRx5xQufAfLzf5LFFo3F15UUUYWZ0RF1Zw758YFA5mMesfONPT08U/y5jyEaIHwjK42Dn1xt/Ib/zCQOTmnQOziPewhUU+0xX/6i66Q+gTRSZA9mTjYkwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAQdJREFUOBGlU0tuAjEMtS2O0kPx21UVF0DQDULApnOEii2IQ8FRIK6fGU9hlGQBWUwmjt97TuLH18X4kxN/k+hJmuOamZUqQ1U5LScbSjxS0R++zSdnJf0AhoX30hxmJZI7ePqrSb88n/giUA5BbKSlJZhKxGLugz1uWM5t9Cup5oCploB9r6otG+tHga7UEgkAceY+2Nf4xMiRxB7mR+WIdxVEoESSAwMjAXx1fqqgpB7kuSo6ghwYAIBrlzjwBG/P/w5DLNTwb8/YkbTNhqf3jn2/kW6L8VYTraCEEcp9P+SPSDuBq+7QMtiJzaVutPZeHKM0FLekuYrF2CpOfCahHRvGLNf8AVQF/gkDnnt+AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAABGdBTUEAALGPC/xhBQAAAOhJREFUOBFjZMjdvYWB4b83A2ngMQMjUxnDJJcV6NqYyDAMZIYsw/9/Sxjyd7tjMRBdiGg+M8O//8sZCverIOsAupAiIMjw5/cGhob9PDBTKDUQZI42w9s/mxny94iDOIwMubv+gxiUA8YXDMxM3tRwIdQt/yUY/v2bT0UDgeb+/69HXQOBZiIMZGR8xMDC5MogzMoLpkF8XACPWoSBzIzJDH8YHIEx9hxMg/i4AB61jAx5u7cC/e7FwMLDxfDn6ytgQADTFOMXBhZuMYY/X75hNROXWkbGbajqc/e0AvP2ZwYQTQjgUAsAbz5R1djxttEAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/rebate-sticker.24461f8a.gif\";","module.exports = __webpack_public_path__ + \"static/media/rebate.bc577e61.wav\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAABGdBTUEAALGPC/xhBQAAAzdJREFUWAnNWE1PFEEQrereBcTIJoIxEhIkagIH418gnvwDcuRGuAh6MV65mnhQ8UK4ecQ/sQf/AYclfgQPG4wCJmBUYLe77DfLbGbZ7t4dyUT6wAz1ql69menuql6mHOPhxoYem94bEcMVVjIoxOVyicqgaDSpwSQNsXzMWg72tsYO383NmX7puR/HlZ214f19umEtVSybvmKUaFGKDkZH6evK+OLvXnmipEsfXw+KuTRuThpXexHFcD1Q/sH6z87qneXjkF9QyLPPa5WfRzwlpqlDwXnsrEvmypBsP7+1eOCL8wp5vLl+/UQaE76A89oGuFx/dXfh21meLiFFikiT+8SoFMQVn6OoN5HNgxzIlbW13wgmpjkZmuk1J5S2JTJqloRmXfCMJboGQvdEu0JUI6YqaVu1RjWzic7eY87ogaNaOoFLqQNWh5hGdGIy8yw19RMiSeaPS+zytoa7n3R3k07gA+dTZ0UvRaR6Cndd8MDI6YBtgMmnwT4RW6KWldNAy2zlRSqii7nDIBPwRQxiO6DMP8iJ3DAlQrBZZfCuW012iS3NdwE9DIhBbMwtza2xbQ+PHk0Ki1c5PocjfBoji2EsdI8Uf3A+X7x+ogZv3p//rlA7Qts2JqYT4ebE+QY4kknuoUFuaFAoYB68ZcLqOJ2YQZ++ADe5Ey6/MzQoVFE/7KxuiQaxvECECxoUSnmIE/tECMtrj3FBg0r7CR9xuln5sLy2GBc0JMs3L2kR/gqdVYjYqdwNYXntMS5ocNueBIW4bbuWN2HIP8YFDQo9Zig4KWBBMCeAYhgY0KDQ6AZwQhV1Za0exPsGHEfC5Q+ABoVuG42uzwWlXFwV9WF5bOAItQXInWhAy49uO0SMUu6I3obwXnbExtoB5E40gAgtf4zQkFr9FzGIQWyMO83drriPttanYj0JyE4rcbsxCifguhMRbYwQi2PGm+mFpDFqd2g4d7AeqsRaRbxiLtn3vVtFU5U+WkXkTB+m/UZgQEN7+MvcTsEiryOX9afsGadjiweAVr9IAeBGjqwI2DreCAwYRZ5tfGca5PQKAXAhjpwQgnEhDuEtKa2///1niawY3Bf5Q81fPIWXCs+bvAsAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAUCAYAAAC07qxWAAAABGdBTUEAALGPC/xhBQAAAINJREFUKBVj/BVu+fk/w38eBjyAkYHxMxMhRSD9QDW8THgMQpFiYWBgDEMRwcEBKvzfgEMORRiokEELRQQHh2g3jirEEYIQYQqCh5GpkQGE0QAoChEAqIB9xbEGkMDPCCtgMvhXD5NEWI2kCCQJ1oBkMkQhmiKYKSiKgVY0wCRw0SA1AKifIUGZld+tAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/sync.b82577a0.gif\";","module.exports = __webpack_public_path__ + \"static/media/drag-drop.da8530e8.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAVCAYAAAB/sn/zAAAABGdBTUEAALGPC/xhBQAAAKxJREFUKBVjzL8x+9P///95GfAARkbGz0yEFIH0g9Qw4TEIRYqFiYmpCkUEB4fl379/bTjkUISJtnpUIUq4oXPoEDyMDIyHQBjdahZkAUYGhpPsjEw+ILGf///u/s/AYA6Th7sRmDgvMHKwenRpJH8GYRAbJIau8BoLI7frBMXEDzAJEBskBuRfA4kxAd1zh4mT06VXPeoNTBGMBomB5EBqGPLvLpKDSeCiQWoAfUUv2KunhMkAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAVCAYAAAB/sn/zAAAAgElEQVQ4T2Ps8Xv6n4EIwEh9hUTYClZCA6up75lRE/FFJ0YUlmySZgRpQA82FIUgRa+T/HhBCkXnbfqMrBiuEKTofUOCgGDDgg8ghTA2TDFYIUjRp4ZIEb6G5W+Q3QkTA6kBu+drQZAk94R1z7F5BibH+D0vVo5z0uJH+HwMUgMAmD5jUmDr6UUAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAVCAYAAAB/sn/zAAAAUUlEQVR42mNgyNvxnyhMA4VEgwF046hC2ijEFbXoil4n+fGCMIZiZEXv6xMEYAbC2SgKgeBTfaQIesKCi8Gc9LUgSBJXKoTLfcuLlSOUZEFqAKd9aVZAdnOBAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/meal.fad8b6a9.svg\";","module.exports = __webpack_public_path__ + \"static/media/list-white.f2e15db9.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAQCAYAAAAvf+5AAAAAAXNSR0IArs4c6QAAAPVJREFUKBWVkU1SAjEQhV+SccWK4R5QygmYDFfwFiJQcAqrLChv4RXmZ8kSxHOArlxBiN2TmZIgqdJU5aeTly+dfgKTVQzz9QoZzbAYvCHQZCWyVsMcc0zLXkAHCYs5BD4A28HBFCGxqAgP2S0JC1q3AbHHjdJ4TrbndFkFL8MNlEpp/RkiO2JzdVzcwZicQkeWIsEyfedjR2yEC732yJbSecy7fOwTmwujsg97zChsQ4gdde0TG+GVWf3a4zxPdZ41jfP0n/7TZy5FXMv6x/zqPwrOrgj7U7srrjBREvOJ/I5D1rGIm4Rq3VOdCqgovfTXSdz4Da1kYYIbzbzyAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxOUQyMkM4OERFMjMxMUU4QkZGRUUxM0ZEQzUyRTA0OCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOUQyMkM4OURFMjMxMUU4QkZGRUUxM0ZEQzUyRTA0OCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE5RDIyQzg2REUyMzExRThCRkZFRTEzRkRDNTJFMDQ4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE5RDIyQzg3REUyMzExRThCRkZFRTEzRkRDNTJFMDQ4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+LxqN8AAAA5BJREFUeNpi/P//P8NAAiaGAQajDhhwB7CACGUVVRZ3T28fXl5eHnpYCkr4d27fvrVuzcpTLNFxCQ7HTl+cyszMrEVnz9+6eP3uE8ab957+FxIWJlrXrz//GC4+/Qim0YEIDxuDujgvaVFAjOX/gEE29cA9hj3XXzKcf/yRQU6Ik4GDlZnh6rNPDH//oZYjorxsDFZKIgxJ1goMlkpCBM1mfP3xB96S6N3X3wypi88wfPv9j2FihD6DkZwA2HIQ+P33H8OlJx8ZqtdfZdh17SWqz5gYGep9tBjS7RTJd8DTDz8YfKYcYYg0k2NoC9IBG4o9UTEw9Oy6BXTIFYY/aCESYy7H0BeqR142zF9xgSHCVJahK0QXbPmmi88ZDt1+A5cHRcHiE48Y/gNhqbsaQ08YpkVLTj5i2HL5OekOWHPuCcOrLz8ZWgN1wGkgdu5phoCpxxjuv/kKV/MGKB8/7zSDe/8Rhp/ARJnrqMJgrYKZpirWXWH4+P03aQ5YePwhQ66zCgMbCxPD0pOPgfgRTl/svfEKHAWMwBiq8tLAkH/1+SfD1ssviHcAyMcXn3xisFcTAfPnH32ASDQ4HAFTY6MiwsDEiKnq4uMPxDvg5ovPDFxszAxaknxg/vXnnwhmJ1DUgBIgLwcLg74sP6YDnn4i3gGvvvwC5nUuOP/zjz+IEGDEnRM+QeNZHkkvDLz8+J14B2gCSzNQCv8HbazIYjEQHXACywYhbjaIb4FlA4aZUnzEO0CMj52Bh50F7AgQCDCQIpgGAg0hakCpHTmnwIC2FD9puQBUlPbuug3JRp7qDHoy/Dh9D4qujmBdMLsPqgcZgHJSlKkMaQ4odlVlOHb3LcPqs08Y+DlZGQ6W2jMUuqjCi2FIccsEdujxSkcGGUFOhiN33jC0bruB1SxFEW7Si+JT998zxM4/BawDDBhiLOTwpgFQXZAw7wzDi08/UMR1gEG/q8AGZzFOsDI68/ADQ8KC08A45AMXycbygijy14BZtHXrDYblpx5j6HXTEmeYFWMIzNIs5NeGIPAWmC3zVl5gOHDrDYMgFyuDs6YYuJzYfuUFw7MPPzDUCwHVZDgoMxQ4qRCuju89efWfl5ePqMbDz99/GU4/+gAMlfdYGyTiwNxjqSjMoCZOfMuOsb27vyAlLTMTyFYbiEYpI6iBGBOf6ODp5esLDAk+elp+7Oihw4yjXbNRBwy0AwACDAABsVmrpIJiyQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAABN1JREFUWIXtll1sFFUUx3/3zmzd3ZZS24iFkigkUiVBMESUBFJ5aBRSNPIRvh6siPFFCdKCXYgCkVpMkQfhwZBABIk+WCL94EUeyNYYGkhrF6hAS8BAymeUKtBud2fu8WFmt9umoJhUfeCfnMy9NzPnfz7uOWfgIR7iP4byn/bG2r11YL0mCMjIsSkU4NZXr1u5CHAA7EjNnsbYz+dFxIiIM8Ji5HL3NYnU7GkEbBsIadsue/aZiVzpvoKRkXI/FQTF+PHj0LZdBoRsICgIGIMo7YdpZJB2zRjEczRoAwoBlMK2rQdSaIABc8Vb+RFU6l5uDIqwsv23QWnC4TBKaV+HDChRCjEGYwxKKZTSuCgSRuOgAbBxCeCixPX2to1SGmNcRAStPb2u64C2PE7AzrT25dJSxhWN586d21RWrGNr9ccsXbKEpsOHCYWyeXNlOe1tbRyNRukXi6NvT8Y6ugMCIUzJauZ8cZItH0YYnTuK99esQWvNlClTeGXuXLbV1FBYOJYXZjzP2oqKgfLzguhtLduiru5b6usb+WzHdnJycvjtVg/5BQWUlJSQnZ3N6Y4ODjU0cdcEsNZnwZLPIbcQ3bSRFW9U09TYSN7oXKZNnUpnVxczZ85kwpMTCAaDLF68iOZoNB1VwI/fEBQVjUVEMMawatUqNn20iZ/a2qjeuhWtNZbWaKUgEITcQsgrAjvMvLnzaG1tpbm5mcVLl/op017agN27d7N8xfJBXLaXbe9iJJMO5eXlXLl2laoPqtiyeTM1NZ/Q2dlJb+9dKtZWcPbcWV57tYy4sYi+uxq+Ww9ZOTjTFjGmIJvS0lJsS5Of9yjxeJyWlmPkF+TT29fLsmXL2blzFy/OmDHIiDEbaveJiEgi6UjScSXhuJJIOuK4RoaDGXLs+i0sE8mEI+2xmJxobZVLly+L4xpJJB2J9ydERGRD7T4BxngR8EsnkYiT2YeUVoRDYea8NIfp058j2vwDs2fNou7gQRYuWEB9QwNKW8yaPZszp0+zcOECIpEIlZWVHDjwFVevXiPe34/ruvTF+3ydmkcIpIo28w4ISpRXpr6k9jdv3iAabUaMYdKkSZTNn0/t9u0Y12Xy08X8euM6IiZd4dev36C4uNjTagQR5VW8HYZgELrbwQoM3AHfX5SlUIbMI5JOko6OjuHuKrHYKbTW5ObmpM8iVVXpdb/jYCwblWUjFtidxwh+/Ra4t5HHd2UY4JuulQY1eBYY19BvEiil0g0qhXA45KcumVajlEb8xmZsGwVY54+T9c07qDPtHuPEJ4aLAGh97/YpwwwpEfG7qAI0aAvxu7n8cYvA8f3YhyJwqw+ygLD/oeMM7oQpr7yavd80VOkPU+2bjPEhgNVyAN2yH91yxCO1fWKV8ZLTmz64TwSGkg0/JtXFE6iTTaiWL1EXL3kaA0COzzG01QmQ6Bt+FmhtoYftjRk4dRgutsCpRojFPA02XiSyMwgzPR6K/nh66RsgPecudOcVTywaeKnre+jtgQs/QqwBzv8CfT5RSkI+UUoEcP/CAQEcUIl4T8rOPOCpDZ/uPYLSo03qYmkLtO2J5T+V9sVnTKfk7//CKARJ9P6+7b3XS4EuhZexx4AiYNQDaftnEOA20A3cTJEF8DKYNcLkKSSAu0DyX+J7iP8x/gS7F3jTDPpbbwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNTQ0ODkyNkRFMjIxMUU4QTZENUIwODkzNzgwRkNEMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNTQ0ODkyN0RFMjIxMUU4QTZENUIwODkzNzgwRkNEMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkE1NDQ4OTI0REUyMjExRThBNkQ1QjA4OTM3ODBGQ0QzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkE1NDQ4OTI1REUyMjExRThBNkQ1QjA4OTM3ODBGQ0QzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+MvcEogAAAn1JREFUeNrsV01oE0EUfm922qTGtGoMWEJ79CiGghUpCP5ViEd/ELSHHlrBWwvFg57sqRc9FasU9KAHvXlQlBaPRknU4klQVIxVm0CKaP+yO8/Jbna722zcqagRzIMhu8PHvm/efO+bCRIR1DMY1DkaBOpOgNsPHedm6LvhFSSBBvg+A2WhFu/0Y3nubesu4ujlXZKvr6PC/E29e2riht5coNvFqaqE7c9bQcg02YEH6BDYPJImpPBqWb7NgVHIVUisxue2Hk9yFAgzMcN3Ze7kBkdIPI4AaQyEXwWc5LlXEr0ARo3WXBIroDEGsxGEQrNRs6yJ9B5C+WViJWjPbjUrSNpPtoDnXkBJF4H79XILAcNgXKSwEaKzWKkgBYtQJbkJRlTCRT822vAX2tAddsuVo+34OLGKSO0W84vr23ZQPGzhsoMPa+K6Jw6R7tpKHshwpQSiKeyZGwolCLhX1lzKfG/Yi4sP7ncUmJ+YNrM+keS6rvaS8hbMf3nmw6q6p3T0aUsDzdHkWueGs/socAt+W2hWLiPEXZXCvy9CsbzkPH8dn0Zy+6HpUnJcvJWhnSN3yX4vD0weI7a7jzYdnfTM2+PmkT5nfrilg+51dvvi3OPw6BlKXul1cJYV95yi+9cuw/mTXWZ9MHmCmBQUhlpsB7LEF+mssrWMPSchouKS8YGDkn1tc+P5NRpghgap/mHn7GFr1Kzpag74qJiHlAJOX1ynBuY/TanttW78GSekWkfZv2rF67lpKxGIbT+g5uvCEh4qnppKBDhxmLtxGlVWPbaYU8ps23IgAaHFYDk9GZxcXrUuLXwIxIWbQ57k1m2s8c+oQeB/J/BDgAEAlEEeA5xpkMQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAABedJREFUWIXtlv1vFWUWxz/PvN1757a397bbF9peBPsiqZTyoiCbVHaRlS2NLERSV5NlNyvyCzElwW7WJcZkNatuNq5xs8EEYpAfjFGjLFUhZuMKVmqrdlMW0IK8VWltb0tp7/vMnZn9Yaa3lYL+AXKSJzPPzPec8z1zvs8zD9y0m/ZjNzFzu2FpJNJQBbYDuVkQBXwysuwDLKxsFqzctXFmsMgg+7x5FiyLa+NZlnCmpv59DvrPCID16//2QkfHxvaamnkI4bg4WUYu0EEGO2lgZzIIWUYuCCJUsBImTjYzK64OigwWYCbAsd1nquI9SwI2ALYNfX0XjKeffr1DwKaVx4//s2f16so59ZhHP2Di4EHSJ/qxrkwgNA3t1lsJ3bOWwrY2CBXPgI1LcO4NGP4IkoPgWOAvg9I7oeZ+CN0xJ/7+/cdzIhLZ9eDp0395taJCy79I9fUx2N7OVFcXjten6V7ZgAP4SkqY98cnKNv+G6SBZ+G//4B0BiS3C3mw5XWmZjM0vwDB+fk8vb2DKJCzTTMHuAQmOzv5qq2NXCaDcp0uS9NfZ3ycbzp2EhbP4C8acZMFruOAx3jgbRjpgfveg+ImN4aZ8+I5bt/T/f18tWUL9g2Sf4eIAH0eDO4fYeyYgILvAQuP3NQQvLsB0qPfLUgobrpL27eTM4x8lTcyCwjVQXQrlK0BNeyQi8EPOvqA8SHo6cgzkwDkkA/zky4Svb15VhbTmp0xZ1ZBSgGM/QcmPoVYN0z24/baAExmxDLtOD38wMkDYH0Lqo4EMkKBiQMHSNU3UbtvL5mGZdyydy+lP2tG9WsIz1fzazgVlZQ91EpkMZSukog0QGkTSBLEzUVkf3kIq+UtKAiCosxU4bikRpUlmA07YOgQyAEUWZOx0w7xns+ItzxA5OFtTE0GKd/2IN0xk4IduymPj2IPXsRe2cyZM99Su3UjsT89ibJuI+mjH2LIKnrzGqiZj3/0CCe7uqlc/DxVtU1Y594iWHsvUvwsVqieOIsoNo/A8Icg/9rVmjAtUtkc/oULODMYp+IXdzM8MIg8PsLl8gXIP7+PSVOm6GgnTirD2dc7CW97hNiUgfTQbwn5Bee7TrG0MU1F1zaKgf7kSr6JlyKqdqJnE2TkekIDL3MBHzWV/WBMQcDxNKBI5Bbehh6tJhm7QmFmkqEk3LbrUeaXBojakww8/ji+TVtY9Yffg2GQUIrQTv+P8/vfoES2Gfvrc0zY5bDsd1xdvY+la9YR9qfQgmHU8W4mRwZZUKPTtKQSxi+CXgEIFMuwUHwS4u57GHr/fUQyy2XhkC2p4KQcoL6ujLOnvmZB63rGXtrDx1cE9WUKnz33DCva7qVwMsbAwTdZlDhK174/E2/ZwciXPYTHP0dXMlweO0Fz4Zt09/r4aF07RVIfpcmrsHw7nLcQkUj7A6cu/v21kksnOL5kKaonYNkTtOWp3gAKvasC1G6GdCUEDXdvn1cPpg4TcQjrEE+DJoMQoOvur2EiDipQVOqHh4f5uDflasCKZ9Aam5jfuoGxd99D9UQ7e2MTHjHdezd6GMK3Q1oC2wCjTqAVOJT5XUBJ0ANOOwr4iR9IAQt/BSIM1lWXgGO7C7Z6z0tMrViBEYshz1rG19sLzAxolRCIQtFiED7H/TzXAmdfU0B0OSzb7W0WIIGTPxNo0Sj1R47gq67GvAGBabOBC52QTNzh9iT7A+AUULUC1h+C4kZARWAjWRZomprH6suX09DbS/nWraAomLjHCcsb0/d6YyMNb/+Lqlc+RTTvgYJbIAOkPTJZZuZKIazaBZuPQbAqn0tRVAS0NL7zzvMnWlsXzWU+dIn04cOkPu/DGh9D+P346uoIrV0LP10zt8yxwzB8DOIXwTEhUAlld0F1C1AyJ/yLL34QFwBNTbt3PvbYpiei0XBx/kQkBJKuIwUCOJaFk8shJAmhqji5HHYigZObddSSNFCDICSwTfcPK6nuMjBTYKVnqNrwxRcjl5966rVHv6dxN+2m/Ujs/1rDPsadLT9eAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3FpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowYTJmMzMzMC0yZTAxLTU2NGItYmYzNi00MzA1MzExYmUwZDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkQ0NDlBODRERTIyMTFFODgzNkNDQzA5QkVFNDA1QTEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkQ0NDlBODNERTIyMTFFODgzNkNDQzA5QkVFNDA1QTEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmU1NzRlOTQ1LTllZDctOTk0My1hMjE3LTA1YWJhMzkzMGNjZiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowYTJmMzMzMC0yZTAxLTU2NGItYmYzNi00MzA1MzExYmUwZDgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz44EmUYAAACKElEQVR42mL8//8/w0ACJoYBBqMOGHAHsHxeu+b/64oKggotea2JNvQvByPDB31mvGrmxSczxFlYMTLeVVEmKhuQ4oCvCkwMP8QJB+7x8hoGohzwlZGZwYXHgmgHvDVnoW4aWMomPbCJcBWrFNEG/mNhpL4DQFFALPghSWUH/GQkLad+l2Ii3wEskpIMnObmYDaIZuTkZFjDIkm0YVYmGgz2auoMYrx85DlAYu48BsklS8FhCKL/f//OsJhdhmjD1s+qZFQVE2d41tXP2BYYQroD2FRVGT/MmomSLYXlITlARUGSISfeG8MAdjZWOPvC3Yf/5xw5BGYvOXGMRAcwQxLau+5uMP0yP++/0u07jEICvAwvzy1kPLqug/H8tXtgNkg+NsgBzDbWUwbTyeEuDNXb1zFYKaswsGQm/79U18z4Z/pcxhJXD4ZtuYUMZ6rqCTjg3z8wJbtjJwPI4q/btoH5N+4+gSs5evo6mN40r5rh3JV7YHZapBvD3JV7/reVxzLuvHqF4djdOwwcrIhQ6d+7i2H/zRsMBrJyWLMH3pIwgtuQ4SETF8Ul4P6icoapB/YyrDl3hrRsSIrluMD1xjaGc48fYrUcnPOoVaT+x1FWadZXkVcQ7WQRJa0AkiSvaYFT10o2SZIM+iFBZQdcZ+alShTQpUn2n0xT1MUlqOMAYlo/2MDCxBQGJqGSEsodIMFIsh5QXWEir8jIONozGnXAiHcAQIABANdapXHnHkZ1AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAABLJJREFUWIXtlltsVFUUhr+1zzlzKb03bSnlVqxCQPBGMTGiGC5KgoDhEp9sajQQoj6JLyaAT5hgeFIfjGAMxgtBghoFAgohUSJBaqmlAWx6AZECLR3aaaczc/byYWboTKtvVB/kT3bO7HX2mX+t/a+91oa7uIv/GJJ+utNe+nKfb80qa0HHkUwEXLFfde5esxZIArjTG/Z+c/BUp6omVTUxziOpLe3XdVrD3m8A1wXCSfFWPFNXTfeVq/h2vOJPwTHC7OkTSeKtAMIuELIWQLFisGZElzsNJSUBKOk4Qy4gmZiNkfFLgAxHbnTi5syMi2jWCrWAppIn86UyskUZZyXXpFbRNJkxgiCoKr7qmN3NcsDBeCFUgiAOqEX8IUQTeI4Scg3GCL5VjIBI6jcKjiO3I0v4SixhsVYJuIbhhOXspQGqSoJUFgWwKb3/zgGh4MwmAh17Ul5a6F12GqdoFr4/TPnL32NE+HDDXN491MHZrn7eXFPLjPI8Xv+klUg0iVUl6Apd7y8m6StnOiKs2vELrhGWzC1j18Z5DCeEbJ1NtjdDC3YxsG6Aj3vWQwjyu78mEApxtLmXgpBLVXGIdQsn09Y9SGHYpSjk8dpH5/B9ZcPSqTQ8NZnCPA/jOIRDHju/bac4z6Moz+Xi1UGCARcxDtlpnrUDPo6N4QWCHM/fxqnfpvPelJ8h6HC46QZGoH5RNa2dt1LJCjxUU4wRqKnIY8vamYQmBNhZnyTpK9cicU5e6GNKWYhbg0ku98QYHPbxnNwsMNnZJAbQJE/PCbPnymJOtgWJDCb4rrEbq/DCk1M51tILwKTSMPNnleK5hrarUWpeOcq2T88RjVvcgMv2AxfxHGFV3UTyQy7GQMvlKK7rpGl1tASCiKAoq+sq8IjxRuNK9p/swnPg/qn5VFcW09QZAeDxWaUgDqfefoLnF07GEeGDI528c6ANgEON13CM8NyCSTxYU4gjwk/ne/E8808SgBEDCqGwx6LZJTS2G7bvawXg1eW1gHC8pQeAR+4p5mZfjLKSAnY0zGfO1EK2ftbK+T8H+KHpOrGEjwCL3/oR1wiOIzRf6gcnhzL3FIhJnVfUsnJ+Jad/78WIIRxweLZuEn39USLROK5jqJ1YQM2mwyyoLaG8KMiJczdQhSXzKtj6RStW4bGZpXy+eSEXLvWwaMsJfm2PpKMf2YEcCYwYBIPvC8sfrqJ3IM7NgTjLHqgEx+XgmW4GYj63hhJUl4UoDLucbuvjcGM30ZjPxmUzePS+Upo6IvRF42xePRPw6YsmiQwmaOmKMBRLMBoVVfX7VVU1ER/WWCym8eGYqh9XVV9VbapL+vF0N/PTI5n1PjOy7b6qTaifiKvaRI5NVbWqfr8CFe7IGQARg0iqjCZ8EGsRQDVdgX1A7MjBkdzSqrf/SNNzRRVEFUl/Z0QwzginS5YixpExvUjTC2R0Fc9qDaNtt6ci6e6XZTO5S10AkzGKk7ohjOudKIUMpwHwxPYda+4etXA8RgrHmrvxxPZlmIqBe6e9uPdIUt2if+NG5Eoy0rl7/VLgogAeUA5UAwWMUfKOQ4F+4A/geobMAyYAgXEmzyAORIGxReEu/nf4C4EHevRkKqEYAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAQCAYAAAAMJL+VAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANBJREFUeNqsVO0RwiAMjT3/2w1kAxmlI7iJOImO0BHqBoygG+AEMe0Fr4ctJNh3945QaB4fLwAiQoEdscdf9DyW/T832K4kXhJqawQ8yuG1Ag71cCUBQ7wTA9YhLB1VDKwgsRPs8JwKNABgiAPxAP/jRnwSXfzQcGeL5BFH4oXox86e2GUmv3hFMGtj/ODYcNIUp2nxgouzGSuX7i6A0B22IvkEENoyFbFSOwN7HxUiVlErYTcWGN+4xElvbqWuu6q3rH2ftnwq5kf5rfqPAAMA1PwmAR0CPKkAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/upload-icon.0a0c61d3.svg\";","module.exports = __webpack_public_path__ + \"static/media/download-icon.5318805a.svg\";","module.exports = __webpack_public_path__ + \"static/media/upload-file.b0cda0b2.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAABGdBTUEAALGPC/xhBQAABHhJREFUWAnNWE1sVUUU/s55FZUSTdSNuHChcadixGpASm3EWmotVUQRaExMjLpyATFGF2+hMQj+xPizEAlWwAVGICZGY4xIDCptpUiRIPjDwjYhZWOs0p83x3Pm9U7fve++3vdqIczmzvn/7syZc+dcQo1Dnl17syu4FQLcSsB8gOaD5EoInQFkUPmDyu/jHO+hjdsP1+Je7bKH5Ndc5v6R9XDUJZBrsy2KGgQ6BZZunkubKb/jryy7acFIPj/HjZx8CuJe0De+KstZJbkGGQbxi1x//buUz49No5cukue7rimMTeyBYGG6xgy4hN7cnLoV9FL3n2nWqSsjz6273Y273bolV6cZ/R+ebt0QX8Sd9PKHPyT9lIHxQCbcPhG5JKk8WzQRneU6bkoCioGxrXGjhZ5zsSLJF/ErdHHuttIt40jJJ+voxN7zAcRiWhzLSYsbYQhg7NRY7YgE5+Wph8Of1slgfpt8Hflbfp3u+NKSVtDS5ZCebyBffJyNlXQj2teCbmqAfL4L0rs/1UYBDPM8us7qkF8ZN4IN0wExL7S0DXT5FeC7O0Gdj6U6DkwDsvpp8JJ7vQ01tgZRcmJxfUFVQXGbBOuSSkla+g8EFi9aBuqoYGJAHn4SfMuioC+HpmwDs3Sild1Ikg2PLigIDpXKUufR25YEcfs/g3y6Y0rddFY9AV7YGHjuwJeQ3dsCXWmSy/ECdoKOSgoxvmj+f/QO3OHvA5sbl4PaVgeaVj4eB/LdV1UBMQf28a2r6QQZoJ1vQ5hBNzZ4ENx0H5xzwNx54Ia7AjB38GvIJ1sDnTUxHKzZrNeAGoYGdtvfggz0BiNuvh98R3OgnZ24XVsCXc3EcGgC632k1uEKCuhNyM8/llm6vm8VyHtl/GwGKRi7GM1kFAqQM6fLLYeHtLzqotc6FAcXb2i1Wup6auJaHUkObnkI1NSeZGfTelPUbZLBbM24BrWugiVuNOTIQciJgYgEtz0C0pNW25BB1gWtCQy1rAQ3T1UDS2RLaLd1M+Tk0RCf29eA7mwJdNbEcNhp6stSjOS07AH/OYhoS2BLZC0SwMS4AnoV8tuxSAzu6AJpta5mGA62W3xVyotbwPc8GFTlWD9c9xuAJnIY46Nw72+C/H48sFi/Y1RStYMgMTEcbO2EFvFTCVkZSU1tgSfHf4L74PU4kEg6ZoBegfxxIuL4j2wgUiYW33AUP5TaTqToxFhytE9PrFbgIz1w215TIBMxeYwYPQu3ZSPkl4GiTUo9iulPxtet0vNkfVHGfcYbX1oP/DsS85NJZNgogPh9xjdY2tdkOq4ViDnMstG4UYNX3Ca1sQYL2tdkAppNBY3n40769NsU+b9gugMDZG2Db7C0r4kAnoun75uskUt0lmGboqDWWPkGSzu/iDebTz3GQ2kNnMUoA2NMD0gbrFnPIcsRa9xSWtuKYDwgXcJc/Q2LifgZO37Gm+kwe/Pj/SW2ptRnLIFLBaXzC+L/TCmgaG7dhF3i7c6qb6K3xAp/rgh7adPO/siumud/P9TIumjshdQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/unchecked-circle.0ab80935.svg\";","module.exports = __webpack_public_path__ + \"static/media/checked-circle.31e43ccd.svg\";","module.exports = __webpack_public_path__ + \"static/media/shopping-list.362490b8.svg\";","module.exports = __webpack_public_path__ + \"static/media/more.cb572805.svg\";","module.exports = __webpack_public_path__ + \"static/media/lightning-bolt.001cd80f.svg\";","module.exports = __webpack_public_path__ + \"static/media/excel-icon.0b0beb3c.jpg\";","module.exports = __webpack_public_path__ + \"static/media/inventory-tutorial-1.00054251.png\";","module.exports = __webpack_public_path__ + \"static/media/inventory-tutorial-2.7a75c9c5.png\";","module.exports = __webpack_public_path__ + \"static/media/inventory-tutorial-3.239e252c.png\";","module.exports = __webpack_public_path__ + \"static/media/inventory-tutorial-4.919e982d.png\";","module.exports = __webpack_public_path__ + \"static/media/inventory-tutorial-5.92504c6b.png\";","module.exports = __webpack_public_path__ + \"static/media/inventory-tutorial-6.eca59036.png\";","module.exports = __webpack_public_path__ + \"static/media/timestamped-inventory.4aadfc2a.png\";","import uniqid from 'uniqid';\r\n\r\nexport const showModal = (component, props) => {\r\n return {\r\n type: 'ADD_MODAL',\r\n payload: {\r\n component: component,\r\n id: `modal-${uniqid()}`,\r\n props: props\r\n }\r\n }\r\n};\r\n\r\nexport const hideModal = (id) => {\r\n return {\r\n type: 'REMOVE_MODAL',\r\n payload: id\r\n }\r\n};\r\n\r\nexport const changeTourMoral = (id) => {\r\n return {\r\n type: 'NEXT_TOUR_MODAL',\r\n payload: id\r\n }\r\n}","const ShowIf = (props) => {\r\n const { show, children } = props;\r\n\r\n if (show) {\r\n return children;\r\n }\r\n return null\r\n}\r\n\r\nexport default ShowIf;","export const saveConnection = (connection) => {\r\n return {\r\n type: 'SET_CONNECTION',\r\n payload: connection\r\n }\r\n};\r\n\r\nexport const saveOpen = (open) => {\r\n return {\r\n type: 'SET_OPEN',\r\n payload: open\r\n }\r\n};\r\n\r\nexport const saveModal = (modal) => {\r\n return {\r\n type: 'SET_MODAL',\r\n payload: modal\r\n }\r\n};","import { isMobile } from \"react-device-detect\";\r\n\r\nexport const mobileClassName = isMobile ? ' is-mobile' : '';\r\nexport const modalMenuClassName = isMobile ? 'fade-down' : '';\r\nexport const modalFullMenuClassName = isMobile ? 'fade-down full' : '';\r\nexport const modalTourInventoryViewClassName = isMobile ? '' : 'modal-inventoryView';\r\n\r\nexport const noImage = 'src/assets/images/no-image.png';\r\nexport const embedlyKey = process.env.REACT_APP_EMBEDLY_KEY;\r\nexport const embedlyApi = process.env.REACT_APP_EMBEDLY_URL;\r\n\r\nexport const timezone = {\r\n to: 'America/New_York',\r\n from: 'UTC'\r\n};\r\n\r\nexport const fullstory = {\r\n debug: false,\r\n host: 'fullstory.com',\r\n script: 'edge.fullstory.com/s/fs.js',\r\n org: 'A3WMV',\r\n namespace: 'FS',\r\n localstorage: '_fs_uid'\r\n};\r\n\r\nexport const drift = {\r\n version: '0.3.1',\r\n load: 'k3dzbzayuard'\r\n};\r\n\r\nexport const connection = {\r\n mode: {\r\n online: 'Online',\r\n offline: 'Offline'\r\n }\r\n};\r\n\r\nexport const colorsGraph = [\r\n '#263238', '#b71c1c', '#78909c', '#ef5350',\r\n '#424242', '#c2185b', '#212121', '#f06292',\r\n '#4e342e', '#7b1fa2', '#795548', '#ba68c8',\r\n '#bf360c', '#5e35b1', '#ff7043', '#7c4dff',\r\n '#ff9800', '#283593', '#ff6d00', '#ffab00',\r\n '#304ffe', '#ffca28', '#2962ff', '#ffd600',\r\n '#2196f3', '#ffea00', '#0091ea', '#03a9f4',\r\n '#00b8d4', '#00acc1', '#009688', '#00695c',\r\n '#00c853', '#388e3c', '#2e7d32', '#558b2f',\r\n '#33691e', '#827717', '#37474f', '#455a64',\r\n '#546e7a', '#607d8b', '#616161', '#757575',\r\n '#3e2723', '#5d4037', '#6d4c41', '#8d6e63',\r\n '#a1887f', '#dd2c00', '#ff3d00', '#d84315',\r\n '#e64a19', '#f4511e', '#ff5722', '#1b5e20',\r\n '#43a047', '#4caf50', '#00897b', '#00796b',\r\n '#004d40', '#006064', '#00838f', '#0097a7',\r\n '#ff1744', '#00bcd4', '#039be5', '#0288d1',\r\n '#0277bd', '#01579b', '#1e88e5', '#1976d2',\r\n '#1565c0', '#0d47a1', '#448aff', '#2979ff',\r\n '#7986cb', '#ff4081', '#5c6bc0', '#3f51b5',\r\n '#3949ab', '#536dfe'\r\n];\r\n\r\nexport const currency = '$';\r\nexport const colors = {\r\n dark: '#122439',\r\n green: '#6ed79a',\r\n lightBlueText: '#9BB1C2',\r\n lightBlueBorder: '#DCE8F2',\r\n orange: '#fc745a',\r\n blanck: 'rgba(72, 82, 90, 0.94)',\r\n blue: '#006EBA',\r\n blueDark: '#143357',\r\n yellow: '#FEBA5D',\r\n white: 'white',\r\n red: '#f95738',\r\n lightBlueSav: '#008cf3'\r\n};\r\n\r\nexport const localStorageConst = {\r\n keys: {\r\n connection: 'connection',\r\n userName: 'userName',\r\n authKey: 'authKey',\r\n currentRole: 'currentRole',\r\n userInfo: 'userInfo',\r\n activeLocation: 'activeLocation',\r\n locations: 'locations',\r\n cartItems: 'cartItems',\r\n lastModifiedCart: 'lastModifiedCart',\r\n savingOptions: 'savingOptions',\r\n view: 'view', \r\n listSelected: 'listSelected',\r\n listItems: 'listItems',\r\n listItemsPage: 'listItemsPage',\r\n inventoryItems: 'inventoryItems',\r\n inventoryItemsPage: 'inventoryItemsPage',\r\n inventorySync: 'inventorySync',\r\n inventoryItemsToSync: 'inventoryItemsToSync',\r\n inventoryList: 'inventoryList',\r\n inventorySortBySelected: 'inventorySortBySelected',\r\n },\r\n compression: false\r\n};\r\n\r\n\r\nexport const sortOptions = {\r\n listView: [\r\n { value: 'A-Z', label: 'A-Z', id: 1, name: 'alpha', type: 0, desc: 'A-Z', default: 0, drag: 0 },\r\n { value: 'Z-A', label: 'Z-A', id: 2, name: 'alpha', type: 1, desc: 'Z-A', default: 0, drag: 0 },\r\n { value: 'Price: Low to High', label: 'Price: Low to High', id: 3, name: 'price', type: 0, desc: 'Price - Low to High', default: 0, drag: 0 },\r\n { value: 'Price: High to Low', label: 'Price: High to Low', id: 4, name: 'price', type: 1, desc: 'Price - High to Low', default: 0, drag: 0 },\r\n { value: 'Most Purchased', label: 'Most Purchased', id: 5, name: 'frecuent', type: 1, desc: 'Most Purchased', default: 1, drag: 0 },\r\n { value: 'Greatest Savings', label: 'Greatest Savings', id: 8, name: 'savings', type: 1, desc: 'Greatest Savings', default: 0, drag: 0 },\r\n { value: 'Custom', label: 'Custom', id: 6, name: 'custom', type: 1, desc: 'Custom', default: 0, drag: 1 },\r\n ],\r\n listViewSearch: [\r\n { value: 'Sort by relevance', label: 'Sort by relevance', id: 7, name: 'relevant', type: 1, desc: 'Sort by relevance', default: 1, drag: 0 },\r\n { value: 'A-Z', label: 'A-Z', id: 1, name: 'alpha', type: 0, desc: 'A-Z', default: 0, drag: 0 },\r\n { value: 'Z-A', label: 'Z-A', id: 2, name: 'alpha', type: 1, desc: 'Z-A', default: 0, drag: 0 },\r\n { value: 'Price: Low to High', label: 'Price: Low to High', id: 3, name: 'price', type: 0, desc: 'Price: Low to High', default: 0, drag: 0 },\r\n { value: 'Price: High to Low', label: 'Price: High to Low', id: 4, name: 'price', type: 1, desc: 'Price: High to Low', default: 0, drag: 0 },\r\n { value: 'Most Purchased', label: 'Most Purchased', id: 5, name: 'frecuent', type: 1, desc: 'Most Purchased', default: 0, drag: 0 },\r\n { value: 'Greatest Savings', label: 'Greatest Savings', id: 8, name: 'savings', type: 1, desc: 'Greatest Savings', default: 0, drag: 0 },\r\n { value: 'Custom', label: 'Custom', id: 6, name: 'custom', type: 1, desc: 'Custom', default: 0, drag: 1 },\r\n ],\r\n inventoryView: [\r\n { value: 'A-Z', label: 'A-Z', id: 1, name: 'alpha', type: 0, desc: 'A-Z', default: 0 },\r\n { value: 'Z-A', label: 'Z-A', id: 2, name: 'alpha', type: 1, desc: 'Z-A', default: 0 },\r\n { value: 'Custom', label: 'Custom', id: 6, name: 'custom', type: 1, desc: 'Custom', default: 1 },\r\n ]\r\n};\r\n\r\nexport const inventoryOptions = {\r\n keys: {\r\n rearrange: 'Rearrange',\r\n expand: 'Expand',\r\n }\r\n};\r\n\r\nexport const limitOptions = {\r\n searchText: 10,\r\n listView: isMobile ? 25 : 50,\r\n inventoryView: isMobile ? 25 : 70,\r\n recipes: 20\r\n};\r\n\r\nexport const placeOrderViews = {\r\n list: 'list',\r\n inventory: 'inventory',\r\n};\r\n\r\nexport const itemCart = {\r\n min: 1,\r\n max: 10000,\r\n};\r\n\r\nexport const delay = {\r\n cart: 1000,\r\n cartCheck: 2000,\r\n onHand: 200,\r\n tap: 500,\r\n touchDelta: 10\r\n};\r\n\r\nexport const onHandTypes = {\r\n cs: 'cs',\r\n uom: 'uom',\r\n pack : 'pack'\r\n};\r\n\r\nexport const inventoryItemTypes = {\r\n custom: 'custom',\r\n subrecipe: 'subrecipe',\r\n generic: 'item'\r\n};\r\n\r\nexport const cartAnimations = {\r\n type : {\r\n none : null,\r\n cartUpdated : 'cartUpdated',\r\n rebatesEarned : 'rebatesEarned',\r\n savingItemAdded: 'savingItemAdded',\r\n specialRequest: 'specialRequest'\r\n },\r\n delay: 5000,\r\n};\r\n\r\nexport const processStatus = {\r\n start: 'start',\r\n processing: 'processing',\r\n end: 'end'\r\n};\r\n\r\nexport const savings = {\r\n exactMatch: 'ExactMatch',\r\n similarMatch: 'SimilarMatch'\r\n};\r\n\r\nexport const orderImageUpload = {\r\n allowTypes: [\"application/pdf\", \"image/png\", \"image/jpeg\", \"image/jpg\"],\r\n downloadTypes: [\"pdf\"],\r\n displayTypes: [\"png\", \"jpeg\", \"jpg\"],\r\n sizeLimit: 24000000\r\n};\r\n\r\nexport const cameraConstraints = {\r\n video: {\r\n facingMode: \"environment\",\r\n height: {\r\n min: 576,\r\n ideal: 720,\r\n max: 1080\r\n },\r\n width: {\r\n min: 1024,\r\n ideal: 1280,\r\n max: 1920\r\n }\r\n }\r\n};\r\n\r\nexport const validateRequired = {\r\n validate: {\r\n value: {\r\n length: {\r\n minimum: 1\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport const validateFraction = {\r\n format: {\r\n pattern: \"[0-9]+[\\/][0-9]+\"\r\n }\r\n};\r\n\r\nexport const validateState = {\r\n validate: {\r\n value: {\r\n format: {\r\n pattern: \"[A-Za-z]+\"\r\n },\r\n length: {\r\n maximum: 2\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport const validateZipcode = {\r\n format: {\r\n pattern: \"^-?[0-9]*$\"\r\n },\r\n length: {\r\n maximum: 5\r\n }\r\n};\r\n\r\nexport const usState = [\r\n {\r\n \"name\": \"Alabama\",\r\n \"abbreviation\": \"AL\"\r\n },\r\n {\r\n \"name\": \"Alaska\",\r\n \"abbreviation\": \"AK\"\r\n },\r\n {\r\n \"name\": \"Arizona\",\r\n \"abbreviation\": \"AZ\"\r\n },\r\n {\r\n \"name\": \"Arkansas\",\r\n \"abbreviation\": \"AR\"\r\n },\r\n {\r\n \"name\": \"California\",\r\n \"abbreviation\": \"CA\"\r\n },\r\n {\r\n \"name\": \"Colorado\",\r\n \"abbreviation\": \"CO\"\r\n },\r\n {\r\n \"name\": \"Connecticut\",\r\n \"abbreviation\": \"CT\"\r\n },\r\n {\r\n \"name\": \"Delaware\",\r\n \"abbreviation\": \"DE\"\r\n },\r\n {\r\n \"name\": \"District Of Columbia\",\r\n \"abbreviation\": \"DC\"\r\n },\r\n {\r\n \"name\": \"Florida\",\r\n \"abbreviation\": \"FL\"\r\n },\r\n {\r\n \"name\": \"Georgia\",\r\n \"abbreviation\": \"GA\"\r\n },\r\n {\r\n \"name\": \"Hawaii\",\r\n \"abbreviation\": \"HI\"\r\n },\r\n {\r\n \"name\": \"Idaho\",\r\n \"abbreviation\": \"ID\"\r\n },\r\n {\r\n \"name\": \"Illinois\",\r\n \"abbreviation\": \"IL\"\r\n },\r\n {\r\n \"name\": \"Indiana\",\r\n \"abbreviation\": \"IN\"\r\n },\r\n {\r\n \"name\": \"Iowa\",\r\n \"abbreviation\": \"IA\"\r\n },\r\n {\r\n \"name\": \"Kansas\",\r\n \"abbreviation\": \"KS\"\r\n },\r\n {\r\n \"name\": \"Kentucky\",\r\n \"abbreviation\": \"KY\"\r\n },\r\n {\r\n \"name\": \"Louisiana\",\r\n \"abbreviation\": \"LA\"\r\n },\r\n {\r\n \"name\": \"Maine\",\r\n \"abbreviation\": \"ME\"\r\n },\r\n {\r\n \"name\": \"Maryland\",\r\n \"abbreviation\": \"MD\"\r\n },\r\n {\r\n \"name\": \"Massachusetts\",\r\n \"abbreviation\": \"MA\"\r\n },\r\n {\r\n \"name\": \"Michigan\",\r\n \"abbreviation\": \"MI\"\r\n },\r\n {\r\n \"name\": \"Minnesota\",\r\n \"abbreviation\": \"MN\"\r\n },\r\n {\r\n \"name\": \"Mississippi\",\r\n \"abbreviation\": \"MS\"\r\n },\r\n {\r\n \"name\": \"Missouri\",\r\n \"abbreviation\": \"MO\"\r\n },\r\n {\r\n \"name\": \"Montana\",\r\n \"abbreviation\": \"MT\"\r\n },\r\n {\r\n \"name\": \"Nebraska\",\r\n \"abbreviation\": \"NE\"\r\n },\r\n {\r\n \"name\": \"Nevada\",\r\n \"abbreviation\": \"NV\"\r\n },\r\n {\r\n \"name\": \"New Hampshire\",\r\n \"abbreviation\": \"NH\"\r\n },\r\n {\r\n \"name\": \"New Jersey\",\r\n \"abbreviation\": \"NJ\"\r\n },\r\n {\r\n \"name\": \"New Mexico\",\r\n \"abbreviation\": \"NM\"\r\n },\r\n {\r\n \"name\": \"New York\",\r\n \"abbreviation\": \"NY\"\r\n },\r\n {\r\n \"name\": \"North Carolina\",\r\n \"abbreviation\": \"NC\"\r\n },\r\n {\r\n \"name\": \"North Dakota\",\r\n \"abbreviation\": \"ND\"\r\n },\r\n {\r\n \"name\": \"Ohio\",\r\n \"abbreviation\": \"OH\"\r\n },\r\n {\r\n \"name\": \"Oklahoma\",\r\n \"abbreviation\": \"OK\"\r\n },\r\n {\r\n \"name\": \"Oregon\",\r\n \"abbreviation\": \"OR\"\r\n },\r\n {\r\n \"name\": \"Pennsylvania\",\r\n \"abbreviation\": \"PA\"\r\n },\r\n {\r\n \"name\": \"Puerto Rico\",\r\n \"abbreviation\": \"PR\"\r\n },\r\n {\r\n \"name\": \"Rhode Island\",\r\n \"abbreviation\": \"RI\"\r\n },\r\n {\r\n \"name\": \"South Carolina\",\r\n \"abbreviation\": \"SC\"\r\n },\r\n {\r\n \"name\": \"South Dakota\",\r\n \"abbreviation\": \"SD\"\r\n },\r\n {\r\n \"name\": \"Tennessee\",\r\n \"abbreviation\": \"TN\"\r\n },\r\n {\r\n \"name\": \"Texas\",\r\n \"abbreviation\": \"TX\"\r\n },\r\n {\r\n \"name\": \"Utah\",\r\n \"abbreviation\": \"UT\"\r\n },\r\n {\r\n \"name\": \"Vermont\",\r\n \"abbreviation\": \"VT\"\r\n },\r\n {\r\n \"name\": \"Virginia\",\r\n \"abbreviation\": \"VA\"\r\n },\r\n {\r\n \"name\": \"Washington\",\r\n \"abbreviation\": \"WA\"\r\n },\r\n {\r\n \"name\": \"West Virginia\",\r\n \"abbreviation\": \"WV\"\r\n },\r\n {\r\n \"name\": \"Wisconsin\",\r\n \"abbreviation\": \"WI\"\r\n },\r\n {\r\n \"name\": \"Wyoming\",\r\n \"abbreviation\": \"WY\"\r\n }\r\n];\r\n\r\n\r\nexport const unitsOfMeasure = [\r\n { id: 'lb', name: \"lb\" },\r\n { id: 'pint', name: \"pint\" },\r\n { id: 'oz', name: \"oz\" },\r\n { id: 'bunch', name: \"bunch\" },\r\n { id: 'ea', name: \"each\" },\r\n { id: 'cs', name: \"case\" }\r\n];\r\n\r\nexport const packSizeUomsConversion = [\r\n { id: 12774, label: \"in\", type: \"Length\" },\r\n { id: 12777, label: \"m\", type: \"Length\" },\r\n { id: 12775, label: \"yd\", type: \"Length\" },\r\n { id: 19, label: \"lb\", type: \"Mass\" },\r\n { id: 20, label: \"oz\", type: \"Mass\" },\r\n { id: 16, label: \"kg\", type: \"Mass\" },\r\n { id: 21, label: \"ct\", type: \"Mass\" },\r\n { id: 17, label: \"g\", type: \"Mass\" },\r\n { id: 3549, label: \"fl oz\", type: \"Volume\" },\r\n { id: 12, label: \"l\", type: \"Volume\" },\r\n { id: 15, label: \"cup\", type: \"Volume\" },\r\n { id: 3548, label: \"quart\", type: \"Volume\" },\r\n { id: 3547, label: \"gal\", type: \"Volume\" },\r\n { id: 9, label: \"ml\", type: \"Volume\" },\r\n { id: 31, label: \"pint\", type: \"Volume\" },\r\n { id:15726, label:\"tsp\", type :\"Amount\"},\r\n { id:15727, label:\"tbsp\", type :\"Amount\"},\r\n];\r\n\r\nexport const packSizeUomsCustomItem = [\r\n { id: 12782, shorthand: \"ft\", type_id: 6 },\r\n { id: 16, shorthand: \"kg\", type_id: 8 },\r\n { id: 17, shorthand: \"g\", type_id: 8 },\r\n { id: 19, shorthand: \"lb\", type_id: 8 },\r\n { id: 20, shorthand: \"oz\", type_id: 8 },\r\n { id: 9, shorthand: \"ml\", type_id: 13 },\r\n { id: 12, shorthand: \"l\", type_id: 13 },\r\n { id: 31, shorthand: \"pint\", type_id: 13 },\r\n { id: 3547, shorthand: \"gal\", type_id: 13 },\r\n { id: 3549, shorthand: \"fl oz\", type_id: 13 },\r\n { id: 30, shorthand: \"qt\", type_id: 14 },\r\n { id: 39, shorthand: \"ct\", type_id: 14 },\r\n { id: 207, shorthand: \"bag\", type_id: 14 },\r\n { id: 343, shorthand: \"tub\", type_id: 14 },\r\n { id: 383, shorthand: \"bunch\", type_id: 14 },\r\n { id: 385, shorthand: \"can\", type_id: 14 },\r\n { id: 412, shorthand: \"cans\", type_id: 14 },\r\n { id: 15726, shorthand: \"tsp\", type_id: 14 },\r\n { id: 15727, shorthand: \"tbsp\", type_id: 14 }\r\n];\r\n\r\nexport const getTypeConversion = {\r\n 'ml': 'Volume',\r\n 'l': 'Volume',\r\n 'lt': 'Volume',\r\n 'cup': 'Volume',\r\n 'ga': 'Volume',\r\n 'gal': 'Volume',\r\n 'qt': 'Volume',\r\n 'quart': 'Volume',\r\n 'fl oz': 'Volume',\r\n 'pt': 'Volume',\r\n 'pint': 'Volume',\r\n 'kg': 'Mass',\r\n 'gr': 'Mass',\r\n 'g': 'Mass',\r\n 'lb': 'Mass',\r\n 'oz': 'Mass',\r\n 'z': 'Mass',\r\n 'ct': 'Mass',\r\n 'm': 'Length',\r\n 'in': 'Length',\r\n '\"': 'Length',\r\n \"'\": 'Length',\r\n 'ft': 'Length',\r\n 'pies': 'Length',\r\n 'yd': 'Length'\r\n};\r\n\r\nexport const baseValueConversion = {\r\n Volume: {\r\n 'ml': 1000,\r\n 'l': 1,\r\n 'lt': 1,\r\n 'cup': 4.22675,\r\n 'ga': 0.264172,\r\n 'gal': 0.264172,\r\n 'qt': 1.05669,\r\n 'quart': 1.05669,\r\n 'fl oz': 33.814,\r\n 'oz': 33.814,\r\n 'z': 33.814,\r\n 'pt': 2.11337642,\r\n 'pint': 2.11337642\r\n },\r\n Mass: {\r\n 'kg': 1,\r\n 'gr': 1000,\r\n 'g': 1000,\r\n 'lb': 2.20462,\r\n 'oz': 35.274,\r\n 'z': 35.274,\r\n 'ct': 0.157473\r\n },\r\n Length: {\r\n 'm': 1,\r\n 'in': 39.3701,\r\n '\"': 39.3701,\r\n 'ft': 3.28084,\r\n 'pies': 3.28084,\r\n \"'\": 3.28084,\r\n 'yd': 1.09361\r\n }\r\n};\r\n\r\nexport const windowBase = {\r\n desktop: { width: 1366, height: 768 }\r\n};\r\n\r\nexport const orderItemFields = {\r\n orderId: 'order_item_id',\r\n description: 'item_description',\r\n unitPrice: 'merchant_unit_price',\r\n price: 'merchant_price',\r\n unitQuantity: 'unitQuantity',\r\n unitSize: 'unitSize',\r\n packSizeUnit: 'packSizeUnit',\r\n packSize: 'pack_size',\r\n total: 'total'\r\n};\r\n\r\nexport const OGPAccessTypeOptions = [\r\n { value: 'none', label: \"No Access\", showCalendar: 0 },\r\n { value: 'unlimited', label: \"Unlimited\", showCalendar: 0 },\r\n { value: 'limited', label: \"Limited\", showCalendar: 1 }\r\n];\r\n\r\nexport const OGExpirationDays = 7;\r\n","import { useState, useLayoutEffect } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { hideModal } from \"../../reducers/modals/modalsActions\";\r\nimport { modalMenuClassName, modalFullMenuClassName } from '../../config/constants';\r\nimport * as $ from 'jquery';\r\nimport { isIOS, isMobile } from \"react-device-detect\";\r\nimport { useEffect } from \"react\";\r\n\r\nconst useModal = (id, isMenu, fullMenu) => {\r\n const dispatch = useDispatch();\r\n const [open, setOpen] = useState(true);\r\n\r\n const onClosed = () => {\r\n if (isMobile)\r\n window.drift.show();\r\n dispatch(hideModal(id));\r\n };\r\n\r\n useEffect(() => {\r\n if (open && isMobile) {\r\n console.log(window)\r\n setTimeout(() => { window.drift.hide(); }, 1000);\r\n } else if (!open && isMobile) {\r\n window.drift.show();\r\n }\r\n }, [open])\r\n const h = useSelector(({userInterface}) => userInterface.size.height);\r\n\r\n useLayoutEffect(() => {\r\n if (isMobile) {\r\n setTimeout(() => {\r\n const header = $(`#${id} .modal-header`).outerHeight();\r\n const body = $(`#${id} .modal-body`);\r\n const footer = $(`#${id} .modal-footer`).outerHeight();\r\n const style = fullMenu ? `${h-(header ? header : 0)-(footer ? footer : 0)-(isIOS ? 110 : 0)}px` : '80vh';\r\n body.css(fullMenu ? 'height' : 'max-height', style);\r\n }, 100);\r\n }\r\n }, [h]);\r\n\r\n const toggle = () => setOpen(!open);\r\n\r\n const modalClassName = isMenu ? modalMenuClassName : '';\r\n\r\n return {\r\n id: id,\r\n onClosed, isOpen: open, toggle, modalClassName\r\n }\r\n};\r\n\r\nexport default useModal;","import React, { useEffect } from 'react';\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\nimport { saveOpen, saveModal } from '../../../reducers/connection/connectionActions';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport useModal from '../useModal';\r\n\r\nconst ConnectionModal = (props) => {\r\n const { id, title, message, onOk, btnLabel, btnSize, footerClass, color } = props;\r\n const showTitle = title ? true : false;\r\n const modalprops = useModal(id);\r\n const dispatch = useDispatch();\r\n const currentOpen = useSelector(({ connection }) => connection.open);\r\n const currentModal = useSelector(({ connection }) => connection.modal);\r\n const modals = useSelector(({ modals }) => modals.modals);\r\n\r\n const onClickOk = () => {\r\n if (onOk) {\r\n onOk();\r\n };\r\n dispatch(saveOpen(false));\r\n dispatch(saveModal(null));\r\n modalprops.toggle();\r\n };\r\n\r\n useEffect(() => {\r\n if (currentOpen) {\r\n currentModal.modalprops.toggle();\r\n }\r\n const newModal = modals[modals.length - 1];\r\n const cnModal = { id: newModal.id, modalprops: modalprops };\r\n dispatch(saveOpen(true));\r\n dispatch(saveModal(cnModal));\r\n }, []);\r\n\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n {message}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nConnectionModal.defaultProps = {\r\n footerClass: '',\r\n btnLabel: 'Ok!',\r\n btnSize: 'sm',\r\n color: 'green'\r\n};\r\n\r\nexport default ConnectionModal;","\r\nconst itemsFiedlds = 'id,imageUrl,brand,brandImageUrl,description,name,foodbamCustomDescription,din,distributor,distributorId,type,purchasedPrice,price,unitPrice, \\\r\n unitMeasure,unitQuantity,unitSize,unitType,uom,packSize,packSizeUom,rebate,savings,showSavings,savingItems,sortIndex,status, \\\r\n itemDistributorId,itemId,lastPurchasedDate,lastPurchasedQty,matchType,merchantId,midpId,notes,orderGuideId,endDate,caseQuantity,count, \\\r\n isCatchWeight,isFixedWeight,isPunchedOut,isPurchased,isMarketPrice,isPartner,isPriceOutdated,isUnpurchasable,isElectronicInvoiceItem,isSubRecipe, \\\r\n subRecipeId,updateTime,averageWeight,belongsToGroup,isFromInvoice';\r\nconst itemsBaseFiedlds = '++id, sortByOptions, sortBy, product, search, filters';\r\n\r\nconst listsFields= 'id, name, merchantId, hasRecipeGroups, sort, userId, createTime, updateTime';\r\nconst groupsFiedlds = 'id, comparisonViewId, name, systemComparisonGroupId, sort, parLevel, purchased, totalOnHandAmount, belongsToRecipe, unitId, units, items, createTime, updateTime';\r\nconst groupsBaseFiedlds = '++id, listSelected, sortBy, search, onHandTotal';\r\n\r\nconst cartFiedlds = '++id, shoppingCartId, isSpecialItem, itemDistributorId, description, distributorId, unit, uom, packsize, caseQuantity, toUpdate';\r\nconst cartBaseFields = '++id, lastModified, cartCount, orderTotal';\r\n\r\nexport const syncParam = {field: 'toUpdate', value: 1} ;\r\n\r\nexport const dbMain = {\r\n name : 'foodbam',\r\n version: 3.01,\r\n};\r\n\r\nexport const dbStores = {\r\n tables: {\r\n items : 'items',\r\n itemsBase : 'itemsBase',\r\n lists : 'lists',\r\n groups : 'groups',\r\n groupsBase : 'groupsBase',\r\n cart : 'cart',\r\n cartBase: 'cartBase',\r\n },\r\n structure : [\r\n { name: 'items', fields: itemsFiedlds },\r\n { name: 'itemsBase', fields: itemsBaseFiedlds },\r\n { name: 'lists', fields: listsFields },\r\n { name: 'groups', fields: groupsFiedlds },\r\n { name: 'groupsBase', fields: groupsBaseFiedlds },\r\n { name: 'cart', fields: cartFiedlds },\r\n { name: 'cartBase', fields: cartBaseFields }, \r\n ]\r\n};","import Dexie from 'dexie';\r\nimport {dbMain, dbStores} from './dbConstants';\r\n\r\nlet stores = {};\r\nconst structure = dbStores.structure;\r\nstructure.map(st => { stores[st.name] = st.fields });\r\n\r\nconst db = new Dexie(dbMain.name);\r\ndb.version(dbMain.version).stores(stores);\r\n\r\nexport default db;","import db from './db';\r\nimport {dbStores} from './dbConstants';\r\n\r\nconst cartTable = dbStores.tables.cart;\r\nconst cartBaseTable = dbStores.tables.cartBase;\r\n\r\n// Cart\r\n\r\nexport const saveAll = async (items) => {\r\n let nItems=[];\r\n items.forEach((item, i) => {\r\n const nItem = { // id: i+1,\r\n shoppingCartId : item.shoppingCartId,\r\n isSpecialItem: item.isSpecialItem,\r\n itemDistributorId: !item.isSpecialItem ? item.itemDistributorId : null,\r\n description: item.description,\r\n distributorId: item.distributorId,\r\n unit: !item.isSpecialItem ? null : item.unit,\r\n uom: !item.isSpecialItem ? item.unitMeasure : null,\r\n packsize: item.packSize,\r\n caseQuantity: item.caseQuantity,\r\n price: item.price,\r\n toUpdate: 0\r\n }; \r\n nItems.push(nItem);\r\n });\r\n\r\n return await db.table(cartTable).bulkAdd(nItems); \r\n};\r\n\r\nexport const deleteAll = async () => {\r\n return await db.table(cartTable).clear(); \r\n};\r\n\r\nexport const getAll = async () => {\r\n return await db.table(cartTable).toArray();\r\n};\r\n\r\nexport const find = async (param) => {\r\n return await db.table(cartTable)\r\n .where(param.field)\r\n .equals(param.value)\r\n .toArray();\r\n};\r\n\r\nexport const findOne = async (itemDistributorId) => {\r\n return await db.table(cartTable)\r\n .where(\"itemDistributorId\")\r\n .equals(itemDistributorId)\r\n .toArray();\r\n};\r\n\r\nexport const insertOne = async (item) => {\r\n return await db.table(cartTable).add(item); \r\n};\r\n\r\nexport const updateOne = async (params, itemDistributorId) => {\r\n return await db.table(cartTable)\r\n .where('itemDistributorId')\r\n .equals(itemDistributorId)\r\n .modify(params); \r\n};\r\n\r\nexport const deleteOne = async (item) => {\r\n return await db.table(cartTable)\r\n .delete(item); \r\n};\r\n\r\nexport const findOneBase = async () => {\r\n return await db.table(cartBaseTable).toArray();\r\n};\r\n\r\n// CartBase\r\nexport const saveBase = async (lastModified, cartCount, orderTotal) => {\r\n const params = {\r\n lastModified: lastModified,\r\n cartCount: cartCount,\r\n orderTotal: orderTotal\r\n }\r\n return await db.table(cartBaseTable).add(params); \r\n};\r\n\r\nexport const updateBase = async (params, id) => {\r\n return await db.table(cartBaseTable)\r\n .where('id')\r\n .equals(id)\r\n .modify(params);\r\n};\r\n\r\nexport const deleteBase= async () => {\r\n return await db.table(cartBaseTable).clear();\r\n};","import axios from 'axios';\r\n\r\nconst get = () => { \r\n return axios.get('shopping-carts');\r\n};\r\n\r\nconst update = (params) => {\r\n return axios.post('shopping-carts', params);\r\n};\r\n\r\nexport default{\r\n get,\r\n update\r\n};","import axios from 'axios';\r\nimport { limitOptions } from \"../config/constants\";\r\n\r\nconst getList = (sort ,filters, page, search) => { \r\n const obj = {\r\n sort: sort,\r\n search: search,\r\n product: (filters.purchasedOnly) ? 'PURCHASED':'ALL',\r\n distributorIds: filters.distributorIds,\r\n shoppingIds: filters.shoppingIds,\r\n pastOrderIds: filters.pastOrderIds\r\n }\r\n const filterOptions = JSON.stringify(obj);\r\n const params = {filterOptions: filterOptions, limit: limitOptions.listView, page: page};\r\n return axios.get('items', {params});\r\n};\r\n\r\nconst getListWithSubrecipe = (sort ,filters, page, search) => { \r\n const obj = {\r\n sort: sort,\r\n search: search,\r\n product: (filters.purchasedOnly) ? 'PURCHASED':'ALL',\r\n distributorIds: filters.distributorIds,\r\n shoppingIds: filters.shoppingIds,\r\n pastOrderIds: filters.pastOrderIds\r\n }\r\n const filterOptions = JSON.stringify(obj);\r\n const params = {filterOptions: filterOptions, limit: limitOptions.listView, page: page, includeSubrecipe: 1};\r\n return axios.get('items', {params});\r\n};\r\n\r\n\r\nconst getDetail = (id) => { \r\n return axios.get(`/items/${id}`);\r\n};\r\n\r\nconst orderListItem = (params) => {\r\n const custom_order_data = {custom_order_data: params}\r\n return axios.post(`/items/custom-order`, custom_order_data);\r\n};\r\n\r\nconst getMatches = (id) => { \r\n return axios.get(`/items/matches/${id}`);\r\n};\r\n\r\nconst getCartMatches = () => {\r\n //retrieve saving items ONLY, inside comparable field, when having regular items (that has those savings) in cart\r\n return axios.get(`/items/shopping-cart-matches`);\r\n};\r\n\r\nconst swapAccept = (params) => {\r\n // when adding saving items to cart\r\n return axios.post(`/items/swap`, params);\r\n};\r\n\r\nconst swapRequest = (itemIds) => {\r\n const params = {itemIds : itemIds}\r\n return axios.post(`/items/swap-request`, params);\r\n};\r\n\r\nconst swapReject = (params) => {\r\n return axios.post(`/items/swap-reject`, params);\r\n};\r\n\r\nconst getAnalytics = (id) => {\r\n const params = {analytics: 1};\r\n return axios.get(`/items/${id}`, {params});\r\n};\r\n\r\nexport default{\r\n getList, getDetail, orderListItem,\r\n getMatches, getCartMatches, swapAccept, swapRequest, swapReject, \r\n getListWithSubrecipe, getAnalytics\r\n};","export const saveCartItems = (cartItems) => {\r\n return {\r\n type: 'SET_CART_ITEMS',\r\n payload: cartItems\r\n }\r\n};\r\n\r\nexport const saveCartDistributor = (cartItemsByDistributor) => {\r\n return {\r\n type: 'SET_CART_DISTRIBUTOR',\r\n payload: cartItemsByDistributor\r\n }\r\n};\r\n\r\n\r\nexport const saveCartCount = (date) => {\r\n return {\r\n type: 'SET_CART_COUNT',\r\n payload: date\r\n }\r\n};\r\n\r\nexport const saveLastModified = (date) => {\r\n return {\r\n type: 'SET_LAST_MODIFIED',\r\n payload: date\r\n }\r\n};\r\n\r\nexport const saveUnsyncedItems = (uitems) => {\r\n return {\r\n type: 'SET_UNSYNCED_ITEMS',\r\n payload: uitems\r\n }\r\n};\r\n\r\nexport const saveAnimation = (animation) => {\r\n return {\r\n type: 'SET_ANIMATION',\r\n payload: animation\r\n }\r\n};\r\nexport const saveOrderTotal = (orderTotal) => {\r\n return {\r\n type: 'SET_ORDER_TOTAL',\r\n payload: orderTotal\r\n }\r\n};\r\n\r\nexport const saveSavingOptions = (savingOptions) => {\r\n return {\r\n type: 'SET_SAVING_OPTIONS',\r\n payload: savingOptions\r\n }\r\n};\r\n\r\nexport const clearCartData = () => {\r\n return {\r\n type: 'CLEAR_CART_DATA',\r\n };\r\n};","export const saveHeaderContent = (contents) => {\r\n return {\r\n type: 'SET_HEADER_CONTENTS_REVIEW_ORDER',\r\n payload: contents\r\n }\r\n};\r\n\r\n\r\nexport const saveHeaderIndexRevOrder = (index) => {\r\n return {\r\n type: 'SET_HEADER_INDEX_REVIEW_ORDER',\r\n payload: index\r\n }\r\n};\r\n","import { useHistory } from \"react-router-dom\";\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { saveHeaderIndexRevOrder } from '../../reducers/header/headerActions';\r\nimport { localStorageConst, placeOrderViews } from '../../config/constants';\r\n\r\nconst useActions = () => {\r\n const dispatch = useDispatch();\r\n const history = useHistory(); \r\n const activeLocation = useSelector(({user}) => user.activeLocation);\r\n const view = useSelector(({items}) => items.view);\r\n \r\n const placeOrder = () =>{\r\n const localView = localStorage.getItem(localStorageConst.keys.view);\r\n // const itemsView = view ? view : (localView ? localView : ( activeLocation.display_comparison_view ? placeOrderViews.inventory : placeOrderViews.list));\r\n const itemsView = localView ? localView : ( activeLocation.display_comparison_view ? placeOrderViews.inventory : placeOrderViews.list);\r\n history.replace(`/place-order/${itemsView}`);\r\n };\r\n\r\n const placeOrderDefault = () => {\r\n const localView = localStorage.getItem(localStorageConst.keys.view);\r\n const defaultPath = `/place-order/${localView}`;\r\n if (history.location.pathname === defaultPath){ \r\n history.replace(`/`);\r\n history.replace(defaultPath);\r\n }else{\r\n history.replace(defaultPath);\r\n }\r\n };\r\n\r\n const goTo = () => {\r\n const path = history.location.pathname;\r\n const localView = localStorage.getItem(localStorageConst.keys.view);\r\n // const itemsView = view !== '' ? view : (localView ? localView : 'list');\r\n const itemsView = localView ? localView : (view !== '' ? view : 'list');\r\n const newLocation = (path === '/login' || path === '/signup' || path === '/') ? `${path}` : `/place-order/${itemsView}`;\r\n history.replace(newLocation);\r\n };\r\n\r\n const addSpecialRequest = () =>{ \r\n history.push('/special-request');\r\n };\r\n \r\n const reviewOrder = () =>{ \r\n history.push('/checkout-ordering/savings');\r\n dispatch(saveHeaderIndexRevOrder(2));\r\n }; \r\n\r\n return { placeOrder, placeOrderDefault, addSpecialRequest, reviewOrder, goTo}\r\n};\r\n\r\nexport default {\r\n useActions\r\n};","import React from 'react';\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Row, Col, Button } from 'reactstrap';\r\nimport useModal from '../../Modals/useModal';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport useShoppingCart from '../../ShoppingCart/useShoppingCart';\r\nimport useGoTo from '../../GoTo/useGoTo'\r\n\r\nconst CartSyncModal = (props) => {\r\n const { id, header, message, sameModifiedItems, lastModified } = props;\r\n const modalprops = useModal(id, true);\r\n const {syncBatch} = useShoppingCart.useBatchUpdateCart();\r\n const { getCartItems } = useShoppingCart.useCartItems();\r\n const { reviewOrder } = useGoTo.useActions();\r\n\r\n const discard = () => {\r\n getCartItems();\r\n reviewOrder();\r\n modalprops.toggle();\r\n };\r\n\r\n const apply = () => {\r\n syncBatch(sameModifiedItems, lastModified);\r\n modalprops.toggle();\r\n };\r\n\r\n return (\r\n \r\n \r\n {header}\r\n \r\n \r\n \r\n {message} \r\n \r\n \r\n Name\r\n Current\r\n Modify to\r\n \r\n {sameModifiedItems.map((item, i) =>\r\n \r\n {item.description}\r\n {item.currentQuantity}\r\n {item.newQuantity}\r\n \r\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 CartSyncModal;\r\n\r\n","import { useEffect, useState } from 'react';\r\nimport cartApi from '../../api/cartApi';\r\nimport itemApi from '../../api/itemApi';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { saveCartItems, saveLastModified, saveUnsyncedItems, saveCartCount, saveCartDistributor, saveOrderTotal, saveSavingOptions } from \"../../reducers/cart/cartActions\";\r\nimport { localStorageConst } from '../../config/constants';\r\nimport GoTo from '../../SharedComponents/GoTo/useGoTo';\r\nimport {showModal} from '../../reducers/modals/modalsActions';\r\nimport CartSyncModal from '../Sync/Modals/CartSyncModal';\r\n\r\nconst useApi = () => {\r\n const dispatch = useDispatch();\r\n\r\n const setCartStructure = (nCartItems) => {\r\n let structuredCart = [];\r\n let totalQty = 0;\r\n let totalOrder = 0;\r\n nCartItems.forEach(cItem => {\r\n if (!cItem.specialItem && !cItem.item) {\r\n return;\r\n }\r\n const newItem = (cItem.specialItem !== null) ? {\r\n caseQuantity: parseFloat(cItem.quantity),\r\n price: 0,\r\n id: Math.random(),\r\n distributorId: parseInt(cItem.specialItem.distributorId),\r\n din: cItem.specialItem.din,\r\n packSize: cItem.specialItem.packSize,\r\n // unitMeasure: cItem.specialItem.uom,\r\n unit: cItem.specialItem.uom,\r\n description: cItem.specialItem.description,\r\n searchText: undefined,\r\n rebate: undefined,\r\n swapAcceptId: undefined,\r\n isSpecialItem: true,\r\n distributor: cItem.specialItem.distributorName,\r\n shoppingCartId: cItem.id,\r\n isMarketPrice: 0,\r\n active: 0,\r\n caseSavings: undefined,\r\n belongsToGroup: 0\r\n } : {\r\n caseQuantity: parseFloat(cItem.quantity),\r\n price: (cItem.item.isMarketPrice === 1 ? 0 : parseFloat(cItem.item.price)),\r\n itemDistributorId: cItem.itemDistributorId,\r\n brand: cItem.item.brand,\r\n brandImageUrl: cItem.item.brandImageUrl,\r\n imageUrl: cItem.item.imageUrl,\r\n name: cItem.item.name,\r\n packSize: cItem.item.packSize,\r\n status: cItem.item.status,\r\n type: cItem.item.type,\r\n unitPrice: cItem.item.unitPrice,\r\n distributorId: parseInt(cItem.item.distributorId),\r\n unitMeasure: cItem.item.unitMeasure,\r\n description: cItem.item.description,\r\n searchText: cItem.searchText,\r\n rebate: parseFloat(cItem.item.rebate),\r\n swapAcceptId: cItem.swapAcceptId,\r\n isSpecialItem: false,\r\n distributor: cItem.item.distributor,\r\n shoppingCartId: cItem.id,\r\n isPriceOutdated: cItem.item.isPriceOutdated,\r\n isMarketPrice: cItem.item.isMarketPrice,\r\n active: cItem.item.active,\r\n din: cItem.item.din,\r\n isPunchedOut: cItem.item.isPunchedOut,\r\n belongsToGroup: cItem.item.belongsToGroup,\r\n parLevel: cItem.parLevel,\r\n onHand: cItem.onHand,\r\n isPartner: cItem.item.isPartner,\r\n isPurchased: cItem.item.isPurchased,\r\n lastPurchasedDate: cItem.item.lastPurchasedDate,\r\n lastPurchasedQty: cItem.item.lastPurchasedQty,\r\n savings: (cItem.swapAcceptId !== null && cItem.savings !== null) ? parseFloat(cItem.savings) : null\r\n };\r\n structuredCart.push(newItem);\r\n totalQty = totalQty + parseInt(newItem.caseQuantity);\r\n totalOrder = totalOrder + (parseFloat(newItem.caseQuantity) * parseFloat( newItem.price ));\r\n });\r\n return { structuredCart, totalQty, totalOrder };\r\n };\r\n\r\n const getCartItems = async () => {\r\n await cartApi.get()\r\n .then(res => {\r\n const { structuredCart, totalQty, totalOrder } = setCartStructure(res.data.shoppingCart);\r\n dispatch(saveCartItems(structuredCart));\r\n dispatch(saveCartCount(totalQty));\r\n dispatch(saveOrderTotal(totalOrder));\r\n localStorage.setItem(localStorageConst.keys.cartItems, JSON.stringify(structuredCart));\r\n dispatch(saveLastModified(res.data.lastModified));\r\n localStorage.setItem(localStorageConst.keys.lastModifiedCart, res.data.lastModified);\r\n dispatch(saveUnsyncedItems(res.data.unsyncedItems));\r\n })\r\n .catch(error => console.log(error));\r\n };\r\n\r\n return { getCartItems };\r\n};\r\n\r\nconst useCartItems = () => {\r\n const { getCartItems } = useApi();\r\n const dispatch = useDispatch();\r\n const cartItems = useSelector(({ cart }) => cart.cartItems);\r\n const cartCount = useSelector(({ cart }) => cart.cartCount);\r\n const lastModified = useSelector(({ cart }) => cart.lastModified);\r\n const unsyncedItems = useSelector(({ cart }) => cart.unsyncedItems);\r\n\r\n return {\r\n cartItems, cartCount, lastModified, unsyncedItems, getCartItems\r\n };\r\n};\r\n\r\nconst useDistributorConvert = () => {\r\n const dispatch = useDispatch();\r\n const storeCartItems = useSelector(({ cart }) => cart.cartItems);\r\n const localCartItems = JSON.parse(localStorage.getItem(localStorageConst.keys.cartItems));\r\n const cartItems = (storeCartItems.length > 0) ? storeCartItems : localCartItems;\r\n\r\n const cartByDistributor = cartItems.reduce((dist, ci) => {\r\n dist[ci.distributorId] = dist[ci.distributorId] || [];\r\n dist[ci.distributorId].push(ci);\r\n return dist;\r\n }, {});\r\n\r\n dispatch(saveCartDistributor(cartByDistributor));\r\n\r\n return {\r\n cartItemsByDistributor: cartByDistributor\r\n };\r\n};\r\n\r\nconst useCartSavings = () => {\r\n\r\n const dispatch = useDispatch();\r\n\r\n const getCartMatches = async () => {\r\n\r\n const res = await itemApi.getCartMatches();\r\n const savings = res.data;\r\n localStorage.setItem(localStorageConst.keys.savingOptions, JSON.stringify(savings));\r\n dispatch(saveSavingOptions(savings));\r\n return savings;\r\n };\r\n\r\n return { getCartMatches };\r\n};\r\n\r\n\r\nconst useBatchUpdateCart = () => {\r\n const lastModified = useSelector(({ cart }) => cart.lastModified);\r\n const { getCartItems } = useApi();\r\n const { reviewOrder } = GoTo.useActions();\r\n const { getCartMatches } = useCartSavings();\r\n const dispatch = useDispatch();\r\n\r\n const updateBatch = (nItems) => {\r\n const processItems = [];\r\n const itemsForSwapSuggestion = [];\r\n const savingOptions = {};\r\n const saving_option = false;\r\n\r\n nItems.map((item, i) => {\r\n if (item.itemDistributorId !== null) {\r\n const obj = {\r\n description: item.description,\r\n itemDistributorId: item.itemDistributorId,\r\n quantity: item.original_quantity,\r\n index: i\r\n };\r\n processItems.push(obj);\r\n }\r\n });\r\n\r\n const params = {\r\n itemList: processItems,\r\n lastModified: lastModified\r\n };\r\n cartApi.update(params)\r\n .then(res => {\r\n getCartMatches();\r\n getCartItems();\r\n reviewOrder();\r\n })\r\n .catch(error => console.log(error));\r\n };\r\n\r\n const syncBatch = async (nItems, lastModifiedSync) => {\r\n const syncItems = [];\r\n if (nItems.length === 0){ return ; }\r\n\r\n nItems.map((item, i) => {\r\n if (item.itemDistributorId !== null) {\r\n const obj = {\r\n description: item.description,\r\n itemDistributorId: item.itemDistributorId,\r\n quantity: item.caseQuantity,\r\n index: i\r\n };\r\n syncItems.push(obj);\r\n }\r\n });\r\n\r\n const params = {\r\n itemList: syncItems,\r\n lastModified: lastModifiedSync\r\n };\r\n \r\n await cartApi.update(params)\r\n .then(res => { \r\n const sameModifiedItems = res.data.sameModifiedItems;\r\n const lastModified = res.data.lastModified;\r\n if (sameModifiedItems.length === 0) {\r\n getCartItems();\r\n return;\r\n }\r\n const newModifiedItems = sameModifiedItems.map( mi => {\r\n const cItem = nItems.filter(ci => ci.itemDistributorId === mi.itemDistributorId);\r\n if (!cItem) return mi;\r\n return {\r\n ...mi,\r\n description: cItem[0].description,\r\n quantity: mi.newQuantity,\r\n }\r\n });\r\n \r\n const syncCartModalProps = {\r\n header: 'Alert',\r\n message: 'It appears, someone was shopping in your account at the same time. Please review the following items sure your order is correct.', \r\n sameModifiedItems: newModifiedItems,\r\n lastModified : lastModified\r\n };\r\n dispatch(showModal(CartSyncModal, syncCartModalProps));\r\n \r\n })\r\n .catch(error => console.log(error)); \r\n \r\n };\r\n\r\n return { updateBatch, syncBatch }\r\n\r\n};\r\n\r\nexport default {\r\n useCartItems, useDistributorConvert, useBatchUpdateCart, useCartSavings\r\n};","import { useSelector } from \"react-redux\";\r\nimport {saveAll, deleteAll, saveBase, deleteBase, find, findOneBase} from '../../local/CartLocal';\r\nimport {syncParam} from '../../local/dbConstants';\r\nimport useShoppingCart from '../ShoppingCart/useShoppingCart';\r\n\r\nconst useOptions = () => {\r\n\r\n const cartItems = useSelector(({ cart }) => cart.cartItems);\r\n const cartCount = useSelector(({ cart }) => cart.cartCount);\r\n const cartLastModified = useSelector(({ cart }) => cart.lastModified);\r\n const cartOrderTotal = useSelector(({ cart }) => cart.orderTotal);\r\n const {syncBatch} = useShoppingCart.useBatchUpdateCart();\r\n\r\n\r\n const syncCartToLocal = () => {\r\n deleteBase()\r\n .then(() => { saveBase(cartLastModified, cartCount, cartOrderTotal); })\r\n .then(() => { deleteAll(); })\r\n .then(() => { saveAll(cartItems); })\r\n .catch(error => { console.log(`Error on saving cart ${error}`); }); \r\n };\r\n\r\n const syncCartToServer = () => {\r\n let syncLastModified = '';\r\n findOneBase()\r\n .then((response) => {\r\n if(!response[0]){ return; }\r\n syncLastModified = response[0].lastModified;\r\n return find(syncParam);\r\n })\r\n .then((cartItems) => {\r\n if(!cartItems){ return; }\r\n if(cartItems.lengh===0){ return; }\r\n return syncBatch(cartItems, syncLastModified, true);\r\n })\r\n .then(() => { deleteBase(); })\r\n .then(() => { deleteAll(); })\r\n .catch(error => { console.log(`Error on syncCartToServer ${error}`); });\r\n\r\n };\r\n\r\n return {\r\n syncCartToLocal, syncCartToServer\r\n };\r\n};\r\n\r\nexport default {\r\n useOptions, \r\n};","import axios from 'axios';\r\n\r\nconst get = () => {\r\n return axios.get('/comparison-views');\r\n};\r\n\r\nconst viewList = (id) => {\r\n return axios.get(`/comparison-views/${id}`);\r\n};\r\n\r\nconst createList = (name) => {\r\n const params = { name: name };\r\n return axios.post(`/comparison-views`, params);\r\n};\r\n\r\nconst updateList = (id, name) => {\r\n const params = { name: name };\r\n return axios.patch(`/comparison-views/${id}`, params);\r\n};\r\n\r\nconst takeInventory = (id, value) => {\r\n const params = { onInventory: value };\r\n return axios.patch(`/comparison-views/${id}`, params);\r\n};\r\n\r\nconst deleteList = (id) => {\r\n return axios.delete(`/comparison-views/${id}`);\r\n};\r\n\r\nconst getAllGroups = (params, search) => {\r\n const filters = [{\r\n field: \"name\",\r\n operator: \"like\",\r\n value: search,\r\n table: \"generic_group\"\r\n }];\r\n\r\n return axios.get('/comparison-views/all-groups', {\r\n params: {\r\n ...params,\r\n filters: search ? JSON.stringify(filters) : null\r\n }\r\n });\r\n};\r\n\r\nconst getAllViews = (params) => {\r\n\r\n return axios.get('/comparison-views/all-views', {\r\n params: {\r\n ...params,\r\n expand: 'items,purchased,onHandTotal,orderTotal,globalOnHandTotal,units',\r\n }\r\n });\r\n};\r\n\r\nconst getItemDistributor = (idDistributor) => {\r\n const params = {\r\n expand: 'groups',\r\n id: idDistributor,\r\n showItems: 1,\r\n // key : 'nMhe5ekpg4SKVlcT9SxVreSGUwhlDmq3'\r\n }\r\n return axios.get('/comparison-views/from-item-distributor', {\r\n params\r\n });\r\n};\r\n\r\n\r\nconst deleteGroupItem = (cId, groupId, itemId) => {\r\n return axios.delete(`/comparison-views/${cId}/groups/${groupId}/item/${itemId}`);\r\n};\r\n\r\nconst deleteGroupSubRecipeItem = (cId, groupId, itemId) => {\r\n return axios.delete(`/comparison-views/${cId}/groups/${groupId}/subrecipe/${itemId}`);\r\n};\r\n\r\nconst deleteGroupCustomItem = (cId, groupId, itemId) => {\r\n return axios.delete(`/comparison-views/${cId}/groups/${groupId}/custom/${itemId}`);\r\n};\r\n\r\nconst groups = (id, params) => {\r\n // console.log('params', params);\r\n return axios.get(`/comparison-views/${id}/groups`, {\r\n params: params\r\n });\r\n};\r\n\r\n\r\nconst getGroup = (id, groupId) => {\r\n return axios.get(`/comparison-views/${id}/groups/${groupId}`, {\r\n params: {\r\n expand: 'items,purchased,onHandTotal,orderTotal,globalOnHandTotal,units,comparisonView'\r\n }\r\n });\r\n};\r\n\r\nconst getGroupTotals = (id, groupId) => {\r\n return axios.get(`/comparison-views/${id}/groups/${groupId}`, {\r\n params: {\r\n expand: 'purchased,onHandTotal,orderTotal,globalOnHandTotal,units,comparisonView,comparisonViewTotalOnHandAmount,allComparisonViewTotalOnHandAmount'\r\n }\r\n });\r\n};\r\n\r\nconst postGroup = (id, params) => {\r\n return axios.post(`/comparison-views/${id}/groups`, params);\r\n};\r\n\r\nconst deleteGroup = (id, groupId) => {\r\n return axios.delete(`/comparison-views/${id}/groups/${groupId}`);\r\n};\r\n\r\nconst patchGroup = (id, groupId, params) => {\r\n return axios.patch(`/comparison-views/${id}/groups/${groupId}`, params);\r\n};\r\n\r\nconst moveGroup = (id, groupId, params) => {\r\n return axios.patch(`/comparison-views/${id}/groups/${groupId}/move`, params);\r\n};\r\n\r\nconst patchGroupItem = (id, groupId, itemId, params) => {\r\n return axios.patch(`/comparison-views/${id}/groups/${groupId}/item/${itemId}`, params);\r\n};\r\n\r\nconst postGroupCustomItem = (id, groupId, params) => {\r\n return axios.post(`/comparison-views/${id}/groups/${groupId}/custom`, params);\r\n};\r\n\r\nconst patchGroupCustomItem = (id, groupId, itemId, params) => {\r\n return axios.patch(`/comparison-views/${id}/groups/${groupId}/custom/${itemId}`, params);\r\n};\r\n\r\n\r\nconst patchEditInventoryItem = (inventoryId, itemId, params) => {\r\n return axios.patch(`/inventory/${inventoryId}/item/${itemId}`, params);\r\n};\r\n\r\nconst patchGroupSubrecipeItem = (id, groupId, itemId, params) => {\r\n return axios.patch(`/comparison-views/${id}/groups/${groupId}/subrecipe/${itemId}`, params);\r\n};\r\n\r\nconst patchGroupItemBatch = (params) => {\r\n const batch = { batch: params };\r\n return axios.patch(`/comparison-views/update-item-batch`, batch);\r\n};\r\n\r\nconst postGroupUnit = (groupId, unitId) => {\r\n return axios.post(`/comparison-views/group-unit`, [{ groupId: groupId, unitId: unitId }]);\r\n};\r\n\r\nconst getHistoricInventory = (id, groupId, itemId) => {\r\n return axios.get(`/comparison-views/${id}/groups/${groupId}/item/${itemId}/historic-inventory`);\r\n};\r\n\r\nconst getInventory = () => {\r\n return axios.get(`/comparison-views/inventory`);\r\n};\r\n\r\nconst getSorts = (id) => {\r\n return axios.get(`/comparison-views/${id}/get-sorts`);\r\n};\r\n\r\nconst saveSorts = (id, params) => {\r\n params = { groups: params };\r\n return axios.post(`/comparison-views/${id}/reset-sorts`, params);\r\n};\r\n\r\nconst getFilterGroup = (value) => {\r\n return axios.get(`/comparison-views/groups-search?search=${value}`);\r\n};\r\n\r\nexport default {\r\n get, viewList, createList, updateList, deleteList, takeInventory,\r\n groups, patchGroup, getAllGroups, getGroup, getGroupTotals, getAllViews,\r\n patchGroupItem, postGroupUnit,\r\n postGroup, deleteGroup, getItemDistributor, moveGroup,\r\n getHistoricInventory, deleteGroupItem,\r\n patchGroupCustomItem, patchGroupSubrecipeItem, patchGroupItemBatch,\r\n deleteGroupSubRecipeItem, deleteGroupCustomItem,\r\n postGroupCustomItem, getInventory, getSorts, saveSorts, patchEditInventoryItem, getFilterGroup\r\n};\r\n","import db from './db';\r\nimport {dbStores} from './dbConstants';\r\n\r\nconst itemsTable = dbStores.tables.items;\r\nconst itemsBaseTable = dbStores.tables.itemsBase;\r\n\r\n\r\n// Items\r\n\r\nexport const saveAllItems = async (items) => {\r\n let nItems=[];\r\n items.forEach((item, i) => {\r\n const nItem = { \r\n id: item.id,\r\n imageUrl: item.imageUrl,\r\n brand: item.brand,\r\n brandImageUrl: item.brandImageUrl,\r\n description: item.description,\r\n name: item.name,\r\n foodbamCustomDescription: item.foodbamCustomDescription,\r\n din: item.din,\r\n distributor: item.distributor,\r\n distributorId: item.distributorId,\r\n type: item.type,\r\n purchasedPrice: item.purchasedPrice,\r\n price: item.price,\r\n unitPrice: item.unitPrice,\r\n unitMeasure: item.unitMeasure,\r\n unitQuantity: item.unitQuantity,\r\n unitSize: item.unitSize,\r\n unitType: item.unitType,\r\n uom: item.uom,\r\n packSize: item.packSize,\r\n packSizeUom: item.packSizeUom,\r\n rebate: item.rebate,\r\n savings: item.savings,\r\n showSavings: item.showSavings,\r\n savingItems: item.savingItems,\r\n sortIndex: item.sortIndex,\r\n status: item.status,\r\n itemDistributorId: item.itemDistributorId,\r\n itemId: item.itemId,\r\n lastPurchasedDate: item.lastPurchasedDate,\r\n lastPurchasedQty: item.lastPurchasedQty,\r\n matchType: item.matchType,\r\n merchantId: item.merchantId,\r\n midpId: item.midpId,\r\n notes: item.notes,\r\n orderGuideId: item.orderGuideId,\r\n endDate: item.endDate,\r\n caseQuantity: item.caseQuantity,\r\n count: item.count,\r\n isCatchWeight: item.isCatchWeight,\r\n isFixedWeight: item.isFixedWeight,\r\n isPunchedOut: item.isPunchedOut,\r\n isPurchased: item.isPurchased,\r\n isMarketPrice: item.isMarketPrice,\r\n isPartner: item.isPartner,\r\n isPriceOutdated: item.isPriceOutdated,\r\n isUnpurchasable: item.isUnpurchasable,\r\n isElectronicInvoiceItem: item.isElectronicInvoiceItem,\r\n isSubRecipe: item.isSubRecipe,\r\n subRecipeId: item.subRecipeId,\r\n updateTime: item.updateTime,\r\n averageWeight: item.averageWeight,\r\n belongsToGroup: item.belongsToGroup\r\n }; \r\n nItems.push(nItem);\r\n });\r\n\r\n return await db.table(itemsTable).bulkAdd(nItems); \r\n};\r\n\r\nexport const deleteAllItems = async () => {\r\n return await db.table(itemsTable).clear(); \r\n};\r\n\r\n// ItemsBase\r\n\r\nexport const saveBaseItems = async (sortByOptions, sortBy, product, search, filters) => {\r\n const params = { \r\n sortByOptions: sortByOptions,\r\n sortBy: sortBy,\r\n product: product,\r\n search: search,\r\n filters: filters\r\n } \r\n return await db.table(itemsBaseTable).add(params); \r\n};\r\n\r\nexport const deleteBaseItems = async () => {\r\n return await db.table(itemsBaseTable).clear();\r\n};\r\n","import db from './db';\r\nimport {dbStores} from './dbConstants';\r\n\r\n\r\n// Inventory Lists\r\nconst listsTable = dbStores.tables.lists;\r\n\r\nexport const deleteAllInventoryLists = async () => {\r\n return await db.table(listsTable).clear();\r\n};\r\n\r\nexport const saveAllInventoryLists = async (lists) => {\r\n return await db.table(listsTable).bulkAdd(lists); \r\n};\r\n\r\nexport const getInventoryLists = async () => {\r\n return await db.table(listsTable).toArray();\r\n};\r\n\r\n\r\n// Groups\r\nconst groupsTable = dbStores.tables.groups;\r\nconst groupsTableBaseTable = dbStores.tables.groupsBase;\r\n\r\nexport const deleteAllGroups = async () => {\r\n return await db.table(groupsTable).clear(); \r\n};\r\n\r\nexport const saveAllGroups = async (groups) => { \r\n return await db.table(groupsTable).bulkAdd(groups);\r\n};\r\n\r\nexport const getGroupsByList = async (cvId) => {\r\n return await db.table(groupsTable)\r\n .where('comparisonViewId')\r\n .equals(cvId)\r\n .toArray();\r\n};\r\n\r\nexport const findAllGroups = async () => {\r\n return await db.table(groupsTable).toArray();\r\n};\r\n\r\nexport const findOneGroup = async (id) => {\r\n return await db.table(groupsTable)\r\n .where('id')\r\n .equals(id)\r\n .toArray();\r\n};\r\n\r\nexport const updateOneGroup = async (params, id) => {\r\n return await db.table(groupsTable)\r\n .where('id')\r\n .equals(id)\r\n .modify(params);\r\n};\r\n\r\n// GroupsBase\r\nexport const saveBaseGroups = async (listSelected, sortBy, search, onHandTotal) => {\r\n const params = { \r\n listSelected: listSelected,\r\n sortBy: sortBy,\r\n search: search,\r\n onHandTotal: onHandTotal\r\n }\r\n return await db.table(groupsTableBaseTable).add(params); \r\n};\r\n\r\nexport const deleteBaseGroups = async () => {\r\n return await db.table(groupsTableBaseTable).clear();\r\n};\r\n","export const saveOpenSync = (open) => {\r\n return {\r\n type: 'SET_OPEN_SYNC',\r\n payload: open\r\n }\r\n};\r\n\r\nexport const saveModalSync = (modal) => {\r\n return {\r\n type: 'SET_MODAL_SYNC',\r\n payload: modal\r\n }\r\n};\r\n\r\nexport const saveSyncInventory = (sync) => {\r\n return {\r\n type: 'SET_MODAL_SYNC',\r\n payload: sync\r\n }\r\n};","import { sortOptions, inventoryOptions } from \"../../config/constants\";\r\n\r\nexport const saveView = (view) => {\r\n return {\r\n type: 'SET_VIEW',\r\n payload: view\r\n }\r\n};\r\nexport const setInventorySearch = (search) => {\r\n return {\r\n type: 'SET_INVENTORY_SEARCH',\r\n payload: search\r\n }\r\n};\r\nexport const saveInventoryList = (list, init) => {\r\n return {\r\n type: 'SET_INVENTORY_LIST',\r\n payload: [list, init]\r\n }\r\n};\r\nexport const selectInventoryList = (selected) => {\r\n return {\r\n type: 'SET_INVENTORY_LIST_SELECTED',\r\n payload: selected\r\n }\r\n};\r\n\r\nexport const setInventoryOptionsRearrangeDisabled = (selectedSort) => { \r\n return {\r\n type: 'SET_INVENTORY_OPTIONS_REARRANGE',\r\n payload: {\r\n id: 1,\r\n name: inventoryOptions.keys.rearrange,\r\n disabled: (selectedSort.default === 1) ? false : true\r\n }\r\n }\r\n};\r\n\r\nexport const insertInventoryList = (list) => {\r\n return {\r\n type: 'INSERT_INVENTORY_LIST',\r\n payload: {\r\n // index: index,\r\n list: list\r\n }\r\n }\r\n};\r\nexport const editInventoryList = (listId, value) => {\r\n return {\r\n type: 'EDIT_INVENTORY_LIST',\r\n payload: {\r\n listId: listId,\r\n value: value\r\n }\r\n }\r\n};\r\nexport const removeInventoryList = (listId) => {\r\n return {\r\n type: 'REMOVE_INVENTORY_LIST',\r\n payload: listId\r\n }\r\n};\r\n\r\nexport const saveInventoryItems = (items) => {\r\n return {\r\n type: 'SET_INVENTORY_ITEMS',\r\n payload: items\r\n }\r\n};\r\n\r\nexport const saveInventoryItemsPage = (page) => {\r\n return {\r\n type: 'SET_INVENTORY_ITEMS_PAGE',\r\n payload: page\r\n }\r\n};\r\n\r\nexport const saveInventoryItemsPageTotal = (page) => {\r\n return {\r\n type: 'SET_INVENTORY_ITEMS_PAGE_TOTAL',\r\n payload: page\r\n }\r\n};\r\n\r\nexport const insertInventoryGroup = (group, index) => {\r\n return {\r\n type: 'INSERT_INVENTORY_GROUP',\r\n payload: {\r\n index: index,\r\n group: group\r\n }\r\n }\r\n};\r\n\r\nexport const removeInventoryGroup = (groupId) => {\r\n return {\r\n type: 'REMOVE_INVENTORY_GROUP',\r\n payload: groupId\r\n }\r\n};\r\n\r\nexport const editOneInventoryGroup = (groupId, value) => {\r\n return {\r\n type: 'EDIT_ONE_INVENTORY_GROUP',\r\n payload: {\r\n groupId: groupId,\r\n value: value\r\n }\r\n }\r\n};\r\n\r\nexport const sortInventoryGroups = () => {\r\n return {\r\n type: 'SORT_INVENTORY_GROUPS',\r\n }\r\n};\r\n\r\nexport const sortInventoryGroupsNew = (index) => {\r\n return {\r\n type: 'SORT_INVENTORY_GROUPS_NEW',\r\n payload: {\r\n index: index\r\n }\r\n }\r\n};\r\n\r\nexport const editOneInventoryGroupItem = (groupId, itemId, value, idLabel) => {\r\n return {\r\n type: 'EDIT_ONE_INVENTORY_GROUP_ITEM',\r\n payload: {\r\n groupId: groupId,\r\n idLabel: idLabel ? idLabel : 'itemDistributorId',\r\n itemId: itemId,\r\n value: value\r\n }\r\n }\r\n};\r\n\r\nexport const removeInventoryGroupItem = (groupId, itemId, idLabel) => {\r\n return {\r\n type: 'REMOVE_INVENTORY_GROUP_ITEM',\r\n payload: {\r\n groupId: groupId,\r\n idLabel: idLabel ? idLabel : 'itemDistributorId',\r\n itemId: itemId,\r\n }\r\n }\r\n};\r\n\r\nexport const saveInventoryOnHandTotal = (onHandTotal) => {\r\n return {\r\n type: 'SET_ON_HAND_TOTAL',\r\n payload: onHandTotal\r\n }\r\n};\r\n\r\nexport const saveListItems = (items) => {\r\n return {\r\n type: 'SET_LIST_ITEMS',\r\n payload: items\r\n }\r\n};\r\n\r\nexport const setInventorySortBy = (sort) => {\r\n return {\r\n type: 'SET_INVENTORY_SORT',\r\n payload: sort\r\n }\r\n};\r\n\r\nexport const setListSortBy = (sort) => {\r\n return {\r\n type: 'SET_LIST_SORT',\r\n payload: sort\r\n }\r\n};\r\n\r\nexport const setListSortByOptions = (sortOptions) => {\r\n return {\r\n type: 'SET_LIST_SORT_OPTIONS',\r\n payload: sortOptions\r\n }\r\n};\r\n\r\nexport const setListPageCount = (page) => {\r\n return {\r\n type: 'SET_LIST_PAGE_COUNT',\r\n payload: page\r\n }\r\n};\r\n\r\nexport const setListLoadMore = (loadMore) => {\r\n return {\r\n type: 'SET_LIST_LOAD_MORE',\r\n payload: loadMore\r\n }\r\n};\r\n\r\nexport const setListIsLoading = (loadMore) => {\r\n return {\r\n type: 'SET_LIST_IS_LOADING',\r\n payload: loadMore\r\n }\r\n};\r\n\r\nexport const setListSearch = (search) => {\r\n return {\r\n type: 'SET_LIST_SEARCH',\r\n payload: search\r\n }\r\n};\r\n\r\nexport const setListFilters = (purchasedOnly, distributorIds, shoppingIds, pastOrderIds) => {\r\n return {\r\n type: 'SET_LIST_FILTERS',\r\n payload: {\r\n purchasedOnly: purchasedOnly,\r\n distributorIds: distributorIds,\r\n shoppingIds: shoppingIds,\r\n pastOrderIds: pastOrderIds\r\n }\r\n }\r\n};\r\n\r\nexport const clearItemsData = () => {\r\n return {\r\n type: 'CLEAR_ITEMS_DATA',\r\n };\r\n};\r\n\r\nexport const clearAllItemsData = () => {\r\n return {\r\n type: 'CLEAR_ALL_ITEMS_DATA',\r\n };\r\n};","export const spinner = (bool) => {\r\n return {\r\n type: 'SET_SPINNER',\r\n payload: bool\r\n };\r\n};\r\n\r\nexport const toggleSidebar = () => {\r\n return {\r\n type: 'TOGGLE_SIDEBAR',\r\n };\r\n};\r\n\r\nexport const closeSidebar = () => {\r\n return {\r\n type: 'CLOSE_SIDEBAR',\r\n };\r\n};\r\n\r\nexport const setSize = (w, h) => {\r\n return {\r\n type: 'SET_SIZE',\r\n payload: {\r\n width: w,\r\n height: h\r\n }\r\n };\r\n};\r\n","import React from 'react';\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';\r\nimport useModal from '../useModal';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\n\r\nconst AlertModal = (props) => {\r\n const { id, message, onOk, btnLabel, btnSize, footerClass, title, color } = props;\r\n const modalprops = useModal(id);\r\n const showTitle = title ? true : false;\r\n\r\n const onClickOk = () => {\r\n if (onOk) {\r\n onOk();\r\n };\r\n modalprops.toggle();\r\n };\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n {message}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nAlertModal.defaultProps = {\r\n footerClass: '',\r\n btnLabel: 'Ok!',\r\n btnSize: 'sm',\r\n color: 'green'\r\n};\r\n\r\nexport default AlertModal;\r\n","import comparisonViewsApi from '../../api/comparisonViewsApi';\r\nimport { saveAllItems, deleteAllItems, saveBaseItems, deleteBaseItems } from '../../local/ItemsLocal';\r\nimport {\r\n deleteAllInventoryLists, saveAllInventoryLists, deleteBaseGroups, saveBaseGroups,\r\n deleteAllGroups, saveAllGroups, findAllGroups\r\n} from '../../local/ComparisonViewLocal';\r\nimport { inventoryItemTypes } from '../../config/constants';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { saveOpenSync } from '../../reducers/sync/syncActions';\r\nimport { editInventoryList, selectInventoryList } from '../../reducers/items/itemsActions';\r\nimport { localStorageConst } from '../../config/constants';\r\nimport useConnection from '../OfflineMode/useConnection';\r\nimport { spinner } from '../../reducers/userInterface/userInterfaceActions';\r\nimport AlertModal from '../Modals/AlertModal/AlertModal';\r\nimport { showModal } from '../../reducers/modals/modalsActions';\r\n\r\nconst useOptions = () => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const { connectionChange } = useConnection.useActions();\r\n\r\n const syncListToLocal = (items, sortByOptions, sortBy, product, search, filters) => {\r\n deleteBaseItems()\r\n .then(() => { saveBaseItems(sortByOptions, sortBy, product, search, filters); })\r\n .then(() => { deleteAllItems(); })\r\n .then(() => { saveAllItems(items); })\r\n .catch(error => { console.log(`Error on saving List ${error}`); });\r\n };\r\n\r\n const syncInventoryToLocal = (lists, groups, iListSelected, iSortBy, iSearch, iOnHandTotal) => {\r\n deleteAllInventoryLists()\r\n .then(() => { saveAllInventoryLists(lists); })\r\n .then(() => { deleteBaseGroups(); })\r\n .then(() => { saveBaseGroups(iListSelected, iSortBy, iSearch, iOnHandTotal); })\r\n .then(() => { deleteAllGroups(); })\r\n .then(() => { saveAllGroups(groups); })\r\n .then(() => { dispatch(spinner(false)); return comparisonViewsApi.takeInventory(iListSelected.id, 1); })\r\n .then(({data}) => {\r\n dispatch(spinner(true));\r\n dispatch(editInventoryList(iListSelected.id, {onInventory:data.onInventory}));\r\n localStorage.setItem(localStorageConst.keys.inventorySync, true);\r\n localStorage.setItem(localStorageConst.keys.inventoryList, iListSelected.id);\r\n dispatch(saveOpenSync(false)); \r\n const props = {\r\n message: 'You are now in offline mode',\r\n footerClass: 'justify-content-center',\r\n btnLabel: 'Ok',\r\n btnSize: 'lg',\r\n color: 'green'\r\n };\r\n dispatch(showModal(AlertModal, props));\r\n connectionChange(false, true);\r\n })\r\n .catch(error => { console.log(`Error on saving Inventory ${error}`); });\r\n\r\n };\r\n\r\n const checkItemsToSync = () => {\r\n findAllGroups()\r\n .then((groups) => {\r\n localStorage.setItem(localStorageConst.keys.inventoryItemsToSync, false);\r\n groups.forEach((group) => {\r\n group.items.forEach(item => {\r\n if (!item.toUpdate || item.toUpdate === 0) { return; }\r\n localStorage.setItem(localStorageConst.keys.inventoryItemsToSync, true);\r\n return;\r\n });\r\n });\r\n return;\r\n })\r\n .then(() => {\r\n const toUpdate = JSON.parse(localStorage.getItem(localStorageConst.keys.inventoryItemsToSync));\r\n if (toUpdate) { return; }\r\n const listSelected = localStorage.getItem(localStorageConst.keys.inventoryList);\r\n return comparisonViewsApi.takeInventory(listSelected, 0);\r\n })\r\n .then((res) => {\r\n if (!res) { return; }\r\n if (!res.data.onInventory) {\r\n localStorage.removeItem(localStorageConst.keys.inventoryList);\r\n history.push('/');\r\n }\r\n })\r\n .catch(error => { console.log(`Error on syncInventoryItemsToServer ${error}`); });\r\n\r\n };\r\n\r\n const syncInventoryItemsToServer = (listSelected) => {\r\n findAllGroups()\r\n .then((groups) => {\r\n if (groups.length === 0) { return; }\r\n let params = [];\r\n groups.forEach((group) => {\r\n if (group.items.length === 0) { return; }\r\n group.items.forEach(item => {\r\n if (!item.toUpdate || item.toUpdate === 0) { return; }\r\n let type = item.isCustomItem ? inventoryItemTypes.custom : (item.isSubRecipe ? inventoryItemTypes.subrecipe : inventoryItemTypes.generic);\r\n const param = {\r\n groupId: item.genericGroupId,\r\n type: type,\r\n genericCustomItemId: item.genericCustomItemId,\r\n subRecipeId: item.subRecipeId,\r\n itemDistributorId: item.itemDistributorId,\r\n onHand: item.onHand !== null ? item.onHand : 0,\r\n onHandUom: item.onHandUom !== null ? item.onHandUom : 0,\r\n onHandPack: item.onHandPack !== null ? item.onHandPack : 0,\r\n totalOnHand: item.totalOnHand !== null ? item.totalOnHand : 0,\r\n totalOnHandAmount: item.totalOnHandAmount !== null ? item.totalOnHandAmount : 0,\r\n };\r\n params.push(param);\r\n });\r\n });\r\n if (params.length === 0) { return; }\r\n return comparisonViewsApi.patchGroupItemBatch(params);\r\n })\r\n .then(() => { deleteAllGroups(); })\r\n .then(() => { return comparisonViewsApi.takeInventory(listSelected.id, 0); })\r\n .then(() => {\r\n localStorage.removeItem(localStorageConst.keys.inventorySync);\r\n localStorage.setItem(localStorageConst.keys.inventoryItemsToSync, false);\r\n localStorage.removeItem(localStorageConst.keys.inventoryList);\r\n history.push('/');\r\n // const props = {\r\n // message: 'You are now in online mode',\r\n // btnLabel: 'Ok',\r\n // btnSize: 'lg',\r\n // color: 'green'\r\n // };\r\n // dispatch(showModal(AlertModal, props));\r\n connectionChange(true, true);\r\n })\r\n .catch(error => { console.log(`Error on syncInventoryItemsToServer ${error}`); });\r\n\r\n };\r\n\r\n return {\r\n syncListToLocal,\r\n syncInventoryToLocal,\r\n syncInventoryItemsToServer,\r\n checkItemsToSync\r\n };\r\n};\r\n\r\n\r\nexport default {\r\n useOptions\r\n};\r\n","import { useEffect, useState } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { showModal } from '../../reducers/modals/modalsActions';\r\nimport ConnectionModal from \"../../SharedComponents/Modals/ConnectionModal/ConnectionModal\";\r\nimport { connection } from '../../config/constants';\r\nimport { localStorageConst } from '../../config/constants';\r\nimport { saveConnection } from '../../reducers/connection/connectionActions';\r\nimport useSyncCart from '../../SharedComponents/Sync/useCartSync';\r\nimport useItemsSync from '../../SharedComponents/Sync/useItemsSync';\r\n\r\nconst useStatus = () => {\r\n let [status, setStatus] = useState(window.navigator.onLine);\r\n\r\n useEffect(() => {\r\n function handleConnectionStatus() {\r\n setStatus(window.navigator.onLine);\r\n }\r\n\r\n window.addEventListener('online', handleConnectionStatus);\r\n window.addEventListener('offline', handleConnectionStatus);\r\n\r\n return () => {\r\n window.removeEventListener('online', handleConnectionStatus);\r\n window.removeEventListener('offline', handleConnectionStatus);\r\n };\r\n }, []);\r\n\r\n return { status };\r\n}\r\n\r\nconst useActions = () => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const connectionChange = (newConnection, disablePopup = false, disableUpdate = false) => {\r\n if (disableUpdate) { return; }\r\n localStorage.setItem(localStorageConst.keys.connection, newConnection);\r\n dispatch(saveConnection(newConnection));\r\n\r\n if (disablePopup) { return; }\r\n const path = history.location.pathname;\r\n const msg = (newConnection) ? \"Internet connection is back\" :\r\n (path === '/login' || path === '/signup' || path === '/') ? \"Sorry you are offline and won't be able to login/signup\" :\r\n \"You lost internet connectivity. Any updates to counts will not be saved. Please reconnect to the internet and click Go Offline to enable Offline mode.\";\r\n const title = (newConnection) ? connection.mode.online : connection.mode.offline;\r\n setTimeout(() => {\r\n const props = { title: title, message: msg };\r\n dispatch(showModal(ConnectionModal, props));\r\n }, 100);\r\n\r\n };\r\n\r\n return { connectionChange };\r\n}\r\n\r\nconst useSyncLocal = () => {\r\n\r\n const { syncCartToLocal } = useSyncCart.useOptions();\r\n const { syncInventoryToLocal } = useItemsSync.useOptions();\r\n\r\n const lists = useSelector(({ items }) => items.inventory.list);\r\n const groups = useSelector(({ groups }) => groups.groups);\r\n const listSelected = useSelector(({ items }) => items.inventory.listSelected);\r\n const sortBy = useSelector(({ items }) => items.inventory.sortBy);\r\n const search = useSelector(({ items }) => items.inventory.search);\r\n const onHandTotal = useSelector(({ items }) => items.inventory.onHandTotal);\r\n\r\n const syncToLocal = () => {\r\n syncInventoryToLocal(lists, groups, listSelected, sortBy, search, onHandTotal);\r\n syncCartToLocal();\r\n };\r\n\r\n return { syncToLocal };\r\n};\r\n\r\nconst useSyncServer = () => {\r\n\r\n const listSelected = useSelector(({ items }) => items.inventory.listSelected);\r\n const { syncCartToServer } = useSyncCart.useOptions();\r\n const { syncInventoryItemsToServer, checkItemsToSync } = useItemsSync.useOptions();\r\n\r\n const syncToServer = () => {\r\n syncInventoryItemsToServer(listSelected);\r\n syncCartToServer();\r\n };\r\n\r\n return { syncToServer, checkItemsToSync };\r\n};\r\n\r\nconst useMode = () => {\r\n const {status} = useStatus();\r\n const connection = useSelector(({ connection }) => connection.online);\r\n // const connectionLocal = JSON.parse(localStorage.getItem(localStorageConst.keys.connection));\r\n\r\n const lists = useSelector(({ items }) => items.inventory.list);\r\n const listSelected = useSelector(({ items }) => items.inventory.listSelected);\r\n\r\n const getConnectionState = () => {\r\n const inventorySync = JSON.parse(localStorage.getItem(localStorageConst.keys.inventorySync));\r\n const cnx = !!inventorySync ? !inventorySync : true;\r\n\r\n return cnx;\r\n };\r\n\r\n const inputConnectionState = () => {\r\n \r\n const inventorySync = JSON.parse(localStorage.getItem(localStorageConst.keys.inventorySync));\r\n const inventoryItemsToSync = JSON.parse(localStorage.getItem(localStorageConst.keys.inventoryItemsToSync));\r\n const selected = !!lists ? lists.filter(l => l.id === listSelected.id)[0] : null;\r\n\r\n let inputDisable = false;\r\n\r\n if (!!selected) {\r\n if(!!inventorySync){\r\n if(connection && !inventorySync && selected.onInventory){\r\n inputDisable=true;\r\n }\r\n if(!connection && !inventorySync && selected.onInventory){\r\n inputDisable=true;\r\n }\r\n }else{\r\n if(status && connection && selected.onInventory){\r\n inputDisable=true;\r\n }\r\n }\r\n }\r\n\r\n return inputDisable;\r\n };\r\n\r\n return { getConnectionState, inputConnectionState };\r\n\r\n};\r\n\r\nexport default { useStatus, useActions, useSyncLocal, useSyncServer, useMode };\r\n","import React, {Fragment, useEffect} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport useConnection from './useConnection';\r\nimport { localStorageConst } from '../../config/constants';\r\n\r\nconst OfflineMode = (props) => {\r\n\r\n const connection = JSON.parse(localStorage.getItem(localStorageConst.keys.connection)); // useSelector(({ connection }) => connection.online);\r\n\r\n let {status} = useConnection.useStatus();\r\n const {checkItemsToSync} = useConnection.useSyncServer();\r\n const {connectionChange} = useConnection.useActions();\r\n\r\n useEffect(() => {\r\n if(connection !== status){ \r\n const syncInventory = JSON.parse(localStorage.getItem(localStorageConst.keys.inventorySync));\r\n if(syncInventory){\r\n // checkItemsToSync();\r\n connectionChange(status, true, true);\r\n return;\r\n }\r\n connectionChange(status);\r\n }\r\n }, [status]);\r\n\r\n return (\r\n \r\n \r\n );\r\n};\r\n\r\nexport default OfflineMode;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' }\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React, { useLayoutEffect } from 'react';\r\nimport numeral from 'numeral';\r\nimport Highcharts from 'highcharts';\r\nimport { Row, Col } from 'reactstrap';\r\n\r\nconst PurchasesGraphs = (props) => {\r\n let currentDistributor;\r\n let currentCategory;\r\n\r\n let seriesDistributor = [];\r\n let totalPurchasesAmountDist = 0;\r\n let seriesCategory = [];\r\n let totalPurchasesAmountCat = 0;\r\n\r\n const getRandomColor = () => {\r\n let letters = '0123456789ABCDEF'.split('');\r\n let color = '#';\r\n for (let i = 0; i < 6; i++) {\r\n color += letters[Math.floor(Math.random() * 16)];\r\n }\r\n return color;\r\n }\r\n\r\n const addTitle = (chart, totalPurchasesAmount) => {\r\n if (chart.title) { chart.title.destroy(); }\r\n if (chart.title2) { chart.title2.destroy(); }\r\n let r = chart.renderer,\r\n x = chart.series[0].center[0] + chart.plotLeft,\r\n y = chart.series[0].center[1] + chart.plotTop;\r\n chart.title = r.text('' + '$' + Highcharts.numberFormat(totalPurchasesAmount, 2, '.', ',') + '', 0, 0)\r\n .css({ color: '#143357', fontSize: '22px', 'line-height': '22px', 'font-family': 'Roboto-Regular' })\r\n .hide()\r\n .add();\r\n chart.title2 = r.text('Total Purchases', 0, 0)\r\n .css({ color: '#143357', fontSize: '16px', 'line-height': '16px', 'font-family': 'Roboto-Regular' })\r\n .hide()\r\n .add();\r\n var bbox = chart.title.getBBox();\r\n var bbox2 = chart.title2.getBBox();\r\n chart.title.attr({ x: x - (bbox.width / 2), y: y }).show();\r\n if (totalPurchasesAmount === 0) {\r\n chart.title2.attr({ x: x - (bbox2.width / 2), y: y + (bbox.width / 4 + 10) }).show();\r\n }\r\n else {\r\n chart.title2.attr({ x: x - (bbox2.width / 2), y: y + (bbox.width / 4) }).show();\r\n }\r\n }\r\n\r\n const setGeneralParams = (type, typeId, name) => {\r\n if (type == 'Distributor') {\r\n const distributorId = typeId;\r\n const distributorName = name;\r\n currentCategory = null;\r\n currentDistributor = {distributorId, distributorName};\r\n if (props.onDistributorClick) {\r\n props.onDistributorClick(currentDistributor);\r\n }\r\n }\r\n if (type == 'Category') {\r\n const categoryId = typeId;\r\n const categoryName = name;\r\n currentDistributor = null;\r\n currentCategory = {categoryId, categoryName};\r\n if (props.onCategoryClick) {\r\n props.onCategoryClick(currentCategory);\r\n }\r\n }\r\n };\r\n\r\n const distributorGraphAndCategoriesGraph = () => {\r\n if (!props.analyticsData || !props.analyticsData.total_purchases || !props.analyticsData.total_purchases.detail || !props.analyticsData.total_purchases.detail.distributorData) {\r\n return;\r\n }\r\n\r\n let totalPurchases = 0;\r\n let distributors = null;\r\n let categories = null;\r\n seriesDistributor = [];\r\n totalPurchasesAmountDist = 0;\r\n seriesCategory = [];\r\n totalPurchasesAmountCat = 0;\r\n totalPurchases = { ...props.analyticsData.total_purchases };\r\n //$scope.dataRetrieved = true;\r\n //$scope.showItemsFrame = false;\r\n if (props.analyticsData.total_purchases.detail.distributorData !== null) {\r\n //Distributors\r\n distributors = props.analyticsData.total_purchases.detail.distributorData.slice();\r\n for (let i = 0; i < distributors.length; i++) {\r\n totalPurchasesAmountDist += distributors[i].total;\r\n totalPurchasesAmountDist = Math.round(totalPurchasesAmountDist * 100) / 100;\r\n distributors[i].color = (distributors[i].color !== null) ? '#' + distributors[i].color : getRandomColor();\r\n let dataObjDist = {\r\n LocationName: distributors[i].distributor,\r\n y: distributors[i].total,\r\n distributorId: distributors[i].distributor_id,\r\n color: distributors[i].color\r\n };\r\n seriesDistributor.push(dataObjDist);\r\n }\r\n //Categories\r\n categories = props.analyticsData.total_purchases.detail.categoryData.slice();\r\n for (let j = 0; j < categories.length; j++) {\r\n totalPurchasesAmountCat += categories[j].total;\r\n totalPurchasesAmountCat = Math.round(totalPurchasesAmountCat * 100) / 100;\r\n let dataObjCat = {\r\n LocationName: categories[j].category,\r\n y: categories[j].total,\r\n color: getRandomColor()\r\n };\r\n seriesCategory.push(dataObjCat);\r\n }\r\n }\r\n //loadDistributor = true;\r\n //loadCategories = true;\r\n _distributorGraph();\r\n _categoriesGraph();\r\n }\r\n\r\n const _distributorGraph = () => {\r\n //loadDistributor = false;\r\n let totalPurchaseDistributorGraph = new Highcharts.chart('container_distributor', {\r\n chart: {\r\n height: (5 / 10 * 100) + '%',\r\n margin: [0, 400, 0, 0],\r\n plotBackgroundColor: null,\r\n plotBorderWidth: 0,\r\n plotShadow: false,\r\n events: {\r\n load: function () { addTitle(this, totalPurchasesAmountDist); },\r\n redraw: function () { addTitle(this, totalPurchasesAmountDist); }\r\n }\r\n },\r\n tooltip: {\r\n formatter: function () {\r\n return '' + this.point.LocationName + ' : ' + '$' + Highcharts.numberFormat(this.y, 2, '.', ',') + '';\r\n }\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n plotOptions: {\r\n pie: {\r\n size: 200,\r\n dataLabels: {\r\n enabled: true,\r\n distance: -50,\r\n style: {\r\n fontWeight: 'bold',\r\n color: 'white'\r\n }\r\n },\r\n startAngle: -90,\r\n endAngle: 270,\r\n center: ['50%', '50%']\r\n },\r\n series: {\r\n point: {\r\n events: {\r\n legendItemClick: function (e) {\r\n setGeneralParams('Distributor', this.distributorId, this.LocationName);\r\n //$scope.distributorId = this.distributorId;\r\n //$scope.categoryName = null;\r\n //if (loadCategories === true) {\r\n _categoriesGraph();\r\n //}\r\n let color = Highcharts.color;\r\n let series = this.series;\r\n for (let i = 0; i < series.data.length; i++) {\r\n let point = series.data[i];\r\n if (point === this) {\r\n point.update({\r\n //color: series.chart.options.colors[this.index]\r\n });\r\n } else {\r\n point.update({\r\n //color: color(point.color).setOpacity(this === point ? 1 : 0.3).get()\r\n });\r\n }\r\n }\r\n return false;\r\n },\r\n click: function (e) {\r\n setGeneralParams('Distributor', this.distributorId, this.LocationName);\r\n }\r\n }\r\n },\r\n states: {\r\n hover: {\r\n enabled: true,\r\n halo: {\r\n size: 0\r\n }\r\n }\r\n }\r\n }\r\n },\r\n series: [{\r\n type: 'pie',\r\n name: 'Total Purchases',\r\n size: '90%',\r\n innerSize: '96%',\r\n data: seriesDistributor,\r\n showInLegend: true,\r\n dataLabels: {\r\n enabled: false\r\n }\r\n }],\r\n legend: {\r\n layout: 'vertical',\r\n align: 'right',\r\n verticalAlign: 'middle',\r\n width: 330,\r\n // margin: 2,\r\n useHTML: true,\r\n padding: 0,\r\n itemMarginTop: 10,\r\n itemMarginBottom: 10,\r\n x: -10,\r\n labelFormatter: function () {\r\n const distributorId = currentDistributor && currentDistributor.distributorId || null;\r\n if (this.distributorId === distributorId) {\r\n return '
' + this.LocationName + '' + Highcharts.numberFormat(this.y, 2, '.', ',') + '
';\r\n } else {\r\n return '
' + this.LocationName + '' + Highcharts.numberFormat(this.y, 2, '.', ',') + '
';\r\n }\r\n }\r\n },\r\n });\r\n };\r\n\r\n const _categoriesGraph = () => {\r\n //loadCategories = false;\r\n let totalPurchaseCategoryGraph = new Highcharts.chart('container_category', {\r\n chart: {\r\n height: (5 / 10 * 100) + '%',\r\n margin: [0, 400, 0, 0],\r\n plotBackgroundColor: null,\r\n plotBorderWidth: 0,\r\n plotShadow: false,\r\n events: {\r\n load: function () { addTitle(this, totalPurchasesAmountCat); },\r\n redraw: function () { addTitle(this, totalPurchasesAmountCat); }\r\n }\r\n },\r\n tooltip: {\r\n formatter: function () {\r\n return '' + this.point.LocationName + ' : ' + '$' + Highcharts.numberFormat(this.y, 2, '.', ',') + '';\r\n }\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n plotOptions: {\r\n pie: {\r\n size: 200,\r\n dataLabels: {\r\n enabled: true,\r\n distance: -50,\r\n style: {\r\n fontWeight: 'bold',\r\n color: 'white'\r\n }\r\n },\r\n startAngle: -90,\r\n endAngle: 270,\r\n center: ['50%', '50%']\r\n },\r\n series: {\r\n point: {\r\n events: {\r\n legendItemClick: function (e) {\r\n setGeneralParams('Category', null, this.LocationName);\r\n //$scope.categoryName = this.LocationName;\r\n //$scope.distributorId = null;\r\n //if (loadDistributor === true) {\r\n _distributorGraph();\r\n //}\r\n let color = Highcharts.color;\r\n let series = this.series;\r\n for (let i = 0; i < series.data.length; i++) {\r\n let point = series.data[i];\r\n if (point === this) {\r\n point.update({\r\n //color: series.chart.options.colors[this.index]\r\n });\r\n } else {\r\n point.update({\r\n //color: color(point.color).setOpacity(this === point ? 1 : 0.3).get()\r\n });\r\n }\r\n }\r\n return false;\r\n },\r\n click: function (e) {\r\n setGeneralParams('Category', null, this.LocationName);\r\n }\r\n }\r\n },\r\n states: {\r\n hover: {\r\n enabled: true,\r\n halo: {\r\n size: 0\r\n }\r\n }\r\n }\r\n }\r\n },\r\n series: [{\r\n type: 'pie',\r\n name: 'Total Purchases',\r\n size: '90%',\r\n innerSize: '96%',\r\n data: seriesCategory,\r\n showInLegend: true,\r\n dataLabels: {\r\n enabled: false\r\n }\r\n }],\r\n legend: {\r\n layout: 'vertical',\r\n align: 'right',\r\n verticalAlign: 'middle',\r\n width: 330,\r\n // margin: 2,\r\n useHTML: true,\r\n padding: 0,\r\n itemMarginTop: 10,\r\n itemMarginBottom: 10,\r\n x: -10,\r\n labelFormatter: function () {\r\n const categoryName = currentCategory && currentCategory.categoryName || '';\r\n if (this.LocationName === categoryName) {\r\n return '
' + this.LocationName + '' + Highcharts.numberFormat(this.y, 2, '.', ',') + '
';\r\n } else {\r\n return '
' + this.LocationName + '' + Highcharts.numberFormat(this.y, 2, '.', ',') + '
';\r\n }\r\n }\r\n },\r\n });\r\n };\r\n\r\n useLayoutEffect(() => {\r\n distributorGraphAndCategoriesGraph();\r\n }, [props.analyticsData]);\r\n\r\n return (\r\n \r\n \r\n \r\n Distributors\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Categories\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default PurchasesGraphs;\r\n","import axios from \"axios\";\r\n\r\nconst getAnalytics = (filters) => {\r\n return axios.get(\"analytics\", { params: filters });\r\n};\r\n\r\nconst getAnalyticsDetail = (filters) => {\r\n return axios.get(\"analytics/detail\", { params: filters });\r\n};\r\n\r\nconst getStatistics = (filters) => {\r\n return axios.get(\"analytics/lookup\", { params: filters });\r\n};\r\n\r\nconst getItems = (filterOptions, page = 1) => {\r\n const params = {\r\n filterOptions: JSON.stringify(filterOptions),\r\n page,\r\n };\r\n return axios.get(\"items\", { params });\r\n};\r\n\r\nconst getGreatestSavings = (page = 1, limit = 5) => {\r\n const params = {\r\n page,\r\n limit,\r\n };\r\n return axios.get(\"items/get-savings-for-purchased-items\", { params });\r\n};\r\n\r\nconst getSavingsItemPrice = (itemDistributorIds) => {\r\n return axios.post(\"items/get-savings-items-price\", { itemDistributorIds });\r\n};\r\n\r\nconst getPurchasedItems = (page = 1, limit = 3) => {\r\n const params = {\r\n page,\r\n limit,\r\n };\r\n\r\n return axios.get(\"items/get-last-purchased\", { params });\r\n};\r\n\r\nexport default {\r\n getAnalyticsDetail,\r\n getStatistics,\r\n getAnalytics,\r\n getItems,\r\n getGreatestSavings,\r\n getSavingsItemPrice,\r\n getPurchasedItems\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Row, Col, Card } from 'reactstrap';\r\nimport { IoIosArrowRoundUp, IoIosArrowRoundDown } from 'react-icons/io';\r\nimport numeral from 'numeral';\r\nimport moment from 'moment';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport noImage from '../../../../../assets/images/no-image.png';\r\nimport analyticsApi from '../../../../../api/analyticsApi';\r\n\r\nconst ItemsList = (props) => {\r\n const [sortBy, setSortBy] = useState('-tot_spent');\r\n const [items, setItems] = useState([]);\r\n const [page, setPage] = useState(1);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [loadMore, setLoadMore] = useState(false);\r\n\r\n const getColumnclass = (sort) => {\r\n return sortBy.replace('-', '') == sort.replace('-', '') ? ' active ' : '';\r\n }\r\n\r\n const setSortByAndReset = (sort) => {\r\n //toggle sort column\r\n if (sortBy.replace('-', '') == sort.replace('-', '')) {\r\n if (sortBy.startsWith('-')) {\r\n sort = sortBy.replace('-', '');\r\n } else {\r\n sort = '-' + sortBy;\r\n }\r\n }\r\n setSortBy(sort);\r\n setItems([]);\r\n }\r\n\r\n const getItems = (page) => {\r\n if ((!props.distributor || !props.distributor.distributorId) && (!props.category || !props.category.categoryName)) {\r\n return;\r\n }\r\n\r\n let filter = {\r\n filter_type: props.filterType,\r\n section: 'purchase',\r\n limit: 10,\r\n page: page,\r\n sort: sortBy\r\n };\r\n\r\n if (props.distributor && props.distributor.distributorId) {\r\n filter = {...filter, distributor_id: props.distributor.distributorId};\r\n } else {\r\n if (props.category && props.category.categoryName) {\r\n filter = {...filter, category: props.category.categoryName};\r\n }\r\n }\r\n if (props.filterType == 'custom') {\r\n filter = {...filter, start_date: moment(props.startDate).format('YYYY-MM-DD'), end_date: moment(props.endDate).format('YYYY-MM-DD')};\r\n }\r\n setIsLoading(true);\r\n\r\n analyticsApi.getAnalyticsDetail(filter)\r\n .then(res => {\r\n if (page > 1) {\r\n setItems(items.concat(res.data));\r\n } else {\r\n setItems(res.data);\r\n }\r\n setPage(page);\r\n setLoadMore(res._meta.pageCount > res._meta.currentPage);\r\n setIsLoading(false);\r\n })\r\n .catch(error => console.log('analyticsApi getAnalyticsDetail Error:', error));\r\n\r\n };\r\n\r\n const scrollListener = () => {\r\n const threshold = 600;\r\n if (window.innerHeight + document.documentElement.scrollTop + threshold >= document.documentElement.offsetHeight\r\n && loadMore && !isLoading) {\r\n getItems(page+1);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n window.addEventListener('mousewheel', scrollListener);\r\n window.addEventListener('scroll', scrollListener);\r\n window.addEventListener('resize', scrollListener);\r\n\r\n return () => {\r\n window.removeEventListener('mousewheel', scrollListener);\r\n window.removeEventListener('scroll', scrollListener);\r\n window.removeEventListener('resize', scrollListener);\r\n };\r\n }, [page, loadMore, isLoading]);\r\n\r\n useEffect(() => {\r\n setItems([]);\r\n getItems(1);\r\n }, [props.distributor, props.category, sortBy]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
{props.distributor && props.distributor.distributorName || props.category && props.category.categoryName || ''}
\r\n \r\n
\r\n\r\n \r\n Image\r\n setSortByAndReset('name') }>\r\n Item Name \r\n \r\n setSortByAndReset('distributor') }>\r\n Distributor \r\n \r\n Pack Size\r\n setSortByAndReset('total_quantity') }>\r\n Total Qty Purchased \r\n \r\n setSortByAndReset('tot_spent') }>\r\n Total Amount Spent \r\n \r\n Avg Price\r\n Best Price\r\n \r\n\r\n {\r\n items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.name}\r\n {item.distributor}\r\n {item.pack_size}\r\n {item.total_quantity} {item.unit_measure}\r\n {numeral(item.tot_spent).format('$0,0.00')}\r\n {item.average_price}\r\n {item.best_price}\r\n \r\n );\r\n })\r\n }\r\n\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ItemsList;\r\n","import React, { useLayoutEffect } from 'react';\r\nimport numeral from 'numeral';\r\nimport Highcharts from 'highcharts';\r\nimport { Row, Col } from 'reactstrap';\r\n\r\nconst OrdersGraph = (props) => {\r\n let currentDistributor;\r\n\r\n const humanizeString = (str) => {\r\n str = '' + str;\r\n str = str.split(/(?=[A-Z])/);\r\n str = str.join(' ');\r\n return str.charAt(0).toUpperCase() + str.substr(1);\r\n };\r\n\r\n const getRandomColor = () => {\r\n let letters = '0123456789ABCDEF'.split('');\r\n let color = '#';\r\n for (let i = 0; i < 6; i++) {\r\n color += letters[Math.floor(Math.random() * 16)];\r\n }\r\n return color;\r\n };\r\n\r\n const addTitle = (chart, totalOrdersAmount) => {\r\n if (chart.title) { chart.title.destroy(); }\r\n if (chart.title2) { chart.title2.destroy(); }\r\n let r = chart.renderer,\r\n x = chart.series[0].center[0] + chart.plotLeft,\r\n y = chart.series[0].center[1] + chart.plotTop;\r\n chart.title = r.text('' + totalOrdersAmount + '', 0, 0)\r\n .css({ color: '#143357', fontSize: '22px', 'line-height': '22px', 'font-family': 'Roboto-Regular' })\r\n .hide()\r\n .add();\r\n chart.title2 = r.text('Total Orders', 0, 0)\r\n .css({ color: '#143357', fontSize: '16px', 'line-height': '16px', 'font-family': 'Roboto-Regular' })\r\n .hide()\r\n .add();\r\n let bbox = chart.title.getBBox();\r\n let bbox2 = chart.title2.getBBox();\r\n chart.title.attr({ x: x - (bbox.width / 2), y: y - 10 }).show();\r\n chart.title2.attr({ x: x - (bbox2.width / 2), y: y + (bbox.width / 4) + 10 }).show();\r\n };\r\n\r\n const setGeneralParams = (type, typeId, name) => {\r\n const distributorId = typeId;\r\n const distributorName = name;\r\n currentDistributor = {distributorId, distributorName};\r\n if (props.onDistributorClick) {\r\n props.onDistributorClick(currentDistributor);\r\n }\r\n };\r\n\r\n const ordersGraph = () => {\r\n if (!props.analyticsData || !props.analyticsData.total_orders || !props.analyticsData.total_orders.detail) {\r\n return;\r\n }\r\n\r\n let seriesDistributor = [];\r\n let totalOrdersAmount = props.analyticsData.total_orders.total || 0;\r\n if (props.analyticsData.total_orders.detail) {\r\n for (let i = 0; i < props.analyticsData.total_orders.detail.distributorData.length; i++) {\r\n props.analyticsData.total_orders.detail.distributorData[i].color = (props.analyticsData.total_orders.detail.distributorData[i].color !== null) ? \"#\" + props.analyticsData.total_orders.detail.distributorData[i].color : getRandomColor();\r\n let dataObjDist = {\r\n LocationName: props.analyticsData.total_orders.detail.distributorData[i].distributor,\r\n y: props.analyticsData.total_orders.detail.distributorData[i].total,\r\n distributorId: props.analyticsData.total_orders.detail.distributorData[i].distributor_id,\r\n color: props.analyticsData.total_orders.detail.distributorData[i].color\r\n };\r\n seriesDistributor.push(dataObjDist);\r\n }\r\n\r\n let totalOrdersGraph = new Highcharts.chart('container_orders', {\r\n chart: {\r\n height: (5 / 10 * 100) + '%',\r\n margin: [0, 350, 0, 0],\r\n plotBackgroundColor: null,\r\n plotBorderWidth: 0,\r\n plotShadow: false,\r\n events: {\r\n load: function () { addTitle(this, totalOrdersAmount); },\r\n redraw: function () { addTitle(this, totalOrdersAmount); }\r\n }\r\n },\r\n tooltip: {\r\n formatter: function () {\r\n return '' + this.point.LocationName + ' : ' + '' + this.y + '';\r\n }\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n plotOptions: {\r\n pie: {\r\n size: 250,\r\n dataLabels: {\r\n enabled: true,\r\n distance: -50,\r\n style: {\r\n fontWeight: 'bold',\r\n color: 'white'\r\n }\r\n },\r\n startAngle: -90,\r\n endAngle: 270,\r\n center: ['50%', '50%']\r\n },\r\n series: {\r\n point: {\r\n events: {\r\n legendItemClick: function (e) {\r\n setGeneralParams('Distributor', this.distributorId, this.LocationName);\r\n let color = Highcharts.color;\r\n let series = this.series;\r\n for (let i = 0; i < series.data.length; i++) {\r\n let point = series.data[i];\r\n if (point === this) {\r\n point.update({\r\n //color: series.chart.options.colors[this.index]\r\n });\r\n } else {\r\n point.update({\r\n //color: color(point.color).setOpacity(this === point ? 1 : 0.3).get()\r\n });\r\n }\r\n }\r\n return false;\r\n },\r\n click: function (e) {\r\n setGeneralParams('Distributor', this.distributorId, this.LocationName);\r\n }\r\n }\r\n },\r\n states: {\r\n hover: {\r\n enabled: true,\r\n halo: {\r\n size: 0\r\n }\r\n }\r\n }\r\n }\r\n },\r\n series: [{\r\n type: 'pie',\r\n name: 'Total Orders',\r\n size: '90%',\r\n innerSize: '96%',\r\n data: seriesDistributor,\r\n showInLegend: true,\r\n dataLabels: {\r\n enabled: false\r\n }\r\n }],\r\n legend: {\r\n layout: 'vertical',\r\n align: 'right',\r\n verticalAlign: 'middle',\r\n width: 300,\r\n // margin: 2,\r\n useHTML: true,\r\n padding: 0,\r\n itemMarginTop: 10,\r\n itemMarginBottom: 10,\r\n x: -10,\r\n labelFormatter: function () {\r\n const distributorId = currentDistributor && currentDistributor.distributorId || null;\r\n if (this.distributorId === distributorId) {\r\n return '
' + this.LocationName + ' ' + this.y + '
';\r\n } else {\r\n return '
' + this.LocationName + ' ' + this.y + '
';\r\n }\r\n }\r\n },\r\n });\r\n\r\n }\r\n };\r\n\r\n useLayoutEffect(() => {\r\n ordersGraph();\r\n }, [props.analyticsData]);\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default OrdersGraph;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Row, Col, Card } from 'reactstrap';\r\nimport numeral from 'numeral';\r\nimport moment from 'moment';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport receivedIcon from '../../../../../assets/images/order/check.png';\r\nimport cancelledIcon from '../../../../../assets/images/order/cancelled.png';\r\nimport onTheWayIcon from '../../../../../assets/images/order/car-blue.png';\r\n\r\nimport analyticsApi from '../../../../../api/analyticsApi';\r\n\r\nconst OrdersList = (props) => {\r\n const [orders, setOrders] = useState([]);\r\n const [page, setPage] = useState(1);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [loadMore, setLoadMore] = useState(false);\r\n\r\n const orderIconHandler = (order) => {\r\n const status = order && order.status || '';\r\n switch (status) {\r\n case 'received':\r\n return receivedIcon;\r\n case 'cancelled':\r\n return cancelledIcon;\r\n default:\r\n return onTheWayIcon;\r\n }\r\n };\r\n\r\n const orderStatusHandler = (order) => {\r\n const status = order && order.status || '';\r\n switch (status) {\r\n case 'received':\r\n return 'Received';\r\n case 'cancelled':\r\n return 'Order Cancelled';\r\n default:\r\n return 'On The Way Icon';\r\n }\r\n };\r\n\r\n const getOrders = (page) => {\r\n if (!props.distributor || !props.distributor.distributorId) {\r\n return;\r\n }\r\n\r\n let filter = {\r\n filter_type: props.filterType,\r\n distributor_id: props.distributor && props.distributor.distributorId,\r\n section: 'order',\r\n limit: 10,\r\n page: page\r\n };\r\n if (props.filterType == 'custom') {\r\n filter = {...filter, start_date: moment(props.startDate).format('YYYY-MM-DD'), end_date: moment(props.endDate).format('YYYY-MM-DD')};\r\n }\r\n setIsLoading(true);\r\n\r\n analyticsApi.getAnalyticsDetail(filter)\r\n .then(res => {\r\n if (page > 1) {\r\n setOrders(orders.concat(res.data));\r\n } else {\r\n setOrders(res.data);\r\n }\r\n setPage(page);\r\n setLoadMore(res._meta.pageCount > res._meta.currentPage);\r\n setIsLoading(false);\r\n })\r\n .catch(error => console.log('analyticsApi getAnalyticsDetail Error:', error));\r\n\r\n };\r\n\r\n const scrollListener = () => {\r\n const threshold = 600;\r\n if (window.innerHeight + document.documentElement.scrollTop + threshold >= document.documentElement.offsetHeight\r\n && loadMore && !isLoading) {\r\n getOrders(page+1);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n window.addEventListener('mousewheel', scrollListener);\r\n window.addEventListener('scroll', scrollListener);\r\n window.addEventListener('resize', scrollListener);\r\n\r\n return () => {\r\n window.removeEventListener('mousewheel', scrollListener);\r\n window.removeEventListener('scroll', scrollListener);\r\n window.removeEventListener('resize', scrollListener);\r\n };\r\n }, [page, loadMore, isLoading]);\r\n\r\n useEffect(() => {\r\n setOrders([]);\r\n getOrders(1);\r\n }, [props.distributor]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
{props.distributor && props.distributor.distributorName || ''}
\r\n \r\n
\r\n\r\n \r\n Order No\r\n Order Date\r\n Delivery Date\r\n Line Items\r\n Total Amount\r\n Status\r\n \r\n\r\n {\r\n orders.map((order, index) => {\r\n return (\r\n \r\n {order.order_id}\r\n {moment(order.order_date).format('MM/DD')}\r\n {moment(order.delivery_date).format('MM/DD')}\r\n {order.line_items}\r\n {numeral(order.tot_amount).format('$0,0.00')}\r\n \r\n {orderStatusHandler(order)}\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 OrdersList;\r\n","import { useState, useEffect } from \"react\";\r\nimport validate from 'validate.js';\r\n\r\nconst onChange = (evt, value, setValue, props, setError) => {\r\n let newValue = '';\r\n if (evt) {\r\n if (evt.currentTarget) {\r\n newValue = evt.currentTarget.value !== null && evt.currentTarget.value !== undefined ? evt.currentTarget.value : '';\r\n } else {\r\n newValue = evt ? evt : '';\r\n }\r\n }\r\n if (props) {\r\n if (props.validate) {\r\n const result = validate.single(newValue, props.validate);\r\n if (result) {\r\n newValue = value; //Didn't pass validation, update input to old state.\r\n }\r\n if (setError) {\r\n setError(result);\r\n }\r\n }\r\n if (props.isNumber) {\r\n if (newValue) {\r\n newValue = parseFloat(newValue);\r\n }\r\n if (props.isNumber.min !== null || props.isNumber.min !== undefined) {\r\n newValue = newValue !== null && newValue !== undefined ? (newValue < props.isNumber.min ? props.isNumber.min : newValue) : ( props.isNumber.allowEmpty ? '' : props.isNumber.min);\r\n }\r\n if (props.isNumber.max) {\r\n newValue = newValue !== null && newValue !== undefined ? (newValue > props.isNumber.max ? props.isNumber.max : newValue) : '';\r\n }\r\n }\r\n if (props.isInvalid) {\r\n const result = validate.single(newValue, props.isInvalid);\r\n setError(result);\r\n }\r\n if (props.onChange) {\r\n props.onChange(newValue);\r\n }\r\n if (props.set) {\r\n props.set(newValue);\r\n }\r\n }\r\n setValue(newValue);\r\n};\r\n\r\nconst useText = (init, props) => {\r\n const [value, setStateValue] = useState(init || init === 0 ? init : '');\r\n const [error, setError] = useState(null);\r\n\r\n const set = (evt) => {\r\n onChange(evt, value, setStateValue, props, setError);\r\n };\r\n\r\n const setValue = (val) => {\r\n onChange({currentTarget: {value: val}}, value, setStateValue, props, setError);\r\n };\r\n\r\n const onBlur = (evt) => {\r\n if (props) {\r\n const val = props ? (props.value === '' || props.value ? props.value : value) : value;\r\n const result = validate.single(val, props.isInvalidOnBlur);\r\n setError(result);\r\n }\r\n };\r\n\r\n const onFocus = () => {\r\n setError(null);\r\n };\r\n\r\n const clearValue = () => {\r\n if (props) {\r\n if (props.set) {\r\n props.set('');\r\n }\r\n }\r\n setValue('');\r\n };\r\n\r\n return {\r\n value: props ? (props.value === '' || props.value ? props.value : value) : value,\r\n set, clearValue, setValue, error, setError, onBlur, onFocus\r\n };\r\n};\r\n\r\nconst useCheckbox = (initValue) => {\r\n const [value, setValue] = useState(initValue ? true : false);\r\n\r\n const toggle = (evt) => {\r\n const newValue = !value;\r\n setValue(newValue);\r\n };\r\n\r\n const set = (value) => {\r\n setValue(value ? true : false);\r\n };\r\n\r\n return { value, toggle, set };\r\n};\r\n\r\nconst useCheckboxGroup = (initItems) => {\r\n const [items, setItems] = useState(initItems ? initItems : []);\r\n const { toggle: toggleAll, value: all, set: setAll} = useCheckbox();\r\n\r\n useEffect(() => {\r\n if (all) {\r\n setItems(items.map(i => {\r\n return {\r\n ...i,\r\n check: all\r\n }\r\n }));\r\n } else {\r\n let allCheck = true;\r\n for (let index = 0; index < items.length; index++) {\r\n const element = items[index];\r\n if (!element.check) {\r\n allCheck = false;\r\n }\r\n }\r\n if (allCheck) {\r\n setItems(items.map(i => {\r\n return {\r\n ...i,\r\n check: all\r\n }\r\n }));\r\n }\r\n }\r\n }, [all]);\r\n\r\n useEffect(() => {\r\n let allCheck = true;\r\n for (let index = 0; index < items.length; index++) {\r\n const element = items[index];\r\n if (!element.check) {\r\n allCheck = false;\r\n }\r\n }\r\n if ((allCheck && !all) || (!allCheck && all)) {\r\n toggleAll();\r\n }\r\n }, [items]);\r\n\r\n const toggleItem = (index) => {\r\n setItems(items.map((item, i) => {\r\n if (i !== index) return item;\r\n return {\r\n ...item,\r\n check: !item.check\r\n }\r\n }));\r\n };\r\n\r\n const setItem = (index, newData) => {\r\n setItems(items.map((item, i) => {\r\n if (i !== index) return item;\r\n return {\r\n ...item,\r\n ...newData\r\n };\r\n }));\r\n };\r\n\r\n return { toggleItem, items, setItems, toggleAll, all, setAll, setItem };\r\n};\r\n\r\nconst useRadioGroup = (radios) => {\r\n let init = radios.map((r, i) => {\r\n return i === 0 ? true : false;\r\n });\r\n const [value, setValue] = useState(init);\r\n\r\n const obj = {};\r\n\r\n radios.forEach((r, i) => {\r\n obj[r] = {\r\n value: value[i],\r\n set: () => {\r\n setValue(value.map((v, ii) => {\r\n if (i === ii) return true;\r\n return false;\r\n }))\r\n }\r\n };\r\n });\r\n\r\n return {...obj};\r\n};\r\n\r\nconst useObject = (init) => {\r\n const [value, set] = useState(init);\r\n return {\r\n set: set,\r\n value: value\r\n };\r\n};\r\n\r\nexport default {\r\n useText, useCheckbox, useCheckboxGroup,\r\n useRadioGroup, onChange, useObject\r\n};\r\n","import React, { Fragment } from 'react'\r\nimport './IconBadge.scss';\r\nimport { Tooltip, Col } from 'reactstrap';\r\nimport useInput from '../SharedEffects/useInput';\r\n\r\nconst IconBadgeSolid = (props) => {\r\n const { Icon, elemId, children, color, colorIcon } = props;\r\n const { toggle, value } = useInput.useCheckbox();\r\n \r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n {children}\r\n \r\n
\r\n )\r\n};\r\n\r\nexport default IconBadgeSolid;\r\n ","import React, { useLayoutEffect } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport numeral from 'numeral';\r\nimport Highcharts from 'highcharts';\r\nimport { Row, Col } from 'reactstrap';\r\nimport { FaInfo } from 'react-icons/fa';\r\nimport { MdFiberManualRecord } from 'react-icons/md';\r\nimport { colors } from '../../../../../config/constants';\r\nimport IconBadgeSolid from '../../../../../SharedComponents/IconBadge/IconBadgeSolid';\r\n\r\nconst SavingsGraph = (props) => {\r\n\r\n const activeLocation = useSelector(({user}) => user.activeLocation);\r\n\r\n const humanizeString = (str) => {\r\n str = '' + str;\r\n str = str.split(/(?=[A-Z])/);\r\n str = str.join(' ');\r\n return str.charAt(0).toUpperCase() + str.substr(1);\r\n }\r\n\r\n const _getSavingsColor = (i) => {\r\n const color = ['#6ED79A', '#FEBA5D', '#6ED3D7', '#766ED7'];\r\n return color[i];\r\n }\r\n\r\n function addTitle(chart, totalOrderSavingsAmount) {\r\n if (chart.title) { chart.title.destroy(); }\r\n if (chart.title2) { chart.title2.destroy(); }\r\n let r = chart.renderer;\r\n let x = chart.series[0].center[0] + chart.plotLeft;\r\n let y = chart.series[0].center[1] + chart.plotTop;\r\n chart.title = r.text('' + '$' + Highcharts.numberFormat(totalOrderSavingsAmount, 2, '.', ',') + '', 0, 0)\r\n .css({ color: '#143357', fontSize: '22px', 'line-height': '22px', 'font-family': 'Roboto-Regular' })\r\n .hide()\r\n .add();\r\n chart.title2 = r.text('Total Savings', 0, 0)\r\n .css({ color: '#143357', fontSize: '16px', 'line-height': '16px', 'font-family': 'Roboto-Regular' })\r\n .hide()\r\n .add();\r\n let bbox = chart.title.getBBox();\r\n let bbox2 = chart.title2.getBBox();\r\n chart.title.attr({ x: x - (bbox.width / 2), y: y }).show();\r\n if (totalOrderSavingsAmount === 0) {\r\n chart.title2.attr({ x: x - (bbox2.width / 2), y: y + (bbox.width / 4 + 10) }).show();\r\n } else {\r\n chart.title2.attr({ x: x - (bbox2.width / 2), y: y + (bbox.width / 4) }).show();\r\n }\r\n }\r\n\r\n const savingsGraph = () => {\r\n if (!props.analyticsData || !props.analyticsData.total_savings || !props.analyticsData.total_savings.detail) {\r\n return;\r\n }\r\n let seriesSavings = [];\r\n let totalSavingsAmount = props.analyticsData.total_savings.total;\r\n let savingString = '';\r\n if (props.analyticsData.total_savings.detail) {\r\n for (let i = 0; i < props.analyticsData.total_savings.detail.length; i++) {\r\n if (props.analyticsData.total_savings.detail[i][1] === null) {\r\n props.analyticsData.total_savings.detail[i][1] = 0;\r\n }\r\n if (props.analyticsData.total_savings.detail[i].color === undefined) {\r\n props.analyticsData.total_savings.detail[i].color = _getSavingsColor(i);\r\n }\r\n let savingArray = props.analyticsData.total_savings.detail[i][0].split(/(?=[A-Z])/);\r\n savingString = savingArray.join(' ');\r\n let dataObj = {\r\n LocationName: savingString.charAt(0).toUpperCase() + savingString.substr(1),\r\n y: props.analyticsData.total_savings.detail[i][1],\r\n color: props.analyticsData.total_savings.detail[i].color\r\n };\r\n props.analyticsData.total_savings.detail[i].SavingsName = dataObj.LocationName;\r\n seriesSavings.push(dataObj);\r\n }\r\n\r\n const savingsGraph = new Highcharts.chart('container_savings', {\r\n chart: {\r\n height: (5 / 10 * 100) + '%',\r\n margin: [0, 350, 0, 0],\r\n plotBackgroundColor: null,\r\n plotBorderWidth: 0,\r\n plotShadow: false,\r\n events: {\r\n load: function () { addTitle(this, totalSavingsAmount); },\r\n redraw: function () { addTitle(this, totalSavingsAmount); }\r\n }\r\n },\r\n tooltip: {\r\n formatter: function () {\r\n return '' + this.point.LocationName + ' : ' + '$' + Highcharts.numberFormat(this.y, 2, '.', ',') + '';\r\n }\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n plotOptions: {\r\n pie: {\r\n size: 250,\r\n dataLabels: {\r\n enabled: true,\r\n distance: -50,\r\n style: {\r\n fontWeight: 'bold',\r\n color: 'white'\r\n }\r\n },\r\n startAngle: -90,\r\n endAngle: 270,\r\n center: ['50%', '50%']\r\n },\r\n series: {\r\n point: {\r\n events: {\r\n legendItemClick: function (e) {\r\n var color = Highcharts.color;\r\n var series = this.series;\r\n for (let i = 0; i < series.data.length; i++) {\r\n let point = series.data[i];\r\n if (point === this) {\r\n point.update({\r\n //color: series.chart.options.colors[this.index]\r\n });\r\n } else {\r\n point.update({\r\n //color: color(point.color).setOpacity(this === point ? 1 : 0.3).get()\r\n });\r\n }\r\n }\r\n return false;\r\n }\r\n }\r\n },\r\n states: {\r\n hover: {\r\n enabled: true,\r\n halo: {\r\n size: 0\r\n }\r\n }\r\n }\r\n }\r\n },\r\n series: [{\r\n type: 'pie',\r\n name: 'Total Purchases',\r\n size: '90%',\r\n innerSize: '96%',\r\n data: seriesSavings,\r\n showInLegend: true,\r\n dataLabels: {\r\n enabled: false\r\n },\r\n }],\r\n legend: {\r\n enabled: false,\r\n layout: 'vertical',\r\n align: 'right',\r\n verticalAlign: 'middle',\r\n width: 260,\r\n itemWidth: 10,\r\n // margin: 2,\r\n useHTML: true,\r\n padding: 0,\r\n itemMarginTop: 10,\r\n itemMarginBottom: 10,\r\n x: -80\r\n },\r\n });\r\n\r\n }\r\n }\r\n\r\n useLayoutEffect(() => {\r\n savingsGraph();\r\n }, [props.analyticsData]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {\r\n props.analyticsData.total_savings.detail.map((item, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {humanizeString(item[0])}\r\n \r\n \r\n \r\n \r\n \r\n {item[0] == 'matchSavings' ? \"This number is the total savings accumulated by buying an item's suggested match. This amount is specific to the time period selected.\" : ''}\r\n {item[0] == 'distributorSavings' ? 'This number is the total savings accumulated by general distributor price decreases caused by ' + activeLocation.company.nickname + \"'s price comparison. This amount is specific to the time period selected.\" : ''}\r\n {item[0] == 'rebateSavings' ? \"This number is the total savings accumulated by buying item's with rebates. This amount is specific to the time period selected.\" : ''}\r\n {item[0] == 'inventoryViewSavings' ? 'This number is the total savings accumulated by buying a lower priced item while using comparison view. This amount is specific to the time period selected.' : ''}\r\n \r\n \r\n \r\n \r\n \r\n {numeral(item[1]).format('$0,0.00')}\r\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 SavingsGraph;\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Input, ListGroup, ListGroupItem } from \"reactstrap\";\r\nimport { IoMdClose, IoMdSearch } from \"react-icons/io\";\r\nimport { colors } from '../../config/constants';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\n\r\nconst InputSearch = (props) => {\r\n const { onChange, value, clearValue, onEnter, withItems = false, items = [], goToSearch, onBlurEvent } = props;\r\n\r\n const onEnterKey = ({ key }) => {\r\n if (onEnter) {\r\n if (key === 'Enter') {\r\n onEnter(value);\r\n }\r\n }\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n\r\n 0}>\r\n \r\n {\r\n items.map(_i => {\r\n return goToSearch(_i.comparisonViewId, _i.genericName)} className=\"justify-content-between clickable\">\r\n {_i.comparisonViewName} : {_i.genericName}\r\n \r\n })\r\n }\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n );\r\n};\r\n\r\nInputSearch.propTypes = {\r\n onChange: PropTypes.func.isRequired,\r\n value: PropTypes.any.isRequired,\r\n clearValue: PropTypes.func.isRequired,\r\n onEnter: PropTypes.func\r\n}\r\n\r\nexport default InputSearch;","import React, { useLayoutEffect } from 'react';\r\nimport numeral from 'numeral';\r\nimport Highcharts from 'highcharts';\r\nimport { Row, Col } from 'reactstrap';\r\n\r\nconst ItemGraph = (props) => {\r\n\r\n const _analyticsItem = () => {\r\n if (!props.analyticsData || !props.analyticsData.series) {\r\n return;\r\n }\r\n\r\n let analyticsItem = new Highcharts.chart('containerAnalytics', {\r\n chart: {\r\n type: 'spline'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n tooltip: {\r\n backgroundColor: '#000000',\r\n borderColor: '#000000',\r\n borderRadius: 5,\r\n formatter: function () {\r\n return '$' + Highcharts.numberFormat(this.y, 2, '.', ',') + ' cs';\r\n }\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n xAxis: {\r\n categories: props.analyticsData.categories,\r\n labels: {\r\n style: {\r\n color: '#376386'\r\n }\r\n }\r\n },\r\n yAxis: {\r\n gridLineWidth: 0,\r\n minorGridLineWidth: 0,\r\n lineWidth: 1,\r\n title: {\r\n text: ''\r\n },\r\n labels: {\r\n formatter: function () {\r\n return '$' + this.value;\r\n }\r\n },\r\n style: {\r\n color: '#376386'\r\n }\r\n },\r\n series: [{\r\n data: props.analyticsData.series,\r\n showInLegend: false,\r\n dataLabels: {\r\n enabled: false\r\n },\r\n cursor: 'pointer',\r\n }]\r\n });\r\n\r\n };\r\n\r\n useLayoutEffect(() => {\r\n _analyticsItem();\r\n }, [props.analyticsData]);\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ItemGraph;\r\n","import axios from 'axios';\r\nimport moment from 'moment-timezone';\r\n\r\n\r\nconst get = () => {\r\n return axios.get('/distributors');\r\n};\r\n\r\nconst getExpanded = () => {\r\n return axios.get('/distributors?expand=dsrs,lastOrderGuide,skyloader,dcn');\r\n};\r\n\r\nconst getById = (id) => {\r\n const timezone = moment.tz.guess();\r\n const params = { timezone: timezone };\r\n return axios.get(`/distributors/${id}`, { params });\r\n};\r\n\r\nconst getByIdExpanded = (id) => {\r\n const timezone = moment.tz.guess();\r\n const params = { timezone: timezone };\r\n return axios.get(`/distributors/${id}?expand=dsrs,lastOrderGuide,skyloader,dcn`, { params });\r\n};\r\n\r\nconst updateUserPassDistributor = (id, params) => {\r\n return axios.patch(`/distributors/${id}`, params);\r\n};\r\n\r\nconst saveDistributor = (id, params) => {\r\n return axios.post(`/distributors/${id}/dsr`, params);\r\n};\r\nconst updateDistributor = (id, params, dsrId) => {\r\n return axios.put(`/distributors/${id}/dsr/${dsrId}`, params);\r\n};\r\n\r\nconst sendInvite = (id, params, dsrId) => {\r\n return axios.patch(`/distributors/${id}/dsr/${dsrId}`, params);\r\n};\r\nconst deleteDistributor = (id, dsrId, params) => {\r\n return axios.put(`/distributors/${id}/dsr/${dsrId}`, params);\r\n};\r\n\r\nconst list = (params) => {\r\n return axios.get('distributors/list', {\r\n params: params\r\n });\r\n};\r\n\r\nexport default {\r\n get, getById, list, getExpanded, getByIdExpanded, saveDistributor, updateDistributor, sendInvite, updateUserPassDistributor, deleteDistributor\r\n};","import axios from 'axios';\r\n\r\nconst get = () => {\r\n return axios.get('shopping-lists');\r\n};\r\n\r\nconst getListById = (id) => {\r\n return axios.get(`shopping-lists/${id}`);\r\n};\r\n\r\nconst getListItems = (id, page = 1) => {\r\n const params = {\r\n page\r\n };\r\n return axios.get(`shopping-lists/${id}/items`, {params});\r\n};\r\n\r\nconst getAvailableItems = (filterOptions, page = 1) => {\r\n const params = {\r\n filterOptions: JSON.stringify(filterOptions),\r\n page\r\n };\r\n return axios.get('items', {params});\r\n};\r\n\r\nconst addList = (list) => {\r\n return axios.post('shopping-lists', list);\r\n};\r\n\r\nconst updateList = (id, list) => {\r\n return axios.patch(`shopping-lists/${id}`, list);\r\n};\r\n\r\nconst deleteList = (id) => {\r\n return axios.delete(`shopping-lists/${id}`);\r\n};\r\n\r\nconst addListItem = (listId, itemDistributorId) => {\r\n return axios.post(`shopping-lists/${listId}/add-one`, {itemDistributorId});\r\n};\r\n\r\nconst deleteListItem = (listId, itemDistributorId) => {\r\n return axios.delete(`shopping-lists/${listId}/${itemDistributorId}`);\r\n};\r\n\r\nexport default {\r\n get,\r\n getListById,\r\n getListItems,\r\n getAvailableItems,\r\n addList,\r\n updateList,\r\n deleteList,\r\n addListItem,\r\n deleteListItem\r\n};\r\n","import axios from 'axios';\r\nimport moment from 'moment-timezone';\r\n\r\n\r\nconst get = () => {\r\n return axios.get('/orders');\r\n};\r\n\r\nconst post = (params) => {\r\n const sendParams = params;\r\n const timezone = moment.tz.guess();\r\n sendParams.timezone = timezone;\r\n\r\n return axios.post('/orders', sendParams );\r\n};\r\n\r\n\r\nconst getByPage = (page) => {\r\n const params = {\r\n page: page,\r\n limit: 24\r\n }\r\n return axios.get('/orders', { params });\r\n};\r\n\r\n//--INI ORDER HISTORY\r\nconst downloadExcel = () => {\r\n return axios.get('orders/download-order-history');\r\n};\r\n\r\nconst getOrdersById = (id) => {\r\n return axios.get(`/orders/${id}?expand=items`);\r\n};\r\n\r\nconst downloadOrder365 = (id) => {\r\n return axios.get(`/orders/${id}/download-order-365`);\r\n};\r\n\r\nconst getOrdersByInventory = (id) => {\r\n return axios.get(`/orders/${id}/inventory-items`);\r\n};\r\n\r\nconst preReject = (id, params) => {\r\n return axios.post(`/orders/pre-reject/${id}`, params);\r\n}\r\n\r\nconst checkItems = (id, params) => {\r\n return axios.post(`/orders/check-items/${id}`, params);\r\n}\r\n\r\nconst survey = (id, params) => {\r\n return axios.post(`/orders/survey/${id}`, params);\r\n}\r\n\r\nconst createCustomItem = (params) => {\r\n return axios.post(`/order-items/create-custom`, params);\r\n};\r\n\r\nconst bulkCreate = (params) => {\r\n return axios.post(`/order-items/bulk-create`, params);\r\n};\r\n\r\nconst updateItems = (id, params) => {\r\n return axios.patch(`/orders/${id}`, params);\r\n}\r\n\r\nconst getInvoiceImages = (id) => {\r\n return axios.get(`/orders/${id}/invoices-images`);\r\n};\r\n\r\nconst uploadInvoiceImage = (id, file) => {\r\n let formData = new FormData();\r\n formData.append('image', file);\r\n return axios.post(`/orders/${id}/invoices-images`, formData, { headers: { 'Content-Type': 'multipart/form-data' } });\r\n};\r\n\r\nconst deleteInvoiceImage = (id, imgId) => {\r\n return axios.delete(`/orders/${id}/invoices-images/${imgId}`);\r\n};\r\n\r\n\r\n//--END ORDER HISTORY\r\n\r\n\r\nconst downloadQuickbooks = (startDate, endDate) => {\r\n const params = {\r\n startDate: startDate,\r\n endDate: endDate\r\n };\r\n return axios.get('orders/download-order-quickbooks', { params });\r\n};\r\n\r\n\r\nexport default {\r\n get,\r\n getByPage,\r\n getOrdersById,\r\n downloadOrder365,\r\n downloadExcel,\r\n getOrdersByInventory,\r\n preReject,\r\n checkItems,\r\n survey,\r\n createCustomItem,\r\n bulkCreate,\r\n updateItems,\r\n getInvoiceImages,\r\n uploadInvoiceImage,\r\n deleteInvoiceImage,\r\n downloadQuickbooks,\r\n post\r\n};\r\n","import React, { Fragment } from 'react';\r\nimport { Row, Col, CustomInput } from 'reactstrap';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\n\r\nconst SearchFilterModalCheckbox = (props) => {\r\n const { col, value, set, label, id, rowClassName, colClassName } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n};\r\n\r\nexport default SearchFilterModalCheckbox;","import React, { useEffect, useState } from 'react';\r\nimport useInput from '../../SharedEffects/useInput';\r\nimport distributorsApi from '../../../api/distributorsApi';\r\nimport shoppingListsApi from '../../../api/shoppingListsApi';\r\nimport ordersApi from '../../../api/ordersApi';\r\nimport SearchFilterModalCheckbox from './SearchFilterModalCheckbox';\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport {spinner} from '../../../reducers/userInterface/userInterfaceActions';\r\nimport {saveList, clearList} from '../../../reducers/orders/ordersActions';\r\n\r\nconst useDistributors = (init) => {\r\n const {\r\n setItems : setDistributors,\r\n all: allDistributors,\r\n toggleItem: toggleDistributor,\r\n items: distributors,\r\n toggleAll: toggleAllDistributors\r\n } = useInput.useCheckboxGroup();\r\n\r\n useEffect(() => {\r\n distributorsApi.get().then(({data}) => {\r\n const dist = data.map(d => {\r\n let check = false;\r\n init.forEach(id => {\r\n if (d.id === id) {\r\n check = true;\r\n }\r\n });\r\n return {\r\n nickname: d.nickname,\r\n id: d.id,\r\n check: check\r\n }\r\n })\r\n setDistributors(dist);\r\n }).catch(err => {\r\n console.error('DistributorsApi get error:', err);\r\n })\r\n }, []);\r\n\r\n const distributorsMapDesktop = distributors.map((d, i) =>\r\n {toggleDistributor(i)}} value={d.check} />\r\n );\r\n\r\n const distributorsMapMobile = distributors.map((d, i) =>\r\n {toggleDistributor(i)}} value={d.check} />\r\n );\r\n\r\n return {\r\n allDistributors, toggleAllDistributors, distributors, toggleDistributor,\r\n distributorsMapDesktop, distributorsMapMobile, setDistributors\r\n }\r\n};\r\n\r\nconst useShoppingLists = (init) => {\r\n const {\r\n setItems : setShoppingLists,\r\n all: allShoppingLists,\r\n toggleItem: toggleShoppingList,\r\n items: shoppingLists,\r\n toggleAll: toggleAllShoppingLists\r\n } = useInput.useCheckboxGroup();\r\n\r\n useEffect(() => {\r\n shoppingListsApi.get().then(({data}) => {\r\n const shop = data.map(s => {\r\n let check = false;\r\n init.forEach(id => {\r\n if (s.id === id) {\r\n check = true;\r\n }\r\n });\r\n return {\r\n nickname: s.name,\r\n id: s.id,\r\n check: check\r\n }\r\n })\r\n setShoppingLists(shop);\r\n }).catch(err => {\r\n console.error('ShoppingListApi get error:', err);\r\n })\r\n }, []);\r\n \r\n const shoppingMapDesktop = shoppingLists.map((s, i) =>\r\n {toggleShoppingList(i)}} value={s.check} />\r\n );\r\n\r\n const shoppingMapMobile = shoppingLists.map((s, i) =>\r\n {toggleShoppingList(i)}} value={s.check} />\r\n );\r\n\r\n return {\r\n allShoppingLists, toggleAllShoppingLists, shoppingLists, toggleShoppingList,\r\n shoppingMapDesktop, shoppingMapMobile, setShoppingLists\r\n }\r\n};\r\n\r\nconst usePastOrders = (init) => {\r\n\r\n const dispatch = useDispatch();\r\n const orderList = useSelector(({ orders }) => orders.list);\r\n const [isLoadingOrders, setIsLoadingOrders] = useState(false);\r\n\r\n const {\r\n setItems : setPastOrders,\r\n all: allPastOrders,\r\n toggleItem: togglePastOrder,\r\n items: pastOrders,\r\n toggleAll: toggleAllPastOrders\r\n } = useInput.useCheckboxGroup();\r\n\r\n useEffect(() => {\r\n dispatch(spinner(false));\r\n setIsLoadingOrders(true);\r\n ordersApi.get().then(({data}) => {\r\n dispatch(spinner(true));\r\n const ord = data.map(o => {\r\n let check = false;\r\n init.forEach(id => {\r\n if (o.id === id) {\r\n check = true;\r\n }\r\n });\r\n return {\r\n nickname: `${o.createTimeDisplay} - ${o.distributor}`,\r\n id: o.id,\r\n check: check\r\n }\r\n })\r\n setPastOrders(ord);\r\n dispatch(saveList(data));\r\n setIsLoadingOrders(false);\r\n }).catch(err => {\r\n console.error('OrdersApi get error:', err);\r\n })\r\n }, []);\r\n\r\n const orderMapDesktop = pastOrders.map((o, i) =>\r\n {togglePastOrder(i)}} value={o.check} />\r\n );\r\n\r\n const orderMapMobile = pastOrders.map((o, i) =>\r\n {togglePastOrder(i)}} value={o.check} />\r\n );\r\n\r\n return {\r\n allPastOrders, toggleAllPastOrders, pastOrders, togglePastOrder,\r\n orderMapDesktop, orderMapMobile, setPastOrders, isLoadingOrders\r\n }\r\n};\r\n\r\nexport default {\r\n useDistributors,\r\n useShoppingLists,\r\n usePastOrders\r\n};","export const saveList = (orders) => {\r\n return {\r\n type: 'SET_LIST',\r\n payload: orders\r\n }\r\n};\r\n\r\nexport const saveCount = (count) => {\r\n return {\r\n type: 'SET_COUNT',\r\n payload: count\r\n }\r\n};\r\n\r\nexport const clearList = () => {\r\n return {\r\n type: 'CLEAR_LIST',\r\n };\r\n};","\r\nexport const setShoppingListsFilters = (purchasedOnly, distributorIds, shoppingIds, pastOrderIds) => {\r\n return {\r\n type: 'SET_SHOPPING_LISTS_FILTERS',\r\n payload: {\r\n purchasedOnly: purchasedOnly,\r\n distributorIds: distributorIds,\r\n shoppingIds: shoppingIds,\r\n pastOrderIds: pastOrderIds\r\n }\r\n }\r\n};\r\n","import React from 'react';\r\nimport { ModalFooter, Button, Col } from 'reactstrap';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport { setListFilters } from '../../../reducers/items/itemsActions';\r\nimport { setShoppingListsFilters } from '../../../reducers/shoppingLists/shoppingListsActions';\r\n\r\nconst SearchFiltersModalFooter = (props) => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const {\r\n distributors, pastOrders, shoppingLists,\r\n setDistributors, setPastOrders, setShoppingLists,\r\n allDistributors, toggleAllDistributors,\r\n toggleAllPastOrders, allPastOrders,\r\n allShoppingLists, toggleAllShoppingLists, purchasedOnly,\r\n togglePurchasedOnly, toggleModal\r\n } = props;\r\n\r\n const clickReset = () => {\r\n setDistributors(distributors.map(d => {\r\n return {\r\n ...d,\r\n check: false\r\n }\r\n }));\r\n if (allDistributors) toggleAllDistributors();\r\n setPastOrders(pastOrders.map(d => {\r\n return {\r\n ...d,\r\n check: false\r\n }\r\n }));\r\n if (allPastOrders) toggleAllPastOrders();\r\n setShoppingLists(shoppingLists.map(d => {\r\n return {\r\n ...d,\r\n check: false\r\n }\r\n }));\r\n if (allShoppingLists) toggleAllShoppingLists();\r\n if (purchasedOnly) togglePurchasedOnly();\r\n\r\n if (history.location.pathname.startsWith('/shopping-lists')) {\r\n dispatch(setShoppingListsFilters(false, [], [], []));\r\n } else {\r\n dispatch(setListFilters(false, [], [], []));\r\n }\r\n };\r\n\r\n const clickApply = () => {\r\n const distIds = distributors.filter(d => d.check).map(d => d.id);\r\n const shopIds = shoppingLists.filter(s => s.check).map(s => s.id);\r\n const ordIds = pastOrders.filter(o => o.check).map(o => o.id);\r\n\r\n if (history.location.pathname.startsWith('/shopping-lists')) {\r\n dispatch(setShoppingListsFilters(purchasedOnly, distIds, shopIds, ordIds));\r\n } else {\r\n dispatch(setListFilters(purchasedOnly, distIds, shopIds, ordIds));\r\n }\r\n toggleModal();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SearchFiltersModalFooter;\r\n","import React from 'react';\r\nimport { ModalBody, Col, Row } from 'reactstrap';\r\nimport { MobileView, BrowserView, isMobile } from 'react-device-detect';\r\nimport SearchFilterModalCheckbox from './SearchFilterModalCheckbox';\r\n\r\nconst SearchFiltersModalBody = (props) => {\r\n const {\r\n togglePurchasedOnly, purchasedOnly, allDistributors,\r\n toggleAllDistributors, distributorsMapDesktop,\r\n distributorsMapMobile, distributors, allPastOrders, pastOrders,\r\n toggleAllPastOrders, orderMapDesktop, orderMapMobile, isLoadingOrders,\r\n allShoppingLists, toggleAllShoppingLists, shoppingMapDesktop,\r\n shoppingMapMobile, shoppingLists } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n {distributorsMapMobile}\r\n
\r\n \r\n
\r\n {shoppingMapMobile}\r\n
\r\n \r\n
\r\n { isLoadingOrders ? Loading ... : ( pastOrders.length > 0 ? orderMapMobile : '') }\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {distributorsMapDesktop}\r\n \r\n \r\n {shoppingMapDesktop}\r\n \r\n \r\n { isLoadingOrders ? Loading ... : ( pastOrders.length > 0 ? orderMapDesktop : '') }\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default SearchFiltersModalBody;","import React from 'react';\r\nimport { Modal, ModalHeader } from 'reactstrap';\r\nimport useInput from '../../SharedEffects/useInput';\r\nimport useSearchFiltersModal from './useSearchFiltersModal';\r\nimport useModal from '../useModal';\r\nimport { modalMenuClassName } from '../../../config/constants';\r\nimport SearchFiltersModalFooter from './SearchFiltersModalFooter';\r\nimport SearchFiltersModalBody from './SearchFiltersModalBody';\r\nimport { useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport { isMobile } from 'react-device-detect';\r\n\r\nconst SearchFiltersModal = (props) => {\r\n const { id } = props;\r\n const modalProps = useModal(id);\r\n const history = useHistory();\r\n const listFilters = useSelector(({items}) => items.list.filters);\r\n const shoppingListFilters = useSelector(({shoppingLists}) => shoppingLists.filters);\r\n const filters = history.location.pathname.startsWith('/shopping-lists') ? shoppingListFilters : listFilters;\r\n\r\n const { toggle : togglePurchasedOnly, value : purchasedOnly } = useInput.useCheckbox(filters.purchasedOnly);\r\n const dist = useSearchFiltersModal.useDistributors(filters.distributorIds);\r\n const past = useSearchFiltersModal.usePastOrders(filters.pastOrderIds);\r\n const shop = useSearchFiltersModal.useShoppingLists(filters.shoppingIds);\r\n\r\n const bodyProps = {\r\n togglePurchasedOnly, purchasedOnly,\r\n ...dist, ...past, ...shop\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SearchFiltersModal;\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { Row, Col, Card, Button } from 'reactstrap';\r\nimport { IoMdSearch, IoIosOptions } from 'react-icons/io';\r\nimport moment from 'moment';\r\nimport numeral from 'numeral';\r\nimport InfiniteScroll from 'react-infinite-scroller';\r\nimport useInput from '../../../../../SharedComponents/SharedEffects/useInput';\r\nimport InputSearch from '../../../../../SharedComponents/InputSearch/InputSearch';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport ItemGraph from '../ItemGraph/ItemGraph';\r\nimport noImage from '../../../../../assets/images/no-image.png';\r\nimport comingSoon from '../../../../../assets/images/coming-soon.png';\r\nimport searchBox from '../../../../../assets/images/search-box.png';\r\nimport analyticsApi from '../../../../../api/analyticsApi';\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport SearchFiltersModal from '../../../../../SharedComponents/Modals/SearchFiltersModal/SearchFiltersModal';\r\nimport * as $ from 'jquery';\r\n\r\nconst ItemLookup = (props) => {\r\n\r\n const dispatch = useDispatch();\r\n const spinner = useSelector(({ userInterface }) => userInterface.spinner);\r\n const filters = useSelector(({items}) => items.list.filters);\r\n\r\n const isFirstRun = useRef(true);\r\n const lastSearch = useRef('');\r\n\r\n const [listStatistics, setListStatistics] = useState(null);\r\n\r\n const search = useInput.useText('');\r\n\r\n const [page, setPage] = useState(1);\r\n const [items, setItems] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [loadMore, setLoadMore] = useState(false);\r\n\r\n const getItems = (newPage, searchValue) => {\r\n if (isLoading) return;\r\n $('scrollDiv').scrolltop = 0;\r\n\r\n let filterOptions = {\r\n sort: {\r\n id: 5,\r\n name: 'frequent',\r\n type: 1,\r\n desc: 'Most Purchased'\r\n },\r\n product: 'ALL'\r\n };\r\n\r\n filterOptions = searchValue ? {search: searchValue, ...filterOptions, ...filters} : {...filterOptions, ...filters};\r\n lastSearch.current = searchValue;\r\n\r\n setIsLoading(true);\r\n setPage(newPage);\r\n analyticsApi.getItems(filterOptions, newPage).then(res => {\r\n if (newPage > 1) {\r\n setItems(items.concat(res.data));\r\n } else {\r\n setItems(res.data);\r\n }\r\n setLoadMore(res._meta.pageCount > res._meta.currentPage);\r\n setIsLoading(false);\r\n })\r\n .catch(error => console.log('analyticsApi getItems Error:', error));\r\n };\r\n\r\n const onClear = () => {\r\n search.clearValue();\r\n setListStatistics(null);\r\n setItems([]);\r\n getItems(1, '');\r\n };\r\n\r\n const onSearch = () => {\r\n setListStatistics(null);\r\n setItems([]);\r\n getItems(1, search.value);\r\n };\r\n\r\n const openFilterModal = () => {\r\n $('scrollDiv').scrolltop = 0;\r\n dispatch(showModal(SearchFiltersModal));\r\n };\r\n\r\n const _changePriceZero = (listSeries) => {\r\n if (listSeries) {\r\n var series_length = listSeries.length;\r\n for (let i = 0; i < series_length; i++) {\r\n if (listSeries[i] === 0 && i !== 0) {\r\n listSeries[i] = listSeries[i - 1];\r\n }\r\n }\r\n }\r\n }\r\n\r\n const getStatistics = (itemDistributorId) => {\r\n let filter = {\r\n filter_type: props.filterType,\r\n item_distributor_id: itemDistributorId\r\n };\r\n if (props.filterType == 'custom') {\r\n filter = {\r\n ...filter,\r\n start_date: moment(props.startDate).format('YYYY-MM-DD'),\r\n end_date: moment(props.endDate).format('YYYY-MM-DD')\r\n };\r\n }\r\n analyticsApi.getStatistics(filter).then(({data}) => {\r\n _changePriceZero(data.series);\r\n setListStatistics(data);\r\n }).catch(err=> {\r\n console.error('getStatistics get Error:', err);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n getStatistics('default');\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (isFirstRun.current) {\r\n isFirstRun.current = false;\r\n return;\r\n }\r\n\r\n setListStatistics(null);\r\n setItems([]);\r\n getItems(1, search.value);\r\n }, [filters]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Item Lookup\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listStatistics && listStatistics.itemData && listStatistics.itemData.brand}\r\n \r\n \r\n \r\n \r\n \r\n {listStatistics && listStatistics.itemData && listStatistics.itemData.name}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Average Price\r\n \r\n \r\n \r\n \r\n \r\n {listStatistics && listStatistics.itemData && numeral(listStatistics.itemData.average_price).format('$0,0.00')} {listStatistics && listStatistics.itemData && listStatistics.itemData.unit_measure}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Best Price\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Number of Cases\r\n \r\n \r\n \r\n \r\n \r\n {listStatistics && listStatistics.itemData && listStatistics.itemData.num_cases}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total Spent per Item\r\n \r\n \r\n \r\n \r\n \r\n {listStatistics && listStatistics.itemData && numeral(listStatistics.itemData.total_purchases).format('$0,0.00')}\r\n \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 ? ' border' : '')} style={{overflowX: 'hidden', overflowY: 'auto', maxHeight: '400px'}}>\r\n\r\n {\r\n if (lastSearch.current === search.value) {\r\n getItems(page+1, search.value);\r\n } else {\r\n getItems(1, search.value);\r\n }\r\n }}\r\n hasMore={loadMore && !isLoading}\r\n useWindow={false}\r\n >\r\n {\r\n items.map((item, index) => {\r\n return (\r\n\r\n \r\n Purchased\r\n Order Guide\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.description}\r\n \r\n \r\n \r\n {item.brand}\r\n {item.distributor}\r\n \r\n \r\n \r\n {numeral(item.price).format('$0,0.00')} {item.unitMeasure}\r\n \r\n \r\n {item.packSize}\r\n \r\n \r\n \r\n \r\n \r\n \r\n  \r\n \r\n \r\n \r\n getStatistics(item.itemDistributorId)}>\r\n Show Stats\r\n \r\n \r\n \r\n \r\n  \r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n })\r\n }\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Sorry, there are no exact match results found

\r\n

Search Suggestions

\r\n
    \r\n
  • Check your spelling
  • \r\n
  • Try to use less specific words
  • \r\n
\r\n \r\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 ItemLookup;\r\n","import { toggleSidebar, spinner } from '../../reducers/userInterface/userInterfaceActions';\r\nimport useInput from '../SharedEffects/useInput';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory, useLocation } from 'react-router-dom';\r\nimport { changeTourMoral } from '../../reducers/modals/modalsActions';\r\nimport { useRef, useState, useEffect } from 'react';\r\nimport qs from 'query-string'\r\nimport { setListSearch, setListSortByOptions, setListSortBy, setInventorySearch, setInventorySortBy, setInventoryOptionsRearrangeDisabled } from '../../reducers/items/itemsActions';\r\nimport { sortOptions, localStorageConst } from '../../config/constants';\r\nimport { saveHeaderIndexRevOrder } from '../../reducers/header/headerActions';\r\nimport * as $ from 'jquery';\r\n\r\nconst useActions = () => {\r\n const { set: setSearch, value: search, clearValue, setValue: setSearchValue } = useInput.useText(null);\r\n const storeView = useSelector(({items}) => items.view);\r\n const [view, setView] = useState(storeView);\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n\r\n const clickMenu = () => {\r\n dispatch(toggleSidebar());\r\n };\r\n\r\n const clickBack = () => {\r\n history.goBack();\r\n };\r\n\r\n const clearSearch = () => {\r\n\r\n const { pathname } = history.location;\r\n clearValue();\r\n const search='';\r\n\r\n $(\"HTML, BODY\").animate({\r\n scrollTop: 0\r\n });\r\n\r\n switch (view) {\r\n case 'list':\r\n dispatch(setListSearch(search));\r\n dispatch(setListSortByOptions(sortOptions.listView));\r\n dispatch(setListSortBy(sortOptions.listView.filter(lw => lw.default === 1)[0]));\r\n break;\r\n case 'inventory':\r\n dispatch(setInventorySearch(search));\r\n const defaultSort = localStorage.getItem(localStorageConst.keys.inventorySortBySelected) ? JSON.parse(localStorage.getItem(localStorageConst.keys.inventorySortBySelected)) : sortOptions.inventoryView.filter(s => s.default)[0];\r\n dispatch(setInventorySortBy(defaultSort));\r\n dispatch(setInventoryOptionsRearrangeDisabled(defaultSort));\r\n \r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n history.push({\r\n pathname: pathname,\r\n search: search\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n const { pathname } = history.location;\r\n const parts = pathname.split('/');\r\n const pathView = parts[parts.length-1];\r\n setView(pathView);\r\n const urlObj = qs.parseUrl(location.search);\r\n if (urlObj) {\r\n if (urlObj.query.query !== search) {\r\n setSearchValue(urlObj.query.query);\r\n }\r\n }\r\n }, [location.search]);\r\n\r\n useEffect(() => {\r\n if(view === 'list'){\r\n dispatch(setListSearch(''));\r\n dispatch(setListSortByOptions(sortOptions.listView));\r\n dispatch(setListSortBy(sortOptions.listView.filter(lw => lw.default === 1)[0]));\r\n }else{\r\n dispatch(setInventorySearch(''));\r\n const defaultSort = localStorage.getItem(localStorageConst.keys.inventorySortBySelected) ? JSON.parse(localStorage.getItem(localStorageConst.keys.inventorySortBySelected)) : sortOptions.inventoryView.filter(iv => iv.default === 1)[0];\r\n dispatch(setInventorySortBy(defaultSort));\r\n dispatch(setInventoryOptionsRearrangeDisabled(defaultSort));\r\n }\r\n }, [view]);\r\n\r\n const enterSearch = () => {\r\n const { pathname } = history.location;\r\n\r\n $(\"HTML, BODY\").animate({\r\n scrollTop: 0\r\n });\r\n\r\n switch (view) {\r\n case 'list':\r\n dispatch(setListSearch(search));\r\n if (search) {\r\n dispatch(setListSortByOptions(sortOptions.listViewSearch));\r\n dispatch(setListSortBy(sortOptions.listViewSearch.filter(lws => lws.default === 1)[0]));\r\n } else {\r\n dispatch(setListSortByOptions(sortOptions.listView));\r\n dispatch(setListSortBy(sortOptions.listView.filter(lw => lw.default === 1)[0]));\r\n }\r\n break;\r\n case 'inventory':\r\n dispatch(setInventorySearch(search));\r\n const defaultSort = localStorage.getItem(localStorageConst.keys.inventorySortBySelected) ? JSON.parse(localStorage.getItem(localStorageConst.keys.inventorySortBySelected)) : sortOptions.inventoryView.filter(iv => iv.default === 1)[0];\r\n if (search) {\r\n dispatch(setInventorySortBy(sortOptions.inventoryView[0])); \r\n dispatch(setInventoryOptionsRearrangeDisabled(sortOptions.inventoryView[0])); \r\n } else {\r\n dispatch(setInventorySortBy(defaultSort)); \r\n dispatch(setInventoryOptionsRearrangeDisabled(defaultSort));\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n history.push({\r\n pathname: pathname,\r\n search: search ? `?query=${search}` : ''\r\n });\r\n };\r\n const [openModalWC, setOpenModalWC] = useState(false);\r\n\r\n const goToNextTourModal = (value) => {\r\n setOpenModalWC(!openModalWC);\r\n value = value == 5 ? 1 : value;\r\n dispatch(changeTourMoral(value));\r\n }\r\n\r\n const tourElementSearch = useRef();\r\n const tourElementFilters = useRef();\r\n\r\n const startTour = () => {\r\n setOpenModalWC(!openModalWC);\r\n };\r\n const skipDemo = () => {\r\n setOpenModalWC(false);\r\n dispatch(changeTourMoral(1));\r\n\r\n }\r\n\r\n const goToCart = () => {\r\n history.push('/checkout-ordering/savings');\r\n dispatch(saveHeaderIndexRevOrder(2));\r\n // history.push('/checkout-ordering/review-order');\r\n\r\n }\r\n\r\n return {\r\n clickMenu,\r\n enterSearch,\r\n clearSearch,\r\n setSearch,\r\n search,\r\n clickBack,\r\n openModalWC,\r\n tourElementSearch,\r\n tourElementFilters,\r\n startTour,\r\n goToNextTourModal,\r\n skipDemo,\r\n goToCart\r\n };\r\n};\r\n\r\nexport default {\r\n useActions\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\nimport * as $ from 'jquery';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { saveAnimation } from '../../reducers/cart/cartActions';\r\nimport { cartAnimations } from '../../config/constants';\r\nimport './CartAnimation.scss';\r\nimport image from '../../assets/images/rebate-sticker.gif';\r\nimport audioSource from '../../assets/audios/rebate.wav';\r\nimport { Row, Col } from 'reactstrap';\r\nimport numeral from 'numeral';\r\n\r\nconst CartAnimation = () => {\r\n const dispatch = useDispatch();\r\n const animation = useSelector(({ cart }) => cart.animation);\r\n const [showAnimation, setShowAnimation] = useState(animation.type !== cartAnimations.type.none ? true : false);\r\n const [message, setMessage] = useState('');\r\n const [audio] = useState(new Audio(audioSource));\r\n\r\n const handleMessage = () => {\r\n let msg = '';\r\n switch (animation.type) {\r\n case cartAnimations.type.cartUpdated:\r\n msg = 'Shopping Cart Updated!';\r\n break;\r\n case cartAnimations.type.rebatesEarned:\r\n msg = 'Nice '+ numeral(animation.data).format('$0,0.00') +' in rebates earned!';\r\n break;\r\n case cartAnimations.type.savingItemAdded:\r\n msg = 'Saving Item Added to Cart!';\r\n break;\r\n case cartAnimations.type.specialRequest:\r\n msg = 'The Item was added to your order as special request';\r\n break;\r\n default:\r\n msg = '';\r\n break;\r\n }\r\n setMessage(msg);\r\n };\r\n\r\n const displayAnimation = () => {\r\n handleMessage();\r\n audio.play();\r\n setTimeout(() => {\r\n dispatch(saveAnimation({type: cartAnimations.type.none, data:null }));\r\n }, cartAnimations.delay);\r\n };\r\n\r\n useEffect(() => {\r\n setShowAnimation(animation.type !== cartAnimations.type.none ? true : false);\r\n if (animation.type !== cartAnimations.type.none) {\r\n displayAnimation();\r\n }\r\n\r\n }, [animation]);\r\n\r\n return (\r\n \r\n \r\n \r\n Cart Animation\r\n \r\n \r\n {message}\r\n \r\n \r\n \r\n\r\n )\r\n};\r\n\r\nexport default CartAnimation;","import React, { useEffect } from 'react';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\nimport { Col } from 'reactstrap';\r\nimport { MdShoppingCart } from 'react-icons/md';\r\nimport { colors } from '../../config/constants';\r\nimport { useSelector } from 'react-redux';\r\nimport useHeader from './useHeader';\r\nimport CartAnimation from '../Animations/CartAnimation';\r\n\r\nconst HeaderCart = (props) => {\r\n const { show } = props;\r\n const cartCount = useSelector(({ cart }) => cart.cartCount);\r\n const isDisplayShoppingCart = useSelector(({ user }) => user.activeLocation.display_shopping_cart);\r\n\r\n const { goToCart } = useHeader.useActions();\r\n\r\n // useEffect(() => {\r\n\r\n // }, [cartCount]);\r\n\r\n return (\r\n \r\n \r\n
\r\n {cartCount}\r\n \r\n
\r\n \r\n \r\n
\r\n )\r\n};\r\n\r\nexport default HeaderCart;\r\n","import React from 'react';\r\nimport { Modal, ModalBody, Button } from 'reactstrap';\r\nimport './tourmodal.scss';\r\nimport { useSelector } from 'react-redux';\r\nimport tipTour from '../../../assets/images/tip-tour.png'\r\nimport { isMobile } from \"react-device-detect\";\r\n\r\nconst WelComeTourModal = (props) => {\r\n const { openModal, tourElement, skipDemo, goToNextTourModal } = props;\r\n\r\n console.log(tourElement)\r\n let positions = \"\";\r\n const numTourModal = useSelector(state => state.modals.numTourModal);\r\n\r\n let styleModal = {};\r\n let arrowClass = '';\r\n let firstText = ``;\r\n let secondText = ``\r\n let imgClass = '';\r\n\r\n switch (numTourModal) {\r\n case 1:\r\n firstText = `All the cards on the table!`;\r\n secondText = `This section allows you to purchase from all your current vendors. Look at all your options for purchasing a product in one view.`\r\n if (isMobile) {\r\n styleModal = {\r\n margin: 'auto',\r\n top: '20%'\r\n }\r\n arrowClass = '';\r\n imgClass = 'hiddeImg';\r\n } else {\r\n\r\n styleModal = {\r\n // top: `calc(${positions.top - 40}px)`,\r\n // left: `${positions.right}px`,\r\n // position: \"absolute\"\r\n left: \"276px\",\r\n position: \"absolute\",\r\n top: \"164px\"\r\n };\r\n arrowClass = 'arrowLeft';\r\n imgClass = 'imgLeft';\r\n }\r\n break;\r\n\r\n case 2:\r\n firstText = `Time to Search and Rescue`;\r\n secondText = `This section allows you to search for generic items within the selected Inventory list`\r\n arrowClass = 'arrowLeft';\r\n imgClass = 'imgLeft';\r\n\r\n if (isMobile) {\r\n styleModal = {\r\n margin: 'auto',\r\n top: '60px'\r\n }\r\n arrowClass = 'arrowTop';\r\n imgClass = 'imgTop';\r\n } else {\r\n // positions = tourElement.current.getBoundingClientRect();\r\n styleModal = {\r\n // top: `calc(${positions.top - 40}px)`,\r\n // left: `${positions.right + 100}px`,\r\n // position: \"absolute\"\r\n left: \"40%\",\r\n position: \"absolute\",\r\n top: \"-18.5px\"\r\n }\r\n\r\n }\r\n\r\n break;\r\n\r\n case 3:\r\n firstText = `You can have whatever you like!`;\r\n secondText = `This section allows you to select distributors you want to see results from. You can also filter by past orders or shopping lists.`\r\n arrowClass = 'arrowRight';\r\n imgClass = 'imgRight';\r\n\r\n if (isMobile) {\r\n styleModal = {\r\n margin: 'auto',\r\n top: '60px'\r\n }\r\n arrowClass = 'arrowTopRight';\r\n imgClass = 'imgTopRight';\r\n } else {\r\n styleModal = {\r\n // top: `calc(${positions.top - 40}px)`,\r\n // left: `${positions.right - 330}px`,\r\n // position: \"absolute\"\r\n right: \"13%\",\r\n position: \"absolute\",\r\n top: \"-10px\"\r\n }\r\n }\r\n\r\n break;\r\n\r\n\r\n case 4:\r\n firstText = `Make it your own`;\r\n secondText = `Use our simple \"inventory view\" to set up an easy way to count your items, view par levels and even order shelf-to-sheet! Simply count your product by entering the on hand amount, you'll get the total on hand value automatically calculated for you at the end. Inventory made easy!`\r\n arrowClass = 'arrowRight';\r\n imgClass = 'imgRight';\r\n if (isMobile) {\r\n styleModal = {\r\n margin: 'auto',\r\n top: '120px'\r\n }\r\n arrowClass = 'arrowTopRight';\r\n imgClass = 'imgTopRight';\r\n } else {\r\n styleModal = {\r\n // top: `calc(${positions.top + 33}px)`,\r\n // left: `${positions.right - 200}px`,\r\n // position: \"absolute\"\r\n right: '5%',\r\n position: \"absolute\",\r\n top: \"63px\"\r\n }\r\n\r\n }\r\n\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return (\r\n \r\n \r\n\r\n
\r\n
\r\n

{firstText}

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

{secondText}

\r\n
\r\n \r\n Skip Demo\r\n
\r\n\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default WelComeTourModal;","import React, { useEffect, useRef, createRef, useCallback } from 'react';\r\nimport { Col, Button } from 'reactstrap';\r\nimport './Header.scss';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\nimport { IoMdSearch, IoIosOptions } from 'react-icons/io';\r\nimport InputSearch from '../InputSearch/InputSearch';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { colors, delay, localStorageConst } from '../../config/constants';\r\nimport { useDispatch } from 'react-redux';\r\nimport { showModal } from '../../reducers/modals/modalsActions';\r\nimport SearchFiltersModal from '../Modals/SearchFiltersModal/SearchFiltersModal';\r\nimport { useSelector } from 'react-redux';\r\nimport useHeader from './useHeader';\r\nimport WelComeTourModal from \"../../SharedComponents/Modals/WelComeTourModal/WelcomeTourModal\";\r\nimport { debounce } from 'lodash';\r\nimport comparisonViewsApi from '../../api/comparisonViewsApi';\r\nimport { selectInventoryList, setInventorySearch } from '../../reducers/items/itemsActions';\r\nimport { useState } from 'react';\r\nimport { useHistory, useLocation } from 'react-router';\r\nimport * as $ from 'jquery';\r\n\r\nconst HeaderSearch = (props) => {\r\n const history = useHistory();\r\n const location = useLocation();\r\n const dispatch = useDispatch();\r\n\r\n const { show, clearSearch, enterSearch, showFilters, search, setSearch } = props;\r\n const [searchN, setSearchN] = useState('');\r\n const listInventory = useSelector(({ items }) => items.inventory.list);\r\n const [inventoriesV, setInventoriesV] = useState([]);\r\n const [withItems, setWithItems] = useState(false);\r\n const [firstTime, setFirstTime] = useState(true);\r\n let storeView = useSelector(({ items }) => items.view);\r\n if (history.location.pathname.startsWith('/shopping-lists')) {\r\n storeView = 'list';\r\n }\r\n\r\n const openFilters = () => {\r\n dispatch(showModal(SearchFiltersModal));\r\n };\r\n\r\n const { clickMenu,\r\n enterSearchs,\r\n clearSearchs,\r\n setSearchs,\r\n searchs,\r\n clickBacks,\r\n openModalWC,\r\n tourElementSearch,\r\n tourElementFilters,\r\n startTour,\r\n goToNextTourModal,\r\n skipDemo } = useHeader.useActions(dispatch);\r\n\r\n const { pathname } = history.location;\r\n const numTourModal = useSelector(state => state.modals.numTourModal);\r\n\r\n\r\n useEffect(() => {\r\n switch (numTourModal) {\r\n case 2:\r\n if (!isMobile)\r\n clickMenu();\r\n startTour();\r\n break;\r\n case 3:\r\n startTour();\r\n break;\r\n case 4:\r\n startTour();\r\n break;\r\n default:\r\n break;\r\n }\r\n }, [numTourModal]);\r\n\r\n\r\n const clearSearchI = () => {\r\n setSearchN(\"\");\r\n setWithItems(false);\r\n setFirstTime(true)\r\n dispatch(setInventorySearch(''));\r\n $(\"HTML, BODY\").animate({\r\n scrollTop: 0\r\n });\r\n history.push({\r\n pathname: pathname,\r\n search: ''\r\n });\r\n }\r\n\r\n const useDebounce = (callback) => {\r\n const d = callback;\r\n const callbackfunc = useCallback(debounce(d, delay.tap), []);\r\n return [callbackfunc];\r\n };\r\n\r\n const goToSearch = (comparisonViewId, nameGroup) => {\r\n setFirstTime(true)\r\n setWithItems(false)\r\n setSearchN(nameGroup);\r\n $(\"HTML, BODY\").animate({\r\n scrollTop: 0\r\n });\r\n dispatch(setInventorySearch(nameGroup));\r\n\r\n history.push({\r\n pathname: pathname,\r\n search: searchN ? `?query=${nameGroup}` : ''\r\n });\r\n\r\n const itemSelected = listInventory.find(_i => _i.id == comparisonViewId);\r\n dispatch(selectInventoryList(itemSelected));\r\n localStorage.setItem(localStorageConst.keys.listSelected, JSON.stringify(itemSelected));\r\n }\r\n\r\n const getFilterGroup = (valueSearch) => {\r\n comparisonViewsApi.getFilterGroup(valueSearch)\r\n .then(res => {\r\n setWithItems(true);\r\n setInventoriesV(res.data);\r\n // const comparisonViewId = res.data[0].comparisonViewId;\r\n // console.log(`Realizando busqeuda. . ${comparisonViewId}`)\r\n\r\n })\r\n .catch(err => console.log(err))\r\n };\r\n\r\n\r\n const [callback] = useDebounce(getFilterGroup);\r\n\r\n useEffect(() => {\r\n setFirstTime(false);\r\n !firstTime && callback(searchN);\r\n }, [searchN])\r\n\r\n const onChange = (evt) => {\r\n if(evt.currentTarget.value == \"\"){\r\n setSearchN(\"\");\r\n setWithItems(false);\r\n setFirstTime(true)\r\n dispatch(setInventorySearch(''));\r\n $(\"HTML, BODY\").animate({\r\n scrollTop: 0\r\n });\r\n history.push({\r\n pathname: pathname,\r\n search: ''\r\n });\r\n }else{\r\n setSearchN(evt.currentTarget.value);\r\n }\r\n }\r\n\r\n const onBlurEvent = () => {\r\n setTimeout(() => {\r\n console.log(withItems)\r\n setWithItems(false);\r\n }, 1000);\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n goToNextTourModal(numTourModal + 1)}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default HeaderSearch;\r\n","import React from 'react';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\nimport { Col, Button } from 'reactstrap';\r\nimport { colors } from '../../config/constants';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { IoIosMenu } from 'react-icons/io';\r\n\r\nconst HeaderMenuButton = (props) => {\r\n const { clickMenu, show } = props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n};\r\n\r\nexport default HeaderMenuButton;","import React from 'react';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\n\r\nconst HeaderSubHeader = (props) => {\r\n const { subHeaders, show } = props;\r\n return (\r\n \r\n {subHeaders}\r\n \r\n );\r\n};\r\n\r\nexport default HeaderSubHeader;","import React from 'react';\r\nimport { Col } from 'reactstrap';\r\nimport './Header.scss';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\n\r\nconst HeaderLogo = (props) => {\r\n const { show, logo } = props;\r\n\r\n return (\r\n \r\n \r\n Company Logo\r\n \r\n \r\n );\r\n};\r\n\r\nexport default HeaderLogo;","import React from 'react';\r\nimport { Col } from 'reactstrap';\r\nimport './Header.scss';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\n\r\nconst HeaderTitle = (props) => {\r\n const { title, showTitle } = props;\r\n\r\n return (\r\n \r\n \r\n

{title}

\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default HeaderTitle;","import React from 'react';\r\nimport { Col, Button } from 'reactstrap';\r\nimport './Header.scss';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\n\r\nconst HeaderRightButton = ({button, icon, show}) => {\r\n const isArrayIcon = Array.isArray(icon);\r\n const isArrayButton = Array.isArray(button);\r\n\r\n const buttonArray = isArrayButton ? (button ? button : []) : (button ? [button] : []);\r\n const iconArray = isArrayIcon ? (icon ? icon : []) : ( icon ? [icon] : []);\r\n\r\n const buttonMap = buttonArray.map((b, i) =>\r\n \r\n \r\n \r\n );\r\n\r\n const iconMap = iconArray.map((Icon, i) =>\r\n \r\n {Icon}\r\n \r\n );\r\n\r\n return (\r\n \r\n {buttonMap}\r\n {iconMap}\r\n \r\n );\r\n};\r\n\r\nexport default HeaderRightButton;","import React from 'react';\r\nimport { Col, Button } from 'reactstrap';\r\nimport './Header.scss';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\n\r\nconst HeaderLeftButton = ({button, icon, show}) => {\r\n const isArrayIcon = Array.isArray(icon);\r\n const isArrayButton = Array.isArray(button);\r\n\r\n const buttonArray = isArrayButton ? (button ? button : []) : (button ? [button] : []);\r\n const iconArray = isArrayIcon ? (icon ? icon : []) : ( icon ? [icon] : []);\r\n\r\n const buttonMap = buttonArray.map((b, i) =>\r\n \r\n \r\n \r\n );\r\n\r\n const iconMap = iconArray.map((Icon, i) =>\r\n \r\n {Icon}\r\n \r\n );\r\n\r\n return (\r\n \r\n {buttonMap}\r\n {iconMap}\r\n \r\n );\r\n};\r\n\r\nexport default HeaderLeftButton;","import React from 'react';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\nimport { Col } from 'reactstrap';\r\nimport { colors } from '../../config/constants';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { FaChevronLeft } from 'react-icons/fa';\r\n\r\nconst HeaderBackButton = (props) => {\r\n const { show, clickBack } = props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Back
\r\n \r\n
\r\n
\r\n )\r\n};\r\n\r\nexport default HeaderBackButton;","import React, { useState, useEffect } from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\nimport { useHistory } from 'react-router-dom';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { saveHeaderIndexRevOrder, saveHeaderContent } from '../../reducers/header/headerActions';\r\nimport { isMobile } from 'react-device-detect';\r\nimport useGoto from '../GoTo/useGoTo';\r\n\r\nconst HeaderReviewOrder = (props) => {\r\n\r\n const { show } = props;\r\n const history = useHistory();\r\n const headerIndex = useSelector(({ header }) => header.index)\r\n const [indexStep, setIndexStep] = useState(headerIndex);\r\n const dispatch = useDispatch();\r\n const {placeOrder} = useGoto.useActions();\r\n\r\n const changeIndexStep = (step) => {\r\n if (step.indexStep == 1) {\r\n dispatch(saveHeaderIndexRevOrder(3));\r\n step.changeView();\r\n } else {\r\n dispatch(saveHeaderIndexRevOrder(step.indexStep));\r\n setIndexStep(step.indexStep);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n switch (history.location.pathname) {\r\n case '/checkout-ordering/savings':\r\n setIndexStep(2);\r\n break;\r\n case '/checkout-ordering/review-order':\r\n setIndexStep(3);\r\n break;\r\n case '/checkout-ordering/shipping-payment':\r\n setIndexStep(5);\r\n break;\r\n case '/checkout-ordering/final-review':\r\n setIndexStep(6);\r\n break;\r\n }\r\n }, [history.location.pathname]);\r\n\r\n const listSteps = [\r\n {\r\n indexStep: 1, name: 'PLACE ORDER', isDisabled: '', changeView: () => {\r\n placeOrder();\r\n }\r\n },\r\n { indexStep: 2, name: 'SAVINGS', isDisabled: 'disabled' },\r\n\r\n {\r\n indexStep: 3, name: 'REVIEW ORDER', isDisabled: '', changeView: () => {\r\n history.push('/checkout-ordering/review-order')\r\n }\r\n },\r\n\r\n // { indexStep: 4, name: 'SIGN IN', isDisabled: 'disabled' },\r\n\r\n {\r\n indexStep: 5, name: 'SHIPPING AND PAYMENT', isDisabled: 'inactive',\r\n changeView: () => {\r\n history.push('/checkout-ordering/shipping-payment')\r\n }\r\n },\r\n\r\n { indexStep: 6, name: 'FINAL REVIEW', isDisabled: 'inactive' },\r\n ]\r\n\r\n useEffect(() => {\r\n console.log(headerIndex)\r\n\r\n switch (headerIndex) {\r\n case 2:\r\n // history.push('/checkout-ordering/savings');\r\n setIndexStep(headerIndex);\r\n if (isMobile) {\r\n const headerProps = {\r\n showMenu: false,\r\n showLogo: false,\r\n showBack: true,\r\n showCart: true,\r\n showReviewOrder: false,\r\n title: 'Review Order',\r\n backFunct: () => {\r\n placeOrder();\r\n }\r\n };\r\n dispatch(saveHeaderContent(headerProps));\r\n }\r\n break;\r\n case 3:\r\n setIndexStep(headerIndex);\r\n break;\r\n case 5:\r\n history.push('/checkout-ordering/shipping-payment')\r\n setIndexStep(headerIndex);\r\n break;\r\n case 6:\r\n history.push('/checkout-ordering/final-review')\r\n setIndexStep(headerIndex);\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n }, [headerIndex])\r\n\r\n return (\r\n \r\n \r\n {listSteps.map(step => {\r\n return (\r\n { changeIndexStep(step) }}\r\n className={indexStep === step.indexStep ? 'active' : step.isDisabled}>\r\n
\r\n
\r\n

{step.name}

\r\n \r\n )\r\n })}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default HeaderReviewOrder\r\n","import { useEffect, useState } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { saveCartItems, saveLastModified, saveUnsyncedItems, saveCartCount, saveCartDistributor, saveOrderTotal, saveSavingOptions } from \"../../reducers/cart/cartActions\";\r\nimport { localStorageConst } from '../../config/constants';\r\nimport GoTo from '../../SharedComponents/GoTo/useGoTo';\r\nimport {showModal} from '../../reducers/modals/modalsActions';\r\nimport { getAll, findOneBase } from '../../local/CartLocal';\r\n\r\nconst useApi = () => {\r\n const dispatch = useDispatch();\r\n\r\n const setCartStructureOffline = (nCartItems) => {\r\n let totalQty = 0;\r\n let totalOrder = 0;\r\n nCartItems.forEach(cItem => {\r\n totalQty = totalQty + parseInt(cItem.caseQuantity);\r\n totalOrder = totalOrder + (parseFloat(cItem.caseQuantity) * parseFloat( cItem.price ));\r\n });\r\n return { totalQty, totalOrder };\r\n };\r\n\r\n const getCartItemsOffline = () => {\r\n getAll()\r\n .then((res) => { \r\n const { totalQty, totalOrder } = setCartStructureOffline(res);\r\n dispatch(saveCartItems(res));\r\n // console.log({res,totalQty, totalOrder})\r\n dispatch(saveCartCount(totalQty));\r\n dispatch(saveOrderTotal(totalOrder));\r\n localStorage.setItem(localStorageConst.keys.cartItems, JSON.stringify(res));\r\n return findOneBase();\r\n })\r\n .then((base) => {\r\n dispatch(saveLastModified(base.lastModified));\r\n localStorage.setItem(localStorageConst.keys.lastModifiedCart, base.lastModified);\r\n dispatch(saveUnsyncedItems(base.unsyncedItems));\r\n return;\r\n })\r\n .catch(error => {\r\n console.log(error)\r\n });\r\n };\r\n\r\n return { getCartItemsOffline };\r\n};\r\n\r\nconst useCartItems = () => {\r\n const { getCartItemsOffline } = useApi();\r\n const dispatch = useDispatch();\r\n const cartItems = useSelector(({ cart }) => cart.cartItems);\r\n const cartCount = useSelector(({ cart }) => cart.cartCount);\r\n const lastModified = useSelector(({ cart }) => cart.lastModified);\r\n const unsyncedItems = useSelector(({ cart }) => cart.unsyncedItems);\r\n\r\n return {\r\n cartItems, cartCount, lastModified, unsyncedItems, getCartItemsOffline\r\n };\r\n};\r\n\r\n\r\n\r\nexport default {\r\n useCartItems,\r\n};","import { useEffect, useState } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { localStorageConst } from '../../config/constants';\r\nimport GoTo from '../../SharedComponents/GoTo/useGoTo';\r\nimport {showModal} from '../../reducers/modals/modalsActions';\r\n\r\nimport useConnection from '../OfflineMode/useConnection';\r\nimport useShoppingCart from './useShoppingCart';\r\nimport useShoppingCartOffline from './useShoppingCartOffline';\r\n\r\n\r\nconst useCartItems = () => {\r\n\r\n const { getConnectionState } = useConnection.useMode();\r\n const { getCartItems } = useShoppingCart.useCartItems();\r\n const { getCartItemsOffline } = useShoppingCartOffline.useCartItems();\r\n\r\n const getCartItemsInterface = () => {\r\n if(getConnectionState()){\r\n getCartItems();\r\n }else{\r\n getCartItemsOffline();\r\n }\r\n };\r\n\r\n return { getCartItemsInterface }\r\n\r\n};\r\n\r\nexport default {\r\n useCartItems\r\n};","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport useHeader from './useHeader';\r\nimport { Row, Container } from 'reactstrap';\r\nimport HeaderCart from './HeaderCart';\r\nimport HeaderSearch from './HeaderSearch';\r\nimport HeaderMenuButton from './HeaderMenuButton';\r\nimport HeaderSubHeader from './HeaderSubHeader';\r\nimport { mobileClassName } from '../../config/constants';\r\nimport HeaderLogo from './HeaderLogo';\r\nimport { useSelector } from 'react-redux';\r\nimport { isMobile } from 'react-device-detect';\r\nimport HeaderTitle from './HeaderTitle';\r\nimport HeaderRightButton from './HeaderRightButton';\r\nimport HeaderLeftButton from './HeaderLeftButton';\r\nimport HeaderBackButton from './HeaderBackButton';\r\nimport * as $ from 'jquery';\r\nimport HeaderReviewOrder from './HeaderReviewOrder';\r\nimport useShoppingCart from '../ShoppingCart/useShoppingCart';\r\nimport useShoppingCartInterface from '../ShoppingCart/useShoppingCartInterface';\r\n\r\nconst Header = (props) => {\r\n // useShoppingCart.useCartItems();\r\n useShoppingCartInterface.useCartItems();\r\n const [height, setHeight] = useState(0);\r\n const isSidebarOpen = useSelector(({ userInterface }) => userInterface.isSidebarOpen);\r\n const orderTotal = useSelector(({ cart }) => cart.orderTotal);\r\n const onHandTotal = useSelector(({ items }) => items.inventory.onHandTotal);\r\n const {\r\n showLogo, showSearchbar, showCart, children, showSearchFilters,\r\n title, rightButton, showMenu, showBack, showReviewOrder, backFunct,\r\n showTitle, leftButton\r\n } = props;\r\n\r\n // const logo = useSelector(state => state.company.logo);\r\n const activeLocation = useSelector(({ user }) => user.activeLocation);\r\n const companyLogoUrl = activeLocation && activeLocation.company && activeLocation.company.logo_url;\r\n const {\r\n clickMenu, enterSearch, clearSearch,\r\n setSearch, search, clickBack\r\n } = useHeader.useActions();\r\n\r\n const searchProps = {\r\n show: showSearchbar, setSearch,\r\n search, clearSearch, enterSearch,\r\n showFilters: showSearchFilters\r\n };\r\n\r\n useEffect(() => {\r\n const h = $('.header-container').height();\r\n setHeight(h);\r\n }, [children, orderTotal, onHandTotal]);\r\n\r\n return (\r\n
\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst buttonShape = PropTypes.shape({\r\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n});\r\n\r\nconst rightButtonShape = PropTypes.shape({\r\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element)]),\r\n button: PropTypes.oneOfType([buttonShape, PropTypes.arrayOf(buttonShape)])\r\n});\r\nconst leftButtonShape = PropTypes.shape({\r\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element)]),\r\n button: PropTypes.oneOfType([buttonShape, PropTypes.arrayOf(buttonShape)])\r\n});\r\n\r\nHeader.propTypes = {\r\n showLogo: PropTypes.bool,\r\n showMenu: PropTypes.bool,\r\n showBack: PropTypes.bool,\r\n showSearchbar: PropTypes.bool,\r\n showSearchFilters: PropTypes.bool,\r\n showCart: PropTypes.bool,\r\n title: PropTypes.string,\r\n leftButton: leftButtonShape,\r\n rightButton: rightButtonShape\r\n};\r\n\r\nHeader.defaultProps = {\r\n showLogo: isMobile ? false : true,\r\n showSearchbar: false,\r\n showMenu: true,\r\n showBack: false,\r\n showSearchFilters: true,\r\n showCart: true,\r\n title: null,\r\n leftButton: null,\r\n rightButton: null\r\n};\r\n\r\nexport default Header;","import React, { Fragment } from 'react';\r\nimport { Col, Tooltip } from 'reactstrap';\r\nimport useInput from '../SharedEffects/useInput';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\n\r\nconst Bookmark = ({elemId, img, label}) => {\r\n const tooltip = useInput.useCheckbox(false);\r\n return (\r\n \r\n \r\n {label}\r\n \r\n \r\n \r\n {label}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Bookmark","import React from 'react';\r\nimport bookmarkImg from '../../assets/images/bookmark-red.png';\r\nimport Bookmark from './Bookmark';\r\n\r\nconst OrderGuideBookmark = ({elemId}) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default OrderGuideBookmark","import React from \"react\";\r\nimport { Row, Col } from \"reactstrap\";\r\nimport \"./ListGroup.scss\";\r\n\r\nconst ListGroup = (props) => {\r\n return (\r\n
\r\n \r\n {props.title}\r\n \r\n
{props.children}
\r\n
\r\n );\r\n};\r\n\r\nexport default ListGroup;\r\n","import React from \"react\";\r\nimport { Row, Col } from \"reactstrap\";\r\n\r\nconst ListGroupItem = (props) => {\r\n const { className } = props;\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nexport default ListGroupItem;\r\n","import React from \"react\";\r\nimport { Row, Col } from \"reactstrap\";\r\nimport numeral from \"numeral\";\r\nimport OrderGuideBookmark from \"../../../../../SharedComponents/Bookmark/OrderGuideBookmark\";\r\nimport ListGroup from \"../../../../../SharedComponents/ListGroup/ListGroup\";\r\nimport ListGroupItem from \"../../../../../SharedComponents/ListGroup/ListGroupItem\";\r\nimport noImage from \"../../../../../assets/images/no-image.png\";\r\nimport ShowIf from \"../../../../../SharedComponents/ShowIf/ShowIf\";\r\n\r\nconst ItemsPurchased = (props) => {\r\n const { items } = props;\r\n\r\n return (\r\n \r\n {items.map((item) => {\r\n const itemImage = item.brandImage || item.imageUrl || noImage;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.description\r\n \r\n\r\n \r\n \r\n {item.description || item.name}\r\n \r\n \r\n \r\n {item.brand && item.brand.trim() ? item.brand.trim() : \"-\"}\r\n \r\n \r\n {item.distributor}\r\n \r\n \r\n \r\n \r\n {numeral(item.purchasedPrice).format(\"$0,0.00\") +\r\n \" \" +\r\n item.unitMeasure}\r\n \r\n \r\n {item.packSize}\r\n \r\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 ItemsPurchased;\r\n","import { delay as baseDelay} from '../../config/constants';\r\nimport { useRef } from 'react';\r\n\r\nconst useTap = (onClick) => {\r\n // Ensure touches occur rapidly\r\n const delay = baseDelay.tap;\r\n // Sequential touches must be in close vicinity\r\n // const minZoomTouchDelta = baseDelay.touchDelta;\r\n\r\n // Track state of the last touch\r\n const lastTapAt = useRef(0);\r\n // let lastClientX = 0\r\n // let lastClientY = 0\r\n\r\n const preventDoubleTapZoom = (event) => {\r\n event.preventDefault();\r\n // Exit early if this involves more than one finger (e.g. pinch to zoom)\r\n if (event.touches.length > 1) {\r\n return\r\n }\r\n\r\n const tapAt = new Date().getTime();\r\n const timeDiff = tapAt - lastTapAt.current;\r\n // const { clientX, clientY } = event.touches[0]\r\n // const xDiff = Math.abs(lastClientX - clientX)\r\n // const yDiff = Math.abs(lastClientY - clientY)\r\n if ( timeDiff < delay || timeDiff > 5000) {\r\n // Trigger a fake click for the tap we just prevented\r\n // event.target.click()\r\n onClick();\r\n }\r\n // lastClientX = clientX\r\n // lastClientY = clientY\r\n lastTapAt.current = tapAt;\r\n };\r\n\r\n return {preventDoubleTapZoom}\r\n};\r\n\r\nconst useMove = () => { \r\n\r\n window.addEventListener('touchmove', function(event) {\r\n event = event.originalEvent || event;\r\n if(event.scale > 1) {\r\n event.preventDefault();\r\n }\r\n }, {passive: false});\r\n\r\n \r\n};\r\n\r\nexport default {\r\n useTap, useMove\r\n};","import React from 'react';\r\nimport { MdRemove } from 'react-icons/md';\r\nimport { colors } from '../../config/constants';\r\nimport { Button } from 'reactstrap';\r\nimport useTouch from '../SharedEffects/useTouch';\r\nimport { isMobile } from 'react-device-detect';\r\n\r\nconst MinusButton = ({large, isActive, onClick, isBlue, square, disabled, ...props}) => {\r\n const {preventDoubleTapZoom} = useTouch.useTap(onClick);\r\n \r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default MinusButton;","import React from 'react';\r\nimport { MdAdd } from 'react-icons/md';\r\nimport { colors } from '../../config/constants';\r\nimport { Button } from 'reactstrap';\r\nimport useTouch from '../SharedEffects/useTouch';\r\nimport { isMobile } from 'react-device-detect';\r\n\r\nconst PlusButton = ({large, isActive, onClick, isBlue, square, disabled, ...props}) => {\r\n // const {preventDoubleTapZoom} = useTouch.useTap(onClick);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default PlusButton;","import React from 'react';\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Row, Col, Button } from 'reactstrap';\r\nimport notAvailable from '../../../assets/images/not-available.png';\r\nimport useModal from '../useModal';\r\nimport { MdClose } from 'react-icons/md';\r\nimport { colors } from '../../../config/constants';\r\n\r\nconst ItemUnavailableModal = (props) => {\r\n const { id } = props;\r\n const modalprops = useModal(id);\r\n\r\n const onClickOk = () => { \r\n modalprops.toggle();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Out of Stock!!! \r\n \r\n {modalprops.toggle()}}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n unavailable item\r\n \r\n \r\n Oops...\r\n \r\n \r\n This item is not in Stock.\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ItemUnavailableModal;","import React, { useEffect } from 'react';\r\nimport { Modal, ModalBody, ModalFooter, Button, ModalHeader, Row } from 'reactstrap';\r\nimport useModal from '../useModal';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport './ConfirmationModal.scss'\r\nimport { FaCheckCircle } from 'react-icons/fa';\r\n\r\nconst ConfirmationModal = (props) => {\r\n const { id, header, message, onOk, getProps } = props;\r\n const modalprops = useModal(id);\r\n\r\n const onClickOk = () => {\r\n if (onOk) {\r\n onOk();\r\n };\r\n modalprops.toggle();\r\n };\r\n\r\n\r\n useEffect(() => {\r\n if (getProps)\r\n getProps(modalprops);\r\n }, [])\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n

{header}

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

\r\n {message}\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 ConfirmationModal;\r\n\r\n","import { useHistory } from \"react-router-dom\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { unitsOfMeasure } from '../../../../config/constants';\r\nimport distributorsApi from \"../../../../api/distributorsApi\";\r\nimport cartApi from \"../../../../api/cartApi\";\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { saveDistributorList } from \"../../../../reducers/distributors/distributorsActions\";\r\nimport { saveLastModified, saveCartCount, saveOrderTotal } from \"../../../../reducers/cart/cartActions\";\r\nimport { number } from 'mathjs';\r\nimport validate from \"validate.js\";\r\nimport useInput from \"../../../../SharedComponents/SharedEffects/useInput\";\r\nimport ConfirmationModal from '../../../../SharedComponents/Modals/ConfirmationModal/ConfirmationModal';\r\nimport { showModal } from '../../../../reducers/modals/modalsActions';\r\nimport useShoppingCartItem from '../../../../SharedComponents/ShoppingCartItem/useShoppingCartItem'\r\nimport { localStorageConst } from '../../../../config/constants';\r\n\r\nconst useDefaultInfo = (distributorsList, lastModified, item, setDistributor, setUnit) => {\r\n const dispatch = useDispatch();\r\n const [allDistributors, setAllDistributors] = useState([]);\r\n const [distributors, setDistributors] = useState([]);\r\n const [distributorSelected, setDistributorSelected] = useState([]);\r\n const [units, setUnits] = useState([]);\r\n const [unitSelected, setUnitSelected] = useState([]);\r\n\r\n const setDropdownData = (data) => {\r\n const nDistributors = data.map(d => {\r\n return {\r\n label: d.nickname,\r\n value: d.id\r\n }\r\n });\r\n setAllDistributors(nDistributors);\r\n setDistributors(nDistributors);\r\n \r\n const nUnits = unitsOfMeasure.map(u => {\r\n return {\r\n label: u.name,\r\n value: u.id\r\n }\r\n });\r\n setUnits(nUnits); \r\n };\r\n\r\n useEffect( () => {\r\n if(lastModified === ''){\r\n cartApi.get()\r\n .then((res) => {\r\n dispatch(saveLastModified(res.data.lastModified));\r\n }).catch((err) => {\r\n console.error('CartApi get error:', err);\r\n });\r\n }\r\n\r\n distributorsApi.get()\r\n .then((res) => {\r\n dispatch(saveDistributorList(res.data)); \r\n setDropdownData(res.data);\r\n }).catch((err) => {\r\n console.error('DistritburorsApi List error:', err);\r\n });\r\n\r\n }, []);\r\n\r\n useEffect(() => { \r\n if(item){\r\n const uniSel = item.unitMeasure;\r\n const nUnit = units.filter(u => (u.value.toLowerCase().indexOf(uniSel.toLowerCase()) !== -1));\r\n if(nUnit.length===1){\r\n setUnitSelected(nUnit[0]);\r\n setUnit(nUnit[0]);\r\n }else{\r\n setUnitSelected(null);\r\n setUnit(null);\r\n }\r\n }\r\n }, [units]);\r\n\r\n useEffect(() => {\r\n if(item){\r\n const distSel = item.distributor;\r\n const nDist = distributors.filter(d => (d.label.toLowerCase().indexOf(distSel.toLowerCase()) !== -1));\r\n if(nDist.length===1){\r\n setDistributorSelected(nDist[0]);\r\n setDistributor(nDist[0]);\r\n }else{\r\n setDistributorSelected(null);\r\n setDistributor(null);\r\n }\r\n }\r\n }, [distributors]);\r\n\r\n return {\r\n distributors, \r\n distributorSel: { value: distributorSelected, set: setDistributorSelected }, \r\n units, \r\n unitSel: { value: unitSelected, set: setUnitSelected }\r\n }\r\n};\r\n\r\nconst useFormInfo = ({modalProps}) => {\r\n const dispatch = useDispatch(); \r\n const history = useHistory();\r\n const cartItems = useSelector(({ cart }) => cart.cartItems);\r\n const lastModified = useSelector(({cart}) => cart.lastModified);\r\n const { updateItemsInCart } = useShoppingCartItem.useCartItemUpdate(cartItems);\r\n const [distributor, setDistributor] = useState(null);\r\n const [unit, setUnit] = useState(null);\r\n const { set : setQuantity, value: quantity } = useInput.useText('', {isNumber: true});\r\n const { set : setDescription, value: description } = useInput.useText();\r\n\r\n const valid = (value) =>{\r\n const re = /^[0-9\\b]+$/;\r\n if (value === '' || re.test(value)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n const submitDisabled = (e) => {\r\n const data = {\r\n distributor: distributor,\r\n unit:unit,\r\n quantity: quantity,\r\n description: description\r\n };\r\n const constrains = {\r\n distributor: {\r\n presence: true\r\n },\r\n unit: {\r\n presence: true\r\n },\r\n quantity: {\r\n presence: true, numericality: { greaterThan: 0}\r\n },\r\n description: {\r\n presence: {allowEmpty: false}, length: {minimum: 3}\r\n }\r\n }\r\n \r\n const result = validate(data, constrains);\r\n return result ? true : false;\r\n };\r\n\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n const onSubmit = async (e) => {\r\n e.preventDefault();\r\n\r\n const specialItem = {\r\n distributorId: distributor.value,\r\n packSize: null, \r\n uom: unit.value,\r\n description: description\r\n }\r\n\r\n const params = {\r\n itemList: [\r\n {\r\n index:1,\r\n quantity: quantity, \r\n description: description, \r\n specialItem : specialItem\r\n }\r\n ],\r\n lastModified: lastModified\r\n };\r\n \r\n let res = await cartApi.update(params);\r\n if (res.data) {\r\n dispatch(saveLastModified(res.data.lastModified));\r\n localStorage.setItem(localStorageConst.keys.lastModifiedCart, res.data.lastModified);\r\n updateItemsInCart(specialItem,quantity);\r\n setTimeout(() => {\r\n const props = {\r\n header: 'Confirmation',\r\n message: `Special Request Added! `,\r\n onOk: () => { (modalProps) ? modalProps.toggle(): goBack();}\r\n };\r\n dispatch(showModal(ConfirmationModal, props));\r\n }, 500);\r\n }\r\n };\r\n\r\n return {\r\n setDistributor, \r\n setUnit,\r\n setQuantity, quantity, valid,\r\n setDescription, description, \r\n submitDisabled, onSubmit\r\n };\r\n};\r\n\r\nexport default {\r\n useDefaultInfo, useFormInfo\r\n};","export const saveDistributorList = (list) => {\r\n return {\r\n type: 'SET_DISTRIBUTOR_LIST',\r\n payload: list\r\n }\r\n};\r\n\r\n","import React, { Fragment, useState, useEffect } from 'react';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport { Form, Input, Row, Col, Button, Label } from 'reactstrap';\r\nimport Select from 'react-select';\r\nimport { useSelector } from 'react-redux';\r\nimport useSpecialRequest from './useSpecialRequest';\r\n\r\n\r\nconst SpecialRequestForm = (props) => {\r\n const lastModified = useSelector(({cart}) => cart.lastModified);\r\n const distributorsList = useSelector(({distributors}) => distributors.list);\r\n const {item} = props; \r\n const {\r\n setDistributor,\r\n setUnit,\r\n setQuantity, quantity, valid,\r\n setDescription, description, \r\n submitDisabled, onSubmit, \r\n } = useSpecialRequest.useFormInfo(props);\r\n\r\n const { distributors, distributorSel, units, unitSel } = useSpecialRequest.useDefaultInfo(distributorsList, lastModified, item, setDistributor, setUnit);\r\n \r\n const qtyHandler = (e) =>{\r\n const val = e.target.value;\r\n if(!valid(val)){\r\n return;\r\n }\r\n setQuantity(val);\r\n };\r\n\r\n const distributorHandler = (e) =>{\r\n distributorSel.set(e);\r\n setDistributor(e);\r\n };\r\n\r\n const unitHandler = (e) =>{\r\n unitSel.set(e);\r\n setUnit(e);\r\n };\r\n\r\n useEffect(() => {\r\n setQuantity(1);\r\n if(item){\r\n setDescription(item.description);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 SpecialRequestForm;","import React,{useState, useEffect} from 'react';\r\nimport useModal from '../useModal';\r\nimport { Modal, ModalBody, ModalHeader } from 'reactstrap';\r\nimport { useDispatch } from 'react-redux';\r\nimport { modalMenuClassName } from '../../../config/constants';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\nimport SpecialRequestForm from '../../../Views/MainApp/Views/SpecialRequest/SpecialRequestForm';\r\n\r\nconst SpecialRequestModal = (props) => {\r\n const dispatch = useDispatch();\r\n const { id, menu, fullMenu, item } = props;\r\n const modalProps = useModal(id, menu, fullMenu);\r\n\r\n return (\r\n \r\n Add Special Request\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SpecialRequestModal;","import React from 'react';\r\nimport { Modal, ModalBody, ModalFooter, Row, Col, Button } from 'reactstrap';\r\nimport notAvailable from '../../../assets/images/not-available.png';\r\nimport useModal from '../useModal';\r\nimport './PunchedOutModal.scss';\r\nimport useGoTo from '../../GoTo/useGoTo';\r\nimport { MdClose } from 'react-icons/md';\r\nimport { colors } from '../../../config/constants';\r\nimport { useDispatch } from 'react-redux';\r\nimport { showModal } from \"../../../reducers/modals/modalsActions\";\r\nimport SpecialRequestModal from '../SpecialRequestModal/SpecialRequestModal';\r\nimport { isMobile } from 'react-device-detect';\r\n\r\nconst ItemUnavailableModal = (props) => {\r\n const { id, item } = props;\r\n const modalprops = useModal(id);\r\n const {addSpecialRequest} = useGoTo.useActions();\r\n const dispatch = useDispatch();\r\n\r\n const onClickOk = () => {\r\n // addSpecialRequest();\r\n const mprops = {\r\n item: item ? item : null,\r\n menu: isMobile ? true : false,\r\n fullMenu: isMobile ? true : false \r\n }\r\n dispatch(showModal(SpecialRequestModal, mprops));\r\n modalprops.toggle();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {modalprops.toggle()}}>\r\n \r\n \r\n \r\n \r\n punchedout item\r\n \r\n \r\n Sorry!\r\n \r\n \r\n Your distributor has removed an item in your order from your active order guide. You can find the item, as it will appear \"grayed out\". You cannot place your order with the grayed out item, but you can remove the grayed out item and request this item as a \"special request\".\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ItemUnavailableModal;","import { useState, useEffect, useCallback } from 'react';\r\nimport itemApi from '../../api/itemApi';\r\nimport cartApi from '../../api/cartApi';\r\nimport comparisonViewsApi from '../../api/comparisonViewsApi';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { saveCartItems, saveUnsyncedItems, saveLastModified, saveCartCount, saveAnimation, saveOrderTotal } from '../../reducers/cart/cartActions';\r\nimport { showModal } from '../../reducers/modals/modalsActions';\r\nimport ItemUnavailableModal from '../Modals/ItemUnavailableModal/ItemUnavailableModal';\r\nimport PunchedOutModal from '../Modals/PunchedOutModal/PunchedOutModal';\r\nimport { debounce } from 'lodash';\r\nimport { delay, itemCart } from '../../config/constants';\r\nimport useGoTo from '../GoTo/useGoTo';\r\nimport AlertModal from '../Modals/AlertModal/AlertModal';\r\nimport { cartAnimations, processStatus, localStorageConst } from '../../config/constants';\r\nimport useConnection from '../OfflineMode/useConnection';\r\n\r\n\r\nconst useDebounce = (callback, delay) => {\r\n const d = callback;\r\n const callbackfunc = useCallback(debounce(d, delay), []);\r\n return [callbackfunc];\r\n};\r\n\r\nconst useCartUpdate = (setCartAmount, groupTotalProps) => {\r\n\r\n const dispatch = useDispatch();\r\n const { reviewOrder } = useGoTo.useActions();\r\n const { validate } = useCartValidate();\r\n\r\n const cartCount = useSelector(({ cart }) => cart.cartCount);\r\n const [prevCartCount, setPrevCartCount] = useState(cartCount);\r\n\r\n const [updating, setUpdating] = useState(processStatus.start);\r\n const [operation, setOperation] = useState('');\r\n const [differ, setDiffer] = useState(0);\r\n const [prevCartAmount, setPrevCartAmount] = useState(0);\r\n\r\n const [uItem, setUItem] = useState(null);\r\n const [uParentItem, setUParentItem] = useState(null);\r\n const [uNewCartAmount, setUNewCartAmount] = useState(0);\r\n const [uSameModifiedItems, setUSameModifiedItems] = useState(null);\r\n\r\n\r\n const cartItems = useSelector(({ cart }) => cart.cartItems);\r\n const { updateItemsInCart } = useCartItemUpdate(cartItems);\r\n\r\n const verifyUpdate = () => {\r\n let verify = false;\r\n const item = uItem; const parentItem = uParentItem; const newCartAmount = uNewCartAmount; const sameModifiedItems = uSameModifiedItems;\r\n if (!item) return verify;\r\n\r\n if (!item.itemDistributorId && !item.shoppingCartId) return verify;\r\n\r\n //Verify sameModifiedItems\r\n const alertModalprops = {\r\n title: 'Alert',\r\n message: 'It appears, someone was shopping in your account at the same time. Please review your cart to make sure your order is correct.',\r\n footerClass: 'justify-content-center',\r\n btnLabel: 'Continue',\r\n btnSize: 'lg',\r\n color: 'dark-blue',\r\n onOk: reviewOrder\r\n };\r\n if (sameModifiedItems.length > 0) {\r\n dispatch(showModal(AlertModal, alertModalprops));\r\n return;\r\n }\r\n\r\n //Verify updated Item\r\n // const nCartCount = operation === 'add' ? parseFloat(prevCartCount + differ) : parseFloat(prevCartCount - differ);\r\n // if (cartCount !== nCartCount) {\r\n // const caseQty = operation === 'add' ? newCartAmount - differ : newCartAmount + differ;\r\n // if (setCartAmount !== undefined && setCartAmount !== null) {\r\n // setCartAmount(caseQty);\r\n // dispatch(saveAnimation({ type: cartAnimations.type.cartUpdated, data: null }));\r\n // }\r\n // return;\r\n // }\r\n\r\n //Verify savings\r\n if (parentItem) {\r\n if (item.savings > 0) {\r\n if (operation === 'add') {\r\n dispatch(saveAnimation({ type: cartAnimations.type.savingItemAdded, data: null }));\r\n }\r\n }\r\n }\r\n\r\n //Verify rebates\r\n if (item.rebate !== null && item.rebate > 0) {\r\n if (operation === 'add') {\r\n const data = (parseFloat(newCartAmount) * parseFloat(item.rebate));\r\n dispatch(saveAnimation({ type: cartAnimations.type.rebatesEarned, data: data }));\r\n }\r\n }\r\n\r\n //Update Totals on Inventory view\r\n if (groupTotalProps) {\r\n const { setTotalGroupSpent, comparisonViewId, id } = groupTotalProps;\r\n comparisonViewsApi.getGroupTotals(comparisonViewId, id).then((res) => {\r\n setTotalGroupSpent(res.data.purchased);\r\n }).catch(err => console.error(err));\r\n }\r\n\r\n updateItemsInCart(item, newCartAmount);\r\n };\r\n\r\n const getPreviousValue = (item) => {\r\n const pCartItems = cartItems;\r\n let preValue = 0;\r\n if (!!item.itemDistributorId) {\r\n preValue = pCartItems.filter(pci => pci.itemDistributorId === item.itemDistributorId)[0];\r\n }\r\n if (!!item.shoppingCartId) {\r\n preValue = pCartItems.filter(pci => pci.shoppingCartId === item.shoppingCartId)[0];\r\n }\r\n\r\n return preValue;\r\n };\r\n\r\n const update = (newCartAmount, oldCartAmount, item, parentItem, setCartAmount) => {\r\n\r\n const prevCartAmt = getPreviousValue(item);\r\n setPrevCartAmount(prevCartAmt);\r\n setOperation(newCartAmount > prevCartAmount ? 'add' : 'sub');\r\n setUpdating(processStatus.processing);\r\n\r\n let itemList = []; let params = [];\r\n const nLastModified = localStorage.getItem(localStorageConst.keys.lastModifiedCart);\r\n\r\n if (item.itemDistributorId !== null) {\r\n let nitemList = {\r\n ...item.itemDistributorId ?\r\n { itemDistributorId: item.itemDistributorId }\r\n : { shoppingCartId: item.shoppingCartId },\r\n quantity: parseInt(newCartAmount),\r\n description: item.name ? item.name : item.description\r\n };\r\n itemList.push(nitemList);\r\n\r\n if (parentItem !== undefined && parentItem !== null) {\r\n const swapParams = {\r\n match_id: item.matchId,\r\n current_item_id: item.itemDistributorId,\r\n new_item_id: parentItem.itemDistributorId\r\n };\r\n\r\n // itemApi.swapAccept(swapParams).then(res => {\r\n let newItemList = itemList.map((iteml) => {\r\n // return { ...iteml, swapAcceptId: res.data.id, caseSavings: item.caseSavings };\r\n return { ...iteml };\r\n });\r\n\r\n params = {\r\n itemList: newItemList,\r\n lastModified: nLastModified\r\n };\r\n\r\n cartApi.update(params).then(res => {\r\n\r\n setDiffer(prevCartAmt > newCartAmount ? prevCartAmt - newCartAmount : newCartAmount - prevCartAmt);\r\n // setDiffer(prevCartCount > parseFloat(res.data.count) ? prevCartCount - parseFloat(res.data.count) : parseFloat(res.data.count) - prevCartCount);\r\n dispatch(saveLastModified(res.data.lastModified));\r\n localStorage.setItem(localStorageConst.keys.lastModifiedCart, res.data.lastModified);\r\n setUSameModifiedItems(res.data.sameModifiedItems);\r\n setUpdating(processStatus.end);\r\n\r\n if (newCartAmount === 0) setCartAmount(newCartAmount);\r\n\r\n }).catch(error => { console.log(error) });\r\n\r\n // }).catch(error => { console.log(error) });\r\n\r\n } else {\r\n\r\n params = {\r\n itemList: itemList,\r\n lastModified: nLastModified\r\n };\r\n\r\n cartApi.update(params).then(res => {\r\n\r\n\r\n setDiffer(prevCartAmt > newCartAmount ? prevCartAmt - newCartAmount : newCartAmount - prevCartAmt);\r\n // setDiffer(prevCartCount > parseFloat(res.data.count) ? prevCartCount - parseFloat(res.data.count) : parseFloat(res.data.count) - prevCartCount);\r\n dispatch(saveLastModified(res.data.lastModified));\r\n localStorage.setItem(localStorageConst.keys.lastModifiedCart, res.data.lastModified);\r\n setUSameModifiedItems(res.data.sameModifiedItems);\r\n setUpdating(processStatus.end);\r\n\r\n if (newCartAmount === 0) setCartAmount(newCartAmount);\r\n\r\n\r\n }).catch(error => { console.log(error) });\r\n }\r\n\r\n }\r\n };\r\n\r\n const updateGroup = async (newCartAmount, oldCartAmount, item, parentItem, setCartAmount) => {\r\n\r\n const prevCartAmt = getPreviousValue(item);\r\n setPrevCartAmount(prevCartAmt);\r\n setOperation(newCartAmount > prevCartAmount ? 'add' : 'sub');\r\n setUpdating(processStatus.processing);\r\n\r\n let itemList = []; let params = [];\r\n const nLastModified = localStorage.getItem(localStorageConst.keys.lastModifiedCart);\r\n\r\n if (item.itemDistributorId !== null) {\r\n let nitemList = {\r\n ...item.itemDistributorId ?\r\n { itemDistributorId: item.itemDistributorId }\r\n : { shoppingCartId: item.shoppingCartId },\r\n quantity: parseInt(newCartAmount),\r\n description: item.name ? item.name : item.description\r\n };\r\n itemList.push(nitemList);\r\n\r\n params = {\r\n itemList: itemList,\r\n lastModified: nLastModified\r\n };\r\n return cartApi.update(params);\r\n\r\n }\r\n };\r\n const [callback] = useDebounce(update, delay.cart);\r\n\r\n\r\n const updateCartAmount = (newCartAmount, item, setCartAmount, cartAmount, parentItem) => {\r\n setUItem(item);\r\n setUParentItem(parentItem);\r\n setUNewCartAmount(newCartAmount);\r\n\r\n if (!validate(item, newCartAmount)) {\r\n return;\r\n }\r\n\r\n if (newCartAmount === '') {\r\n setCartAmount(newCartAmount);\r\n return;\r\n }\r\n\r\n if (setCartAmount && newCartAmount != 0) {\r\n setCartAmount(newCartAmount);\r\n }\r\n\r\n callback(newCartAmount, cartAmount, item, parentItem, setCartAmount);\r\n\r\n };\r\n\r\n const updateCartAmountGroup = async (newCartAmount, item, setCartAmount, cartAmount, parentItem) => {\r\n setUItem(item);\r\n setUParentItem(parentItem);\r\n setUNewCartAmount(newCartAmount);\r\n\r\n if (!validate(item, newCartAmount)) {\r\n return;\r\n }\r\n\r\n if (newCartAmount === '') {\r\n setCartAmount(newCartAmount);\r\n return;\r\n }\r\n\r\n if (setCartAmount && newCartAmount != 0) {\r\n setCartAmount(newCartAmount);\r\n }\r\n\r\n return updateGroup(newCartAmount, cartAmount, item, parentItem, setCartAmount);\r\n\r\n };\r\n\r\n useEffect(() => {\r\n if (updating === processStatus.end) {\r\n verifyUpdate();\r\n }\r\n }, [updating]);\r\n\r\n return { updateCartAmount, updateCartAmountGroup };\r\n};\r\n\r\nconst useCartValidate = () => {\r\n\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const validate = (item, value) => {\r\n\r\n if (!!item.isUnpurchasable && item.isUnpurchasable === 1) {\r\n const props = {\r\n title: 'Call-In Item',\r\n message: 'This item is not available for purchase.',\r\n footerClass: 'justify-content-center',\r\n btnLabel: 'Ok',\r\n btnSize: 'lg',\r\n color: 'green'\r\n };\r\n dispatch(showModal(AlertModal, props));\r\n return false;\r\n }\r\n\r\n if (!!item.status && item.status !== 'active') {\r\n dispatch(showModal(ItemUnavailableModal));\r\n return false;\r\n }\r\n\r\n if (!!item.isPunchedOut && item.isPunchedOut === 1) {\r\n if (history.location.pathname !== '/checkout-ordering/review-order') {\r\n const mprops = {\r\n item: item\r\n }\r\n dispatch(showModal(PunchedOutModal, mprops));\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const valid = (value) => {\r\n const re = /^[0-9\\b]+$/;\r\n if (value === '' || value === 0 || re.test(value)) {\r\n return true;\r\n }\r\n if (value < 0) {\r\n return false;\r\n }\r\n return false;\r\n };\r\n\r\n return { validate, valid };\r\n\r\n};\r\n\r\nconst useCartItemMerge = (item) => {\r\n const cartItems = useSelector(({ cart }) => cart.cartItems);\r\n const [caseQuantity, setCaseQuantity] = useState(0);\r\n\r\n const mergeItemWithCart = () => {\r\n cartItems.map((ci) => {\r\n if (!!ci.itemDistributorId) {\r\n if (item.itemDistributorId === ci.itemDistributorId) {\r\n setCaseQuantity(ci.caseQuantity);\r\n }\r\n }\r\n }); \r\n };\r\n\r\n useEffect(() => {\r\n mergeItemWithCart()\r\n }, []);\r\n\r\n return {\r\n caseQuantity, setCaseQuantity\r\n };\r\n};\r\n\r\nconst useCartItemUpdate = (prevCartItems) => {\r\n const dispatch = useDispatch();\r\n let newCartItems = prevCartItems;\r\n\r\n const updateItemsInCart = (item, newCartAmount) => {\r\n let itemFound = false;\r\n let totalQty = 0;\r\n let totalOrder = 0;\r\n let index = null;\r\n\r\n newCartItems.map((ci, i) => {\r\n if (ci.isSpecialItem) {\r\n if (item.shoppingCartId === ci.shoppingCartId) {\r\n itemFound = true;\r\n ci.caseQuantity = newCartAmount;\r\n if (newCartAmount === 0) { index = i; }\r\n }\r\n } else {\r\n if (item.itemDistributorId === ci.itemDistributorId) {\r\n itemFound = true;\r\n ci.caseQuantity = newCartAmount;\r\n if (newCartAmount === 0) { index = i; }\r\n }\r\n }\r\n totalQty = totalQty + parseInt(ci.caseQuantity);\r\n totalOrder = totalOrder + (parseFloat(ci.caseQuantity) * parseFloat(ci.price));\r\n });\r\n\r\n if (!itemFound) {\r\n const newItem = (!item.itemDistributorId) ? {\r\n caseQuantity: parseFloat(newCartAmount),\r\n price: 0,\r\n id: Math.random(),\r\n distributorId: parseInt(item.distributorId),\r\n din: null,\r\n packSize: null,\r\n // unitMeasure: item.uom,\r\n unit: item.uom,\r\n description: item.description,\r\n searchText: undefined,\r\n rebate: undefined,\r\n swapAcceptId: undefined,\r\n isSpecialItem: true,\r\n distributor: null,\r\n shoppingCartId: null,\r\n isMarketPrice: 0,\r\n active: 0,\r\n caseSavings: undefined,\r\n belongsToGroup: 0\r\n } : {\r\n caseQuantity: parseFloat(newCartAmount),\r\n price: (item.isMarketPrice === 1 ? 0 : parseFloat(item.price)),\r\n itemDistributorId: item.itemDistributorId,\r\n brand: item.brand,\r\n brandImageUrl: item.brandImageUrl,\r\n imageUrl: item.imageUrl,\r\n name: item.name,\r\n packSize: item.packSize,\r\n status: item.status,\r\n type: item.type,\r\n unitPrice: item.unitPrice,\r\n distributorId: parseInt(item.distributorId),\r\n unitMeasure: item.unitMeasure,\r\n description: item.description,\r\n searchText: item.searchText,\r\n rebate: parseFloat(item.rebate),\r\n swapAcceptId: (item.swapAcceptId !== undefined && item.swapAcceptId !== null) ? item.swapAcceptId : null,\r\n isSpecialItem: false,\r\n distributor: item.distributor,\r\n shoppingCartId: null,\r\n isPriceOutdated: item.isPriceOutdated,\r\n isMarketPrice: item.isMarketPrice,\r\n active: item.active,\r\n din: item.din,\r\n isPunchedOut: item.isPunchedOut,\r\n belongsToGroup: item.belongsToGroup,\r\n // parLevel: item.parLevel,\r\n // onHand: item.onHand,\r\n isPartner: item.isPartner,\r\n isPurchased: item.isPurchased,\r\n lastPurchasedDate: item.lastPurchasedDate,\r\n lastPurchasedQty: item.lastPurchasedQty,\r\n savings: (item.swapAcceptId !== null && item.savings !== null) ? parseFloat(item.savings) : null\r\n };\r\n newCartItems.push(newItem);\r\n totalQty = totalQty + parseInt(newItem.caseQuantity);\r\n totalOrder = totalOrder + (parseFloat(newItem.caseQuantity) * parseFloat(newItem.price));\r\n }\r\n\r\n if (newCartAmount === 0 && index !== null) {\r\n newCartItems.splice(index, 1);\r\n }\r\n\r\n dispatch(saveCartItems(newCartItems));\r\n localStorage.setItem(localStorageConst.keys.cartItems, JSON.stringify(newCartItems));\r\n dispatch(saveCartCount(totalQty));\r\n dispatch(saveOrderTotal(totalOrder));\r\n };\r\n\r\n return {\r\n updateItemsInCart\r\n };\r\n};\r\n\r\nconst useOverlay = () => {\r\n const [overlay, setOverlay] = useState(false);\r\n\r\n return { overlay, setOverlay }\r\n};\r\n\r\n\r\nexport default {\r\n useDebounce, useCartUpdate, useCartValidate, useCartItemMerge, useCartItemUpdate, useOverlay\r\n};\r\n","import { useState, useEffect, useCallback } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { showModal } from '../../reducers/modals/modalsActions';\r\nimport ItemUnavailableModal from '../Modals/ItemUnavailableModal/ItemUnavailableModal';\r\nimport PunchedOutModal from '../Modals/PunchedOutModal/PunchedOutModal';\r\nimport { debounce } from 'lodash';\r\nimport { delay, itemCart } from '../../config/constants';\r\nimport { cartAnimations, processStatus, localStorageConst } from '../../config/constants';\r\n\r\nimport {getAll, findOne, insertOne, updateOne, findOneBase, updateBase} from '../../local/CartLocal';\r\nimport { saveCartItems, saveOrderTotal, saveUnsyncedItems, saveLastModified, saveCartCount, saveAnimation } from '../../reducers/cart/cartActions';\r\n\r\nconst useDebounce = (callback, delay) => {\r\n const d = callback;\r\n const callbackfunc = useCallback(debounce(d, delay), []);\r\n return [callbackfunc];\r\n};\r\n\r\nconst useCartUpdateOffline = (setCartAmount, groupTotalProps) => {\r\n\r\n const dispatch = useDispatch();\r\n const { validateOffline } = useCartValidateOffline();\r\n\r\n const cartCount = useSelector(({ cart }) => cart.cartCount);\r\n const [prevCartCount, setPrevCartCount] = useState(cartCount);\r\n\r\n const [updating, setUpdating] = useState(processStatus.start);\r\n const [operation, setOperation] = useState('');\r\n const [differ, setDiffer] = useState(0);\r\n const [prevCartAmount, setPrevCartAmount] = useState(0);\r\n\r\n const [uItem, setUItem] = useState(null);\r\n const [uParentItem, setUParentItem] = useState(null);\r\n const [uNewCartAmount, setUNewCartAmount] = useState(0);\r\n const [uSameModifiedItems, setUSameModifiedItems] = useState(null);\r\n\r\n\r\n const cartItems = useSelector(({ cart }) => cart.cartItems);\r\n const { updateItemsInCart } = useCartItemUpdate(cartItems);\r\n\r\n const verifyUpdate = () => {\r\n // let verify = false;\r\n let newCartCount = 0;\r\n const item = uItem; const parentItem = uParentItem; const newCartAmount = uNewCartAmount; const sameModifiedItems = uSameModifiedItems;\r\n\r\n getAll().then(cartItems => {\r\n cartItems.forEach(cItem => { newCartCount = newCartCount + parseFloat(cItem.caseQuantity);});\r\n const param = {cartCount : newCartCount};\r\n findOneBase().then(response => {\r\n updateBase(param, response[0].id).then(cartBase => {\r\n // dispatch(saveCartCount(newCartCount));\r\n updateItemsInCart(item, newCartAmount);\r\n })\r\n .catch(error => { console.log(`Error updating cartBase ${error}`); });\r\n })\r\n .catch(error => { console.log(`Error in get cartBase ${error}`); });\r\n })\r\n .catch(error => {\r\n console.log(`Error getting cart item ${error}`);\r\n });\r\n\r\n // const item = uItem; const parentItem = uParentItem; const newCartAmount = uNewCartAmount; const sameModifiedItems = uSameModifiedItems;\r\n // if (!item) return verify;\r\n\r\n // if (!item.itemDistributorId && !item.shoppingCartId) return verify;\r\n\r\n //Verify savings\r\n // if (parentItem) {\r\n // if (item.savings > 0) {\r\n // if (operation === 'add') {\r\n // dispatch(saveAnimation({ type: cartAnimations.type.savingItemAdded, data: null }));\r\n // }\r\n // }\r\n // }\r\n\r\n //Verify rebates\r\n // if (item.rebate !== null && item.rebate > 0) {\r\n // if (operation === 'add') {\r\n // const data = (parseFloat(newCartAmount) * parseFloat(item.rebate));\r\n // dispatch(saveAnimation({ type: cartAnimations.type.rebatesEarned, data: data }));\r\n // }\r\n // }\r\n\r\n //Update Totals on Inventory view\r\n // if (groupTotalProps) {\r\n // const { setTotalGroupSpent, comparisonViewId, id } = groupTotalProps;\r\n // comparisonViewsApi.getGroupTotals(comparisonViewId, id).then((res) => {\r\n // setTotalGroupSpent(res.data.purchased);\r\n // }).catch(err => console.error(err));\r\n // }\r\n };\r\n\r\n const update = (newCartAmount, oldCartAmount, item, parentItem, setCartAmount) => {\r\n\r\n setUpdating(processStatus.processing);\r\n\r\n let params = [];\r\n if(item.itemDistributorId !== null){\r\n findOne(item.itemDistributorId).then(response => {\r\n\r\n if(response.length > 0){ //Update\r\n params = {\r\n caseQuantity: newCartAmount,\r\n toUpdate: 1\r\n }\r\n updateOne(params, item.itemDistributorId).then(response => {\r\n setUpdating(processStatus.end);\r\n })\r\n .catch(error => {\r\n console.log(`Error updating cart item ${error}`);\r\n });\r\n }else{ //Insert\r\n params = {\r\n shoppingCartId: null,\r\n isSpecialItem: false,\r\n itemDistributorId: item.itemDistributorId,\r\n description: (item.name ? item.name : item.description),\r\n unit: null,\r\n uom: item.unitMeasure,\r\n packsize: item.packSize,\r\n price: item.price,\r\n caseQuantity: newCartAmount,\r\n toUpdate: 1\r\n }\r\n insertOne(params).then(response => {\r\n setUpdating(processStatus.end);\r\n })\r\n .catch(error => {\r\n console.log(`Error adding item to cart ${error}`);\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(`Error! ${error}`);\r\n });\r\n }\r\n };\r\n\r\n const [callback] = useDebounce(update, delay.cart);\r\n\r\n\r\n const updateCartAmountOffline = (newCartAmount, item, setCartAmount, cartAmount, parentItem) => {\r\n setUItem(item);\r\n setUParentItem(parentItem);\r\n setUNewCartAmount(newCartAmount);\r\n\r\n if (!validateOffline(item, newCartAmount)) {\r\n return;\r\n }\r\n\r\n if (newCartAmount === '') {\r\n setCartAmount(newCartAmount);\r\n return;\r\n }\r\n\r\n setCartAmount(newCartAmount);\r\n\r\n callback(newCartAmount, cartAmount, item, parentItem, setCartAmount);\r\n\r\n };\r\n\r\n\r\n useEffect(() => {\r\n if (updating === processStatus.end) {\r\n verifyUpdate();\r\n }\r\n }, [updating]);\r\n\r\n return { updateCartAmountOffline };\r\n};\r\n\r\nconst useCartValidateOffline = () => {\r\n\r\n const dispatch = useDispatch();\r\n\r\n const validateOffline = (item, value) => {\r\n\r\n if (!!item.isUnpurchasable && item.isUnpurchasable === 1) {\r\n return false;\r\n }\r\n\r\n if (!!item.status && item.status !== 'active') {\r\n dispatch(showModal(ItemUnavailableModal));\r\n return false;\r\n }\r\n\r\n if (!!item.isPunchedOut && item.isPunchedOut === 1) {\r\n //Punched out item\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n\r\n return { validateOffline };\r\n\r\n};\r\n\r\nconst useCartItemUpdate = (prevCartItems) => {\r\n const dispatch = useDispatch();\r\n let newCartItems = prevCartItems;\r\n\r\n const updateItemsInCart = (item, newCartAmount) => {\r\n let itemFound = false;\r\n let totalQty = 0;\r\n let totalOrder = 0;\r\n let index = null;\r\n\r\n newCartItems.map((ci, i) => {\r\n if (ci.isSpecialItem) {\r\n if (item.shoppingCartId === ci.shoppingCartId) {\r\n itemFound = true;\r\n ci.caseQuantity = newCartAmount;\r\n if (newCartAmount === 0) { index = i; }\r\n }\r\n } else {\r\n if (item.itemDistributorId === ci.itemDistributorId) {\r\n itemFound = true;\r\n ci.caseQuantity = newCartAmount;\r\n if (newCartAmount === 0) { index = i; }\r\n }\r\n }\r\n totalQty = totalQty + parseInt(ci.caseQuantity);\r\n totalOrder = totalOrder + (parseFloat(ci.caseQuantity) * parseFloat(ci.price));\r\n });\r\n\r\n if (!itemFound) {\r\n const newItem = (!item.itemDistributorId) ? {\r\n caseQuantity: parseFloat(newCartAmount),\r\n price: 0,\r\n id: Math.random(),\r\n distributorId: parseInt(item.distributorId),\r\n din: null,\r\n packSize: null,\r\n // unitMeasure: item.uom,\r\n unit: item.uom,\r\n description: item.description,\r\n searchText: undefined,\r\n rebate: undefined,\r\n swapAcceptId: undefined,\r\n isSpecialItem: true,\r\n distributor: null,\r\n shoppingCartId: null,\r\n isMarketPrice: 0,\r\n active: 0,\r\n caseSavings: undefined,\r\n belongsToGroup: 0\r\n } : {\r\n caseQuantity: parseFloat(newCartAmount),\r\n price: (item.isMarketPrice === 1 ? 0 : parseFloat(item.price)),\r\n itemDistributorId: item.itemDistributorId,\r\n brand: item.brand,\r\n brandImageUrl: item.brandImageUrl,\r\n imageUrl: item.imageUrl,\r\n name: item.name,\r\n packSize: item.packSize,\r\n status: item.status,\r\n type: item.type,\r\n unitPrice: item.unitPrice,\r\n distributorId: parseInt(item.distributorId),\r\n unitMeasure: item.unitMeasure,\r\n description: item.description,\r\n searchText: item.searchText,\r\n rebate: parseFloat(item.rebate),\r\n swapAcceptId: (item.swapAcceptId !== undefined && item.swapAcceptId !== null) ? item.swapAcceptId : null,\r\n isSpecialItem: false,\r\n distributor: item.distributor,\r\n shoppingCartId: null,\r\n isPriceOutdated: item.isPriceOutdated,\r\n isMarketPrice: item.isMarketPrice,\r\n active: item.active,\r\n din: item.din,\r\n isPunchedOut: item.isPunchedOut,\r\n belongsToGroup: item.belongsToGroup,\r\n // parLevel: item.parLevel,\r\n // onHand: item.onHand,\r\n isPartner: item.isPartner,\r\n isPurchased: item.isPurchased,\r\n lastPurchasedDate: item.lastPurchasedDate,\r\n lastPurchasedQty: item.lastPurchasedQty,\r\n savings: (item.swapAcceptId !== null && item.savings !== null) ? parseFloat(item.savings) : null\r\n };\r\n newCartItems.push(newItem);\r\n totalQty = totalQty + parseInt(newItem.caseQuantity);\r\n totalOrder = totalOrder + (parseFloat(newItem.caseQuantity) * parseFloat(newItem.price));\r\n }\r\n\r\n if (newCartAmount === 0 && index !== null) {\r\n newCartItems.splice(index, 1);\r\n }\r\n\r\n dispatch(saveCartItems(newCartItems));\r\n localStorage.setItem(localStorageConst.keys.cartItems, JSON.stringify(newCartItems));\r\n dispatch(saveCartCount(totalQty));\r\n dispatch(saveOrderTotal(totalOrder));\r\n };\r\n\r\n return {\r\n updateItemsInCart\r\n };\r\n};\r\n\r\nconst useCartItemMergeOffline = (item) => {\r\n const cartItems = useSelector(({ cart }) => cart.cartItems);\r\n const [caseQuantity, setCaseQuantity] = useState(0);\r\n\r\n const mergeItemWithCartOffline = () => {\r\n // console.log({cartItems})\r\n cartItems.map((ci) => {\r\n if (!!ci.itemDistributorId) {\r\n if (item.itemDistributorId === ci.itemDistributorId) {\r\n setCaseQuantity(ci.caseQuantity);\r\n }\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n mergeItemWithCartOffline()\r\n }, []);\r\n\r\n return {\r\n caseQuantity, setCaseQuantity\r\n };\r\n};\r\n\r\nexport default {\r\n useCartValidateOffline, useCartUpdateOffline, useCartItemMergeOffline\r\n};\r\n","import { useState, useEffect } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport useShoppingCartItem from './useShoppingCartItem';\r\nimport useShoppingCartItemOffline from './useShoppingCartItemOffline';\r\nimport { localStorageConst, placeOrderViews } from '../../config/constants';\r\nimport useConnection from '../OfflineMode/useConnection';\r\n\r\nconst useCartUpdate = (setCartAmount, groupTotalProps) => {\r\n const storeConnection = useSelector(({connection}) => connection.online);\r\n const { updateCartAmount } = useShoppingCartItem.useCartUpdate(setCartAmount, groupTotalProps);\r\n const { updateCartAmountOffline } = useShoppingCartItemOffline.useCartUpdateOffline(setCartAmount, groupTotalProps);\r\n\r\n const updateCart = (newCartAmount, item, setCartAmount, cartAmount, parentItem) => {\r\n const localConnection = JSON.parse(localStorage.getItem(localStorageConst.keys.connection));\r\n const currentConnection = (localConnection === undefined) ? storeConnection : localConnection;\r\n \r\n if (currentConnection){\r\n updateCartAmount(newCartAmount, item, setCartAmount, cartAmount, parentItem);\r\n }else{\r\n updateCartAmountOffline(newCartAmount, item, setCartAmount, cartAmount, parentItem);\r\n }\r\n };\r\n\r\n return { updateCart };\r\n\r\n};\r\n\r\nconst useInputConnection = () => {\r\n const [disabled, setDisabled] = useState(false);\r\n const connection = useSelector(({ connection }) => connection.online);\r\n\r\n const lists = useSelector(({ items }) => items.inventory.list);\r\n const listSelected = useSelector(({ items }) => items.inventory.listSelected);\r\n const selected = !!lists ? lists.filter(l => l.id === listSelected.id)[0] : null;\r\n\r\n useEffect(() => {\r\n if (!!selected) {\r\n setDisabled((connection && selected.onInventory) ? true : false);\r\n }\r\n }, [connection, lists, listSelected]);\r\n\r\n return { disabled, setDisabled }\r\n};\r\n\r\nexport default {\r\n useCartUpdate, useInputConnection\r\n};","import React from \"react\";\r\nimport { MdKeyboardArrowRight } from \"react-icons/md\";\r\nimport { colors } from \"../../config/constants\";\r\nimport { Button } from \"reactstrap\";\r\n\r\nconst NextButton = ({\r\n large,\r\n isActive,\r\n onClick,\r\n isBlue,\r\n square,\r\n disabled,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default NextButton;\r\n","import React, { useState } from \"react\";\r\nimport { Row, Col, Input } from \"reactstrap\";\r\nimport { isMobile } from \"react-device-detect\";\r\nimport numeral from \"numeral\";\r\nimport { itemCart } from \"../../../../../config/constants\";\r\nimport MinusButton from \"../../../../../SharedComponents/MinusButton/MinusButton\";\r\nimport PlusButton from \"../../../../../SharedComponents/PlusButton/PlusButton\";\r\nimport ShowIf from \"../../../../../SharedComponents/ShowIf/ShowIf\";\r\nimport useShoppingCartItem from \"../../../../../SharedComponents/ShoppingCartItem/useShoppingCartItem\";\r\nimport useShoppingCartItemInterface from \"../../../../../SharedComponents/ShoppingCartItem/useShoppingCartItemInterface\";\r\nimport noImage from \"../../../../../assets/images/no-image.png\";\r\nimport NextButton from \"../../../../../SharedComponents/NextButton/NextButton\";\r\n\r\nconst SavingSuggestion = (props) => {\r\n const { item, parentItem, groupTotalProps, useShoppingCartItemProps } = props;\r\n const itemImage = item.brandImageUrl || item.brandImage || item.imageUrl || noImage;\r\n const [isAddToCartOpen, setAddToCartOpen] = useState(false);\r\n const { caseQuantity, setCaseQuantity } =\r\n useShoppingCartItemProps || useShoppingCartItem.useCartItemMerge(item);\r\n const cartAmount = caseQuantity;\r\n const setCartAmount = setCaseQuantity;\r\n const { updateCart } = useShoppingCartItemInterface.useCartUpdate(\r\n setCartAmount,\r\n groupTotalProps\r\n );\r\n const { valid } = useShoppingCartItem.useCartValidate();\r\n const { disabled } = useShoppingCartItemInterface.useInputConnection();\r\n\r\n const handleKeypress = (e) => {\r\n if (e.charCode === 13) {\r\n updateCart(cartAmount, item, setCartAmount, cartAmount, parentItem);\r\n }\r\n };\r\n\r\n const cartAmountHandler = (e) => {\r\n if (!valid(e.target.value)) {\r\n return;\r\n }\r\n updateCart(e.target.value, item, setCartAmount, cartAmount, parentItem);\r\n };\r\n\r\n const cartAmountClick = (newCartAmount) => {\r\n if (!valid(newCartAmount)) {\r\n return;\r\n }\r\n updateCart(newCartAmount, item, setCartAmount, cartAmount, parentItem);\r\n };\r\n\r\n const minusImg = (\r\n {\r\n cartAmountClick(cartAmount - 1);\r\n }}\r\n isBlue\r\n isActive={cartAmount >= itemCart.min}\r\n disabled={disabled}\r\n />\r\n );\r\n\r\n const plusImg = (\r\n {\r\n cartAmountClick(cartAmount + 1);\r\n }}\r\n isBlue\r\n isActive={cartAmount >= itemCart.min && cartAmount <= itemCart.max}\r\n disabled={disabled}\r\n />\r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n Save {numeral(item.savings).format(\"$0,0.00\")} per\r\n {\" \" + item.unitMeasure}!\r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.description\r\n \r\n\r\n \r\n \r\n \r\n \r\n {item.description || item.name}\r\n \r\n \r\n \r\n {item.brand && item.brand.trim()\r\n ? item.brand.trim()\r\n : \"-\"}\r\n \r\n \r\n {item.distributor}\r\n \r\n \r\n \r\n \r\n {numeral(item.price).format(\"$0,0.00\") +\r\n \" \" +\r\n item.unitMeasure}\r\n \r\n \r\n {item.packSize}\r\n \r\n \r\n \r\n \r\n setAddToCartOpen(true)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* \r\n \r\n Estimated Yearly Savings: {numeral(item.yearlySavings).format(\"$0,0\")}\r\n \r\n */}\r\n\r\n \r\n
\r\n \r\n {minusImg}\r\n \r\n \r\n \r\n \r\n \r\n {item.unitMeasure}\r\n \r\n {plusImg}\r\n \r\n = itemCart.min && cartAmount <= itemCart.max\r\n }\r\n onClick={() => setAddToCartOpen(false)}\r\n />\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default SavingSuggestion;\r\n","import React from \"react\";\r\nimport ListGroup from \"../../../../../SharedComponents/ListGroup/ListGroup\";\r\nimport ListGroupItem from \"../../../../../SharedComponents/ListGroup/ListGroupItem\";\r\nimport SavingSuggestion from \"./SavingSuggestion\";\r\n\r\nconst SavingsSuggestions = (props) => {\r\n const { suggestions } = props;\r\n\r\n return (\r\n \r\n {suggestions.map((item) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nexport default SavingsSuggestions;\r\n","import { useState, useEffect } from \"react\";\r\nimport analyticsApi from \"../../../../../api/analyticsApi\";\r\n\r\nconst useApi = () => {\r\n const [items, setItems] = useState([]);\r\n const [page, setPage] = useState(1);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [canLoadMore, setCanLoadMore] = useState(true);\r\n\r\n const getLastPurchasedItems = (page = 1) => {\r\n setIsLoading(true);\r\n analyticsApi\r\n .getPurchasedItems(\r\n page,\r\n 3\r\n )\r\n .then((res) => {\r\n setItems(items.concat(res.data));\r\n setPage(page);\r\n setCanLoadMore(res._meta.totalCount > 0 && res._meta.currentPage < res._meta.pageCount);\r\n setIsLoading(false);\r\n })\r\n .catch((error) => console.log(error));\r\n };\r\n\r\n const nextPage = () => {\r\n setPage(page + 1);\r\n };\r\n\r\n useEffect(() => {\r\n getLastPurchasedItems(page);\r\n }, [page]);\r\n\r\n return {\r\n items,\r\n page,\r\n nextPage,\r\n isLoading,\r\n canLoadMore,\r\n getLastPurchasedItems,\r\n };\r\n};\r\n\r\nexport default { useApi };\r\n","import React, { useState, useEffect, useLayoutEffect } from 'react';\r\nimport { Container, Row, Col, Card, Label } from 'reactstrap';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useSelector } from 'react-redux';\r\nimport numeral from 'numeral';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { FaInfo } from 'react-icons/fa';\r\nimport moment from 'moment';\r\nimport DatePicker from 'react-datepicker';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport PurchasesGraphs from './PurchasesGraphs/PurchasesGraphs';\r\nimport ItemsList from './ItemsList/ItemsList';\r\nimport OrdersGraph from './OrdersGraph/OrdersGraph';\r\nimport OrdersList from './OrdersList/OrdersList';\r\nimport SavingsGraph from './SavingsGraph/SavingsGraph';\r\nimport ItemLookup from './ItemLookup/ItemLookup';\r\nimport Header from '../../../../SharedComponents/Header/Header';\r\nimport ShowIf from '../../../../SharedComponents/ShowIf/ShowIf';\r\nimport IconBadgeSolid from '../../../../SharedComponents/IconBadge/IconBadgeSolid';\r\nimport { colors } from '../../../../config/constants';\r\nimport noImage from '../../../../assets/images/no-image.png';\r\nimport analyticsApi from '../../../../api/analyticsApi';\r\nimport ItemsPurchased from './ItemsPurchased/ItemsPurchased';\r\nimport { FaArrowDown } from \"react-icons/fa\";\r\nimport './Analytics.scss';\r\nimport SavingsSuggestions from './SavingsSuggestions/SavingsSuggestions';\r\nimport useItemsPurchased from \"./ItemsPurchased/useItemsPurchased\";\r\n\r\nconst Analytics = () => {\r\n const [filterType, setFilterType] = useState('month');\r\n const [startDate, setStartDate] = useState(new Date());\r\n\r\n const [endDate, setEndDate] = useState(new Date());\r\n const [analyticsData, setAnalyticsData] = useState({\r\n total_purchases: { detail: [] },\r\n total_orders: { detail: { distributorData: [] } },\r\n total_savings: { detail: [] }\r\n });\r\n const [itemDistributorId, setItemDistributorId] = useState('default');\r\n const [listStatistics, setListStatistics] = useState(null);\r\n const [distributor, setDistributor] = useState(null);\r\n const [category, setCategory] = useState(null);\r\n const history = useHistory();\r\n\r\n const activeLocation = useSelector(({ user }) => user.activeLocation);\r\n\r\n const getHeaderText = () => {\r\n switch (history.location.pathname) {\r\n case '/analytics/total-purchases':\r\n return 'Total Purchases';\r\n case '/analytics/total-orders':\r\n return 'Total Orders';\r\n case '/analytics/total-savings':\r\n return 'Total Savings';\r\n default:\r\n return (activeLocation.nickname ? activeLocation.nickname : 'N/A') + ' Highlights';\r\n }\r\n }\r\n\r\n const isAnalytics = () => {\r\n return history.location.pathname == '/analytics';\r\n }\r\n\r\n const isTotalPurchases = () => {\r\n return history.location.pathname == '/analytics/total-purchases';\r\n }\r\n\r\n const isTotalOrders = () => {\r\n return history.location.pathname == '/analytics/total-orders';\r\n }\r\n\r\n const isTotalSavings = () => {\r\n return history.location.pathname == '/analytics/total-savings';\r\n }\r\n\r\n const goToAnalytics = () => {\r\n return history.push('/analytics');\r\n }\r\n\r\n const goToTotalPurchases = () => {\r\n return history.push('/analytics/total-purchases');\r\n }\r\n\r\n const goToTotalOrders = () => {\r\n return history.push('/analytics/total-orders');\r\n }\r\n\r\n const goToTotalSavings = () => {\r\n return history.push('/analytics/total-savings');\r\n }\r\n\r\n const _changePriceZero = (listSeries) => {\r\n if (listSeries) {\r\n var series_lenght = listSeries.length;\r\n for (let i = 0; i < series_lenght; i++) {\r\n if (listSeries[i] === 0 && i !== 0) {\r\n listSeries[i] = listSeries[i - 1];\r\n }\r\n }\r\n }\r\n }\r\n\r\n const getAnalytics = (filters) => {\r\n setDistributor(null);\r\n analyticsApi.getAnalytics(filters).then(({ data }) => {\r\n setAnalyticsData(data);\r\n }).catch(err => {\r\n console.error('getAnalytics get Error:', err);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n let filter = { filter_type: filterType };\r\n if (filterType == 'custom') {\r\n filter = { ...filter, start_date: moment(startDate).format('YYYY-MM-DD'), end_date: moment(endDate).format('YYYY-MM-DD') };\r\n }\r\n getAnalytics(filter);\r\n }, [filterType]);\r\n\r\n useEffect(() => {\r\n if (filterType == 'custom') {\r\n getAnalytics({\r\n filter_type: 'custom',\r\n start_date: moment(startDate).format('YYYY-MM-DD'),\r\n end_date: moment(endDate).format('YYYY-MM-DD')\r\n });\r\n }\r\n }, [startDate, endDate]);\r\n\r\n const companyNickName = '' + (activeLocation && activeLocation.company && activeLocation.company.nickname);\r\n const isFoodbam = !(companyNickName.toLowerCase() !== 'foodbam');\r\n const [items, setItems] = useState([]);\r\n const [page, setPage] = useState(1);\r\n const itemsPurchasedApi = useItemsPurchased.useApi();\r\n // const [moreItemsPurchased, setMoreItemsPurchased] = useState(itemsPurchasedApi.canLoadMore);\r\n const itemsPurchased = itemsPurchasedApi.items;\r\n const [savingsSuggestions, setSavingsSuggestions] = useState([]);\r\n const [showLoadMore, setShowLoadMore] = useState(false);\r\n\r\n // const getGreatestSavings = () => {\r\n // let itemDistributorIds = [];\r\n // let greatestSavingItems = [];\r\n // analyticsApi.getGreatestSavings(page).then((res) => {\r\n // setShowLoadMore(res.data._meta.pageCount > res.data._meta.currentPage);\r\n\r\n // const items = res.data.items;\r\n // for (let i = 0; i < items.length; i++) {\r\n // itemDistributorIds.push(items[i].currentItemDistId);\r\n // itemDistributorIds.push(items[i].newItemDistId);\r\n // }\r\n\r\n // analyticsApi.getSavingsItemPrice(itemDistributorIds).then((responseData) => {\r\n // for (let i = 0; i < items.length; i++) {\r\n // for (let j = 0; j < responseData.data.length; j++) {\r\n // if (items[i].currentItemDistId === responseData.data[j].itemDistributorId) {\r\n // items[i].currentItemPrice = responseData.data[j].price;\r\n // items[i].currentType = responseData.data[j].type;\r\n // }\r\n // else if (items[i].newItemDistId === responseData.data[j].itemDistributorId) {\r\n // items[i].newItemPrice = responseData.data[j].price;\r\n // }\r\n // items[i].showOverlayItem = false;\r\n // items[i].distributorId = items[i].newDistributorId;\r\n // items[i].Id = items[i].newId;\r\n // }\r\n // }\r\n // for (let k = 0; k < items.length; k++) {\r\n // greatestSavingItems.push(items[k]);\r\n // }\r\n // setItems(items.concat(greatestSavingItems));\r\n // });\r\n\r\n // }).catch(err => {\r\n // console.error('getAnalytics get getGreatestSavings:', err);\r\n // });\r\n // }\r\n\r\n // useEffect(() => {\r\n // getGreatestSavings();\r\n // }, [page]);\r\n\r\n // const getSavingSuggestions = () => {\r\n // const suggestions = analyticsApi.getSavingSuggestions(1);\r\n // setSavingsSuggestions(savingsSuggestions.concat(suggestions));\r\n // };\r\n\r\n return (\r\n\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n Analytics > {getHeaderText()}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {getHeaderText()}\r\n \r\n \r\n \r\n setFilterType('week')} title='WEEKLY'>WEEKLY\r\n setFilterType('month')} title='MONTHLY'>MONTHLY\r\n setFilterType('year')} title='YEARLY'>YEARLY\r\n setFilterType('custom')} title='CUSTOM'>CUSTOM\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n setStartDate(date)} />\r\n \r\n setEndDate(date)} />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {analyticsData && analyticsData.total_purchases && numeral(analyticsData.total_purchases.total).format('$0,0.00')}\r\n \r\n \r\n \r\n \r\n Total purchases\r\n \r\n \r\n This number is the total purchases made within the specified time period.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {analyticsData && analyticsData.total_orders && analyticsData.total_orders.total || 0}\r\n \r\n \r\n \r\n \r\n Total orders\r\n \r\n \r\n This number is the total orders made within the specified time period.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {analyticsData && analyticsData.total_savings && numeral(analyticsData.total_savings.total).format('$0,0.00')}\r\n \r\n \r\n \r\n \r\n Total savings\r\n \r\n \r\n This number is the total savings accumulated via comparison view, match swaps, rebates, and just general distributor price decreases caused by {activeLocation && activeLocation.company && activeLocation.company.nickname}{\"'\"}s price comparison. This amount is specific to the time period selected. \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n { setCategory(null); setDistributor(distributor); }} onCategoryClick={category => { setDistributor(null); setCategory(category); }} />\r\n \r\n\r\n \r\n setDistributor(distributor)} />\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Items You Have Purchased\r\n \r\n {companyNickName} Savings Suggestions\r\n \r\n \r\n \r\n \r\n  \r\n \r\n \r\n \r\n \r\n {\r\n items.map((item, index) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Order Guide\r\n \r\n \r\n \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.currentName}

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

{item.currentDescription}

\r\n
\r\n \r\n
\r\n \r\n {item.foodbamCustomDescription}\r\n \r\n \r\n {item.currentBrand || ''}\r\n {item.currentDistributor || ''}\r\n \r\n \r\n {numeral(item.currentItemPrice).format('$0,0.00')} {item.currentUnitMeasure}\r\n {item.currentPackSize || ''}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n  \r\n \r\n \r\n
\r\n
\r\n );\r\n })\r\n }\r\n \r\n\r\n \r\n \r\n {\r\n items.map((item, index) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n 0 && !item.showOverlayItem}>\r\n Save {numeral(item.caseSavings).format('$0,0.00')} per {item.currentUnit ? item.currentUnit : item.currentPackSizeUom}!\r\n \r\n \r\n \r\n \r\n \r\n \r\n \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.newName}

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

{item.newDescription}

\r\n
\r\n \r\n
\r\n \r\n {item.foodbamCustomDescription}\r\n \r\n \r\n {item.newBrand || ''}\r\n {item.newDistributor || ''}\r\n \r\n \r\n {numeral(item.newItemPrice).format('$0,0.00')} {item.newUnitMeasure}\r\n {item.newPackSize || ''}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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.caseQuantity}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n ESTIMATED YEARLY SAVINGS : {numeral(item.yearAvgSavings).format('$0,0.00')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n  \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n })\r\n }\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n setPage(page + 1)}>\r\n Load More  \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 \r\n \r\n \r\n {\r\n return {\r\n id: item.savingsItemDistributorId,\r\n savings: item.savingsSavings,\r\n merchantId: item.savingsMerchantId,\r\n itemId: item.savingsItemId,\r\n itemDistributorId: item.savingsItemDistributorId,\r\n name: item.savingsName,\r\n description: item.savingsDescription,\r\n unitMeasure: item.savingsUnitMeasure,\r\n brandImageUrl: item.savingsBrandImageUrl,\r\n brand: item.savingsBrand,\r\n distributorId: item.savingsDistributorId,\r\n distributor: item.savingsDistributor,\r\n price: item.savingsPrice,\r\n packSize: item.savingsPackSize\r\n };\r\n }) } className=\"no-border savings-suggestions \"/>\r\n \r\n \r\n \r\n { itemsPurchasedApi.nextPage(); } }>\r\n
\r\n Load More\r\n \r\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 Analytics;\r\n","import React from 'react';\r\nimport { Col } from 'reactstrap';\r\nimport { IoMdListBox } from 'react-icons/io';\r\nimport { colors } from '../../../config/constants';\r\nimport { IoMdSwap } from 'react-icons/io';\r\nimport { localStorageConst } from '../../../config/constants';\r\nimport { saveView } from '../../../reducers/items/itemsActions';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nconst SubHeaderPlaceOrderViewIcons = (props) => {\r\n const { view, history } = props;\r\n const dispatch = useDispatch();\r\n\r\n const goToView = (newView) => {\r\n if (newView !== view) {\r\n history.push(`/place-order/${newView}`);\r\n localStorage.setItem(localStorageConst.keys.view, newView);\r\n dispatch(saveView(newView));\r\n }\r\n };\r\n\r\n const goToInventory = () => {\r\n goToView('inventory');\r\n };\r\n\r\n const goToList = () => {\r\n goToView('list');\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SubHeaderPlaceOrderViewIcons;","import React from 'react';\r\nimport useModal from '../useModal';\r\nimport { Modal, ModalBody, ModalHeader, Col } from 'reactstrap';\r\nimport { modalMenuClassName, sortOptions, localStorageConst } from '../../../config/constants';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { setInventorySortBy, setInventoryOptionsRearrangeDisabled } from '../../../reducers/items/itemsActions';\r\n\r\nconst InventorySortByModal = (props) => {\r\n const { id } = props;\r\n const dispatch = useDispatch();\r\n const modalProps = useModal(id, true);\r\n const selected = useSelector(({items}) => items.inventory.sortBy);\r\n\r\n const selectSort = (sort) => {\r\n localStorage.setItem(localStorageConst.keys.inventorySortBySelected, JSON.stringify(sort));\r\n dispatch(setInventorySortBy(sort));\r\n dispatch(setInventoryOptionsRearrangeDisabled(sort));\r\n modalProps.toggle();\r\n };\r\n\r\n const optionsMap = sortOptions.inventoryView.map(o =>\r\n { selectSort(o) }} className={'item' + (o.label === selected.label ? ' bg-light' : '')} key={`sort_${o.value}`}>{o.label}\r\n );\r\n\r\n return (\r\n \r\n Sort By\r\n \r\n {optionsMap}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default InventorySortByModal;","import React, { Fragment } from 'react';\r\nimport { Col, Button } from 'reactstrap';\r\nimport Select from 'react-select';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { FaSortAmountDown } from 'react-icons/fa';\r\nimport { colors, sortOptions } from '../../../config/constants';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { setListSortBy, setInventorySortBy, setInventoryOptionsRearrangeDisabled } from '../../../reducers/items/itemsActions';\r\nimport { showModal } from '../../../reducers/modals/modalsActions';\r\nimport InventorySortByModal from '../../Modals/InventorySortByModal/InventorySortByModal';\r\nimport {localStorageConst} from '../../../config/constants';\r\n\r\n\r\nconst SubHeaderPlaceOrderSortBy = (props) => {\r\n const { view } = props;\r\n const dispatch = useDispatch();\r\n const inventorySort = useSelector(({items}) => items.inventory.sortBy);\r\n const listSortOptions = useSelector(({items}) => items.list.sortByOptions);\r\n const listSort = useSelector(({items}) => items.list.sortBy);\r\n const options = view === 'list' ? listSortOptions : sortOptions.inventoryView;\r\n const selected = view === 'list' ? listSort : inventorySort; \r\n\r\n // const displayOnDropdown = {\r\n // label: selected.value ,\r\n // value: selected.id\r\n // };\r\n // console.log(displayOnDropdown)\r\n\r\n const onSelectSort = (value) => {\r\n if (view === 'list') {\r\n dispatch(setListSortBy(value));\r\n } else {\r\n localStorage.setItem(localStorageConst.keys.inventorySortBySelected, JSON.stringify(value));\r\n dispatch(setInventorySortBy(value));\r\n dispatch(setInventoryOptionsRearrangeDisabled(value));\r\n }\r\n };\r\n\r\n const openMobileMenu = () => {\r\n dispatch(showModal(InventorySortByModal));\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n Sort By:\r\n \r\n \r\n \r\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 SubHeaderPlaceOrderSortBy;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Modal, ModalBody, ModalFooter, Row, Col, Button } from 'reactstrap';\r\nimport useModal from '../useModal';\r\nimport { modalMenuClassName } from '../../../config/constants';\r\n\r\nconst QuestionModal = (props) => {\r\n const { id, message, leftButton, rightButton, menu, buttonStyle, belowButtons } = props;\r\n const modalprops = useModal(id);\r\n\r\n const clickLeft = () => {\r\n if (leftButton.onClick) {\r\n leftButton.onClick()\r\n };\r\n modalprops.toggle();\r\n };\r\n\r\n const clickRight = () => {\r\n if (rightButton.onClick) {\r\n rightButton.onClick()\r\n };\r\n modalprops.toggle();\r\n };\r\n\r\n return (\r\n \r\n \r\n {message}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n belowButtons ?\r\n \r\n \r\n {belowButtons}\r\n \r\n \r\n : ''\r\n }\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst btnShape = PropTypes.shape({\r\n color: PropTypes.string,\r\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\r\n onClick: PropTypes.func\r\n});\r\n\r\nQuestionModal.defaultProps = {\r\n buttonStyle: 'justify-content-center'\r\n}\r\n\r\nQuestionModal.propTypes = {\r\n rightButton: btnShape,\r\n leftButton: btnShape,\r\n menu: PropTypes.bool,\r\n message: PropTypes.string,\r\n};\r\n\r\nexport default QuestionModal;","import React from 'react';\r\nimport useModal from '../useModal';\r\nimport { Modal, ModalBody, ModalHeader, Col, Input, ModalFooter, Button } from 'reactstrap';\r\nimport useInput from '../../SharedEffects/useInput';\r\n\r\nconst OneInputModal = (props) => {\r\n const { id, label, title, onSave, initValue, menu, placeholder, fullMenu } = props;\r\n const modalProps = useModal(id, menu, fullMenu);\r\n const { value, set } = useInput.useText(initValue);\r\n\r\n const clickSave = () => {\r\n if (onSave) onSave(value);\r\n modalProps.toggle();\r\n };\r\n\r\n return (\r\n \r\n {title}\r\n \r\n {label}\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 OneInputModal;","import React, {Fragment, useState, useEffect} from 'react';\r\nimport { Row, Col, Input, Button } from 'reactstrap';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { colors } from '../../../config/constants';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { selectInventoryList, removeInventoryGroup, editInventoryList, removeInventoryList, sortInventoryGroups } from '../../../reducers/items/itemsActions';\r\nimport { FaCheck } from 'react-icons/fa';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\nimport comparisonViewsApi from '../../../api/comparisonViewsApi';\r\nimport {localStorageConst} from '../../../config/constants';\r\nimport { FaPen, FaTrash } from 'react-icons/fa';\r\nimport useInput from '../../SharedEffects/useInput';\r\nimport * as $ from 'jquery';\r\nimport QuestionModal from \"../../../SharedComponents/Modals/QuestionModal/QuestionModal\";\r\nimport { showModal } from '../../../reducers/modals/modalsActions';\r\nimport OneInputModal from \"../../../SharedComponents/Modals/OneInputModal/OneInputModal\";\r\nimport InventoryListModal from './InventoryListModal';\r\nimport AlertModal from \"../../../SharedComponents/Modals/AlertModal/AlertModal\";\r\n\r\nconst InventoryListItem = (props) => {\r\n const {list, selected, baseProps} = props;\r\n const {isMove, group, getLists, modalProps} = baseProps;\r\n const [ isShowInput, setIsShowInput ] = useState(false);\r\n const dispatch = useDispatch();\r\n const listInput = useInput.useText(list.name);\r\n const [hover, setHover] = useState(false);\r\n const [options, setOptions] = useState('');\r\n const connection = useSelector(({ connection }) => connection.online);\r\n\r\n const selectList = (list) => {\r\n if (list.id !== selected.id) {\r\n if (!isMove) {\r\n if(!connection){\r\n dispatch(showModal(AlertModal, {message: `Please enable Online Mode before switching inventory lists`}));\r\n modalProps.toggle();\r\n return;\r\n }\r\n dispatch(selectInventoryList(list));\r\n localStorage.setItem(localStorageConst.keys.listSelected, JSON.stringify(list));\r\n modalProps.toggle();\r\n } else {\r\n comparisonViewsApi.moveGroup(list.id, group.id, {name: group.name}).then(() => {\r\n dispatch(removeInventoryGroup(group.id));\r\n dispatch(sortInventoryGroups());\r\n modalProps.toggle();\r\n }).catch((err) => { \r\n if (err.code === 400) {\r\n dispatch(showModal(AlertModal, {message: err.data.message}));\r\n } else {\r\n dispatch(showModal(AlertModal, {message: \"Something wen't wrong\"}));\r\n }\r\n console.error(err);\r\n });\r\n }\r\n }\r\n };\r\n\r\n const editList = () =>{\r\n if(!isMobile){\r\n setIsShowInput(true);\r\n }else{\r\n const editProps = {\r\n title: 'RENAME THIS LIST',\r\n initValue: list.name,\r\n menu: isMobile,\r\n fullMenu: false,\r\n onSave: updateList\r\n };\r\n dispatch(showModal(OneInputModal, editProps));\r\n modalProps.toggle();\r\n } \r\n }; \r\n const onEnterKey = ({key}) => {\r\n if (key === 'Enter') updateList(listInput.value);\r\n };\r\n const updateList = (name) =>{\r\n comparisonViewsApi.updateList(list.id, name).then(() => {\r\n dispatch(editInventoryList(list.id, name));\r\n getLists();\r\n if(!isMobile){\r\n setIsShowInput(false);\r\n }else{\r\n goBack();\r\n }\r\n }).catch(err => console.error(err));\r\n };\r\n\r\n const deleteList = () =>{\r\n const qProps = {\r\n message: `Are you sure you want to delete ${list.name} inventory list?`,\r\n menu: isMobile ? true : false,\r\n leftButton: {\r\n title: 'Delete',\r\n color: 'orange',\r\n onClick: () => removeList(list.id)\r\n },\r\n rightButton: {\r\n title: 'Cancel',\r\n color: 'green',\r\n onClick: () => goBack()\r\n }\r\n };\r\n dispatch(showModal(QuestionModal, qProps));\r\n if(isMobile){\r\n modalProps.toggle();\r\n } \r\n };\r\n const removeList = (listId) => { \r\n comparisonViewsApi.deleteList(listId).then(() => {\r\n dispatch(removeInventoryList(listId));\r\n getLists();\r\n if(isMobile){\r\n goBack();\r\n }\r\n }).catch(err => console.error(err)); \r\n };\r\n\r\n const goBack = () => {\r\n dispatch(showModal(InventoryListModal)); \r\n };\r\n\r\n const buildOptions = () => { \r\n const icons = \r\n \r\n editList() } className='marginL200 clickable' color={colors.lightBlueText}/>\r\n \r\n \r\n {!selected ?\r\n deleteList() } className='marginL30 clickable' color={colors.lightBlueText}/> \r\n : '' } \r\n \r\n ;\r\n const nOptions = isMove ? '' : (!isMobile ? (hover ? icons : '') : icons);\r\n setOptions(nOptions);\r\n };\r\n\r\n useEffect(() => {\r\n buildOptions();\r\n }, [hover]);\r\n\r\n\r\n useEffect(() => {\r\n if (isShowInput) {\r\n $('#invlist_'+list.id+'_input').focus();\r\n }\r\n }, [isShowInput]);\r\n\r\n return (\r\n \r\n \r\n setHover(true)} onMouseLeave={() => setHover(false)}>\r\n \r\n {(!isMobile && selected) && }\r\n \r\n { selectList(list) }} >\r\n \r\n {listInput.value}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {options}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n { selectList(list) }}>\r\n {(selected) && } {listInput.value}\r\n \r\n \r\n {options}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default InventoryListItem;","import comparisonViewsApi from '../../../api/comparisonViewsApi';\r\n\r\nconst useApi = (setLists) => {\r\n const getLists = () => { \r\n comparisonViewsApi.get().then(({data}) => {\r\n setLists(data);\r\n });\r\n };\r\n\r\n return {\r\n getLists\r\n };\r\n};\r\n\r\n\r\nexport default {\r\n useApi\r\n};","import { getInventoryLists } from '../../../local/ComparisonViewLocal';\r\n\r\nconst useApi = (setLists) => {\r\n const getLists = () => { \r\n \r\n getInventoryLists().then(data => {\r\n setLists(data);\r\n })\r\n .catch(error => { console.log(`Error in getInventoryLists ${error}`); });\r\n\r\n };\r\n\r\n return {\r\n getLists\r\n };\r\n};\r\n\r\n\r\nexport default {\r\n useApi\r\n};","import { useSelector } from \"react-redux\";\r\nimport useInventoryList from './useInventoryList';\r\nimport useInventoryListOffline from './useInventoryListOffline';\r\n\r\n\r\nconst useApi = (setLists) => {\r\n const connection = useSelector(({connection}) => connection.online);\r\n\r\n const inventoryListOnline = useInventoryList.useApi(setLists);\r\n const inventoryListOffline = useInventoryListOffline.useApi(setLists);\r\n const { getLists } = connection ? inventoryListOnline : inventoryListOffline;\r\n\r\n return {\r\n getLists\r\n };\r\n};\r\n\r\nexport default {\r\n useApi\r\n};\r\n","import React,{useState, useEffect} from 'react';\r\nimport useModal from '../useModal';\r\nimport { Modal, ModalBody, ModalHeader, Row, Col, Input, Button } from 'reactstrap';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { modalMenuClassName } from '../../../config/constants';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { insertInventoryList } from '../../../reducers/items/itemsActions';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\nimport comparisonViewsApi from '../../../api/comparisonViewsApi';\r\nimport InventoryListItem from './InventoryListItem';\r\nimport useInput from '../../SharedEffects/useInput';\r\nimport * as $ from 'jquery';\r\nimport useInventoryListInterface from './useInventoryListInterface';\r\nimport { showModal } from '../../../reducers/modals/modalsActions';\r\nimport OneInputModal from '../../../SharedComponents/Modals/OneInputModal/OneInputModal';\r\nimport AlertModal from '../../../SharedComponents/Modals/AlertModal/AlertModal';\r\n\r\nconst InventoryListModal = (props) => {\r\n const dispatch = useDispatch();\r\n const { id, isMove, group } = props;\r\n const modalProps = useModal(id);\r\n\r\n const selected = useSelector(({items}) => items.inventory.listSelected);\r\n const [lists, setLists] = useState([]);\r\n const [map, setMap] = useState('');\r\n const { getLists } = useInventoryListInterface.useApi(setLists);\r\n\r\n const baseProps = {isMove, group, getLists, modalProps};\r\n const [ isShowInput, setIsShowInput ] = useState(false);\r\n const newListInput = useInput.useText('');\r\n\r\n const createList = () =>{\r\n if(!isMobile){\r\n setIsShowInput(true);\r\n }else{\r\n const editProps = {\r\n title: 'CREATE NEW LIST',\r\n initValue: '',\r\n menu: isMobile,\r\n fullMenu: false,\r\n onSave: saveList\r\n };\r\n dispatch(showModal(OneInputModal, editProps));\r\n modalProps.toggle();\r\n }\r\n };\r\n\r\n const onEnterKey = ({key}) => {\r\n if (key === 'Enter') saveList(newListInput.value);\r\n };\r\n const saveList = (name) =>{\r\n comparisonViewsApi.createList(name).then(({data}) => {\r\n dispatch(insertInventoryList(data));\r\n getLists();\r\n if(!isMobile){\r\n setIsShowInput(false);\r\n }else{\r\n goBack();\r\n }\r\n }).catch(err => {\r\n console.error(err);\r\n if (err.code === 400) {\r\n dispatch(showModal(AlertModal, {message: err.data.message, onOk: () => {} }));\r\n }\r\n });\r\n\r\n };\r\n\r\n const goBack = () => {\r\n dispatch(showModal(InventoryListModal));\r\n };\r\n\r\n const buildMap = () =>{\r\n const nMap = lists.map(l => );\r\n setMap(nMap);\r\n };\r\n\r\n useEffect(() => {\r\n buildMap();\r\n }, [lists]);\r\n\r\n useEffect(() => {\r\n getLists();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (isShowInput) {\r\n $('#new_list_input').focus();\r\n }\r\n }, [isShowInput]);\r\n\r\n return (\r\n \r\n {isMove ? 'MOVE TO INVENTORY LIST' : 'MANAGE INVENTORY LISTS'}\r\n \r\n \r\n \r\n \r\n \r\n { createList() }}>\r\n \r\n Create New List\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { createList() }}>Create New List \r\n \r\n \r\n \r\n {map}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default InventoryListModal;\r\n","import React, { Fragment } from 'react';\r\nimport { Col } from 'reactstrap';\r\nimport Select from 'react-select';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { showModal } from '../../../reducers/modals/modalsActions';\r\nimport InventoryListModal from '../../Modals/InventoryListModal/InventoryListModal';\r\n\r\nconst SubHeaderPlaceOrderInventoryList = (props) => {\r\n const { view } = props;\r\n const dispatch = useDispatch();\r\n const inventoryList = useSelector(({items}) => items.inventory.listSelected);\r\n const displayOnDropdown = {\r\n label: inventoryList ? inventoryList.name : null,\r\n value: inventoryList ? inventoryList.id : null\r\n };\r\n\r\n const openInventoryList = () => {\r\n dispatch(showModal(InventoryListModal));\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n Inventory List:\r\n \r\n null}} isSearchable={false}\r\n onMenuOpen={openInventoryList}\r\n />\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default SubHeaderPlaceOrderInventoryList;\r\n","export const setUserData = (data) => {\r\n return {\r\n type: 'SET_USER_DATA',\r\n payload: data\r\n };\r\n};\r\n\r\nexport const clearUserData = (data) => {\r\n return {\r\n type: 'CLEAR_USER_DATA',\r\n };\r\n};\r\n\r\nexport const setUserActiveLocation = (data) => {\r\n return {\r\n type: 'SET_USER_ACTIVE_LOCATION',\r\n payload: data\r\n };\r\n};\r\n\r\nexport const setActiveInventory = (data) => {\r\n return {\r\n type: 'SET_ACTIVE_INVENTORY',\r\n payload: data\r\n };\r\n};\r\n\r\nexport const setActiveInventoryEdit = (data) => {\r\n return {\r\n type: 'SET_ACTIVE_INVENTORY_EDIT',\r\n payload: data\r\n };\r\n};\r\n","import React, { useState } from 'react';\r\nimport { Modal, ModalBody, Button, Row } from 'reactstrap';\r\nimport useModal from '../useModal';\r\nimport { isMobile } from 'react-device-detect';\r\nimport './StartInventoryModal.scss'\r\nimport DatePicker from 'react-datepicker';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport moment from 'moment';\r\n\r\nconst StartInventoryModal = (props) => {\r\n const { id, header, message, onOk } = props;\r\n const modalprops = useModal(id);\r\n const [startDate, setStartDate] = useState(new Date());\r\n\r\n const onClickOk = () => {\r\n if (onOk) {\r\n onOk(moment(startDate).format('YYYY-MM-DD'));\r\n };\r\n modalprops.toggle();\r\n };\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n \r\n

{header}

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

\r\n {message}\r\n

\r\n \r\n Start Inventory Date :\r\n \r\n
\r\n \r\n setStartDate(date)} />\r\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 StartInventoryModal;\r\n","\r\nimport axios from \"axios\";\r\n\r\nconst getInventorySpreadsheet = () => {\r\n return axios.get('inventory/spreadsheet');\r\n};\r\n\r\nconst newInventory = (params) => {\r\n return axios.post('inventory', params);\r\n};\r\n\r\nconst completeInventory = () => {\r\n return axios.post('inventory/complete');\r\n};\r\n\r\nconst comparisonAllViews = () => {\r\n return axios.get('comparison-views/all-views', {\r\n params: {\r\n expand: 'items,purchased,onHandTotal,orderTotal,globalOnHandTotal,units,comparisonView,comparisonViewTotalOnHandAmount'\r\n }\r\n });\r\n};\r\n\r\nconst getInventoriesComplete = (page) => {\r\n const params = {\r\n page: page,\r\n limit: 12\r\n };\r\n return axios.get('inventory', { params });\r\n};\r\n\r\nconst getItemsInventorySelect = (idInventory) => {\r\n return axios.get(`inventory/${idInventory}/items`);\r\n};\r\n\r\nconst reopenInventory = (idInventory) => {\r\n return axios.patch(`inventory/${idInventory}/reopen`);\r\n};\r\n\r\nexport default {\r\n getInventorySpreadsheet,\r\n newInventory,\r\n comparisonAllViews,\r\n completeInventory,\r\n getInventoriesComplete,\r\n getItemsInventorySelect,\r\n reopenInventory\r\n};\r\n","export const saveGroups = (groups) => {\r\n return {\r\n type: 'SET_GROUPS',\r\n payload: groups\r\n }\r\n};\r\n\r\nexport const saveList = (list) => {\r\n return {\r\n type: 'SET_LIST',\r\n payload: list\r\n }\r\n};\r\n\r\nexport const saveListSelected = (listSelected) => {\r\n return {\r\n type: 'SET_LIST_SELECTED',\r\n payload: listSelected\r\n }\r\n};\r\n\r\nexport const saveSortBy = (sortBy) => {\r\n return {\r\n type: 'SET_SORT_BY',\r\n payload: sortBy\r\n }\r\n};\r\n\r\nexport const saveSearch = (search) => {\r\n return {\r\n type: 'SET_SEARCH',\r\n payload: search\r\n }\r\n};\r\n\r\nexport const clearGroupsData = () => {\r\n return {\r\n type: 'CLEAR_GROUPS_DATA',\r\n };\r\n};\r\n\r\nexport const editOneGroupItem = (groupId, itemId, value, idLabel) => {\r\n return {\r\n type: 'EDIT_ONE_GROUP_ITEM',\r\n payload: {\r\n groupId: groupId,\r\n idLabel: idLabel ? idLabel : 'itemDistributorId',\r\n itemId: itemId,\r\n value: value\r\n }\r\n }\r\n};","import React, { useState, useEffect } from 'react';\r\nimport { Modal, ModalHeader, ModalBody, Row, Col } from 'reactstrap';\r\nimport useModal from '../useModal';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport { useSelector,useDispatch } from 'react-redux';\r\nimport { saveOpenSync } from '../../../reducers/sync/syncActions';\r\nimport syncImg from '../../../assets/images/sync.gif';\r\nimport './SyncModal.scss';\r\n\r\nconst SyncModal = (props) => {\r\n const { id, header, message } = props;\r\n const modalprops = useModal(id);\r\n const dispatch = useDispatch();\r\n const currentOpenSync = useSelector(({sync}) => sync.openSync);\r\n \r\n useEffect(() => {\r\n if(currentOpenSync===false){\r\n modalprops.toggle();\r\n dispatch(saveOpenSync(true));\r\n } \r\n }, [currentOpenSync]);\r\n\r\n return (\r\n \r\n \r\n {header}\r\n \r\n \r\n \r\n sync gif \r\n \r\n \r\n {message} \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SyncModal;\r\n\r\n","import { useState, useEffect } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport comparisonViewsApi from \"../../api/comparisonViewsApi\";\r\nimport { saveGroups, saveList, saveListSelected, saveSortBy, saveSearch, clearGroupsData } from \"../../reducers/groups/groupsActions\";\r\nimport { isMobile } from 'react-device-detect';\r\nimport {limitOptions} from '../../config/constants';\r\nimport { spinner } from '../../reducers/userInterface/userInterfaceActions';\r\nimport SyncModal from '../Modals/SyncModal/SyncModal';\r\nimport { showModal } from '../../reducers/modals/modalsActions';\r\nimport useConnection from '../OfflineMode/useConnection';\r\n\r\nconst useViewsSync = () => {\r\n\r\n const dispatch = useDispatch();\r\n const list = useSelector(({ items }) => items.inventory.list);\r\n const listSelected = useSelector(({ items }) => items.inventory.listSelected);\r\n const sort = useSelector(({ items }) => items.inventory.sortBy);\r\n const search = useSelector(({ items }) => items.inventory.search);\r\n const groups = useSelector(({ groups }) => groups.groups);\r\n\r\n const [page, setPage] = useState();\r\n const [loadMore, setLoadMore] = useState(true);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const {syncToLocal} = useConnection.useSyncLocal();\r\n\r\n dispatch(saveList(list));\r\n dispatch(saveListSelected(listSelected));\r\n dispatch(saveSortBy(sort));\r\n dispatch(saveSearch(search));\r\n\r\n const getViews = () => {\r\n if (!page){ return; }\r\n const params = {\r\n page: page,\r\n limit: limitOptions.inventoryView,\r\n filterOptions: JSON.stringify({ sort: sort }),\r\n filters: search ? JSON.stringify([{ field: 'name', operator: 'like', value: search, table: 'generic_group' }]) : null,\r\n analytics: 1\r\n };\r\n\r\n setIsLoading(true);\r\n dispatch(spinner(false));\r\n comparisonViewsApi.getAllViews(params).then((res) => {\r\n setLoadMore(res._meta.pageCount>page);\r\n setPage( page + 1 );\r\n dispatch(saveGroups([...groups, ...res.data.map(d => {\r\n return {\r\n ...d,\r\n expand: isMobile ? false : true,\r\n parLevel: d.parLevel ? d.parLevel : 0,\r\n items: d.items.map(i => {\r\n return {\r\n ...i,\r\n isCustomPackSize: i.customPackSize ? !(i.customPackSize === i.packSize) : false\r\n }\r\n })\r\n }\r\n })]));\r\n setIsLoading(false);\r\n dispatch(spinner(true));\r\n }).catch(err => {\r\n dispatch(spinner(true));\r\n console.error(err)\r\n });\r\n };\r\n\r\n const getAllViews = () => {\r\n const syncModalProps = {\r\n header: 'Loading Screen',\r\n message: 'Syncing your data to work offline'\r\n };\r\n dispatch(showModal(SyncModal, syncModalProps));\r\n dispatch(clearGroupsData());\r\n setLoadMore(true);\r\n setPage(1);\r\n };\r\n\r\n useEffect(() => {\r\n if(loadMore && !isLoading){\r\n getViews();\r\n }\r\n if (!loadMore && !isLoading){\r\n syncToLocal();\r\n }\r\n }, [page, isLoading]);\r\n\r\n\r\n\r\n return {\r\n getAllViews\r\n };\r\n\r\n}\r\n\r\n\r\nconst useInventoryListSync = () => {\r\n\r\n const dispatch = useDispatch();\r\n const list = useSelector(({ items }) => items.inventory.list);\r\n const listSelected = useSelector(({ items }) => items.inventory.listSelected);\r\n const sort = useSelector(({ items }) => items.inventory.sortBy);\r\n const search = useSelector(({ items }) => items.inventory.search);\r\n const groups = useSelector(({ groups }) => groups.groups);\r\n\r\n const [page, setPage] = useState();\r\n const [loadMore, setLoadMore] = useState(true);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const {syncToLocal} = useConnection.useSyncLocal();\r\n\r\n dispatch(saveList(list));\r\n dispatch(saveListSelected(listSelected));\r\n dispatch(saveSortBy(sort));\r\n dispatch(saveSearch(search));\r\n\r\n const getGroups = () => {\r\n if (!page){ return; }\r\n const params = {\r\n page: page,\r\n limit: limitOptions.inventoryView,\r\n expand: 'items,purchased,onHandTotal,orderTotal,globalOnHandTotal,units',\r\n filterOptions: JSON.stringify({ sort: sort }),\r\n filters: search ? JSON.stringify([{ field: 'name', operator: 'like', value: search, table: 'generic_group' }]) : null,\r\n analytics: 1\r\n };\r\n\r\n setIsLoading(true);\r\n dispatch(spinner(false));\r\n comparisonViewsApi.groups(listSelected.id, params).then((res) => {\r\n setLoadMore(res._meta.pageCount>page);\r\n setPage( page + 1 );\r\n dispatch(saveGroups([...groups, ...res.data.map(d => {\r\n return {\r\n ...d,\r\n expand: isMobile ? false : true,\r\n parLevel: d.parLevel ? d.parLevel : 0,\r\n items: d.items.map(i => {\r\n return {\r\n ...i,\r\n isCustomPackSize: i.customPackSize ? !(i.customPackSize === i.packSize) : false\r\n }\r\n })\r\n }\r\n })]));\r\n setIsLoading(false);\r\n dispatch(spinner(true));\r\n }).catch(err => {\r\n dispatch(spinner(true));\r\n console.error(err)\r\n });\r\n };\r\n\r\n const getAllGroups = () => {\r\n const syncModalProps = {\r\n header: 'Loading Screen',\r\n message: 'Preparing your data to work offline'\r\n };\r\n dispatch(showModal(SyncModal, syncModalProps));\r\n dispatch(clearGroupsData());\r\n setLoadMore(true);\r\n setPage(1);\r\n };\r\n\r\n useEffect(() => {\r\n if(loadMore && !isLoading){\r\n getGroups();\r\n }\r\n if (!loadMore && !isLoading){\r\n syncToLocal();\r\n }\r\n }, [page, isLoading]);\r\n\r\n\r\n\r\n return {\r\n getAllGroups\r\n };\r\n\r\n}\r\n\r\nexport default {\r\n useViewsSync, useInventoryListSync\r\n};\r\n","import React, { Fragment, useState, useEffect } from 'react';\r\nimport { Button, Tooltip } from 'reactstrap';\r\nimport { FiWifiOff, FiWifi } from 'react-icons/fi';\r\nimport { FaDownload, FaUpload } from 'react-icons/fa';\r\nimport usePlaceOrderSync from '../../../Sync/usePlaceOrderSync';\r\nimport { colors, localStorageConst } from '../../../../config/constants';\r\nimport useConnection from '../../../OfflineMode/useConnection';\r\nimport QuestionModal from '../../../Modals/QuestionModal/QuestionModal';\r\nimport AlertModal from '../../../Modals/AlertModal/AlertModal';\r\nimport { showModal } from '../../../../reducers/modals/modalsActions';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { isMobile } from 'react-device-detect';\r\nimport './SyncInventory.scss';\r\n\r\nconst SyncInventory = () => {\r\n const dispatch = useDispatch();\r\n const connection = JSON.parse(localStorage.getItem(localStorageConst.keys.connection)); //useSelector(({ connection }) => connection.online);\r\n const inventoryItemsToSync = JSON.parse(localStorage.getItem(localStorageConst.keys.inventoryItemsToSync));\r\n const { getConnectionState } = useConnection.useMode(); \r\n\r\n let [toSync, setToSync] = useState(inventoryItemsToSync);\r\n const [tooltipOpen, setTooltipOpen] = useState(false);\r\n const toggle = () => setTooltipOpen(!tooltipOpen);\r\n\r\n // const {getAllViews} = usePlaceOrderSync.useViewsSync();\r\n const {getAllGroups} = usePlaceOrderSync.useInventoryListSync();\r\n const {syncToServer} = useConnection.useSyncServer();\r\n const {status} = useConnection.useStatus();\r\n\r\n const showConnectionFail = (connection) => {\r\n const aProps = {\r\n title: 'Connectivity Failed',\r\n message: 'You are currently not connected to the internet. Please reconnect before you can go '+connection,\r\n btnLabel: 'Ok',\r\n btnSize: 'lg',\r\n color: 'green'\r\n };\r\n dispatch(showModal(AlertModal, aProps));\r\n };\r\n\r\n const showSyncToServer = () => {\r\n const qProps = {\r\n message: `You are about to enter online mode. This may take a few minutes`,\r\n menu: isMobile ? true : false,\r\n leftButton: {\r\n title: 'Cancel',\r\n color: 'orange',\r\n },\r\n rightButton: {\r\n title: 'Go Online',\r\n color: 'green',\r\n onClick: () => syncToServer()\r\n }\r\n };\r\n dispatch(showModal(QuestionModal, qProps));\r\n };\r\n\r\n const showSyncToLocal = () => {\r\n const qProps = {\r\n message: `You are about to enter offline mode. This may take a few minutes. Please stay connected to the internet until Offline is ready`,\r\n menu: isMobile ? true : false,\r\n leftButton: {\r\n title: 'Cancel',\r\n color: 'orange',\r\n },\r\n rightButton: {\r\n title: 'Go Offline',\r\n color: 'green',\r\n onClick: () => getAllGroups()\r\n },\r\n belowButtons: `Certain features will not be available in offline mode`\r\n };\r\n dispatch(showModal(QuestionModal, qProps));\r\n };\r\n\r\n const handleSync = () => {\r\n if (getConnectionState()){\r\n if (getConnectionState() !== status){\r\n showConnectionFail('offline');\r\n return;\r\n }\r\n\r\n if(!!toSync){\r\n if(toSync){ syncToServer(); } \r\n }else{\r\n showSyncToLocal();\r\n } \r\n \r\n }else{\r\n if (getConnectionState() === status){\r\n showConnectionFail('online');\r\n return;\r\n }\r\n syncToServer();\r\n } \r\n };\r\n\r\n useEffect(() => {\r\n if(!!inventoryItemsToSync){\r\n setToSync(inventoryItemsToSync);\r\n }else{\r\n setToSync(false);\r\n }\r\n\r\n }, [inventoryItemsToSync]);\r\n\r\n const goOnLine = {!isMobile ?   Go Online : ``} ;\r\n const goOffLine = {!isMobile ?   Go Offline : ``} ;\r\n\r\n return (\r\n
\r\n {toSync ? ! : ``}\r\n \r\n \r\n {toSync ? `You must sync your inventory data to the server` : `Sync your data locally`}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default SyncInventory\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Col, Button } from \"reactstrap\";\r\nimport {\r\n MdFullscreen,\r\n MdFullscreenExit,\r\n MdCheckCircle,\r\n MdLocalPrintshop,\r\n} from \"react-icons/md\";\r\nimport { RiCheckboxCircleLine } from \"react-icons/ri\";\r\nimport { colors, inventoryOptions } from \"../../../config/constants\";\r\nimport { FaChartBar } from \"react-icons/fa\";\r\nimport ShowIf from \"../../ShowIf/ShowIf\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { saveInventoryOnHandTotal } from \"../../../reducers/items/itemsActions\";\r\nimport { saveInventoryItems } from \"../../../reducers/items/itemsActions\";\r\nimport { setUserData } from \"../../../reducers/user/userAction\";\r\nimport { showModal } from \"../../../reducers/modals/modalsActions\";\r\nimport AlertModal from \"../../Modals/AlertModal/AlertModal\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport timestampedInventory from \"../../../assets/images/timestamped-inventory.png\";\r\nimport StartInventoryModal from \"../../Modals/StartInventoryModal/StartInventoryModal\";\r\nimport timestampedInventoryApi from \"../../../api/timestampedInventoryApi\";\r\nimport { isMobile } from \"react-device-detect\";\r\nimport SyncInventory from \"./Subcomponents/SyncInventory\";\r\nimport dragIcon from \"../../../assets/images/drag-drop.svg\";\r\n\r\nconst SubHeaderPlaceOrderInventoryOptions = ({ view }) => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const items = useSelector(({ items }) => items.inventory.items);\r\n const listSelected = useSelector(({ items }) => items.inventory.listSelected); \r\n const rearrangeOption = useSelector(({ items }) => items.inventory.options.filter((o) => o.name === inventoryOptions.keys.rearrange)[0]);\r\n\r\n const [startDate, setStartDate] = useState(new Date());\r\n const displayInventory = useSelector(({ user }) => user.activeLocation.display_inventory);\r\n const dataUser = useSelector(({ user }) => user);\r\n const isStartInventory = dataUser.activeLocation.activeInventory;\r\n const [nameBtnInventory, setNameBtnInventory] = useState(\"Start Inventory\");\r\n\r\n const [pathName, setPathName] = useState(history.location.pathname);\r\n const [isAnalyticsMode, setIsAnalyticsMode] = useState(pathName === \"/place-order/inventory/analytics\" ? true : false);\r\n const expandAll = items.some((i) => !i.expand);\r\n\r\n const connection = useSelector(({ connection }) => connection.online);\r\n\r\n const clickRearrange = () => {\r\n history.push({\r\n pathname: `/sort-inventory/${listSelected.id}`,\r\n });\r\n };\r\n\r\n const clickExpand = () => {\r\n dispatch(\r\n saveInventoryItems(\r\n items.map((i) => {\r\n return { ...i, expand: expandAll };\r\n })\r\n )\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n setNameBtnInventory(\r\n !isStartInventory ? \"Start Inventory\" : \"Review Inventory\"\r\n );\r\n }, [isStartInventory]);\r\n\r\n const clickInventory = () => {\r\n timestampedInventoryApi\r\n .getInventorySpreadsheet()\r\n .then(({ data }) => {\r\n if (data) {\r\n var excelElement = document.createElement(\"a\");\r\n excelElement.href = data + \"?t=\" + new Date().getTime();\r\n excelElement.click();\r\n } else {\r\n dispatch(\r\n showModal(AlertModal, { message: \"You have no inventory.\" })\r\n );\r\n }\r\n })\r\n .catch((err) => console.error(err));\r\n };\r\n\r\n const toggleAnalytics = () => {\r\n if (history.location.pathname === \"/place-order/inventory/analytics\") {\r\n setIsAnalyticsMode(false);\r\n history.push({\r\n pathname: \"/place-order/inventory\",\r\n search: history.location.search,\r\n });\r\n } else {\r\n setIsAnalyticsMode(true);\r\n history.push({\r\n pathname: \"/place-order/inventory/analytics\",\r\n search: history.location.search,\r\n });\r\n }\r\n };\r\n\r\n const apiStartInventory = (startDate) => {\r\n const params = {\r\n start_date: startDate,\r\n };\r\n timestampedInventoryApi\r\n .newInventory(params)\r\n .then((res) => {\r\n dispatch(saveInventoryItems([]));\r\n dispatch(saveInventoryOnHandTotal(0.0));\r\n dataUser.activeLocation.activeInventory = true;\r\n dispatch(setUserData(dataUser));\r\n dispatch(\r\n saveInventoryItems(\r\n items.map((i) => {\r\n return {\r\n ...i,\r\n items: i.items.map((j) => {\r\n return { ...j, onHand: 0, onHandPack: 0, onHandUom: 0 };\r\n }),\r\n };\r\n })\r\n )\r\n );\r\n })\r\n .catch((error) => {\r\n let message = \"Something went wrong while processing the information.\";\r\n if (error.data) {\r\n message = error.data.message;\r\n }\r\n const props = {\r\n message: message,\r\n onOk: () => {\r\n // history.push('/logout');\r\n },\r\n };\r\n dispatch(showModal(AlertModal, props));\r\n });\r\n };\r\n\r\n const startInventory = (params) => {\r\n if (!isStartInventory) {\r\n const props = {\r\n header: \"Start Inventory\",\r\n message: `You are about to start taking inventory. Once you start all existing onhand values will be cleared.`,\r\n onOk: apiStartInventory,\r\n };\r\n dispatch(showModal(StartInventoryModal, props));\r\n } else {\r\n history.push({\r\n pathname: \"/inventory-view/review-inventory\",\r\n });\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n {\" \"}\r\n {isMobile ? \"\" :  Rearrange}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n {isStartInventory ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {isStartInventory ? (\r\n \r\n ) : (\r\n \r\n )}\r\n   {nameBtnInventory}\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\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 SubHeaderPlaceOrderInventoryOptions;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { mobileClassName } from '../../../config/constants';\r\nimport { Row, Col } from 'reactstrap';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { useSelector } from 'react-redux';\r\nimport numeral from 'numeral';\r\n\r\nconst SubHeaderPlaceOrderOnHand = () => {\r\n const orderTotal = useSelector(({cart}) => cart.orderTotal);\r\n const onHandTotal = useSelector(({items}) => items.inventory.onHandTotal);\r\n\r\n // useEffect(() => {\r\n\r\n // }, [orderTotal, onHandTotal]);\r\n\r\n return (\r\n \r\n \r\n {`On Hand Total: ${numeral(onHandTotal).format('$0,0.00')}`}\r\n \r\n \r\n {`Order Total: ${numeral(orderTotal).format('$0,0.00')}`}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SubHeaderPlaceOrderOnHand;","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Row } from 'reactstrap';\r\nimport SubHeaderPlaceOrderMode from './SubHeaderPlaceOrderMode';\r\nimport SubHeaderPlaceOrderViewIcons from './SubHeaderPlaceOrderViewIcons';\r\nimport SubHeaderPlaceOrderSortBy from './SubHeaderPlaceOrderSortBy';\r\nimport { mobileClassName } from '../../../config/constants';\r\nimport SubHeaderPlaceOrderInventoryList from './SubHeaderPlaceOrderInventoryList';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\nimport { isMobile } from 'react-device-detect';\r\nimport SubHeaderPlaceOrderInventoryOptions from './SubHeaderPlaceOrderInventoryOptions';\r\nimport SubHeaderPlaceOrderOnHand from './SubHeaderPlaceOrderOnHand';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst SubHeaderPlaceHolder = (props) => {\r\n const { view, history } = props;\r\n const displayInventory = useSelector(({user}) => user.activeLocation.display_inventory);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSubHeaderPlaceHolder.propTypes = {\r\n view: PropTypes.string.isRequired\r\n};\r\n\r\nexport default SubHeaderPlaceHolder;","import { useState, useEffect } from 'react';\r\nimport itemApi from '../../../../../api/itemApi';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { saveView, saveListItems, setListSearch, setListSortByOptions, setListSortBy} from \"../../../../../reducers/items/itemsActions\";\r\nimport { sortOptions } from '../../../../../config/constants';\r\n\r\nconst useApi = () => {\r\n const dispatch = useDispatch();\r\n const items = useSelector(({ items }) => items.list.items);\r\n const sort = useSelector(({items}) => items.list.sortBy);\r\n const filters = useSelector(({items}) => items.list.filters);\r\n const search = useSelector(({items}) => items.list.search);\r\n const cItems = useSelector(({cart}) => cart.cartItems);\r\n const [page, setPage] = useState(1);\r\n const [loadMore, setLoadMore] = useState(true);\r\n const [isLoading, setIsLoading] = useState(false);\r\n \r\n const setItemsStructure = (items) => {\r\n const today = new Date();\r\n const nitems = items.map((item) => (\r\n {\r\n ...item,\r\n isPriceOutdated: (!item.endDate) ? item.isPriceOutdated : ( new Date(item.endDate).getTime() <= today.getTime() ? 1 : 0),\r\n showSavings: (item.savings === 0) ? false : true,\r\n savingItems: (item.savings === 0) ? null : [],\r\n caseQuantity: (cItems.filter(ci => (!item.isSpecialItem && item.itemDistributorId === ci.itemDistributorId)).caseQuantity) //0\r\n }\r\n ));\r\n return nitems;\r\n };\r\n\r\n const getListItems = (page) => {\r\n if (page === 1 || (page > 1 && loadMore)) {\r\n setIsLoading(true);\r\n itemApi.getList(sort,filters,page,search)\r\n .then(res => {\r\n const loadMoreNew = res._meta.pageCount > res._meta.currentPage;\r\n const pageNew = page + 1;\r\n const structuredItems = setItemsStructure(res.data);\r\n if (page === 1) {\r\n dispatch(saveListItems(structuredItems));\r\n }else{\r\n dispatch(saveListItems([...items, ...structuredItems]));\r\n }\r\n setLoadMore(loadMoreNew);\r\n setIsLoading(false);\r\n setPage(pageNew); \r\n })\r\n .catch(error => console.log(error));\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n dispatch(saveView('list')); \r\n dispatch(setListSearch(''));\r\n dispatch(setListSortByOptions(sortOptions.listView));\r\n dispatch(setListSortBy(sortOptions.listView.filter(lw => lw.default === 1)[0]));\r\n dispatch(saveListItems([]));\r\n getListItems(1);\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (sort) {\r\n dispatch(saveListItems([]));\r\n getListItems(1);\r\n }\r\n }, [sort, search, filters]);\r\n\r\n return { getListItems, items, sort, filters, page, loadMore, isLoading, search };\r\n};\r\n\r\nexport default {\r\n useApi\r\n};\r\n","import { useState, useEffect } from 'react';\r\nimport distributorsApi from '../../../api/distributorsApi';\r\nimport { localStorageConst } from '../../../config/constants';\r\n\r\nconst useDataForEmail = (item) => {\r\n const [email, setEmail] = useState('');\r\n\r\n const getData = () => {\r\n if(!!item.distributorId){\r\n distributorsApi.getById(item.distributorId)\r\n .then(res => {\r\n setEmail(res.data.dsrEmail);\r\n })\r\n .catch(error => console.log(error));\r\n } \r\n };\r\n \r\n return {\r\n email\r\n };\r\n};\r\n\r\n\r\nconst useDataOnEmail = () => {\r\n const [user, setUser] = useState(localStorage.getItem(localStorageConst.keys.userName));\r\n const [location, setLocation] = useState(JSON.parse(localStorage.getItem(localStorageConst.keys.activeLocation)));\r\n \r\n const sendEmail = (email) => {\r\n const to = email;\r\n const subject = 'Outdated Prices';\r\n const emailBody = 'Can you send over an updated order guide with correct pricing? I\\'m putting together an order right now, unfortunately the items seem to be last week\\'s price. Please send updated pricing each week to \"orderguidepricing@gmail.com\", thank you!' + '\\r\\n' + '\\r\\n' + 'From, \\r\\n' + user + '\\r\\n' + location.nickname;\r\n const mailTo = \"mailto:\" + to + \"?subject=\" + subject + \"&body=\" + encodeURIComponent(emailBody);\r\n window.location.href = mailTo;\r\n };\r\n\r\n return {\r\n sendEmail\r\n };\r\n};\r\n\r\nexport default {\r\n useDataForEmail, useDataOnEmail\r\n};","import React from 'react';\r\nimport { colors } from '../../../config/constants';\r\nimport PropTypes from 'prop-types';\r\nimport { Row, Col, Button } from 'reactstrap';\r\nimport IconBadgeSolid from '../../IconBadge/IconBadgeSolid';\r\nimport { FaExclamation } from 'react-icons/fa';\r\nimport usePriceOutdatedIcon from './usePriceOutdatedIcon';\r\n\r\nconst PriceOutdatedIcon = (props) => { \r\n const {elemId, item} = props;\r\n const {email} = usePriceOutdatedIcon.useDataForEmail(item);\r\n const {sendEmail} = usePriceOutdatedIcon.useDataOnEmail();\r\n\r\n return (\r\n \r\n \r\n This price is outdated\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nPriceOutdatedIcon.propTypes = {\r\n item: PropTypes.any\r\n};\r\n\r\nPriceOutdatedIcon.defaultProps = {\r\n item: {}\r\n};\r\n\r\nexport default PriceOutdatedIcon;","import React from 'react';\r\nimport { colors } from '../../../config/constants';\r\nimport PropTypes from 'prop-types';\r\nimport { Row, Col, Button } from 'reactstrap';\r\nimport IconBadgeSolid from '../../IconBadge/IconBadgeSolid';\r\nimport { FaExclamation } from 'react-icons/fa';\r\nimport useGoTo from '../../GoTo/useGoTo';\r\nimport { useDispatch } from 'react-redux';\r\nimport { showModal } from \"../../../reducers/modals/modalsActions\";\r\nimport SpecialRequestModal from '../../Modals/SpecialRequestModal/SpecialRequestModal';\r\nimport { isMobile } from 'react-device-detect';\r\n\r\nconst PunchedOutIcon = (props) => { \r\n // const {elemId} = props;\r\n // const {addSpecialRequest} = useGoTo.useActions();\r\n const { elemId, item } = props;\r\n const dispatch = useDispatch();\r\n\r\n const addSpecialRequest = () => {\r\n const mprops = {\r\n item: item ? item : null,\r\n menu: isMobile ? true : false,\r\n fullMenu: isMobile ? true : false \r\n }\r\n dispatch(showModal(SpecialRequestModal, mprops));\r\n };\r\n\r\n return ( \r\n \r\n \r\n Sorry!\r\n \r\n \r\n \r\n Your distributor has removed an item in your order from your active order guide. You can find the item, as it will appear \"grayed out\". You cannot place your order with the grayed out item, but you can remove the grayed out item and request this item as a \"special request\".'\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nPunchedOutIcon.propTypes = {\r\n item: PropTypes.any\r\n};\r\n\r\nPunchedOutIcon.defaultProps = {\r\n item: {}\r\n};\r\n\r\nexport default PunchedOutIcon;","import React, { Fragment, useState, useEffect } from 'react';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport { Col } from 'reactstrap';\r\nimport { colors, currency } from '../../../../../config/constants';\r\nimport './PlaceOrderList.scss';\r\nimport numeral from 'numeral';\r\nimport PriceOutdatedIcon from \"../../../../../SharedComponents/Icons/PriceOutdatedIcon/PriceOutdatedIcon\";\r\nimport PunchedOutIcon from \"../../../../../SharedComponents/Icons/PunchedOutIcon/PunchedOutIcon\";\r\n\r\nconst usePriceAndPackSection = (item) => {\r\n const [priceAndPackSection, setPriceAndPackSection] = useState('');\r\n\r\n const handlePricePackSection = () => {\r\n let newPriceAndPackSection = '';\r\n const newPacksize = item.packSize ? item.packSize : '';\r\n \r\n //Alert Icons\r\n const priceOutdatedIcon = (item.isPriceOutdated && !item.isPunchedOut && !item.isElectronicInvoiceItem) ? : '';\r\n const punchedOutIcon = (item.isPunchedOut) ? : '';\r\n\r\n //Building ...\r\n if (item.isCatchWeight !== 1 && item.isFixedWeight !== 1 && item.isMarketPrice !== 1 && item.price !== 0 && item.price !== null){\r\n const price = numeral(item.price).format('$0,0.00') +' '+ item.unitMeasure;\r\n newPriceAndPackSection = (isMobile) ? \r\n \r\n {price}\r\n {priceOutdatedIcon} {punchedOutIcon}\r\n {newPacksize}\r\n \r\n :\r\n \r\n {price} {priceOutdatedIcon} {punchedOutIcon}\r\n {newPacksize}\r\n ;\r\n }\r\n \r\n if(item.isMarketPrice === 1 || item.price === 0 || item.price === null){\r\n const marketPrice = MKT;\r\n newPriceAndPackSection = (isMobile) ? \r\n \r\n {marketPrice}\r\n {priceOutdatedIcon} {punchedOutIcon}\r\n {newPacksize}\r\n \r\n :\r\n \r\n {marketPrice} {priceOutdatedIcon} {punchedOutIcon} {item.unitMeasure}\r\n {newPacksize}\r\n ;\r\n }\r\n \r\n if(item.isCatchWeight === 1 && item.isFixedWeight !== 1 && item.isMarketPrice !== 1){\r\n const price = numeral(item.unitPrice).format('$0,0.00') + ' '+ item.packSizeUom;\r\n const catchweightFormat = (~ {numeral(item.price).format('$0,0.00')} {item.unitMeasure});\r\n newPriceAndPackSection = (isMobile) ? \r\n \r\n {price}\r\n {priceOutdatedIcon} {punchedOutIcon}\r\n {newPacksize}\r\n {catchweightFormat}\r\n \r\n :\r\n \r\n {price} {priceOutdatedIcon} {punchedOutIcon} {catchweightFormat}\r\n {newPacksize}\r\n ;\r\n }\r\n \r\n if(item.isFixedWeight === 1 && item.isCatchWeight !== 1 && item.isMarketPrice !== 1){\r\n const fixedweightFormat = ({currency} {item.price} {item.unitMeasure});\r\n const price = numeral(item.unitPrice).format('$0,0.00') + ' '+ item.packSizeUom;\r\n newPriceAndPackSection = (isMobile) ? \r\n \r\n {price}\r\n {priceOutdatedIcon} {punchedOutIcon}\r\n {newPacksize}\r\n {fixedweightFormat}\r\n \r\n :\r\n \r\n {price} {priceOutdatedIcon} {punchedOutIcon} {fixedweightFormat}\r\n {newPacksize}\r\n ;\r\n }\r\n \r\n setPriceAndPackSection(newPriceAndPackSection);\r\n };\r\n \r\n useEffect(() => {\r\n handlePricePackSection(); \r\n }, [])\r\n \r\n return {\r\n priceAndPackSection\r\n };\r\n};\r\n\r\n\r\n\r\nexport default {\r\n usePriceAndPackSection\r\n};","import React from 'react';\r\nimport { colors } from '../../../config/constants';\r\nimport { Button } from 'reactstrap';\r\nimport { MdAdd } from 'react-icons/md';\r\nimport { IoIosArrowForward } from \"react-icons/io\";\r\n\r\nconst Circle = ({large, isActive, onClick, isBlue, content, overlay, disabled, ...props}) => {\r\n const iconFor = ;\r\n const iconAdd = ;\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default Circle;","import React, { Fragment, useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport { Col, Input } from 'reactstrap';\r\nimport useShoppingCartItemInterface from './useShoppingCartItemInterface';\r\nimport useShoppingCartItem from './useShoppingCartItem';\r\nimport useShoppingCartItemOffline from './useShoppingCartItemOffline';\r\nimport { itemCart, placeOrderViews } from '../../config/constants';\r\nimport MinusButton from '../MinusButton/MinusButton';\r\nimport PlusButton from '../PlusButton/PlusButton';\r\nimport Circle from '../Icons/Circle/Circle';\r\nimport { IoIosArrowForward } from \"react-icons/io\";\r\nimport { localStorageConst } from '../../config/constants';\r\nimport { useSelector } from 'react-redux';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\nimport useConnection from '../OfflineMode/useConnection';\r\n\r\n\r\nconst ShoppingCartItem = (props) => {\r\n const { item, useInitialLeft, useLastRight, showAll, overlayProps, parentItem, groupTotalProps, useShoppingCartItemProps } = props;\r\n const { caseQuantity, setCaseQuantity } = useShoppingCartItemProps || useShoppingCartItem.useCartItemMerge(item);\r\n let { overlay, setOverlay } = useShoppingCartItem.useOverlay();\r\n const cartAmount = caseQuantity || 0;\r\n const setCartAmount = setCaseQuantity;\r\n const [section, setSection] = useState('');\r\n const isStartInventory = useSelector(({ user }) => user.activeLocation.activeInventory);\r\n\r\n\r\n // const { updateCartAmount } = useShoppingCartItem.useCartUpdate(setCartAmount, groupTotalProps);\r\n const { updateCart } = useShoppingCartItemInterface.useCartUpdate(setCartAmount, groupTotalProps);\r\n\r\n const { valid } = useShoppingCartItem.useCartValidate();\r\n const view = localStorage.getItem(localStorageConst.keys.view);\r\n const { disabled } = useShoppingCartItemInterface.useInputConnection();\r\n\r\n if (overlayProps) {\r\n overlay = overlayProps.overlay;\r\n setOverlay = overlayProps.setOverlay;\r\n }\r\n\r\n const handleKeypress = (e) => {\r\n if (e.charCode === 13) {\r\n updateCart(cartAmount, item, setCartAmount, cartAmount, parentItem);\r\n }\r\n };\r\n\r\n const cartAmountHandler = (e) => {\r\n if (!valid(e.target.value)) { return; }\r\n updateCart(e.target.value, item, setCartAmount, cartAmount, parentItem);\r\n };\r\n\r\n const cartAmountClick = (newCartAmount) => {\r\n if (!valid(newCartAmount)) { return; }\r\n updateCart(newCartAmount, item, setCartAmount, cartAmount, parentItem);\r\n };\r\n\r\n const setButtons = () => {\r\n let newSection = '';\r\n const minusImg = { cartAmountClick(cartAmount - 1) }} isBlue isActive={(cartAmount >= itemCart.min)} disabled={disabled} />;\r\n const newMinusButton = (useInitialLeft === false && cartAmount < itemCart.min) ? '' : minusImg;\r\n\r\n const plusImg = { cartAmountClick(cartAmount + 1) }} isBlue isActive={(cartAmount >= itemCart.min && cartAmount <= itemCart.max)} disabled={disabled} />;\r\n const newPlusButton = (useLastRight === false && cartAmount > itemCart.max) ? '' : plusImg;\r\n\r\n const icon = \r\n const circle = = itemCart.min))} onClick={() => { setOverlay(false) }} id={`popoverCartOverlay-` + `${item.id}`} disabled={disabled} />;\r\n\r\n if (!isMobile || (isMobile && showAll) || (isMobile && !showAll && overlay)) {\r\n newSection = \r\n {(isMobile && overlay) ?\r\n \r\n {circle}\r\n : ''\r\n }\r\n \r\n {newMinusButton}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.unitMeasure}\r\n \r\n \r\n\r\n \r\n {newPlusButton}\r\n \r\n ;\r\n }\r\n if (isMobile && !showAll && !overlay) {\r\n newSection = \r\n \r\n = itemCart.min))} onClick={() => { setOverlay(true); }} id={`popoverCart-` + `${item.id}`} disabled={disabled} />\r\n \r\n ;\r\n }\r\n\r\n setSection(newSection);\r\n\r\n };\r\n\r\n useEffect(() => {\r\n setButtons();\r\n }, []);\r\n\r\n useEffect(() => {\r\n setButtons();\r\n }, [cartAmount, disabled]);\r\n\r\n return (\r\n \r\n {section}\r\n \r\n );\r\n};\r\n\r\nShoppingCartItem.propTypes = {\r\n useInitialLeft: PropTypes.bool,\r\n useLastRight: PropTypes.bool,\r\n showAll: PropTypes.bool,\r\n square: PropTypes.bool\r\n};\r\n\r\nShoppingCartItem.defaultProps = {\r\n useInitialLeft: true,\r\n useLastRight: true,\r\n square: true\r\n};\r\n\r\nexport default ShoppingCartItem;","import React, { Fragment, useState, useEffect } from 'react';\r\nimport './RebateIcon.scss';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport { localStorageConst } from '../../../config/constants';\r\nimport PropTypes from 'prop-types';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst RebateIcon = (props) => { \r\n const item = props.item\r\n // const activeLocation = JSON.parse(localStorage.getItem(localStorageConst.keys.activeLocation));\r\n const displayRebate = useSelector(({user}) => user.activeLocation.display_rebate);\r\n const [showRebate, setShowRebate] = useState(false);\r\n\r\n useEffect(() => {\r\n if (displayRebate === 1 && item.isPartner === 1 && item.rebate>0){\r\n setShowRebate(true);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n
Rebate
\r\n
\r\n );\r\n};\r\n\r\nRebateIcon.propTypes = {\r\n item: PropTypes.any\r\n};\r\n\r\nRebateIcon.defaultProps = {\r\n item: {}\r\n};\r\n\r\nexport default RebateIcon;","import React,{ Fragment, useState, useEffect } from 'react';\r\nimport itemApi from '../../api/itemApi';\r\nimport { IoMdArrowDropup, IoMdArrowDropdown } from 'react-icons/io';\r\nimport PlaceOrderListRow from '../../Views/MainApp/Views/PlaceOrder/PlaceOrderList/PlaceOrderListRow';\r\nimport {savings} from '../../config/constants';\r\n\r\nconst useApi = (parentItem) => {\r\n const [savingItems, setSavingItems] = useState([]);\r\n const [savingsMap, setSavingsMap] = useState('');\r\n const [savingsNumber, setSavingsNumber] = useState(0);\r\n const [parent, setParent] = useState(parentItem);\r\n\r\n const buildMap = (nSavings) => {\r\n if(nSavings.length === 0){ return;}\r\n const map = nSavings.map((item) => (\r\n {item}\r\n ));\r\n setSavingsMap(map);\r\n };\r\n\r\n const getSavings = (id) => { \r\n itemApi.getMatches(id)\r\n .then(res => {\r\n const sitems = res.data;\r\n if(sitems){\r\n setSavingsNumber(sitems.length);\r\n setSavingItems(sitems); \r\n buildMap(sitems);\r\n } \r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n return {getSavings, savingItems, savingsMap, savingsNumber};\r\n};\r\n\r\nconst useOpen = (item, parentItem) => {\r\n const {getSavings, savingItems, savingsMap, savingsNumber} = useApi(parentItem);\r\n const [savingsOpen, setSavingsOpen] = useState(false);\r\n\r\n const [buttonTitle, setButtonTitle] = useState('');\r\n const [buttonColor, setButtonColor] = useState('');\r\n\r\n useEffect(() => {\r\n if (savingsOpen) {\r\n getSavings(item.itemDistributorId); \r\n }\r\n }, [savingsOpen])\r\n\r\n useEffect(() => {\r\n setButtonTitle((item.matchType === savings.exactMatch) ? 'Exact match' : 'Savings Options');\r\n const nColor = item.savings > 0 ? (item.matchType === savings.exactMatch) ? 'orange' : 'yellow' : (item.matchType !== null ? 'blue-sav' : '');\r\n setButtonColor(nColor);\r\n }, [])\r\n\r\n return { \r\n savingsOpen,\r\n setSavingsOpen,\r\n savingItems, \r\n savingsMap,\r\n savingsNumber, \r\n displaySavings : savingsOpen ? : ,\r\n buttonTitle,\r\n buttonColor\r\n }\r\n};\r\n\r\nexport default {\r\n useOpen, useApi\r\n};","import React, { Fragment, useState, useEffect } from 'react';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport { Card, Row, Col, Button } from 'reactstrap';\r\nimport { MdAttachMoney } from 'react-icons/md';\r\nimport { AiOutlineDollar } from 'react-icons/ai';\r\nimport useSavingsButton from './useSavingsButton';\r\nimport './SavingsButton.scss';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\nimport { localStorageConst } from '../../config/constants';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst SavingsButton = (props) => {\r\n const {item, parentItem} = props;\r\n const { savingsOpen, setSavingsOpen, savingsMap, savingsNumber, displaySavings, buttonTitle, buttonColor} = useSavingsButton.useOpen(item, parentItem);\r\n // const activeLocation = JSON.parse(localStorage.getItem(localStorageConst.keys.activeLocation));\r\n const displayMatch = useSelector(({user}) => user.activeLocation.display_match);\r\n const [showSavings, setShowSavings] = useState(false);\r\n\r\n useEffect(() => {\r\n if (displayMatch === 1){\r\n setShowSavings(true);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n {displaySavings ? savingsMap : ''}\r\n \r\n \r\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 SavingsButton;","import React, { Fragment, useState, useEffect } from 'react';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport PropTypes from 'prop-types';\r\nimport { Card, Row, Col, Tooltip } from 'reactstrap';\r\nimport './PlaceOrderList.scss';\r\nimport noImage from '../../../../../assets/images/no-image.png';\r\nimport usePlaceOrderListRow from './usePlaceOrderListRow';\r\nimport ShoppingCartItem from '../../../../../SharedComponents/ShoppingCartItem/ShoppingCartItem';\r\nimport RebateIcon from '../../../../../SharedComponents/Icons/RebateIcon/RebateIcon';\r\nimport moment from 'moment';\r\nimport useShoppingCartItem from '../../../../../SharedComponents/ShoppingCartItem/useShoppingCartItem';\r\nimport {savings} from '../../../../../config/constants';\r\nimport SavingsButton from '../../../../../SharedComponents/SavingsButton/SavingsButton';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\n\r\nconst PlaceOrderListRow = (props) => {\r\n const item = props.children;\r\n const useShoppingCartItemProps = useShoppingCartItem.useCartItemMerge(item);\r\n const {dragHandleProps, parentItem} = props;\r\n const showCart = props.showCart;\r\n const [outline, setOutline] = useState('');\r\n const [back, setBack] = useState('');\r\n const [image, setImage] = useState('');\r\n const [description, setDescription] = useState('');\r\n const { priceAndPackSection } = usePlaceOrderListRow.usePriceAndPackSection(item);\r\n const {overlay, setOverlay} = useShoppingCartItem.useOverlay();\r\n\r\n const [isSaving, setIsSaving] = useState(!!item.matchId ? true : false);\r\n\r\n const [tooltipOpen, setTooltipOpen] = useState(false);\r\n const toggle = () => setTooltipOpen(!tooltipOpen);\r\n \r\n const outlineHandler = () => {\r\n let newOutline = (item.isUnpurchasable) ? 'unpurchaseable-outline' : 'main-outline';\r\n newOutline = isSaving ? (item.savings > 0 ? (item.matchType === savings.exactMatch ? 'exact-match-outline' : 'similar-match-outline') : 'cero-match-outline') : newOutline;\r\n setOutline(newOutline);\r\n };\r\n\r\n const imageHandler = () => {\r\n const newImage = item.imageUrl ? item.imageUrl : (item.brandImageUrl ? item.brandImageUrl : null);\r\n setImage(newImage);\r\n };\r\n\r\n useEffect(() => {\r\n setBack((item.isPunchedOut ? ' dim' : ''));\r\n outlineHandler();\r\n imageHandler();\r\n setDescription((item.foodbamCustomDescription ? item.foodbamCustomDescription : '')); \r\n }, []);\r\n\r\n const name = item.name ? item.name : item.description;\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n {(!isSaving) ? '' : (item.savings>0 ? : '') } \r\n
\r\n
\r\n {(!item.isElectronicInvoiceItem) ? null : {isMobile ? ``: `Electronic Invoice`}}\r\n {(!item.isUnpurchasable) ? null : {isMobile ? ``: `Call-In Item`}}\r\n {(!item.orderGuideId) ? null : {isMobile ? ``: `Order Guide`}}\r\n {(!item.isPurchased) ? null : \r\n \r\n {isMobile ? ``: `Purchased`}\r\n \r\n {`Last Purchased ${item.lastPurchasedQty} ${item.unitMeasure} on ${moment(item.lastPurchasedDate).format(\"MM/DD/YYYY\")}`}\r\n \r\n \r\n } \r\n
\r\n
\r\n \r\n \r\n \r\n item\r\n \r\n \r\n \r\n \r\n \r\n \r\n {name.length > 50 ? name.substring(0,50) + '...' : name}\r\n \r\n \r\n \r\n \r\n {item.din}\r\n \r\n \r\n \r\n \r\n 100 ? 'text-truncate' : '')}>\r\n {description}\r\n \r\n {(description.length > 100 ? (click to read more) : null)}\r\n \r\n \r\n \r\n \r\n {item.brand}\r\n \r\n {item.distributor}\r\n \r\n \r\n {item.brand}\r\n {item.distributor}\r\n \r\n \r\n \r\n {priceAndPackSection}\r\n \r\n \r\n \r\n \r\n \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.showSavings && !item.matchId) ? : ''}\r\n
\r\n );\r\n};\r\n\r\n\r\nPlaceOrderListRow.propTypes = {\r\n showCart: PropTypes.bool\r\n};\r\n\r\nPlaceOrderListRow.defaultProps = {\r\n showCart: true\r\n};\r\n\r\nexport default PlaceOrderListRow;","import React, { Fragment, useEffect, useRef } from 'react';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport { Container, Row, Col, Button } from 'reactstrap';\r\nimport usePlaceOrderList from './usePlaceOrderList';\r\nimport useGoTo from '../../../../../SharedComponents/GoTo/useGoTo';\r\nimport './PlaceOrderList.scss';\r\nimport InfiniteScroll from 'react-infinite-scroller';\r\nimport searchBoxImage from '../../../../../assets/images/search-box.png';\r\n// import useMessages from '../../../../../SharedComponents/Messages/useMessages';\r\nimport PlaceOrderListRow from './PlaceOrderListRow';\r\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\r\nimport itemApi from '../../../../../api/itemApi';\r\nimport { useDispatch } from 'react-redux';\r\nimport { saveListItems } from '../../../../../reducers/items/itemsActions';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\n\r\nconst PlaceOrderList = (props) => { \r\n const dispatch = useDispatch();\r\n const { items, sort, page, loadMore, isLoading, getListItems } = usePlaceOrderList.useApi();\r\n const { addSpecialRequest } = useGoTo.useActions();\r\n // const { getMessages, getBroadcastMessages } = useMessages.useApiBroadcast();\r\n \r\n const isDragging = useRef(false);\r\n let dragApi;\r\n const onDragEnd = (result) => {\r\n isDragging.current = false;\r\n if (!result.destination || result.destination.index === result.source.index) return; \r\n const orderedItemList = reorder(items, result.source.index, result.destination.index);\r\n dispatch(saveListItems(items));\r\n\r\n const oldIndex = result.source.index;\r\n const newIndex = result.destination.index;\r\n const special = newIndex === 0 ? 'top' : (newIndex === items.length-1 ? 'bottom': false ); \r\n const tag_id= null;\r\n const itemDistId = orderedItemList[newIndex].itemDistributorId;\r\n let reference_sort_index = newIndex;\r\n let sortedItems = [];\r\n if (newIndex > 0 || newIndex < items.length-1 ){\r\n reference_sort_index = items[newIndex].sortIndex;\r\n sortedItems.push(orderedItemList[newIndex-1].itemDistributorId);\r\n sortedItems.push(orderedItemList[newIndex+1].itemDistributorId);\r\n }else { \r\n reference_sort_index = (newIndex === items.length-1) ? items[oldIndex].sortIndex : items[0].sortIndex;\r\n }\r\n\r\n const params = {\r\n item_distributor_ids: sortedItems,\r\n reference_sort_index: reference_sort_index,\r\n item_distributor_id: itemDistId,\r\n tag_id: tag_id,\r\n special: special\r\n };\r\n\r\n itemApi.orderListItem(params).then(res => {\r\n \r\n }).catch(err => console.error(err));\r\n };\r\n\r\n const reorder = (itemList, startIndex, endIndex) => { \r\n const result = Array.from(itemList);\r\n const [removed] = result.splice(startIndex, 1);\r\n result.splice(endIndex, 0, removed);\r\n const res = result.map((il, i) => (\r\n {\r\n ...il,\r\n sortIndex: i++,\r\n }\r\n )); \r\n return res;\r\n };\r\n\r\n const cancelDragSensor = (api) => {\r\n dragApi = api;\r\n };\r\n\r\n // useEffect(() => {\r\n // getMessages();\r\n // getBroadcastMessages();\r\n // }, []);\r\n \r\n \r\n return (\r\n \r\n 0}>\r\n {if (isDragging.current) { dragApi.tryReleaseLock(); } getListItems(page);}}\r\n hasMore={ loadMore && !isLoading}\r\n useWindow={true}>\r\n\r\n isDragging.current = true}>\r\n \r\n {(provided, snapshot) => {\r\n return (\r\n
\r\n {\r\n items.map((item, i) =>\r\n \r\n {(provided, snapshot) => {\r\n return (\r\n
\r\n \r\n {item}\r\n \r\n \r\n
\r\n );\r\n }}\r\n
\r\n )\r\n }\r\n {provided.placeholder}\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 \r\n Can't find what you are looking for?\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n search box\r\n \r\n \r\n \r\n

Sorry, there are no exact match results found

\r\n

Search Suggestions

\r\n Check your spelling\r\n Try to use less specific words\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default PlaceOrderList;","import axios from 'axios';\r\nimport { limitOptions } from \"../config/constants\";\r\n\r\nconst get = (menuId) => {\r\n const filters = [{\r\n field: 'recipe_menu_category_id',\r\n operator: '=',\r\n value: menuId,\r\n table: 'recipe',\r\n }];\r\n const string = JSON.stringify(filters);\r\n const params = { filters: string };\r\n return axios.get('/recipe', {\r\n params: params\r\n });\r\n};\r\n\r\nconst getInRange = (menuId, posBgnDate, posEndDate, page) => {\r\n const filters = [\r\n {\r\n field: \"recipe_menu_category_id\",\r\n operator: \"=\",\r\n value: menuId,\r\n table: \"recipe\",\r\n },\r\n ];\r\n const string = JSON.stringify(filters);\r\n const params = {\r\n filters: string,\r\n expand: \"posQuantitySold,posTotalSold\",\r\n bgn_date: posBgnDate.format(\"YYYY-MM-DD HH:mm:ss\"),\r\n end_date: posEndDate.format(\"YYYY-MM-DD HH:mm:ss\"),\r\n page: page,\r\n limit: limitOptions.recipes\r\n };\r\n return axios.get(\"/recipe\", {\r\n params: params,\r\n });\r\n};\r\n\r\nconst getAllSubrecipes = (page) => {\r\n const filters = [{\r\n field: 'is_sub_recipe',\r\n operator: '=',\r\n value: 1,\r\n table: 'recipe',\r\n }];\r\n const string = JSON.stringify(filters);\r\n const params = { filters: string, limit: 100, expand: 'menu', page: page };\r\n return axios.get('/recipe', {\r\n params: params\r\n });\r\n};\r\n\r\nconst getAllRecipesBySearch = (page, search) => {\r\n const params = { limit: 10000, page: page };\r\n return axios.get('/recipe', {\r\n params: params\r\n });\r\n};\r\n\r\nconst assingRecipe = (params) => {\r\n return axios.post(`pos/assign-recipe`, params);\r\n}\r\n\r\n\r\nconst getSubrecipes = (recipeId, page, search) => {\r\n const filters = [{\r\n field: 'is_sub_recipe',\r\n operator: '=',\r\n value: 1,\r\n table: 'recipe',\r\n }, {\r\n field: 'id',\r\n operator: '<>',\r\n value: recipeId,\r\n table: 'recipe',\r\n }];\r\n if (search) {\r\n filters.push({\r\n field: 'name',\r\n operator: 'like',\r\n value: search,\r\n table: 'recipe',\r\n });\r\n }\r\n const string = JSON.stringify(filters);\r\n const params = { filters: string, limit: 100, expand: 'menu', page: page };\r\n return axios.get('/recipe', {\r\n params: params\r\n });\r\n};\r\n\r\nconst patchIngredient = (recipeId, id, params) => {\r\n return axios.patch(`/recipe/${recipeId}/ingredient/${id}`, params);\r\n};\r\n\r\nconst postIngredient = (recipeId, params) => {\r\n return axios.post(`/recipe/${recipeId}/ingredient`, params);\r\n};\r\n\r\nconst getRecipe = (recipeId, expand) => {\r\n const params = { expand: expand };\r\n return axios.get(`/recipe/${recipeId}`, {\r\n params: params\r\n });\r\n};\r\n\r\nconst getGenericItem = (itemId, genericId) => {\r\n return axios.get(`recipe/item/${itemId}/genericItem/${genericId}`);\r\n};\r\n\r\nconst getGenericCustomItem = (itemId, genericId) => {\r\n return axios.get(`recipe/item/${itemId}/genericCustomItem/${genericId}`);\r\n};\r\n\r\nconst duplicate = (recipeId) => {\r\n return axios.post(`/recipe/${recipeId}/duplicate`);\r\n};\r\n\r\nconst copyRecipeToAnotherLocation = (recipeId, locationId) => {\r\n return axios.post(`/recipe/${recipeId}/copy-to-location/${locationId}`);\r\n};\r\n\r\nconst print = (recipesId) => {\r\n const params = { recipes: recipesId };\r\n return axios.get(`/recipe/print`, {\r\n params: params\r\n });\r\n};\r\n\r\nconst deleted = (recipeId) => {\r\n return axios.delete(`/recipe/${recipeId}`);\r\n};\r\n\r\nconst deleteIngredient = (rId, ingId) => {\r\n return axios.delete(`/recipe/${rId}/ingredient/${ingId}`);\r\n};\r\n\r\nconst patch = (recipeId, params) => {\r\n return axios.patch(`/recipe/${recipeId}`, params);\r\n};\r\n\r\nconst post = (params) => {\r\n return axios.post(`/recipe`, params);\r\n};\r\n\r\nexport default {\r\n get, getInRange, getRecipe, patchIngredient, duplicate, print, copyRecipeToAnotherLocation,\r\n delete: deleted, post, patch, getGenericItem,\r\n postIngredient, getSubrecipes, deleteIngredient,\r\n getAllSubrecipes, getGenericCustomItem, getAllRecipesBySearch, assingRecipe\r\n};\r\n","import itemApi from \"../../../api/itemApi\"\r\nimport { useState, useEffect, useRef } from \"react\";\r\nimport useInput from \"../../SharedEffects/useInput\";\r\nimport recipeApi from \"../../../api/recipeApi\";\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport useConnection from '../../OfflineMode/useConnection';\r\nimport AlertModal from '../AlertModal/AlertModal';\r\nimport { showModal } from \"../../../reducers/modals/modalsActions\";\r\n\r\nconst useApi = (filters, linkItems, idLabel, initSearch, includeSubrecipe, disabled) => {\r\n const [ items, setItems ] = useState([]);\r\n const [ subrecipeItems, setSubrecipeItems ] = useState([]);\r\n const [ searchEnter, setSearchEnter ] = useState(initSearch);\r\n const [ page, setPage ] = useState(1);\r\n const [ loadMore, setLoadMore] = useState(true);\r\n const [ isLoading, setIsLoading] = useState(false);\r\n const prevFilters = useRef(filters);\r\n const search = useInput.useText(initSearch);\r\n const dispatch = useDispatch();\r\n\r\n const isAllLink = () => {\r\n let all = true;\r\n for (let i = 0; i < items.length; i++) {\r\n let found = false;\r\n for (let ii = 0; ii < linkItems.items.length; ii++) {\r\n const item = items[i];\r\n const linkItem = linkItems.items[ii];\r\n if (item[idLabel] === linkItem[idLabel]) {\r\n found = true;\r\n }\r\n }\r\n if (!found) {\r\n all = false;\r\n break;\r\n }\r\n }\r\n\r\n return all;\r\n };\r\n\r\n const linkAll = () => {\r\n if (isAllLink()) {\r\n linkItems.clear();\r\n } else {\r\n linkItems.add(items);\r\n }\r\n };\r\n \r\n const getListItems = (page, items, filters, search, loadMoreForce) => {\r\n if(disabled){\r\n dispatch(showModal(AlertModal, {message:'Please enable online mode to add a new generic ingredient.'}));\r\n return;\r\n }\r\n if (page && (loadMore || loadMoreForce)) {\r\n setIsLoading(true);\r\n const sort = {id:7, name:\"relevant\", type:1, desc:\"Sort by relevance\"};\r\n itemApi.getList(sort, filters, page, search).then(res => {\r\n setIsLoading(false);\r\n const loadMoreNew = res._meta.pageCount > res._meta.currentPage;\r\n const pageNew = loadMoreNew ? page + 1 : 1;\r\n const data = res.data.map(d => {\r\n return {\r\n ...d,\r\n uniqid: idLabel+'_'+d[idLabel],\r\n quantity: 0\r\n };\r\n })\r\n setLoadMore(loadMoreNew);\r\n if (page === 1) {\r\n setItems(data);\r\n } else {\r\n setItems(items.concat(data));\r\n }\r\n setPage(pageNew);\r\n });\r\n }\r\n };\r\n\r\n const onClear = () => {\r\n search.clearValue();\r\n setSearchEnter('');\r\n setPage(1);\r\n setLoadMore(true);\r\n setIsLoading(false);\r\n setItems([]);\r\n // Set reset values, values get update in the next render\r\n getListItems(1, [], filters, \"\", true);\r\n };\r\n\r\n const onSearch = (s) => {\r\n setPage(1);\r\n setLoadMore(true);\r\n setIsLoading(false);\r\n setItems([]);\r\n setSearchEnter(s);\r\n // Set reset values, values get update in the next render\r\n getListItems(1, [], filters, s, true);\r\n };\r\n\r\n useEffect(() => {\r\n if ( JSON.stringify(filters) !== JSON.stringify(prevFilters.current)) {\r\n setPage(1);\r\n setLoadMore(true);\r\n setIsLoading(false);\r\n setItems([]);\r\n // Set reset values, values get update in the next render\r\n getListItems(1, [], filters, search.value);\r\n prevFilters.current = filters;\r\n }\r\n }, [filters]);\r\n\r\n const editQuantity = (uniqid, newQuantity) => {\r\n setItems(items.map(i => {\r\n if (i.uniqid !== uniqid) return i;\r\n return {\r\n ...i,\r\n quantity: newQuantity\r\n }\r\n }))\r\n };\r\n\r\n const getSubrecipeFirst = (cb) => {\r\n if (!includeSubrecipe) {\r\n cb();\r\n } else {\r\n let page = 1;\r\n let subrecipes = [];\r\n const load = () => {\r\n recipeApi.getAllSubrecipes(page).then((res) => {\r\n subrecipes.push(...res.data.map(d => {\r\n return {\r\n ...d,\r\n uniqid: 'subrecipeId_'+d.id,\r\n subRecipeId: d.id\r\n }\r\n }));\r\n const loadMore = res._meta.pageCount > res._meta.currentPage;\r\n if (loadMore) {\r\n page = page + 1;\r\n load();\r\n } else {\r\n setSubrecipeItems(subrecipes);\r\n cb();\r\n }\r\n }).catch(err => console.error(err));\r\n };\r\n load();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getSubrecipeFirst(() => {\r\n getListItems(page, items, filters, search.value);\r\n });\r\n }, []);\r\n\r\n return {\r\n page, items, getListItems, loadMore, isLoading, searchEnter,\r\n linkAll, isAllLink, onSearch, onClear, search, subrecipeItems, editQuantity\r\n }\r\n};\r\n\r\nconst useFilters = (distributors, shoppingLists, pastOrders) => {\r\n const [ showFilters, setShowFilters ] = useState(false);\r\n const init = { distributorIds: [], shoppingIds: [], pastOrderIds: [] };\r\n const [ filters, setFilters ] = useState(init);\r\n\r\n const toggleFilters = () => {\r\n distributors.set(distributors.value.map(d => {\r\n return {\r\n ...d,\r\n check: filters.distributorIds.includes(d.id)\r\n };\r\n }))\r\n shoppingLists.set(shoppingLists.value.map(s => {\r\n return {\r\n ...s,\r\n check: filters.shoppingIds.includes(s.id)\r\n };\r\n }))\r\n pastOrders.set(pastOrders.value.map(o => {\r\n return {\r\n ...o,\r\n check: filters.pastOrderIds.includes(o.id)\r\n };\r\n }))\r\n setShowFilters(!showFilters);\r\n };\r\n\r\n const apply = () => {\r\n setFilters({\r\n distributorIds: distributors.value.filter(d => d.check).map(d => d.id),\r\n shoppingIds: shoppingLists.value.filter(s => s.check).map(s => s.id),\r\n pastOrderIds: pastOrders.value.filter(o => o.check).map(o => o.id),\r\n });\r\n toggleFilters();\r\n };\r\n\r\n const reset = () => {\r\n distributors.set(distributors.value.map(d => {\r\n return {\r\n ...d,\r\n check: false\r\n };\r\n }))\r\n shoppingLists.set(shoppingLists.value.map(s => {\r\n return {\r\n ...s,\r\n check: false\r\n };\r\n }))\r\n pastOrders.set(pastOrders.value.map(o => {\r\n return {\r\n ...o,\r\n check: false\r\n };\r\n }))\r\n setFilters(init);\r\n };\r\n\r\n return {\r\n toggleFilters, filters, setFilters, showFilters,\r\n actions: { apply, reset }\r\n };\r\n};\r\n\r\nconst useLink = () => {\r\n const [ linkItems, setLinkItems ] = useState([]);\r\n\r\n const add = (comingItem, clear) => {\r\n const alreadyOnList = linkItems.map(i => { return i.uniqid})\r\n let item = [];\r\n if (Array.isArray(comingItem)) {\r\n item = comingItem;\r\n } else {\r\n item.push(comingItem);\r\n }\r\n if (clear) {\r\n setLinkItems(item);\r\n } else {\r\n setLinkItems(linkItems.concat(item.filter(i => !alreadyOnList.includes(i.uniqid))));\r\n }\r\n };\r\n\r\n const remove = (id) => {\r\n setLinkItems(linkItems.filter(l => l.uniqid !== id));\r\n };\r\n\r\n const clear = () => {\r\n setLinkItems([]);\r\n };\r\n\r\n return {\r\n add, remove, clear, items: linkItems, set: setLinkItems\r\n }\r\n};\r\n\r\nconst useModalConnection = () => {\r\n const [disabled, setDisabled] = useState(false);\r\n let {status} = useConnection.useStatus();\r\n\r\n useEffect(() => {\r\n setDisabled(status ? false : true);\r\n }, [status]);\r\n\r\n return { disabled, setDisabled }\r\n};\r\n\r\nexport default {\r\n useApi, useFilters, useLink, useModalConnection\r\n};","import React from 'react';\r\nimport { FaLink } from 'react-icons/fa';\r\nimport { colors } from '../../config/constants';\r\nimport { Button } from 'reactstrap';\r\n\r\nconst LinkButton = ({large, isActive, onClick, ...props}) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default LinkButton;","import React, { useState } from 'react';\r\nimport PlusButton from '../../PlusButton/PlusButton';\r\nimport MinusButton from '../../MinusButton/MinusButton';\r\nimport useInput from '../../SharedEffects/useInput';\r\nimport { Col, Input, Row } from 'reactstrap';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\nimport Circle from '../../Icons/Circle/Circle';\r\n\r\nconst AddFoodbamItemModalCart = (props) => {\r\n const { unitMeasure, overlay, setOverlay } = props;\r\n const quantityInput = useInput.useText(0, { isNumber: { min: 0 }, value: props.quantity, set: (newValue) => props.editQuantity(props.uniqid, newValue) });\r\n\r\n const clickButton = (val) => {\r\n quantityInput.setValue(val);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n setOverlay(!overlay)}/>\r\n \r\n \r\n \r\n \r\n clickButton(quantityInput.value - 1)} isBlue isActive={quantityInput.value > 0} />\r\n \r\n \r\n \r\n \r\n \r\n {unitMeasure}\r\n \r\n \r\n clickButton(quantityInput.value + 1)} isBlue isActive={quantityInput.value > 0} />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AddFoodbamItemModalCart;","import React, { useState } from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\nimport noImage from '../../../assets/images/no-image.png';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\nimport numeral from 'numeral';\r\nimport { isMobile } from 'react-device-detect';\r\nimport LinkButton from '../../LinkButton/LinkButton';\r\nimport PlusButton from '../../PlusButton/PlusButton';\r\nimport subrecipeImage from '../../../assets/images/subrecipe-image.png';\r\nimport AddFoodbamItemModalCart from './AddFoodbamItemModalCart';\r\n\r\nconst AddFoodbamItemModalRow = (props) => {\r\n const {\r\n description, imageUrl, brandImageUrl, isLink, linkItems, din,\r\n brand, distributor, price, packSize, item, onAdd, exit, isOrder,\r\n isSubRecipe, name, uniqid\r\n } = props;\r\n\r\n const isLinkActive = linkItems.items.filter(l => l.uniqid === uniqid)[0] ? true : false;\r\n\r\n const [overlay, setOverlay] = useState(false);\r\n\r\n const image = isSubRecipe ? subrecipeImage : (imageUrl ? imageUrl : (brandImageUrl ? brandImageUrl : noImage));\r\n\r\n const toggleActive = () => {\r\n if (!isLinkActive) {\r\n linkItems.add(item);\r\n } else {\r\n linkItems.remove(uniqid);\r\n }\r\n };\r\n\r\n const action = () => {\r\n if (isLink) {\r\n toggleActive();\r\n } else {\r\n if (onAdd) {\r\n onAdd(item);\r\n }\r\n exit();\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n item\r\n \r\n \r\n \r\n \r\n {description || name}\r\n \r\n \r\n {din}\r\n \r\n \r\n {brand}\r\n {distributor}\r\n \r\n \r\n {numeral(price).format('$0,0.00')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {description || name}\r\n \r\n \r\n {din}\r\n \r\n \r\n {brand}\r\n {distributor}\r\n \r\n \r\n {numeral(price).format('$0,0.00')}\r\n {packSize}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 AddFoodbamItemModalRow;","import React, { Fragment } from 'react';\r\nimport { Row, Col, Button } from 'reactstrap';\r\nimport InputSearch from '../../InputSearch/InputSearch';\r\nimport { IoIosOptions } from 'react-icons/io';\r\nimport { colors } from '../../../config/constants';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\nimport { isMobile } from 'react-device-detect';\r\nimport LinkButton from '../../LinkButton/LinkButton';\r\n\r\nconst AddFoodbamItemModalHeader = (props) => {\r\n const {\r\n search, onClear, onSearch, toggleFilters, isLink, linkAll, isAllLink, showFilters, disabled\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Link All Items \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AddFoodbamItemModalHeader;","import React, { Fragment, useState } from 'react';\r\nimport { Row, Col, Input } from 'reactstrap';\r\nimport { FaCaretDown, FaCaretUp } from 'react-icons/fa';\r\nimport { colors, unitsOfMeasure } from '../../../config/constants';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\nimport { isMobile } from 'react-device-detect';\r\nimport Select from 'react-select';\r\n\r\nconst AddCustomItemModalContent = (props) => {\r\n const {\r\n description, unitMeasure, distributor, price, packSize, din, brand,\r\n } = props;\r\n const [showMore, setShowMore] = useState(false);\r\n return (\r\n \r\n \r\n Description *\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Unit of Measure *\r\n Distributor *\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Price *\r\n Pack Size *\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n /\r\n \r\n \r\n \r\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 AddCustomItemModalContent;","import React from 'react';\r\nimport useModal from '../useModal';\r\nimport { Modal, ModalBody, ModalHeader, Col } from 'reactstrap';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\n\r\nconst OptionsModal = (props) => {\r\n const { id, options, title } = props;\r\n const modalProps = useModal(id, true);\r\n\r\n const optionsMap = options.map((o, i) =>\r\n { if (o.onClick && !o.disabled) o.onClick(); modalProps.toggle(); }} className={'item' + (o.selected ? ' bg-light' : '') + (o.disabled ? ' bg-light text-light-blue' : '') + (o.className ? ' '+o.className : '')}>\r\n {o.label}\r\n \r\n
{o.description | o.name | o.label}\r\n
\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n {optionsMap}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default OptionsModal;","import { useState, useEffect } from \"react\";\r\nimport useInput from \"../../SharedEffects/useInput\";\r\nimport { packSizeUomsCustomItem, unitsOfMeasure } from \"../../../config/constants\";\r\nimport { isMobile } from \"react-device-detect\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { showModal } from \"../../../reducers/modals/modalsActions\";\r\nimport OptionsModal from \"../OptionsModal/OptionsModal\";\r\nimport useConnection from '../../OfflineMode/useConnection';\r\nimport AlertModal from '../AlertModal/AlertModal';\r\n\r\nconst useForm = (init) => {\r\n const dispatch = useDispatch();\r\n const packSizeUomOptions = packSizeUomsCustomItem.map(u => {\r\n return {\r\n label: u.shorthand,\r\n value: u\r\n };\r\n });\r\n\r\n const packSizeUom = init && init.packSize && init.packSize.split(' ')[1];\r\n const selectedPackSizeUomIndex = packSizeUom ? packSizeUomOptions.findIndex(u => u.label === packSizeUom) : 0;\r\n\r\n const unitOfMeasureOptions = unitsOfMeasure.map(u => {\r\n return {\r\n label: u.name,\r\n value: u\r\n };\r\n });\r\n\r\n const quantity = useInput.useText('', {isNumber: {min: 1, allowEmpty: true}});\r\n const description = useInput.useText(init ? init.description : '');\r\n const unitMeasure = useInput.useObject(init ? unitOfMeasureOptions.filter( u => u.label === init.unitMeasure)[0] : unitOfMeasureOptions[0]);\r\n const distributor = useInput.useText(init ? init.distributor : '');\r\n const price = useInput.useText(init ? init.price : '', {isNumber: {min: 0, allowEmpty: true}});\r\n const packSize = {\r\n outerPack: useInput.useText(init ? init.unitQuantity : '', {isNumber: {min: 0, allowEmpty: true}}),\r\n innerPack: useInput.useText(init ? init.unitSize : '', {isNumber: {min: 0, allowEmpty: true}}),\r\n uom: useInput.useObject(packSizeUomOptions[selectedPackSizeUomIndex])\r\n };\r\n const din = useInput.useText(init ? init.din : '');\r\n const brand = useInput.useText(init ? init.brand : '');\r\n\r\n const openUnitOfMeasure = () => {\r\n const optionsProps = {\r\n options: unitOfMeasureOptions.map(u => {\r\n return {\r\n ...u,\r\n selected: u.label === unitMeasure.value.label,\r\n onClick: () => { unitMeasure.set(u) }\r\n }\r\n })\r\n };\r\n dispatch(showModal(OptionsModal, optionsProps));\r\n };\r\n\r\n const openPackSizeUom = () => {\r\n const optionsProps = {\r\n options: packSizeUomOptions.map(u => {\r\n return {\r\n ...u,\r\n selected: u.label === packSize.uom.value.label,\r\n onClick: () => { packSize.uom.set(u) }\r\n }\r\n })\r\n };\r\n dispatch(showModal(OptionsModal, optionsProps));\r\n };\r\n\r\n return {\r\n description: { value: description.value, onChange: description.set },\r\n quantity : { value: quantity.value, onChange: quantity.set},\r\n unitMeasure: {\r\n value: unitMeasure.value,\r\n onChange: !isMobile && unitMeasure.set,\r\n options: unitOfMeasureOptions,\r\n components: isMobile && {Menu: () => null},\r\n onMenuOpen: isMobile && openUnitOfMeasure\r\n },\r\n distributor: { value: distributor.value, onChange: distributor.set },\r\n price: { value: price.value, onChange: price.set },\r\n packSize: {\r\n outerPack: { value: packSize.outerPack.value, onChange: packSize.outerPack.set },\r\n innerPack: { value: packSize.innerPack.value, onChange: packSize.innerPack.set },\r\n uom: {\r\n value: packSize.uom.value,\r\n onChange: !isMobile && packSize.uom.set,\r\n options: packSizeUomOptions,\r\n components: isMobile && {Menu: () => null, IndicatorsContainer: () => null},\r\n onMenuOpen: isMobile && openPackSizeUom\r\n }\r\n },\r\n din: { value: din.value, onChange: din.set },\r\n brand: { value: brand.value, onChange: brand.set },\r\n }\r\n};\r\n\r\nconst useModalConnection = () => {\r\n const [disabled, setDisabled] = useState(false);\r\n let {status} = useConnection.useStatus();\r\n\r\n useEffect(() => {\r\n setDisabled(status ? false : true);\r\n }, [status]);\r\n\r\n return { disabled, setDisabled }\r\n};\r\n\r\nexport default {\r\n useForm, useModalConnection\r\n};\r\n","import React from 'react';\r\nimport { Modal, ModalHeader, ModalBody, Row, Col, Button, ModalFooter, Input } from 'reactstrap';\r\nimport useModal from '../useModal';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { useDispatch } from 'react-redux';\r\nimport { showModal } from '../../../reducers/modals/modalsActions';\r\nimport AddFoodbamItemModal from '../AddFoodbamItemModal/AddFoodbamItemModal';\r\nimport AddCustomItemModalContent from './AddCustomItemModalContent';\r\nimport useAddCustomItemModal from './useAddCustomItemModal';\r\nimport validate from 'validate.js';\r\nimport AlertModal from '../AlertModal/AlertModal';\r\n\r\nconst AddCustomItemModal = (props) => {\r\n const dispatch = useDispatch();\r\n const {\r\n id, title, foodbamItemProps, onSave,\r\n hideSearch, init\r\n } = props;\r\n\r\n const { disabled } = useAddCustomItemModal.useModalConnection();\r\n\r\n const modalProps = useModal(id, isMobile, true);\r\n const formProps = useAddCustomItemModal.useForm(init);\r\n\r\n const clickSearch = () => {\r\n modalProps.toggle();\r\n dispatch(showModal(AddFoodbamItemModal, foodbamItemProps));\r\n };\r\n\r\n const saveIsDisabled = () => {\r\n const data = {\r\n description: formProps.description.value,\r\n distributor: formProps.distributor.value,\r\n price: formProps.price.value,\r\n packSize: {\r\n outerPack: formProps.packSize.outerPack.value,\r\n innerPack: formProps.packSize.innerPack.value,\r\n }\r\n };\r\n const constrains = {\r\n description: {presence: {allowEmpty: false}, length: {minimum: 2}},\r\n distributor: {presence: {allowEmpty: false}, length: {minimum: 2}},\r\n price: {presence: {allowEmpty: false}, numericality: true},\r\n \"packSize.outerPack\": {presence: {allowEmpty: false}, numericality: {onlyInteger: false, greaterThanOrEqualTo: 0}},\r\n \"packSize.innerPack\": {presence: {allowEmpty: false}, numericality: {onlyInteger: false, greaterThanOrEqualTo: 0}}\r\n };\r\n return validate(data, constrains) ? true : false;\r\n }\r\n\r\n const clickSave = () => {\r\n if(disabled){\r\n dispatch(showModal(AlertModal, {message:'Please enable online mode to add a new generic ingredient.'}));\r\n return;\r\n }\r\n if (onSave) {\r\n const data = {\r\n description: formProps.description.value,\r\n unitMeasure: formProps.unitMeasure.value.value,\r\n distributor: formProps.distributor.value,\r\n price: formProps.price.value,\r\n packSize: {\r\n outerPack: formProps.packSize.outerPack.value,\r\n innerPack: formProps.packSize.innerPack.value,\r\n uom: formProps.packSize.uom.value.value\r\n },\r\n din: formProps.din.value,\r\n brand: formProps.brand.value\r\n };\r\n onSave(data);\r\n };\r\n modalProps.toggle();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 AddCustomItemModal;\r\n","import React from 'react';\r\nimport { Modal, ModalHeader, ModalBody, Row, Col, Button, ModalFooter } from 'reactstrap';\r\nimport useModal from '../useModal';\r\nimport InfiniteScroll from 'react-infinite-scroller';\r\nimport useAddFoodbamItemModal from './useAddFoodbamItemModal';\r\nimport AddFoodbamItemModalRow from './AddFoodbamItemModalRow';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\nimport useSearchFiltersModal from '../SearchFiltersModal/useSearchFiltersModal';\r\nimport SearchFilterModalCheckbox from '../SearchFiltersModal/SearchFilterModalCheckbox';\r\nimport { isMobile } from 'react-device-detect';\r\nimport AddFoodbamItemModalHeader from './AddFoodbamItemModalHeader';\r\nimport { useDispatch } from 'react-redux';\r\nimport { showModal } from '../../../reducers/modals/modalsActions';\r\nimport AddCustomItemModal from '../AddCustomItemModal/AddCustomItemModal';\r\nimport AlertModal from '../AlertModal/AlertModal';\r\n\r\nconst AddFoodbamItemModal = (props) => {\r\n const dispatch = useDispatch();\r\n const {\r\n id, title, isLink, onAdd, onAddCustom,\r\n initSearch, initItems, idLabel, includeSubrecipe,\r\n clickCustomCustom, isOrder\r\n } = props;\r\n \r\n const { disabled } = useAddFoodbamItemModal.useModalConnection();\r\n\r\n const modalProps = useModal(id, isMobile, true);\r\n\r\n const linkItems = useAddFoodbamItemModal.useLink();\r\n const { distributorsMapDesktop, distributorsMapMobile, allDistributors, toggleAllDistributors, distributors, setDistributors } = useSearchFiltersModal.useDistributors([]);\r\n const { shoppingMapDesktop, shoppingMapMobile, allShoppingLists, toggleAllShoppingLists, shoppingLists, setShoppingLists } = useSearchFiltersModal.useShoppingLists([]);\r\n const { orderMapDesktop, orderMapMobile, allPastOrders, toggleAllPastOrders, pastOrders, setPastOrders, isLoadingOrders } = useSearchFiltersModal.usePastOrders([]);\r\n const { filters, showFilters, toggleFilters, actions } = useAddFoodbamItemModal.useFilters({ value: distributors, set: setDistributors }, { value: shoppingLists, set: setShoppingLists }, { value: pastOrders, set: setPastOrders });\r\n const {\r\n page, items, getListItems, loadMore, isLoading, searchEnter,\r\n linkAll, isAllLink, onSearch, onClear, search, subrecipeItems, editQuantity\r\n } = useAddFoodbamItemModal.useApi(filters, linkItems, idLabel, initSearch, includeSubrecipe, disabled);\r\n\r\n const clickSave = () => {\r\n if(disabled){\r\n dispatch(showModal(AlertModal, {message:'Please enable online mode to add a new generic ingredient.'}));\r\n return;\r\n }\r\n if (onAdd) {\r\n if (isOrder) {\r\n const newItems = items.filter(it => it.quantity);\r\n onAdd([...initItems, ...newItems], newItems);\r\n } else {\r\n onAdd([...initItems, ...linkItems.items], linkItems.items);\r\n }\r\n }\r\n modalProps.toggle();\r\n };\r\n\r\n const clickCustom = () => {\r\n const { id, ...allProps } = props;\r\n if (clickCustomCustom) {\r\n modalProps.toggle();\r\n clickCustomCustom();\r\n } else {\r\n const customModalProps = {\r\n title: 'Add Custom Item',\r\n onSave: onAddCustom,\r\n foodbamItemProps: allProps\r\n };\r\n modalProps.toggle();\r\n dispatch(showModal(AddCustomItemModal, customModalProps));\r\n }\r\n };\r\n\r\n const initItemsIds = initItems.filter(i => !i.isSubRecipe && !i.isCustomItem).map(i => i[idLabel]);\r\n const initItemsSubrecipeIds = initItems.filter(i => i.isSubRecipe).map(i => i.subRecipeId);\r\n\r\n const itemsArray = [...subrecipeItems.filter(s => !initItemsSubrecipeIds.includes(s.id)).filter(s => searchEnter && s.name.toLowerCase().includes(searchEnter.toLowerCase())), ...items.filter(i => !initItemsIds.includes(i[idLabel]) && !i.isPunchedOut)];\r\n\r\n const noItems = itemsArray.length === 0 && !isLoading;\r\n\r\n const itemsMap = itemsArray.map((item, i) =>\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n No results found\r\n \r\n \r\n { getListItems(page, items, filters, search.value) }}\r\n hasMore={loadMore && !isLoading}\r\n useWindow={false}\r\n >\r\n {itemsMap}\r\n \r\n \r\n \r\n \r\n \r\n \r\n No results found\r\n \r\n \r\n getListItems(page, items, filters, search.value)}\r\n hasMore={loadMore && !isLoading}\r\n useWindow={false}\r\n >\r\n {itemsMap}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {distributorsMapMobile}\r\n
\r\n \r\n
\r\n {shoppingMapMobile}\r\n
\r\n \r\n
\r\n { isLoadingOrders ? Loading ... : ( pastOrders.length > 0 ? orderMapMobile : '') }\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {distributorsMapDesktop}\r\n \r\n \r\n {shoppingMapDesktop}\r\n \r\n \r\n { isLoadingOrders ? Loading ... : ( pastOrders.length > 0 ? orderMapDesktop : '') }\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 AddFoodbamItemModal;","import { baseValueConversion, getTypeConversion } from \"../../config/constants\";\r\nimport { fraction, number } from 'mathjs';\r\nimport validate from 'validate.js';\r\n\r\nconst usePackSize = (unitQuantity, unitSize, packSizeUom, newUnit) => {\r\n let nVal = \"\";\r\n let conversion = 0;\r\n const baseValue = baseValueConversion[newUnit.type ? newUnit.type : getTypeConversion[newUnit.label]];\r\n if (baseValue) {\r\n if (packSizeUom) {\r\n if (baseValue[packSizeUom.toLowerCase()]) {\r\n conversion = unitSize * ( baseValue[newUnit.label] / baseValue[packSizeUom.toLowerCase()] );\r\n conversion = Math.round(conversion * 100) / 100;\r\n nVal = unitQuantity+'/'+conversion+' '+newUnit.label;\r\n }\r\n }\r\n }\r\n return nVal;\r\n};\r\n\r\nconst useUnitPrice = (price, unitPrice, finalPackSize, packSizeUom, newUnit) => {\r\n const {unitQuantity, unitSize} = useGetPackSizeParts(finalPackSize);\r\n const baseValue = baseValueConversion[newUnit.type ? newUnit.type : getTypeConversion[newUnit.label]];\r\n let newUnitPrice = unitPrice;\r\n if (baseValue) {\r\n if (packSizeUom) {\r\n if (baseValue[packSizeUom.toLowerCase()]){\r\n if(unitQuantity && unitSize){\r\n const nUnitPrice = price / (unitQuantity*unitSize);\r\n newUnitPrice = Math.round(nUnitPrice * 100) / 100;\r\n }else{\r\n newUnitPrice = unitPrice * ( baseValue[packSizeUom.toLowerCase()] / baseValue[newUnit.label] );\r\n newUnitPrice = Math.round(unitPrice * 100) / 100;\r\n }\r\n\r\n }\r\n }\r\n }\r\n return newUnitPrice;\r\n};\r\n\r\nconst useGetPackSizeParts = (packSize) => {\r\n let unitQuantity = null;\r\n let unitSize = null;\r\n if (typeof packSize === 'string'){\r\n if(packSize){\r\n // console.log('packSize',packSize)\r\n const nPackSize = packSize;\r\n const parts = nPackSize.split(' ');\r\n const units = parts[0].split('/');\r\n unitQuantity = units[0];\r\n unitSize = units[1];\r\n }\r\n }\r\n\r\n return {unitQuantity, unitSize};\r\n};\r\n\r\nconst usePackSizeParts = (unitQuantity, unitSize, packSizeUom, newUnit) => {\r\n let nVal = \"\";\r\n let conversion = 0;\r\n const baseValue = baseValueConversion[newUnit.type ? newUnit.type : getTypeConversion[newUnit.label]];\r\n if (baseValue) {\r\n if (packSizeUom) {\r\n if (baseValue[packSizeUom.toLowerCase()]) {\r\n conversion = unitSize * ( baseValue[newUnit.label] / baseValue[packSizeUom.toLowerCase()] );\r\n conversion = Math.round(conversion * 100) / 100;\r\n nVal = unitQuantity+'/'+conversion+' '+newUnit.label;\r\n }\r\n }\r\n }\r\n return {nVal, conversion, newUnit};\r\n};\r\n\r\nconst useConvert = (input, fromUnit, toUnit) => {\r\n var num = validate.single(input, {fraction: {strict: true}}) ? 0 : input;\r\n let nVal = num ? number(fraction(num)) : 0;\r\n const baseValue = baseValueConversion[getTypeConversion[fromUnit && fromUnit.toLowerCase()]];\r\n if (baseValue) {\r\n if (baseValue[ toUnit && toUnit.toLowerCase()]) {\r\n nVal = nVal * ( baseValue[toUnit && toUnit.toLowerCase()] / baseValue[fromUnit && fromUnit.toLowerCase()] );\r\n nVal = Math.round(nVal * 100) / 100;\r\n }\r\n }\r\n return nVal;\r\n};\r\n\r\nconst useCanConvert = (fromUnit, toUnit) => {\r\n const baseValue = baseValueConversion[getTypeConversion[fromUnit && fromUnit.toLowerCase()]];\r\n if (baseValue) {\r\n if (baseValue[toUnit && toUnit.toLowerCase()]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\r\n\r\nconst useConvertAll = () => {\r\n const convertAllBase = (item, unitId, units, itemFullPrice, isCustomPackSizeProp) => {\r\n const {\r\n price, unitPrice, name,\r\n isCustomPackSize, packSize, customPackSize, packSizeUom,\r\n unitQuantity, unitSize, unitType\r\n } = item;\r\n\r\n const fullPrice = !itemFullPrice ? price : itemFullPrice;\r\n const isCustomPackSizeFull = (isCustomPackSizeProp !== undefined) ? isCustomPackSizeProp : (customPackSize ? !(customPackSize === packSize) : false);\r\n\r\n const bUnit = (!!unitId) ? units.filter(u => u.unitId === unitId)[0] : {id: null};\r\n const initPackSize = isCustomPackSizeFull ? customPackSize : packSize;\r\n const initUnitPrice = unitPrice;\r\n const initPackSizeUom = packSizeUom;\r\n\r\n const fixedPackSize = convertPacksize(unitQuantity, unitSize, initPackSizeUom, bUnit);\r\n const finalPackSize = (!!unitId) ? fixedPackSize : initPackSize;\r\n let finalPackSizeUom = (!!unitId) ? (finalPackSize ? bUnit.label : initPackSizeUom) : initPackSizeUom;\r\n\r\n const unit = (isCustomPackSizeFull || !!unitId) ? bUnit : {type: unitType, label: finalPackSizeUom};\r\n const fixedUnitPrice = convertUnitPrice(fullPrice, initUnitPrice, finalPackSize, finalPackSizeUom, unit);\r\n let finalUnitPrice = fullPrice === 0 ? 0 : fixedUnitPrice;\r\n\r\n const unfixedUnitPrice = convertUnfixedUnitPrice(fullPrice, initUnitPrice, finalPackSize, finalPackSizeUom, unit);\r\n const unfixedFinalUnitPrice = fullPrice === 0 ? 0 : unfixedUnitPrice;\r\n\r\n if (!item.isCatchWeight && item.packSizeUom != 'lb' && unitSize < 1) {\r\n // console.log('item', item);\r\n // console.log('finalPackSizeUom', finalPackSizeUom);\r\n // console.log('finalPackSize', finalPackSize);\r\n // console.log('unitQuantity', unitQuantity);\r\n // console.log('unitSize', unitSize);\r\n // console.log('finalUnitPrice', finalUnitPrice);\r\n finalUnitPrice = itemFullPrice / unitQuantity;\r\n // console.log('finalUnitPrice', finalUnitPrice);\r\n finalPackSizeUom = unitSize + ' ' + finalPackSizeUom;\r\n }\r\n\r\n return {finalPackSize, finalPackSizeUom, finalUnitPrice, unfixedFinalUnitPrice};\r\n };\r\n\r\n const convertAllFromBase = (item, unitId, units, itemFullPrice, unitPrice, isCustomPackSize, customPackSize, unitQuantity, unitSize) => {\r\n const {\r\n price,\r\n packSize, packSizeUom,\r\n unitType\r\n } = item;\r\n\r\n const fullPrice = itemFullPrice;\r\n\r\n const bUnit = (!!unitId) ? units.filter(u => u.unitId === unitId)[0] : {id: null};\r\n const initPackSize = isCustomPackSize ? customPackSize : packSize;\r\n const initUnitPrice = unitPrice;\r\n const initPackSizeUom = packSizeUom;\r\n\r\n const fixedPackSize = convertPacksize(unitQuantity, unitSize, initPackSizeUom, bUnit);\r\n const finalPackSize = (!!unitId) ? fixedPackSize : initPackSize;\r\n const finalPackSizeUom = (!!unitId) ? (finalPackSize ? bUnit.label : initPackSizeUom) : initPackSizeUom;\r\n\r\n const unit = (isCustomPackSize || !!unitId) ? bUnit : {type: unitType, label: finalPackSizeUom};\r\n const fixedUnitPrice = convertUnitPrice(fullPrice, initUnitPrice, finalPackSize, finalPackSizeUom, unit);\r\n const finalUnitPrice = fullPrice === 0 ? 0 : fixedUnitPrice;\r\n\r\n return {finalPackSize, finalPackSizeUom, finalUnitPrice};\r\n };\r\n\r\n const convertAll = (item, unitToConvert, itemFullPrice) => {\r\n const {\r\n price, unitPrice, //unitToConvert,\r\n isCustomPackSize, packSize, customPackSize, packSizeUom,\r\n unitQuantity, unitSize, unitType\r\n } = item;\r\n\r\n const fullPrice = !itemFullPrice ? price : itemFullPrice;\r\n\r\n const initPackSize = isCustomPackSize ? customPackSize : packSize;\r\n const initUnitPrice = unitPrice;\r\n const initPackSizeUom = packSizeUom;\r\n\r\n const fixedPackSize = convertPacksize(unitQuantity, unitSize, initPackSizeUom, unitToConvert.value);\r\n const finalPackSize = (unitToConvert.label !== 'Original') ? fixedPackSize : initPackSize;\r\n let finalPackSizeUom = (unitToConvert.label !== 'Original') ? (finalPackSize ? unitToConvert.label : initPackSizeUom) : initPackSizeUom;\r\n\r\n const unit = (isCustomPackSize || unitToConvert.label !== 'Original') ? unitToConvert.value : {type: unitType, label: finalPackSizeUom};\r\n const fixedUnitPrice = convertUnitPrice(fullPrice, initUnitPrice, finalPackSize, finalPackSizeUom, unit);\r\n let finalUnitPrice = fullPrice === 0 ? 0 : fixedUnitPrice;\r\n\r\n if (!item.isCatchWeight && item.packSizeUom != 'lb' && unitSize < 1) {\r\n // console.log('item', item);\r\n // console.log('finalPackSizeUom', finalPackSizeUom);\r\n // console.log('finalPackSize', finalPackSize);\r\n // console.log('unitQuantity', unitQuantity);\r\n // console.log('unitSize', unitSize);\r\n // console.log('finalUnitPrice', finalUnitPrice);\r\n finalUnitPrice = itemFullPrice / unitQuantity;\r\n // console.log('finalUnitPrice', finalUnitPrice);\r\n finalPackSizeUom = '(' + unitSize + ' ' + finalPackSizeUom + ')';\r\n }\r\n\r\n return {finalPackSize, finalPackSizeUom, finalUnitPrice};\r\n };\r\n\r\n const convertPacksize = (unitQuantity, unitSize, packSizeUom, newUnit) => {\r\n let nVal = \"\";\r\n let conversion = 0;\r\n const baseValue = baseValueConversion[newUnit.type ? newUnit.type : getTypeConversion[newUnit.label]];\r\n if (baseValue) {\r\n if (packSizeUom) {\r\n if (baseValue[packSizeUom.toLowerCase()]) {\r\n conversion = unitSize * ( baseValue[newUnit.label] / baseValue[packSizeUom.toLowerCase()] );\r\n conversion = Math.round(conversion * 100) / 100;\r\n nVal = unitQuantity+'/'+conversion+' '+newUnit.label;\r\n }\r\n }\r\n }\r\n return nVal;\r\n };\r\n\r\n const convertUnitPrice = (price, unitPrice, finalPackSize, packSizeUom, newUnit) => {\r\n const {unitQuantity, unitSize} = getPacksizeParts(finalPackSize);\r\n const baseValue = baseValueConversion[newUnit.type ? newUnit.type : getTypeConversion[newUnit.label]];\r\n let newUnitPrice = unitPrice;\r\n if (baseValue) {\r\n if (packSizeUom) {\r\n if (baseValue[packSizeUom.toLowerCase()]){\r\n if(unitQuantity && unitSize){\r\n const nUnitPrice = price / (unitQuantity*unitSize);\r\n newUnitPrice = Math.round(nUnitPrice * 100) / 100;\r\n }else{\r\n newUnitPrice = unitPrice * ( baseValue[packSizeUom.toLowerCase()] / baseValue[newUnit.label] );\r\n newUnitPrice = Math.round(unitPrice * 100) / 100;\r\n }\r\n\r\n }\r\n }\r\n }\r\n return newUnitPrice;\r\n };\r\n\r\n const convertUnfixedUnitPrice = (price, unitPrice, finalPackSize, packSizeUom, newUnit) => {\r\n const {unitQuantity, unitSize} = getPacksizeParts(finalPackSize);\r\n const baseValue = baseValueConversion[newUnit.type ? newUnit.type : getTypeConversion[newUnit.label]];\r\n let newUnitPrice = unitPrice;\r\n if (baseValue) {\r\n if (packSizeUom) {\r\n if (baseValue[packSizeUom.toLowerCase()]){\r\n if(unitQuantity && unitSize){\r\n const nUnitPrice = price / (unitQuantity*unitSize);\r\n newUnitPrice = nUnitPrice;\r\n }else{\r\n newUnitPrice = unitPrice * ( baseValue[packSizeUom.toLowerCase()] / baseValue[newUnit.label] );\r\n newUnitPrice = unitPrice;\r\n }\r\n\r\n }\r\n }\r\n }\r\n return newUnitPrice;\r\n };\r\n\r\n const getPacksizeParts = (packSize) => {\r\n let unitQuantity = null;\r\n let unitSize = null;\r\n if (typeof packSize === 'string'){\r\n if(packSize){\r\n const nPackSize = packSize;\r\n const parts = nPackSize.split(' ');\r\n const units = parts[0].split('/');\r\n unitQuantity = units[0];\r\n unitSize = units[1];\r\n }\r\n }\r\n\r\n return {unitQuantity, unitSize};\r\n };\r\n\r\n return {convertAllBase, convertAll, convertAllFromBase};\r\n};\r\n\r\nexport default {\r\n usePackSize, useUnitPrice, useGetPackSizeParts, usePackSizeParts,\r\n useConvert, useCanConvert, useConvertAll\r\n};\r\n","import { useState, useEffect, useLayoutEffect } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport comparisonViewsApi from \"../../../../../api/comparisonViewsApi\";\r\nimport { saveInventoryList, saveInventoryItems, removeInventoryGroup, editOneInventoryGroup, saveView, sortInventoryGroups, saveInventoryItemsPage, saveInventoryItemsPageTotal, editOneInventoryGroupItem } from \"../../../../../reducers/items/itemsActions\";\r\nimport * as $ from 'jquery';\r\nimport { isMobile } from 'react-device-detect';\r\nimport AddFoodbamItemModal from '../../../../../SharedComponents/Modals/AddFoodbamItemModal/AddFoodbamItemModal';\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport { packSizeUomsConversion, limitOptions } from '../../../../../config/constants';\r\nimport OptionsModal from '../../../../../SharedComponents/Modals/OptionsModal/OptionsModal';\r\nimport QuestionModal from \"../../../../../SharedComponents/Modals/QuestionModal/QuestionModal\";\r\nimport useInput from \"../../../../../SharedComponents/SharedEffects/useInput\";\r\nimport validate from \"validate.js\";\r\nimport InventoryListModal from \"../../../../../SharedComponents/Modals/InventoryListModal/InventoryListModal\";\r\nimport { localStorageConst } from '../../../../../config/constants';\r\nimport moment from \"moment\";\r\nimport useConversions from '../../../../../SharedComponents/Conversion/useConversion';\r\nimport {findOneGroup, updateOneGroup} from '../../../../../local/ComparisonViewLocal';\r\nimport useConnection from '../../../../../SharedComponents/OfflineMode/useConnection';\r\nimport AlertModal from '../../../../../SharedComponents/Modals/AlertModal/AlertModal';\r\n\r\nconst useApi = () => {\r\n\r\n const dispatch = useDispatch();\r\n const items = useSelector(({ items }) => items.inventory.items);\r\n const sort = useSelector(({ items }) => items.inventory.sortBy);\r\n const listSelected = useSelector(({ items }) => items.inventory.listSelected);\r\n const search = useSelector(({ items }) => items.inventory.search);\r\n const [page, setPage] = useState(1);\r\n const [loadMore, setLoadMore] = useState(true);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const expandOne = items.some((i) => i.expand);\r\n const { convertAllBase } = useConversions.useConvertAll();\r\n\r\n const getInventoryList = (save) => {\r\n comparisonViewsApi.get().then(({ data }) => {\r\n if (save) {\r\n let listSelected = [];\r\n const invListSelected = JSON.parse(localStorage.getItem(localStorageConst.keys.listSelected));\r\n if (!invListSelected) {\r\n listSelected = data[0];\r\n } else {\r\n const listSelectedExists = data.filter(slist => slist.id === invListSelected.id)[0];\r\n listSelected = (!listSelectedExists) ? data[0] : listSelectedExists;\r\n }\r\n dispatch(saveInventoryList(data, listSelected));\r\n } else {\r\n dispatch(saveInventoryList(data));\r\n }\r\n });\r\n };\r\n\r\n const getInventoryItems = (page, search, loadMoreForce) => {\r\n const params = {\r\n page: page,\r\n limit: limitOptions.inventoryView,\r\n expand: 'items,purchased,onHandTotal,orderTotal,globalOnHandTotal,units',\r\n filterOptions: JSON.stringify({ sort: sort }),\r\n filters: search ? JSON.stringify([{ field: 'name', operator: 'like', value: search, table: 'generic_group' }]) : null,\r\n analytics: 1\r\n };\r\n if (page === 1 || (page > 1 && (loadMore || loadMoreForce))) {\r\n setIsLoading(true);\r\n comparisonViewsApi.groups(listSelected.id, params).then((res) => {\r\n setIsLoading(false);\r\n const loadMoreNew = res._meta.pageCount > res._meta.currentPage;\r\n const pageNew = page + 1;\r\n setLoadMore(loadMoreNew);\r\n setPage(pageNew);\r\n dispatch(saveInventoryItemsPage(pageNew));\r\n dispatch(saveInventoryItemsPageTotal(res._meta.pageCount));\r\n if (page === 1) {\r\n dispatch(saveInventoryItems(res.data.map(d => {\r\n return {\r\n ...d,\r\n parLevel: d.parLevel ? d.parLevel : 0,\r\n expand: !isMobile,\r\n items: d.items.map(i => {\r\n const itemEndDate = moment(i.endDate);\r\n const itemFullPrice = i.isCustomItem === 1 ? i.price :\r\n ( itemEndDate.isValid() ?\r\n (itemEndDate.isAfter(moment()) ? i.price : (i.isFromInvoice == 1 ? (i.purchasedPrice > 0 ? i.purchasedPrice : i.price) : i.price) ) :\r\n (i.isPriceOutdated ? (i.isFromInvoice == 1 ? (i.purchasedPrice > 0 ? i.purchasedPrice : i.price) : i.price) : i.price)\r\n );\r\n const { unfixedFinalUnitPrice } = convertAllBase(i, d.unitId, d.units, itemFullPrice);\r\n return {\r\n ...i,\r\n // analytics: i.analytics.length === 0 ? [] : [...i.analytics, {price: i.analytics[i.analytics.length-1].price, startDate: moment().format('YYYY-MM-DD')}],\r\n isCustomPackSize: i.customPackSize ? !(i.customPackSize === i.packSize) : false,\r\n finalUnitPrice: unfixedFinalUnitPrice,\r\n }\r\n })\r\n }\r\n })));\r\n } else {\r\n dispatch(saveInventoryItems([...items, ...res.data.map(d => {\r\n return {\r\n ...d,\r\n // expand: isMobile ? false : expandOne,\r\n expand: expandOne,\r\n parLevel: d.parLevel ? d.parLevel : 0,\r\n items: d.items.map(i => {\r\n const itemEndDate = moment(i.endDate);\r\n const itemFullPrice = i.isCustomItem === 1 ? i.price :\r\n ( itemEndDate.isValid() ?\r\n (itemEndDate.isAfter(moment()) ? i.price : (i.isFromInvoice == 1 ? (i.purchasedPrice > 0 ? i.purchasedPrice : i.price) : i.price) ) :\r\n (i.isPriceOutdated ? (i.isFromInvoice == 1 ? (i.purchasedPrice > 0 ? i.purchasedPrice : i.price) : i.price) : i.price)\r\n );\r\n const { unfixedFinalUnitPrice } = convertAllBase(i, d.unitId, d.units, itemFullPrice);\r\n return {\r\n ...i,\r\n isCustomPackSize: i.customPackSize ? !(i.customPackSize === i.packSize) : false,\r\n finalUnitPrice: unfixedFinalUnitPrice,\r\n }\r\n })\r\n }\r\n })]));\r\n }\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getInventoryList(true);\r\n dispatch(saveView('inventory'));\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (listSelected) {\r\n getInventoryItems(1, search, true);\r\n }\r\n }, [sort, search]);\r\n\r\n useEffect(() => {\r\n if (listSelected) {\r\n dispatch(saveInventoryItems([]));\r\n getInventoryItems(1, search, true);\r\n }\r\n }, [listSelected]);\r\n\r\n return {\r\n getInventoryItems, getInventoryList, listSelected,\r\n items, loadMore, isLoading, page, sort\r\n };\r\n};\r\n\r\nconst useHorizontalScroll = (id, item, items, isGroup) => {\r\n const [scrollPos, setScrollPos] = useState(0);\r\n const [w, setW] = useState(0);\r\n const canEditComparisonView = useSelector(({ user }) => user.editComparisonView) ? true : false;\r\n\r\n useLayoutEffect(() => {\r\n const w = $(`#g_${id}_scroll`).width();\r\n setW(w);\r\n }, [item]);\r\n\r\n const canScrollRight = () => {\r\n const len = !canEditComparisonView || isGroup ? items.length : items.length + 1;\r\n let last;\r\n if (isGroup) {\r\n last = isMobile ? (w / 2 * (len)) : (260 * (len) + 260);\r\n } else {\r\n last = isMobile ? (w / 2 * (len) + w / 2) : (260 * (len) + 260);\r\n }\r\n const nextScrollRight = isMobile ? (w / 2 * (scrollPos + 1)) : (260 * (scrollPos + 1));\r\n return (last - nextScrollRight) > w;\r\n };\r\n const scrollRight = () => {\r\n const nextScrollRight = isMobile ? (w / 2 * (scrollPos + 1)) : (260 * (scrollPos + 1));\r\n if (canScrollRight()) {\r\n $(`#g_${id}_scroll`).animate({ scrollLeft: nextScrollRight }, 200);\r\n setScrollPos(scrollPos + 1);\r\n }\r\n };\r\n const scrollLeft = () => {\r\n const nextScrollLeft = isMobile ? (w / 2 * (scrollPos - 1)) : (260 * (scrollPos - 1));\r\n const canScrollLeft = scrollPos > 0;\r\n if (canScrollLeft) {\r\n $(`#g_${id}_scroll`).animate({ scrollLeft: nextScrollLeft }, 200);\r\n setScrollPos(scrollPos - 1);\r\n }\r\n };\r\n\r\n const snapOffset = (e) => {\r\n const rawScroll = $(`#g_${id}_scroll`).scrollLeft();\r\n const rawPos = rawScroll / (w / 2) + 0.1;\r\n const newPos = Math.floor(rawPos);\r\n setScrollPos(newPos);\r\n };\r\n\r\n return {\r\n canScrollRight: canScrollRight(), scrollRight, scrollLeft, scrollPos, snapOffset\r\n }\r\n};\r\n\r\nconst useAdd = (itemData) => {\r\n const dispatch = useDispatch();\r\n const { convertAllBase } = useConversions.useConvertAll();\r\n const {\r\n id, name, comparisonViewId, items\r\n } = itemData;\r\n const connection = useSelector(({connection}) => connection.online);\r\n\r\n const openAdd = (connectivity) => {\r\n if(!connectivity){\r\n dispatch(showModal(AlertModal, {message:'You need internet connectivity to use this feature', footerClass: 'justify-content-center'}));\r\n return;\r\n }\r\n\r\n const modalProps = {\r\n title: 'Link items to ' + name,\r\n initSearch: name,\r\n initItems: items,\r\n includeSubrecipe: true,\r\n isLink: true,\r\n idLabel: 'itemDistributorId',\r\n onAdd: (allItems) => {\r\n const params = {\r\n items: allItems.filter(i => !i.isSubRecipe && !i.isCustomItem).map(i => { return i.itemDistributorId }),\r\n subrecipes: allItems.filter(i => i.isSubRecipe).map(i => { return i.subRecipeId }),\r\n };\r\n comparisonViewsApi.patchGroup(comparisonViewId, id, params).then((res) => {\r\n comparisonViewsApi.getGroup(comparisonViewId, id).then(({ data }) => {\r\n dispatch(editOneInventoryGroup(id, {\r\n items: data.items.map(i => {\r\n const itemEndDate = moment(i.endDate);\r\n const itemFullPrice = i.isCustomItem === 1 ? i.price :\r\n ( itemEndDate.isValid() ?\r\n (itemEndDate.isAfter(moment()) ? i.price : (i.isFromInvoice == 1 ? (i.purchasedPrice > 0 ? i.purchasedPrice : i.price) : i.price) ) :\r\n (i.isPriceOutdated ? (i.isFromInvoice == 1 ? (i.purchasedPrice > 0 ? i.purchasedPrice : i.price) : i.price) : i.price)\r\n );\r\n const { finalUnitPrice } = convertAllBase(i, data.unitId, data.units, itemFullPrice);\r\n\r\n return {\r\n ...i,\r\n isCustomPackSize: i.customPackSize ? !(i.customPackSize === i.packSize) : false,\r\n finalUnitPrice: finalUnitPrice,\r\n }\r\n })\r\n }))\r\n\r\n //For OfflineMode with internet connectivity\r\n if(!connection){\r\n findOneGroup(id).then((result) => {\r\n if(result){\r\n if(result[0].items.length>0){\r\n const data = result[0];\r\n const nItems = data.items.map(i => {\r\n const itemEndDate = moment(i.endDate);\r\n const itemFullPrice = i.isCustomItem === 1 ? i.price :\r\n ( itemEndDate.isValid() ?\r\n (itemEndDate.isAfter(moment()) ? i.price : (i.isFromInvoice == 1 ? (i.purchasedPrice > 0 ? i.purchasedPrice : i.price) : i.price) ) :\r\n (i.isPriceOutdated ? (i.isFromInvoice == 1 ? (i.purchasedPrice > 0 ? i.purchasedPrice : i.price) : i.price) : i.price)\r\n );\r\n const { finalUnitPrice } = convertAllBase(i, data.unitId, data.units, itemFullPrice);\r\n return {\r\n ...i,\r\n isCustomPackSize: i.customPackSize ? !(i.customPackSize === i.packSize) : false,\r\n finalUnitPrice: finalUnitPrice,\r\n }\r\n });\r\n const params = {items : nItems};\r\n updateOneGroup(params,id).then((res) => {\r\n }).catch(err => console.error(err));\r\n }\r\n }\r\n }).catch(err => console.error(err));\r\n }\r\n }).catch(err => console.error(err));\r\n }).catch(err => console.error(err));\r\n },\r\n onAddCustom: (data) => {\r\n const { packSize, unitMeasure, ...values } = data;\r\n const params = {\r\n ...values,\r\n unitMeasure: unitMeasure.name,\r\n packSizeVal: `${packSize.outerPack}/${packSize.innerPack} ${packSize.uom.shorthand}`\r\n };\r\n comparisonViewsApi.postGroupCustomItem(comparisonViewId, id, params).then(({ data }) => {\r\n comparisonViewsApi.getGroup(comparisonViewId, id).then(({ data }) => {\r\n dispatch(editOneInventoryGroup(id, {\r\n items: data.items.map(i => {\r\n const itemEndDate = moment(i.endDate);\r\n const itemFullPrice = i.isCustomItem === 1 ? i.price :\r\n ( itemEndDate.isValid() ?\r\n (itemEndDate.isAfter(moment()) ? i.price : (i.isFromInvoice == 1 ? (i.purchasedPrice > 0 ? i.purchasedPrice : i.price) : i.price) ) :\r\n (i.isPriceOutdated ? (i.isFromInvoice == 1 ? (i.purchasedPrice > 0 ? i.purchasedPrice : i.price) : i.price) : i.price)\r\n );\r\n const { finalUnitPrice } = convertAllBase(i, data.unitId, data.units, itemFullPrice);\r\n return {\r\n ...i,\r\n isCustomPackSize: i.customPackSize ? !(i.customPackSize === i.packSize) : false,\r\n finalUnitPrice: finalUnitPrice,\r\n }\r\n })\r\n }))\r\n\r\n //For OfflineMode with internet connectivity\r\n if(!connection){\r\n findOneGroup(id).then((result) => {\r\n if(result){\r\n if(result[0].items.length>0){\r\n const data = result[0];\r\n const nItems = data.items.map(i => {\r\n const itemEndDate = moment(i.endDate);\r\n const itemFullPrice = i.isCustomItem === 1 ? i.price :\r\n ( itemEndDate.isValid() ?\r\n (itemEndDate.isAfter(moment()) ? i.price : (i.isFromInvoice == 1 ? (i.purchasedPrice > 0 ? i.purchasedPrice : i.price) : i.price) ) :\r\n (i.isPriceOutdated ? (i.isFromInvoice == 1 ? (i.purchasedPrice > 0 ? i.purchasedPrice : i.price) : i.price) : i.price)\r\n );\r\n const { finalUnitPrice } = convertAllBase(i, data.unitId, data.units, itemFullPrice);\r\n return {\r\n ...i,\r\n isCustomPackSize: i.customPackSize ? !(i.customPackSize === i.packSize) : false,\r\n finalUnitPrice: finalUnitPrice,\r\n }\r\n });\r\n const params = {items : nItems};\r\n updateOneGroup(params,id).then((res) => {\r\n }).catch(err => console.error(err));\r\n }\r\n }\r\n }).catch(err => console.error(err));\r\n }\r\n }).catch(err => console.error(err));\r\n }).catch(err => console.error(err));\r\n }\r\n };\r\n dispatch(showModal(AddFoodbamItemModal, modalProps));\r\n };\r\n\r\n return {\r\n openAdd\r\n };\r\n};\r\n\r\nconst useConversion = (item, getInventoryItems) => {\r\n const dispatch = useDispatch();\r\n const units = [{ label: 'Original', value: { id: null } }, ...packSizeUomsConversion.map(u => { return { value: u, label: u.label } })];\r\n const [unit, setUnit] = useState(item.unitId ? units.filter(u => u.value.id === item.unitId)[0] : units[0]);\r\n const canEditComparisonView = useSelector(({ user }) => user.editComparisonView) ? true : false;\r\n const { convertAll } = useConversions.useConvertAll();\r\n\r\n const updateItems = (unitToConvert) => {\r\n // if(unitToConvert.label !== 'Original'){\r\n item.items.map(i => {\r\n const itemEndDate = moment(i.endDate);\r\n const itemFullPrice = i.isCustomItem === 1 ? i.price :\r\n ( itemEndDate.isValid() ?\r\n (itemEndDate.isAfter(moment()) ? i.price : (i.isFromInvoice == 1 ? (i.purchasedPrice > 0 ? i.purchasedPrice : i.price) : i.price) ) :\r\n (i.isPriceOutdated ? (i.isFromInvoice == 1 ? (i.purchasedPrice > 0 ? i.purchasedPrice : i.price) : i.price) : i.price)\r\n );\r\n\r\n const { finalUnitPrice } = convertAll(i, unitToConvert, itemFullPrice);\r\n const { isCustomItem, isSubRecipe, genericCustomItemId, subRecipeId, itemDistributorId } = i;\r\n if (isCustomItem) {\r\n dispatch(editOneInventoryGroupItem(item.id, genericCustomItemId, { finalUnitPrice: finalUnitPrice }, 'genericCustomItemId'));\r\n } else if (isSubRecipe) {\r\n dispatch(editOneInventoryGroupItem(item.id, subRecipeId, { finalUnitPrice: finalUnitPrice }, 'subRecipeId'));\r\n } else {\r\n dispatch(editOneInventoryGroupItem(item.id, itemDistributorId, { finalUnitPrice: finalUnitPrice }));\r\n }\r\n });\r\n // }\r\n };\r\n\r\n const onConvert = (u) => {\r\n comparisonViewsApi.postGroupUnit(item.id, u.value.id).then(res => {\r\n setUnit(u);\r\n updateItems(u);\r\n }).catch(err => console.error(err));\r\n };\r\n\r\n const onConvertMobile = () => {\r\n if (canEditComparisonView) {\r\n const modalProps = {\r\n title: 'Show Items In',\r\n options: units.map(u => {\r\n return {\r\n label: u.label,\r\n className: u.label === 'Original' ? 'text-light-blue' : '',\r\n onClick: () => {\r\n onConvert(u);\r\n }\r\n }\r\n })\r\n }\r\n dispatch(showModal(OptionsModal, modalProps));\r\n };\r\n };\r\n\r\n return {\r\n units, unit, onConvert: (!isMobile ? onConvert : onConvertMobile)\r\n }\r\n};\r\n\r\nconst useAddGroups = (id) => {\r\n const [showAdd, setShowAdd] = useState({ top: false, down: false });\r\n const dispatch = useDispatch();\r\n\r\n const addTop = (conectivity) => {\r\n if(!conectivity){\r\n dispatch(showModal(AlertModal, {message:'You need internet connectivity to use this feature', footerClass: 'justify-content-center'}));\r\n return;\r\n }\r\n setShowAdd({ down: false, top: true });\r\n };\r\n\r\n const addDown = (conectivity) => {\r\n if(!conectivity){\r\n dispatch(showModal(AlertModal, {message:'You need internet connectivity to use this feature', footerClass: 'justify-content-center'}));\r\n return;\r\n }\r\n setShowAdd({ top: false, down: true });\r\n };\r\n\r\n const hideAll = () => {\r\n setShowAdd({ top: false, down: false });\r\n };\r\n\r\n useEffect(() => {\r\n if (showAdd.top) {\r\n const position = $(\"#add_top_\" + id).offset().top;\r\n $(\"HTML, BODY\").animate({\r\n scrollTop: position - 200\r\n }, 1200, 'swing', () => {\r\n $(\"#add_top_\" + id + '_title').focus();\r\n });\r\n } else if (showAdd.down) {\r\n const position = $(\"#add_down_\" + id).offset().top;\r\n $(\"HTML, BODY\").animate({\r\n scrollTop: position - 200\r\n }, 1200, 'swing', () => {\r\n $(\"#add_down_\" + id + '_title').focus();\r\n });\r\n }\r\n }, [showAdd])\r\n\r\n return {\r\n showAdd, addDown, addTop, hideAll\r\n };\r\n};\r\n\r\nconst useMoveGroup = (group) => {\r\n const dispatch = useDispatch();\r\n const openMoveToInventory = (conectivity) => {\r\n if(!conectivity){\r\n dispatch(showModal(AlertModal, {message:'You need internet connectivity to use this feature', footerClass: 'justify-content-center'}));\r\n return;\r\n }\r\n dispatch(showModal(InventoryListModal, { isMove: true, group: group }));\r\n };\r\n\r\n return {\r\n openMoveToInventory\r\n };\r\n};\r\n\r\nconst useDeleteGroup = (group) => {\r\n const dispatch = useDispatch();\r\n const {\r\n comparisonViewId, id\r\n } = group;\r\n\r\n const deleteGroupApi = () => {\r\n comparisonViewsApi.deleteGroup(comparisonViewId, id).then(() => {\r\n dispatch(removeInventoryGroup(id));\r\n dispatch(sortInventoryGroups());\r\n }).catch(err => console.error(err));\r\n };\r\n\r\n const deleteGroup = (conectivity) => {\r\n if(!conectivity){\r\n dispatch(showModal(AlertModal, {message:'You need internet connectivity to use this feature', footerClass: 'justify-content-center'}));\r\n return;\r\n }\r\n\r\n const modalProps = {\r\n message: group.belongsToRecipe ? 'Are you sure you want to delete this comparison view generic group, it will also remove those items from the recipe?' : 'Are you sure you want to delete this generic item?',\r\n leftButton: {\r\n title: 'Delete',\r\n color: 'orange',\r\n onClick: deleteGroupApi\r\n },\r\n rightButton: {\r\n title: 'Cancel',\r\n color: 'green'\r\n }\r\n };\r\n\r\n dispatch(showModal(QuestionModal, modalProps));\r\n };\r\n\r\n return {\r\n deleteGroup\r\n };\r\n};\r\n\r\nconst useEditGroupName = (group) => {\r\n const {\r\n comparisonViewId, id, name\r\n } = group;\r\n\r\n const dispatch = useDispatch();\r\n const [isShowEdit, setIsShowEdit] = useState(false);\r\n const editInput = useInput.useText(name);\r\n\r\n\r\n const showEdit = () => {\r\n setIsShowEdit(true);\r\n };\r\n\r\n useEffect(() => {\r\n if (isShowEdit) {\r\n $(`#edit_name_input_${id}`).focus();\r\n }\r\n }, [isShowEdit]);\r\n\r\n const saveEdit = () => {\r\n setIsShowEdit(false);\r\n const r = validate.single(editInput.value, { length: { minimum: 3 } });\r\n if (!r) {\r\n const params = {\r\n name: editInput.value\r\n };\r\n comparisonViewsApi.patchGroup(comparisonViewId, id, params).then(() => {\r\n dispatch(editOneInventoryGroup(id, params));\r\n }).catch(err => console.error(err));\r\n } else {\r\n editInput.setValue(name);\r\n }\r\n };\r\n\r\n return {\r\n inputProps: { value: editInput.value, onChange: editInput.set, placeholder: 'Generic Item Name', id: `edit_name_input_${id}` },\r\n isShowEdit, showEdit, saveEdit\r\n };\r\n};\r\n\r\nconst useGroupOptionsMenu = (addProps, openAdd, deleteGroup, showEdit, openMoveToInventory) => {\r\n const dispatch = useDispatch();\r\n\r\n const openGroupOptions = (conectivity) => {\r\n const menuProps = {\r\n options: [\r\n { label: 'Add New Item', onClick: () => { openAdd(conectivity) } },\r\n { label: 'Add New Generic Item Above', onClick: () => { addProps.addTop(conectivity) } },\r\n { label: 'Add New Generic Item Below', onClick: () => { addProps.addDown(conectivity) } },\r\n { label: 'Edit', onClick: showEdit },\r\n { label: 'Move', onClick: () => { openMoveToInventory(conectivity) } },\r\n { label: 'Delete', className: 'text-orange', onClick: () => { deleteGroup(conectivity) } },\r\n ]\r\n };\r\n\r\n dispatch(showModal(OptionsModal, menuProps));\r\n };\r\n\r\n return {\r\n openGroupOptions\r\n };\r\n};\r\n\r\nconst useSorting = () => {\r\n\r\n const sortItems = (nitems, unitToConvert) => {\r\n // if (unitToConvert.label === 'Original') {\r\n // nitems.sort((a, b) =>{\r\n // return a.isPunchedOut - b.isPunchedOut || b.isSubRecipe - a.isSubRecipe || a.unitPrice - b.unitPrice || a.price - b.price\r\n // });\r\n // }else{\r\n nitems.sort((a, b) =>{\r\n return a.isPunchedOut - b.isPunchedOut || b.isSubRecipe - a.isSubRecipe || a.finalUnitPrice - b.finalUnitPrice || a.price - b.price\r\n });\r\n // }\r\n\r\n return nitems;\r\n };\r\n\r\n return {\r\n sortItems\r\n }\r\n};\r\n\r\nconst useStatusConnection = () => {\r\n const [conectivity, setConectivity] = useState(true);\r\n let {status} = useConnection.useStatus();\r\n\r\n useEffect(() => {\r\n setConectivity(status);\r\n }, [status]);\r\n\r\n return { conectivity, setConectivity }\r\n};\r\n\r\nexport default {\r\n useApi, useHorizontalScroll, useAdd,\r\n useConversion, useAddGroups, useGroupOptionsMenu,\r\n useDeleteGroup, useEditGroupName, useMoveGroup,\r\n useSorting, useStatusConnection\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport useModal from '../useModal';\r\nimport { Modal, ModalBody, ModalHeader, Row, Col, Input, ModalFooter, Button } from 'reactstrap';\r\nimport useInput from '../../SharedEffects/useInput';\r\nimport { isMobile } from 'react-device-detect';\r\nimport MinusButton from '../../MinusButton/MinusButton';\r\nimport PlusButton from '../../PlusButton/PlusButton';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\n\r\nconst CountModal = (props) => {\r\n const { id, onSave, menu, defaultValue, min, max, buttonTitle, title, description } = props;\r\n const modalProps = useModal(id, menu);\r\n const count = useInput.useText(defaultValue ? defaultValue : 0, { isNumber: { min: min, max: max } });\r\n\r\n const clickSave = () => {\r\n if (onSave) onSave(count.value);\r\n modalProps.toggle();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n description &&\r\n

{description}

\r\n }\r\n

{title}

\r\n
\r\n
\r\n \r\n \r\n \r\n count.setValue(count.value - 1)} />\r\n \r\n \r\n \r\n \r\n \r\n count.setValue(count.value + 1)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nCountModal.propTypes = {\r\n onSave: PropTypes.func,\r\n menu: PropTypes.bool,\r\n defaultValue: PropTypes.number,\r\n min: PropTypes.number,\r\n max: PropTypes.number,\r\n buttonTitle: PropTypes.string.isRequired,\r\n title: PropTypes.string\r\n};\r\n\r\nCountModal.defaultProps = {\r\n buttonTitle: 'Save',\r\n min: 0\r\n};\r\n\r\nexport default CountModal;","import { useDispatch, useSelector } from \"react-redux\"\r\nimport { showModal } from \"../../../../../../reducers/modals/modalsActions\";\r\nimport { isMobile } from \"react-device-detect\";\r\nimport CountModal from \"../../../../../../SharedComponents/Modals/CountModal/CountModal\";\r\nimport comparisonViewsApi from \"../../../../../../api/comparisonViewsApi\";\r\nimport { editOneInventoryGroup } from \"../../../../../../reducers/items/itemsActions\";\r\n\r\nconst useParLevel = ({parLevel, groupId, comparisonViewId}) => {\r\n const dispatch = useDispatch();\r\n const canEditComparisonView = useSelector(({user}) => user.editComparisonView) ? true : false;\r\n\r\n const openParLevel = () => {\r\n if (canEditComparisonView) {\r\n const modalProps = {\r\n defaultValue: parLevel,\r\n menu: isMobile,\r\n title: 'Edit Par Level',\r\n onSave: (newParLevel) => {\r\n const params = {\r\n parLevel: newParLevel\r\n };\r\n comparisonViewsApi.patchGroup(comparisonViewId, groupId, params).then(({data}) => {\r\n dispatch(editOneInventoryGroup(groupId, params));\r\n }).catch(err => console.error(err));\r\n }\r\n };\r\n\r\n dispatch(showModal(CountModal, modalProps));\r\n }\r\n }\r\n\r\n return {\r\n openParLevel\r\n };\r\n};\r\n\r\nexport default {\r\n useParLevel\r\n};","import React, { Fragment } from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\nimport Select from 'react-select';\r\nimport numeral from 'numeral';\r\nimport { colors } from '../../../../../../config/constants';\r\nimport useShowItemsIn from './useShowItemsIn';\r\nimport ShowIf from '../../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst ShowItemsIn = (props) => {\r\n const { onConvert, units, unit, parLevel, bottomMobile, groupTotalProps } = props;\r\n const displayInventory = useSelector(({user}) => user.activeLocation.display_inventory);\r\n const canEditComparisonView = useSelector(({user}) => user.editComparisonView) ? true : false;\r\n const {totalOnHandAmt, totalGroupSpent} = groupTotalProps; \r\n const grayFirstStyle = {\r\n singleValue: (styles, { data }) => {\r\n if (data.value.id !== null) return styles;\r\n return {\r\n ...styles,\r\n color: colors.lightBlueText\r\n };\r\n },\r\n option: (styles, { data }) => {\r\n if (data.value.id !== null) return styles;\r\n return {\r\n ...styles,\r\n color: colors.lightBlueText\r\n };\r\n },\r\n };\r\n const { openParLevel } = useShowItemsIn.useParLevel(props);\r\n const dropDownParLevel = {\r\n label: parLevel ? parLevel.toString() : '0',\r\n value: parLevel ? parLevel : 0\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n Show Items in\r\n \r\n \r\n null}}\r\n isSearchable={false} onMenuOpen={openParLevel}\r\n />\r\n \r\n \r\n \r\n Amount on Hand: {numeral(totalOnHandAmt).format('$0,0.00')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Show items in\r\n \r\n \r\n \r\n null }} isSearchable={false} onMenuOpen={openParLevel}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Amount On Hand\r\n \r\n \r\n {numeral(totalOnHandAmt).format('$0,0.00')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total group spend:\r\n {numeral(totalGroupSpent).format('$0,0.00')}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ShowItemsIn;","import React from 'react';\r\nimport { Row, Col, Button, Input } from 'reactstrap';\r\nimport numeral from 'numeral';\r\nimport { FaArrowDown, FaArrowUp, FaArrowRight, FaPlus, FaTrash, FaChevronLeft, FaChevronRight } from 'react-icons/fa';\r\nimport { FiMoreHorizontal } from 'react-icons/fi';\r\nimport { colors } from '../../../../../../config/constants';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ShowIf from '../../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { editOneInventoryGroup } from '../../../../../../reducers/items/itemsActions';\r\nimport usePlaceOrderInventory from '../usePlaceOrderInventory';\r\nimport AlertModal from '../../../../../../SharedComponents/Modals/AlertModal/AlertModal';\r\nimport { showModal } from '../../../../../../reducers/modals/modalsActions';\r\nimport { Fragment } from 'react';\r\n\r\nexport const GroupTitle = (props) => {\r\n const {\r\n title, spend, canScrollRight,\r\n scrollRight, scrollLeft, scrollPos,\r\n dragHandleProps, id, expand,\r\n isDragging, addDown, addTop,\r\n openGroupOptions, openAdd,\r\n deleteGroup, inputProps, isShowEdit,\r\n showEdit, saveEdit, openMoveToInventory, isInventoryView = false\r\n } = props;\r\n\r\n const canEditComparisonView = useSelector(({ user }) => user.editComparisonView) ? true : false;\r\n let prevent = false;\r\n let timer;\r\n const dispatch = useDispatch();\r\n\r\n const { conectivity } = usePlaceOrderInventory.useStatusConnection();\r\n\r\n const onEnterKey = ({ key }) => {\r\n if (key === 'Enter') {\r\n if (!conectivity) {\r\n dispatch(showModal(AlertModal, { message: 'You need internet connectivity to use this feature', footerClass: 'justify-content-center' }));\r\n return;\r\n }\r\n saveEdit();\r\n }\r\n };\r\n\r\n const openEdit = () => {\r\n prevent = true;\r\n clearTimeout(timer);\r\n showEdit();\r\n };\r\n const toggle = () => {\r\n const expandAction = () => {\r\n dispatch(editOneInventoryGroup(id, {\r\n expand: !expand\r\n }));\r\n };\r\n\r\n if (!isMobile) {\r\n timer = setTimeout(() => {\r\n if (!prevent) {\r\n expandAction();\r\n }\r\n prevent = false;\r\n }, 200);\r\n } else {\r\n expandAction();\r\n }\r\n };\r\n\r\n if (isMobile) {\r\n return (\r\n \r\n \r\n \r\n \r\n 0 ? colors.dark : colors.lightBlueText} />\r\n \r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n openGroupOptions(conectivity)} {...dragHandleProps} >\r\n \r\n \r\n \r\n \r\n \r\n \r\n Total group spend:\r\n {numeral(spend).format('$0,0.00')}\r\n \r\n \r\n\r\n \r\n );\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* */}\r\n \r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n Total group spend: {numeral(spend).format('$0,0.00')}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default GroupTitle;","import { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { insertInventoryGroup, sortInventoryGroupsNew } from '../../../../../../reducers/items/itemsActions';\r\nimport comparisonViewsApi from '../../../../../../api/comparisonViewsApi';\r\nimport useInput from '../../../../../../SharedComponents/SharedEffects/useInput';\r\nimport * as $ from 'jquery';\r\nimport validate from 'validate.js';\r\nimport AlertModal from '../../../../../../SharedComponents/Modals/AlertModal/AlertModal';\r\nimport { showModal } from '../../../../../../reducers/modals/modalsActions';\r\nimport usePlaceOrderInventory from '../usePlaceOrderInventory';\r\n\r\nconst useNewGroup = ({group, index, isUp, hideAll, id, listSelected}, type) => {\r\n const comparisonViewId = group ? group.comparisonViewId : null;\r\n\r\n const dispatch = useDispatch();\r\n const [ isShowInput, setIsShowInput ] = useState(false);\r\n const groups = useSelector(({items}) => items.inventory.items);\r\n const name = useInput.useText();\r\n\r\n const { conectivity } = usePlaceOrderInventory.useStatusConnection();\r\n\r\n const nameInputProps = {\r\n value: name.value,\r\n onChange: name.set,\r\n className: name.error ? 'border-orange' : ''\r\n };\r\n\r\n const showInput = () => {\r\n setIsShowInput(true);\r\n };\r\n\r\n const hideInput = () => {\r\n setIsShowInput(false);\r\n if(hideAll){\r\n hideAll();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (isShowInput) {\r\n $('#'+id+'_input').focus();\r\n }\r\n }, [isShowInput]);\r\n\r\n const onEnterKey = ({key}) => {\r\n if (key === 'Enter') {\r\n if(!conectivity){\r\n dispatch(showModal(AlertModal, {message:'You need internet connectivity to use this feature', footerClass: 'justify-content-center'}));\r\n return;\r\n }\r\n const r = validate.single(name.value, {length: {minimum: 3}});\r\n if (!r) {\r\n hideInput();\r\n name.setError(false);\r\n name.setValue('');\r\n\r\n let newSort = (isUp) ? index : index+1;\r\n const params = {\r\n name: name.value,\r\n new_sort: newSort\r\n };\r\n const insertFunc = () => {\r\n comparisonViewsApi.postGroup(comparisonViewId, params).then(({data}) => {\r\n let isAllCollapse = true;\r\n for (let i = 0; i < groups.length; i++) {\r\n if (groups[i].expand) {\r\n isAllCollapse = false;\r\n }\r\n };\r\n\r\n dispatch(sortInventoryGroupsNew(newSort));\r\n const newGroup = {\r\n id: data.id,\r\n name: data.name,\r\n sort: newSort,\r\n comparisonViewId: comparisonViewId,\r\n expand: !isAllCollapse,\r\n items: []\r\n };\r\n dispatch(insertInventoryGroup(newGroup, newSort));\r\n\r\n if(hideAll) hideAll();\r\n }).catch((err) => {\r\n name.setValue('');\r\n if (err.code === 400) {\r\n dispatch(showModal(AlertModal, {message: 'This generic item already exists'}));\r\n } else {\r\n dispatch(showModal(AlertModal, {message: \"Something wen't wrong\"}));\r\n }\r\n console.error(err);\r\n });\r\n };\r\n insertFunc();\r\n\r\n } else {\r\n name.setError(true);\r\n }\r\n }\r\n };\r\n\r\n const onEnterKeyExtreme = ({key}) => {\r\n if (key === 'Enter') {\r\n if(!conectivity){\r\n dispatch(showModal(AlertModal, {message:'You need internet connectivity to use this feature', footerClass: 'justify-content-center'}));\r\n return;\r\n }\r\n if(listSelected){\r\n const r = validate.single(name.value, {length: {minimum: 3}});\r\n if (!r) {\r\n hideInput();\r\n name.setValue('');\r\n name.setError(false);\r\n\r\n const params = {\r\n name: name.value,\r\n new_sort: index\r\n };\r\n comparisonViewsApi.postGroup(listSelected.id, params).then(({data}) => {\r\n dispatch(sortInventoryGroupsNew(index));\r\n const newGroup = {\r\n id: data.id,\r\n name: data.name,\r\n sort: index,\r\n comparisonViewId: listSelected.id,\r\n expand: true,\r\n items: []\r\n };\r\n dispatch(insertInventoryGroup(newGroup, index));\r\n if(hideAll) hideAll();\r\n }).catch((err) =>{\r\n name.setValue('');\r\n if (err.code === 400) {\r\n dispatch(showModal(AlertModal, {message: 'This generic item already exists'}));\r\n } else {\r\n dispatch(showModal(AlertModal, {message: \"Something wen't wrong\"}));\r\n }\r\n console.error(err);\r\n });\r\n } else {\r\n name.setError(true);\r\n }\r\n }\r\n }\r\n };\r\n\r\n return {\r\n nameInputProps, showInput, onEnterKey, isShowInput, hideInput, onEnterKeyExtreme\r\n }\r\n};\r\n\r\nexport default {\r\n useNewGroup\r\n};\r\n","import React from 'react';\r\nimport { Row, Col, Input } from 'reactstrap';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ShowIf from '../../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport useGroupTitleNew from './useGroupTitleNew';\r\n\r\nconst GroupTitleNew = (props) => {\r\n const { title, id} = props;\r\n const {\r\n nameInputProps, showInput, onEnterKey,\r\n isShowInput, hideInput\r\n } = useGroupTitleNew.useNewGroup(props);\r\n \r\n\r\n if (isMobile) {\r\n return (\r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n {title}\r\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 GroupTitleNew;","import React from 'react';\r\nimport bookmarkImg from '../../assets/images/bookmark-green.png';\r\nimport Bookmark from './Bookmark';\r\n\r\nconst LastPurchasedBookmark = ({elemId}) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default LastPurchasedBookmark","import React, { Fragment } from 'react';\r\nimport { Col, Tooltip } from 'reactstrap';\r\nimport useInput from '../SharedEffects/useInput';\r\nimport { IoMdHeart, IoMdHeartEmpty } from 'react-icons/io';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\nimport { colors } from '../../config/constants';\r\nimport { isMobile } from 'react-device-detect';\r\n\r\nconst HeartBookmark = ({elemId, fill, onClick}) => {\r\n const tooltip = useInput.useCheckbox(false);\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Preferred\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default HeartBookmark","import React, { Fragment } from 'react';\r\nimport { Col, Tooltip } from 'reactstrap';\r\nimport useInput from '../SharedEffects/useInput';\r\nimport { IoMdSwap } from 'react-icons/io';\r\nimport { colors } from '../../config/constants';\r\n\r\nconst AutoAddedBookmark = ({elemId}) => {\r\n const tooltip = useInput.useCheckbox(false);\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Auto Added\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AutoAddedBookmark","import React from 'react';\r\nimport bookmarkImg from '../../assets/images/bookmark-purple.png';\r\nimport Bookmark from './Bookmark';\r\n\r\nconst SubrecipeBookmark = ({elemId}) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default SubrecipeBookmark","import React from 'react';\r\nimport bookmarkImg from '../../assets/images/bookmark-blue.png';\r\nimport Bookmark from './Bookmark';\r\n\r\nconst CallInItemBookmark = ({elemId}) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default CallInItemBookmark","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Tooltip, Row, Col } from 'reactstrap';\r\nimport * as $ from 'jquery';\r\n\r\nconst TooltipMenu = ({target, isOpen, options, toggle}) => {\r\n return (\r\n \r\n
\r\n {options.map((opt, i) =>\r\n { if (opt.onClick && !opt.disabled) opt.onClick(); }} key={`${target}_opt_${i}`} className={'py-2 hover-light px-3 m-0'+ (opt.disabled ? ' bg-light text-light-blue' : ' clickable') + (opt.className ? ' '+opt.className : '')}>\r\n {opt.label}\r\n \r\n )}\r\n
\r\n
\r\n )\r\n};\r\n\r\nTooltipMenu.propTypes = {\r\n target: PropTypes.string.isRequired,\r\n options: PropTypes.array.isRequired,\r\n toggle: PropTypes.func.isRequired\r\n};\r\n\r\nexport default TooltipMenu;","import React, { Fragment } from 'react';\r\nimport { Col, Row } from 'reactstrap';\r\nimport { FiMoreHorizontal } from 'react-icons/fi';\r\nimport { colors } from '../../../../../../../config/constants';\r\nimport ShowIf from '../../../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport OrderGuideBookmark from '../../../../../../../SharedComponents/Bookmark/OrderGuideBookmark';\r\nimport LastPurchasedBookmark from '../../../../../../../SharedComponents/Bookmark/LastPurchasedBookmark';\r\nimport moment from 'moment';\r\nimport HeartBookmark from '../../../../../../../SharedComponents/Bookmark/HeartBookmark';\r\nimport { isMobile } from 'react-device-detect';\r\nimport AutoAddedBookmark from '../../../../../../../SharedComponents/Bookmark/AutoAddedBookmark';\r\nimport SubrecipeBookmark from '../../../../../../../SharedComponents/Bookmark/SubrecipeBookmark';\r\nimport CallInItemBookmark from '../../../../../../../SharedComponents/Bookmark/CallInItemBookmark';\r\nimport IconBadgeSolid from '../../../../../../../SharedComponents/IconBadge/IconBadgeSolid';\r\nimport { FaQuestion } from 'react-icons/fa';\r\nimport TooltipMenu from '../../../../../../../SharedComponents/TooltipMenu/TooltipMenu';\r\nimport { MdClose } from 'react-icons/md';\r\nimport RebateIcon from '../../../../../../../SharedComponents/Icons/RebateIcon/RebateIcon';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst ItemHeader = (props) => {\r\n const {\r\n image, name, description, orderGuide,\r\n isPurchased, elemId, isPreferred, autoAdded, isUnpurchasable,\r\n isCustomItem, isSubRecipe, isPunchedOut, orderGuideId,\r\n itemHeaderProps, showHistoric, showPriceAnalytics\r\n } = props;\r\n\r\n const lastPurchasedDate = moment(props.lastPurchasedDate).format(\"MM/DD/YYYY\");\r\n const isStartInventory = useSelector(({ user }) => user.activeLocation.activeInventory);\r\n\r\n\r\n\r\n const { toggle, clickOptionsState, clickOptions, showOptionsState, options, toggleShowHistoric, togglePriceAnalytics, clickHeart } = itemHeaderProps;\r\n\r\n const styleLastPurchase = {\r\n position: 'absolute',\r\n top: 25,\r\n fontSize: 11,\r\n opacity: 0.8,\r\n width: '100%',\r\n marginLeft: 10\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {lastPurchasedDate}\r\n \r\n \r\n
Last purchased {lastPurchasedDate}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Custom Item\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n This item is grayed out because it was not on your most recent order guide sent by your distributor.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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\r\n \r\n \r\n \r\n \r\n \r\n {name || description}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ItemHeader;","import React from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\n\r\nconst ItemBasicInfo = ({din, brand, distributor}) => {\r\n return (\r\n \r\n \r\n \r\n {din}\r\n \r\n \r\n {brand}\r\n \r\n \r\n {distributor}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ItemBasicInfo;","import React from 'react';\r\nimport { colors } from '../../../config/constants';\r\nimport PropTypes from 'prop-types';\r\nimport { Row, Col } from 'reactstrap';\r\nimport IconBadgeSolid from '../../IconBadge/IconBadgeSolid';\r\nimport { FaExclamation } from 'react-icons/fa';\r\n\r\nconst CantConvertIcon = (props) => { \r\n const {elemId} = props;\r\n\r\n return (\r\n \r\n \r\n We are not able to convert the packsize for you selection\r\n \r\n \r\n );\r\n};\r\n\r\nCantConvertIcon.propTypes = {\r\n elemId: PropTypes.string.isRequired\r\n};\r\n\r\nexport default CantConvertIcon;","import React, { Fragment } from 'react'\r\nimport './iconTooltip.scss';\r\nimport { Tooltip, Col } from 'reactstrap';\r\nimport useInput from '../SharedEffects/useInput';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\n\r\nconst IconTooltipSolid = (props) => {\r\n const { Icon, elemId, children, color, colorIcon, invoiceDate } = props;\r\n const { toggle, value } = useInput.useCheckbox();\r\n\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n {children}\r\n \r\n \r\n\r\n
\r\n )\r\n};\r\n\r\nexport default IconTooltipSolid;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Row, Col, Popover, PopoverBody, Tooltip } from 'reactstrap';\r\nimport numeral from 'numeral';\r\nimport ShowIf from '../../../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { isMobile } from 'react-device-detect';\r\nimport PriceOutdatedIcon from '../../../../../../../SharedComponents/Icons/PriceOutdatedIcon/PriceOutdatedIcon';\r\nimport useConversion from '../../../../../../../SharedComponents/Conversion/useConversion';\r\nimport CantConvertIcon from '../../../../../../../SharedComponents/Icons/CantConvertIcon/CantConvertIcon';\r\nimport PunchedOutIcon from \"../../../../../../../SharedComponents/Icons/PunchedOutIcon/PunchedOutIcon\";\r\nimport useConversions from '../../../../../../../SharedComponents/Conversion/useConversion';\r\nimport { MdFlashOn } from \"react-icons/md\";\r\nimport IconTooltipSolid from '../../../../../../../SharedComponents/iconTooltip/IconTooltipSolid';\r\nimport moment from 'moment';\r\n\r\nconst ItemPriceInfo = (item) => {\r\n const {\r\n elemId, isCustomItem, isSubRecipe, purchasedPrice,\r\n price, packSize, customPackSize, unitPrice,\r\n unitMeasure, packSizeUom, isCatchWeight,\r\n isMarketPrice, isPriceOutdated, unitToConvert, endDate,\r\n unitQuantity, unitSize, unitType, isCustomPackSize, isPunchedOut\r\n } = item;\r\n const [popoverOpen, setPopoverOpen] = useState(false);\r\n\r\n const itemEndDate = moment(endDate);\r\n const itemFullPrice = isCustomItem === 1 ? price :\r\n ( itemEndDate.isValid() ?\r\n (itemEndDate.isAfter(moment()) ? price : (item.isFromInvoice == 1 ? (purchasedPrice > 0 ? purchasedPrice : price) : price) ) :\r\n (isPriceOutdated ? (item.isFromInvoice == 1 ? (purchasedPrice > 0 ? purchasedPrice : price) : price) : price)\r\n );\r\n\r\n \r\n const { convertAll } = useConversions.useConvertAll();\r\n const { finalPackSize, finalPackSizeUom, finalUnitPrice } = convertAll(item, unitToConvert, itemFullPrice);\r\n\r\n const showLightningBolt = () => {\r\n return isCustomItem === 1 ? false :\r\n ( itemEndDate.isValid() ?\r\n (itemEndDate.isAfter(moment()) ? false : (item.isFromInvoice == 1 ? true : false)) :\r\n (isPriceOutdated ? (item.isFromInvoice == 1 ? true : false) : false)\r\n );\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {isCatchWeight && !isMarketPrice ? '~' : ''} {numeral(itemFullPrice).format('$0,0.00')} {unitMeasure}\r\n\r\n \r\n \r\n \r\n Electronic Invoice {moment(item.invoiceDate).format('MM-DD-YYYY')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* {finalPackSize ? finalPackSize : } */}\r\n {finalPackSize ? finalPackSize : }\r\n \r\n \r\n \r\n = 0.01 && !isSubRecipe}>\r\n {(finalUnitPrice ? numeral(finalUnitPrice).format('$0,0.00') + ' ' + finalPackSizeUom : '')}\r\n \r\n \r\n \r\n
\r\n Unit Price below {numeral(0.01).format('$0,0.00')} {finalPackSizeUom}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ItemPriceInfo;\r\n","import React, { useState } from 'react';\r\nimport useModal from '../useModal';\r\nimport { Modal, ModalBody, ModalHeader, Row, Col, Input, ModalFooter, Button } from 'reactstrap';\r\nimport useInput from '../../SharedEffects/useInput';\r\nimport Select from 'react-select';\r\nimport { packSizeUomsConversion } from '../../../config/constants';\r\nimport { isMobile } from 'react-device-detect';\r\n\r\nconst EditPackSizeModal = (props) => {\r\n const { id, onSave, menu, defaultValues } = props;\r\n const modalProps = useModal(id, menu);\r\n const units = packSizeUomsConversion.map(u => { return { label: u.label, value: u }});\r\n const uomSelected = defaultValues ? (defaultValues.uom ? units.filter(u => u.label.toLowerCase() === defaultValues.uom.toLowerCase())[0] : null) : null;\r\n const uomState = useState(defaultValues ? (uomSelected ? uomSelected : units[0]) : units[0]);\r\n const uom = {\r\n value: uomState[0],\r\n onChange: uomState[1]\r\n };\r\n const outerPack = useInput.useText(defaultValues ? defaultValues.outerPack : '', {isNumber: {min: 0}});\r\n const innerPack = useInput.useText(defaultValues ? defaultValues.innerPack : '', {isNumber: {min: 0}});\r\n\r\n const clickSave = () => {\r\n const data = {\r\n innerPack: innerPack.value,\r\n outerPack: outerPack.value,\r\n uom: uom.value,\r\n packSize: `${outerPack.value}/${innerPack.value} ${uom.value.label}`\r\n };\r\n if (onSave) onSave(data);\r\n modalProps.toggle();\r\n };\r\n\r\n return (\r\n \r\n Edit Packsize\r\n \r\n \r\n \r\n \r\n Outer Pack\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n /\r\n \r\n \r\n Inner Pack\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n UOM\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {onHandType === onHandTypes.cs ? item.unitMeasure : (!finalPackSizeUom ? '' : (finalPackSizeUom.length > 3 ? '...' : finalPackSizeUom))}\r\n \r\n {\r\n !finalPackSizeUom ? '' : \r\n (finalPackSizeUom.length > 3 && (onHandType !== onHandTypes.cs) ? \r\n \r\n {finalPackSizeUom}\r\n : '')\r\n }\r\n \r\n \r\n\r\n \r\n { onHandClick(onHandAmount === '' ? parseFloat(0) : parseFloat(onHandAmount) + 1) }} isBlue isActive={onHandAmount > 0} disabled={disabled} />\r\n \r\n \r\n );\r\n};\r\n\r\n\r\nOnHandItem.propTypes = {\r\n onHandType: PropTypes.string\r\n};\r\n\r\nOnHandItem.defaultProps = {\r\n onHandType: onHandTypes.cs\r\n};\r\n\r\nexport default OnHandItem;","import React, { useState, useContext, Fragment } from 'react';\r\nimport { Col, Row } from 'reactstrap';\r\nimport OnHandItem from '../../../../../../../SharedComponents/OnHandItem/OnHandItem';\r\nimport { colors, onHandTypes } from '../../../../../../../config/constants';\r\nimport ShowIf from '../../../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport numeral from 'numeral';\r\nimport { useSelector } from 'react-redux';\r\nimport { InventoryContext } from \"../context/InventoryContext\";\r\nimport { FaCaretDown, FaCaretUp } from 'react-icons/fa';\r\nimport ShoppingCartItem from '../../../../../../../SharedComponents/ShoppingCartItem/ShoppingCartItem';\r\n\r\nconst ItemInventory = (props) => {\r\n const displayInventory = useSelector(({ user }) => user.activeLocation.display_inventory);\r\n const [showMore, setShowMore] = useState(false);\r\n const isDisplayShoppingCart = useSelector(({ user }) => user.activeLocation.display_shopping_cart);\r\n\r\n const {\r\n group, collectiveOnHand, collectiveOnHandUom,\r\n unitMeasure, packSizeUom, comparisonViewId, unitToConvert, isCustomPackSize, groupTotalProps,\r\n isSubRecipe, isCustomItem, itemProps\r\n } = props;\r\n const finalPackSizeUom = (unitToConvert.label !== 'Original') ? unitToConvert.label : packSizeUom;\r\n\r\n const inventoryContext = useContext(InventoryContext);\r\n const {\r\n totalOH,\r\n totalOHAmount,\r\n collectiveOH,\r\n collectiveOHUom,\r\n } = inventoryContext;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Add to Cart\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n On Hand\r\n
\r\n {collectiveOnHand > 0 ? `(Collective On Hand ${collectiveOH} ${unitMeasure})` :  }\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n setShowMore(true)}\r\n style={{ marginTop: isDisplayShoppingCart === 0 ? ((!isSubRecipe && !isCustomItem && isDisplayShoppingCart !== 0) ? 90 : 20) : 10 }}\r\n >\r\n Show More \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {collectiveOnHandUom > 0 ? `(Collective On Hand ${collectiveOHUom} ${finalPackSizeUom})` :  }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total On Hand\r\n \r\n \r\n \r\n \r\n \r\n {numeral(totalOH).format('0,0')} {finalPackSizeUom}\r\n {numeral(totalOHAmount).format('$0,0.00')}\r\n \r\n setShowMore(false)}>\r\n Show Less \r\n \r\n \r\n
\r\n
\r\n\r\n );\r\n};\r\n\r\nexport default ItemInventory;\r\n","import React, { useState, useContext, Fragment } from 'react';\r\nimport { Col, Row } from 'reactstrap';\r\nimport OnHandItem from '../../../../../../../SharedComponents/OnHandItem/OnHandItem';\r\nimport { colors, onHandTypes } from '../../../../../../../config/constants';\r\nimport ShowIf from '../../../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { useSelector } from 'react-redux';\r\nimport { InventoryContext } from \"../context/InventoryContext\";\r\nimport { FaCaretDown, FaCaretUp } from 'react-icons/fa';\r\nimport ShoppingCartItem from '../../../../../../../SharedComponents/ShoppingCartItem/ShoppingCartItem';\r\nimport numeral from 'numeral';\r\n\r\nconst ItemTimestampedInventory = (props) => {\r\n const displayInventory = useSelector(({ user }) => user.activeLocation.display_inventory);\r\n const [showMore, setShowMore] = useState(false);\r\n const isDisplayShoppingCart = useSelector(({ user }) => user.activeLocation.display_shopping_cart);\r\n\r\n\r\n const {\r\n group, collectiveOnHand, collectiveOnHandUom,\r\n unitMeasure, packSizeUom, comparisonViewId, unitToConvert, isCustomPackSize, groupTotalProps,\r\n isSubRecipe, isCustomItem, itemProps\r\n } = props;\r\n const finalPackSizeUom = (unitToConvert.label !== 'Original') ? unitToConvert.label : packSizeUom;\r\n\r\n const inventoryContext = useContext(InventoryContext);\r\n const {\r\n totalOH,\r\n totalOHAmount,\r\n collectiveOH,\r\n collectiveOHUom,\r\n totalCase,\r\n totalPack,\r\n totalUnit,\r\n } = inventoryContext;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n On Hand ({numeral(totalOHAmount).format('$0,0.00')})\r\n \r\n \r\n\r\n \r\n \r\n Case ({numeral(totalCase).format('$0,0.00')})\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Pack ({numeral(totalPack).format('$0,0.00')})\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Unit ({numeral(totalUnit).format('$0,0.00')})\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n \r\n setShowMore(true)}>\r\n Show More \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Add to Cart\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setShowMore(false)}>\r\n Show Less \r\n \r\n \r\n\r\n \r\n \r\n\r\n );\r\n};\r\n\r\nexport default ItemTimestampedInventory;\r\n","import React, { useState } from 'react';\r\nimport { Col, Card, Row } from 'reactstrap';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ItemHeader from './Subcomponents/ItemHeader';\r\nimport noImage from '../../../../../../assets/images/no-image.png';\r\nimport subrecipeImage from '../../../../../../assets/images/subrecipe-image.png';\r\nimport ItemBasicInfo from './Subcomponents/ItemBasicInfo';\r\nimport ItemPriceInfo from './Subcomponents/ItemPriceInfo';\r\nimport ShoppingCartItem from '../../../../../../SharedComponents/ShoppingCartItem/ShoppingCartItem';\r\nimport ShowIf from '../../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport moment from 'moment';\r\nimport useItemHeader from './Subcomponents/useItemHeader';\r\nimport { useSelector } from 'react-redux';\r\nimport { InventoryContextProvider } from \"./context/InventoryContext\";\r\nimport ItemInventory from './Subcomponents/ItemInventory';\r\nimport ItemTimestampedInventory from './Subcomponents/ItemTimestampedInventory';\r\n\r\nconst PlaceOrderInventoryItem = (props) => {\r\n const displayInventory = useSelector(({ user }) => user.activeLocation.display_inventory);\r\n const isStartInventory = useSelector(({ user }) => user.activeLocation.activeInventory);\r\n const isDisplayShoppingCart = useSelector(({ user }) => user.activeLocation.display_shopping_cart);\r\n\r\n\r\n const {\r\n imageUrl, brandImageUrl, elemId, group,\r\n type, isPurchased, isSubRecipe, isPunchedOut, isUnpurchasable,\r\n items, itemDistributorId, isCustomItem, groupTotalProps,\r\n packSizeUom, unitMeasure, comparisonViewId, unitToConvert, isCustomPackSize\r\n } = props;\r\n\r\n\r\n const image = isSubRecipe ? subrecipeImage : (imageUrl ? imageUrl : (brandImageUrl ? brandImageUrl : noImage));\r\n\r\n let isLastPurchased = false;\r\n\r\n if (isPurchased) {\r\n const lastPurchasedItem = items.filter(i => i.isPurchased).sort((a, b) => { return moment(a.lastPurchasedDate) < moment(b.lastPurchasedDate) ? 1 : -1 })[0];\r\n if (lastPurchasedItem.itemDistributorId === itemDistributorId) {\r\n isLastPurchased = true;\r\n }\r\n }\r\n\r\n const { showHistoric, historicData, historicNoData, showPriceAnalytics, priceData, noPriceData, ...itemHeaderProps } = useItemHeader.useOptions(props);\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Date\r\n On Hand\r\n Ordered\r\n \r\n \r\n {historicData.map((h, i) => {\r\n if (i > 11) return null;\r\n return (\r\n \r\n {moment(h.startDate).format('MM/DD/YY')}\r\n {h.onHand}\r\n {h.ordered}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n No Data Found!\r\n \r\n \r\n \r\n \r\n \r\n \r\n {priceData.map((p, i) => {\r\n return (\r\n \r\n {moment(p.date).format('MMM')}\r\n {p.price}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n No Data Found!\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PlaceOrderInventoryItem;","import React from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\nimport { isMobile } from 'react-device-detect';\r\nimport PlusButton from '../../../../../../SharedComponents/PlusButton/PlusButton';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst AddNewItem = ({id, openAdd}) => {\r\n const displayInventory = useSelector(({user}) => user.activeLocation.display_inventory);\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Add New Item\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AddNewItem;","import React, { Fragment, useState } from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ShowItemsIn from './Subcomponents/ShowItemsIn';\r\nimport GroupTitle from './Subcomponents/GroupTitle';\r\nimport GroupTitleNew from './Subcomponents/GroupTitleNew';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { FaChevronLeft, FaChevronRight } from 'react-icons/fa';\r\nimport { colors } from '../../../../../config/constants';\r\nimport usePlaceOrderInventory from './usePlaceOrderInventory';\r\nimport PlaceOrderInventoryItem from './PlaceOrderInventoryItem/PlaceOrderInventoryItem';\r\nimport AddNewItem from './Subcomponents/AddNewItem';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst PlaceOrderInventoryGroup = ({ item, index, dragHandleProps, isDragging, getInventoryItems, isInventoryView = false }) => {\r\n const {\r\n id, name, purchased, items, totalOnHandAmount, comparisonViewId, parLevel, expand\r\n } = item;\r\n\r\n const canEditComparisonView = useSelector(({ user }) => user.editComparisonView) ? true : false;\r\n\r\n const [totalOnHandAmt, setTotalOnHandAmt] = useState(totalOnHandAmount);\r\n const [totalGroupSpent, setTotalGroupSpent] = useState(purchased);\r\n const groupTotalProps = { totalOnHandAmt, setTotalOnHandAmt, totalGroupSpent, setTotalGroupSpent, comparisonViewId, id };\r\n\r\n const { canScrollRight, scrollLeft, scrollRight, scrollPos, snapOffset } = usePlaceOrderInventory.useHorizontalScroll(id, item, items);\r\n\r\n\r\n\r\n const { openAdd } = usePlaceOrderInventory.useAdd(item, getInventoryItems, isInventoryView);\r\n\r\n\r\n const convertProps = usePlaceOrderInventory.useConversion(item, getInventoryItems, isInventoryView, setTotalOnHandAmt);\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n const { showAdd, hideAll, ...addProps } = usePlaceOrderInventory.useAddGroups(id);\r\n const { deleteGroup } = usePlaceOrderInventory.useDeleteGroup(item);\r\n const editProps = usePlaceOrderInventory.useEditGroupName(item);\r\n const { openMoveToInventory } = usePlaceOrderInventory.useMoveGroup(item);\r\n const { openGroupOptions } = usePlaceOrderInventory.useGroupOptionsMenu(addProps, openAdd, deleteGroup, editProps.showEdit, openMoveToInventory);\r\n // const itemsExpand = useSelector(({ items }) => items.inventory.items);\r\n // const expand = itemsExpand[0].expand;\r\n const { sortItems } = usePlaceOrderInventory.useSorting();\r\n sortItems(items, convertProps.unit);\r\n\r\n const { conectivity } = usePlaceOrderInventory.useStatusConnection();\r\n\r\n const itemsMap = items.map((it, i) =>\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0 ? colors.dark : colors.lightBlueText} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {itemsMap}\r\n \r\n openAdd(conectivity)} />\r\n \r\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 PlaceOrderInventoryGroup;","import React, { useState } from 'react';\r\nimport { Row, Col, Input } from 'reactstrap';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ShowIf from '../../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport useGroupTitleNew from './useGroupTitleNew';\r\n\r\nconst GroupTitleFirst = (props) => {\r\n const { id, title, type } = props;\r\n const {\r\n nameInputProps, showInput, onEnterKeyExtreme,\r\n isShowInput, hideInput\r\n } = useGroupTitleNew.useNewGroup(props, type);\r\n\r\n if (isMobile) {\r\n return (\r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {/* */}\r\n \r\n \r\n {title}\r\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 GroupTitleFirst;","import React from 'react';\r\nimport { Container, Row, Col } from 'reactstrap';\r\nimport numeral from 'numeral';\r\nimport { isMobile } from 'react-device-detect';\r\nimport moment from 'moment';\r\nimport { colorsGraph } from '../../../../../../config/constants';\r\nimport HighchartsReact from 'highcharts-react-official';\r\nimport Highcharts from 'highcharts';\r\nimport GroupTitle from '../Subcomponents/GroupTitle';\r\nimport { FaCircle } from 'react-icons/fa';\r\nimport ShowIf from '../../../../../../SharedComponents/ShowIf/ShowIf';\r\n\r\nconst PlaceOrderInventoryAnalytics = (props) => {\r\n const { groups } = props;\r\n\r\n const graphsMap = groups.map(g => {\r\n const options = {\r\n title: '',\r\n chart: {\r\n type: 'spline'\r\n },\r\n credits: false,\r\n series: g.items.filter(i => !i.isSubRecipe && !i.isCustomItem).sort((a,b) => a.isPunchedOut - b.isPunchedOut || a.unitPrice - b.unitPrice || a.price - b.price).map(i => {\r\n const data = i.analytics.map(a => {\r\n return {\r\n x: new Date(a.startDate),\r\n y: a.price\r\n }\r\n });\r\n return {\r\n name: i.description || i.name,\r\n data: data,\r\n itemDistributorId: i.itemDistributorId,\r\n unitMeasure: i.unitMeasure,\r\n color: colorsGraph[i.itemDistributorId % colorsGraph.length],\r\n type: 'spline',\r\n marker: {\r\n enabled: true,\r\n radius: 5,\r\n symbol: 'circle'\r\n }\r\n }\r\n }),\r\n plotOptions:{\r\n series: {\r\n turboThreshold: 0\r\n },\r\n spline: {\r\n connectEnds: true\r\n }\r\n },\r\n tooltip: {\r\n backgroundColor: '#000000',\r\n borderColor: '#000000',\r\n borderRadius: 5,\r\n followTouchMove: false,\r\n formatter: function() {\r\n return '
'+this.series.userOptions.name+'
'+numeral(this.y).format('$0,0.00')+' '+this.series.userOptions.unitMeasure+'
';\r\n }\r\n },\r\n xAxis: {\r\n max: new Date(),\r\n // min: new Date(moment().subtract(1, 'years').format('YYYY-MM-DD')),\r\n // min: new Date('2019-02-01'),\r\n enabled: true,\r\n type: 'datetime',\r\n startOnTick: false,\r\n endOnTick: false,\r\n tickInterval: 1 * 31 * 24 * 3600 * 1000,\r\n range: 31556952*1000,\r\n clip: true\r\n // labels: {\r\n // style: {\r\n // color: '#376386'\r\n // },\r\n // format: '{value:%b %Y}'\r\n // }\r\n },\r\n legend: {\r\n enabled: false\r\n },\r\n yAxis: {\r\n gridLineWidth: 0,\r\n minorGridLineWidth: 0,\r\n lineWidth: 1,\r\n title: {\r\n text: ''\r\n },\r\n style: {\r\n color: '#376386'\r\n },\r\n labels: {\r\n formatter: function () {\r\n return numeral(this.value).format('$0,0.00');\r\n }\r\n },\r\n }\r\n };\r\n \r\n console.log(new Date('2019-02-01'));\r\n\r\n const legendMap = g.items.filter(i => !i.isSubRecipe && !i.isCustomItem).sort((a,b) => a.isPunchedOut - b.isPunchedOut || a.unitPrice - b.unitPrice || a.price - b.price).map(i => {\r\n return (\r\n \r\n {i.description || i.name}\r\n {i.brand}\r\n {i.distributor}\r\n \r\n )\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Item Name\r\n Brand\r\n Distributor\r\n \r\n {legendMap}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Item Name\r\n Brand\r\n Distributor\r\n \r\n {legendMap}\r\n \r\n \r\n \r\n );\r\n })\r\n\r\n return (\r\n \r\n {graphsMap}\r\n \r\n );\r\n};\r\n \r\nexport default PlaceOrderInventoryAnalytics;","\r\nconst useSort = () => {\r\n\r\n const sortItems = (arr, old_index, new_index) => {\r\n if (new_index >= arr.length) {\r\n var k = new_index - arr.length + 1;\r\n while (k--) {\r\n arr.push(undefined);\r\n }\r\n }\r\n arr.splice(new_index, 0, arr.splice(old_index, 1)[0]);\r\n return arr;\r\n }\r\n \r\n return { sortItems }\r\n};\r\n\r\nexport default {\r\n useSort\r\n};","import React, { useEffect, useRef } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport usePlaceOrderInventory from './usePlaceOrderInventory';\r\nimport { isMobile } from 'react-device-detect';\r\nimport PlaceOrderInventoryGroup from './PlaceOrderInventoryGroup';\r\nimport InfiniteScroll from 'react-infinite-scroller';\r\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { saveInventoryItems } from '../../../../../reducers/items/itemsActions';\r\nimport comparisonViewsApi from '../../../../../api/comparisonViewsApi';\r\nimport GroupTitleFirst from './Subcomponents/GroupTitleFirst';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { Switch, Route, Redirect } from 'react-router-dom';\r\nimport PlaceOrderInventoryAnalytics from './PlaceOrderInventoryAnalytics/PlaceOrderInventoryAnalytics';\r\nimport useDragDrop from '../../../../../SharedComponents/SharedEffects/useDragDrop'\r\n// import useMessages from '../../../../../SharedComponents/Messages/useMessages';\r\n\r\n\r\nconst PlaceOrderInventoryOnline = (props) => {\r\n const dispatch = useDispatch();\r\n const { items, page, loadMore, isLoading, getInventoryItems, sort, listSelected } = usePlaceOrderInventory.useApi();\r\n const canEditComparisonView = useSelector(({user}) => user.editComparisonView) ? true : false;\r\n // const { getMessages, getBroadcastMessages } = useMessages.useApiBroadcast();\r\n\r\n const {sortItems} = useDragDrop.useSort();\r\n const isSidebarOpen = useSelector(({ userInterface }) => userInterface.isSidebarOpen);\r\n\r\n const isAllCollapse = items.every((i) => !i.expand);\r\n\r\n const isDragging = useRef(false);\r\n let dragApi;\r\n\r\n const onDragEnd = (result) => {\r\n isDragging.current = false;\r\n if (!result.destination || result.destination.index === result.source.index) return;\r\n const source = items[result.source.index]; \r\n let params = { new_sort: result.destination.index, old_sort: result.source.index };\r\n\r\n sortItems(items, result.source.index, result.destination.index);\r\n dispatch(saveInventoryItems(items.map((it, i) => {\r\n return {\r\n ...it,\r\n sort: i\r\n }; \r\n })\r\n // .sort((a, b) => {\r\n // return a.sort > b.sort ? 1 : -1\r\n // })\r\n ));\r\n\r\n comparisonViewsApi.patchGroup(source.comparisonViewId, source.id, params).then(() => {\r\n }).catch(err => console.error(err)); \r\n \r\n };\r\n\r\n const cancelDragSensor = (api) => {\r\n dragApi = api;\r\n };\r\n\r\n// useEffect(() => {\r\n// getMessages();\r\n// getBroadcastMessages();\r\n// }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n 0}> \r\n {if (isDragging.current) { dragApi.tryReleaseLock(); } getInventoryItems(page);}}\r\n hasMore={loadMore && !isLoading}\r\n useWindow={true}\r\n >\r\n isDragging.current = true}>\r\n \r\n {(provided, snapshot) => {\r\n return (\r\n
\r\n {\r\n items.map((item, i) =>\r\n \r\n {(provided, snapshot) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }}\r\n
\r\n )\r\n }\r\n {provided.placeholder}\r\n
\r\n );\r\n }}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\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 PlaceOrderInventoryOnline;","import { useState, useEffect, useLayoutEffect } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { saveInventoryList, saveInventoryItems, selectInventoryList, clearItemsData, emoveInventoryGroup, editOneInventoryGroup,\r\n saveView, saveInventoryItemsPage, saveInventoryItemsPageTotal } from \"../../../../../reducers/items/itemsActions\";\r\nimport { getInventoryLists, getGroupsByList } from '../../../../../local/ComparisonViewLocal';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { localStorageConst } from '../../../../../config/constants';\r\nimport { packSizeUomsConversion, limitOptions } from '../../../../../config/constants';\r\nimport { spinner } from '../../../../../reducers/userInterface/userInterfaceActions';\r\nimport useConversions from '../../../../../SharedComponents/Conversion/useConversion';\r\nimport moment from \"moment\";\r\n\r\nconst useApi = () => {\r\n\r\n const dispatch = useDispatch();\r\n const items = useSelector(({ items }) => items.inventory.items);\r\n const sort = useSelector(({ items }) => items.inventory.sortBy);\r\n const list = useSelector(({ items }) => items.inventory.list);\r\n const listSelected = useSelector(({ items }) => items.inventory.listSelected);\r\n const search = useSelector(({ items }) => items.inventory.search);\r\n const [page, setPage] = useState(1);\r\n const [loadMore, setLoadMore] = useState(true);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const expandOne = items.some((i) => i.expand);\r\n const {convertAllBase} = useConversions.useConvertAll();\r\n\r\n const getInventoryList = (save) => {\r\n getInventoryLists()\r\n .then(data => {\r\n if (save) {\r\n let listSelected = [];\r\n const invListSelected = JSON.parse(localStorage.getItem(localStorageConst.keys.listSelected));\r\n if (!invListSelected) {\r\n listSelected = data[0];\r\n } else {\r\n const listSelectedExists = data.filter(slist => slist.id === invListSelected.id)[0];\r\n listSelected = (!listSelectedExists) ? data[0] : listSelectedExists;\r\n }\r\n dispatch(saveInventoryList(data, listSelected));\r\n } else {\r\n dispatch(saveInventoryList(data));\r\n }\r\n })\r\n .catch(error => {\r\n console.log(`Error in getInventoryLists ${error}`);\r\n });\r\n\r\n };\r\n\r\n const getInventoryItems = () => {\r\n dispatch(spinner(true));\r\n setIsLoading(true);\r\n getGroupsByList(listSelected.id)\r\n .then(data => {\r\n const pageNew = Math.ceil(data.length/limitOptions.inventoryView) + 1;\r\n setIsLoading(false);\r\n setLoadMore(false);\r\n setPage(pageNew);\r\n dispatch(saveInventoryItemsPage(pageNew));\r\n dispatch(saveInventoryItemsPageTotal(pageNew-1));\r\n data.sort((a, b) => { return a.sort - b.sort });\r\n dispatch(saveInventoryItems(data.map(d => {\r\n return {\r\n ...d,\r\n parLevel: d.parLevel ? d.parLevel : 0,\r\n expand: !isMobile,\r\n items: d.items.map(i => {\r\n const itemEndDate = moment(i.endDate);\r\n const itemFullPrice = i.isCustomItem === 1 ? i.price :\r\n ( itemEndDate.isValid() ?\r\n (itemEndDate.isAfter(moment()) ? i.price : (i.isFromInvoice == 1 ? (i.purchasedPrice > 0 ? i.purchasedPrice : i.price) : i.price) ) :\r\n (i.isPriceOutdated ? (i.isFromInvoice == 1 ? (i.purchasedPrice > 0 ? i.purchasedPrice : i.price) : i.price) : i.price)\r\n );\r\n const {unfixedFinalUnitPrice} = convertAllBase(i, d.unitId, d.units, itemFullPrice);\r\n return {\r\n ...i,\r\n isCustomPackSize: i.customPackSize ? !(i.customPackSize === i.packSize) : false,\r\n finalUnitPrice: unfixedFinalUnitPrice,\r\n }\r\n })\r\n }\r\n })));\r\n dispatch(spinner(false));\r\n })\r\n .catch(error => {\r\n console.log(`Error in getGroupsByList ${error}`);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n getInventoryList(true);\r\n dispatch(saveView('inventory'));\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (listSelected) {\r\n dispatch(clearItemsData());\r\n getInventoryItems();\r\n }\r\n }, [listSelected]);\r\n\r\n return {\r\n getInventoryItems, getInventoryList, listSelected,\r\n items, loadMore, isLoading, page, sort\r\n };\r\n};\r\n\r\n\r\nexport default {\r\n useApi\r\n};\r\n","import React, { useEffect, useRef } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport usePlaceOrderInventoryOffline from './usePlaceOrderInventoryOffline';\r\nimport { isMobile } from 'react-device-detect';\r\nimport PlaceOrderInventoryGroup from './PlaceOrderInventoryGroup';\r\nimport InfiniteScroll from 'react-infinite-scroller';\r\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { saveInventoryItems } from '../../../../../reducers/items/itemsActions';\r\nimport comparisonViewsApi from '../../../../../api/comparisonViewsApi';\r\nimport GroupTitleFirst from './Subcomponents/GroupTitleFirst';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { Switch, Route, Redirect } from 'react-router-dom';\r\nimport PlaceOrderInventoryAnalytics from './PlaceOrderInventoryAnalytics/PlaceOrderInventoryAnalytics';\r\nimport useDragDrop from '../../../../../SharedComponents/SharedEffects/useDragDrop'\r\n\r\n\r\nconst PlaceOrderInventoryOffline = (props) => {\r\n const dispatch = useDispatch();\r\n const { items, page, loadMore, isLoading, getInventoryItems, sort, listSelected } = usePlaceOrderInventoryOffline.useApi();\r\n const canEditComparisonView = useSelector(({user}) => user.editComparisonView) ? true : false;\r\n\r\n const {sortItems} = useDragDrop.useSort();\r\n\r\n const isAllCollapse = items.every((i) => !i.expand);\r\n\r\n const isDragging = useRef(false);\r\n let dragApi;\r\n\r\n const onDragEnd = (result) => {\r\n isDragging.current = false;\r\n if (!result.destination || result.destination.index === result.source.index) return;\r\n const source = items[result.source.index]; \r\n let params = { new_sort: result.destination.index, old_sort: result.source.index };\r\n\r\n sortItems(items, result.source.index, result.destination.index);\r\n dispatch(saveInventoryItems(items.map((it, i) => {\r\n return {\r\n ...it,\r\n sort: i\r\n }; \r\n })\r\n // .sort((a, b) => {\r\n // return a.sort > b.sort ? 1 : -1\r\n // })\r\n ));\r\n\r\n comparisonViewsApi.patchGroup(source.comparisonViewId, source.id, params).then(() => {\r\n }).catch(err => console.error(err)); \r\n \r\n };\r\n\r\n const cancelDragSensor = (api) => {\r\n dragApi = api;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n 0}> \r\n {if (isDragging.current) { dragApi.tryReleaseLock(); } getInventoryItems(page);}}\r\n hasMore={loadMore && !isLoading}\r\n useWindow={true}\r\n >\r\n isDragging.current = true}>\r\n \r\n {(provided, snapshot) => {\r\n return (\r\n
\r\n {\r\n items.map((item, i) =>\r\n \r\n {(provided, snapshot) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }}\r\n
\r\n )\r\n }\r\n {provided.placeholder}\r\n
\r\n );\r\n }}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\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 PlaceOrderInventoryOffline;","import React, { Fragment, useState } from 'react';\r\nimport { Prompt, useHistory } from 'react-router-dom';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { localStorageConst } from '../../../../../config/constants';\r\nimport PlaceOrderInventoryOnline from './PlaceOrderInventoryOnline';\r\nimport PlaceOrderInventoryOffline from './PlaceOrderInventoryOffline';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport AlertModal from '../../../../../SharedComponents/Modals/AlertModal/AlertModal';\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport useConnection from '../../../../../SharedComponents/OfflineMode/useConnection';\r\n\r\n\r\nconst PlaceOrderInventory = (props) => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const { getConnectionState } = useConnection.useMode();\r\n let inventorySync = JSON.parse(localStorage.getItem(localStorageConst.keys.inventorySync));\r\n \r\n const blockNavigation = (location, action) => {\r\n if(getConnectionState()){\r\n return;\r\n }\r\n const path = location.pathname;\r\n return (path==='/' || path==='/place-order/inventory')\r\n ? true\r\n : \"You're in offline mode, please enable online mode before leaving the page or you will lose any changes made to your account. Do you want to leave anyway?\";\r\n };\r\n\r\n window.onbeforeunload = function() {\r\n const path = history.location.pathname;\r\n if(path==='/place-order/inventory' && !getConnectionState()){\r\n return \"Data will be lost if you leave the page, are you sure?\";\r\n }\r\n };\r\n \r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PlaceOrderInventory;\r\n","import React from 'react';\r\nimport { Switch, Route, Redirect } from 'react-router-dom';\r\nimport PlaceOrderList from './PlaceOrderList/PlaceOrderList';\r\nimport PlaceOrderInventory from './PlaceOrderInventory/PlaceOrderInventory';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst PlaceOrderContent = () => { \r\n const activeLocation = useSelector(({user}) => user.activeLocation);\r\n\r\n return (\r\n \r\n \r\n {\r\n activeLocation.display_comparison_view ?\r\n \r\n : null\r\n }\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PlaceOrderContent;","import axios from \"axios\";\r\n\r\nconst all = (search) => {\r\n const filters = [{\r\n field: 'nickname',\r\n value: search,\r\n operator: 'like'\r\n }];\r\n const string = JSON.stringify(filters);\r\n const params = search ? {filters: string} : null;\r\n return axios.get('locations/all', {\r\n params: params\r\n });\r\n};\r\n\r\nconst users = (id) => {\r\n return axios.get(`locations/users/${id}`);\r\n}\r\n\r\nconst getMessage = (merchantId) => {\r\n const params = {merchant_id: merchantId};\r\n return axios.get('users/get-message',{params});\r\n};\r\n\r\nconst readMessage = (params) => {\r\n return axios.post('users/read-message',params);\r\n};\r\n\r\nconst getBroadcastMessage = (merchantId) => {\r\n const params = {merchant_id: merchantId};\r\n return axios.get('users/get-broadcast-message',{params});\r\n};\r\n\r\nconst readBroadcastMessage = (params) => {\r\n return axios.post('users/read-broadcast-message',params);\r\n};\r\n\r\nexport default {\r\n all,\r\n users,\r\n getMessage,\r\n readMessage,\r\n getBroadcastMessage,\r\n readBroadcastMessage\r\n};","import React, { useState, useEffect } from 'react';\r\nimport locationsApi from '../../api/locationsApi';\r\nimport { useDispatch } from 'react-redux';\r\nimport { localStorageConst } from '../../config/constants';\r\nimport { Row, Col } from 'reactstrap';\r\nimport { showModal } from \"../../reducers/modals/modalsActions\";\r\nimport AlertModal from '../Modals/AlertModal/AlertModal';\r\n\r\nconst useApiBroadcast = () => {\r\n const dispatch = useDispatch();\r\n const activeLocation = JSON.parse(localStorage.getItem(localStorageConst.keys.activeLocation));\r\n\r\n const getMessages = () => {\r\n let data=[], params=[];\r\n if(!activeLocation){ \r\n return;\r\n }\r\n locationsApi.getMessage(activeLocation.id).then(res => {\r\n data = res.data;\r\n if(data.length===0){ \r\n return; \r\n }\r\n data.forEach(msg => { params.push({id:msg.id}) }); \r\n const map = data.map((msg) => ( {msg.message} )); \r\n const props = {message:map, onOk: readMessages(params)};\r\n dispatch(showModal(AlertModal, props));\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n const readMessages = (params) => {\r\n if(params.length===0){ return; }\r\n locationsApi.readMessage(params).then(res => {\r\n return res.data;\r\n })\r\n .catch(error => console.log(error)); \r\n };\r\n\r\n const getBroadcastMessages = () => {\r\n let data=[], params=[];\r\n if(!activeLocation){ \r\n return;\r\n }\r\n locationsApi.getBroadcastMessage(activeLocation.id).then(res => {\r\n data = res.data[0];\r\n if(data.broadcast_message===null){ \r\n return;\r\n }\r\n params={id:activeLocation.id};\r\n const map = {data.broadcast_message}; \r\n const props = {message:map, onOk: readBroadcastMessages(params)};\r\n dispatch(showModal(AlertModal, props));\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n const readBroadcastMessages = (params) => {\r\n if(params.length===0){ return; }\r\n locationsApi.readBroadcastMessage(params).then(res => {\r\n return res.data;\r\n })\r\n .catch(error => console.log(error)); \r\n };\r\n\r\n return { getMessages, getBroadcastMessages };\r\n};\r\n\r\n\r\nexport default {\r\n useApiBroadcast\r\n};","import React, { useEffect } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport Header from '../../../../SharedComponents/Header/Header';\r\nimport SubHeaderPlaceHolder from '../../../../SharedComponents/SubHeader/SubHeaderPlaceOrder/SubHeaderPlaceOrder';\r\nimport PlaceOrderContent from './PlaceOrderContent';\r\nimport useMessages from '../../../../SharedComponents/Messages/useMessages';\r\n\r\n\r\nconst PlaceOrder = (props) => {\r\n const { match, history } = props;\r\n const { view } = match.params;\r\n\r\n const { getMessages, getBroadcastMessages } = useMessages.useApiBroadcast();\r\n\r\n const headerProps = {\r\n view, showSearchbar: true, history,\r\n showSearchFilters: view === 'list'\r\n };\r\n\r\n useEffect(() => {\r\n getMessages();\r\n getBroadcastMessages();\r\n }, []);\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default PlaceOrder;","export const setMenuList = (list) => {\r\n return {\r\n type: 'SET_MENU_LIST',\r\n payload: list\r\n }\r\n};\r\n\r\nexport const setRecipeList = (list) => {\r\n return {\r\n type: 'SET_RECIPE_LIST',\r\n payload: list\r\n }\r\n};\r\n\r\nexport const setRecipeListPage = (page) => {\r\n return {\r\n type: 'SET_RECIPE_LIST_PAGE',\r\n payload: page\r\n }\r\n};\r\n\r\nexport const setRecipeListIsLoading = (isLoading) => {\r\n return {\r\n type: 'SET_RECIPE_LIST_IS_LOADING',\r\n payload: isLoading\r\n }\r\n};\r\n\r\nexport const setRecipeListLoadMore = (loadMore) => {\r\n return {\r\n type: 'SET_RECIPE_LIST_LOAD_MORE',\r\n payload: loadMore\r\n }\r\n};\r\n\r\nexport const setIngredientsList = (list) => {\r\n return {\r\n type: 'SET_INGREDIENTS_LIST',\r\n payload: list\r\n }\r\n};\r\n\r\nexport const setRecipeInfo = (info) => {\r\n return {\r\n type: 'SET_RECIPE_INFO',\r\n payload: info\r\n }\r\n};\r\n\r\nexport const clearRecipeInfo = (menuList) => {\r\n return {\r\n type: 'SET_RECIPE_INFO',\r\n payload: {\r\n id: null,\r\n recipeName: '',\r\n menuCategory: menuList ? menuList : null,\r\n menuPrice: 0,\r\n isSubrecipe: false,\r\n isSubrecipeUsed: false,\r\n recipeYield: '',\r\n recipeYieldUom: '',\r\n description: '',\r\n procedure: '',\r\n totalCost: 0,\r\n marginGrossProfit: 0,\r\n foodCostPercent: 0,\r\n hasInactiveItems: 0\r\n }\r\n }\r\n};\r\n\r\nexport const setAlphaSort = (value) => {\r\n return {\r\n type: 'SET_ALPHA_SORT',\r\n payload: value\r\n }\r\n};\r\n","import React from \"react\";\r\nimport \"./InputCheckbox.scss\";\r\nimport classNames from \"classnames\";\r\nimport { useState } from \"react\";\r\n\r\nconst InputCheckbox = (props) => {\r\n const className = props.className || \"\";\r\n const {\r\n value,\r\n active,\r\n undetermined,\r\n onClick,\r\n onChange,\r\n defaultChecked,\r\n } = props;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst InputCheckboxControlled = (props) => {\r\n const className = props.className || \"\";\r\n const {\r\n value,\r\n active,\r\n undetermined,\r\n onClick,\r\n onChange,\r\n defaultChecked,\r\n } = props;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default InputCheckbox;\r\n\r\nexport { InputCheckboxControlled };\r\n","import React from \"react\";\r\nimport numeral from \"numeral\";\r\nimport { MdKeyboardArrowRight } from \"react-icons/md\";\r\nimport useRecipeCostingMenu from \"./useRecipeCostingMenu\";\r\nimport \"./RecipeCostingTableRow.scss\";\r\nimport { InputCheckboxControlled } from \"../../../../../SharedComponents/InputCheckbox/InputCheckbox\";\r\n\r\nconst styles = {\r\n itemName: {\r\n fontWeight: 400,\r\n },\r\n details: {\r\n verticalAlign: \"middle\",\r\n textAlign: \"center\",\r\n fontWeight: 400,\r\n color: \"#006eba\",\r\n },\r\n detailsIcon: {\r\n fontSize: \"2.2rem\",\r\n position: \"relative\",\r\n left: \"-0.5rem\",\r\n },\r\n};\r\n\r\nconst RecipeCostingTableRow = (props) => {\r\n const {\r\n selected,\r\n selectRecipe,\r\n id,\r\n name,\r\n price,\r\n totalCost,\r\n foodCostPercent,\r\n posQuantitySold,\r\n posTotalSold,\r\n } = props;\r\n const { goToRecipe } = useRecipeCostingMenu.useRow(props);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {name}\r\n \r\n \r\n {numeral(parseFloat(price)).format(\"$0,0.00\").replace(\"NaN\", \"0.00\")}\r\n \r\n {numeral(totalCost).format(\"$0,0.00\")}\r\n {numeral(foodCostPercent).format(\"0,0.00%\")}\r\n \r\n {null === posQuantitySold || \"undefined\" === typeof posQuantitySold\r\n ? \"-\"\r\n : numeral(posQuantitySold).format(\"0,0\") +\r\n \" \" +\r\n (posQuantitySold === 1 ? \"item\" : \"items\")}\r\n \r\n \r\n {null === posTotalSold || \"undefined\" === typeof posTotalSold\r\n ? \"-\"\r\n : numeral(posTotalSold).format(\"$0,0.00\")}\r\n \r\n \r\n Details \r\n \r\n \r\n );\r\n};\r\n\r\nexport default RecipeCostingTableRow;\r\n","import React from \"react\";\r\nimport { Table, Card, Row } from \"reactstrap\";\r\nimport { MdArrowDropUp, MdArrowDropDown } from \"react-icons/md\";\r\nimport ShowIf from \"../../../../../SharedComponents/ShowIf/ShowIf\";\r\nimport RecipeCostingTableRow from \"./RecipeCostingTableRow\";\r\n\r\nconst styles = {\r\n tableHeader: {\r\n fontSize: \"0.85rem\",\r\n },\r\n inputWrapper: {\r\n alignItems: \"center\",\r\n },\r\n inputLabel: {\r\n margin: 0,\r\n },\r\n};\r\n\r\nconst RecipeCostingTable = (props) => {\r\n const {\r\n list,\r\n tableSort,\r\n updateSortBy,\r\n selectRecipe,\r\n selectedRecipes,\r\n } = props;\r\n\r\n return (\r\n 0}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n updateSortBy({\r\n prop: \"price\",\r\n type:\r\n tableSort.prop !== \"price\" ? 1 : tableSort.type * -1,\r\n })\r\n }\r\n >\r\n Menu Price\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n updateSortBy({\r\n prop: \"totalCost\",\r\n type:\r\n tableSort.prop !== \"totalCost\"\r\n ? 1\r\n : tableSort.type * -1,\r\n })\r\n }\r\n >\r\n Food Cost\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n updateSortBy({\r\n prop: \"foodCostPercent\",\r\n type:\r\n tableSort.prop !== \"foodCostPercent\"\r\n ? 1\r\n : tableSort.type * -1,\r\n })\r\n }\r\n >\r\n Food Cost %\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n updateSortBy({\r\n prop: \"posQuantitySold\",\r\n type:\r\n tableSort.prop !== \"posQuantitySold\"\r\n ? 1\r\n : tableSort.type * -1,\r\n })\r\n }\r\n >\r\n POS: QTY\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n updateSortBy({\r\n prop: \"posTotalSold\",\r\n type:\r\n tableSort.prop !== \"posTotalSold\"\r\n ? 1\r\n : tableSort.type * -1,\r\n })\r\n }\r\n >\r\n POS: Total Sold\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {list.map((recipe) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n
 \r\n Menu Item Name\r\n  
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default RecipeCostingTable;\r\n","import React from \"react\";\r\nimport \"./RecipeCostingSubHeader.scss\";\r\nimport classNames from \"classnames\";\r\nimport moment from \"moment\";\r\nimport { isMobile } from \"react-device-detect\";\r\nimport {\r\n Row,\r\n Nav,\r\n Col,\r\n NavItem,\r\n NavLink,\r\n ButtonGroup,\r\n Button,\r\n} from \"reactstrap\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport ShowIf from \"../../../../../SharedComponents/ShowIf/ShowIf\";\r\nimport { InputCheckboxControlled } from \"../../../../../SharedComponents/InputCheckbox/InputCheckbox\";\r\nimport { MdLocationOn, MdTrendingFlat } from \"react-icons/md\";\r\nimport { IoMdPrint, IoMdTrash } from \"react-icons/io\";\r\nimport { FaCopy } from \"react-icons/fa\";\r\n\r\nconst styles = {\r\n inputWrapper: {\r\n alignItems: \"center\",\r\n },\r\n inputLabel: {\r\n margin: 0,\r\n },\r\n};\r\n\r\nconst RecipeCostingSubHeader = (props) => {\r\n const {\r\n tabs,\r\n changeTab,\r\n dateFilter,\r\n posBgnDate,\r\n setPOSBgnDate,\r\n posEndDate,\r\n setPOSEndDate,\r\n nRecipes,\r\n selectAllRecipes,\r\n selectedRecipes,\r\n duplicateRecipes,\r\n printRecipes,\r\n deleteRecipes,\r\n } = props;\r\n\r\n const nRecipesSelected = selectedRecipes.length;\r\n\r\n const TabFilter = (props) => {\r\n const { isActive, updateDateFilter, index, name } = props;\r\n\r\n return (\r\n \r\n updateDateFilter(index)}\r\n >\r\n {name}\r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n 0 && nRecipesSelected !== nRecipes\r\n }\r\n active={nRecipesSelected > 0}\r\n onClick={(e) => selectAllRecipes(e)}\r\n />\r\n \r\n \r\n {nRecipesSelected > 0 ? \"Deselect All\" : \"Select All\"}\r\n \r\n 0}>\r\n \r\n \r\n \r\n {nRecipesSelected +\r\n \" \" +\r\n (nRecipesSelected === 1 ? \"recipe\" : \"recipes\") +\r\n \" selected\"}\r\n \r\n {/* \r\n
*/}\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Start Date:\r\n \r\n \r\n setPOSBgnDate(moment(date).hour(0).minute(0).second(0))\r\n }\r\n />\r\n \r\n End Date:\r\n \r\n \r\n setPOSEndDate(moment(date).hour(23).minute(59).second(59))\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default RecipeCostingSubHeader;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport recipeApi from \"../../../../../api/recipeApi\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport InfiniteScroll from 'react-infinite-scroller';\r\nimport { showModal } from \"../../../../../reducers/modals/modalsActions\";\r\nimport AlertModal from \"../../../../../SharedComponents/Modals/AlertModal/AlertModal\";\r\nimport OptionsModal from \"../../../../../SharedComponents/Modals/OptionsModal/OptionsModal\";\r\nimport QuestionModal from \"../../../../../SharedComponents/Modals/QuestionModal/QuestionModal\";\r\nimport {\r\n setRecipeList,\r\n setRecipeListPage,\r\n setRecipeListIsLoading,\r\n setRecipeListLoadMore,\r\n setIngredientsList,\r\n clearRecipeInfo,\r\n} from \"../../../../../reducers/recipeCosting/recipeCostingActions\";\r\nimport RecipeCostingTable from \"./RecipeCostingTable\";\r\nimport moment from \"moment\";\r\nimport RecipeCostingSubHeader from \"./RecipeCostingSubHeader\";\r\n\r\nconst useApi = () => {\r\n const menuList = useSelector(({ recipeCosting }) => recipeCosting.menuList);\r\n const recipeList = useSelector(({ recipeCosting }) => recipeCosting.recipeList);\r\n const page = useSelector(({ recipeCosting }) => recipeCosting.recipeListPage);\r\n const isLoading = useSelector(({ recipeCosting }) => recipeCosting.recipeListIsLoading);\r\n const loadMore = useSelector(({ recipeCosting }) => recipeCosting.recipeListLoadMore);\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const params = useParams();\r\n const id = parseInt(params.menuId);\r\n const selected = menuList.filter((m) => m.value === id)[0];\r\n\r\n const getRecipes = (posBgnDate, posEndDate, p) => {\r\n if (isLoading) return;\r\n const newPage = p ? p + 1 : page + 1;\r\n dispatch(setRecipeListIsLoading(true));\r\n recipeApi\r\n .getInRange(id, posBgnDate, posEndDate, (p ? p : page))\r\n .then((res) => {\r\n if (p == 1) {\r\n dispatch(setRecipeList(res.data));\r\n } else {\r\n dispatch(setRecipeList(recipeList.concat(res.data)));\r\n }\r\n dispatch(setRecipeListPage(newPage));\r\n dispatch(setRecipeListIsLoading(false));\r\n dispatch(setRecipeListLoadMore(res._meta.pageCount > res._meta.currentPage));\r\n })\r\n .catch((err) => {\r\n if (err.code === 404) {\r\n dispatch(\r\n showModal(AlertModal, {\r\n message: \"Menu Not Found\",\r\n onOk: () => {\r\n history.push(\"/recipe-costing\");\r\n },\r\n })\r\n );\r\n }\r\n console.error(\"RecipeApi get Error:\", err);\r\n });\r\n };\r\n\r\n const getMoreRecipes = (page) => {\r\n getRecipes(posBgnDate, posEndDate);\r\n };\r\n\r\n const createRecipe = (params, redirect, replace) => {\r\n recipeApi\r\n .post(params)\r\n .then(({ data }) => {\r\n const path = `${history.location.pathname}/recipe/${data.id}`;\r\n dispatch(setRecipeListPage(1));\r\n dispatch(setRecipeListIsLoading(false));\r\n dispatch(setRecipeListLoadMore(false));\r\n getRecipes(posBgnDate, posEndDate);\r\n if (redirect) {\r\n if (replace) {\r\n history.replace(path);\r\n } else {\r\n history.push(path);\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n if (err.code === 400) {\r\n dispatch(showModal(AlertModal, { message: err.data.message }));\r\n } else {\r\n dispatch(showModal(AlertModal, { message: \"Something wen't wrong\" }));\r\n }\r\n console.error(\"RecipeApi post Error:\", err);\r\n });\r\n };\r\n\r\n const tableTabs = [\"Weekly\", \"Monthly\", \"Year to Date\", \"Custom\"];\r\n const [tableSort, updateSortBy] = useState({ prop: \"name\", type: 1 });\r\n const [dateFilter, updateDateFilter] = useState(0);\r\n const [posBgnDate, setPOSBgnDate] = useState(\r\n moment().startOf(\"week\").hour(0).minute(0).second(0)\r\n );\r\n const [posEndDate, setPOSEndDate] = useState(\r\n moment().subtract(1, \"days\").hour(23).minute(59).second(0)\r\n );\r\n const [selectedRecipes, updateSelectedRecipes] = useState([]);\r\n\r\n const changeTab = (tabIndex) => {\r\n updateDateFilter(tabIndex);\r\n switch (tableTabs[tabIndex]) {\r\n case \"Monthly\":\r\n setPOSBgnDate(moment().startOf(\"month\").hour(0).minute(0).second(0));\r\n setPOSEndDate(\r\n moment().subtract(1, \"days\").hour(23).minute(59).second(0)\r\n );\r\n break;\r\n case \"Year to Date\":\r\n setPOSBgnDate(moment().startOf(\"year\").hour(0).minute(0).second(0));\r\n setPOSEndDate(\r\n moment().subtract(1, \"days\").hour(23).minute(59).second(0)\r\n );\r\n break;\r\n case \"Weekly\":\r\n default:\r\n setPOSBgnDate(moment().startOf(\"week\").hour(0).minute(0).second(0));\r\n setPOSEndDate(\r\n moment().subtract(1, \"days\").hour(23).minute(59).second(0)\r\n );\r\n break;\r\n }\r\n };\r\n\r\n const selectRecipe = (e) => {\r\n const updatedRecipeList = JSON.parse(JSON.stringify(selectedRecipes));\r\n const selectedRecipeId = parseInt(e.target.value);\r\n if (\r\n e.target.checked &&\r\n -1 === updatedRecipeList.indexOf(selectedRecipeId)\r\n ) {\r\n updatedRecipeList.push(selectedRecipeId);\r\n }\r\n if (\r\n !e.target.checked &&\r\n -1 !== updatedRecipeList.indexOf(selectedRecipeId)\r\n ) {\r\n updatedRecipeList.splice(updatedRecipeList.indexOf(selectedRecipeId), 1);\r\n }\r\n\r\n updateSelectedRecipes(updatedRecipeList);\r\n };\r\n\r\n const selectAllRecipes = (e) => {\r\n if (e.target.checked) {\r\n updateSelectedRecipes(recipeList.map((r) => parseInt(r.id)));\r\n\r\n return;\r\n }\r\n updateSelectedRecipes([]);\r\n };\r\n\r\n const duplicateRecipes = () => {\r\n const chain = selectedRecipes.map((recipeId) =>\r\n recipeApi.duplicate(recipeId)\r\n );\r\n Promise.all(chain)\r\n .then(() => {\r\n dispatch(setRecipeListPage(1));\r\n dispatch(setRecipeListIsLoading(false));\r\n dispatch(setRecipeListLoadMore(false));\r\n getRecipes(posBgnDate, posEndDate);\r\n })\r\n .catch((err) => {\r\n console.error(\"RecipeApi duplicate Error:\", err);\r\n });\r\n };\r\n\r\n const printRecipes = () => {\r\n const recipeIds = selectedRecipes.join(\",\");\r\n recipeApi.print(recipeIds)\r\n .then((response) => {\r\n const link = document.createElement('a');\r\n link.href = response.data;\r\n link.target = \"_blank\";\r\n link.click();\r\n // link.dispatchEvent(new MouseEvent('click'));\r\n })\r\n .catch((err) => {\r\n console.error(\"RecipeApi print Error:\", err);\r\n });\r\n };\r\n\r\n const deleteRecipes = () => {\r\n const questionProps = {\r\n message:\r\n \"Delete selected recipe\" + (selectedRecipes.length > 1 ? \"s\" : \"\") + \"?\",\r\n leftButton: {\r\n title: \"Delete\",\r\n color: \"orange\",\r\n onClick: () => {\r\n const chain = selectedRecipes.map((recipeId) =>\r\n recipeApi.delete(recipeId)\r\n );\r\n Promise.all(chain)\r\n .then(() => {\r\n dispatch(setRecipeListPage(1));\r\n dispatch(setRecipeListIsLoading(false));\r\n dispatch(setRecipeListLoadMore(false));\r\n getRecipes(posBgnDate, posEndDate);\r\n })\r\n .catch((err) => {\r\n console.error(\"RecipeApi delete Error:\", err);\r\n });\r\n },\r\n },\r\n rightButton: {\r\n title: \"Cancel\",\r\n color: \"green\",\r\n },\r\n };\r\n dispatch(showModal(QuestionModal, questionProps));\r\n };\r\n\r\n useEffect(() => {\r\n if (\r\n params.menuId &&\r\n menuList.length &&\r\n params.menuId !== \"new-recipe\" &&\r\n posBgnDate &&\r\n posEndDate\r\n ) {\r\n const exist = menuList.filter((m) => m.value === id)[0];\r\n if (exist) {\r\n dispatch(setRecipeList([]));\r\n dispatch(setRecipeListPage(1));\r\n dispatch(setRecipeListIsLoading(false));\r\n dispatch(setRecipeListLoadMore(false));\r\n console.log('useEffect getRecipes');\r\n getRecipes(posBgnDate, posEndDate, 1);\r\n } else {\r\n dispatch(\r\n showModal(AlertModal, {\r\n message: \"Menu Category Not Found\",\r\n onOk: () => {\r\n history.push(\"/recipe-costing\");\r\n },\r\n })\r\n );\r\n }\r\n }\r\n }, [params.menuId, menuList, posBgnDate, posEndDate]);\r\n\r\n useEffect(() => {\r\n updateSelectedRecipes([]);\r\n }, [recipeList]);\r\n\r\n const sorted = recipeList.sort((a, b) => {\r\n if (\"name\" === tableSort.prop) {\r\n return tableSort.type * a.name.localeCompare(b.name, navigator.languages[0] || navigator.language, {numeric: true, ignorePunctuation: true});\r\n }\r\n\r\n if (a[tableSort.prop] === b[tableSort.prop]) {\r\n return 0;\r\n }\r\n\r\n if (a[tableSort.prop] === \"-\") {\r\n return tableSort.type;\r\n }\r\n\r\n return tableSort.type * (a[tableSort.prop] > b[tableSort.prop] ? 1 : -1);\r\n });\r\n\r\n useEffect(() => {\r\n // console.log(\"hook\", selectedRecipes);\r\n }, []);\r\n\r\n const scrollListener = () => {\r\n const threshold = 300;\r\n if (window.innerHeight + document.documentElement.scrollTop + threshold >= document.documentElement.offsetHeight\r\n && loadMore && !isLoading) {\r\n getMoreRecipes(page+1);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n window.addEventListener('mousewheel', scrollListener);\r\n window.addEventListener('scroll', scrollListener);\r\n window.addEventListener('resize', scrollListener);\r\n return () => {\r\n window.removeEventListener('mousewheel', scrollListener);\r\n window.removeEventListener('scroll', scrollListener);\r\n window.removeEventListener('resize', scrollListener);\r\n };\r\n }, [page, loadMore, isLoading]);\r\n\r\n const recipeDateFilter = (\r\n \r\n );\r\n\r\n const recipeListTable = (\r\n \r\n );\r\n\r\n const menuName = selected ? selected.label : \"...\";\r\n\r\n return {\r\n recipeList,\r\n menuName,\r\n selected,\r\n createRecipe,\r\n menuList,\r\n recipeDateFilter,\r\n recipeListTable,\r\n };\r\n};\r\n\r\nconst useRow = (props) => {\r\n const { id, getRecipes } = props;\r\n const [hover, setHover] = useState(false);\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const goToRecipe = () => {\r\n dispatch(setIngredientsList([]));\r\n dispatch(clearRecipeInfo());\r\n history.push(`${history.location.pathname}/recipe/${id}`);\r\n };\r\n\r\n const duplicateRecipe = () => {\r\n recipeApi.duplicate(id).then(({data}) => {\r\n getRecipes();\r\n }).catch(err => {\r\n console.error('RecipeApi duplicate Error:', err);\r\n });\r\n };\r\n\r\n const removeRecipe = () => {\r\n recipeApi.delete(id).then(({data}) => {\r\n getRecipes();\r\n }).catch(err => {\r\n console.error('RecipeApi delete Error:', err);\r\n });\r\n };\r\n\r\n const deleteRecipe = () => {\r\n const questionProps = {\r\n message: 'Delete Recipe?',\r\n leftButton: {\r\n title: 'Delete',\r\n color: 'orange',\r\n onClick: () => removeRecipe(id)\r\n },\r\n rightButton: {\r\n title: 'Cancel',\r\n color: 'green'\r\n }\r\n }\r\n dispatch(showModal(QuestionModal, questionProps));\r\n };\r\n\r\n const openRecipeOptions = () => {\r\n const optionsProps = {\r\n title: 'Select',\r\n options: [\r\n {label: 'Duplicate', onClick: duplicateRecipe},\r\n {label: 'Delete', onClick: deleteRecipe}\r\n ]\r\n };\r\n dispatch(showModal(OptionsModal, optionsProps));\r\n };\r\n\r\n return {\r\n hover, setHover, goToRecipe, openRecipeOptions,\r\n duplicateRecipe, deleteRecipe\r\n };\r\n};\r\n\r\n\r\nexport default {\r\n useApi, useRow\r\n};\r\n","import React, { useEffect } from 'react';\r\nimport { Row, Col, Input, Card } from 'reactstrap';\r\nimport numeral from 'numeral';\r\nimport { FaChevronRight, FaExclamationCircle } from 'react-icons/fa';\r\nimport { colors } from '../../../../../../config/constants';\r\nimport useInput from '../../../../../../SharedComponents/SharedEffects/useInput';\r\nimport ShowIf from '../../../../../../SharedComponents/ShowIf/ShowIf';\r\n\r\nconst RecipeIngredientsItemRowMobile = (props) => {\r\n const {\r\n image, name, brand, amount, uom, price, updateAmount, data, openDetails\r\n } = props;\r\n\r\n const { value: amountValue, set: setAmount } = useInput.useText(amount, { isFraction: true });\r\n\r\n const onBlur = () => {\r\n updateAmount(data.recipe_id, data.id, data.ingredientType, data.ingredientId, amountValue);\r\n };\r\n useEffect(() => {\r\n setAmount(amount ? amount : '');\r\n }, [amount]);\r\n\r\n const styleInactive = {\r\n justifyContent: 'flex-end',\r\n height: 13,\r\n fontSize: 11,\r\n display: 'flex',\r\n letterSpacing: '0.1em',\r\n color: colors.blue\r\n };\r\n\r\n return (\r\n \r\n\r\n \r\n
\r\n \r\n

\r\n INACTIVE ITEM\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {name}\r\n {brand}\r\n \r\n {numeral(price).format('$0,0.00')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {uom}\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n );\r\n};\r\n\r\nexport default RecipeIngredientsItemRowMobile;","import React, { Fragment, useEffect } from 'react';\r\nimport { Row, Col, Input } from 'reactstrap';\r\nimport numeral from 'numeral';\r\nimport { FaChevronRight, FaExclamationCircle } from 'react-icons/fa';\r\nimport { colors } from '../../../../../../config/constants';\r\nimport useInput from '../../../../../../SharedComponents/SharedEffects/useInput';\r\nimport validate from 'validate.js';\r\nimport ShowIf from '../../../../../../SharedComponents/ShowIf/ShowIf';\r\n\r\nconst RecipeIngredientsItemRowDesktop = (props) => {\r\n const {\r\n image, name, brand, amount, uom, price, updateAmount, data, openDetails\r\n } = props;\r\n\r\n const amountEdit = useInput.useText(amount, { validate: { fraction: { strict: false } } });\r\n\r\n const onBlur = () => {\r\n if (!validate.single(amountEdit.value, { fraction: { strict: true } })) {\r\n updateAmount(data.recipe_id, data.id, data.ingredientType, data.ingredientId, amountEdit.value);\r\n } else {\r\n amountEdit.setValue(amount);\r\n }\r\n };\r\n\r\n const styleInactive = {\r\n justifyContent: 'flex-end',\r\n height: 13,\r\n fontSize: 11,\r\n display: 'flex',\r\n letterSpacing: '0.1em',\r\n color : colors.blue\r\n };\r\n\r\n useEffect(() => {\r\n amountEdit.setValue(amount ? amount : '');\r\n }, [amount]);\r\n\r\n return (\r\n \r\n\r\n \r\n
\r\n \r\n

\r\n INACTIVE ITEM\r\n

\r\n
\r\n
\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n {name}\r\n {brand}\r\n \r\n \r\n \r\n \r\n {uom}\r\n \r\n {numeral(price).format('$0,0.00')}\r\n \r\n \r\n Details \r\n \r\n\r\n \r\n
\r\n\r\n );\r\n};\r\n\r\nexport default RecipeIngredientsItemRowDesktop;","import React, { Fragment } from 'react';\r\nimport ShowIf from '../../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { isMobile } from 'react-device-detect';\r\nimport RecipeIngredientsItemRowMobile from './RecipeIngredientsItemRowMobile';\r\nimport RecipeIngredientsItemRowDesktop from './RecipeIngredientsItemRowDesktop';\r\n\r\nconst RecipeIngredientsItemRow = (props) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default RecipeIngredientsItemRow;","import { useEffect } from 'react';\r\nimport useRecipeCostingRecipe from '../../RecipeCostingRecipe/useRecipeCostingRecipe';\r\n\r\nconst useRecipeInfoModal = (props, modalProps) => {\r\n const {\r\n onSave, menuInfo, recipeInfo\r\n } = props;\r\n\r\n const {\r\n recipeName, menuCategory, menuPrice, isSubrecipe,\r\n recipeYield, recipeYieldUom, description, procedure, isRecipeInfoValid\r\n } = useRecipeCostingRecipe.useInfoForms(recipeInfo ? recipeInfo.isSubRecipeUsed : false);\r\n\r\n useEffect(() => {\r\n menuCategory.set(menuInfo);\r\n if (recipeInfo) {\r\n recipeName.setValue(recipeInfo.name);\r\n menuPrice.setValue(recipeInfo.price);\r\n recipeYield.setValue(recipeInfo.subRecipeYield);\r\n recipeYieldUom.setValue(recipeInfo.subRecipeYieldUom);\r\n isSubrecipe.set(recipeInfo.isSubRecipe);\r\n description.setValue(recipeInfo.description);\r\n procedure.setValue(recipeInfo.procedure);\r\n }\r\n }, []);\r\n\r\n const clickSave = () => {\r\n if (isRecipeInfoValid()) {\r\n const params = {\r\n name: recipeName.value,\r\n recipe_menu_category_id: menuCategory.value.value,\r\n price: menuPrice.value,\r\n description: description.value,\r\n procedure: procedure.value,\r\n is_sub_recipe: isSubrecipe.value,\r\n sub_recipe_yield: recipeYield.value,\r\n sub_recipe_yield_uom: recipeYieldUom.value,\r\n };\r\n onSave(params, true, true);\r\n modalProps.toggle();\r\n }\r\n };\r\n\r\n return {\r\n clickSave, recipeName, menuCategory, menuPrice,\r\n isSubrecipe, recipeYield, recipeYieldUom,\r\n description, procedure\r\n }\r\n};\r\n\r\nexport default useRecipeInfoModal;","import React from 'react';\r\nimport useModal from '../../../../../../SharedComponents/Modals/useModal';\r\nimport { Modal, ModalBody, ModalHeader, Col, Input, ModalFooter, Button, CustomInput } from 'reactstrap';\r\nimport Select from 'react-select';\r\nimport ShowIf from '../../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport useRecipeInfoModal from './useRecipeInfoModal';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst RecipeInfoModal = (props) => {\r\n const {\r\n id, menu,\r\n lockMenu, isEdit\r\n } = props;\r\n\r\n const modalProps = useModal(id, menu, true);\r\n const menuList = useSelector(({recipeCosting}) => recipeCosting.menuList);\r\n\r\n const {\r\n recipeName, menuCategory, menuPrice,\r\n isSubrecipe, recipeYield, recipeYieldUom,\r\n description, procedure, clickSave\r\n } = useRecipeInfoModal(props, modalProps);\r\n\r\n return (\r\n \r\n { isEdit ? 'Recipe Description' : 'Create New Recipe'}\r\n \r\n Recipe Name\r\n \r\n \r\n \r\n Menu Category\r\n \r\n \r\n \r\n \r\n \r\n Is this a subrecipe?\r\n \r\n \r\n \r\n \r\n \r\n Recipe Yield\r\n \r\n \r\n \r\n \r\n \r\n Recipe Yield UOM\r\n \r\n \r\n \r\n \r\n \r\n \r\n Description (Optional)\r\n \r\n \r\n \r\n Procedure (Optional)\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 RecipeInfoModal;","import React, { useState } from 'react';\r\nimport { CustomInput, Row, Col } from 'reactstrap';\r\n\r\nconst AddIngredientModalRow = (props) => {\r\n const {\r\n label, description, id,\r\n value, set\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {description}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AddIngredientModalRow;","import React from 'react';\r\nimport useModal from '../../../../../../SharedComponents/Modals/useModal';\r\nimport { Modal, ModalHeader, ModalBody, CustomInput, Row, Col, ModalFooter, Button } from 'reactstrap';\r\nimport { isMobile } from 'react-device-detect';\r\nimport AddIngredientModalRow from './AddIngredientModalRow';\r\nimport useInput from '../../../../../../SharedComponents/SharedEffects/useInput';\r\n\r\nconst AddIngredientModal = (props) => {\r\n const {\r\n id, openFoodbam, openSubrecipe, openInventory\r\n } = props;\r\n\r\n const modalProps = useModal(id, isMobile, true);\r\n const { itemRad, inventoryRad, subrecipeRad } = useInput.useRadioGroup(['itemRad', 'inventoryRad', 'subrecipeRad']);\r\n\r\n const clickAdd = () => {\r\n if (itemRad.value) {\r\n openFoodbam();\r\n } else if (inventoryRad.value) {\r\n openInventory();\r\n } else if (subrecipeRad.value) {\r\n openSubrecipe();\r\n }\r\n modalProps.toggle();\r\n };\r\n\r\n return (\r\n \r\n I want to add...\r\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 AddIngredientModal;","import React from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\n\r\nconst ItemDetailsInfoCol = ({label, value}) => {\r\n return (\r\n \r\n \r\n {label}\r\n \r\n \r\n {value}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ItemDetailsInfoCol;","import React from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\n\r\nconst ItemDetailsImage = (props) => {\r\n const {\r\n image, name\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n item\r\n \r\n \r\n {name}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ItemDetailsImage;","import React, { Fragment } from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\nimport noImage from '../../../../../../../assets/images/no-image.png';\r\nimport numeral from 'numeral';\r\nimport ItemDetailsInfoCol from '../SharedComponents/ItemDetailsInfoCol';\r\nimport ItemDetailsImage from '../SharedComponents/ItemDetailsImage';\r\n\r\nconst ItemDetailsFoodbamInfo = (props) => {\r\n const {\r\n item\r\n } = props;\r\n\r\n const image = item.imageUrl ? item.imageUrl : (item.brandImageUrl ? item.brandImageUrl : noImage);\r\n\r\n return (\r\n \r\n \r\n \r\n Item Details\r\n \r\n \r\n \r\n \r\n \r\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 ItemDetailsFoodbamInfo;","import React from 'react';\r\nimport { Row, Col, Input } from 'reactstrap';\r\nimport ShowIf from '../../../../../../../SharedComponents/ShowIf/ShowIf';\r\n\r\nconst ItemDetailsInputCol = (props) => {\r\n const {\r\n label, type, sideText, set, value, disabled, full\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n {label}\r\n \r\n \r\n \r\n \r\n \r\n {sideText}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ItemDetailsInputCol;","import React from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\nimport { packSizeUomsConversion } from '../../../../../../../config/constants';\r\nimport Select from 'react-select/creatable';\r\n\r\nconst ItemDetailsUnitsCol = (props) => {\r\n const {\r\n label, set, value, disabled\r\n } = props;\r\n\r\n const options = packSizeUomsConversion.map(u => { return { label: u.label, value: u.id} });\r\n\r\n const formatCreateLabel = (input) => {\r\n return `Custom: ${input}`\r\n };\r\n\r\n return (\r\n \r\n \r\n {label}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.uom}\r\n \r\n =\r\n \r\n \r\n \r\n \r\n {recipe.uom}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ItemDetailsUnitConversion;","import React from 'react';\r\nimport { MdDelete } from 'react-icons/md';\r\nimport { Col, ModalFooter, Row, Button } from 'reactstrap';\r\nimport { colors } from '../../../../../../../config/constants';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ShowIf from '../../../../../../../SharedComponents/ShowIf/ShowIf';\r\n\r\nconst ItemDetailsFooter = ({onSave, onDelete, label, disabled, hideDelete}) => {\r\n return (\r\n \r\n \r\n \r\n \r\n { isMobile ? 'Delete' : 'Delete this ingredient'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ItemDetailsFooter;","import { useState, useEffect } from 'react';\r\nimport useInput from '../../../../../../SharedComponents/SharedEffects/useInput';\r\nimport noImage from '../../../../../../assets/images/no-image.png';\r\nimport subImage from '../../../../../../assets/images/subrecipe-image.png';\r\nimport { useDispatch } from 'react-redux';\r\nimport { showModal } from '../../../../../../reducers/modals/modalsActions';\r\nimport AddFoodbamItemModal from '../../../../../../SharedComponents/Modals/AddFoodbamItemModal/AddFoodbamItemModal';\r\nimport QuestionModal from '../../../../../../SharedComponents/Modals/QuestionModal/QuestionModal';\r\nimport recipeApi from '../../../../../../api/recipeApi';\r\nimport useConvert from '../../../../../../SharedComponents/Conversion/useConversion';\r\nimport comparisonViewsApi from '../../../../../../api/comparisonViewsApi';\r\n\r\nconst useInventory = (init, data, getRecipeData) => {\r\n const dispatch = useDispatch();\r\n const recipeAmount = useInput.useText(init.recipeAmount, {validate: {fraction:{strict:false}}});\r\n const [ uom, setUom ] = useState({label: init.recipeUom, value: 0});\r\n const linkedItemsInitial = init.linkedItems.map(i => {\r\n const isCustomPackSize = i.customPackSize ? !(i.customPackSize === i.packSize) : false\r\n return {\r\n recipeId: init.recipeId,\r\n ingredientItemId: init.ingredientItemId,\r\n name: i.name || i.description,\r\n distributor: i.distributor,\r\n brand: i.brand,\r\n id: i.id,\r\n genericItemId: i.genericItemId,\r\n itemDistributorId: i.itemDistributorId,\r\n subRecipeId: i.subRecipeId,\r\n genericCustomItemId: i.genericCustomItemId,\r\n packSize: isCustomPackSize ? i.customPackSize : i.packSize,\r\n packSizeUom: i.packSizeUom,\r\n price: i.price,\r\n isLink: true,\r\n image: i.isSubRecipe ? subImage : (i.imageUrl ? i.imageUrl : (i.brandImageUrl ? i.brandImageUrl : noImage)),\r\n waste: '',\r\n isCustomPackSize: isCustomPackSize,\r\n isCustomItem: i.isCustomItem,\r\n isSubRecipe: i.isSubRecipe,\r\n isPunchedOut: i.isPunchedOut,\r\n conversion: {\r\n item: {\r\n packSize: '',\r\n },\r\n recipe: {\r\n packSize: '',\r\n }\r\n }\r\n }\r\n });\r\n\r\n const [ linkedItems, setLinkedItems ] = useState(linkedItemsInitial);\r\n\r\n const openLinkItem = () => {\r\n const modalProps = {\r\n idLabel: 'itemDistributorId',\r\n title: 'Link Item',\r\n isLink: true,\r\n initItems: linkedItems,\r\n includeSubrecipe: true,\r\n initSearch: init.name,\r\n onAdd: (allItems, newItems) => {\r\n const newData = [...linkedItems.map(l => {\r\n let isThere = false;\r\n // Removing Items\r\n allItems.map(i => {\r\n if (i.itemDistributorId === l.itemDistributorId) {\r\n isThere = true;\r\n }\r\n });\r\n return {\r\n ...l,\r\n isLink: isThere\r\n };\r\n }), ...newItems.map(i => {\r\n const isCustomPackSize = i.customPackSize ? !(i.customPackSize === i.packSize) : false\r\n return {\r\n recipeId: init.recipeId,\r\n ingredientItemId: init.ingredientItemId,\r\n name: i.name || i.description,\r\n distributor: i.distributor,\r\n brand: i.brand,\r\n id: i.isCustomItem ? i.genericCustomItemId : ( i.isSubRecipe ? i.subRecipeId : i.itemDistributorId),\r\n itemDistributorId: i.itemDistributorId,\r\n subRecipeId: i.subRecipeId,\r\n genericCustomItemId: i.genericCustomItemId,\r\n packSize: isCustomPackSize ? i.customPackSize : i.packSize,\r\n packSizeUom: i.packSizeUom,\r\n price: i.price,\r\n isLink: true,\r\n image: i.isSubRecipe ? subImage : (i.imageUrl ? i.imageUrl : (i.brandImageUrl ? i.brandImageUrl : noImage)),\r\n waste: '',\r\n isCustomPackSize: isCustomPackSize,\r\n isCustomItem: i.isCustomItem,\r\n isSubRecipe: i.isSubRecipe,\r\n isPunchedOut: i.isPunchedOut,\r\n conversion: {\r\n item: {\r\n packSize: '',\r\n },\r\n recipe: {\r\n packSize: '',\r\n }\r\n }\r\n }\r\n })];\r\n setLinkedItems(newData);\r\n },\r\n onAddCustom: (customItem) => {\r\n const { packSize, unitMeasure, ...values } = customItem;\r\n const params = {\r\n ...values,\r\n unitMeasure: unitMeasure.name,\r\n packSizeVal: `${packSize.outerPack}/${packSize.innerPack} ${packSize.uom.shorthand}`\r\n };\r\n comparisonViewsApi.postGroupCustomItem(data.comparisonViewId, data.id, params).then(({ data }) => {\r\n getRecipeData();\r\n setLinkedItems([\r\n ...linkedItems,\r\n {\r\n recipeId: init.recipeId,\r\n ingredientItemId: init.ingredientItemId,\r\n name: data.description,\r\n distributor: data.distributor,\r\n brand: data.brand,\r\n id: data.id,\r\n genericItemId: data.genericCustomItemId,\r\n itemDistributorId: null,\r\n subRecipeId: null,\r\n genericCustomItemId: data.genericCustomItemId,\r\n packSize: data.packSize,\r\n packSizeUom: data.packSizeUom,\r\n price: data.price,\r\n isLink: true,\r\n image: noImage,\r\n waste: '',\r\n isCustomPackSize: false,\r\n isCustomItem: true,\r\n isSubRecipe: false,\r\n isPunchedOut: data.isPunchedOut,\r\n conversion: {\r\n item: {\r\n packSize: '',\r\n },\r\n recipe: {\r\n packSize: '',\r\n }\r\n }\r\n }\r\n ]);\r\n }).catch(err => console.error(err));\r\n }\r\n };\r\n dispatch(showModal(AddFoodbamItemModal, modalProps));\r\n };\r\n\r\n const setLinkItem = (index, field, value) => {\r\n const itemUom = linkedItems[index].packSizeUom;\r\n setLinkedItems(linkedItems.map((l, i) => {\r\n if (field === 'conversion') {\r\n if (itemUom && l.packSizeUom === itemUom) {\r\n return {\r\n ...l,\r\n [field]: value\r\n };\r\n }\r\n }\r\n if (i !== index) return l;\r\n return {\r\n ...l,\r\n [field]: value\r\n };\r\n }));\r\n };\r\n\r\n useEffect(() => {\r\n setLinkedItems(linkedItems.map(l => {\r\n const canConvert = useConvert.useCanConvert(uom.label, l.packSizeUom);\r\n let itemVal = 1;\r\n let nVal = useConvert.useConvert(1, uom.label, l.packSizeUom);\r\n if (nVal < 1) {\r\n itemVal = useConvert.useConvert(1, l.packSizeUom, uom.label);\r\n nVal = 1;\r\n }\r\n return {\r\n ...l,\r\n conversion: {\r\n item: {\r\n packSize: canConvert ? nVal : l.conversion.item.packSize,\r\n },\r\n recipe: {\r\n packSize: canConvert ? itemVal : l.conversion.recipe.packSize,\r\n }\r\n }\r\n }\r\n }));\r\n }, [uom, linkedItems.length]);\r\n\r\n return {\r\n recipeAmount, linkedItems, openLinkItem, setLinkItem,\r\n uom: { set: setUom, value: uom }, setLinkedItems,\r\n }\r\n};\r\n\r\nconst useConversion = (init) => {\r\n const recipeAmount = useInput.useText(init.recipeAmount, {validate: {fraction: {strict: false}}});\r\n const [ uom, setUom ] = useState({label: init.uom, value: 0});\r\n const waste = useInput.useText(init.waste, {isNumber: true});\r\n\r\n const conversion = {\r\n item: {\r\n packSize: useInput.useText(init.conversion.packSize, {validate: {fraction: {strict: false}}}),\r\n uom: init.conversion.uom\r\n },\r\n recipe: {\r\n packSize: useInput.useText(init.recipe.packSize, {validate: {fraction: {strict: false}}}),\r\n uom: uom.label\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const canConvert = useConvert.useCanConvert(uom.label, conversion.item.uom);\r\n if (canConvert) {\r\n let itemVal = 1;\r\n let nVal = useConvert.useConvert(1, uom.label, conversion.item.uom);\r\n if (nVal < 1) {\r\n itemVal = useConvert.useConvert(1, conversion.item.uom, uom.label);\r\n nVal = 1;\r\n }\r\n conversion.item.packSize.setValue(nVal);\r\n conversion.recipe.packSize.setValue(itemVal);\r\n }\r\n }, [uom]);\r\n\r\n return {\r\n recipeAmount, conversion, waste,\r\n uom: { value: uom, set: setUom },\r\n canConvert: useConvert.useCanConvert(uom.label, conversion.item.uom)\r\n }\r\n};\r\n\r\nconst useDeleteIngredient = (recipeId, ingredientId, toggle, getRecipeData) => {\r\n const dispatch = useDispatch();\r\n\r\n const deleteIngredient = () => {\r\n recipeApi.deleteIngredient(recipeId, ingredientId).then(res => {\r\n getRecipeData();\r\n toggle();\r\n }).catch(err => console.error(err));\r\n };\r\n\r\n const onDelete = () => {\r\n const mp = {\r\n message: 'Delete Ingredient?',\r\n leftButton: {\r\n title: 'Delete',\r\n color: 'orange',\r\n onClick: () => deleteIngredient()\r\n },\r\n rightButton: {\r\n title: 'Cancel',\r\n color: 'green'\r\n }\r\n }\r\n dispatch(showModal(QuestionModal, mp));\r\n };\r\n\r\n return {\r\n onDelete\r\n }\r\n};\r\n\r\nexport default {\r\n useConversion, useInventory, useDeleteIngredient\r\n};","import React from 'react';\r\nimport { Modal, ModalHeader, ModalBody } from 'reactstrap';\r\nimport useModal from '../../../../../../../SharedComponents/Modals/useModal';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ItemDetailsFoodbamInfo from './ItemDetailsFoodbamInfo';\r\nimport ItemDetailsHowMuch from '../SharedComponents/ItemDetailsHowMuch';\r\nimport ItemDetailsUnitConversion from '../SharedComponents/ItemDetailsUnitConversion';\r\nimport ItemDetailsFooter from '../SharedComponents/ItemDetailsFooter';\r\nimport { fraction, number } from 'mathjs';\r\nimport recipeApi from '../../../../../../../api/recipeApi';\r\nimport useItemDetails from '../useItemDetails';\r\nimport validate from 'validate.js';\r\n\r\nconst ItemDetailsFoodbam = (props) => {\r\n const {\r\n id, ingredient, getRecipeData, isAdd\r\n } = props;\r\n const { item } = ingredient;\r\n const modalProps = useModal(id, isMobile, true);\r\n\r\n const init = {\r\n recipeAmount: ingredient.recipe_amount_fraction ? ingredient.recipe_amount_fraction : ingredient.recipe_amount,\r\n uom: ingredient.recipe_pack_size_uom,\r\n waste: ingredient.waste_percentage,\r\n conversion: {\r\n packSize: ingredient.conversion_pack_size_fraction ? ingredient.conversion_pack_size_fraction : ingredient.conversion_pack_size_value,\r\n uom: ingredient.conversion_pack_size_uom\r\n },\r\n recipe: {\r\n packSize: ingredient.recipe_pack_size_fraction ? ingredient.recipe_pack_size_fraction : ingredient.recipe_pack_size_value,\r\n }\r\n };\r\n\r\n const { recipeAmount, uom, waste, conversion, canConvert } = useItemDetails.useConversion(init);\r\n const { onDelete } = useItemDetails.useDeleteIngredient(ingredient.recipe_id, ingredient.id, modalProps.toggle, getRecipeData);\r\n\r\n const cantSave = () => {\r\n const form = {\r\n recipeAmount: recipeAmount.value,\r\n waste: waste.value,\r\n itemPackSize: conversion.item.packSize.value,\r\n recipePackSize: conversion.recipe.packSize.value\r\n };\r\n const constrains = {\r\n recipeAmount: {fraction:{strict:true}},\r\n waste: {numericality: waste.value ? true : false},\r\n itemPackSize: {fraction:{strict:true}},\r\n recipePackSize: {fraction:{strict:true}},\r\n };\r\n const result = validate(form, constrains);\r\n return result ? true : false;\r\n };\r\n\r\n const onSave = () => {\r\n const params = {\r\n ingredient_type: \"foodbam\",\r\n ingredient_id: ingredient.ingredientId,\r\n recipe_amount: number(fraction(recipeAmount.value)),\r\n recipe_amount_fraction: fraction(recipeAmount.value).toFraction(),\r\n conversion_pack_size_value: number(fraction(conversion.item.packSize.value)),\r\n conversion_pack_size_fraction: fraction(conversion.item.packSize.value).toFraction(),\r\n conversion_pack_size_uom: conversion.item.uom,\r\n recipe_pack_size_value: number(fraction(conversion.recipe.packSize.value)),\r\n recipe_pack_size_fraction: fraction(conversion.recipe.packSize.value).toFraction(),\r\n recipe_pack_size_uom: conversion.recipe.uom,\r\n waste_percentage: waste.value\r\n };\r\n if (isAdd) {\r\n isAddSave(params);\r\n } else {\r\n isEditSave(params);\r\n }\r\n };\r\n\r\n const isAddSave = (params) => {\r\n recipeApi.postIngredient(ingredient.recipe_id, params).then(({data}) => {\r\n getRecipeData();\r\n modalProps.toggle();\r\n }).catch(err => {\r\n console.error(err);\r\n });\r\n };\r\n\r\n const isEditSave = (params) => {\r\n recipeApi.patchIngredient(ingredient.recipe_id, ingredient.id, params).then(({data}) => {\r\n getRecipeData();\r\n modalProps.toggle();\r\n }).catch(err => {\r\n console.error('PatchIngredientApi error:', err);\r\n });\r\n };\r\n\r\n return (\r\n \r\n {isAdd ? 'Add FoodBAM Item' : 'FoodBAM Item Details'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ItemDetailsFoodbam;","import React from 'react';\r\nimport { Modal, ModalHeader, ModalBody } from 'reactstrap';\r\nimport useModal from '../../../../../../../SharedComponents/Modals/useModal';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ItemDetailsImage from '../SharedComponents/ItemDetailsImage';\r\nimport ItemDetailsHowMuch from '../SharedComponents/ItemDetailsHowMuch';\r\nimport ItemDetailsUnitConversion from '../SharedComponents/ItemDetailsUnitConversion';\r\nimport ItemDetailsFooter from '../SharedComponents/ItemDetailsFooter';\r\nimport { fraction, number } from 'mathjs';\r\nimport recipeApi from '../../../../../../../api/recipeApi';\r\nimport useItemDetails from '../useItemDetails';\r\nimport validate from 'validate.js';\r\nimport subrecipeImage from '../../../../../../../assets/images/subrecipe-image.png';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nconst ItemDetailsSubrecipe = (props) => {\r\n const history = useHistory();\r\n const {\r\n id, ingredient, getRecipeData\r\n } = props;\r\n const { item } = ingredient;\r\n const modalProps = useModal(id, isMobile, true); \r\n\r\n const init = {\r\n recipeAmount: ingredient.recipe_amount_fraction ? ingredient.recipe_amount_fraction : ingredient.recipe_amount,\r\n uom: ingredient.recipe_pack_size_uom,\r\n waste: ingredient.waste_percentage,\r\n conversion: {\r\n packSize: ingredient.conversion_pack_size_fraction ? ingredient.conversion_pack_size_fraction : ingredient.conversion_pack_size_value,\r\n uom: ingredient.conversion_pack_size_uom\r\n },\r\n recipe: {\r\n packSize: ingredient.recipe_pack_size_fraction ? ingredient.recipe_pack_size_fraction : ingredient.recipe_pack_size_value,\r\n }\r\n };\r\n\r\n const { recipeAmount, uom, waste, conversion, canConvert } = useItemDetails.useConversion(init);\r\n const { onDelete } = useItemDetails.useDeleteIngredient(ingredient.recipe_id, ingredient.id, modalProps.toggle, getRecipeData);\r\n\r\n const cantSave = () => {\r\n const form = {\r\n recipeAmount: recipeAmount.value,\r\n waste: waste.value,\r\n itemPackSize: conversion.item.packSize.value,\r\n recipePackSize: conversion.recipe.packSize.value\r\n };\r\n const constrains = {\r\n recipeAmount: {fraction:{strict:true}},\r\n waste: {numericality: waste.value ? true : false},\r\n itemPackSize: {fraction:{strict:true}},\r\n recipePackSize: {fraction:{strict:true}},\r\n };\r\n const result = validate(form, constrains);\r\n return result ? true : false;\r\n };\r\n\r\n const onSave = () => {\r\n const params = {\r\n ingredient_type: \"subrecipe\",\r\n ingredient_id: ingredient.ingredientId,\r\n recipe_amount: number(fraction(recipeAmount.value)),\r\n recipe_amount_fraction: fraction(recipeAmount.value).toFraction(),\r\n conversion_pack_size_value: number(fraction(conversion.item.packSize.value)),\r\n conversion_pack_size_fraction: fraction(conversion.item.packSize.value).toFraction(),\r\n conversion_pack_size_uom: conversion.item.uom,\r\n recipe_pack_size_value: number(fraction(conversion.recipe.packSize.value)),\r\n recipe_pack_size_fraction: fraction(conversion.recipe.packSize.value).toFraction(),\r\n recipe_pack_size_uom: conversion.recipe.uom,\r\n waste_percentage: waste.value\r\n };\r\n isEditSave(params);\r\n modalProps.toggle();\r\n };\r\n\r\n const isEditSave = (params) => {\r\n recipeApi.patchIngredient(ingredient.recipe_id, ingredient.id, params).then(({data}) => {\r\n getRecipeData();\r\n modalProps.toggle();\r\n }).catch(err => {\r\n console.error('PatchIngredientApi error:', err);\r\n });\r\n };\r\n\r\n return (\r\n \r\n Subrecipe Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ItemDetailsSubrecipe;","import React, { Fragment } from 'react';\r\nimport { Row } from 'reactstrap';\r\nimport ItemDetailsInputCol from '../SharedComponents/ItemDetailsInputCol';\r\n\r\nconst ItemDetailsInventoryInfo = ({description, comparisonViewName}) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ItemDetailsInventoryInfo;","import React from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\nimport numeral from 'numeral';\r\nimport ShowIf from '../../../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { isMobile } from 'react-device-detect';\r\n\r\nconst ItemDetailsInventoryLinkItemInfo = (props) => {\r\n const {\r\n name, brand, distributor, price, packSize, isCustomPackSize\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n {name}\r\n \r\n \r\n \r\n \r\n \r\n {brand}\r\n \r\n \r\n {numeral(price).format('$0,0.00')}\r\n \r\n \r\n \r\n \r\n {distributor}\r\n \r\n \r\n {packSize}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ItemDetailsInventoryLinkItemInfo;","import React from 'react';\r\nimport { Col } from 'reactstrap';\r\n\r\nconst ItemDetailsInventoryLinkItemImage = ({image}) => {\r\n return (\r\n \r\n item\r\n \r\n );\r\n};\r\n\r\nexport default ItemDetailsInventoryLinkItemImage;","import React from 'react';\r\nimport { Col } from 'reactstrap';\r\nimport { isMobile } from 'react-device-detect';\r\nimport LinkButton from '../../../../../../../SharedComponents/LinkButton/LinkButton';\r\n\r\nconst ItemDetailsInventoryLinkItemButton = ({isLink, onClick}) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ItemDetailsInventoryLinkItemButton;","import React, { useState } from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\nimport ItemDetailsInventoryLinkItemInfo from './ItemDetailsInventoryLinkItemInfo';\r\nimport ItemDetailsInventoryLinkItemImage from './ItemDetailsInventoryLinkItemImage';\r\nimport ItemDetailsInventoryLinkItemButton from './ItemDetailsInventoryLinkItemButton';\r\nimport ItemDetailsUnitConversion from '../SharedComponents/ItemDetailsUnitConversion';\r\nimport { FaCaretDown, FaCaretUp } from 'react-icons/fa';\r\nimport { colors } from '../../../../../../../config/constants';\r\nimport ShowIf from '../../../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport ItemDetailsInputCol from '../SharedComponents/ItemDetailsInputCol';\r\nimport useInput from '../../../../../../../SharedComponents/SharedEffects/useInput';\r\nimport useConversion from '../../../../../../../SharedComponents/Conversion/useConversion';\r\n\r\nconst ItemDetailsInventoryLinkItem = (props) => {\r\n const {\r\n image, isLink, packSizeUom, isCustomItem,\r\n recipeUom, setLinkItem, index, isPunchedOut, isSubRecipe\r\n } = props;\r\n const waste = useInput.useText('', {isNumber: true, set: (v) => setLinkItem(index, 'waste', v), value: props.waste});\r\n const conversion = {\r\n item: {\r\n packSize: useInput.useText('', {\r\n validate: {fraction: {strict:false}},\r\n set: (v) => {\r\n setLinkItem(index, 'conversion', {...props.conversion, item: {packSize: v}})\r\n },\r\n value: props.conversion.item.packSize \r\n }),\r\n uom: packSizeUom\r\n },\r\n recipe: {\r\n packSize: useInput.useText('', {\r\n validate: {fraction: {strict:false}},\r\n set: (v) => {\r\n setLinkItem(index, 'conversion', {...props.conversion, recipe: { packSize: v}})\r\n },\r\n value: props.conversion.recipe.packSize\r\n }),\r\n uom: recipeUom\r\n }\r\n };\r\n\r\n const [ showMore , setShowMore ] = useState(false);\r\n const toggleShowMore = () => {\r\n setShowMore(!showMore);\r\n };\r\n\r\n const toggleIsLink = () => {\r\n setLinkItem(index, 'isLink', !isLink);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Custom 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 \r\n \r\n \r\n \r\n {showMore ? 'Show Less' : 'Show More'} {showMore ? : }\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ItemDetailsInventoryLinkItem;","import React, { useEffect } from 'react';\r\nimport { Modal, ModalHeader, ModalBody, Row, Col } from 'reactstrap';\r\nimport useModal from '../../../../../../../SharedComponents/Modals/useModal';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ItemDetailsHowMuch from '../SharedComponents/ItemDetailsHowMuch';\r\nimport ItemDetailsFooter from '../SharedComponents/ItemDetailsFooter';\r\nimport useItemDetails from '../useItemDetails';\r\nimport ItemDetailsInventoryInfo from './ItemDetailsInventoryInfo';\r\nimport ItemDetailsInventoryLinkItem from './ItemDetailsInventoryLinkItem';\r\nimport { fraction, number } from 'mathjs';\r\nimport recipeApi from '../../../../../../../api/recipeApi';\r\nimport comparisonViewsApi from '../../../../../../../api/comparisonViewsApi';\r\nimport validate from 'validate.js';\r\nimport LinkButton from '../../../../../../../SharedComponents/LinkButton/LinkButton';\r\n\r\nconst ItemDetailsInventory = (props) => {\r\n const {\r\n id, ingredient, isAdd, getRecipeData\r\n } = props;\r\n const modalProps = useModal(id, isMobile, true);\r\n\r\n const comparisonViewName = ingredient.item.comparisonView.name;\r\n const description = ingredient.item.name;\r\n const init = {\r\n name: ingredient.item.name,\r\n recipeId: ingredient.recipe_id,\r\n ingredientItemId: ingredient.id,\r\n recipeAmount: ingredient.recipe_amount_fraction ? ingredient.recipe_amount_fraction : ingredient.recipe_amount,\r\n recipeUom: ingredient.recipe_pack_size_uom,\r\n linkedItems: ingredient.item.items\r\n };\r\n\r\n const { recipeAmount, uom, linkedItems, openLinkItem, setLinkItem, setLinkedItems } = useItemDetails.useInventory(init, props.ingredient.item, getRecipeData);\r\n const { onDelete } = useItemDetails.useDeleteIngredient(ingredient.recipe_id, ingredient.id, modalProps.toggle, getRecipeData);\r\n\r\n useEffect(() => {\r\n if (!isAdd) {\r\n let newItems = [...linkedItems];\r\n const apiCall = () => {\r\n if (i < linkedItems.length) {\r\n const id = linkedItems[i].genericCustomItemId || linkedItems[i].genericItemId;\r\n const api = linkedItems[i].isCustomItem ? recipeApi.getGenericCustomItem : recipeApi.getGenericItem;\r\n api(ingredient.id, id).then(({ data }) => {\r\n newItems[i] = {\r\n ...newItems[i],\r\n waste: data.wastePercentage || '',\r\n conversion: {\r\n item: {\r\n packSize: data.conversionPackSizeFraction || data.conversionPackSizeValue || ''\r\n },\r\n recipe: {\r\n packSize: data.recipePackSizeFraction || data.conversionPackSizeValue || ''\r\n }\r\n }\r\n }\r\n i = i + 1;\r\n apiCall();\r\n });\r\n } else {\r\n setLinkedItems(newItems);\r\n }\r\n };\r\n let i = 0;\r\n apiCall();\r\n }\r\n }, []);\r\n\r\n const cantSave = () => {\r\n const form = {\r\n recipeAmount: recipeAmount.value,\r\n linkedItems: linkedItems.filter(i => i.isLink).map(i => {\r\n return {\r\n itemPackSize: i.conversion.item.packSize,\r\n recipePackSize: i.conversion.recipe.packSize\r\n }\r\n })\r\n };\r\n const constrains = {\r\n recipeAmount: {\r\n fraction: { strict: true }\r\n },\r\n linkedItems: {\r\n array: {\r\n itemPackSize: { fraction: { strict: true } },\r\n recipePackSize: { fraction: { strict: true } }\r\n }\r\n }\r\n };\r\n const result = validate(form, constrains);\r\n return result ? true : false;\r\n };\r\n\r\n const onClickSave = () => {\r\n const addItems = linkedItems.filter(i => i.isLink && !i.isCustomItem && !i.isSubRecipe).map(i => {\r\n return i.itemDistributorId;\r\n });\r\n const addSubrecipeItems = linkedItems.filter(i => i.isSubRecipe).map(i => {\r\n return i.subRecipeId;\r\n });\r\n const deleteItems = linkedItems.filter(i => !i.isLink);\r\n const cparams = {\r\n items: JSON.stringify(addItems),\r\n subrecipes: JSON.stringify(addSubrecipeItems)\r\n };\r\n deleteGroupItems(deleteItems, () => {\r\n patchGroup(cparams, (params) => {\r\n if (isAdd) {\r\n onAdd(params)\r\n } else {\r\n onEdit(params);\r\n }\r\n })\r\n });\r\n };\r\n\r\n const deleteGroupItems = (deleteItems, finish) => {\r\n const apiCall = () => {\r\n if (i < deleteItems.length) {\r\n const item = deleteItems[i]\r\n const id = item.isCustomItem ? item.genericCustomItemId : (item.isSubRecipe ? item.subRecipeId : item.itemDistributorId);\r\n const comparisonViewId = ingredient.item.comparisonView.id;\r\n const groupId = ingredient.item.id;\r\n i = i + 1;\r\n if (item.isCustomItem) {\r\n comparisonViewsApi.deleteGroupCustomItem(comparisonViewId, groupId, id).then((res) => apiCall());\r\n } else if (item.isSubRecipe) {\r\n comparisonViewsApi.deleteGroupSubRecipeItem(comparisonViewId, groupId, id).then((res) => apiCall());\r\n } else {\r\n comparisonViewsApi.deleteGroupItem(comparisonViewId, groupId, id).then((res) => apiCall());\r\n }\r\n } else {\r\n finish();\r\n }\r\n };\r\n let i = 0;\r\n if (deleteItems.length) {\r\n apiCall();\r\n } else {\r\n finish();\r\n }\r\n };\r\n\r\n const patchGroup = (cparams, finish) => {\r\n comparisonViewsApi.patchGroup(ingredient.item.comparisonView.id, ingredient.item.id, cparams).then(({ data }) => {\r\n comparisonViewsApi.getGroup(ingredient.item.comparisonView.id, ingredient.item.id).then(({ data }) => {\r\n const params = {\r\n ingredient_type: \"generic\",\r\n ingredient_id: ingredient.item.id,\r\n recipe_pack_size_uom: uom.value.label,\r\n recipe_amount: number(fraction(recipeAmount.value)),\r\n recipe_amount_fraction: fraction(recipeAmount.value).toFraction(),\r\n link_items: linkedItems.filter(l => l.isLink).map(i => {\r\n const itemData = data.items.find(itemD => itemD.itemDistributorId === i.itemDistributorId);\r\n return {\r\n [itemData.isCustomItem ? 'generic_custom_item_id' : 'generic_item_id']: itemData.isCustomItem ? itemData.genericCustomItemId : itemData.genericItemId,\r\n conversion_pack_size_value: number(fraction(i.conversion.item.packSize)),\r\n conversion_pack_size_fraction: fraction(i.conversion.item.packSize).toFraction(),\r\n conversion_pack_size_uom: i.packSizeUom,\r\n recipe_pack_size_value: number(fraction(i.conversion.recipe.packSize)),\r\n recipe_pack_size_fraction: fraction(i.conversion.recipe.packSize).toFraction(),\r\n recipe_pack_size_uom: uom.value.label,\r\n waste_percentage: i.waste\r\n }\r\n })\r\n };\r\n finish(params);\r\n });\r\n }).catch(err => {\r\n console.error(err);\r\n });\r\n };\r\n\r\n const onAdd = (params) => {\r\n recipeApi.postIngredient(ingredient.recipe_id, params).then(({ data }) => {\r\n modalProps.toggle();\r\n getRecipeData();\r\n }).catch(err => {\r\n console.error(err);\r\n });\r\n };\r\n\r\n const onEdit = (params) => {\r\n recipeApi.patchIngredient(ingredient.recipe_id, ingredient.id, params).then(({ data }) => {\r\n modalProps.toggle();\r\n getRecipeData();\r\n }).catch(err => {\r\n console.error(err);\r\n });\r\n };\r\n\r\n const linkedItemsMap = linkedItems.map((l, i) => {\r\n return (\r\n \r\n );\r\n });\r\n\r\n return (\r\n \r\n Inventory Item Details\r\n \r\n \r\n \r\n \r\n Linked Items\r\n \r\n {linkedItemsMap}\r\n \r\n \r\n Link Items\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ItemDetailsInventory;","import useInput from \"../../SharedEffects/useInput\";\r\nimport { useState, useEffect } from \"react\";\r\nimport recipeApi from \"../../../api/recipeApi\";\r\nimport useConvert from \"../../Conversion/useConversion\";\r\n\r\nconst useApi = (recipeId) => {\r\n const search = useInput.useText('');\r\n const [page, setPage] = useState(1);\r\n const [loadMore, setLoadMore] = useState(true);\r\n const [items, setItems] = useState([]);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [adding, setAdding] = useState(false);\r\n const [addingItem, setAddingItem] = useState({ name: '', menu: { name: '' }, subRecipeYieldUom: '' });\r\n const [uom, setUom] = useState({ label: 'lb', value: 0 });\r\n const addItemForm = {\r\n recipeAmount: useInput.useText('', { validate: { fraction: { strict: false } } }),\r\n waste: useInput.useText('', { isNumber: true }),\r\n conversion: {\r\n item: {\r\n packSize: useInput.useText('', { validate: { fraction: { strict: false } } }),\r\n uom: addingItem.subRecipeYieldUom\r\n },\r\n recipe: {\r\n packSize: useInput.useText('', { validate: { fraction: { strict: false } } }),\r\n uom: uom.label\r\n }\r\n }\r\n };\r\n\r\n const toggleAdding = (i) => {\r\n if (!adding) {\r\n setAddingItem(i);\r\n }\r\n addItemForm.recipeAmount.setValue('');\r\n addItemForm.waste.setValue('');\r\n addItemForm.conversion.item.packSize.setValue('');\r\n addItemForm.conversion.recipe.packSize.setValue('');\r\n setUom({ label: 'lb', value: 0 });\r\n setAdding(!adding);\r\n };\r\n\r\n useEffect(() => {\r\n const canConvert = useConvert.useCanConvert(uom.label, addItemForm.conversion.item.uom);\r\n if (canConvert) {\r\n let itemVal = 1;\r\n let nVal = useConvert.useConvert(1, uom.label, addItemForm.conversion.item.uom);\r\n if (nVal < 1) {\r\n itemVal = useConvert.useConvert(1, addItemForm.conversion.item.uom, uom.label);\r\n nVal = 1;\r\n }\r\n addItemForm.conversion.item.packSize.setValue(nVal);\r\n addItemForm.conversion.recipe.packSize.setValue(itemVal);\r\n }\r\n }, [uom]);\r\n\r\n const getSubrecipes = (page, loadMoreForce, s) => {\r\n if (loadMore || loadMoreForce) {\r\n setIsLoading(true);\r\n recipeApi.getSubrecipes(recipeId, page, s).then(res => {\r\n setIsLoading(false);\r\n const loadMoreNew = res._meta.pageCount > res._meta.currentPage;\r\n const pageNew = loadMoreNew ? page + 1 : 1;\r\n setLoadMore(loadMoreNew);\r\n if (page === 1) {\r\n setItems(res.data);\r\n } else {\r\n setItems(items.concat(res.data));\r\n }\r\n setPage(pageNew);\r\n });\r\n }\r\n };\r\n\r\n const onClear = () => {\r\n search.clearValue();\r\n getSubrecipes(1, true);\r\n // setLoadMore(!loadMore);\r\n // setPage(1);\r\n // setIsLoading(false);\r\n // setItems([]);\r\n // // Set reset values, values get update in the next render\r\n // getSubrecipes(1, '', true);\r\n };\r\n\r\n const onSearch = (s) => {\r\n getSubrecipes(1, true, s);\r\n // setPage(1);\r\n // setLoadMore(!loadMore);\r\n // setLoadMore(true);\r\n // setIsLoading(false);\r\n // setItems([]);\r\n // // Set reset values, values get update in the next render\r\n // getSubrecipes(1, s, true);\r\n };\r\n\r\n useEffect(() => {\r\n getSubrecipes(1, '');\r\n }, []);\r\n\r\n return {\r\n page, items, getSubrecipes, loadMore,\r\n isLoading, onClear, onSearch, search, toggleAdding,\r\n adding, addingItem, addItemForm,\r\n uom: { set: setUom, value: uom },\r\n canConvert: useConvert.useCanConvert(uom.label, addItemForm.conversion.item.uom)\r\n };\r\n};\r\n\r\nexport default {\r\n useApi\r\n}\r\n","import React, { useMemo } from 'react';\r\nimport useModal from '../useModal';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { Modal, ModalHeader, Row, Col, ModalBody, ModalFooter, Button } from 'reactstrap';\r\nimport InputSearch from '../../InputSearch/InputSearch';\r\nimport useAddSubrecipe from './useAddSubrecipe';\r\nimport InfiniteScroll from 'react-infinite-scroller';\r\nimport PlusButton from '../../PlusButton/PlusButton';\r\nimport subImage from '../../../assets/images/subrecipe-image.png'\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\nimport ItemDetailsHowMuch from '../../../Views/MainApp/Views/RecipeCosting/Modals/ItemDetails/SharedComponents/ItemDetailsHowMuch';\r\nimport ItemDetailsUnitConversion from '../../../Views/MainApp/Views/RecipeCosting/Modals/ItemDetails/SharedComponents/ItemDetailsUnitConversion';\r\nimport validate from 'validate.js';\r\nimport { fraction, number } from 'mathjs';\r\n\r\nconst AddSubrecipe = (props) => {\r\n const {\r\n id, recipeId, onAdd, initItems\r\n } = props;\r\n\r\n const modalProps = useModal(id, isMobile, true);\r\n const {\r\n onClear, onSearch, search, items,\r\n page, loadMore, isLoading, getSubrecipes,\r\n toggleAdding, adding, addingItem, addItemForm, uom, canConvert\r\n } = useAddSubrecipe.useApi(recipeId);\r\n\r\n const initItemsIds = initItems.map(i => i.id);\r\n\r\n const itemsMap = useMemo(() => items\r\n .filter(i => !initItemsIds.includes(i.id))\r\n //.filter(f => new RegExp(search.value).test((f.name).toLowerCase()))\r\n .map(i =>\r\n \r\n \r\n subrecipe\r\n \r\n \r\n {i.name}\r\n {i.menu.name}\r\n \r\n \r\n toggleAdding(i)} />\r\n \r\n \r\n ), [items, loadMore]);\r\n\r\n const noItems = items.length === 0 && !isLoading;\r\n\r\n const cantAdd = () => {\r\n const form = {\r\n recipeAmount: addItemForm.recipeAmount.value,\r\n waste: addItemForm.waste.value,\r\n itemPackSize: addItemForm.conversion.item.packSize.value,\r\n recipePackSize: addItemForm.conversion.recipe.packSize.value\r\n };\r\n const constrains = {\r\n recipeAmount: { fraction: { strict: true } },\r\n waste: { numericality: addItemForm.waste.value ? true : false },\r\n itemPackSize: { fraction: { strict: true } },\r\n recipePackSize: { fraction: { strict: true } },\r\n };\r\n const result = validate(form, constrains);\r\n return result ? true : false;\r\n };\r\n\r\n const clickAdd = () => {\r\n const params = {\r\n ingredient_type: \"subrecipe\",\r\n ingredient_id: addingItem.id,\r\n waste_percentage: addItemForm.waste.value,\r\n recipe_amount: number(fraction(addItemForm.recipeAmount.value)),\r\n recipe_amount_fraction: fraction(addItemForm.recipeAmount.value).toFraction(),\r\n conversion_pack_size_value: number(fraction(addItemForm.conversion.item.packSize.value)),\r\n conversion_pack_size_fraction: fraction(addItemForm.conversion.item.packSize.value).toFraction(),\r\n conversion_pack_size_uom: addItemForm.conversion.item.uom,\r\n recipe_pack_size_value: number(fraction(addItemForm.conversion.recipe.packSize.value)),\r\n recipe_pack_size_fraction: fraction(addItemForm.conversion.recipe.packSize.value).toFraction(),\r\n recipe_pack_size_uom: addItemForm.conversion.recipe.uom\r\n }\r\n onAdd(params);\r\n modalProps.toggle();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n Add Subrecipe\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n subrecipe\r\n \r\n \r\n {addingItem.name}\r\n {addingItem.menu.name}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n No results found\r\n \r\n \r\n getSubrecipes(page)}\r\n hasMore={loadMore && !isLoading}\r\n useWindow={false}\r\n >\r\n {itemsMap}\r\n \r\n \r\n \r\n \r\n \r\n \r\n No results found\r\n \r\n \r\n getSubrecipes(page)}\r\n hasMore={loadMore && !isLoading}\r\n useWindow={false}\r\n >\r\n {itemsMap}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 AddSubrecipe;\r\n","import useInput from \"../../SharedEffects/useInput\";\r\nimport { useState, useEffect } from \"react\";\r\nimport comparisonViewsApi from \"../../../api/comparisonViewsApi\";\r\n\r\nconst useApi = () => {\r\n const search = useInput.useText('');\r\n const [ page, setPage ] = useState(1);\r\n const [ loadMore, setLoadMore] = useState(true);\r\n const [items, setItems] = useState([]);\r\n const [isLoading, setIsLoading] = useState(true);\r\n\r\n const getItems = (page, search, loadMoreForce) => {\r\n if (page && (loadMore || loadMoreForce)) {\r\n setIsLoading(true);\r\n const params = {\r\n limit: 30,\r\n page: page\r\n };\r\n comparisonViewsApi.getAllGroups(params, search).then(res => {\r\n setIsLoading(false);\r\n const loadMoreNew = res._meta.pageCount > res._meta.currentPage;\r\n const pageNew = loadMoreNew ? page + 1 : 1;\r\n setLoadMore(loadMoreNew);\r\n if (page === 1) {\r\n setItems(res.data);\r\n } else {\r\n setItems(items.concat(res.data));\r\n }\r\n setPage(pageNew);\r\n });\r\n }\r\n };\r\n\r\n const onClear = () => {\r\n search.clearValue();\r\n setPage(1);\r\n setLoadMore(true);\r\n setIsLoading(false);\r\n // Set reset values, values get update in the next render\r\n getItems(1, '', true);\r\n };\r\n\r\n const onSearch = (s) => {\r\n setPage(1);\r\n setLoadMore(true);\r\n setIsLoading(false);\r\n setItems([]);\r\n // Set reset values, values get update in the next render\r\n getItems(1, s, true);\r\n };\r\n\r\n useEffect(() => {\r\n getItems(1, '');\r\n }, []);\r\n\r\n return {\r\n page, items, getInventoryItems: getItems, loadMore,\r\n isLoading, onClear, onSearch, search\r\n };\r\n};\r\n\r\nexport default {\r\n useApi\r\n}","import React from 'react';\r\nimport useModal from '../useModal';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { Modal, ModalHeader, Row, Col, ModalBody } from 'reactstrap';\r\nimport InputSearch from '../../InputSearch/InputSearch';\r\nimport useAddInventoryItem from './useAddInventoryItem';\r\nimport InfiniteScroll from 'react-infinite-scroller';\r\nimport PlusButton from '../../PlusButton/PlusButton';\r\nimport noimage from '../../../assets/images/no-image.png'\r\nimport comparisonViewsApi from '../../../api/comparisonViewsApi';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\n\r\nconst AddInventoryItem = (props) => {\r\n const {\r\n id, onAdd\r\n } = props;\r\n\r\n const modalProps = useModal(id, isMobile, true);\r\n const {\r\n onClear, onSearch, search, items,\r\n page, loadMore, isLoading, getInventoryItems\r\n } = useAddInventoryItem.useApi();\r\n\r\n const clickAdd = (cId, gId) => {\r\n comparisonViewsApi.getGroup(cId, gId).then(({data}) => {\r\n modalProps.toggle();\r\n onAdd(data);\r\n }).catch(err => console.error(err));\r\n };\r\n\r\n const itemsMap = items.map(i => \r\n \r\n \r\n subrecipe\r\n \r\n \r\n {i.name}\r\n {i.comparisonViewName}\r\n \r\n \r\n {clickAdd(i.comparisonViewId, i.id); modalProps.toggle();}} />\r\n \r\n \r\n );\r\n\r\n const noItems = items.length === 0 && !isLoading;\r\n\r\n return (\r\n \r\n \r\n \r\n Add Inventory 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 No results found\r\n \r\n \r\n getInventoryItems(page)}\r\n hasMore={loadMore && !isLoading}\r\n useWindow={false}\r\n >\r\n {itemsMap}\r\n \r\n \r\n \r\n \r\n \r\n \r\n No results found\r\n \r\n \r\n getInventoryItems(page)}\r\n hasMore={loadMore && !isLoading}\r\n useWindow={false}\r\n >\r\n {itemsMap}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AddInventoryItem;","import React, { useState, useEffect } from \"react\"\r\nimport recipeApi from \"../../../../../api/recipeApi\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport useInput from \"../../../../../SharedComponents/SharedEffects/useInput\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { showModal } from \"../../../../../reducers/modals/modalsActions\";\r\nimport AlertModal from \"../../../../../SharedComponents/Modals/AlertModal/AlertModal\";\r\nimport RecipeIngredientsItemRow from \"./Subcomponents/RecipeIngredientsItemRow\";\r\nimport noimage from '../../../../../assets/images/no-image.png';\r\nimport subimage from '../../../../../assets/images/subrecipe-image.png';\r\nimport { fraction, number } from 'mathjs';\r\nimport validate from 'validate.js';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport RecipeInfoModal from '../Modals/RecipeInfoModal/RecipeInfoModal';\r\nimport AddIngredientModal from \"../Modals/AddIngredientModal/AddIngredientModal\";\r\nimport OptionsModal from \"../../../../../SharedComponents/Modals/OptionsModal/OptionsModal\";\r\nimport AddFoodbamItemModal from \"../../../../../SharedComponents/Modals/AddFoodbamItemModal/AddFoodbamItemModal\";\r\nimport ItemDetailsFoodbam from \"../Modals/ItemDetails/ItemDetailsFoodbam/ItemDetailsFoodbam\";\r\nimport ItemDetailsSubrecipe from \"../Modals/ItemDetails/ItemDetailsSubrecipe/ItemDetailsSubrecipe\";\r\nimport ItemDetailsInventory from \"../Modals/ItemDetails/ItemDetailsInventory/ItemDetailsInventory\";\r\nimport AddSubrecipe from \"../../../../../SharedComponents/Modals/AddSubrecipe/AddSubrecipe\";\r\nimport AddInventoryItem from \"../../../../../SharedComponents/Modals/AddInventoryItem/AddInventoryItem\";\r\nimport { setIngredientsList, setRecipeInfo, setRecipeList } from \"../../../../../reducers/recipeCosting/recipeCostingActions\";\r\nimport numeral from 'numeral';\r\nimport moment from 'moment';\r\n\r\nconst useApi = () => {\r\n const ingredientsList = useSelector(({recipeCosting}) => recipeCosting.ingredientsList);\r\n const recipeInfo = useSelector(({recipeCosting}) => recipeCosting.recipeInfo);\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const params = useParams();\r\n const id = parseInt(params.recipeId);\r\n\r\n const getRecipeData = () => {\r\n recipeApi.getRecipe(id, 'ingredients,comparisonView,menu').then(({data}) => {\r\n const recipeData = {\r\n id: data.id,\r\n recipeName: data.name,\r\n menuCategory: {\r\n label: data.menu.name,\r\n value: data.menu.id\r\n },\r\n menuPrice: data.price,\r\n isSubrecipe: data.isSubRecipe,\r\n isSubrecipeUsed: data.isSubRecipeUsed,\r\n recipeYield: data.subRecipeYield,\r\n recipeYieldUom: data.subRecipeYieldUom,\r\n description: data.description,\r\n procedure: data.procedure,\r\n totalCost: data.totalCost,\r\n marginGrossProfit: data.marginGrossProfit,\r\n foodCostPercent: data.foodCostPercent,\r\n hasInactiveItems: data.hasInactiveItems\r\n }\r\n dispatch(setRecipeInfo(recipeData));\r\n const ingredients = data.ingredients.map(ing => {\r\n if (ing.ingredientType !== 'generic') return ing;\r\n return {\r\n ...ing,\r\n item: {\r\n ...ing.item,\r\n items: ing.item.items.sort((a, b) =>{ return a.isPunchedOut - b.isPunchedOut || b.isSubRecipe - a.isSubRecipe || a.unitPrice - b.unitPrice || a.price - b.price })\r\n }\r\n }\r\n });\r\n dispatch(setIngredientsList(ingredients));\r\n }).catch(err=> {\r\n if (err.code === 404) {\r\n dispatch(showModal(AlertModal, {\r\n message: 'Recipe Not Found',\r\n onOk: () => history.push('/recipe-costing')\r\n }));\r\n }\r\n console.error('RecipeApi getMenuCategory Error:', err);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n if (params.recipeId) {\r\n getRecipeData();\r\n }\r\n }, [params.recipeId]);\r\n\r\n return { recipeInfo, ingredientsList, getRecipeData };\r\n};\r\n\r\nconst useInfoForms = () => {\r\n const dispatch = useDispatch();\r\n const [errors] = useState({});\r\n const ri = useSelector(({recipeCosting}) => recipeCosting.recipeInfo);\r\n const { isSubRecipeUsed } = ri;\r\n\r\n const set = (key, value) => {\r\n dispatch(setRecipeInfo({[key]: value}));\r\n };\r\n\r\n const recipeName = {...useInput.useText('', {value: ri.recipeName, set: (v) => set('recipeName', v), isInvalidOnBlur: {presence: {allowEmpty: false}, length: {minimum: 3}}})};\r\n const menuPrice = useInput.useText('', {isNumber: true, value: ri.menuPrice, set: (v) => set('menuPrice', v), isInvalidOnBlur: {presence: {allowEmpty: false}, numericality: { greaterThan: 0 }}});\r\n const isSubrecipe = {\r\n value: ri.isSubrecipe,\r\n toggle: () => {dispatch(setRecipeInfo({isSubrecipe: !ri.isSubrecipe}))},\r\n set: (v) => {dispatch(setRecipeInfo({isSubrecipe: v}))}\r\n };\r\n const recipeYield = useInput.useText('', {value: ri.recipeYield, set: (v) => set('recipeYield', v), validate: {fraction: {strict: false}}, isInvalidOnBlur: {presence: {allowEmpty: false}, fraction: {strict: true}}});\r\n const recipeYieldUom = useInput.useText('', {value: ri.recipeYieldUom, set: (v) => set('recipeYieldUom', v), isInvalidOnBlur: {presence: {allowEmpty: false}, format: { pattern: \"[a-z]+\", flags: \"i\" },}});\r\n const description = useInput.useText('', {value: ri.description, set: (v) => set('description', v)});\r\n const procedure = useInput.useText('', {value: ri.procedure, set: (v) => set('procedure', v)});\r\n\r\n const setMenuCategory = (m) => {\r\n dispatch(setRecipeInfo({menuCategory: m}));\r\n };\r\n\r\n useEffect(() => {\r\n if (!ri.isSubrecipe && isSubRecipeUsed) {\r\n isSubrecipe.toggle();\r\n dispatch(showModal(AlertModal, {message: 'You can not remove the subrecipe option because this recipe is being used as a subrecipe for other recipes.'}));\r\n }\r\n }, [ri.isSubrecipe]);\r\n\r\n const isRecipeInfoValid = () => {\r\n const form = {\r\n menuPrice: ri.menuPrice,\r\n recipeName: ri.recipeName,\r\n recipeYield: ri.recipeYield,\r\n recipeYieldUom: ri.recipeYieldUom\r\n };\r\n const allowEmpty = {\r\n allowEmpty: false\r\n };\r\n const constrains = {\r\n menuPrice: {\r\n numericality: !ri.isSubrecipe ? { greaterThan: 0 } : false,\r\n presence: !ri.isSubrecipe ? allowEmpty : false,\r\n },\r\n recipeName: {\r\n presence: allowEmpty,\r\n length: {\r\n minimum: 3,\r\n },\r\n },\r\n recipeYield: {\r\n presence: ri.isSubrecipe ? allowEmpty : false,\r\n fraction: ri.isSubrecipe ? { strict: true } : false,\r\n },\r\n recipeYieldUom: {\r\n presence: ri.isSubrecipe ? allowEmpty : false,\r\n },\r\n };\r\n if (ri.isSubrecipe) {\r\n constrains.recipeYieldUom.format = { pattern: \"[a-z]+\", flags: \"i\" };\r\n }\r\n const result = validate(form, constrains);\r\n if (result) {\r\n recipeName.onBlur();\r\n if (!ri.isSubrecipe) {\r\n menuPrice.onBlur();\r\n } else {\r\n recipeYield.onBlur();\r\n recipeYieldUom.onBlur();\r\n }\r\n }\r\n return !result ? true : false;\r\n };\r\n\r\n return {\r\n recipeName,\r\n menuCategory: { value: ri.menuCategory, set: setMenuCategory },\r\n menuPrice, isSubrecipe, recipeYield, recipeYieldUom,\r\n description, procedure, isRecipeInfoValid, errors\r\n };\r\n};\r\n\r\nconst useEditRecipeInfo = (getRecipeData) => {\r\n const dispatch = useDispatch();\r\n const recipeInfo = useSelector(({recipeCosting}) => recipeCosting.recipeInfo);\r\n const recipeList = useSelector(({recipeCosting}) => recipeCosting.recipeList);\r\n\r\n const saveInfo = (params) => {\r\n recipeApi.patch(recipeInfo.id, params).then(({data}) => {\r\n dispatch(setRecipeList(recipeList.map(r => {\r\n if (r.id !== data.id) return r;\r\n return {\r\n ...r,\r\n ...data,\r\n description: data.name\r\n };\r\n })));\r\n getRecipeData();\r\n }).catch(err=> {\r\n if (err.code === 400) {\r\n dispatch(showModal(AlertModal, {message: err.data.message, onOk: () => getRecipeData()}));\r\n } else {\r\n dispatch(showModal(AlertModal, {message: \"Something wen't wrong\", onOk: () => getRecipeData()}));\r\n }\r\n console.error('RecipeApi patch Error:', err);\r\n });\r\n };\r\n\r\n const editInfo = () => {\r\n const modalProps = {\r\n menu: isMobile,\r\n isEdit: true,\r\n onSave: saveInfo\r\n };\r\n dispatch(showModal(RecipeInfoModal, modalProps));\r\n };\r\n\r\n return {\r\n editInfo, saveInfo\r\n };\r\n};\r\n\r\nconst useIngredientsDetails = (getRecipeData) => {\r\n const dispatch = useDispatch();\r\n\r\n const openInventoryTypeDetails = (ingredient, isAdd) => {\r\n const optionProps = {\r\n isAdd: isAdd,\r\n ingredient,\r\n getRecipeData\r\n };\r\n dispatch(showModal(ItemDetailsInventory, optionProps));\r\n };\r\n\r\n const openFoodbamTypeDetails = (ingredient, isAdd) => {\r\n const optionProps = {\r\n ingredient,\r\n getRecipeData,\r\n isAdd: isAdd\r\n };\r\n dispatch(showModal(ItemDetailsFoodbam, optionProps));\r\n };\r\n\r\n const openSubrecipeTypeDetails = (ingredient) => {\r\n const optionProps = {\r\n ingredient,\r\n getRecipeData\r\n };\r\n dispatch(showModal(ItemDetailsSubrecipe, optionProps));\r\n };\r\n\r\n return {\r\n openFoodbamTypeDetails, openSubrecipeTypeDetails, openInventoryTypeDetails\r\n };\r\n};\r\n\r\nconst useAddIngredients = (recipeInfo, getRecipeData) => {\r\n const dispatch = useDispatch();\r\n const details = useIngredientsDetails(getRecipeData);\r\n const ingredientsList = useSelector(({recipeCosting}) => recipeCosting.ingredientsList);\r\n\r\n const openAddFoodbamType = () => {\r\n const optionProps = {\r\n title: 'Add Foodbam Item',\r\n initItems: ingredientsList.filter(ing => ing.ingredientType === 'foodbam').map(ing => ing.item),\r\n idLabel: 'itemDistributorId',\r\n onAdd: (item) => {\r\n const ingredient = {\r\n recipe_id: recipeInfo.id,\r\n ingredientId: item.itemDistributorId,\r\n recipe_amount_fraction: '',\r\n recipe_pack_size_uom: 'lb',\r\n waste_percentage: '',\r\n conversion_pack_size_fraction: '',\r\n conversion_pack_size_uom: item.packSizeUom,\r\n recipe_pack_size_fraction: '',\r\n item: item\r\n };\r\n details.openFoodbamTypeDetails(ingredient, true)\r\n }\r\n };\r\n dispatch(showModal(AddFoodbamItemModal, optionProps));\r\n };\r\n const openInventoryType = () => {\r\n const modalProps = {\r\n onAdd: (item) => {\r\n const ing = {\r\n recipe_id: recipeInfo.id,\r\n item: item,\r\n recipe_pack_size_uom: 'lb'\r\n }\r\n details.openInventoryTypeDetails(ing, true);\r\n }\r\n };\r\n dispatch(showModal(AddInventoryItem, modalProps));\r\n }\r\n const openSubrecipeType = () => {\r\n const modalProps = {\r\n recipeId: recipeInfo.id,\r\n initItems: ingredientsList.filter(ing => ing.ingredientType === 'subrecipe').map(ing => ing.item),\r\n onAdd: (params) => {\r\n recipeApi.postIngredient(recipeInfo.id, params).then(({data}) => {\r\n getRecipeData();\r\n }).catch(err => console.error(err));\r\n }\r\n };\r\n dispatch(showModal(AddSubrecipe, modalProps));\r\n };\r\n\r\n const addIngredients = () => {\r\n const optionProps = {\r\n openFoodbam: openAddFoodbamType,\r\n openSubrecipe: openSubrecipeType,\r\n openInventory: openInventoryType\r\n };\r\n dispatch(showModal(AddIngredientModal, optionProps));\r\n };\r\n\r\n const addIngredientsMobile = () => {\r\n const optionProps = {\r\n title: 'Select',\r\n options: [\r\n {label: 'Item', description: 'Items I use FoodBAM to order', onClick: openAddFoodbamType},\r\n {label: 'Inventory Item', description: 'Item groups from my inventory view', onClick: openInventoryType},\r\n {label: 'Subrecipe', description: 'Items that I prepare OR make in house, for example \"Chiplote Aioli\" for your burger', onClick: openSubrecipeType}\r\n ]\r\n };\r\n dispatch(showModal(OptionsModal, optionProps));\r\n }\r\n\r\n return {\r\n addIngredients, addIngredientsMobile\r\n };\r\n};\r\n\r\nconst useIngredients = (ingredientsList, getRecipeData, details) => {\r\n const update = (recipeId, id, type, ingredientId, amount) => {\r\n const params = {\r\n ingredient_id: ingredientId,\r\n ingredient_type: type,\r\n recipe_amount: number(fraction(amount)),\r\n recipe_amount_fraction: fraction(amount).toFraction(),\r\n }\r\n recipeApi.patchIngredient(recipeId, id, params).then(({data}) => {\r\n getRecipeData();\r\n }).catch(err => {\r\n console.error('recipeApi PatchIngredient error:', err);\r\n });\r\n };\r\n const ingredientsMap = ingredientsList.map(ing => {\r\n const name = ing.item.name;\r\n let image = noimage;\r\n let brand = ing.item.brand;\r\n const openDetails = () => {\r\n if (ing.ingredientType === 'foodbam') {\r\n details.openFoodbamTypeDetails(ing);\r\n } else if (ing.ingredientType === 'subrecipe') {\r\n details.openSubrecipeTypeDetails(ing);\r\n } else if (ing.ingredientType === 'generic') {\r\n details.openInventoryTypeDetails(ing);\r\n }\r\n };\r\n const uom = ing.recipe_pack_size_uom;\r\n const price = ing.ingredientCosting;\r\n const amount = ing.recipe_amount_fraction ? ing.recipe_amount_fraction : ing.recipe_amount.toString();\r\n switch (ing.ingredientType) {\r\n case 'subrecipe':\r\n image = subimage;\r\n break;\r\n case 'generic':\r\n if (ing.item.items.length > 0) {\r\n const item = ing.item.items.filter(i => i.imageUrl)[0];\r\n image = item ? (item.imageUrl ? item.imageUrl : (item.brandImageUrl ? item.brandImageUrl : noimage)) : noimage;\r\n }\r\n brand = (!!ing.lastPurchasedDistributor ? `Last purchased from ${ing.lastPurchasedDistributor}`: ``) +\r\n (!!ing.lastPurchasedDistributorPrice ? ` at ${numeral(ing.lastPurchasedDistributorPrice).format('$0,0.00')}/${ing.lastPurchasedDistributorItem.unit_measure}` : ``) +\r\n (!!ing.lastPurchasedDistributorDate ? ` on ${moment(ing.lastPurchasedDistributorDate).format('M-DD-YY')}` : ``)\r\n ;\r\n break;\r\n case 'foodbam':\r\n default:\r\n image = ing.item.imageUrl ? ing.item.imageUrl : (ing.item.brandImageUrl ? ing.item.brandImageUrl : noimage)\r\n break;\r\n }\r\n return (\r\n \r\n );\r\n });\r\n\r\n return { ingredientsMap };\r\n};\r\n\r\nconst useUpdateTotals = (init, id) => {\r\n const dispatch = useDispatch();\r\n\r\n const handleKey = (key) => {\r\n switch (key) {\r\n case 'menuPrice': return 'price'; break;\r\n case 'foodCostPercent': return 'foodCostPercentage'; break;\r\n default: return key; break;\r\n }\r\n };\r\n\r\n const set = (key, value) => {\r\n const nKey = handleKey(key);\r\n const param = {[nKey]: value};\r\n recipeApi.patch(id, param).then(({data}) => {\r\n dispatch(setRecipeInfo({\r\n 'menuPrice': (Math.round(data.price * 100) / 100) ,\r\n 'marginGrossProfit': (Math.round(data.marginGrossProfit * 100) / 100),\r\n 'foodCostPercent': (Math.round(data.foodCostPercent * 100) / 100),\r\n }));\r\n }).catch(err=> {\r\n console.error('RecipeApi Update Error:', err);\r\n });\r\n };\r\n\r\n const totalCostTotal = useInput.useText('', {isNumber: true, value: init.totalCost, set: (v) => set('totalCost', v), isInvalidOnBlur: {presence: {allowEmpty: false}, numericality: { greaterThan: 0 }}});\r\n const menuPriceTotal = useInput.useText('', {isNumber: true, value: init.menuPrice, set: (v) => set('menuPrice', v), isInvalidOnBlur: {presence: {allowEmpty: false}, numericality: { greaterThan: 0 }}});\r\n const marginGrossProfitTotal = useInput.useText('', {isNumber: true, value: init.marginGrossProfit, set: (v) => set('marginGrossProfit', v), isInvalidOnBlur: {presence: {allowEmpty: false}}});\r\n const foodCostPercentTotal = useInput.useText('', {isNumber: true, value: init.foodCostPercent, set: (v) => set('foodCostPercent', v), isInvalidOnBlur: {presence: {allowEmpty: false}}});\r\n\r\n return {\r\n totalCostTotal, menuPriceTotal, marginGrossProfitTotal, foodCostPercentTotal\r\n };\r\n};\r\n\r\nexport default {\r\n useApi, useInfoForms, useIngredients,\r\n useEditRecipeInfo, useAddIngredients, useIngredientsDetails,\r\n useUpdateTotals\r\n};\r\n","import React, { Fragment } from 'react';\r\nimport { Col, Input } from 'reactstrap';\r\n\r\nconst RecipeInfoInput = (props) => {\r\n const {\r\n label, type, placeholder, set, value, className, error, onBlur, onFocus\r\n } = props;\r\n \r\n return (\r\n \r\n {label}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default RecipeInfoInput;","import React, { Fragment } from 'react';\r\nimport { Col } from 'reactstrap';\r\n\r\nconst RecipeInfoTextarea = (props) => {\r\n const {\r\n label, set, value, className\r\n } = props;\r\n \r\n return (\r\n \r\n {label}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default RecipeInfoTextarea;","import React, { Fragment } from 'react';\r\nimport { Col, Input, CustomInput } from 'reactstrap';\r\nimport RecipeInfoInput from './RecipeInfoInput';\r\nimport ShowIf from '../../../../../../SharedComponents/ShowIf/ShowIf';\r\n\r\nconst RecipeInfoSubrecipeInfo = (props) => {\r\n const {\r\n recipeYield, recipeYieldUom, isSubrecipe\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n Is this a subrecipe?\r\n \r\n \r\n \r\n \r\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 RecipeInfoSubrecipeInfo;","import React from 'react';\r\nimport { Col, Button } from 'reactstrap';\r\nimport RecipeInfoInput from './RecipeInfoInput';\r\nimport RecipeInfoTextarea from './RecipeInfoTextarea';\r\nimport Select from 'react-select';\r\nimport RecipeInfoSubrecipeInfo from './RecipeInfoSubrecipeInfo';\r\nimport ShowIf from '../../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { isMobile } from 'react-device-detect';\r\n\r\nconst RecipeInfo = (props) => {\r\n const {\r\n recipeName, menuPrice, recipeYield,\r\n recipeYieldUom, description, procedure, saveInfo,\r\n menuCategory, isSubrecipe, menuList: options, isRecipeInfoValid,\r\n create, createRecipe, error\r\n } = props;\r\n\r\n const subrecipeProps = {\r\n recipeYield, recipeYieldUom, isSubrecipe\r\n };\r\n\r\n const clickSave = () => {\r\n if (isRecipeInfoValid()) {\r\n const params = {\r\n name: recipeName.value,\r\n recipe_menu_category_id: menuCategory.value.value,\r\n price: menuPrice.value,\r\n description: description.value,\r\n procedure: procedure.value,\r\n is_sub_recipe: isSubrecipe.value,\r\n sub_recipe_yield: recipeYield.value,\r\n sub_recipe_yield_uom: recipeYieldUom.value,\r\n };\r\n\r\n if (create) {\r\n createRecipe(params, true, true);\r\n } else {\r\n saveInfo(params);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n Menu Category\r\n \r\n \r\n : numeral(isPerc ? value/100 : value).format(isPerc ?'%0.00' : '$0,0.00')\r\n }\r\n \r\n \r\n \r\n setIsEdited(true)}>\r\n {isMobile ? '' : 'Edit'}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default RecipeIngredientsInfoRow;","import React from 'react';\r\nimport { Col, Row } from 'reactstrap';\r\nimport RecipeIngredientsInfoRow from './RecipeIngredientsInfoRow';\r\nimport ShowIf from '../../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport useRecipeCostingRecipe from '../useRecipeCostingRecipe';\r\nimport meal from '../../../../../../assets/images/meal.svg';\r\nimport { useSelector } from 'react-redux';\r\nimport { isMobile } from 'react-device-detect';\r\n\r\nconst RecipeIngredients = (props) => {\r\n const spinner = useSelector(({userInterface}) => userInterface.spinner);\r\n const {\r\n ingredientsList, isSubrecipe, getRecipeData, id,\r\n totalCost, menuPrice, marginGrossProfit, foodCostPercent\r\n } = props;\r\n\r\n const details = useRecipeCostingRecipe.useIngredientsDetails(getRecipeData);\r\n const { ingredientsMap } = useRecipeCostingRecipe.useIngredients(ingredientsList, getRecipeData, details);\r\n\r\n const init = { totalCost: totalCost, menuPrice: menuPrice, marginGrossProfit: marginGrossProfit, foodCostPercent: foodCostPercent };\r\n const { totalCostTotal, menuPriceTotal, marginGrossProfitTotal, foodCostPercentTotal } = useRecipeCostingRecipe.useUpdateTotals(init, id);\r\n \r\n return (\r\n \r\n { ingredientsMap }\r\n \r\n \r\n \r\n meal\r\n \r\n \r\n \r\n \r\n {\"No ingredients have been added.\"}\r\n
\r\n {\"Click \" + ( isMobile ? \"'+'\" : \"'Add Ingredients'\") + \" above to begin building your recipe.\"}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 RecipeIngredients;","import React, { Fragment, useEffect } from 'react';\r\nimport { Container, Row, Col, Card } from 'reactstrap';\r\nimport Header from '../../../../../SharedComponents/Header/Header';\r\nimport useRecipeCostingRecipe from './useRecipeCostingRecipe';\r\nimport RecipeInfo from './Subcomponents/RecipeInfo';\r\nimport RecipeIngredients from './Subcomponents/RecipeIngredients';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { GoPlus } from 'react-icons/go';\r\nimport { MdEdit } from 'react-icons/md';\r\nimport { colors } from '../../../../../config/constants';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\nimport {\r\n setMenuList,\r\n setRecipeList,\r\n setRecipeListPage,\r\n setRecipeListIsLoading,\r\n setRecipeListLoadMore, \r\n setIngredientsList\r\n} from '../../../../../reducers/recipeCosting/recipeCostingActions';\r\nimport { FaSortAlphaUp, FaSortAlphaDown } from 'react-icons/fa';\r\n\r\nconst RecipeCostingRecipe = (props) => {\r\n const { create, createRecipe } = props;\r\n const menuList = useSelector(({recipeCosting}) => recipeCosting.menuList);\r\n const { recipeInfo, ingredientsList, getRecipeData } = useRecipeCostingRecipe.useApi();\r\n const infoProps = useRecipeCostingRecipe.useInfoForms();\r\n const { editInfo, saveInfo } = useRecipeCostingRecipe.useEditRecipeInfo(getRecipeData);\r\n const { addIngredients, addIngredientsMobile } = useRecipeCostingRecipe.useAddIngredients(recipeInfo, getRecipeData);\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n if (create) {\r\n if (!infoProps.menuCategory.value) {\r\n dispatch(setMenuList([]));\r\n dispatch(setRecipeList([]));\r\n dispatch(setRecipeListPage(1));\r\n dispatch(setRecipeListIsLoading(false));\r\n dispatch(setRecipeListLoadMore(false));\r\n dispatch(setIngredientsList([]));\r\n history.replace('/recipe-costing');\r\n }\r\n }\r\n }, []);\r\n\r\n const rightButton = isMobile ?\r\n {icon: [, ]} : {button: {color: 'green', title:'Add Ingredients', onClick: addIngredients, disabled: create}};\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
Recipe Description
\r\n
Ingredients
\r\n
\r\n \r\n \r\n \r\n \r\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 RecipeCostingRecipe;\r\n","import React from 'react';\r\nimport { Container, Row, Col } from 'reactstrap';\r\nimport Header from '../../../../../SharedComponents/Header/Header';\r\nimport useRecipeCostingMenu from './useRecipeCostingMenu';\r\nimport { Switch, Route, Redirect, useHistory } from 'react-router-dom';\r\nimport RecipeCostingRecipe from '../RecipeCostingRecipe/RecipeCostingRecipe';\r\nimport { colors } from '../../../../../config/constants';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { GoPlus } from 'react-icons/go';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport listWhite from '../../../../../assets/images/list-white.svg';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport RecipeInfoModal from '../Modals/RecipeInfoModal/RecipeInfoModal';\r\nimport { clearRecipeInfo, setIngredientsList } from '../../../../../reducers/recipeCosting/recipeCostingActions';\r\n\r\nconst RecipeCostingMenu = () => {\r\n const { menuName, recipeList, selected, createRecipe, recipeDateFilter, recipeListTable } = useRecipeCostingMenu.useApi();\r\n const spinner = useSelector(({userInterface}) => userInterface.spinner);\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const newRecipe = () => {\r\n const modalProps = {\r\n menu: isMobile,\r\n isEdit: false,\r\n lockMenu: true,\r\n menuInfo: selected,\r\n onSave: createRecipe\r\n };\r\n dispatch(clearRecipeInfo());\r\n dispatch(showModal(RecipeInfoModal, modalProps));\r\n };\r\n\r\n const redirectToNewRecipe = () => {\r\n dispatch(setIngredientsList([]));\r\n dispatch(clearRecipeInfo(selected));\r\n history.push(`new-recipe`);\r\n };\r\n\r\n const rightButton = isMobile ? {icon: } : {button: {onClick: redirectToNewRecipe, color: 'green', title:'New Recipe'}};\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {recipeDateFilter}\r\n
\r\n \r\n {recipeListTable}\r\n \r\n \r\n \r\n recipe\r\n \r\n \r\n \r\n \r\n {\"There are no recipes here yet!\"}\r\n
\r\n {\"Press the \" + ( isMobile ? \"'+'\" : \"'New Recipe'\") + \" button above to begin adding recipes.\"}\r\n \r\n
\r\n
\r\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 RecipeCostingMenu;\r\n","import React, { Fragment } from 'react';\r\nimport { Container, Row, Col } from 'reactstrap';\r\nimport Header from '../../../../../SharedComponents/Header/Header';\r\nimport { GoPlus } from 'react-icons/go';\r\nimport { colors } from '../../../../../config/constants';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport OneInputModal from '../../../../../SharedComponents/Modals/OneInputModal/OneInputModal';\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\n\r\nconst RecipeCostingCategory = ({menuListMap, createMenu, menuList}) => {\r\n const dispatch = useDispatch();\r\n const spinner = useSelector(({userInterface}) => userInterface.spinner);\r\n \r\n const openCreateMenu = () => {\r\n const inputProps = {\r\n title: 'Create Menu Category',\r\n label: 'Menu Category Name',\r\n onSave: createMenu,\r\n placeholder: 'Enter Category Name',\r\n menu: isMobile,\r\n fullMenu: true\r\n };\r\n dispatch(showModal(OneInputModal, inputProps));\r\n };\r\n\r\n const rightButton = isMobile ? {icon: } : {button: {onClick: openCreateMenu, color: 'green', title:'New Menu Category'}};\r\n\r\n return (\r\n \r\n
\r\n \r\n {menuListMap}\r\n \r\n \r\n \r\n {\"There are no menu here yet!\"}\r\n
\r\n {\"Press the \" + ( isMobile ? \"'+'\" : \"'New Menu Category'\") + \" button above to begin adding a menu.\"}\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default RecipeCostingCategory;","import React from \"react\";\r\nimport { Card, Row, Col } from \"reactstrap\";\r\nimport { MdEdit, MdDelete } from 'react-icons/md';\r\nimport { FiMoreHorizontal } from 'react-icons/fi';\r\nimport { colors } from \"../../../../../config/constants\";\r\nimport ShowIf from \"../../../../../SharedComponents/ShowIf/ShowIf\";\r\nimport { isMobile } from \"react-device-detect\";\r\nimport useRecipeCostingCategory from \"./useRecipeCostingCategory\";\r\n\r\nconst RecipeCostingMenuRow = (props) => {\r\n const { name } = props;\r\n\r\n const {\r\n setHover, hover, goToCategory,\r\n editCategory, deleteCategory, openCategoryOption\r\n } = useRecipeCostingCategory.useRow(props);\r\n\r\n return (\r\n \r\n setHover(true)} onMouseLeave={() => setHover(false)}>\r\n {name}\r\n \r\n \r\n Edit\r\n \r\n \r\n Delete\r\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 RecipeCostingMenuRow;","import axios from \"axios\";\r\n\r\nconst get = () => {\r\n return axios.get('/recipe-menu-category');\r\n};\r\n\r\nconst patch = (id, params) => {\r\n return axios.patch(`/recipe-menu-category/${id}`, params);\r\n};\r\n\r\nconst post = (params) => {\r\n return axios.post(`/recipe-menu-category`, params);\r\n};\r\n\r\nconst deleted = (id) => {\r\n return axios.delete(`/recipe-menu-category/${id}`);\r\n};\r\n\r\nexport default {\r\n get, patch, post, delete: deleted\r\n};","import React, { useState, useEffect } from \"react\";\r\nimport RecipeCostingMenuRow from \"./RecipeCostingMenuRow\";\r\nimport OneInputModal from \"../../../../../SharedComponents/Modals/OneInputModal/OneInputModal\";\r\nimport { showModal } from \"../../../../../reducers/modals/modalsActions\";\r\nimport OptionsModal from \"../../../../../SharedComponents/Modals/OptionsModal/OptionsModal\";\r\nimport { isMobile } from \"react-device-detect\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport QuestionModal from \"../../../../../SharedComponents/Modals/QuestionModal/QuestionModal\";\r\nimport recipeMenuCategoryApi from \"../../../../../api/recipeMenuCategoryApi\";\r\nimport {\r\n setMenuList,\r\n setRecipeList,\r\n setRecipeListPage,\r\n setRecipeListIsLoading,\r\n setRecipeListLoadMore\r\n} from '../../../../../reducers/recipeCosting/recipeCostingActions';\r\nimport { closeSidebar } from \"../../../../../reducers/userInterface/userInterfaceActions\";\r\nimport AlertModal from \"../../../../../SharedComponents/Modals/AlertModal/AlertModal\";\r\n\r\nconst useApi = () => {\r\n const dispatch = useDispatch();\r\n const menuList = useSelector(({recipeCosting}) => recipeCosting.menuList);\r\n\r\n const getMenulist = () => {\r\n recipeMenuCategoryApi.get().then(({data}) => {\r\n dispatch(setMenuList(data));\r\n }).catch(err=> {\r\n console.error('RecipeMenuCategoryApi get Error:', err);\r\n });\r\n };\r\n\r\n const deleteMenu = (id) => {\r\n recipeMenuCategoryApi.delete(id).then(({data}) => {\r\n getMenulist();\r\n }).catch(err => {\r\n console.error('RecipeMenuCategoryApi delete Error:', err);\r\n });\r\n };\r\n\r\n const createMenu = (name) => {\r\n recipeMenuCategoryApi.post({name: name}).then(({data}) => {\r\n getMenulist();\r\n }).catch(err => {\r\n if (err.code === 400) {\r\n dispatch(showModal(AlertModal, {message: err.data.message}));\r\n } else {\r\n dispatch(showModal(AlertModal, {message: \"Something wen't wrong\"}));\r\n }\r\n console.error('RecipeMenuCategoryApi post Error:', err);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n getMenulist();\r\n }, []);\r\n\r\n const menuListMap = menuList.map(m =>\r\n \r\n );\r\n\r\n return { menuList, menuListMap, createMenu, getMenulist };\r\n};\r\n\r\nconst useRow = (props) => {\r\n const { id, name, getMenulist, deleteMenu } = props;\r\n const [hover, setHover] = useState(false);\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const goToCategory = () => {\r\n dispatch(setRecipeList([]));\r\n dispatch(setRecipeListPage(1));\r\n dispatch(setRecipeListIsLoading(false));\r\n dispatch(setRecipeListLoadMore(false));\r\n dispatch(closeSidebar());\r\n history.push(`/recipe-costing/${id}`);\r\n };\r\n\r\n const deleteCategory = () => {\r\n const questionProps = {\r\n message: 'Delete Category?',\r\n leftButton: {\r\n title: 'Delete',\r\n color: 'orange',\r\n onClick: () => deleteMenu(id)\r\n },\r\n rightButton: {\r\n title: 'Cancel',\r\n color: 'green'\r\n }\r\n };\r\n dispatch(showModal(QuestionModal, questionProps));\r\n };\r\n\r\n const renameCategory = (newName) => {\r\n recipeMenuCategoryApi.patch(id, {name: newName}).then(({data}) => {\r\n getMenulist();\r\n }).catch(err => {\r\n if (err.code === 400) {\r\n dispatch(showModal(AlertModal, {message: err.data.message}));\r\n } else {\r\n dispatch(showModal(AlertModal, {message: \"Something wen't wrong\"}));\r\n }\r\n console.error('RecipeApi patchMenuCategory Error:', err);\r\n })\r\n };\r\n\r\n const editCategory = () => {\r\n const editProps = {\r\n title: 'Edit Menu Category',\r\n label: 'Edit Category Name',\r\n initValue: name,\r\n menu: isMobile,\r\n fullMenu: true,\r\n onSave: renameCategory\r\n };\r\n dispatch(showModal(OneInputModal, editProps));\r\n };\r\n\r\n const openCategoryOption = () => {\r\n const optionProps = {\r\n title: 'Select',\r\n options: [\r\n {label: 'Edit Category', onClick: editCategory},\r\n {label: 'Delete Category', onClick: deleteCategory}\r\n ]\r\n }\r\n dispatch(showModal(OptionsModal, optionProps));\r\n };\r\n\r\n return {\r\n setHover, hover, goToCategory, editCategory,\r\n deleteCategory, openCategoryOption\r\n }\r\n}\r\n\r\nexport default {\r\n useApi, useRow\r\n};\r\n","import React from 'react';\r\nimport { Switch, Route, Redirect } from 'react-router-dom';\r\nimport RecipeCostingMenu from './RecipeCostingMenu/RecipeCostingMenu';\r\nimport RecipeCostingCategory from './RecipeCostingCategory/RecipeCostingCategory';\r\nimport useRecipeCostingCategory from './RecipeCostingCategory/useRecipeCostingCategory';\r\n\r\nconst RecipeCosting = () => {\r\n const categoryProps = useRecipeCostingCategory.useApi();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default RecipeCosting;","import React from 'react';\r\nimport {Card, Row, Col} from 'reactstrap';\r\nimport {Link} from 'react-router-dom';\r\nimport {isMobile} from 'react-device-detect';\r\nimport numeral from 'numeral';\r\nimport arrowRight from '../../../../../assets/images/arrow-right.png';\r\nimport moment from \"moment\";\r\n\r\nconst PosListRow = (props) => {\r\n const item = props.children;\r\n const formattedDate = moment(item.date, \"YYYY-MM-DD\").format(\"MM/DD/YYYY\");\r\n\r\n const seeDetailsHandler = () => {\r\n return `/pos/${item.date}`;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {formattedDate}\r\n \r\n \r\n {numeral(item.total).format('$0,0.00')}\r\n \r\n \r\n \r\n {!isMobile ? 'See Details' : null}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PosListRow;\r\n","import axios from 'axios';\r\n\r\nconst getPos = () => {\r\n //return axios.get('pos?key=L242p3IQ7RSZ3V1aoGqijb186hI3900o');\r\n return axios.get('pos');\r\n};\r\n\r\nconst getPosDetail = (date, page) => {\r\n const params = {\r\n page\r\n };\r\n //params.key = 'L242p3IQ7RSZ3V1aoGqijb186hI3900o';\r\n return axios.get(`pos/detail/${date}`, {params});\r\n};\r\n\r\nexport default{\r\n getPos,\r\n getPosDetail\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport posApi from '../../../../../api/posApi';\r\nimport PosListRow from './PosListRow';\r\n\r\nconst useApi = () => {\r\n const [items, setItems] = useState([]);\r\n\r\n useEffect(() => {\r\n posApi.getPos().then(({data}) => {\r\n setItems(data);\r\n }).catch(err=> {\r\n console.error('posApi get Error:', err);\r\n });\r\n }, []);\r\n\r\n const itemsMap = items.map(item => {item});\r\n\r\n return { items, itemsMap };\r\n};\r\n\r\nexport default {\r\n useApi\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Card, Container, Row, Col } from 'reactstrap';\r\nimport { useSelector } from 'react-redux';\r\nimport PosListRow from './PosListRow';\r\nimport usePosList from './usePosList';\r\n\r\nconst PosList = (props) => {\r\n const { items, itemsMap } = usePosList.useApi();\r\n const spinner = useSelector(({userInterface}) => userInterface.spinner);\r\n\r\n const header = (\r\n \r\n \r\n Date\r\n \r\n \r\n Total Sales\r\n \r\n \r\n \r\n \r\n );\r\n\r\n if (!spinner && items && items.length == 0) {\r\n return (\r\n \r\n {header}\r\n \r\n \r\n \r\n No results found.\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {header}\r\n {itemsMap}\r\n \r\n );\r\n};\r\n\r\nexport default PosList;\r\n","import React, { useState } from 'react';\r\nimport { Modal, ModalBody, ModalFooter, Button, ModalHeader } from 'reactstrap';\r\nimport './SelectModal.scss'\r\nimport useModal from '../useModal';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport Select from 'react-select';\r\n\r\nconst SelectModal = (props) => {\r\n const { id, header, message, options, onOk } = props;\r\n const [valueOption, setValueOption] = useState();\r\n const modalprops = useModal(id);\r\n\r\n const onClickOk = () => {\r\n if (onOk) {\r\n onOk(valueOption);\r\n };\r\n modalprops.toggle();\r\n };\r\n\r\n const changeOption = ({ value }) => {\r\n setValueOption(value);\r\n };\r\n\r\n return (\r\n\r\n \r\n {header}\r\n \r\n

\r\n {message}\r\n

\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default SelectModal;\r\n\r\n","import { useState, useEffect } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useParams } from 'react-router-dom';\r\nimport posApi from '../../../../../api/posApi';\r\nimport recipeApi from '../../../../../api/recipeApi';\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport SelectModal from '../../../../../SharedComponents/Modals/SelectModal/SelectModal';\r\nconst useApi = () => {\r\n\r\n const [items, setItems] = useState([]);\r\n const [page, setPage] = useState(1);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [loadMore, setLoadMore] = useState(false);\r\n const [listRecipes, setListRecipes] = useState([]);\r\n // const options = listReject.map(res => {\r\n // return {\r\n // label: res,\r\n // value: res\r\n // };\r\n // });\r\n const dispatch = useDispatch();\r\n const params = useParams();\r\n const date = params.date;\r\n\r\n const getPosDetail = (page) => {\r\n\r\n setIsLoading(true);\r\n posApi.getPosDetail(date, page)\r\n .then(res => {\r\n setItems(items.concat(res.data));\r\n setPage(page);\r\n setLoadMore(res._meta.pageCount > res._meta.currentPage);\r\n setIsLoading(false);\r\n })\r\n .catch(error => console.log(error));\r\n\r\n };\r\n\r\n const getRecipes = (page) => {\r\n\r\n recipeApi.getAllRecipesBySearch(1)\r\n .then(res => {\r\n setListRecipes(res.data.map(_i => {\r\n return {\r\n label: _i.name,\r\n value: _i.id\r\n }\r\n }));\r\n })\r\n .catch(error => console.log(error));\r\n\r\n };\r\n\r\n const changeRecipe = (itemSelect, item_name) => {\r\n console.log(itemSelect)\r\n recipeApi.assingRecipe({\r\n item_name: item_name,\r\n recipe_id: itemSelect.value,\r\n force: true\r\n })\r\n .then(res => {\r\n console.log(res);\r\n })\r\n .catch(error => console.log(error));\r\n // console.log(itemSelect);\r\n // console.log(item_name)\r\n }\r\n\r\n\r\n // const openModalRecipes = () => {\r\n // const props = {\r\n // header: `Reject`,\r\n // message: `We'd like to improve your experience with Foodbam. What is your problem?`,\r\n // options: listRecipes,\r\n // onOk: (optionValue) => {\r\n // console.log(optionValue)\r\n // }\r\n // };\r\n // dispatch(showModal(SelectModal, props));\r\n // }\r\n\r\n\r\n useEffect(() => {\r\n getRecipes();\r\n getPosDetail(page);\r\n }, []);\r\n\r\n return {\r\n items, page, isLoading, loadMore, getPosDetail, listRecipes, changeRecipe\r\n };\r\n};\r\n\r\nexport default {\r\n useApi\r\n};\r\n","import React, { useMemo, useState } from 'react';\r\nimport { Card, Row, Col } from 'reactstrap';\r\nimport numeral from 'numeral';\r\nimport { FaAngleDown } from 'react-icons/fa';\r\nimport { colors } from '../../../../../config/constants';\r\nimport Select from 'react-select';\r\n\r\n\r\nconst PosDetailRow = (props) => {\r\n const item = props.children;\r\n const { listRecipes, changeRecipe } = props;\r\n const [itemSelect, setItemSelect] = useState(listRecipes.find(_i => _i.value === item.recipe_id));\r\n\r\n const onChangeSelect = (iSelect) => {\r\n changeRecipe(iSelect, item.item_name);\r\n setItemSelect(iSelect);\r\n // itemm.recipe_id = itemSelect.value;\r\n // setItemm(itemm);\r\n };\r\n\r\n const selectM = useMemo(() => {\r\n console.log('Entro')\r\n return (\r\n \r\n )\r\n }, [itemSelect])\r\n\r\n return (\r\n \r\n \r\n \r\n {item.item_name}\r\n \r\n \r\n {item.pos_category}\r\n \r\n \r\n {item.quantity_sold}\r\n \r\n \r\n {item.quantity_void}\r\n \r\n \r\n {item.quantity_net}\r\n \r\n \r\n {selectM}\r\n \r\n \r\n {numeral(item.price).format('$0,0.00')}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PosDetailRow;\r\n","import React from 'react';\r\nimport { Card, Container, Row, Col } from 'reactstrap';\r\nimport InfiniteScroll from 'react-infinite-scroller';\r\nimport { isMobile } from 'react-device-detect';\r\nimport usePosDetail from './usePosDetail';\r\nimport PosDetailRow from './PosDetailRow';\r\n\r\nconst PosDetail = () => {\r\n\r\n const { items, page, isLoading, loadMore, getPosDetail, listRecipes, changeRecipe } = usePosDetail.useApi();\r\n\r\n const itemsMap = items.map((item, index) => {item});\r\n\r\n const header = (\r\n \r\n \r\n {isMobile ? 'Item Name' : 'Menu Item Name'}\r\n \r\n \r\n Menu Category\r\n \r\n \r\n QTY Sold\r\n \r\n \r\n QTY Void\r\n \r\n \r\n Net QTY\r\n \r\n \r\n Recipe\r\n \r\n \r\n {isMobile ? 'Total Amount' : 'Total Amount Sold'}\r\n \r\n \r\n );\r\n\r\n if (!isLoading && items && items.length == 0) {\r\n return (\r\n \r\n {header}\r\n \r\n \r\n \r\n No results found.\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {header}\r\n \r\n {itemsMap}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default PosDetail;\r\n","import React from 'react';\r\nimport { Switch, Route, Redirect } from 'react-router-dom';\r\nimport { Container } from 'reactstrap';\r\nimport Header from '../../../../SharedComponents/Header/Header';\r\nimport PosList from './PosList/PosList';\r\nimport PosDetail from './PosDetail/PosDetail';\r\nimport './Pos.scss';\r\n\r\nconst Pos = () => {\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Pos;\r\n","import axios from 'axios';\r\n\r\nconst getCards = () => {\r\n //return axios.get('payment-methods?key=L242p3IQ7RSZ3V1aoGqijb186hI3900o');\r\n return axios.get('payment-methods');\r\n};\r\n\r\nconst getCardById = (cardToken) => {\r\n return axios.get(`payment-methods/${cardToken}`);\r\n};\r\n\r\nconst addCard = (card) => {\r\n return axios.post('payment-methods', card);\r\n};\r\n\r\nconst updateCard = (cardToken, card) => {\r\n return axios.patch(`payment-methods/${cardToken}`, card);\r\n};\r\n\r\nconst deleteCard = (cardToken) => {\r\n return axios.delete(`payment-methods/${cardToken}`);\r\n};\r\n\r\nexport default{\r\n getCards,\r\n getCardById,\r\n addCard,\r\n updateCard,\r\n deleteCard\r\n};\r\n","import americanExpressIcon from '../../../../assets/images/cards/american express.png';\r\nimport dinersClubIcon from '../../../../assets/images/cards/diners club.png';\r\nimport discoverIcon from '../../../../assets/images/cards/discover.png';\r\nimport jcbIcon from '../../../../assets/images/cards/jcb.png';\r\nimport mastercardIcon from '../../../../assets/images/cards/mastercard.png';\r\nimport unionpayIcon from '../../../../assets/images/cards/unionpay.png';\r\nimport visaIcon from '../../../../assets/images/cards/visa.png';\r\n\r\nexport const cardIconHandler = (card) => {\r\n const cardType = card && card.cardType || '';\r\n switch (cardType) {\r\n case 'american express':\r\n return americanExpressIcon;\r\n case 'diners club':\r\n return dinersClubIcon;\r\n case 'discover':\r\n return discoverIcon;\r\n case 'jcb':\r\n return jcbIcon;\r\n case 'mastercard':\r\n return mastercardIcon;\r\n case 'unionpay':\r\n return unionpayIcon;\r\n case 'visa':\r\n return visaIcon;\r\n default:\r\n return '';\r\n }\r\n};\r\n","import React, { useState } from 'react';\r\nimport { Card, Row, Col, Button } from 'reactstrap';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { MdEdit, MdDelete } from 'react-icons/md';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { colors } from '../../../../../config/constants';\r\nimport { cardIconHandler } from '../cardIconHandler';\r\n\r\nconst CardRow = (props) => {\r\n const [showDelete, setShowDelete] = useState(false);\r\n const card = props.children;\r\n\r\n const history = useHistory();\r\n\r\n const enableShowDelete = () => { setShowDelete(true); };\r\n const disableShowDelete = () => { setShowDelete(false); };\r\n const deleteCard = () => {\r\n props.deleteCard(card.token);\r\n };\r\n\r\n const goToUpdateCard = () => {\r\n history.push(`/manage-cards/update-card/${card.token}`);\r\n };\r\n\r\n if (isMobile) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{card.nickname || card.last4}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{card.nickname || card.last4}
\r\n \r\n \r\n \r\n \r\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 CardRow;\r\n","import React, { useState, useEffect } from 'react';\r\nimport cardspApi from '../../../../../api/cardspApi';\r\nimport CardRow from './CardRow';\r\n\r\nconst useApi = () => {\r\n const [cards, setCards] = useState([]);\r\n\r\n useEffect(() => {\r\n cardspApi.getCards().then(({data}) => {\r\n setCards(data);\r\n }).catch(err=> {\r\n console.error('getCardDetails get Error:', err);\r\n });\r\n\r\n }, []);\r\n\r\n const deleteCard = (token) => {\r\n cardspApi.deleteCard(token).then(() => {\r\n const newCards = cards.filter(card => card.token !== token);\r\n setCards(newCards);\r\n }).catch(err=> {\r\n console.log(err);\r\n });\r\n };\r\n\r\n const cardsMap = cards.map((card, index) => {card});\r\n\r\n return { cards, cardsMap };\r\n};\r\n\r\nexport default {\r\n useApi\r\n};\r\n","import React from 'react';\r\nimport { Container, Row, Col, Button } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { mobileClassName } from '../../../../../config/constants';\r\nimport useCarList from './useCarList';\r\n\r\nconst CardsList = () => {\r\n const { cards, cardsMap } = useCarList.useApi();\r\n\r\n return (\r\n \r\n {cardsMap}\r\n \r\n {\r\n isMobile ?\r\n \r\n Add Card\r\n \r\n :\r\n \r\n Add Card\r\n \r\n }\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CardsList;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Container, Row, Col, Form, FormGroup, CustomInput, Input, Button } from 'reactstrap';\r\nimport { CardElement, injectStripe, Elements } from 'react-stripe-elements';\r\nimport { useParams, useHistory } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport { FaArrowLeft, FaArrowRight } from 'react-icons/fa';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { mobileClassName } from '../../../../../config/constants';\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport AlertModal from '../../../../../SharedComponents/Modals/AlertModal/AlertModal';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport useInput from '../../../../../SharedComponents/SharedEffects/useInput';\r\nimport cardspApi from '../../../../../api/cardspApi';\r\nimport { cardIconHandler } from '../cardIconHandler';\r\nimport './CardForm.scss';\r\n\r\nconst CardForm = (props) => {\r\n const { cardId, successSaveCard } = props;\r\n return (\r\n \r\n \r\n \r\n );\r\n\r\n};\r\n\r\nconst _StripeForm = (props) => {\r\n\r\n const { cardId, successSaveCard } = props;\r\n const [step, setStep] = useState(1);\r\n const [errorMsg, setErrorMsg] = useState('');\r\n const [validCard, setValidCard] = useState(false);\r\n const [card, setCard] = useState(null);\r\n\r\n const params = useParams();\r\n\r\n\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const validateForm = () => {\r\n const data = {\r\n address_line1: addressLine1.value,\r\n address_city: addressCity.value,\r\n address_state: addressState.value,\r\n address_zip: addressZip.value\r\n };\r\n const constrains = {\r\n address_line1: {\r\n presence: true,\r\n length: {\r\n minimum: 1\r\n }\r\n },\r\n address_city: {\r\n presence: true,\r\n length: {\r\n minimum: 1\r\n }\r\n },\r\n address_state: {\r\n presence: true,\r\n format: {\r\n pattern: '[A-Za-z]+'\r\n },\r\n length: {\r\n minimum: 1,\r\n maximum: 2\r\n }\r\n },\r\n address_zip: {\r\n presence: true,\r\n format: {\r\n pattern: '[0-9]+'\r\n },\r\n length: {\r\n is: 5\r\n }\r\n }\r\n };\r\n\r\n const result = validate(data, constrains);\r\n return !!!result;\r\n };\r\n\r\n const nickname = useInput.useText('');\r\n const addressLine1 = useInput.useText('');\r\n const addressLine2 = useInput.useText('');\r\n const addressCity = useInput.useText('');\r\n const addressState = useInput.useText('');\r\n const addressZip = useInput.useText('');\r\n const isDefault = useInput.useCheckbox(false);\r\n\r\n useEffect(() => {\r\n if (params.id || cardId) {\r\n\r\n let token = cardId ? cardId : params.id;\r\n\r\n cardspApi.getCardById(token).then(({ data }) => {\r\n \r\n data.nickname = (data.nickname + '') == 'null' ? '' : (data.nickname + '');\r\n data.address1 = (data.address1 + '') == 'null' ? '' : (data.address1 + '');\r\n data.address2 = (data.address2 + '') == 'null' ? '' : (data.address2 + '');\r\n data.city = data.city + '';\r\n data.state = data.state + '';\r\n data.zip = data.zip + '';\r\n setCard(data);\r\n nickname.set(data.nickname);\r\n isDefault.set(data.isDefault);\r\n setValidCard(true);\r\n addressLine1.set(data.address1);\r\n addressLine2.set(data.address2);\r\n addressCity.set(data.city);\r\n addressState.set(data.state);\r\n addressZip.set(data.zip);\r\n }).catch(err => {\r\n if (err.code === 404 && history.location.pathname.startsWith('/manage-cards/update-card')) {\r\n dispatch(showModal(AlertModal, {\r\n message: 'Credit Card Not Found',\r\n onOk: () => { history.replace('/manage-cards') }\r\n }));\r\n }\r\n console.error('getCardById get Error:', err);\r\n });\r\n }\r\n }, []);\r\n\r\n const goToStep1 = () => {\r\n setStep(1);\r\n }\r\n\r\n const goToStep2 = () => {\r\n setStep(2);\r\n }\r\n\r\n const handleCardChange = (result) => {\r\n setValidCard(!!!result.error);\r\n setErrorMsg(result && result.error && result.error.message || '');\r\n }\r\n\r\n const handleSubmitCardForm = () => {\r\n if (card) {\r\n const payload = {\r\n nickname: nickname.value,\r\n address_line1: addressLine1.value,\r\n address_line2: addressLine2.value,\r\n address_city: addressCity.value,\r\n address_state: addressState.value,\r\n address_zip: addressZip.value,\r\n default: isDefault.value\r\n };\r\n cardspApi.updateCard(card.token, payload)\r\n .then(() => {\r\n if (successSaveCard) {\r\n successSaveCard();\r\n return;\r\n }\r\n history.push('/manage-cards')\r\n })\r\n .catch(response => setErrorMsg(response.data.data.message));\r\n } else {\r\n const tokenData = {\r\n type: 'card',\r\n address_line1: addressLine1.value,\r\n address_line2: addressLine2.value,\r\n address_city: addressCity.value,\r\n address_state: addressState.value,\r\n address_zip: addressZip.value\r\n };\r\n\r\n if (props.stripe) {\r\n props.stripe.createToken(tokenData).then(payload => {\r\n if (!payload.error) {\r\n cardspApi.addCard({\r\n token: payload.token.id,\r\n nickname: nickname.value,\r\n default: isDefault.value,\r\n cardId: payload.token.card.id\r\n })\r\n .then(() => {\r\n if (successSaveCard) {\r\n successSaveCard();\r\n return;\r\n }\r\n history.push('/manage-cards')\r\n })\r\n .catch(error => console.log(error));\r\n }\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n const cardElementOptions = {\r\n style: {\r\n base: {\r\n color: '#202020',\r\n lineHeight: '17px',\r\n fontSmoothing: 'antialiased',\r\n fontSize: '15px',\r\n '::placeholder': {\r\n color: '#76777b'\r\n }\r\n },\r\n invalid: {\r\n color: '#dc3545',\r\n iconColor: '#dc3545'\r\n }\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n {errorMsg}\r\n
\r\n
\r\n\r\n
\r\n Step 1 of 2   Add Card Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{card && card.last4}
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n Step 2 of 2   Confirm Billing Info\r\n

BILLING ADDRESS

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n City\r\n \r\n \r\n \r\n State\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n};\r\n\r\nconst StripeForm = injectStripe(_StripeForm);\r\n\r\nexport default CardForm;\r\n","import React from 'react';\r\nimport { Switch, Route, Redirect } from 'react-router-dom';\r\nimport { Container } from 'reactstrap';\r\nimport Header from '../../../../SharedComponents/Header/Header';\r\nimport CardsList from './CardsList/CardsList';\r\nimport CardForm from './CardForm/CardForm';\r\nimport './ManageCards.scss';\r\n\r\nconst ManageCards = () => {\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ManageCards;\r\n","import axios from 'axios';\r\n\r\nconst sendHelpEmail = (message) => {\r\n return axios.post('contacts/help', {message});\r\n};\r\n\r\nexport default{\r\n sendHelpEmail\r\n};\r\n","import { useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport AlertModal from '../../../../../SharedComponents/Modals/AlertModal/AlertModal';\r\nimport useInput from '../../../../../SharedComponents/SharedEffects/useInput';\r\nimport helpApi from '../../../../../api/helpApi';\r\n\r\nconst useForm = () => {\r\n\r\n const dispatch = useDispatch();\r\n const { set : setDescription, value: description } = useInput.useText();\r\n const [error, setError] = useState({});\r\n\r\n const onSubmit = (e) => {\r\n e.preventDefault();\r\n const form = {\r\n description: description\r\n };\r\n const constrains = {\r\n description: {\r\n presence: {\r\n allowEmpty: false\r\n }\r\n }\r\n };\r\n\r\n const result = validate(form, constrains);\r\n setError(result ? result : {});\r\n if (!result) {\r\n helpApi.sendHelpEmail(description).then(() => {\r\n dispatch(showModal(AlertModal, {\r\n message: 'Thank you for reporting the issue.',\r\n onOk: () => { setDescription('') }\r\n }));\r\n }).catch(err => {\r\n console.error(err);\r\n const status = err.code;\r\n if (status === 400) {\r\n setError({error: err.data.message});\r\n } else {\r\n setError({error: 'Something went wrong.'});\r\n }\r\n });\r\n }\r\n };\r\n\r\n return { setDescription, description, error, onSubmit };\r\n\r\n};\r\n\r\nexport default {\r\n useForm\r\n};\r\n","import React, { useState } from 'react';\r\nimport { Container, Row, Col, Form, FormGroup, Label, Input, Button } from 'reactstrap';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport useHelpContent from './useHelpContent';\r\n\r\nconst HelpContent = () => {\r\n\r\n const { setDescription, description, error, onSubmit } = useHelpContent.useForm();\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n
How can I help?
\r\n
\r\n \r\n \r\n \r\n
{error.description ? error.description[0] : ''}
\r\n
{error.error ? error.error : ''}
\r\n
\r\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 HelpContent;\r\n","import React from 'react';\r\nimport { Switch, Route, Redirect } from 'react-router-dom';\r\nimport { Container } from 'reactstrap';\r\nimport Header from '../../../../SharedComponents/Header/Header';\r\nimport HelpContent from './HelpContent/HelpContent';\r\nimport './Help.scss';\r\n\r\nconst Help = () => {\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Help;\r\n","import axios from 'axios';\r\n\r\nconst getDistributors = () => {\r\n return axios.get('merchant-accounting/get-distributors');\r\n};\r\n\r\nconst getSuppliers = () => {\r\n return axios.get('merchant-accounting-supplier');\r\n};\r\n\r\nconst getCategories = () => {\r\n return axios.get('merchant-accounting-category');\r\n};\r\n\r\nconst getGlCodes = () => {\r\n return axios.get('merchant-accounting-gl-code');\r\n};\r\n\r\nconst getTemplate = (filters) => {\r\n return axios.get('merchant-accounting/download-template');\r\n};\r\n\r\nconst getItems = (filterOptions, page = 1) => {\r\n const params = {\r\n filterOptions: JSON.stringify(filterOptions),\r\n page\r\n };\r\n return axios.get('merchant-accounting', {params});\r\n};\r\n\r\nconst updateDistributorPayableTerms = (distributorId, payableTerms) => {\r\n return axios.patch(`merchant-accounting/${distributorId}/update-payable-terms`, {terms: payableTerms});\r\n}\r\n\r\nconst addMerchantAccounting = (params) => {\r\n return axios.post('merchant-accounting', params);\r\n};\r\n\r\nconst updateMerchantAccounting = (id, params) => {\r\n return axios.patch(`merchant-accounting/${id}`, params);\r\n};\r\n\r\nconst addSupplier = (name) => {\r\n return axios.post('merchant-accounting-supplier', {name});\r\n};\r\n\r\nconst addCategory = (name) => {\r\n return axios.post('merchant-accounting-category', {name});\r\n};\r\n\r\nconst addGlCode = (code) => {\r\n return axios.post('merchant-accounting-gl-code', {code});\r\n};\r\n\r\nconst downloadOrderQuickbooks = (startDate, endDate) => {\r\n const params = {\r\n startDate,\r\n endDate\r\n };\r\n return axios.get('orders/download-order-quickbooks', {params});\r\n};\r\n\r\nconst uploadFile = (file) => {\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n return axios.post('merchant-accounting/upload', formData, { headers: { 'Content-Type': 'multipart/form-data' } });\r\n};\r\n\r\nexport default {\r\n getDistributors,\r\n getSuppliers,\r\n getCategories,\r\n getGlCodes,\r\n getTemplate,\r\n getItems,\r\n updateDistributorPayableTerms,\r\n addMerchantAccounting,\r\n updateMerchantAccounting,\r\n addSupplier,\r\n addCategory,\r\n addGlCode,\r\n downloadOrderQuickbooks,\r\n uploadFile,\r\n};\r\n","import React, { useState, useEffect, useLayoutEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { Container, Row, Col, Card, Nav, NavItem, NavLink, TabContent, TabPane, Input } from 'reactstrap';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { MdEdit } from 'react-icons/md';\r\nimport CreatableSelect from 'react-select/creatable';\r\nimport numeral from 'numeral';\r\nimport qs from 'query-string';\r\nimport * as $ from 'jquery';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport noImage from '../../../../../assets/images/no-image.png';\r\nimport searchBox from '../../../../../assets/images/search-box.png';\r\nimport accountingApi from '../../../../../api/accountingApi';\r\n\r\nconst ItemsAndDistributors = () => {\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const filters = useSelector(({items}) => items.list.filters);\r\n\r\n const [tab, setTab] = useState('items');\r\n\r\n const [distributors, setDistributors] = useState([]);\r\n const [suppliers, setSuppliers] = useState([]);\r\n const [categories, setCategories] = useState([]);\r\n const [codes, setCodes] = useState([]);\r\n\r\n const [items, setItems] = useState([]);\r\n const [page, setPage] = useState(1);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [loadMore, setLoadMore] = useState(false);\r\n\r\n const urlObj = qs.parseUrl(history.location.search);\r\n let search = urlObj && urlObj.query && urlObj.query.query;\r\n\r\n const getDistributors = () => {\r\n accountingApi.getDistributors()\r\n .then(({data}) => {\r\n setDistributors(data.map((distributor) => {\r\n distributor.editTermsMode = false;\r\n if (!distributor.payableTerms) {\r\n distributor.payableTerms = '';\r\n }\r\n return distributor;\r\n }));\r\n })\r\n .catch(error => console.log('accountingApi getDistributors Error:', error));\r\n };\r\n\r\n const getSuppliers = () => {\r\n accountingApi.getSuppliers()\r\n .then(({data}) => {\r\n data.unshift({id:null, name:'-- None --'});\r\n setSuppliers(data.map((supplier) => {\r\n supplier.name = '' + supplier.name;\r\n return supplier;\r\n }));\r\n })\r\n .catch(error => console.log('accountingApi getSuppliers Error:', error));\r\n };\r\n\r\n const getCategories = () => {\r\n accountingApi.getCategories()\r\n .then(({data}) => {\r\n data.unshift({id:null, name:'-- None --'});\r\n setCategories(data.map((category) => {\r\n category.name = '' + category.name;\r\n return category;\r\n }));\r\n })\r\n .catch(error => console.log('accountingApi getCategories Error:', error));\r\n };\r\n\r\n const getGlCodes = () => {\r\n accountingApi.getGlCodes()\r\n .then(({data}) => {\r\n data.unshift({id:null, code:'-- None --'});\r\n setCodes(data.map((code) => {\r\n code.code = '' + code.code;\r\n return code;\r\n }));\r\n })\r\n .catch(error => console.log('accountingApi getGlCodes Error:', error));\r\n };\r\n\r\n const getItems = (newPage) => {\r\n if (isLoading) return;\r\n\r\n let filterOptions = {\r\n sort: {\r\n id: 5,\r\n name: 'frequent',\r\n type: 1,\r\n desc: 'Most Purchased'\r\n },\r\n product: 'ALL'\r\n };\r\n\r\n filterOptions = search ? {search, ...filterOptions, ...filters} : {...filterOptions, ...filters};\r\n\r\n setIsLoading(true);\r\n setPage(newPage);\r\n accountingApi.getItems(filterOptions, newPage).then(res => {\r\n if (newPage > 1) {\r\n setItems(items.concat(res.data));\r\n } else {\r\n setItems(res.data);\r\n }\r\n setLoadMore(res._meta.pageCount > res._meta.currentPage);\r\n setIsLoading(false);\r\n })\r\n .catch(error => console.log('accountingApi getItems Error:', error));\r\n };\r\n\r\n const editTerms = (i, distributor) => {\r\n setDistributors(distributors.map((currentDistributor, j) => {\r\n if (i == j) {\r\n currentDistributor.editTermsMode = true;\r\n } else {\r\n currentDistributor.editTermsMode = false;\r\n }\r\n return currentDistributor;\r\n }));\r\n };\r\n\r\n useLayoutEffect(() => {\r\n distributors.forEach((currentDistributor) => {\r\n if (currentDistributor.editTermsMode === true) {\r\n $('#terms-'+currentDistributor.id).focus();\r\n }\r\n });\r\n }, [distributors]);\r\n\r\n const setPayableTerms = (evt, i, distributor) => {\r\n let newValue;\r\n if (evt && evt.currentTarget) {\r\n newValue = evt.currentTarget.value ? evt.currentTarget.value : '';\r\n } else {\r\n newValue = evt ? evt : '';\r\n }\r\n setDistributors(distributors.map((currentDistributor, j) => {\r\n if (i == j) {\r\n currentDistributor.payableTerms = newValue;\r\n }\r\n return currentDistributor;\r\n }));\r\n };\r\n\r\n const updateTerms = (i, distributor) => {\r\n if (!distributor.payableTerms || !Number(distributor.payableTerms)) {\r\n return;\r\n }\r\n accountingApi.updateDistributorPayableTerms(distributor.id, distributor.payableTerms).then(res => {\r\n setDistributors(distributors.map((currentDistributor, j) => {\r\n currentDistributor.editTermsMode = false;\r\n return currentDistributor;\r\n }));\r\n })\r\n .catch(error => console.log('accountingApi updateDistributorPayableTerms Error:', error));\r\n };\r\n\r\n //Supplier\r\n const editSupplier = (i, item) => {\r\n setItems(items.map((currentItem, j) => {\r\n if (i == j) {\r\n currentItem.editSupplierMode = true;\r\n } else {\r\n currentItem.editSupplierMode = false;\r\n }\r\n currentItem.editCategoryMode = false;\r\n currentItem.editCodeMode = false;\r\n return currentItem;\r\n }));\r\n };\r\n\r\n // useLayoutEffect(() => {\r\n // items.forEach((currentItem) => {\r\n // if (currentItem.editSupplierMode === true) {\r\n // $('#code-'+currentItem.id).focus();\r\n // }\r\n // });\r\n // }, [items]);\r\n\r\n const updateSupplier = (evt, i, item) => {\r\n // if (!item.id) {\r\n // return;\r\n // }\r\n\r\n const supplier = suppliers.find(supplier => supplier.name == evt.value);\r\n if (!supplier) {\r\n return;\r\n }\r\n\r\n if (item.accountingId) {\r\n const params = {\r\n merchant_accounting_supplier_id: supplier.id,\r\n item_distributor_id: item.itemDistributorId\r\n };\r\n accountingApi.updateMerchantAccounting(item.accountingId, params).then(res => {\r\n setItems(items.map((currentItem, j) => {\r\n currentItem.editSupplierMode = false;\r\n if (i == j) {\r\n currentItem.accountingSupplier = supplier.name;\r\n }\r\n return currentItem;\r\n }));\r\n })\r\n .catch(error => console.log('accountingApi updateMerchantAccounting Error:', error));\r\n } else {\r\n const params = {\r\n merchant_accounting_supplier_id: supplier.id,\r\n item_distributor_id: item.itemDistributorId\r\n };\r\n accountingApi.addMerchantAccounting(params).then(({data}) => {\r\n setItems(items.map((currentItem, j) => {\r\n currentItem.editSupplierMode = false;\r\n if (i == j) {\r\n currentItem.accountingId = data.id;\r\n currentItem.accountingSupplier = supplier.name;\r\n }\r\n return currentItem;\r\n }));\r\n })\r\n .catch(error => console.log('accountingApi addMerchantAccounting Error:', error));\r\n }\r\n\r\n };\r\n\r\n const addSupplier = (text, i, item) => {\r\n if (text.trim().length === 0) {\r\n return;\r\n }\r\n\r\n const name = text.trim();\r\n const exists = suppliers.some((supplier) => {\r\n return supplier.name.toLowerCase() == name.toLowerCase();\r\n });\r\n\r\n if (exists) {\r\n return;\r\n }\r\n\r\n accountingApi.addSupplier(name).then(({data}) => {\r\n data.name = '' + data.name;\r\n setSuppliers([...suppliers, data]);\r\n\r\n if (item.accountingId) {\r\n const params = {\r\n merchant_accounting_supplier_id: data.id,\r\n item_distributor_id: item.itemDistributorId\r\n };\r\n accountingApi.updateMerchantAccounting(item.accountingId, params).then(res => {\r\n setItems(items.map((currentItem, j) => {\r\n currentItem.editSupplierMode = false;\r\n currentItem.editCategoryMode = false;\r\n currentItem.editCodeMode = false;\r\n if (i == j) {\r\n currentItem.accountingSupplier = data.name;\r\n }\r\n return currentItem;\r\n }));\r\n })\r\n .catch(error => console.log('accountingApi updateMerchantAccounting Error:', error));\r\n } else {\r\n const params = {\r\n merchant_accounting_supplier_id: data.id,\r\n item_distributor_id: item.itemDistributorId\r\n };\r\n accountingApi.addMerchantAccounting(params).then((res) => {\r\n setItems(items.map((currentItem, j) => {\r\n currentItem.editSupplierMode = false;\r\n currentItem.editCategoryMode = false;\r\n currentItem.editCodeMode = false;\r\n if (i == j) {\r\n currentItem.accountingId = data.id;\r\n currentItem.accountingSupplier = data.name;\r\n }\r\n return currentItem;\r\n }));\r\n })\r\n .catch(error => console.log('accountingApi addMerchantAccounting Error:', error));\r\n }\r\n\r\n })\r\n .catch(error => console.log('accountingApi addSupplier Error:', error));\r\n\r\n };\r\n\r\n //GL Code\r\n const editCode = (i, item) => {\r\n setItems(items.map((currentItem, j) => {\r\n if (i == j) {\r\n currentItem.editCodeMode = true;\r\n } else {\r\n currentItem.editCodeMode = false;\r\n }\r\n currentItem.editSupplierMode = false;\r\n currentItem.editCategoryMode = false;\r\n return currentItem;\r\n }));\r\n };\r\n\r\n // useLayoutEffect(() => {\r\n // items.forEach((currentItem) => {\r\n // if (currentItem.editCodeMode === true) {\r\n // $('#code-'+currentItem.id).focus();\r\n // }\r\n // });\r\n // }, [items]);\r\n\r\n const updateCode = (evt, i, item) => {\r\n // if (!item.id) {\r\n // return;\r\n // }\r\n\r\n const code = codes.find(code => code.code == evt.value);\r\n if (!code) {\r\n return;\r\n }\r\n\r\n if (item.accountingId) {\r\n const params = {\r\n merchant_accounting_gl_code_id: code.id,\r\n item_distributor_id: item.itemDistributorId\r\n };\r\n accountingApi.updateMerchantAccounting(item.accountingId, params).then(res => {\r\n setItems(items.map((currentItem, j) => {\r\n currentItem.editCodeMode = false;\r\n if (i == j) {\r\n currentItem.accountingCode = code.code;\r\n }\r\n return currentItem;\r\n }));\r\n })\r\n .catch(error => console.log('accountingApi updateMerchantAccounting Error:', error));\r\n } else {\r\n const params = {\r\n merchant_accounting_gl_code_id: code.id,\r\n item_distributor_id: item.itemDistributorId\r\n };\r\n accountingApi.addMerchantAccounting(params).then(({data}) => {\r\n setItems(items.map((currentItem, j) => {\r\n currentItem.editCodeMode = false;\r\n if (i == j) {\r\n currentItem.accountingId = data.id;\r\n currentItem.accountingCode = code.code;\r\n }\r\n return currentItem;\r\n }));\r\n })\r\n .catch(error => console.log('accountingApi addMerchantAccounting Error:', error));\r\n }\r\n\r\n };\r\n\r\n const addCode = (text, i, item) => {\r\n if (text.trim().length === 0) {\r\n return;\r\n }\r\n\r\n const name = text.trim();\r\n const exists = codes.some((code) => {\r\n return code.code.toLowerCase() == name.toLowerCase();\r\n });\r\n\r\n if (exists) {\r\n return;\r\n }\r\n\r\n accountingApi.addGlCode(name).then(({data}) => {\r\n data.code = '' + data.code;\r\n setCodes([...codes, data]);\r\n\r\n if (item.accountingId) {\r\n const params = {\r\n merchant_accounting_gl_code_id: data.id,\r\n item_distributor_id: item.itemDistributorId\r\n };\r\n accountingApi.updateMerchantAccounting(item.accountingId, params).then(res => {\r\n setItems(items.map((currentItem, j) => {\r\n currentItem.editSupplierMode = false;\r\n currentItem.editCategoryMode = false;\r\n currentItem.editCodeMode = false;\r\n if (i == j) {\r\n currentItem.accountingCode = data.code;\r\n }\r\n return currentItem;\r\n }));\r\n })\r\n .catch(error => console.log('accountingApi updateMerchantAccounting Error:', error));\r\n } else {\r\n const params = {\r\n merchant_accounting_gl_code_id: data.id,\r\n item_distributor_id: item.itemDistributorId\r\n };\r\n accountingApi.addMerchantAccounting(params).then(({data}) => {\r\n setItems(items.map((currentItem, j) => {\r\n currentItem.editSupplierMode = false;\r\n currentItem.editCategoryMode = false;\r\n currentItem.editCodeMode = false;\r\n if (i == j) {\r\n currentItem.accountingId = data.id;\r\n currentItem.accountingCode = data.code;\r\n }\r\n return currentItem;\r\n }));\r\n })\r\n .catch(error => console.log('accountingApi addMerchantAccounting Error:', error));\r\n }\r\n })\r\n .catch(error => console.log('accountingApi addGlCode Error:', error));\r\n\r\n };\r\n\r\n //Category\r\n const editCategory = (i, item) => {\r\n setItems(items.map((currentItem, j) => {\r\n if (i == j) {\r\n currentItem.editCategoryMode = true;\r\n } else {\r\n currentItem.editCategoryMode = false;\r\n }\r\n currentItem.editSupplierMode = false;\r\n currentItem.editCodeMode = false;\r\n return currentItem;\r\n }));\r\n };\r\n\r\n // useLayoutEffect(() => {\r\n // items.forEach((currentItem) => {\r\n // if (currentItem.editCategoryMode === true) {\r\n // $('#code-'+currentItem.id).focus();\r\n // }\r\n // });\r\n // }, [items]);\r\n\r\n const updateCategory = (evt, i, item) => {\r\n // if (!item.id) {\r\n // return;\r\n // }\r\n\r\n const category = categories.find(category => category.name == evt.value);\r\n if (!category) {\r\n return;\r\n }\r\n\r\n if (item.accountingId) {\r\n const params = {\r\n merchant_accounting_category_id: category.id,\r\n item_distributor_id: item.itemDistributorId\r\n };\r\n accountingApi.updateMerchantAccounting(item.accountingId, params).then(res => {\r\n setItems(items.map((currentItem, j) => {\r\n currentItem.editCategoryMode = false;\r\n if (i == j) {\r\n currentItem.accountingCategory = category.name;\r\n }\r\n return currentItem;\r\n }));\r\n })\r\n .catch(error => console.log('accountingApi updateMerchantAccounting Error:', error));\r\n } else {\r\n const params = {\r\n merchant_accounting_category_id: category.id,\r\n item_distributor_id: item.itemDistributorId\r\n };\r\n accountingApi.addMerchantAccounting(params).then(({data}) => {\r\n setItems(items.map((currentItem, j) => {\r\n currentItem.editCategoryMode = false;\r\n if (i == j) {\r\n currentItem.accountingId = data.id;\r\n currentItem.accountingCategory = category.name;\r\n }\r\n return currentItem;\r\n }));\r\n })\r\n .catch(error => console.log('accountingApi addMerchantAccounting Error:', error));\r\n }\r\n\r\n };\r\n\r\n const addCategory = (text, i, item) => {\r\n if (text.trim().length === 0) {\r\n return;\r\n }\r\n\r\n const name = text.trim();\r\n const exists = categories.some((category) => {\r\n return category.name.toLowerCase() == name.toLowerCase();\r\n });\r\n\r\n if (exists) {\r\n return;\r\n }\r\n\r\n accountingApi.addCategory(name).then(({data}) => {\r\n data.name = '' + data.name;\r\n setCategories([...categories, data]);\r\n\r\n if (item.accountingId) {\r\n const params = {\r\n merchant_accounting_category_id: data.id,\r\n item_distributor_id: item.itemDistributorId\r\n };\r\n accountingApi.updateMerchantAccounting(item.accountingId, params).then(res => {\r\n setItems(items.map((currentItem, j) => {\r\n currentItem.editSupplierMode = false;\r\n currentItem.editCategoryMode = false;\r\n currentItem.editCodeMode = false;\r\n if (i == j) {\r\n currentItem.accountingCategory = data.name;\r\n }\r\n return currentItem;\r\n }));\r\n })\r\n .catch(error => console.log('accountingApi updateMerchantAccounting Error:', error));\r\n } else {\r\n const params = {\r\n merchant_accounting_category_id: data.id,\r\n item_distributor_id: item.itemDistributorId\r\n };\r\n accountingApi.addMerchantAccounting(params).then(({data}) => {\r\n setItems(items.map((currentItem, j) => {\r\n currentItem.editSupplierMode = false;\r\n currentItem.editCategoryMode = false;\r\n currentItem.editCodeMode = false;\r\n if (i == j) {\r\n currentItem.accountingId = data.id;\r\n currentItem.accountingCategory = data.name;\r\n }\r\n return currentItem;\r\n }));\r\n })\r\n .catch(error => console.log('accountingApi addMerchantAccounting Error:', error));\r\n }\r\n })\r\n .catch(error => console.log('accountingApi addCategory Error:', error));\r\n\r\n };\r\n\r\n const scrollListener = () => {\r\n if (tab == 'distributors') {\r\n return;\r\n }\r\n\r\n const threshold = 600;\r\n if (window.innerHeight + document.documentElement.scrollTop + threshold >= document.documentElement.offsetHeight\r\n && loadMore && !isLoading) {\r\n getItems(page+1);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n window.addEventListener('mousewheel', scrollListener);\r\n window.addEventListener('scroll', scrollListener);\r\n window.addEventListener('resize', scrollListener);\r\n\r\n return () => {\r\n window.removeEventListener('mousewheel', scrollListener);\r\n window.removeEventListener('scroll', scrollListener);\r\n window.removeEventListener('resize', scrollListener);\r\n };\r\n }, [tab, page, loadMore, isLoading]);\r\n\r\n useEffect(() => {\r\n getItems(1);\r\n getDistributors();\r\n getSuppliers();\r\n getCategories();\r\n getGlCodes();\r\n }, []);\r\n\r\n useEffect(() => {\r\n getItems(1);\r\n }, [history.location.search, filters]);\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Description\r\n Brand\r\n Distributor\r\n Price\r\n UOM\r\n Supplier\r\n Category\r\n GL Code\r\n \r\n\r\n {\r\n items.map((item, index) => {\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
{item.name}
\r\n
{item.description}
\r\n \r\n {item.din || ' '} \r\n \r\n \r\n \r\n
{item.brand || ''}
\r\n \r\n \r\n
{item.distributor ||''}
\r\n \r\n \r\n \r\n
\r\n {numeral(item.price).format('$0,0.00')} {item.unitMeasure}\r\n
\r\n
\r\n \r\n
\r\n MKT   {item.unitMeasure}\r\n
\r\n
\r\n \r\n
\r\n {numeral(item.price).format('$0,0.00')} {item.packSizeUom}\r\n (~ {numeral(item.price).format('$0,0.00')} {item.unitMeasure})\r\n
\r\n
\r\n \r\n
\r\n \r\n ({numeral(item.price).format('$0,0.00')} {item.unitMeasure})\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n {item.packSize || ''}\r\n
\r\n
\r\n {item.packSize || ''}\r\n
\r\n
\r\n {item.packSize || ''}\r\n
\r\n \r\n \r\n \r\n
\r\n editSupplier(index, item)} />\r\n {item.accountingSupplier || ''}\r\n
\r\n
\r\n \r\n updateSupplier(evt, index, item)}\r\n onCreateOption={(text) => addSupplier(text, index, item)}\r\n options={suppliers.map((supplier) => {return {label: supplier.name, value: supplier.name}})}\r\n value={item.accountingSupplier}\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n editCategory(index, item)} />\r\n {item.accountingCategory || ''}\r\n
\r\n
\r\n \r\n updateCategory(evt, index, item)}\r\n onCreateOption={(text) => addCategory(text, index, item)}\r\n options={categories.map((category) => {return {label: category.name, value: category.name}})}\r\n value={item.accountingCategory}\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n editCode(index, item)} />\r\n {item.accountingCode || ''}\r\n
\r\n
\r\n \r\n updateCode(evt, index, item)}\r\n onCreateOption={(text) => addCode(text, index, item)}\r\n options={codes.map((code) => {return {label: code.code, value: code.code}})}\r\n value={item.accountingCode}\r\n />\r\n \r\n \r\n
\r\n
\r\n );\r\n })\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n

Sorry, there are no exact match results found

\r\n

Search Suggestions

\r\n
    \r\n
  • Check your spelling
  • \r\n
  • Try to use less specific words
  • \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n Name\r\n Payable Terms\r\n \r\n
\r\n {\r\n distributors.map((distributor, index) => {\r\n return (\r\n \r\n \r\n \r\n
{distributor.nickname}
\r\n \r\n \r\n \r\n
\r\n {(distributor.payableTerms ? distributor.payableTerms + ' days' : '')}\r\n editTerms(index, distributor)} />\r\n
\r\n
\r\n \r\n
\r\n setPayableTerms(evt, index, distributor)} onBlur={() => updateTerms(index, distributor)} />\r\n
\r\n
\r\n \r\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 ItemsAndDistributors;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Row, Col, Button } from 'reactstrap';\r\nimport { MdDelete } from 'react-icons/md';\r\nimport { FaExclamationCircle, FaCheckCircle } from 'react-icons/fa';\r\nimport { colors } from '../../../../../config/constants'\r\nimport useModal from '../../../../../SharedComponents/Modals/useModal';\r\nimport AlertModal from '../../../../../SharedComponents/Modals/AlertModal/AlertModal';\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport accountingApi from '../../../../../api/accountingApi';\r\nimport * as $ from 'jquery';\r\n\r\nconst BulkUploadModal = (props) => {\r\n const dispatch = useDispatch();\r\n\r\n const [file, setFile] = useState(null);\r\n\r\n const { id } = props;\r\n const modalProps = useModal(id);\r\n\r\n const allowedTypes = [\r\n '',\r\n 'csv',\r\n 'xls',\r\n 'xlsx',\r\n 'text/csv',\r\n 'application/vnd.ms-excel',\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n 'application/vnd.oasis.opendocument.spreadsheet'\r\n ];\r\n const sizeLimit = 24000000;\r\n\r\n const openFileDialog = () => {\r\n $('#img-upload').click();\r\n };\r\n\r\n const selectFile = () => {\r\n const newFile = $('#img-upload').prop('files')[0];\r\n setFile(newFile);\r\n };\r\n\r\n const uploadFile = () => {\r\n if (!file) {\r\n return;\r\n }\r\n accountingApi.uploadFile(file)\r\n .then(res => {\r\n modalProps.toggle();\r\n dispatch(showModal(AlertModal, {\r\n message:
Your file was uploaded successfully.
,\r\n footerClass: 'justify-content-center',\r\n btnLabel: 'Ok',\r\n btnSize: 'lg'\r\n }));\r\n }).catch(error => {console.log('accountingApi uploadFile Error:', error)});\r\n };\r\n\r\n return (\r\n \r\n Bulk Upload\r\n \r\n \r\n \r\n \r\n selectFile()} accept='.csv, .xls, .xlsx, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.oasis.opendocument.spreadsheet' />\r\n
Upload excel or csv file
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {file && file.name} ({file && file.type}) setFile(null)} className='clickable' style={{marginTop: '-2px'}} />\r\n \r\n \r\n \r\n sizeLimit || allowedTypes.indexOf(file.type)==-1)}>\r\n \r\n \r\n \r\n \r\n sizeLimit}>\r\n \r\n File size is too big.\r\n \r\n \r\n \r\n \r\n Please choose another file type.\r\n \r\n \r\n \r\n Not sure which format or file to upload?\r\n \r\n \r\n \r\n Download Template\r\n \r\n \r\n -1}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nBulkUploadModal.defaultProps = {\r\n uploadFileIcon: null,\r\n template: '#',\r\n};\r\n\r\nexport default BulkUploadModal;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport useModal from '../useModal';\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Row, Col, Label, Button } from 'reactstrap';\r\nimport { isMobile } from 'react-device-detect';\r\nimport moment from 'moment';\r\nimport DatePicker from 'react-datepicker';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport accountingApi from '../../../api/accountingApi';\r\nimport downloadWhiteIcon from '../../../assets/images/download-white-icon.png';\r\n\r\nconst DownloadQuickbooksModal = (props) => {\r\n\r\n const { id } = props;\r\n const modalProps = useModal(id);\r\n\r\n const [startDate, setStartDate] = useState(new Date());\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const downloadQuickbooks = () => {\r\n accountingApi.downloadOrderQuickbooks(moment(startDate).format('YYYY-MM-DD'), moment(endDate).format('YYYY-MM-DD'))\r\n .then((res) => {\r\n if (res.data) {\r\n const aElement = document.createElement('a');\r\n aElement.href = res.data;\r\n aElement.click();\r\n }\r\n modalProps.toggle();\r\n })\r\n .catch(error => console.log('accountingApi downloadOrderQuickbooks Error:', error));\r\n };\r\n\r\n return (\r\n \r\n Quickbooks File\r\n \r\n \r\n \r\n \r\n \r\n \r\n setStartDate(date)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setEndDate(date)} />\r\n \r\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 DownloadQuickbooksModal;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Switch, Route, Redirect } from 'react-router-dom';\r\nimport { Container, Button } from 'reactstrap';\r\nimport { useDispatch } from 'react-redux';\r\nimport Header from '../../../../SharedComponents/Header/Header';\r\nimport ItemsAndDistributors from './ItemsAndDistributors/ItemsAndDistributors';\r\nimport './Accounting.scss';\r\nimport { showModal } from '../../../../reducers/modals/modalsActions';\r\nimport BulkUploadModal from './BulkUploadModal/BulkUploadModal';\r\nimport DownloadQuickbooksModal from '../../../../SharedComponents/Modals/DownloadQuickbooksModal/DownloadQuickbooksModal';\r\nimport uploadIcon from '../../../../assets/images/upload-icon.svg';\r\nimport downloadIcon from '../../../../assets/images/download-icon.svg';\r\nimport uploadFileIcon from '../../../../assets/images/upload-file.svg';\r\nimport accountingApi from '../../../../api/accountingApi';\r\n\r\nconst Accounting = () => {\r\n\r\n const dispatch = useDispatch();\r\n\r\n const [template, setTemplate] = useState(null);\r\n\r\n const getTemplate = () => {\r\n accountingApi.getTemplate()\r\n .then(({data}) => {\r\n setTemplate(data);\r\n })\r\n .catch(error => console.log('accountingApi getTemplate Error:', error));\r\n };\r\n\r\n const openBulkUploadModall = (e) => {\r\n e.preventDefault();\r\n dispatch(showModal(BulkUploadModal, {uploadFileIcon, template}));\r\n };\r\n\r\n const openQuickbookModal = (e) => {\r\n e.preventDefault();\r\n dispatch(showModal(DownloadQuickbooksModal, {}));\r\n };\r\n\r\n useEffect(() => {\r\n getTemplate();\r\n }, []);\r\n\r\n const rightButton = {icon: [\r\n ,\r\n ,\r\n ]};\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Accounting;\r\n","import React, { useState, useEffect } from 'react'\r\nimport { Button, Col } from 'reactstrap'\r\nimport './InputCounter.scss';\r\nimport useShoppingCartItem from '../ShoppingCartItem/useShoppingCartItem';\r\nimport PlusButton from '../PlusButton/PlusButton';\r\nimport MinusButton from '../MinusButton/MinusButton';\r\nimport { FaTrash } from 'react-icons/fa';\r\nimport { colors } from '../../config/constants';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { showModal } from '../../reducers/modals/modalsActions';\r\nimport QuestionModal from '../Modals/QuestionModal/QuestionModal';\r\nimport { isMobile } from 'react-device-detect';\r\n\r\nconst InputCounter = (props) => {\r\n const { item, value, unitM, changeValue, indexCart } = props;\r\n const [cant, setCant] = useState(value);\r\n const { updateCartAmount } = useShoppingCartItem.useCartUpdate();\r\n const dispatch = useDispatch();\r\n\r\n const addCant = () => {\r\n let newCant = cant + 1;\r\n // setCant(newCant);\r\n updateCart(newCant);\r\n }\r\n\r\n const removeCant = () => {\r\n if (cant > 1) {\r\n let newCant = cant - 1;\r\n // setCant(newCant)\r\n updateCart(newCant);\r\n\r\n }\r\n }\r\n\r\n const resetCant = () => {\r\n const qProps = {\r\n message: `Are you sure you want to remove this item?`,\r\n menu: isMobile ? true : false,\r\n leftButton: {\r\n title: 'Delete',\r\n color: 'orange',\r\n onClick: () => updateCart(0)\r\n },\r\n rightButton: {\r\n title: 'Cancel',\r\n color: 'green',\r\n // onClick: () => goBack()\r\n }\r\n };\r\n dispatch(showModal(QuestionModal, qProps));\r\n\r\n }\r\n\r\n const updateCart = (newCaseQuantity) => {\r\n if (item.itemDistributorId !== null) {\r\n const nitem = {\r\n quantity: newCaseQuantity,\r\n status: item.status,\r\n isPunchedOut: item.isPunchedOut,\r\n isUnpurchasable: item.isUnpurchasable,\r\n description: item.name ? item.name : item.description,\r\n itemDistributorId: item.itemDistributorId,\r\n shoppingCartId: item.shoppingCartId\r\n };\r\n updateCartAmount(newCaseQuantity, nitem, setCant, cant);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n // setTimeout(() => {\r\n changeValue(cant, indexCart);\r\n // }, 1000);\r\n }, [cant])\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n

{cant} {unitM}

\r\n \r\n\r\n \r\n\r\n )\r\n}\r\n\r\nexport default InputCounter;\r\n","import React, { useState } from 'react'\r\nimport './IconBadge.scss';\r\nimport { Tooltip } from 'reactstrap';\r\n\r\n\r\nconst IconBadge = (props) => {\r\n const { FaIcon, text, color, size, idPop } = props;\r\n const [popoverOpen, setPopoverOpen] = useState(false);\r\n\r\n const toggle = () => {\r\n setPopoverOpen(!popoverOpen);\r\n }\r\n\r\n setTimeout(() => {\r\n // setPopoverOpen(!popoverOpen);\r\n\r\n }, 20000);\r\n\r\n return (\r\n
\r\n \r\n\r\n {text ?\r\n {text}\r\n \r\n : ''\r\n }\r\n\r\n
\r\n\r\n )\r\n}\r\n\r\n\r\nexport default IconBadge;\r\n","import React from 'react'\r\nimport { Row, Col, Card, Button, CardHeader, CardBody } from 'reactstrap'\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { colors } from '../../../../../config/constants';\r\nimport IconBadge from '../../../../../SharedComponents/IconBadge/IconBadge';\r\nimport { FaQuestion } from 'react-icons/fa';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst ReviewOrderCard = (props) => {\r\n const { special, priceTotal, lineItems, totalItems, distributorName, checkout } = props;\r\n const canPlaceOrder = useSelector(({user}) => user.activeLocation.canPlaceOrder) ? true : false;\r\n const texts = {\r\n totalSaving: `All the savings you've made with Foodbam on this order!`,\r\n lineItems: `Excluding Special Request Items!`\r\n }\r\n\r\n return (\r\n \r\n \r\n {distributorName ? distributorName : '..'}\r\n {priceTotal}\r\n \r\n \r\n

SUMMARY

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

Total Savings

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

$0.00

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

Line Items

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

{lineItems}

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

Items

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

{totalItems}

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

\r\n {distributorName ? distributorName : '..'} Sub Total

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

{priceTotal}

\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n Do you have a promocode?\r\n \r\n \r\n \r\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 ReviewOrderCard;","import React, { useState, useEffect } from 'react'\r\nimport distributorsApi from '../../../../../api/distributorsApi';\r\nimport ordersApi from '../../../../../api/ordersApi';\r\n\r\nimport useShoppingCartItem from '../../../../../SharedComponents/ShoppingCartItem/useShoppingCartItem';\r\nimport moment from 'moment';\r\n\r\n\r\nconst useDataForDistributor = (distributorId) => {\r\n const [dataDistributor, setDataDistributor] = useState();\r\n\r\n const getData = () => {\r\n\r\n distributorsApi.getById(distributorId)\r\n .then(res => {\r\n res.data = {\r\n ...res.data,\r\n isFoodbamDelivery: res.data.isDelivery === 1 ? true : false,\r\n deliveryDates: res.data.deliveryDates.map(dt => {\r\n if (String(dt).indexOf('Today') == 0) {\r\n var d = new Date();\r\n dt = `Today, ${moment(d).format('MM/DD/YYYY')}`;\r\n } else {\r\n dt = `${moment(dt).format('dddd')}, ${moment(dt).format('MM/DD/YYYY')} `;\r\n }\r\n return dt;\r\n })\r\n };\r\n setDataDistributor(res.data);\r\n })\r\n .catch(error => console.log(error));\r\n\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [distributorId])\r\n\r\n return {\r\n dataDistributor\r\n };\r\n}\r\n\r\nconst useUpdateCart = () => {\r\n const { updateCartAmount } = useShoppingCartItem.useCartUpdate();\r\n\r\n const useUpdateCartAmount = (newCaseQuantity, item) => {\r\n const nitem = {\r\n quantity: newCaseQuantity,\r\n status: item.status,\r\n isPunchedOut: item.isPunchedOut,\r\n isUnpurchasable: item.isUnpurchasable,\r\n description: item.name ? item.name : item.description,\r\n itemDistributorId: item.itemDistributorId,\r\n shoppingCartId: item.shoppingCartId\r\n };\r\n updateCartAmount(newCaseQuantity, nitem, null);\r\n }\r\n\r\n return { useUpdateCartAmount }\r\n}\r\n\r\nconst useOrdersApi = () => {\r\n const transformDate = (date) => {\r\n let newDate = date.split(',')[1].trim().split('/');\r\n // 06/15/2020\r\n return newDate[2] + '-' + newDate[0] + '-' + newDate[1];\r\n }\r\n const useSaveOrder = async (valuesCheckout) => {\r\n\r\n const params = {\r\n payment_token: valuesCheckout.paymentMethod.type == 'credit_card'\r\n ? valuesCheckout.paymentMethod.card.token\r\n : null,\r\n paymentType: valuesCheckout.paymentMethod.type,\r\n requestedDeliveryDate: transformDate(valuesCheckout.deliveryDetail.valueDeliveryDate),\r\n distributorId: valuesCheckout.dataDistributor.id,\r\n itemList: JSON.stringify(valuesCheckout.cartList.map(res => {\r\n res['quantity'] = res.caseQuantity;\r\n return res;\r\n })),\r\n isSameDayDeliveryFee: false, //falta\r\n notes: valuesCheckout.deliveryDetail.valueNote,\r\n foodbamPrice: valuesCheckout.priceTotalCard.priceReal,\r\n requestedDeliveryTime: valuesCheckout.deliveryDetail.valueDeliveryTime,\r\n skipOrderMinimum: false, //falta\r\n timezone: \"\"\r\n }\r\n\r\n let res = await ordersApi.post(params);\r\n return res\r\n };\r\n return { useSaveOrder }\r\n\r\n}\r\n\r\nconst useValuesReviewOrder = () => {\r\n\r\n const useShowCard = (valuesCheckout) => {\r\n\r\n const acceptCC = valuesCheckout.dataDistributor.acceptCC;\r\n\r\n const isOnlySpecialLength = valuesCheckout.cartList.filter(res => res.isSpecialItem).length;\r\n const isOnlyMktPriceLength = valuesCheckout.cartList.filter(res => res.isMarketPrice == 1).length;\r\n const isOnlySpecialItems = isOnlySpecialLength == valuesCheckout.cartList.length ? true : false;\r\n const isOnlyMktPrice = isOnlyMktPriceLength == valuesCheckout.cartList.length ? true : false;\r\n const isOnlyMktSplLength = isOnlySpecialLength + isOnlyMktPriceLength;\r\n const isOnlyMktSplItem = isOnlyMktSplLength == valuesCheckout.cartList.length ? true : false;\r\n\r\n if (\r\n (acceptCC == 1 || acceptCC == 2) &&\r\n !isOnlySpecialItems &&\r\n !isOnlyMktPrice &&\r\n !isOnlyMktSplItem\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const useOptionsDeliveryTime = (valueDelDate, idDistributor) => {\r\n\r\n let options = [];\r\n if (idDistributor == 531 || idDistributor == 558) {\r\n options.push(\r\n { value: '9am-1pm', label: '9am-1pm' },\r\n { value: '1pm-5pm', label: '1pm-5pm' }\r\n );\r\n } else if (idDistributor !== 531 && idDistributor !== 558) {\r\n options.push(\r\n { value: '8am-11am', label: '8am-11am' },\r\n { value: '11am-2pm', label: '11am-2pm' }\r\n )\r\n };\r\n\r\n if (\r\n (idDistributor !== 531 && idDistributor !== 558) &&\r\n valueDelDate.indexOf('Saturday') < 0 &&\r\n valueDelDate.indexOf('Sunday') < 0\r\n ) {\r\n options.push(\r\n { value: '2pm-5pm', label: '2pm-5pm' }\r\n )\r\n };\r\n return options;\r\n }\r\n\r\n const useValShowDelTime = (valueDelDate, isFoodbamDelivery) => {\r\n if (valueDelDate &&\r\n valueDelDate.indexOf('Today') < 0 &&\r\n isFoodbamDelivery) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n return { useShowCard, useOptionsDeliveryTime, useValShowDelTime }\r\n\r\n\r\n}\r\nexport default {\r\n useDataForDistributor, useUpdateCart, useOrdersApi, useValuesReviewOrder\r\n}\r\n","export const setValuesForCheckout = (list) => {\r\n return {\r\n type: 'SET_VALUES_CHECKOUT',\r\n payload: list\r\n }\r\n};\r\n","import React from 'react';\r\nimport { Modal, ModalBody, ModalFooter, Button, ModalHeader } from 'reactstrap';\r\nimport useModal from '../useModal';\r\nimport './SimpleModal.scss'\r\nimport { isMobile } from \"react-device-detect\";\r\n\r\nconst SimpleModal = (props) => {\r\n const { id,header, message, onOk } = props;\r\n const modalprops = useModal(id);\r\n\r\n const onClickOk = () => {\r\n if (onOk) {\r\n onOk();\r\n };\r\n modalprops.toggle();\r\n };\r\n\r\n return (\r\n \r\n \r\n {header}\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 SimpleModal;\r\n\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport useModal from '../useModal';\r\nimport { Modal, ModalBody, ModalHeader, Row, Col, Input, ModalFooter, Button } from 'reactstrap';\r\nimport useInput from '../../SharedEffects/useInput';\r\nimport { isMobile } from 'react-device-detect';\r\nimport MinusButton from '../../MinusButton/MinusButton';\r\nimport PlusButton from '../../PlusButton/PlusButton';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\n\r\nconst NoteModal = (props) => {\r\n\r\n const { id, onSave, menu, defaultValue, buttonTitle, title } = props;\r\n const modalProps = useModal(id, menu);\r\n const [note, setNote] = useState(defaultValue);\r\n const clickSave = () => {\r\n if (onSave) onSave(note);\r\n modalProps.toggle();\r\n };\r\n\r\n const styleH1 = {\r\n fontSize: 15,\r\n padding: '0px 24px',\r\n textAlign: 'center',\r\n color: '#143357'\r\n };\r\n const styleInput = {\r\n margin: '15px 14px 0px',\r\n height: '200px'\r\n };\r\n\r\n const clearText = () => {\r\n setNote('');\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n

Add your delivery note here e.g. Back door not between 11 am and 1 pm

\r\n setNote(e.target.value)} style={styleInput} placeholder='Add your notes here . . ' >\r\n
\r\n
\r\n \r\n \r\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 NoteModal;","import React, { useState, useEffect, Fragment } from 'react';\r\nimport { Modal, ModalBody, ModalHeader, Row, Col, Input, ModalFooter, Button, NavLink } from 'reactstrap';\r\nimport useModal from '../../../../../SharedComponents/Modals/useModal';\r\nimport { cardIconHandler } from '../../ManageCards/cardIconHandler';\r\nconst ShippingAndPaymentCardModal = (props) => {\r\n\r\n const { id, listCard, onSave } = props;\r\n\r\n const modalProps = useModal(id);\r\n\r\n\r\n const onClickOk = (card) => {\r\n if (onSave) onSave(card);\r\n modalProps.toggle();\r\n };\r\n\r\n return (\r\n \r\n Select Credit Card\r\n \r\n {\r\n listCard.map(card => {\r\n return (\r\n onClickOk(card)} key={'checkCardM-' + card.token} >\r\n \r\n \r\n \r\n \r\n

{card.last4}

\r\n \r\n \r\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 ShippingAndPaymentCardModal;","import React, { useState, useEffect } from 'react';\r\nimport { Modal, ModalBody, ModalHeader, Row, Col, Button, NavLink } from 'reactstrap';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport useModal from '../../../../../SharedComponents/Modals/useModal';\r\nimport { FaChevronLeft, FaPen, FaTrash } from 'react-icons/fa';\r\nimport cardspApi from '../../../../../api/cardspApi';\r\nimport ShippingAndPaymentCardModal from './ShippingAndPaymentCardModal';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport useReviewOrder from '../ReviewOrder/useReviewOrder';\r\nimport { saveHeaderIndexRevOrder } from '../../../../../reducers/header/headerActions';\r\nimport ConfirmationModal from '../../../../../SharedComponents/Modals/ConfirmationModal/ConfirmationModal';\r\nimport useShoppingCart from '../../../../../SharedComponents/ShoppingCart/useShoppingCart';\r\nimport { cardIconHandler } from '../../ManageCards/cardIconHandler';\r\nimport CardForm from '../../ManageCards/CardForm/CardForm';\r\nimport AlertModal from '../../../../../SharedComponents/Modals/AlertModal/AlertModal';\r\n\r\nconst ShippingAndPaymentMobile = (props) => {\r\n\r\n const { id, updateListCart } = props;\r\n\r\n const modalProps = useModal(id, true);\r\n const [listCard, setListCard] = useState([])\r\n const dispatch = useDispatch();\r\n const valuesCheckout = useSelector(({ reviewOrder }) => reviewOrder.values)\r\n const useOrdersApi = useReviewOrder.useOrdersApi();\r\n const { getCartItems } = useShoppingCart.useCartItems();\r\n const [textHeader, setTextHeader] = useState('CHECKOUT');\r\n const [showListCard, setShowListCard] = useState(false);\r\n const [showNewCard, setShowNewCard] = useState(false);\r\n const [cardToken, setCardToken] = useState(null);\r\n const [showCard, setShowCard] = useState();\r\n const [blockSaving, setBlockSaving] = useState(false);\r\n\r\n const validateShowCard = useReviewOrder.useValuesReviewOrder();\r\n\r\n\r\n const getCards = () => {\r\n cardspApi.getCards().then(({ data }) => {\r\n data = data.map(res => {\r\n res['checked'] = false;\r\n if (res.isDefault == 1)\r\n res['checked'] = true;\r\n return res;\r\n })\r\n setListCard(data)\r\n // setCards(data);\r\n }).catch(err => {\r\n console.error('getCardDetails get Error:', err);\r\n });\r\n }\r\n\r\n\r\n const updateCard = (cardToken) => {\r\n goToNewCard(cardToken);\r\n setTextHeader('CARD DETAIL')\r\n\r\n };\r\n\r\n const goToNewCard = (token) => {\r\n setCardToken(token);\r\n setShowNewCard(true);\r\n setTextHeader('CARD DETAIL')\r\n\r\n }\r\n\r\n\r\n const deleteCard = (token) => {\r\n cardspApi.deleteCard(token).then(() => {\r\n const newCards = listCard.filter(card => card.token !== token);\r\n setListCard(newCards);\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n };\r\n\r\n\r\n const listCardItems = listCard.map(card => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n

{card.last4}

\r\n \r\n \r\n \r\n \r\n updateCard(card.token)} className='marginL200 clickable' />\r\n deleteCard(card.token)} className='marginL30 clickable' />\r\n \r\n
\r\n )\r\n });\r\n\r\n\r\n\r\n const toggle = () => {\r\n if (textHeader == 'CHECKOUT') {\r\n modalProps.toggle();\r\n } else if (textHeader == 'CREDIT CARD LIST') {\r\n setShowListCard(false);\r\n setTextHeader('CHECKOUT');\r\n } else if (textHeader == 'CARD DETAIL') {\r\n setShowNewCard(false)\r\n setTextHeader('CREDIT CARD LIST');\r\n }\r\n };\r\n\r\n\r\n\r\n const submitCheckoutByCard = () => {\r\n setBlockSaving(true);\r\n const props = {\r\n listCard,\r\n onSave: (card) => {\r\n const newValuesCheckout = {\r\n ...valuesCheckout,\r\n paymentMethod: {\r\n type: 'credit_card',\r\n card: card\r\n }\r\n };\r\n\r\n useOrdersApi.useSaveOrder(newValuesCheckout)\r\n .then(res => {\r\n openModalConfirm();\r\n getCartItems();\r\n updateListCart();\r\n setBlockSaving(false);\r\n })\r\n .catch(error => {\r\n setBlockSaving(false);\r\n let message = 'Something went wrong while processing the order.';\r\n if (error.data) {\r\n message = error.data.message;\r\n }\r\n const props = {\r\n message: message,\r\n onOk: () => {\r\n // history.push('/logout');\r\n }\r\n };\r\n dispatch(showModal(AlertModal, props));\r\n });\r\n }\r\n };\r\n dispatch(showModal(ShippingAndPaymentCardModal, props));\r\n }\r\n\r\n const successSaveCard = () => {\r\n getCards();\r\n toggle();\r\n }\r\n\r\n const openModalConfirm = () => {\r\n const props = {\r\n header: 'Confirmation',\r\n message: `Foodbam order for ${valuesCheckout.dataDistributor.nickname} Submitted`,\r\n\r\n onOk: () => {\r\n toggle();\r\n }\r\n };\r\n dispatch(showModal(ConfirmationModal, props));\r\n };\r\n\r\n const submitCheckout = () => {\r\n setBlockSaving(true);\r\n\r\n const newValuesCheckout = {\r\n ...valuesCheckout,\r\n paymentMethod: {\r\n type: 'terms'\r\n }\r\n };\r\n // dispatch(spinner(true));\r\n // openModalProcessing();\r\n useOrdersApi.useSaveOrder(newValuesCheckout)\r\n .then(res => {\r\n // dispatch(spinner(false));\r\n setTimeout(() => {\r\n openModalConfirm();\r\n getCartItems();\r\n updateListCart();\r\n setBlockSaving(false);\r\n\r\n }, 500);\r\n\r\n })\r\n .catch(error => {\r\n setBlockSaving(false);\r\n let message = 'Something went wrong while processing the order.';\r\n if (error.data) {\r\n message = error.data.message;\r\n }\r\n const props = {\r\n message: message,\r\n onOk: () => {\r\n // history.push('/logout');\r\n }\r\n };\r\n dispatch(showModal(AlertModal, props));\r\n });\r\n }\r\n\r\n const goShowListCard = () => {\r\n setShowListCard(true);\r\n setTextHeader('CREDIT CARD LIST')\r\n }\r\n\r\n\r\n\r\n useEffect(() => {\r\n getCards();\r\n const resValidate = validateShowCard.useShowCard(valuesCheckout);\r\n setShowCard(resValidate);\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n\r\n {textHeader}\r\n \r\n \r\n
\r\n \r\n

Select a Payment Method :

\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Add New Credit Card\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n {listCardItems}\r\n goToNewCard(null)}>Add New Credit Card\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n );\r\n};\r\n\r\n\r\nexport default ShippingAndPaymentMobile;\r\n","\r\nimport React, { useState } from 'react';\r\nimport { Row, Col, Button, Card, CardBody, Collapse, Progress, CardHeader, Input } from 'reactstrap'\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { FaMoneyBill, FaSortUp, FaSortDown, FaPen, FaCalendarDay, FaClock } from 'react-icons/fa';\r\nimport Select from 'react-select';\r\nimport { useDispatch } from 'react-redux';\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport NoteModal from '../../../../../SharedComponents/Modals/NoteModal/NoteModal';\r\nimport { setValuesForCheckout } from '../../../../../reducers/reviewOrder/reviewOrderActions';\r\nimport { saveHeaderIndexRevOrder } from '../../../../../reducers/header/headerActions';\r\nimport ShippingAndPaymentMobile from '../ShippingAndPayment/ShippingAndPaymentMobile';\r\nimport useReviewOrder from './useReviewOrder';\r\n\r\nconst ReviewOrderRowMobile = (props) => {\r\n\r\n const { listCartItem,\r\n dataDistributor,\r\n priceTotalCard,\r\n priceTotalCardR,\r\n validateProgress,\r\n progressValue,\r\n diffMinOrderAmount,\r\n contentList,\r\n optionsDeliveryDate,\r\n validationMinimumOrderAmoun,\r\n updateListCart\r\n } = props;\r\n\r\n const [valueDeliveryDate, setValueDeliveryDate] = useState()\r\n const [valueDeliveryTime, setValueDeliveryTime] = useState()\r\n const [valueNote, setValueNote] = useState()\r\n const [isOpen, setIsOpen] = useState(false);\r\n const useValuesReviewOrder = useReviewOrder.useValuesReviewOrder();\r\n const [showDelTime, setShowDelTime] = useState(false);\r\n const [optionsDeliveryTime, setOptionsDeliveryTime] = useState([]);\r\n const dispatch = useDispatch();\r\n\r\n const toggleCollapse = () => setIsOpen(!isOpen);\r\n\r\n const changeDeliveryDate = (props) => {\r\n setValueDeliveryDate(props.value);\r\n console.log(dataDistributor)\r\n const resultVal = useValuesReviewOrder.useValShowDelTime(props.value, dataDistributor.isFoodbamDelivery);\r\n setShowDelTime(resultVal);\r\n const options = useValuesReviewOrder.useOptionsDeliveryTime(props.value, dataDistributor.id);\r\n setOptionsDeliveryTime(options);\r\n }\r\n\r\n const changeDeliveryTime = (props) => {\r\n setValueDeliveryTime(props.value);\r\n\r\n }\r\n\r\n const validateNext = () => {\r\n if (showDelTime) {\r\n if (valueDeliveryDate && valueDeliveryTime) {\r\n return false\r\n } else {\r\n return true\r\n }\r\n } else {\r\n if (valueDeliveryDate) {\r\n return false\r\n } else {\r\n return true\r\n }\r\n }\r\n }\r\n // dispatch(showModal(ShippingAndPaymentMobile));\r\n\r\n const goToCheckoutMobile = () => {\r\n\r\n const valResult = validationMinimumOrderAmoun();\r\n\r\n if (valResult) {\r\n const valuesCheckout = {\r\n cartList: listCartItem,\r\n dataDistributor: dataDistributor,\r\n priceTotalCard: {\r\n priceFormat: priceTotalCard,\r\n priceReal: priceTotalCardR\r\n },\r\n deliveryDetail: {\r\n valueDeliveryDate,\r\n valueDeliveryTime,\r\n valueNote\r\n }\r\n };\r\n\r\n const props = {\r\n updateListCart\r\n }\r\n dispatch(setValuesForCheckout(valuesCheckout));\r\n dispatch(showModal(ShippingAndPaymentMobile, props));\r\n };\r\n }\r\n\r\n\r\n const openModalBottom = () => {\r\n const modalProps = {\r\n defaultValue: valueNote,\r\n menu: true,\r\n title: 'Add Delivery Note',\r\n buttonTitle: 'SAVE',\r\n onSave: (note) => {\r\n setValueNote(note);\r\n }\r\n };\r\n\r\n dispatch(showModal(NoteModal, modalProps));\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n {dataDistributor ? dataDistributor.nickname : ' ..'}\r\n {priceTotalCard}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {dataDistributor ? diffMinOrderAmount() : ''} to reach minimum order amount\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

{listCartItem.filter(res => res.caseQuantity > 0).length} Items

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

View details\r\n {isOpen ? : }\r\n

\r\n \r\n
\r\n
\r\n\r\n \r\n {contentList}\r\n

{dataDistributor ? dataDistributor.nickname : ' ..'} Sub Total : {priceTotalCard}

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\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 ReviewOrderRowMobile;","import React, { useState, useEffect, useRef } from 'react'\r\nimport { colors } from '../../../../../config/constants';\r\nimport { Row, Col, Button, Card, CardBody, Collapse, Progress, CardHeader, Input } from 'reactstrap'\r\nimport { FaLink, FaClock, FaTrash } from 'react-icons/fa';\r\nimport InputCounter from '../../../../../SharedComponents/InputCounter/InputCounter';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport noImage from '../../../../../assets/images/no-image.png';\r\nimport specialRequestImg from '../../../../../assets/images/special-request.png';\r\nimport { FaExclamation } from 'react-icons/fa';\r\nimport IconBadge from '../../../../../SharedComponents/IconBadge/IconBadge';\r\nimport numeral from 'numeral';\r\nimport ReviewOrderCard from './ReviewOrderCard';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport { FaMoneyBill } from 'react-icons/fa';\r\nimport useReviewOrder from './useReviewOrder';\r\nimport { useDispatch } from 'react-redux';\r\nimport CountModal from \"../../../../../SharedComponents/Modals/CountModal/CountModal\";\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport { saveHeaderIndexRevOrder } from '../../../../../reducers/header/headerActions';\r\nimport { setValuesForCheckout } from '../../../../../reducers/reviewOrder/reviewOrderActions';\r\nimport SimpleModal from \"../../../../../SharedComponents/Modals/SimpleModal/SimpleModal\";\r\nimport ReviewOrderRowMobile from './ReviewOrderRowMobile';\r\nimport QuestionModal from '../../../../../SharedComponents/Modals/QuestionModal/QuestionModal';\r\nimport { SwipeableList, SwipeableListItem } from '@sandstreamdev/react-swipeable-list';\r\nimport '@sandstreamdev/react-swipeable-list/dist/styles.css';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\n\r\n\r\nconst ReviewOrderRow = (props) => {\r\n const { listCartItem, changeShowDetail, goToItemsDistributor, updateListCart, displayComparisonView } = props;\r\n const [priceTotalCard, setpriceTotalCard] = useState(0);\r\n const [priceTotalCardR, setPriceTotalCardR] = useState(0);\r\n const [listCartItemH, setListCartItemH] = useState(listCartItem)\r\n const [totalItem, setTotalItem] = useState(0);\r\n const [progressValue, setProgressValue] = useState(0);\r\n const [optionsDeliveryDate, setoptionsDeliveryDates] = useState([])\r\n const [updateByModal, setUpdateByModal] = useState()\r\n const history = useHistory();\r\n\r\n const dispatch = useDispatch();\r\n\r\n const { dataDistributor } = useReviewOrder.useDataForDistributor(listCartItem[0].distributorId);\r\n\r\n const useUpdateCart = useReviewOrder.useUpdateCart();\r\n\r\n const changeValue = (newCaseQuantity, shoppingCartId) => {\r\n\r\n let priceAux = 0;\r\n let totalItemAux = 0;\r\n const listCartItemA = listCartItemH\r\n .map((res) => {\r\n if (res.shoppingCartId === shoppingCartId) {\r\n res.caseQuantity = newCaseQuantity;\r\n res['priceTotalRow'] = numeral(res.caseQuantity * res.price).format('$0,0.00');\r\n }\r\n priceAux += (res.caseQuantity * res.price);\r\n totalItemAux += (res.caseQuantity)\r\n return res;\r\n });\r\n\r\n let priceFormat = numeral(priceAux).format('$0,0.00')\r\n setTotalItem(totalItemAux);\r\n setpriceTotalCard(priceFormat);\r\n setPriceTotalCardR(priceAux);\r\n setListCartItemH(listCartItemA);\r\n }\r\n\r\n\r\n const calculateTotal = () => {\r\n let priceAux = 0;\r\n let totalItemAux = 0;\r\n listCartItemH.forEach((res) => {\r\n priceAux += (res.caseQuantity * res.price);\r\n res['priceTotalRow'] = numeral(res.caseQuantity * res.price).format('$0,0.00');\r\n totalItemAux += (res.caseQuantity);\r\n });\r\n let priceFormat = numeral(priceAux).format('$0,0.00')\r\n setpriceTotalCard(priceFormat)\r\n setPriceTotalCardR(priceAux);\r\n setTotalItem(totalItemAux);\r\n }\r\n\r\n useEffect((res) => {\r\n calculateTotal();\r\n }, [])\r\n\r\n\r\n const text = `This item was added as a special request. It is not guaranteed that the distributor will be able to deliver this item. Please contact your distributor directly to confirm availability`\r\n\r\n const getClassName = (isSpecialItem) => {\r\n if (isSpecialItem) {\r\n return 'details special'\r\n } else {\r\n return 'details'\r\n }\r\n }\r\n\r\n const getClassNameRow = (isSpecialItem) => {\r\n if (isMobile && isSpecialItem) {\r\n return 'contentDetails mobile isEspecial'\r\n } else if (isMobile && !isSpecialItem) {\r\n return 'contentDetails mobile'\r\n } else if (!isMobile) {\r\n return 'contentDetails m-0'\r\n }\r\n }\r\n\r\n\r\n const goToDetail = (cartItem) => {\r\n changeShowDetail(cartItem);\r\n }\r\n\r\n const openChangeCant = (cartItem) => {\r\n const modalProps = {\r\n defaultValue: cartItem.caseQuantity,\r\n menu: true,\r\n description: cartItem.isSpecialItem ?\r\n cartItem.description.charAt(0).toUpperCase() + cartItem.description.slice(1) :\r\n cartItem.name.charAt(0).toUpperCase() + cartItem.name.slice(1),\r\n title: `Edit quantity`,\r\n onSave: (newQuantity) => {\r\n changeValue(newQuantity, cartItem.shoppingCartId)\r\n useUpdateCart.useUpdateCartAmount(newQuantity, cartItem, null);\r\n // const params = {\r\n // parLevel: newParLevel\r\n // };\r\n // comparisonViewsApi.patchGroup(comparisonViewId, groupId, params).then(({ data }) => {\r\n // dispatch(editOneInventoryGroup(groupId, params));\r\n // }).catch(err => console.error(err));\r\n }\r\n };\r\n\r\n dispatch(showModal(CountModal, modalProps));\r\n }\r\n const diffMinOrderAmount = () => {\r\n const minOrder = dataDistributor.minOrderAmount;\r\n const priceTotal = parseFloat(priceTotalCard.replace('$', '').replace(',', ''));\r\n return numeral(minOrder - priceTotal).format('$0,0.00');\r\n }\r\n\r\n const validateProgress = () => {\r\n\r\n if (dataDistributor)\r\n if (dataDistributor.skipMinOrder) {\r\n return true;\r\n } else {\r\n if (dataDistributor.isMinOrderAmountRequired == true ||\r\n dataDistributor.isMinOrderAmountRequired == 1) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n const validateShowByList = () => {\r\n let count = listCartItemH.filter(res => res.caseQuantity > 0);\r\n if (count.length == 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n const validationMinimumOrderAmoun = () => {\r\n let value = false;\r\n if (!listCartItem[0].isSpecialItem) {\r\n if (validateProgress()) {\r\n value = progressValue >= 100 ? false : true;\r\n if (value) {\r\n const props = {\r\n header: `Price below $${dataDistributor.minOrderAmount}`,\r\n message: `

Minimum price required for placing order is ${dataDistributor.minOrderAmount} !

`,\r\n };\r\n dispatch(showModal(SimpleModal, props));\r\n return false;\r\n };\r\n };\r\n };\r\n return true;\r\n };\r\n\r\n const goToCheckout = () => {\r\n\r\n // Validation minimun order amount\r\n const valResult = validationMinimumOrderAmoun();\r\n\r\n //\r\n if (valResult) {\r\n const valuesCheckout = {\r\n cartList: listCartItemH,\r\n dataDistributor: dataDistributor,\r\n priceTotalCard: {\r\n priceFormat: priceTotalCard,\r\n priceReal: priceTotalCardR\r\n }\r\n };\r\n\r\n dispatch(setValuesForCheckout(valuesCheckout));\r\n // dispatch(saveHeaderIndexRevOrder(3));\r\n history.push('/checkout-ordering/shipping-payment')\r\n dispatch(saveHeaderIndexRevOrder(5));\r\n };\r\n\r\n };\r\n\r\n const resetCant = (item) => {\r\n const qProps = {\r\n message: `Are you sure you want to remove this item?`,\r\n leftButton: {\r\n title: 'Delete',\r\n color: 'orange',\r\n onClick: () => updateCart(0, item)\r\n },\r\n rightButton: {\r\n title: 'Cancel',\r\n color: 'green',\r\n // onClick: () => goBack()\r\n }\r\n };\r\n dispatch(showModal(QuestionModal, qProps));\r\n }\r\n\r\n\r\n\r\n const updateCart = (newCaseQuantity, cartItem) => {\r\n changeValue(newCaseQuantity, cartItem.shoppingCartId)\r\n useUpdateCart.useUpdateCartAmount(newCaseQuantity, cartItem, null);\r\n };\r\n\r\n const contentList = listCartItemH.map((cartItem, index) => {\r\n let newImage = cartItem.imageUrl ? cartItem.imageUrl : (cartItem.brandImageUrl ? cartItem.brandImageUrl : null);\r\n // cartItem.isPunchedOut = 1;\r\n return (\r\n cartItem.caseQuantity ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n goToDetail(cartItem)}>\r\n \r\n

{cartItem.isSpecialItem ? cartItem.description : cartItem.name}

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

{cartItem.din}

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

{cartItem.brand}

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

{cartItem.distributor}

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

{cartItem.packSize}

\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n {({ className, ...rest }) => (\r\n
\r\n \r\n \r\n

Delete

\r\n
,\r\n action: () => resetCant(cartItem)\r\n }}\r\n >\r\n \r\n \r\n

{cartItem.caseQuantity} {cartItem.unitMeasure}

\r\n \r\n \r\n \r\n \r\n openChangeCant(cartItem)}>\r\n \r\n

{cartItem.isSpecialItem ? cartItem.description : cartItem.name}

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

{cartItem.din}

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

{cartItem.brand}

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

{cartItem.packSize}

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

{cartItem.priceTotalRow}

\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n \r\n
\r\n )}\r\n \r\n\r\n\r\n \r\n\r\n \r\n
\r\n

{cartItem.priceTotalRow}

\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n {/* \r\n
\r\n\r\n LAST PURCHASED\r\n {cartItem.lastPurchasedQty} {cartItem.unitMeasure} ON {cartItem.lastPurchasedDate}\r\n
\r\n\r\n
*/}\r\n \r\n \r\n \r\n : ''\r\n\r\n\r\n )\r\n });\r\n\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (dataDistributor) {\r\n const minOrder = dataDistributor.minOrderAmount;\r\n const priceTotal = parseFloat(priceTotalCard.replace('$', '').replace(',', ''));\r\n const valueProgress = minOrder > 0 ? ((priceTotal * 100) / minOrder) : 100;\r\n setProgressValue(valueProgress);\r\n }\r\n\r\n }, [priceTotalCard])\r\n\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (dataDistributor) {\r\n const minOrder = dataDistributor.minOrderAmount;\r\n const priceTotal = parseFloat(priceTotalCard.replace('$', '').replace(',', ''));\r\n const valueProgress = minOrder > 0 ? ((priceTotal * 100) / minOrder) : 100;\r\n setProgressValue(valueProgress);\r\n\r\n const options = dataDistributor.deliveryDates.map(res => {\r\n return {\r\n value: res,\r\n label: res\r\n }\r\n });\r\n\r\n setoptionsDeliveryDates(options);\r\n }\r\n }, [dataDistributor])\r\n\r\n\r\n\r\n\r\n return (\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {dataDistributor ? diffMinOrderAmount() : ''} to reach minimum order amount\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {contentList}\r\n \r\n \r\n res.caseQuantity > 0).length}\r\n totalItems={totalItem}\r\n distributorName={dataDistributor ? dataDistributor.nickname : ' ..'}\r\n checkout={goToCheckout} />\r\n \r\n
\r\n
\r\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 ReviewOrderRow;\r\n","import cartApi from '../../api/cartApi';\r\nimport comparisonViewsApi from '../../api/comparisonViewsApi';\r\nimport { saveCartItems, saveLastModified, saveUnsyncedItems, saveCartCount, saveCartDistributor, saveOrderTotal, saveSavingOptions } from \"../../reducers/cart/cartActions\";\r\nimport { localStorageConst } from '../../config/constants';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nconst setCartStructure = (nCartItems) => {\r\n console.log(nCartItems)\r\n let structuredCart = [];\r\n let totalQty = 0;\r\n let totalOrder = 0;\r\n nCartItems.forEach(cItem => {\r\n if (!cItem.specialItem && !cItem.item) {\r\n return;\r\n };\r\n const newItem = (cItem.specialItem !== null) ? {\r\n caseQuantity: parseFloat(cItem.quantity),\r\n price: 0,\r\n id: Math.random(),\r\n distributorId: parseInt(cItem.specialItem.distributorId),\r\n din: cItem.specialItem.din,\r\n packSize: cItem.specialItem.packSize,\r\n // unitMeasure: cItem.specialItem.uom,\r\n unit: cItem.specialItem.uom,\r\n description: cItem.specialItem.description,\r\n searchText: undefined,\r\n rebate: undefined,\r\n swapAcceptId: undefined,\r\n isSpecialItem: true,\r\n distributor: cItem.specialItem.distributorName,\r\n shoppingCartId: cItem.id,\r\n isMarketPrice: 0,\r\n active: 0,\r\n caseSavings: undefined,\r\n belongsToGroup: 0\r\n } : {\r\n caseQuantity: parseFloat(cItem.quantity),\r\n // price: (cItem.item.isMarketPrice === 1 ? 0 : parseFloat(cItem.item.price)),\r\n price: parseFloat(cItem.item.price),\r\n itemDistributorId: cItem.itemDistributorId,\r\n brand: cItem.item.brand,\r\n brandImageUrl: cItem.item.brandImageUrl,\r\n imageUrl: cItem.item.imageUrl,\r\n name: cItem.item.name,\r\n packSize: cItem.item.packSize,\r\n status: cItem.item.status,\r\n type: cItem.item.type,\r\n unitPrice: cItem.item.unitPrice,\r\n distributorId: parseInt(cItem.item.distributorId),\r\n unitMeasure: cItem.item.unitMeasure,\r\n description: cItem.item.description,\r\n searchText: cItem.searchText,\r\n rebate: parseFloat(cItem.item.rebate),\r\n swapAcceptId: cItem.swapAcceptId,\r\n isSpecialItem: false,\r\n distributor: cItem.item.distributor,\r\n shoppingCartId: cItem.id,\r\n isPriceOutdated: cItem.item.isPriceOutdated,\r\n isMarketPrice: cItem.item.isMarketPrice,\r\n active: cItem.item.active,\r\n din: cItem.item.din,\r\n isPunchedOut: cItem.item.isPunchedOut,\r\n belongsToGroup: cItem.item.belongsToGroup,\r\n parLevel: cItem.parLevel,\r\n onHand: cItem.onHand,\r\n isPartner: cItem.item.isPartner,\r\n isPurchased: cItem.item.isPurchased,\r\n lastPurchasedDate: cItem.item.lastPurchasedDate ?\r\n cItem.item.lastPurchasedDate.substr(0, 10).split('-').reverse().join('/') : '',\r\n lastPurchasedQty: cItem.item.lastPurchasedQty,\r\n savings: (cItem.swapAcceptId !== null && cItem.savings !== null) ? parseFloat(cItem.savings) : null\r\n };\r\n structuredCart.push(newItem);\r\n //sort by shoppingCartId\r\n structuredCart.sort((a, b) => { return a.shoppingCartId - b.shoppingCartId; });\r\n totalQty = totalQty + parseInt(newItem.caseQuantity);\r\n totalOrder = totalOrder + (parseFloat(newItem.caseQuantity) * parseFloat(newItem.price));\r\n });\r\n\r\n return { structuredCart, totalQty, totalOrder };\r\n};\r\n\r\nconst useShoppingCart = () => {\r\n const dispatch = useDispatch();\r\n const getCartItemsProm = async () => {\r\n let res = await cartApi.get();\r\n const { structuredCart, totalQty, totalOrder } = setCartStructure(res.data.shoppingCart);\r\n dispatch(saveCartItems(structuredCart));\r\n dispatch(saveCartCount(totalQty));\r\n dispatch(saveOrderTotal(totalOrder));\r\n localStorage.setItem(localStorageConst.keys.cartItems, JSON.stringify(structuredCart));\r\n dispatch(saveLastModified(res.data.lastModified));\r\n localStorage.setItem(localStorageConst.keys.lastModifiedCart, res.data.lastModified);\r\n dispatch(saveUnsyncedItems(res.data.unsyncedItems));\r\n\r\n const cartItems = structuredCart;\r\n // const cartByDistributor = cartItems.reduce((dist, ci) => {\r\n // dist[ci.distributorId] = dist[ci.distributorId] || [];\r\n // dist[ci.distributorId].push(ci);\r\n // return dist;\r\n // }, {});\r\n\r\n // return Object.entries(cartByDistributor);\r\n return getCartByDistributor(cartItems);\r\n };\r\n\r\n const getCartByDistributor = (cartItems) => {\r\n const cartByDistributor = cartItems.reduce((dist, ci) => {\r\n dist[ci.distributorId] = dist[ci.distributorId] || [];\r\n dist[ci.distributorId].push(ci);\r\n return dist;\r\n }, {});\r\n\r\n return Object.entries(cartByDistributor);\r\n };\r\n\r\n const doGetItemDistributor = async (idDistributor) => {\r\n let res = await comparisonViewsApi.getItemDistributor(idDistributor);\r\n if (res.data.length > 0) {\r\n const newRes = res.data.map(_item => {\r\n _item.groups.map(_itemP => {\r\n _itemP.items = _itemP.items\r\n .filter(itemI => itemI.isPunchedOut != 1 && itemI.isCustomItem != 1);\r\n return _itemP;\r\n });\r\n return _item;\r\n });\r\n return newRes;\r\n } else {\r\n return []\r\n }\r\n };\r\n\r\n return { getCartItemsProm, getCartByDistributor, doGetItemDistributor }\r\n}\r\n\r\n\r\n\r\nexport default { useShoppingCart }\r\n","import React, { Fragment, useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport { Col, Input } from 'reactstrap';\r\nimport useShoppingCartItem from './useShoppingCartItem';\r\n\r\nimport { itemCart, placeOrderViews } from '../../config/constants';\r\nimport MinusButton from '../MinusButton/MinusButton';\r\nimport PlusButton from '../PlusButton/PlusButton';\r\nimport { localStorageConst } from '../../config/constants';\r\nimport { useSelector } from 'react-redux';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\nimport useOnHandItemInterface from '../OnHandItem/useOnHandItemInterface';\r\n\r\nconst ShoppingCartItemGroup = (props) => {\r\n const { item,\r\n useInitialLeft,\r\n useLastRight,\r\n useShoppingCartItemProps,\r\n changeItemGroup } = props;\r\n \r\n const { caseQuantity, setCaseQuantity } = useShoppingCartItemProps || useShoppingCartItem.useCartItemMerge(item);\r\n const [cartAmount, setCartAmount] = useState(0);\r\n const [cartAmountFirst, setCartAmountFirst] = useState(0);\r\n const groupEvent = useSelector(({ groupEvent }) => groupEvent);\r\n\r\n const [section, setSection] = useState('');\r\n // const { updateCartAmount } = useShoppingCartItem.useCartUpdate(setCartAmount, groupTotalProps);\r\n\r\n const view = localStorage.getItem(localStorageConst.keys.view);\r\n const { disabled } = useOnHandItemInterface.useInputConnection();\r\n const { valid } = useShoppingCartItem.useCartValidate();\r\n\r\n\r\n useEffect(() => {\r\n if (groupEvent.values.cartAmount) {\r\n if (item.itemDistributorId == groupEvent.values.itemDistributorId) {\r\n setCartAmount(groupEvent.values.cartAmount);\r\n }\r\n };\r\n }, [groupEvent])\r\n\r\n\r\n const cartAmountHandler = (e) => {\r\n if (!valid(e.target.value)) { return; }\r\n setCartAmount(e.target.value);\r\n changeItemGroup(item, cartAmountFirst, e.target.value);\r\n };\r\n\r\n const cartAmountClick = (newCartAmount) => {\r\n if (!valid(newCartAmount)) { return; }\r\n setCartAmount(newCartAmount);\r\n changeItemGroup(item, cartAmountFirst, newCartAmount);\r\n };\r\n\r\n const setButtons = () => {\r\n let newSection = '';\r\n const minusImg = { cartAmountClick(cartAmount - 1) }} isBlue isActive={(cartAmount >= itemCart.min)} disabled={disabled} />;\r\n const newMinusButton = (useInitialLeft === false && cartAmount < itemCart.min) ? '' : minusImg;\r\n\r\n const plusImg = { cartAmountClick(cartAmount + 1) }} isBlue isActive={(cartAmount >= itemCart.min && cartAmount <= itemCart.max)} disabled={disabled} />;\r\n const newPlusButton = (useLastRight === false && cartAmount > itemCart.max) ? '' : plusImg;\r\n\r\n newSection = \r\n\r\n\r\n 0}>\r\n {/* */}\r\n \r\n {newMinusButton}\r\n \r\n \r\n \r\n \r\n \r\n {item.unitMeasure}\r\n \r\n \r\n\r\n\r\n \r\n {newPlusButton}\r\n \r\n ;\r\n\r\n setSection(newSection);\r\n\r\n };\r\n\r\n useEffect(() => {\r\n setButtons();\r\n }, []);\r\n\r\n useEffect(() => {\r\n setCartAmount(caseQuantity);\r\n setCartAmountFirst(caseQuantity);\r\n }, [caseQuantity]);\r\n\r\n useEffect(() => {\r\n setButtons();\r\n }, [cartAmount, disabled]);\r\n\r\n return (\r\n \r\n {section}\r\n \r\n );\r\n};\r\n\r\nShoppingCartItemGroup.propTypes = {\r\n useInitialLeft: PropTypes.bool,\r\n useLastRight: PropTypes.bool,\r\n showAll: PropTypes.bool,\r\n square: PropTypes.bool\r\n};\r\n\r\nShoppingCartItemGroup.defaultProps = {\r\n useInitialLeft: true,\r\n useLastRight: true,\r\n square: true\r\n};\r\n\r\nexport default ShoppingCartItemGroup;","import React, {useState, useEffect} from 'react';\r\nimport { Row, Col, Button } from 'reactstrap';\r\nimport {colors, cameraConstraints} from '../../../../../config/constants';\r\nimport ordersApi from '../../../../../api/ordersApi';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { IoMdCamera, IoMdClose } from \"react-icons/io\";\r\nimport './TakePhoto.scss'; \r\n\r\nlet video;\r\nlet scaleVideo;\r\n\r\nconst TakePhoto = () => {\r\n const history = useHistory();\r\n const params = history.location.pathname.split('/');\r\n const id = params[params.length-2];\r\n\r\n const [photos, setPhotos] = useState([]);\r\n const [photosMap, setPhotosMap] = useState('');\r\n const [startUpload, setStartUpload] = useState(0);\r\n const [localStream, setLocalStream] = useState([]);\r\n const [imageCapture, setImageCapture] = useState([]);\r\n \r\n\r\n const getSnap = () => {\r\n let takenPhotos = photos;\r\n const canvas = document.createElement('canvas');\r\n canvas.width = video.clientWidth;\r\n canvas.height = video.clientHeight;\r\n var ctx = canvas.getContext(\"2d\");\r\n ctx.drawImage(video, 0,0);\r\n canvas.toBlob(function(blob) {\r\n const r = Math.random().toString(36).substring(7);\r\n const url = window.URL.createObjectURL(blob);\r\n const file = new File([blob], `snap_${r}.png`);\r\n const obj= { url: url, file: file };\r\n takenPhotos.push(obj); \r\n });\r\n setPhotos(takenPhotos);\r\n setPhotosMap(takenPhotos.map((photo, index) => ));\r\n };\r\n\r\n const uploadMissingPics = () => {\r\n const file = photos[startUpload].file; \r\n ordersApi.uploadInvoiceImage(id, file)\r\n .then(res => {\r\n setStartUpload(startUpload+1);\r\n }).catch(error => {console.log(error)}); \r\n };\r\n\r\n const close = () =>{\r\n // history.push(`/order-history/upload-invoice/${id}`);\r\n history.goBack();\r\n };\r\n\r\n useEffect(() => {\r\n video = document.getElementById('hide-video');\r\n scaleVideo = document.getElementById('scale-video');\r\n\r\n navigator.mediaDevices.getUserMedia(cameraConstraints)\r\n .then(function(stream) {\r\n video.srcObject = stream;\r\n scaleVideo.srcObject = stream;\r\n video.play();\r\n scaleVideo.play();\r\n setLocalStream(stream);\r\n setImageCapture(new ImageCapture(stream.getVideoTracks()[0]));\r\n \r\n }).catch(function(err){\r\n console.error(err);\r\n });\r\n }, []);\r\n\r\n\r\n useEffect(() => {\r\n if (startUpload === 0 ){ return; }\r\n\r\n if (startUpload < photos.length) {\r\n uploadMissingPics(); \r\n } else {\r\n close();\r\n }\r\n \r\n }, [startUpload]);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Lay invoice flat and please make sure image is legible\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {photosMap}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n uploadMissingPics()}>\r\n Upload\r\n \r\n \r\n
\r\n )\r\n\r\n}\r\n\r\nexport default TakePhoto;","import React, { Fragment } from 'react';\r\nimport { isMobile } from 'react-device-detect';\r\nimport noImage from '../../../../../assets/images/no-image.png';\r\nimport { Row, Col, Card, CardBody, CardHeader } from 'reactstrap';\r\nimport { FaChevronLeft, FaChevronRight } from 'react-icons/fa';\r\nimport { colors } from '../../../../../config/constants';\r\nimport usePlaceOrderInventory from '../../PlaceOrder/PlaceOrderInventory/usePlaceOrderInventory';\r\nimport ShoppingCartItemGroup from '../../../../../SharedComponents/ShoppingCartItem/ShoppingCartItemGroup';\r\nimport useShoppingCartItem from '../../../../../SharedComponents/ShoppingCartItem/useShoppingCartItem';\r\n\r\nconst GroupItemDistributor = (props) => {\r\n\r\n const { item, changeItemGroup } = props;\r\n const { overlay, setOverlay } = useShoppingCartItem.useOverlay();\r\n\r\n const id = item.id;\r\n const {\r\n canScrollRight,\r\n scrollLeft,\r\n scrollRight,\r\n scrollPos,\r\n snapOffset\r\n } = usePlaceOrderInventory.useHorizontalScroll(id, item, item.items, true);\r\n\r\n const listCols = item.items.map(res => {\r\n return (\r\n \r\n \r\n \r\n

{res.description}

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

{res.brand}

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

{res.distributor}

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

$ {res.price} {res.unitMeasure}

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

{res.packSize}

\r\n \r\n
\r\n
\r\n \r\n {/* */}\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n )\r\n });\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

{item.name}

\r\n
\r\n\r\n
\r\n \r\n \r\n 0 ? colors.dark : colors.lightBlueText} />\r\n \r\n \r\n
\r\n \r\n {listCols}\r\n \r\n
\r\n {/* 0 ? colors.dark : colors.lightBlueText} /> */}\r\n
\r\n\r\n\r\n\r\n
\r\n )\r\n\r\n\r\n}\r\n\r\nexport default GroupItemDistributor;\r\n","import React, { useState, useEffect, useLayoutEffect } from 'react'\r\nimport { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\nimport GroupItemDistributor from './GroupItemDistributor';\r\nimport { isMobile, isIOS } from 'react-device-detect';\r\nimport useShoppingCartItem from '../../../../../SharedComponents/ShoppingCartItem/useShoppingCartItem';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { saveAmountItemGroup } from '../../../../../reducers/groupEvent/groupEventAction';\r\nimport Select from 'react-select';\r\nimport * as $ from 'jquery';\r\n\r\nconst ItemDistributorModal = (props) => {\r\n\r\n const {\r\n modal,\r\n toggle,\r\n items,\r\n className\r\n } = props;\r\n\r\n\r\n\r\n const [listItemsChange, setListItemsChange] = useState([]);\r\n const { updateCartAmountGroup } = useShoppingCartItem.useCartUpdate();\r\n const [group, setGroup] = useState(0);\r\n\r\n const dispatch = useDispatch();\r\n \r\n const options = items.map((_i, _index) => {\r\n return {\r\n label: _i.name,\r\n value: _index\r\n }\r\n });\r\n\r\n const changeItemGroup = (itemGroup, cartAmountFirst, newCartAmount) => {\r\n\r\n const ifExist = listItemsChange.find(res => res.item.itemDistributorId == itemGroup.itemDistributorId);\r\n if (ifExist) {\r\n listItemsChange.forEach(res => {\r\n if (res.item.itemDistributorId == itemGroup.itemDistributorId)\r\n res.newCartAmount = newCartAmount;\r\n });\r\n } else {\r\n listItemsChange.push({\r\n item: itemGroup,\r\n newCartAmount,\r\n cartAmount: cartAmountFirst\r\n });\r\n };\r\n dispatch(saveAmountItemGroup({\r\n itemDistributorId: itemGroup.itemDistributorId,\r\n cartAmount: newCartAmount\r\n }));\r\n setListItemsChange(listItemsChange);\r\n };\r\n\r\n const updateAll = async () => {\r\n const result = listItemsChange.reduce((previousPromise, nextItem) => {\r\n return previousPromise.then(() => {\r\n return updateCartAmountGroup(nextItem.newCartAmount, nextItem.item, null, nextItem.cartAmount);\r\n });\r\n }, Promise.resolve());\r\n\r\n result.then(e => {\r\n toggle(true);\r\n });\r\n }\r\n\r\n const changeOption = ({ value }) => {\r\n setGroup(value);\r\n };\r\n\r\n\r\n const ListGroupItemDistributor = items[group].groups.map((item) => {\r\n\r\n return (\r\n \r\n )\r\n })\r\n\r\n const vh = useSelector(({ userInterface }) => userInterface.size.height);\r\n const h = `${vh - 120 - 70 - 36 - (isIOS ? 110 : 0)}px`;\r\n\r\n return (\r\n
\r\n toggle(false)} className={isMobile ? className + ' mobile mx-0 mt-4' : className}>\r\n \r\n Add Linked Items to Cart\r\n \r\n \r\n \r\n {/* */}\r\n\r\n {ListGroupItemDistributor}\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default ItemDistributorModal;","export const saveAmountItemGroup = (values) => {\r\n return {\r\n type: 'SET_AMOUNT_ITEM_GROUP',\r\n payload: values\r\n }\r\n};\r\n\r\n","import React, { useState, useEffect } from 'react'\r\nimport './ReviewOrder.scss'\r\nimport ReviewOrderRow from './ReviewOrderRow';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport SimpleModal from \"../../../../../SharedComponents/Modals/SimpleModal/SimpleModal\";\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport useShoppingCartReviewOrder from '../../../../../SharedComponents/ShoppingCart/useShoppingCartReviewOrder';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport ItemDistributorModal from './ItemDistributorModal';\r\nimport { saveHeaderIndexRevOrder } from '../../../../../reducers/header/headerActions';\r\nimport AlertModal from '../../../../../SharedComponents/Modals/AlertModal/AlertModal';\r\nimport { Button } from 'reactstrap';\r\nimport QuestionModal from '../../../../../SharedComponents/Modals/QuestionModal/QuestionModal';\r\nimport cartApi from '../../../../../api/cartApi';\r\n\r\n\r\nconst ReviewOrder = () => {\r\n\r\n const UseShoppingCartReviewOrder = useShoppingCartReviewOrder.useShoppingCart();\r\n const showDetailRd = false;\r\n const [cartItemsArray, setCartItemsArray] = useState([])\r\n const dispatch = useDispatch();\r\n const [itemsDistributor, setItemsDistributor] = useState([])\r\n const [openModal, setOpenModal] = useState(false);\r\n const activeLocation = useSelector(({ user }) => user.activeLocation);\r\n\r\n const changeShowDetail = (cartItem) => {\r\n switch (cartItem.isSpecialItem) {\r\n case true:\r\n const props = {\r\n header: 'Special Request',\r\n message: `${cartItem.description}
\r\n ${cartItem.caseQuantity} * ${cartItem.unitMeasure}`,\r\n\r\n };\r\n dispatch(showModal(SimpleModal, props));\r\n break;\r\n default:\r\n // headerProps.showDet_ReviewOrder = !headerProps.showDet_ReviewOrder;\r\n // dispatch(saveHeaderContent(headerProps));\r\n break;\r\n }\r\n }\r\n\r\n\r\n const getCartItems = () => {\r\n setCartItemsArray([])\r\n UseShoppingCartReviewOrder.getCartItemsProm().then(res => {\r\n setCartItemsArray(res);\r\n })\r\n }\r\n\r\n\r\n const toggleModal = (isUpdate) => {\r\n setOpenModal(!openModal);\r\n if (isUpdate == true)\r\n getCartItems();\r\n };\r\n\r\n\r\n const getItemDistributor = async (cartItem) => {\r\n\r\n const resItemsDistributor = await UseShoppingCartReviewOrder.doGetItemDistributor(cartItem.itemDistributorId);\r\n if (resItemsDistributor.length === 0) {\r\n dispatch(showModal(AlertModal, {\r\n message: 'This item has been removed from a generic group. Please re-link the item in Inventory View to proceed with using this feature',\r\n // onOk: () => history.push('/recipe-costing')\r\n }));\r\n return;\r\n }\r\n setItemsDistributor(resItemsDistributor);\r\n setOpenModal(true);\r\n\r\n }\r\n\r\n const updateListCart = () => {\r\n getCartItems();\r\n }\r\n\r\n\r\n useEffect(() => {\r\n getCartItems();\r\n\r\n }, [])\r\n\r\n\r\n const contentListCartsItems = cartItemsArray.map(([key, listCartItems]) => {\r\n return (\r\n
\r\n {\r\n \r\n }\r\n
\r\n )\r\n });\r\n\r\n\r\n const getCountOrder = () => {\r\n let count = 0;\r\n cartItemsArray.forEach(([key, listCartItems]) => {\r\n let haveItem = listCartItems.every(res => res.caseQuantity == 0);\r\n if (!haveItem) {\r\n count += 1;\r\n };\r\n\r\n });\r\n return count;\r\n }\r\n\r\n\r\n const deleteAllConfirm = () => {\r\n\r\n const qProps = {\r\n message: \"Are you sure you want to remove all items on the shopping cart?\",\r\n menu: isMobile ? true : false,\r\n leftButton: {\r\n title: 'Delete',\r\n color: 'orange',\r\n onClick: () => callDeleteAll()\r\n },\r\n rightButton: {\r\n title: 'Cancel',\r\n color: 'green',\r\n // onClick: () => goBack()\r\n }\r\n };\r\n dispatch(showModal(QuestionModal, qProps));\r\n };\r\n const callDeleteAll = () => {\r\n const listResult = cartItemsArray.reduce((acc, _i) => {\r\n _i[1].map(item => {\r\n acc.push({\r\n ...item.itemDistributorId ?\r\n { itemDistributorId: item.itemDistributorId }\r\n : { shoppingCartId: item.shoppingCartId },\r\n quantity: 0,\r\n description: item.name ? item.name : item.description\r\n });\r\n });\r\n return acc;\r\n }, [])\r\n const params = {\r\n itemList: listResult\r\n // lastModified: lastModified\r\n };\r\n cartApi.update(params).then(res => {\r\n updateListCart();\r\n }).catch(error => { console.log(error) });\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n 0}>\r\n
\r\n

{`You have ${getCountOrder()} order${(getCountOrder() === 1 ? `` : `s`)} to review for ${activeLocation.nickname}`}

\r\n \r\n
\r\n
\r\n\r\n\r\n {contentListCartsItems}\r\n
\r\n
\r\n \r\n
\r\n {contentListCartsItems}\r\n
\r\n
\r\n
\r\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 ReviewOrder;\r\n","import React, { useState } from 'react';\r\nimport { CustomInput, Button } from 'reactstrap';\r\nimport { FaPen, FaTrash } from 'react-icons/fa';\r\nimport { cardIconHandler } from '../../ManageCards/cardIconHandler';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\n\r\n\r\nconst ShippingAndPaymentCard = (props) => {\r\n const { card, onchange, updateCard, deleteCard } = props;\r\n const [show, setShow] = useState(false);\r\n const [deleteBtn, setDeleteBtn] = useState(false)\r\n\r\n const showDelete = () => setDeleteBtn(!deleteBtn)\r\n\r\n const showIconMenter = () => {\r\n if (!show) setShow(true)\r\n }\r\n const showIconMleave = () => {\r\n if (show) setShow(false)\r\n }\r\n\r\n return (\r\n
\r\n onchange(card)} type='checkbox' id={'checkCard-' + card.token} >\r\n    {card.last4}\r\n \r\n \r\n updateCard(card.token)} className='marginL200 clickable' />\r\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 ShippingAndPaymentCard\r\n","import React, { useEffect, useState } from 'react'\r\nimport './ShippingAndPayment.scss'\r\nimport { Row, Col, Input, Button, CustomInput, NavLink } from 'reactstrap';\r\nimport { FaCalendarDay, FaPen, FaClock, FaArrowLeft } from 'react-icons/fa';\r\nimport Select from 'react-select';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\nimport cardspApi from '../../../../../api/cardspApi';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport ShippingAndPaymentCard from './ShippingAndPaymentCard';\r\nimport CardForm from '../../ManageCards/CardForm/CardForm';\r\nimport { saveHeaderIndexRevOrder } from '../../../../../reducers/header/headerActions';\r\nimport { setValuesForCheckout } from '../../../../../reducers/reviewOrder/reviewOrderActions';\r\nimport useReviewOrder from '../ReviewOrder/useReviewOrder';\r\n\r\n\r\nconst ShippingAndPayment = () => {\r\n\r\n const history = useHistory();\r\n const headerIndex = useSelector(({ header }) => header.index);\r\n const valuesCheckout = useSelector(({ reviewOrder }) => reviewOrder.values);\r\n const [listDeliveryDates, setListDeliveryDates] = useState([]);\r\n const [valueDeliveryDate, setValueDeliveryDate] = useState();\r\n const [valueDeliveryTime, setValueDeliveryTime] = useState();\r\n const [listCard, setListCard] = useState([]);\r\n const [showNewCard, setShowNewCard] = useState(false);\r\n const [cardToken, setCardToken] = useState(null);\r\n const [checkTerms, setCheckTerms] = useState(false);\r\n const [valueNote, setValueNote] = useState();\r\n const [showCard, setShowCard] = useState();\r\n const useValuesReviewOrder = useReviewOrder.useValuesReviewOrder();\r\n const [showDelTime, setShowDelTime] = useState(false);\r\n const [optionsDeliveryTime, setOptionsDeliveryTime] = useState([]);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const optionsDeliveryDate = listDeliveryDates.map(res => {\r\n return {\r\n value: res,\r\n label: res\r\n }\r\n });\r\n\r\n\r\n const getCards = () => {\r\n cardspApi.getCards().then(({ data }) => {\r\n if (data.length > 0) {\r\n data = data.map(res => {\r\n res['checked'] = false;\r\n if (res.isDefault === 1)\r\n res['checked'] = true;\r\n return res;\r\n });\r\n setListCard(data)\r\n } else {\r\n setCheckTerms(true);\r\n };\r\n\r\n // setCards(data);\r\n }).catch(err => {\r\n console.error('getCardDetails get Error:', err);\r\n });\r\n\r\n }\r\n const deleteCard = (token) => {\r\n cardspApi.deleteCard(token).then(() => {\r\n const newCards = listCard.filter(card => card.token !== token);\r\n setListCard(newCards);\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n };\r\n\r\n\r\n useEffect(() => {\r\n if (headerIndex === 3) {\r\n history.push('/checkout-ordering/review-order')\r\n }\r\n // else if (headerIndex == 5) {\r\n // getCards();\r\n // }\r\n }, [headerIndex]);\r\n\r\n useEffect(() => {\r\n if (valuesCheckout) {\r\n setListDeliveryDates(valuesCheckout.dataDistributor.deliveryDates);\r\n const resValidate = useValuesReviewOrder.useShowCard(valuesCheckout);\r\n setShowCard(resValidate);\r\n\r\n if (resValidate) {\r\n getCards();\r\n } else {\r\n setCheckTerms(true);\r\n }\r\n }\r\n\r\n }, [valuesCheckout])\r\n\r\n\r\n const changeDeliveryDate = (props) => {\r\n setValueDeliveryDate(props.value);\r\n const resultVal = useValuesReviewOrder.useValShowDelTime(props.value, valuesCheckout.dataDistributor.isFoodbamDelivery);\r\n setShowDelTime(resultVal);\r\n const options = useValuesReviewOrder.useOptionsDeliveryTime(props.value, valuesCheckout.dataDistributor.id);\r\n setOptionsDeliveryTime(options)\r\n }\r\n\r\n const changeDeliveryTime = (props) => {\r\n setValueDeliveryTime(props.value);\r\n }\r\n\r\n const validateNext = () => {\r\n if (showDelTime) {\r\n if (valueDeliveryDate && valueDeliveryTime) {\r\n return false\r\n } else {\r\n return true\r\n }\r\n } else {\r\n if (valueDeliveryDate) {\r\n return false\r\n } else {\r\n return true\r\n }\r\n }\r\n }\r\n\r\n const goToNewCard = (token) => {\r\n setCardToken(token);\r\n setShowNewCard(true);\r\n }\r\n\r\n const onchangeCheck = (card) => {\r\n const newListCard = listCard.map(res => {\r\n res.checked = false;\r\n if (card.token === res.token) {\r\n card.checked = true;\r\n }\r\n return res;\r\n })\r\n setCheckTerms(false);\r\n setListCard(newListCard);\r\n }\r\n\r\n const checkWithTerms = () => {\r\n const newListCard = listCard.map(res => {\r\n res.checked = false;\r\n return res;\r\n })\r\n setCheckTerms(true);\r\n setListCard(newListCard);\r\n }\r\n\r\n\r\n const updateCard = (cardToken) => {\r\n goToNewCard(cardToken);\r\n }\r\n\r\n const getPayMethod = () => {\r\n const payParams = {\r\n type: '',\r\n card: ''\r\n }\r\n if (checkTerms) {\r\n payParams.type = 'terms'\r\n } else {\r\n payParams.type = 'credit_card'\r\n payParams.card = listCard.filter(res => res.checked == true)[0];\r\n }\r\n return payParams;\r\n }\r\n\r\n const goToNext = () => {\r\n\r\n const newValuesCheckout = {\r\n ...valuesCheckout,\r\n paymentMethod: getPayMethod(),\r\n deliveryDetail: {\r\n valueDeliveryDate,\r\n valueDeliveryTime,\r\n valueNote\r\n }\r\n }\r\n\r\n dispatch(setValuesForCheckout(newValuesCheckout));\r\n dispatch(saveHeaderIndexRevOrder(6));\r\n\r\n }\r\n\r\n const listCardItems = listCard.map(card => {\r\n return (\r\n \r\n )\r\n });\r\n\r\n return (\r\n
\r\n\r\n \r\n \r\n \r\n

Delivery Details

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setValueNote(e.target.value)} placeholder='Add delivery note (optional)' />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

Select a Payment Method

\r\n \r\n {listCardItems}\r\n \r\n \r\n \r\n goToNewCard(null)}>Add New Credit Card\r\n \r\n\r\n \r\n
\r\n
\r\n\r\n \r\n setShowNewCard(false)} />\r\n \r\n \r\n\r\n
\r\n )\r\n}\r\n\r\n\r\nexport default ShippingAndPayment;\r\n","import React from 'react'\r\nimport { Row, Col, Card, Button, CardHeader, CardBody } from 'reactstrap'\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { colors } from '../../../../../config/constants';\r\nimport IconBadge from '../../../../../SharedComponents/IconBadge/IconBadge';\r\nimport { FaQuestion, FaCalendarDay, FaClock, FaPen } from 'react-icons/fa';\r\nimport { cardIconHandler } from '../../ManageCards/cardIconHandler';\r\n\r\n\r\nconst FinalReviewCard = (props) => {\r\n\r\n const { nameDistributor, priceTotalCard, paymentMethod, deliveryDetail, submit } = props;\r\n const texts = {\r\n totalSaving: `All the savings you've made with Foodbam on this order!`,\r\n lineItems: `Excluding Special Request Items!`\r\n }\r\n\r\n return (\r\n \r\n \r\n {nameDistributor}\r\n {priceTotalCard}\r\n \r\n \r\n

SUMMARY

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

Total Savings

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

$0.00

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

\r\n {nameDistributor} Sub Total

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

{priceTotalCard}

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

SHIPPING DETAILS

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

{deliveryDetail.valueDeliveryDate}

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

{deliveryDetail.valueDeliveryTime}

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

{deliveryDetail.valueNote}

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

PAYMENT DETAILS

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

{paymentMethod.card.last4}

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

Pay with Terms

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

{nameDistributor}

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

{priceTotalCard}

\r\n \r\n
\r\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 FinalReviewCard;","import React, { useState } from 'react'\r\nimport { Row, Col, Button, Card } from 'reactstrap'\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport noImage from '../../../../../assets/images/no-image.png';\r\nimport specialRequestImg from '../../../../../assets/images/special-request.png';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport FinalReviewCard from './FinalReviewCard';\r\nimport IconBadge from '../../../../../SharedComponents/IconBadge/IconBadge';\r\nimport { FaExclamation } from 'react-icons/fa';\r\nimport { colors } from '../../../../../config/constants';\r\n\r\n\r\nconst FinalReviewRow = (props) => {\r\n const { submit } = props;\r\n const { cartList, dataDistributor, priceTotalCard, paymentMethod, deliveryDetail } = props.values;\r\n const text = `This item was added as a special request. It is not guaranteed that the distributor will be able to deliver this item. Please contact your distributor directly to confirm availability`\r\n\r\n\r\n const getClassNameRow = (isSpecialItem) => {\r\n if (isSpecialItem) {\r\n return 'contentDetails isEspecial'\r\n } else {\r\n return 'contentDetails '\r\n }\r\n }\r\n\r\n const contentList = cartList.map((cartItem, index) => {\r\n let newImage = cartItem.imageUrl ? cartItem.imageUrl : (cartItem.brandImageUrl ? cartItem.brandImageUrl : null);\r\n\r\n return (\r\n cartItem.caseQuantity ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

{cartItem.caseQuantity} {cartItem.unitMeasure}

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

{cartItem.isSpecialItem ? cartItem.description : cartItem.name}

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

{cartItem.din}

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

{cartItem.brand}

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

{cartItem.distributor}

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

{cartItem.packSize}

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

{cartItem.priceTotalRow}

\r\n
\r\n \r\n
\r\n LAST PURCHASED\r\n {cartItem.lastPurchasedQty} {cartItem.unitMeasure} ON {cartItem.lastPurchasedDate}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
: ''\r\n )\r\n });\r\n\r\n\r\n return (\r\n\r\n
\r\n \r\n \r\n {contentList}\r\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 FinalReviewRow;","import React, { Fragment, useEffect, useState } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport FinalReviewRow from './FinalReviewRow';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport ConfirmationModal from '../../../../../SharedComponents/Modals/ConfirmationModal/ConfirmationModal';\r\n\r\nimport { saveHeaderIndexRevOrder } from '../../../../../reducers/header/headerActions';\r\nimport LoaderModal from '../../../../../SharedComponents/Modals/LoaderModal/LoaderModal';\r\nimport useReviewOrder from '../ReviewOrder/useReviewOrder';\r\nimport useShoppingCart from '../../../../../SharedComponents/ShoppingCart/useShoppingCart';\r\nimport { spinner } from '../../../../../reducers/userInterface/userInterfaceActions';\r\nimport AlertModal from '../../../../../SharedComponents/Modals/AlertModal/AlertModal';\r\n\r\n\r\n\r\nconst FinalReview = () => {\r\n\r\n\r\n const headerIndex = useSelector(({ header }) => header.index)\r\n const history = useHistory();\r\n const valuesCheckout = useSelector(({ reviewOrder }) => reviewOrder.values)\r\n // const valuesCheckout = JSON.parse(`{\"cartList\":[{\"caseQuantity\":3,\"price\":30.843,\"itemDistributorId\":890776,\"brand\":\"Chefs Quality\",\"brandImageUrl\":\"https://diningalliance.s3.amazonaws.com/brand/Chefs%20Quality.jpg\",\"imageUrl\":\"https://diningalliance.s3.amazonaws.com/itemdistributor/CHEFS%20QUALITY%20PINEAPPLE%20CHUNKS%20IN%20NATURAL%20SAUCE%20-%206/%2310%20CANS-890776.jpg\",\"name\":\"chef quality pineapple chunk l/ #10\",\"packSize\":\"6/10LB\",\"status\":\"active\",\"type\":\"non_order_guide\",\"unitPrice\":0.51405,\"distributorId\":531,\"unitMeasure\":\"cs\",\"description\":\"chef quality pineapple chunk l/ #10\",\"searchText\":null,\"rebate\":null,\"swapAcceptId\":null,\"isSpecialItem\":false,\"distributor\":\"FoodBAM- GI\",\"shoppingCartId\":1148311,\"isPriceOutdated\":0,\"isMarketPrice\":0,\"din\":\"2340138 \",\"isPunchedOut\":0,\"belongsToGroup\":1,\"parLevel\":null,\"onHand\":null,\"isPartner\":1,\"isPurchased\":1,\"lastPurchasedDate\":\"17/02/2020\",\"lastPurchasedQty\":2,\"savings\":null,\"priceTotalRow\":\"$92.53\"},{\"caseQuantity\":7,\"price\":17.25,\"itemDistributorId\":5242921,\"brand\":\"Chefs Quality\",\"brandImageUrl\":\"https://diningalliance.s3.amazonaws.com/brand/Chefs%20Quality.jpg\",\"imageUrl\":\"https://diningalliance.s3.amazonaws.com/item/CHEFS%20QUALITY%20MARASCHINO%20CHERRIES%20%28LARGE%29%20WITH%20STEMS%20-%201/128%20OZ.jpg\",\"name\":\"chef s quality cherries large with stems chefs\",\"packSize\":\"1/128EA\",\"status\":\"active\",\"type\":\"non_order_guide\",\"unitPrice\":0.13478,\"distributorId\":531,\"unitMeasure\":\"ea\",\"description\":\"chef s quality cherries large with stems chefs\",\"searchText\":null,\"rebate\":null,\"swapAcceptId\":null,\"isSpecialItem\":false,\"distributor\":\"FoodBAM- GI\",\"shoppingCartId\":1148305,\"isPriceOutdated\":0,\"isMarketPrice\":0,\"din\":\"38001 \",\"isPunchedOut\":0,\"belongsToGroup\":1,\"parLevel\":null,\"onHand\":null,\"isPartner\":1,\"isPurchased\":1,\"lastPurchasedDate\":\"17/02/2020\",\"lastPurchasedQty\":9,\"savings\":null,\"priceTotalRow\":\"$120.75\"},{\"caseQuantity\":1,\"price\":9.338,\"itemDistributorId\":5243079,\"brand\":\"Chef Mate\",\"brandImageUrl\":\"https://foodbam-east.s3.amazonaws.com/brand/Chef%20Mate.jpg\",\"imageUrl\":\"https://foodbam-east.s3.amazonaws.com/itemdistributor/CHEF%20MATE%20CHEDDAR%20CHEESE%20SAUCE%20%2310-5243079.jpg\",\"name\":\"chef mate cheddar cheese sauce #10\",\"packSize\":\"1/10LB\",\"status\":\"active\",\"type\":\"non_order_guide\",\"unitPrice\":0.9338,\"distributorId\":531,\"unitMeasure\":\"ea\",\"description\":\"chef mate cheddar cheese sauce #10\",\"searchText\":null,\"rebate\":null,\"swapAcceptId\":null,\"isSpecialItem\":false,\"distributor\":\"FoodBAM- GI\",\"shoppingCartId\":1148310,\"isPriceOutdated\":0,\"isMarketPrice\":0,\"din\":\"61657 \",\"isPunchedOut\":0,\"belongsToGroup\":1,\"parLevel\":null,\"onHand\":null,\"isPartner\":1,\"isPurchased\":1,\"lastPurchasedDate\":\"15/01/2020\",\"lastPurchasedQty\":1,\"savings\":null,\"priceTotalRow\":\"$9.34\"}],\"dataDistributor\":{\"id\":531,\"organizationId\":78308,\"nickname\":\"FoodBAM- GI\",\"regionName\":\"\",\"enabled\":0,\"timezone\":-8,\"availabilityCutOffTime\":\"16:00:00\",\"foodbuyId\":\"\",\"fairPricingToAll\":1,\"showDeliveryDates\":1,\"defaultDeliveryDays\":2,\"deliveryDates\":[\"Today, 03/20/20\",\"2020-03-23\",\"2020-03-24\",\"2020-03-25\",\"2020-03-26\",\"2020-03-27\",\"2020-03-30\",\"2020-03-31\",\"2020-04-01\",\"2020-04-02\",\"2020-04-03\",\"2020-04-06\",\"2020-04-07\",\"2020-04-08\",\"2020-04-09\",\"2020-04-10\"],\"acceptACH\":0,\"acceptCC\":2,\"isDelivery\":1,\"foodbam_markup_type\":1,\"foodbam_markup\":15,\"delivery_fee\":null,\"delivery_fee_type\":0,\"same_day_delivery_fee\":50,\"same_day_delivery_fee_type\":0,\"dsrEmail\":\"ashley@foodbam.com\",\"credit\":0,\"isMinOrderAmountRequired\":1,\"isMinCaseRequired\":0,\"skipMinOrder\":false,\"minOrderAmount\":200,\"isOrderApprovalRequestSent\":0,\"isSameDayDelivery\":1,\"isFirstOrderOfTheDay\":1,\"caseMinimum\":0,\"softMinimum\":0,\"payableTerms\":null,\"locationIds\":[{\"id\":23053,\"merchantId\":26992,\"distributorId\":null,\"updateTime\":null,\"acceptCC\":null,\"acceptACH\":null},{\"id\":67829,\"merchantId\":28841,\"distributorId\":null,\"updateTime\":null,\"acceptCC\":null,\"acceptACH\":null},{\"id\":67857,\"merchantId\":45320,\"distributorId\":null,\"updateTime\":null,\"acceptCC\":null,\"acceptACH\":null}]},\"priceTotalCard\":\"$222.62\",\"paymentMethod\":{\"type\":\"credit_card\",\"token\":\"\",\"card\":{\"isDefault\":1,\"nickname\":\"asdf222\",\"token\":\"card_1GEkMYAOyv46Sv907gmBad8a\",\"cardType\":\"visa\",\"last4\":4242,\"checked\":true}},\"deliveryDetail\":{\"valueDeliveryDate\":\"2020-03-23\",\"valueDeliveryTime\":\"9am - 1pm\",\"valueNote\":\"ok\"}}`);\r\n const { getCartItems } = useShoppingCart.useCartItems();\r\n\r\n const dispatch = useDispatch()\r\n const useOrdersApi = useReviewOrder.useOrdersApi();\r\n\r\n useEffect(() => {\r\n\r\n if (headerIndex == 3) {\r\n history.push('/checkout-ordering/review-order')\r\n } else if (headerIndex == 6) {\r\n // getCards();\r\n }\r\n }, [headerIndex])\r\n\r\n\r\n const openModalProcessing = () => {\r\n const props = {\r\n header: 'Order Processing...'\r\n };\r\n dispatch(showModal(LoaderModal, props));\r\n }\r\n\r\n\r\n const openModalConfirm = () => {\r\n const props = {\r\n header: 'Confirmation',\r\n message: `Foodbam order for ${valuesCheckout.dataDistributor.nickname} Submitted`,\r\n\r\n onOk: () => {\r\n dispatch(saveHeaderIndexRevOrder(3));\r\n }\r\n };\r\n dispatch(showModal(ConfirmationModal, props));\r\n }\r\n\r\n const submit = () => {\r\n // dispatch(spinner(true));\r\n // openModalProcessing();\r\n useOrdersApi.useSaveOrder(valuesCheckout)\r\n .then(res => {\r\n // dispatch(spinner(false));\r\n // setTimeout(() => {\r\n openModalConfirm();\r\n getCartItems();\r\n // }, 500);\r\n })\r\n .catch(error => {\r\n let message = 'Something went wrong while processing the order.';\r\n if(error.data){\r\n message = error.data.message;\r\n }\r\n const props = {\r\n message: message,\r\n onOk: () => {\r\n // history.push('/logout');\r\n }\r\n };\r\n dispatch(showModal(AlertModal, props));\r\n });\r\n\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default FinalReview\r\n","import React, { useState, useEffect } from 'react'\r\nimport { localStorageConst } from '../../../../../config/constants';\r\nimport itemApi from '../../../../../api/itemApi';\r\n\r\nconst useSavings = () => {\r\n\r\n const transformItemsSavings = (listItemsSavings) => {\r\n const localCartItems = JSON.parse(localStorage.getItem(localStorageConst.keys.cartItems));\r\n // console.log(localCartItems)\r\n const newResult = listItemsSavings.filter(item => {\r\n item.detailItem = localCartItems.find(cart => cart.itemDistributorId == item.itemDistributorId);\r\n // item.detailItem = localCartItems.find(cart => cart.itemDistributorId == 6679588);\r\n item.swap = false;\r\n item.reject = false;\r\n item.idItemSwap = '';\r\n item.idItemReject = '';\r\n item.optionReject = '';\r\n // test doubl\r\n // if (item.itemDistributorId == 4944050) {\r\n // let newItem = `{\"itemDistributorId\":6679664,\"itemId\":876431,\"din\":\"940829 \",\"name\":\"avocado hass fresh packer\",\"description\":\"avocado hass fresh packer\",\"foodbamCustomDescription\":\"\",\"brand\":\"Packer\",\"count\":6,\"status\":\"active\",\"price\":30.37,\"unitPrice\":0.6062,\"distributorId\":181,\"distributor\":\"PFG - Performance Foodservice Milton's\",\"packSize\":\"1/60 CT\",\"imageUrl\":\"https://foodbam-east.s3.amazonaws.com/itemdistributor/AVOCADO%20HASS%20FRSH-6679663.jpg\",\"brandImageUrl\":null,\"updateTime\":\"2020-04-01 21:30:34\",\"unitMeasure\":\"cs\",\"isCatchWeight\":0,\"isFixedWeight\":0,\"averageWeight\":60,\"isMarketPrice\":0,\"type\":\"order_guide\",\"unitType\":\"Amount\",\"unitQuantity\":1,\"unitSize\":60,\"rebate\":null,\"packSizeUom\":\"ct\",\"isPriceOutdated\":1,\"purchasedPrice\":68.43,\"isPurchased\":1,\"isPunchedOut\":0,\"orderGuideId\":61704,\"belongsToGroup\":1,\"lastPurchasedDate\":\"2020-04-01 21:30:34\",\"lastPurchasedQty\":1,\"isPartner\":1,\"notes\":null,\"accountingId\":null,\"accountingSupplierId\":null,\"accountingSupplier\":null,\"accountingCategoryId\":null,\"accountingCategory\":null,\"accountingCodeId\":null,\"accountingCode\":null,\"matchType\":\"SimilarMatch\",\"isUnpurchasable\":0,\"matchId\":83786302,\"savings\":0.23195833333333327,\"caseSavings\":13.92,\"currentRebateAmount\":0,\"newRebateAmount\":0}`;\r\n // item.comparable.push(JSON.parse(newItem));\r\n // newItem = `{\"itemDistributorId\":6679665,\"itemId\":876432,\"din\":\"940829 \",\"name\":\"avocado hass fresh packer\",\"description\":\"avocado hass fresh packer\",\"foodbamCustomDescription\":\"\",\"brand\":\"Packer\",\"count\":6,\"status\":\"active\",\"price\":20.37,\"unitPrice\":0.6062,\"distributorId\":181,\"distributor\":\"PFG - Performance Foodservice Milton's\",\"packSize\":\"1/60 CT\",\"imageUrl\":\"https://foodbam-east.s3.amazonaws.com/itemdistributor/AVOCADO%20HASS%20FRSH-6679663.jpg\",\"brandImageUrl\":null,\"updateTime\":\"2020-04-01 21:30:34\",\"unitMeasure\":\"cs\",\"isCatchWeight\":0,\"isFixedWeight\":0,\"averageWeight\":60,\"isMarketPrice\":0,\"type\":\"order_guide\",\"unitType\":\"Amount\",\"unitQuantity\":1,\"unitSize\":60,\"rebate\":null,\"packSizeUom\":\"ct\",\"isPriceOutdated\":1,\"purchasedPrice\":68.43,\"isPurchased\":1,\"isPunchedOut\":0,\"orderGuideId\":61704,\"belongsToGroup\":1,\"lastPurchasedDate\":\"2020-04-01 21:30:34\",\"lastPurchasedQty\":1,\"isPartner\":1,\"notes\":null,\"accountingId\":null,\"accountingSupplierId\":null,\"accountingSupplier\":null,\"accountingCategoryId\":null,\"accountingCategory\":null,\"accountingCodeId\":null,\"accountingCode\":null,\"matchType\":\"SimilarMatch\",\"isUnpurchasable\":0,\"matchId\":83786303,\"savings\":0.23195833333333327,\"caseSavings\":13.92,\"currentRebateAmount\":0,\"newRebateAmount\":0}`;\r\n // item.comparable.push(JSON.parse(newItem));\r\n\r\n // };\r\n //\r\n if (item.detailItem && item.matches.length > 0)\r\n return item;\r\n });\r\n return newResult;\r\n };\r\n\r\n const swapAcceptApi = async (params) => {\r\n\r\n const res = await itemApi.swapAccept(params);\r\n return res;\r\n };\r\n\r\n const swapRejectApi = async (params) => {\r\n\r\n const res = await itemApi.swapReject(params);\r\n return res;\r\n };\r\n\r\n\r\n return { transformItemsSavings, swapAcceptApi, swapRejectApi }\r\n\r\n}\r\n\r\nconst useOptionsSavings = () => {\r\n\r\n const [optionsReject, setOptionReject] = useState([]);\r\n\r\n const listReject = [\r\n 'Recommended product is not a match',\r\n 'Quality Concern',\r\n 'Current item preferred',\r\n 'Current pack size preferred',\r\n 'Sensitive Distributor Relationship',\r\n 'Not interested in changing this item',\r\n 'Other'\r\n ];\r\n\r\n const options = listReject.map(res => {\r\n return {\r\n label: res,\r\n value: res\r\n };\r\n });\r\n\r\n useEffect(() => {\r\n setOptionReject(options);\r\n }, [])\r\n\r\n return { optionsReject }\r\n}\r\n\r\nexport default {\r\n useSavings, useOptionsSavings\r\n}\r\n","import React from 'react';\r\nimport { Card, Row, Col } from 'reactstrap';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { colors } from '../../../../../config/constants';\r\nimport IconBadge from '../../../../../SharedComponents/IconBadge/IconBadge';\r\nimport { FaExclamation } from 'react-icons/fa';\r\nimport numeral from 'numeral';\r\n\r\n\r\nconst SavingsFirstCard = (props) => {\r\n\r\n\r\n const { cartItem } = props;\r\n const price = `${numeral(cartItem.price).format('$0,0.00')} ${cartItem.unitMeasure}`;\r\n const newImage = cartItem.imageUrl ? cartItem.imageUrl : (cartItem.brandImageUrl ? cartItem.brandImageUrl : null);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

{cartItem.description}

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

{cartItem.din}

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

{cartItem.brand}

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

{cartItem.distributor}

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

{price}

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

{cartItem.packSize}

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

{cartItem.description}

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

{cartItem.din}

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

{cartItem.brand}

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

{cartItem.distributor}

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

{price}

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

{cartItem.packSize}

\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n ORDER GUIDE\r\n
\r\n
\r\n
\r\n )\r\n};\r\n\r\n\r\nexport default SavingsFirstCard\r\n\r\n","import React, { Fragment, useState } from 'react';\r\nimport { Card, Row, Col, NavLink } from 'reactstrap';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { colors } from '../../../../../config/constants';\r\nimport IconBadge from '../../../../../SharedComponents/IconBadge/IconBadge';\r\nimport { FaExclamation, FaChevronLeft, FaChevronRight } from 'react-icons/fa';\r\nimport numeral from 'numeral';\r\nimport noImage from '../../../../../assets/images/no-image.png';\r\nimport reject from '../../../../../assets/images/reject.png';\r\n\r\n\r\n\r\nconst SavingsSecondCard = (props) => {\r\n\r\n\r\n const { itemComparable, swapActive, rejectActive, goToChangeReject, effectChange } = props;\r\n const price = `${numeral(itemComparable.price).format('$0,0.00')} ${itemComparable.unitMeasure}`;\r\n const newImage = itemComparable.imageUrl ? itemComparable.imageUrl : (itemComparable.brandImageUrl ? itemComparable.brandImageUrl : noImage);\r\n const classSwap = `cardSecond ${swapActive ? 'swapActive' : ''}`;\r\n const classTextSwap = `${swapActive ? 'textCardSwap active' : 'textCardSwap'}`;\r\n\r\n return (\r\n \r\n

Nice! You have grabbed up some serious savings here! We have moved this item to your order guide.

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


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

{itemComparable.description}

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

{itemComparable.din}

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

{itemComparable.brand}

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

{itemComparable.distributor}

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

{price}

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

{itemComparable.packSize}

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

{itemComparable.description}

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

{itemComparable.din}

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

{itemComparable.brand}

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

{itemComparable.distributor}

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

{price}

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

{itemComparable.packSize}

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

{itemComparable.description} Rejected ! We will get back to you with better suggestions next time

\r\n \r\n
\r\n Cancel\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n

Rejected! Thanks for your help, we will\r\n get back to you with better suggestions next time.

\r\n Cancel\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n ORDER GUIDE\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 SavingsSecondCard;\r\n\r\n","import React, { useState, Fragment } from 'react';\r\nimport { Row, Col, Button } from 'reactstrap';\r\nimport SavingsFirstCard from './SavingsFirstCard';\r\nimport SavingsSecondCard from './SavingsSecondCard';\r\nimport { FaTimes, FaExchangeAlt, FaChevronLeft, FaChevronRight } from 'react-icons/fa';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { useDispatch } from 'react-redux';\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport SelectModal from '../../../../../SharedComponents/Modals/SelectModal/SelectModal';\r\nimport useSavings from './useSavings';\r\nimport ConfirmationModal from '../../../../../SharedComponents/Modals/ConfirmationModal/ConfirmationModal';\r\nimport { isMobile } from 'react-device-detect';\r\n\r\nconst SavingsRow = (props) => {\r\n\r\n const { itemSavings, changeSwap, changeReject } = props;\r\n const { optionsReject } = useSavings.useOptionsSavings();\r\n const [indexItem, setIndexItem] = useState(0)\r\n // console.log(itemSavings.matches)\r\n const [itemComparable, setItemComparable] = useState(itemSavings.matches[indexItem])\r\n // const [itemComparable, setItemComparable] = useState([])\r\n\r\n const dispatch = useDispatch();\r\n const [effectChange, setEffectChange] = useState('');\r\n\r\n const swapItem = () => {\r\n const newSwapValue = !itemSavings.swap;\r\n changeSwap(newSwapValue, itemSavings.itemDistributorId, itemComparable.itemDistributorId)\r\n };\r\n\r\n\r\n const goToChangeReject = (optionValue) => {\r\n const newRejectValue = !itemSavings.reject;\r\n changeReject(newRejectValue, optionValue, itemSavings.itemDistributorId, itemComparable.itemDistributorId);\r\n }\r\n\r\n\r\n const rejectItem = () => {\r\n const props = {\r\n header: `Reject`,\r\n message: `We'd like to improve your experience with Foodbam. What is your problem?`,\r\n options: optionsReject,\r\n onOk: (optionValue) => {\r\n openModalConfirm();\r\n goToChangeReject(optionValue);\r\n }\r\n };\r\n dispatch(showModal(SelectModal, props));\r\n }\r\n\r\n\r\n const openModalConfirm = () => {\r\n const props = {\r\n // header: 'Confirmation',\r\n message: `Thank you for your feedback!`,\r\n getProps: (props) => {\r\n setTimeout(() => {\r\n props.toggle();\r\n }, 1500);\r\n }\r\n };\r\n dispatch(showModal(ConfirmationModal, props));\r\n };\r\n\r\n\r\n const showEffect = () => {\r\n setEffectChange('active');\r\n setTimeout(() => {\r\n setEffectChange('');\r\n }, 500);\r\n }\r\n\r\n\r\n const goNextItem = () => {\r\n if (indexItem == itemSavings.matches.length - 1)\r\n return;\r\n const newIndex = indexItem + 1;\r\n setIndexItem(newIndex);\r\n setItemComparable(itemSavings.matches[newIndex]);\r\n showEffect();\r\n\r\n };\r\n\r\n const goBackItem = () => {\r\n if (indexItem == 0)\r\n return;\r\n const newIndex = indexItem - 1;\r\n setIndexItem(newIndex);\r\n setItemComparable(itemSavings.matches[newIndex]);\r\n showEffect();\r\n\r\n };\r\n\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 1 && !itemSavings.reject}>\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 SavingsRow;\r\n","import React, { Fragment, useState, useEffect } from 'react';\r\nimport './Savings.scss'\r\nimport { useDispatch } from 'react-redux';\r\nimport { saveHeaderIndexRevOrder } from '../../../../../reducers/header/headerActions';\r\nimport { useHistory } from 'react-router-dom';\r\nimport useShoppingCart from '../../../../../SharedComponents/ShoppingCart/useShoppingCart';\r\nimport useSavings from './useSavings';\r\nimport SavingsRow from './SavingsRow';\r\nimport { Button, Row, Col } from 'reactstrap';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\n\r\n\r\nconst Savings = () => {\r\n\r\n const [listSavings, setListSavings] = useState([]);\r\n const { transformItemsSavings, swapAcceptApi, swapRejectApi } = useSavings.useSavings();\r\n\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const useCartSavings = useShoppingCart.useCartSavings();\r\n\r\n async function getCartMatches() {\r\n const res = await useCartSavings.getCartMatches();\r\n console.log(res)\r\n const newRes = transformItemsSavings(res);\r\n console.log(newRes, 'newRes');\r\n if (newRes.length > 0) {\r\n setListSavings(newRes);\r\n } else {\r\n dispatch(saveHeaderIndexRevOrder(3))\r\n history.push('/checkout-ordering/review-order');\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getCartMatches();\r\n }, []);\r\n\r\n\r\n const changeSwap = (swapValue, itemDistributorId, idItemSwap) => {\r\n const newListSavings = listSavings.map(res => {\r\n if (res.itemDistributorId == itemDistributorId) {\r\n res.swap = swapValue;\r\n res.idItemSwapReject = idItemSwap;\r\n }\r\n return res;\r\n });\r\n setListSavings(newListSavings);\r\n };\r\n\r\n const changeReject = (rejectValue, optionValue, itemDistributorId, idItemReject) => {\r\n const newListSavings = listSavings.map(res => {\r\n if (res.itemDistributorId == itemDistributorId) {\r\n res.reject = rejectValue;\r\n res.idItemSwapReject = idItemReject;\r\n res.optionReject = optionValue;\r\n }\r\n return res;\r\n });\r\n setListSavings(newListSavings);\r\n };\r\n\r\n\r\n const submitSwapAccept = async () => {\r\n\r\n const listSubmit = listSavings.reduce((acc, el) => {\r\n if (el.swap || el.reject) acc.push({\r\n old_item_dist_id: el.itemDistributorId,\r\n new_item_dist_id: el.matches\r\n .find(item => item.itemDistributorId == el.idItemSwapReject).itemDistributorId,\r\n type: el.swap ? 'swap' : 'reject',\r\n reason_name: el.swap ? '' : el.optionReject\r\n });\r\n return acc;\r\n }, []);\r\n\r\n if (listSubmit.length === 0) {\r\n dispatch(saveHeaderIndexRevOrder(3))\r\n history.push('/checkout-ordering/review-order');\r\n } else {\r\n\r\n const params = { swaps: listSubmit };\r\n swapAcceptApi(params).then(res => {\r\n dispatch(saveHeaderIndexRevOrder(3))\r\n history.push('/checkout-ordering/review-order');\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n const contentSaving = listSavings.map(item => {\r\n return (\r\n \r\n )\r\n });\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n In your cart\r\n Recommended\r\n \r\n
\r\n
\r\n {contentSaving}\r\n \r\n
\r\n \r\n
\r\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 Savings\r\n","import React from 'react';\r\nimport { Switch, Route } from 'react-router-dom';\r\nimport ReviewOrder from './ReviewOrder/ReviewOrder';\r\nimport ShippingAndPayment from \"./ShippingAndPayment/ShippingAndPayment\";\r\nimport FinalReview from './FinalReview/FinalReview';\r\nimport Savings from './Savings/Savings';\r\n\r\nconst CheckoutOrderingContent = () => {\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutOrderingContent;\r\n","import React from 'react'\r\nimport Header from '../../../../SharedComponents/Header/Header';\r\nimport CheckoutOrderingContent from '../../Views/CheckoutOrdering/CheckoutOrderingContent'\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst CheckoutOrdering = () => {\r\n\r\n\r\n const headerContents = useSelector(({ header }) => header.contents)\r\n\r\n return (\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n )\r\n}\r\n\r\nexport default CheckoutOrdering; ","import React, {useState} from 'react';\r\nimport { Card, Row, Col, Button } from 'reactstrap';\r\nimport { MdDelete } from 'react-icons/md';\r\nimport { useHistory, Link } from 'react-router-dom';\r\nimport { isMobile } from 'react-device-detect';\r\nimport numeral from 'numeral';\r\nimport { colors } from '../../../../../../config/constants';\r\nimport ShowIf from '../../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport ShoppingCartItem from '../../../../../../SharedComponents/ShoppingCartItem/ShoppingCartItem';\r\nimport noImage from '../../../../../../assets/images/no-image.png';\r\nimport smallCircle from '../../../../../../assets/images/small-circle.png';\r\nimport useShoppingCartItem from '../../../../../../SharedComponents/ShoppingCartItem/useShoppingCartItem';\r\n\r\nconst ListItemRow = (props) => {\r\n const item = props.children;\r\n item.name = item.name.trim().toLowerCase();\r\n item.description = item.description.trim().toLowerCase();\r\n item.distributor = item.distributor.trim();\r\n const imageUrl = item.imageUrl ? item.imageUrl : noImage;\r\n\r\n const useShoppingCartItemProps = useShoppingCartItem.useCartItemMerge(item);\r\n const {overlay, setOverlay} = useShoppingCartItem.useOverlay();\r\n\r\n const deleteShoppingListItem = () => {\r\n if (props.onDelete) {\r\n props.onDelete(item.itemDistributorId);\r\n }\r\n };\r\n\r\n if (isMobile) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.name}\r\n \r\n \r\n \r\n \r\n

{item.name}

\r\n \r\n
\r\n \r\n \r\n \r\n
{item.foodbamCustomDescription}
\r\n \r\n
\r\n
\r\n \r\n \r\n
{item.brand || 'N/A'}
\r\n \r\n \r\n \r\n
{item.distributor || 'N/A'}
\r\n \r\n
\r\n \r\n \r\n
{numeral(item.price).format('$0,0.00')} {item.unitMeasure}
\r\n \r\n \r\n \r\n
{item.packSize}
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n item\r\n \r\n \r\n \r\n \r\n

{item.name}

\r\n

{item.description}

\r\n \r\n
\r\n \r\n \r\n \r\n
{item.foodbamCustomDescription}
\r\n \r\n
\r\n
\r\n \r\n \r\n
{item.brand || 'N/A'}
\r\n \r\n \r\n
{item.distributor || 'N/A'}
\r\n \r\n
\r\n \r\n \r\n {numeral(item.price).format('$0,0.00')} {item.unitMeasure}\r\n \r\n \r\n {item.packSize}\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 ListItemRow;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useParams, useHistory } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport AlertModal from '../../../../../SharedComponents/Modals/AlertModal/AlertModal';\r\nimport shoppingListsApi from '../../../../../api/shoppingListsApi';\r\nimport ListItemRow from './ListItemRow/ListItemRow';\r\n\r\nconst useSingleListApi = () => {\r\n const [list, setList] = useState(null);\r\n const params = useParams();\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n if (params.id) {\r\n shoppingListsApi.getListById(params.id).then(({data}) => {\r\n setList(data);\r\n }).catch(err=> {\r\n if (err.code === 404) {\r\n dispatch(showModal(AlertModal, {\r\n message: 'Shopping List Not Found',\r\n onOk: () => { history.replace('/shopping-lists') }\r\n }));\r\n }\r\n console.error('shoppingListspApi getListById Error:', err);\r\n });\r\n }\r\n }, []);\r\n\r\n return { list, setList };\r\n};\r\n\r\nconst useListItemsApi = () => {\r\n const [items, setItems] = useState([]);\r\n const [page, setPage] = useState(1);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [loadMore, setLoadMore] = useState(false);\r\n\r\n const params = useParams();\r\n\r\n const getListItems = (page) => {\r\n\r\n setIsLoading(true);\r\n shoppingListsApi.getListItems(params.id, page)\r\n .then(res => {\r\n setItems(items.concat(res.data));\r\n setPage(page);\r\n setLoadMore(res._meta.pageCount > res._meta.currentPage);\r\n setIsLoading(false);\r\n })\r\n .catch(error => console.log('shoppingListspApi getListItems Error:', error));\r\n\r\n };\r\n\r\n useEffect(() => {\r\n if (params.id) {\r\n getListItems(page);\r\n }\r\n }, []);\r\n\r\n return {\r\n items, setItems, page, isLoading, loadMore, getListItems\r\n };\r\n};\r\n\r\nexport default {\r\n useSingleListApi,\r\n useListItemsApi\r\n};\r\n","import React from 'react';\r\nimport { Container, Row, Col } from 'reactstrap';\r\nimport { MdEdit, MdDelete } from 'react-icons/md';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\nimport InfiniteScroll from 'react-infinite-scroller';\r\nimport useSingleShoppingList from './useSingleShoppingList';\r\nimport Header from '../../../../../SharedComponents/Header/Header';\r\nimport ListItemRow from './ListItemRow/ListItemRow';\r\nimport QuestionModal from '../../../../../SharedComponents/Modals/QuestionModal/QuestionModal';\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport shoppingListsApi from '../../../../../api/shoppingListsApi';\r\nimport emptyList from '../../../../../assets/images/empty-list.png';\r\nimport './SingleShoppingList.scss';\r\n\r\nconst SingleShoppingList = () => {\r\n const history = useHistory();\r\n const params = useParams();\r\n const dispatch = useDispatch();\r\n const { list } = useSingleShoppingList.useSingleListApi();\r\n const { items, setItems, page, isLoading, loadMore, getListItems } = useSingleShoppingList.useListItemsApi();\r\n\r\n const deleteShoppingListItem = (itemDistributorId) => {\r\n shoppingListsApi.deleteListItem(params.id, itemDistributorId).then(() => {\r\n setItems(items.filter(item => item.itemDistributorId != itemDistributorId));\r\n }).catch(err=> {\r\n console.log(err);\r\n });\r\n };\r\n const itemsMap = items.map((item) => {item});\r\n\r\n const goToShoppingListForm = () => {\r\n history.push(`/shopping-lists/update-list/${params.id}`);\r\n };\r\n\r\n const openDeleteListModal = () => {\r\n const modelProps = {\r\n message: 'Are you sure you want to delete this shopping list?',\r\n leftButton: {\r\n title: 'Yes',\r\n color: 'orange',\r\n onClick: () => {\r\n shoppingListsApi.deleteList(params.id).then(() => {\r\n history.push('/shopping-lists');\r\n }).catch(err=> {\r\n console.log(err);\r\n });\r\n }\r\n },\r\n rightButton: {\r\n title: 'No',\r\n color: 'green'\r\n }\r\n }\r\n dispatch(showModal(QuestionModal, modelProps));\r\n };\r\n\r\n const rightButton = {icon: [\r\n ,\r\n \r\n ]};\r\n\r\n const backFunction = () => {\r\n history.push('/shopping-lists');\r\n };\r\n\r\n if (list && list.name && !isLoading && items && items.length == 0) {\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Empty List\r\n

This shopping list is empty.

\r\n \r\n
\r\n
\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n {itemsMap}\r\n \r\n \r\n \r\n );\r\n\r\n};\r\n\r\nexport default SingleShoppingList;\r\n","import React, { useState } from 'react';\r\nimport { Card, Row, Col } from 'reactstrap';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { MdAddCircle, MdCancel } from 'react-icons/md';\r\nimport numeral from 'numeral';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { colors } from '../../../../../config/constants';\r\nimport noImage from '../../../../../assets/images/no-image.png';\r\nimport smallCircle from '../../../../../assets/images/small-circle.png';\r\nimport uncheckedCircle from '../../../../../assets/images/unchecked-circle.svg';\r\nimport checkedCircle from '../../../../../assets/images/checked-circle.svg';\r\nimport './ShoppingListItemBlock.scss';\r\n\r\nconst ShoppingListItemBlock = (props) => {\r\n const history = useHistory();\r\n const item = props.children;\r\n item.name = item.name.toLowerCase();\r\n\r\n const imageUrl = item.imageUrl ? item.imageUrl : noImage;\r\n\r\n const addShoppingListItem = () => {\r\n props.onInsert(item.itemDistributorId);\r\n };\r\n\r\n const deleteShoppingListItem = () => {\r\n props.onDelete(item.itemDistributorId);\r\n };\r\n\r\n const goToItemDetails = () => {\r\n history.push(`/item/${item.itemId}`);\r\n };\r\n\r\n if (isMobile) {\r\n return (\r\n \r\n \r\n \r\n {item.name}\r\n \r\n \r\n \r\n \r\n

{item.name}

\r\n \r\n
\r\n \r\n \r\n {item.foodbamCustomDescription}\r\n \r\n \r\n \r\n {item.distributor}\r\n \r\n {item.brand}\r\n \r\n \r\n {numeral(item.price).format('$0,0.00')} {item.unitMeasure}\r\n \r\n {item.packSize}\r\n \r\n \r\n \r\n { props.onInsert ? : null }\r\n { props.onDelete ? : null }\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
{item.name}
\r\n \r\n \r\n \r\n \r\n

{item.name}

\r\n \r\n
\r\n \r\n \r\n {item.foodbamCustomDescription}\r\n \r\n \r\n \r\n {item.distributor}\r\n \r\n {item.brand}\r\n \r\n \r\n {numeral(item.price).format('$0,0.00')} {item.unitMeasure}\r\n \r\n {item.packSize}\r\n \r\n \r\n \r\n { props.onInsert ? : null }\r\n { props.onDelete ? : null }\r\n\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ShoppingListItemBlock;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Container, Row, Col, Card, Label, Input, Button } from 'reactstrap';\r\nimport { useParams, useHistory } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\nimport { GoPlus } from 'react-icons/go';\r\nimport { MdEdit, MdDelete } from 'react-icons/md';\r\nimport validate from 'validate.js';\r\nimport { isMobile } from 'react-device-detect';\r\nimport useInput from '../../../../../SharedComponents/SharedEffects/useInput';\r\nimport Header from '../../../../../SharedComponents/Header/Header';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport QuestionModal from '../../../../../SharedComponents/Modals/QuestionModal/QuestionModal';\r\nimport AlertModal from '../../../../../SharedComponents/Modals/AlertModal/AlertModal';\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport shoppingListsApi from '../../../../../api/shoppingListsApi';\r\nimport ShoppingListItemBlock from '../ShoppingListItemBlock/ShoppingListItemBlock';\r\nimport shoppingListSvg from '../../../../../assets/images/shopping-list.svg';\r\nimport shoppingListAddedOrUpdatedPng from '../../../../../assets/images/shopping-list-added-or-updated.png';\r\n\r\nconst ShoppingListForm = () => {\r\n\r\n const params = useParams();\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const [errorMsg, setErrorMsg] = useState('');\r\n const [list, setList] = useState(null);\r\n const [listItems, setListItems] = useState([]);\r\n const [page, setPage] = useState(1);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [loadMore, setLoadMore] = useState(false);\r\n const invalidNameMsg = 'Name cannot be blank.';\r\n\r\n const onListNameChange = (listName) => {\r\n listName = listName + '';\r\n if (listName.length > 0) {\r\n setErrorMsg('');\r\n } else {\r\n setErrorMsg(invalidNameMsg);\r\n }\r\n };\r\n\r\n const listName = useInput.useText('', {onChange: onListNameChange});\r\n\r\n const validateForm = () => {\r\n const data = {\r\n listName: listName.value\r\n };\r\n const constrains = {\r\n listName: {\r\n length: {\r\n minimum: 1\r\n }\r\n }\r\n };\r\n\r\n const result = validate(data, constrains);\r\n return !!!result;\r\n };\r\n\r\n const addOrUpadateShoppingList = (redirectToItems = false, displayAlert = true) => {\r\n if (listName.value.length == 0) {\r\n setErrorMsg(invalidNameMsg);\r\n return;\r\n }\r\n\r\n if (list) {\r\n shoppingListsApi\r\n .updateList(list.id, {name: listName.value})\r\n .then(() => {\r\n const redirectPath = (redirectToItems ? `/shopping-lists/items/${list.id}` : `/shopping-lists/${list.id}`);\r\n history.push(redirectPath);\r\n if (displayAlert) {\r\n dispatch(showModal(AlertModal, {\r\n message:
Your shopping list is edited!
,\r\n footerClass: 'justify-content-center',\r\n btnLabel: 'Got It',\r\n btnSize: 'lg'\r\n }));\r\n }\r\n }).catch(err=> {\r\n console.log(err);\r\n });\r\n } else {\r\n shoppingListsApi\r\n .addList({name: listName.value, itemList: []})\r\n .then(({data}) => {\r\n const redirectPath = (redirectToItems ? `/shopping-lists/items/${data.id}` : `/shopping-lists/${data.id}`);\r\n history.push(redirectPath);\r\n dispatch(showModal(AlertModal, {\r\n message:
Your shopping list is added!
,\r\n footerClass: 'justify-content-center',\r\n btnLabel: 'Got It',\r\n btnSize: 'lg'\r\n }));\r\n }).catch(err=> {\r\n console.log(err);\r\n });\r\n }\r\n };\r\n\r\n const addOrUpadateShoppingListAndRedirectToList = () => {\r\n addOrUpadateShoppingList(false, true);\r\n };\r\n\r\n const openDeleteListModal = () => {\r\n const modelProps = {\r\n message: 'Are you sure you want to delete this shopping list?',\r\n leftButton: {\r\n title: 'Yes',\r\n color: 'orange',\r\n onClick: () => {\r\n shoppingListsApi.deleteList(params.id).then(() => {\r\n history.push('/shopping-lists');\r\n }).catch(err=> {\r\n console.log(err);\r\n });\r\n }\r\n },\r\n rightButton: {\r\n title: 'No',\r\n color: 'green'\r\n }\r\n }\r\n dispatch(showModal(QuestionModal, modelProps));\r\n };\r\n\r\n const rightButton = {button: {onClick: addOrUpadateShoppingListAndRedirectToList, color: 'green', title: (params.id ? 'Update' : 'Add')}};\r\n\r\n const getshoppingListItems = (page) => {\r\n setIsLoading(true);\r\n shoppingListsApi.getListItems(params.id, page).then(res => {\r\n setListItems(listItems.concat(res.data));\r\n setPage(page);\r\n setLoadMore(res._meta.pageCount > res._meta.currentPage);\r\n setIsLoading(false);\r\n }).catch(err=> {\r\n console.error('getListItems get Error:', err);\r\n });\r\n };\r\n\r\n const scrollListener = () => {\r\n const threshold = 600;\r\n if (window.innerHeight + document.documentElement.scrollTop + threshold >= document.documentElement.offsetHeight\r\n && loadMore && !isLoading) {\r\n getshoppingListItems(page+1);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!isMobile) {\r\n window.addEventListener('mousewheel', scrollListener);\r\n window.addEventListener('scroll', scrollListener);\r\n window.addEventListener('resize', scrollListener);\r\n return () => {\r\n window.removeEventListener('mousewheel', scrollListener);\r\n window.removeEventListener('scroll', scrollListener);\r\n window.removeEventListener('resize', scrollListener);\r\n };\r\n }\r\n }, [page, loadMore, isLoading]);\r\n\r\n useEffect(() => {\r\n if (params.id) {\r\n shoppingListsApi.getListById(params.id).then(({data}) => {\r\n setList(data);\r\n listName.set(data.name);\r\n }).catch(err=> {\r\n if (history.location.pathname.startsWith('/shopping-lists/update-list')) {\r\n history.push('/shopping-lists');\r\n }\r\n console.error('getListById get Error:', err);\r\n });\r\n\r\n if (!isMobile) {\r\n getshoppingListItems(page);\r\n }\r\n }\r\n }, []);\r\n\r\n\r\n const deleteShoppingListItem = (itemDistributorId) => {\r\n shoppingListsApi.deleteListItem(params.id, itemDistributorId).then(() => {\r\n setListItems(listItems.filter(item => item.itemDistributorId != itemDistributorId));\r\n }).catch(err=> {\r\n console.log(err);\r\n });\r\n };\r\n\r\n const listItemsMap = listItems.map(item => {item});\r\n\r\n const backFunction = () => {\r\n if (params && params.id) {\r\n history.push(`/shopping-lists/${params.id}`);\r\n } else {\r\n history.push('/shopping-lists');\r\n }\r\n };\r\n\r\n if (isMobile) {\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n { errorMsg }\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n { errorMsg }\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n \r\n {listItemsMap}\r\n \r\n\r\n
\r\n \r\n );\r\n\r\n};\r\n\r\nexport default ShoppingListForm;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Container, Row, Col, Button } from 'reactstrap';\r\nimport { MdEdit, MdDelete } from 'react-icons/md';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport qs from 'query-string';\r\nimport { isMobile } from 'react-device-detect';\r\nimport useSingleShoppingList from '../SingleShoppingList/useSingleShoppingList';\r\nimport Header from '../../../../../SharedComponents/Header/Header';\r\nimport ShoppingListItemBlock from '../ShoppingListItemBlock/ShoppingListItemBlock';\r\nimport shoppingListsApi from '../../../../../api/shoppingListsApi';\r\nimport { setShoppingListsFilters } from '../../../../../reducers/shoppingLists/shoppingListsActions';\r\nimport './ShoppingListItemsManager.scss';\r\n\r\nconst ShoppingListItemsManager = () => {\r\n const history = useHistory();\r\n const params = useParams();\r\n const dispatch = useDispatch();\r\n\r\n //const filters = useSelector(({items}) => items.list.filters);\r\n const filters = useSelector(({shoppingLists}) => shoppingLists.filters);\r\n const urlObj = qs.parseUrl(history.location.search);\r\n let search = urlObj && urlObj.query && urlObj.query.query;\r\n\r\n const { list } = useSingleShoppingList.useSingleListApi();\r\n const { items: listItems, setItems: setListItems } = useSingleShoppingList.useListItemsApi();\r\n\r\n const [items, setItems] = useState([]);\r\n const [page, setPage] = useState(1);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [loadMore, setLoadMore] = useState(false);\r\n\r\n const getAvailableItems = (page) => {\r\n\r\n let filterOptions = {\r\n sort: {\r\n id: 5,\r\n name: 'frequent',\r\n type: 1,\r\n desc: 'Most Purchased'\r\n },\r\n product: 'ALL'\r\n };\r\n\r\n filterOptions = search ? {search, ...filterOptions, ...filters} : {...filterOptions, ...filters};\r\n\r\n setIsLoading(true);\r\n shoppingListsApi.getAvailableItems(filterOptions, page)\r\n .then(res => {\r\n if (page > 1) {\r\n setItems(items.concat(res.data.filter(item => item.isPunchedOut == 0)));\r\n } else {\r\n setItems(res.data.filter(item => item.isPunchedOut == 0));\r\n }\r\n setPage(page);\r\n setLoadMore(res._meta.pageCount > res._meta.currentPage);\r\n setIsLoading(false);\r\n })\r\n .catch(error => console.log('shoppingListspApi getListItems Error:', error));\r\n\r\n };\r\n\r\n const scrollListener = () => {\r\n const threshold = 600;\r\n if (window.innerHeight + document.documentElement.scrollTop + threshold >= document.documentElement.offsetHeight\r\n && loadMore && !isLoading) {\r\n getAvailableItems(page+1);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n window.addEventListener('mousewheel', scrollListener);\r\n window.addEventListener('scroll', scrollListener);\r\n window.addEventListener('resize', scrollListener);\r\n\r\n return () => {\r\n window.removeEventListener('mousewheel', scrollListener);\r\n window.removeEventListener('scroll', scrollListener);\r\n window.removeEventListener('resize', scrollListener);\r\n };\r\n }, [page, loadMore, isLoading]);\r\n\r\n useEffect(() => {\r\n if (params.id) {\r\n getAvailableItems(1);\r\n }\r\n }, [history.location.search, filters]);\r\n\r\n useEffect(() => {\r\n dispatch(setShoppingListsFilters(false, [], [], []));\r\n }, []);\r\n\r\n const addShoppingListItem = (itemDistributorId) => {\r\n shoppingListsApi.addListItem(params.id, itemDistributorId).then(({data}) => {\r\n setListItems(listItems.concat(data));\r\n }).catch(err=> {\r\n console.log(err);\r\n });\r\n };\r\n\r\n const deleteShoppingListItem = (itemDistributorId) => {\r\n shoppingListsApi.deleteListItem(params.id, itemDistributorId).then(() => {\r\n setListItems(listItems.filter(item => item.itemDistributorId != itemDistributorId));\r\n }).catch(err=> {\r\n console.log(err);\r\n });\r\n };\r\n\r\n const itemsMap = items.map((item) => {\r\n let props = {};\r\n\r\n const found = listItems.find(element => element.itemDistributorId == item.itemDistributorId);\r\n if (found) {\r\n props.onDelete = deleteShoppingListItem;\r\n } else {\r\n props.onInsert = addShoppingListItem;\r\n }\r\n\r\n if (isMobile) {\r\n return {item};\r\n }\r\n\r\n return {item};\r\n });\r\n\r\n const backFunction = () => {\r\n if (list && list.id) {\r\n history.push(`/shopping-lists/update-list/${list.id}`);\r\n } else {\r\n history.push('/shopping-lists');\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n {itemsMap}\r\n \r\n \r\n { isMobile ? : null }\r\n \r\n );\r\n\r\n};\r\n\r\nexport default ShoppingListItemsManager;\r\n","import React, {useState} from 'react';\r\nimport { Card, Row, Col, Button } from 'reactstrap';\r\nimport { useHistory, Link } from 'react-router-dom';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ShowIf from '../../../../SharedComponents/ShowIf/ShowIf';\r\nimport moreSvg from '../../../../assets/images/more.svg';\r\n\r\nconst ShoppingListsRow = (props) => {\r\n const list = props.children;\r\n const [hover, setHover] = useState(false);\r\n const history = useHistory();\r\n\r\n const goToShoppingList = () => {\r\n history.push(`/shopping-lists/${list.id}`);\r\n };\r\n\r\n if (isMobile) {\r\n return (\r\n \r\n \r\n \r\n
{list.name}
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n setHover(true)} onMouseLeave={() => setHover(false)}>\r\n \r\n
{list.name}
\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 ShoppingListsRow;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useParams, useHistory } from 'react-router-dom';\r\nimport shoppingListsApi from '../../../../api/shoppingListsApi';\r\nimport ShoppingListsRow from './ShoppingListsRow';\r\n\r\nconst useApi = () => {\r\n const [lists, setLists] = useState([]);\r\n const history = useHistory();\r\n\r\n const getShoppingLists = () => {\r\n shoppingListsApi.get().then(({data}) => {\r\n setLists(data);\r\n }).catch(err=> {\r\n console.error('shoppingListspApi get Error:', err);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n getShoppingLists();\r\n\r\n return () => {\r\n setLists([]);\r\n };\r\n }, [history.length]);\r\n\r\n const listsMap = lists.map(list => {list});\r\n\r\n return { lists, listsMap };\r\n};\r\n\r\nexport default {\r\n useApi\r\n};\r\n","import React from 'react';\r\nimport { Switch, Route, Redirect } from 'react-router-dom';\r\nimport { Container } from 'reactstrap';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { GoPlus } from 'react-icons/go';\r\nimport Header from '../../../../SharedComponents/Header/Header';\r\nimport SingleShoppingList from './SingleShoppingList/SingleShoppingList';\r\nimport ShoppingListForm from './ShoppingListForm/ShoppingListForm';\r\nimport ShoppingListItemsManager from './ShoppingListItemsManager/ShoppingListItemsManager';\r\nimport useShoppingLists from './useShoppingLists';\r\nimport './ShoppingLists.scss';\r\n\r\nconst ShoppingLists = () => {\r\n const { listsMap } = useShoppingLists.useApi();\r\n\r\n const history = useHistory();\r\n\r\n const goToNewShoppingList = () => {\r\n history.push('/shopping-lists/add-list');\r\n };\r\n\r\n const rightButton = { icon: };\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n {listsMap}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 ShoppingLists;\r\n","import React, {Fragment} from 'react';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport { Container } from \"reactstrap\";\r\nimport './SpecialRequest.scss';\r\nimport Header from '../../../../SharedComponents/Header/Header';\r\nimport SpecialRequestForm from './SpecialRequestForm';\r\n\r\nconst SpecialRequest = (props) => {\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n )\r\n};\r\n\r\nexport default SpecialRequest;","import React, { Fragment, useState, useEffect } from 'react';\r\nimport { Card, Row, Col, Button } from 'reactstrap';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport numeral from 'numeral';\r\nimport Moment from 'react-moment';\r\nimport useOrderHistoryList from './useOrderHistoryList';\r\n\r\nconst OrderHistoryListRow = (props) => {\r\n const order = props.children;\r\n const { setHover, statusOptions } = useOrderHistoryList.useRow(order);\r\n\r\n return (\r\n \r\n \r\n setHover(true)} onMouseLeave={() => setHover(false)}>\r\n {order.id}\r\n {order.customInvoiceId}\r\n {order.createTimeDisplay}\r\n \r\n {order.requestedDeliveryDate ?\r\n {order.requestedDeliveryDate}\r\n : \"\"\r\n }\r\n \r\n {order.distributor}\r\n {order.lineItems}\r\n {numeral(order.total).format('$0,0.00')}\r\n {order.poStatus === '' ? 'Not Sent' : order.poStatus}\r\n \r\n {new Date(order.poStatusDateTime)}\r\n {new Date(order.poStatusDateTime)}\r\n \r\n \r\n \r\n {statusOptions}\r\n \r\n \r\n \r\n \r\n \r\n {(order.customInvoiceId) ? order.customInvoiceId : order.id}\r\n {order.createTimeDisplay}\r\n {order.distributor}\r\n \r\n {statusOptions}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default OrderHistoryListRow;\r\n","import React, {useState, useEffect} from 'react';\r\nimport { Row, Col, Button } from 'reactstrap';\r\nimport { FaEye, FaTrash } from 'react-icons/fa';\r\nimport {colors, orderImageUpload} from '../../../../../config/constants';\r\nimport ordersApi from '../../../../../api/ordersApi';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { isMobile } from 'react-device-detect';\r\n\r\nconst InvoiceImage = (props) => {\r\n const { image, index, name, functionProps } = props;\r\n const [showNormal, setShowNormal] = useState(true);\r\n const [showDelete, setShowDelete] = useState(false);\r\n const [showView, setShowView] = useState(false);\r\n const {getImages, setOpenView, setModalTitle, setImageSrc} = functionProps;\r\n\r\n const seeNormal = () => {\r\n setShowNormal(true);\r\n setShowDelete(false);\r\n setShowView(false);\r\n };\r\n\r\n const seeDelete = () => {\r\n setShowNormal(false);\r\n setShowDelete(true);\r\n setShowView(false);\r\n };\r\n\r\n const seeView = () => {\r\n if(image.image_path){\r\n const parts = image.image_path.split('.');\r\n const extension = parts[parts.length-1];\r\n const exists = orderImageUpload.downloadTypes.filter(type => type === extension)[0];\r\n\r\n if(!exists){\r\n setShowNormal(false);\r\n setShowDelete(true);\r\n setShowView(false);\r\n\r\n setOpenView(true);\r\n setModalTitle(`Invoice ${index}`);\r\n setImageSrc(image.image_path);\r\n }else{\r\n let link = document.createElement('a');\r\n link.href = image.image_path;\r\n link.download = '' ;\r\n link.dispatchEvent(new MouseEvent('click'));\r\n }\r\n } \r\n };\r\n\r\n const execDelete = () => {\r\n ordersApi.deleteInvoiceImage(image.order_id, image.id)\r\n .then(res => {\r\n getImages();\r\n seeNormal();\r\n }).catch(error => {console.log(error)});\r\n\r\n };\r\n\r\n \r\n return ( \r\n \r\n \r\n {name}\r\n \r\n \r\n \r\n \r\n seeView()} className='clickable' color={colors.lightBlueText}/>\r\n \r\n \r\n seeDelete()} className='clickable' color={colors.lightBlueText}/>\r\n \r\n \r\n \r\n \r\n \r\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 InvoiceImage;","import React, {useState, useEffect} from 'react';\r\nimport { Modal, ModalHeader, ModalBody, Row, Col, Button } from 'reactstrap';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { IoMdCloudUpload } from \"react-icons/io\";\r\nimport {orderImageUpload} from '../../../../../config/constants';\r\nimport useModal from '../../../../../SharedComponents/Modals/useModal';\r\nimport ordersApi from '../../../../../api/ordersApi';\r\nimport InvoiceImage from './InvoiceImage';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport * as $ from 'jquery';\r\n\r\n\r\nconst OrderUploadInvoiceModal = (props) => {\r\n const { id, menu, fullMenu } = props;\r\n const modalProps = useModal(id, menu, fullMenu);\r\n const defaultModalTitle = 'Upload Invoice';\r\n const [images, setImages] = useState([]);\r\n \r\n const [openView, setOpenView] = useState(false);\r\n const [imageSrc, setImageSrc] = useState('');\r\n const [modalTitle, setModalTitle] = useState(defaultModalTitle);\r\n\r\n const getImages = () => {\r\n ordersApi.getInvoiceImages(id)\r\n .then(res => {\r\n const images = res.data;\r\n const functionProps = {getImages, setOpenView, setModalTitle, setImageSrc};\r\n setImages(images.map((image, index) => ));\r\n }).catch(error => {console.log(error)});\r\n };\r\n\r\n const closeImage = () =>{\r\n setOpenView(false);\r\n setModalTitle(defaultModalTitle);\r\n };\r\n\r\n const uploadImage = () =>{ \r\n $('#img-upload').click(); \r\n };\r\n\r\n const selectFile = () =>{\r\n const file = $('#img-upload').prop('files')[0];\r\n\r\n const typeAllowed = orderImageUpload.allowTypes.filter(type => type === file.type)[0];\r\n const sizeAllowed = (file.size <= orderImageUpload.sizeLimit );\r\n\r\n if (!typeAllowed) {\r\n $('#img-upload').val('');\r\n return;\r\n }\r\n\r\n if (!sizeAllowed) {\r\n $('#img-upload').val('');\r\n return;\r\n }\r\n\r\n ordersApi.uploadInvoiceImage(id, file)\r\n .then(res => {\r\n $('#img-upload').val('');\r\n getImages();\r\n }).catch(error => {console.log(error)});\r\n };\r\n\r\n useEffect(() => { \r\n getImages();\r\n }, []);\r\n\r\n return (\r\n \r\n {modalTitle}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n selectFile()} type='file' id='img-upload' accept=\".jpg,.jpeg,.png,.pdf\"/>\r\n \r\n \r\n \r\n \r\n
\r\n {images}\r\n
\r\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 OrderUploadInvoiceModal;","import React, { useState, useEffect } from 'react';\r\nimport useModal from '../../../../../SharedComponents/Modals/useModal';\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Card, Row, Col, Label, Button, CustomInput } from 'reactstrap';\r\nimport { isMobile } from 'react-device-detect';\r\nimport moment from 'moment';\r\nimport DatePicker from 'react-datepicker';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\n\r\nconst DownloadModal = (props) => {\r\n\r\n const { id, title, options, menu, fullMenu } = props;\r\n const modalProps = useModal(id, menu, fullMenu);\r\n const [mainOptions, setMainOptions] = useState(options);\r\n const [optionSelected, setOptionSelected] = useState(mainOptions.filter(opt => opt.selected === true)[0]);\r\n const [optionsMap, setOptionsMap] = useState('');\r\n\r\n const [startDate, setStartDate] = useState(new Date());\r\n const [endDate, setEndDate] = useState(new Date());\r\n\r\n const selectOption = (option) => {\r\n setOptionSelected(option);\r\n let mOptions = [];\r\n mainOptions.forEach(opt => { \r\n opt.selected = (opt.id === option.id) ? true : false; \r\n mOptions.push(opt); \r\n }); \r\n setMainOptions(mOptions);\r\n };\r\n\r\n const buildMap = () => {\r\n const map = mainOptions.map((option, index) => \r\n \r\n \r\n selectOption(option)}/>\r\n \r\n \r\n );\r\n setOptionsMap(map);\r\n };\r\n\r\n useEffect(() => {\r\n buildMap(); \r\n }, [mainOptions]);\r\n\r\n return (\r\n \r\n {title}\r\n \r\n {optionsMap}\r\n \r\n \r\n \r\n \r\n \r\n \r\n setStartDate(date)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setEndDate(date)} />\r\n \r\n \r\n \r\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 DownloadModal;\r\n","import React, { Fragment, useState, useEffect } from 'react';\r\nimport { Row, Col, Button } from 'reactstrap';\r\nimport ordersApi from '../../../../../api/ordersApi';\r\nimport OrderHistoryListRow from './OrderHistoryListRow';\r\nimport { showModal } from \"../../../../../reducers/modals/modalsActions\";\r\nimport OptionsModal from \"../../../../../SharedComponents/Modals/OptionsModal/OptionsModal\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { colors } from '../../../../../config/constants'\r\nimport { isMobile } from \"react-device-detect\";\r\nimport { FaTruck, FaCheck, FaTimes, FaEye } from \"react-icons/fa\";\r\nimport { AiOutlineReload } from \"react-icons/ai\";\r\nimport { IoMdCloudUpload } from \"react-icons/io\";\r\nimport { FiMoreHorizontal } from 'react-icons/fi';\r\nimport { MdEdit } from 'react-icons/md';\r\nimport lightIcon from '../../../../../assets/images/lightning-bolt.svg';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport useShoppingCart from '../../../../../SharedComponents/ShoppingCart/useShoppingCart';\r\nimport OrderUploadInvoiceModal from '../OrderUpload/OrderUploadInvoiceModal';\r\nimport DownloadModal from \"./DownloadModal\";\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\n\r\n\r\nconst useApi = () => {\r\n const [orders, setOrders] = useState([]);\r\n const [page, setPage] = useState(1);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [loadMore, setLoadMore] = useState(false);\r\n\r\n const getOrders = (page) => {\r\n setIsLoading(true);\r\n ordersApi.getByPage(page)\r\n .then(res => {\r\n setOrders(orders.concat(res.data));\r\n setPage(page);\r\n setLoadMore(res._meta.pageCount > res._meta.currentPage);\r\n setIsLoading(false);\r\n })\r\n .catch(error => console.log(error));\r\n };\r\n\r\n const ordersMap = orders.map((order, index) => {order});\r\n\r\n useEffect(() => {\r\n getOrders(page);\r\n }, []);\r\n\r\n return {\r\n orders, ordersMap, page, isLoading, loadMore, getOrders\r\n };\r\n};\r\n\r\nconst useDownload = () => {\r\n const dispatch = useDispatch();\r\n const firstActiveLoc = useSelector(({ user }) => user.activeLocation);\r\n const activeLocation = JSON.parse((localStorage.getItem('activeLocation') !== undefined) ? localStorage.getItem('activeLocation') : firstActiveLoc);\r\n const [modalOptions, setModalOptions] = useState([]);\r\n const [downloadLink, setDownloadLink] = useState('');\r\n\r\n const generateObject = () => {\r\n if (downloadLink !== '') {\r\n let link = document.createElement('a');\r\n link.href = downloadLink;\r\n link.download = '';\r\n link.dispatchEvent(new MouseEvent('click'));\r\n }\r\n };\r\n\r\n const downloadExcel = () => {\r\n ordersApi.downloadExcel()\r\n .then(res => {\r\n setDownloadLink(res.data.orderHistoryUrl);\r\n })\r\n .catch(error => {\r\n console.log(error)\r\n });\r\n };\r\n\r\n const downloadQuickbooks = (startDate, endDate) => {\r\n\r\n ordersApi.downloadQuickbooks(startDate, endDate)\r\n .then(res => {\r\n setDownloadLink(res.data);\r\n })\r\n .catch(error => {\r\n console.log(error)\r\n });\r\n };\r\n\r\n const openDownloadModal = () => {\r\n const optionProps = {\r\n title: 'Select',\r\n options: modalOptions,\r\n menu: isMobile ? true : false,\r\n fullMenu: isMobile ? true : false\r\n }\r\n dispatch(showModal(DownloadModal, optionProps));\r\n };\r\n\r\n const buildModalOptions = () => {\r\n const mainOptions = [{ id: 1, label: 'Excel', selected: true, onClick: downloadExcel, more: false }];\r\n if (activeLocation.display_accounting === 1) {\r\n mainOptions.push({ id: 2, label: 'Quickbooks', selected: false, onClick: downloadQuickbooks, more: true });\r\n }\r\n setModalOptions(mainOptions);\r\n };\r\n\r\n useEffect(() => {\r\n generateObject();\r\n }, [downloadLink]);\r\n\r\n useEffect(() => {\r\n buildModalOptions();\r\n }, []);\r\n\r\n return {\r\n modalOptions, downloadExcel, openDownloadModal\r\n };\r\n\r\n};\r\n\r\nconst useRow = (order) => {\r\n const isDisplayShoppingCart = useSelector(({ user }) => user.activeLocation.display_shopping_cart);\r\n const { id } = order;\r\n const [hover, setHover] = useState(false);\r\n const [statusOptions, setStatusOptions] = useState(true);\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const { updateBatch } = useShoppingCart.useBatchUpdateCart();\r\n\r\n\r\n const receive = () => {\r\n history.push(`/order-history/receive/${id}`);\r\n };\r\n\r\n const view = () => {\r\n history.push(`/order-history/view/${id}`);\r\n };\r\n\r\n const reorder = () => {\r\n let nItems = [];\r\n ordersApi.getOrdersById(id).then((res) => {\r\n nItems = res.data.items;\r\n updateBatch(nItems);\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n\r\n };\r\n\r\n const upload = () => {\r\n if (!isMobile) {\r\n const modalProps = {\r\n id: id,\r\n menu: isMobile ? true : false,\r\n fullMenu: true\r\n };\r\n dispatch(showModal(OrderUploadInvoiceModal, modalProps));\r\n } else {\r\n history.push(`/order-history/upload-invoice/${id}`);\r\n }\r\n\r\n };\r\n\r\n const openOrderOption = () => {\r\n const recieveEditOption = (order.status === 'received') ?\r\n Edit :\r\n Receive;\r\n const viewOption = View;\r\n const reorderOption = Reorder;\r\n const uploadOption = Upload or Take a Photo;\r\n\r\n const optionProps = {\r\n title: 'Select',\r\n options: [\r\n { label: recieveEditOption, onClick: receive },\r\n { label: viewOption, onClick: view },\r\n { label: reorderOption, onClick: reorder },\r\n { label: uploadOption, onClick: upload }\r\n ]\r\n }\r\n dispatch(showModal(OptionsModal, optionProps));\r\n };\r\n\r\n const buildStatusOptions = (status) => {\r\n let statusOnly = '';\r\n const recieveEditIcon = (status === 'received' || status === 'electronically_received') ?
Edit
:
Receive
;\r\n let statusButtons = \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ;\r\n switch (status) {\r\n case 'received':\r\n statusOnly =  {isMobile ? : 'Received'};\r\n break;\r\n case 'cancelled':\r\n statusOnly =  {isMobile ? : 'Order Cancelled'};\r\n statusButtons = statusOnly;\r\n break;\r\n case 'electronically_received':\r\n statusOnly = lightIcon {isMobile ? : 'Electronic Invoice'};\r\n break;\r\n default: //Neither 'cancelled' nor 'received'\r\n statusOnly =  {isMobile ? : 'On the Way'};\r\n break;\r\n }\r\n\r\n const statusOptions = isMobile ? statusOnly : (hover ? statusButtons : statusOnly);\r\n setStatusOptions(statusOptions);\r\n };\r\n\r\n useEffect(() => {\r\n buildStatusOptions(order.status);\r\n }, [hover]);\r\n\r\n return {\r\n hover, setHover, openOrderOption, receive, view, reorder, upload, buildStatusOptions, statusOptions, order\r\n }\r\n\r\n};\r\n\r\n\r\nexport default {\r\n useApi, useDownload, useRow\r\n};\r\n","import React, {Fragment, useState, useEffect } from 'react';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport { Row, Col, Button } from 'reactstrap';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport useOrderHistoryList from './useOrderHistoryList';\r\nimport {colors} from '../../../../../config/constants'\r\nimport { IoMdCalendar, IoMdCloudDownload } from 'react-icons/io';\r\nimport { FiPlus } from \"react-icons/fi\";\r\n\r\n\r\nconst SubHeaderOrderHistoryList = (props) => {\r\n \r\n const { modalOptions, downloadExcel, openDownloadModal } = useOrderHistoryList.useDownload();\r\n\r\n const download = () => {\r\n if(modalOptions.length>1){\r\n openDownloadModal();\r\n }else{\r\n downloadExcel();\r\n } \r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n Order No\r\n Invoice Number\r\n Order Date\r\n Delivery Date\r\n Distributor\r\n Line Items\r\n Total Amount\r\n PO Status\r\n Status\r\n \r\n \r\n {/* \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n No\r\n Date\r\n Distributor\r\n \r\n \r\n \r\n {/* */}\r\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 SubHeaderOrderHistoryList;","import React from 'react';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport { Container, Card, Row, Col } from 'reactstrap';\r\nimport InfiniteScroll from 'react-infinite-scroller';\r\nimport useOrderHistoryList from './useOrderHistoryList';\r\n\r\n\r\nconst OrderHistoryList = (props) => {\r\n const { orders, ordersMap, page, isLoading, loadMore, getOrders } = useOrderHistoryList.useApi();\r\n\r\n if (page > 1 && orders.length === 0) {\r\n return (\r\n \r\n \r\n \r\n \r\n No results found.\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {ordersMap}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default OrderHistoryList;\r\n","import React, { Fragment } from 'react';\r\nimport { Card, Row, Col, Input } from 'reactstrap';\r\nimport { IoIosCheckmarkCircle, IoIosCloseCircle } from 'react-icons/io';\r\nimport { isMobile } from 'react-device-detect';\r\nimport useOrderReceive from './useOrderReceive';\r\nimport { colors, orderItemFields } from '../../../../../config/constants';\r\nimport noImage from '../../../../../assets/images/no-image.png';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport useInput from '../../../../../SharedComponents/SharedEffects/useInput';\r\nimport ordersApi from '../../../../../api/ordersApi';\r\nimport { useParams } from 'react-router-dom';\r\nimport numeral from 'numeral';\r\nimport '../OrderHistory.scss';\r\n\r\nconst OrderReceiveRow = (props) => {\r\n const getOrdersById = props.getOrdersById;\r\n const { rejectItem, acceptItem } = useOrderReceive.useRow(props.orderReceiveList, props.editStatus, props.selectedOrder, getOrdersById);\r\n const item = props.data;\r\n const imageUrl = item.imageUrl ? item.imageUrl : noImage;\r\n const params = useParams();\r\n const idOrder = parseInt(params.id);\r\n const { value: quantity, set: setQuantity } = useInput.useText(item.quantity);\r\n const { value: description, set: setDescription } = useInput.useText(item.item);\r\n const { value: total, set: setTotal } = useInput.useText(item.price * item.quantity);\r\n const { value: merchantUnitPrice, set: setMerchantUnitPrice } = useInput.useText(item.unit_price);\r\n const { value: merchantUnitQuantity, set: setMerchantUnitQuantity } = useInput.useText(item.isEdited ? item.editedUnitQuantity : item.unitQuantity);\r\n const { value: merchantUnitSize, set: setMerchantUnitSize } = useInput.useText(item.isEdited ? item.editedUnitSize : item.unitSize);\r\n const { value: merchantPackSizeUnit, set: setMerchantPackSizeUnit } = useInput.useText(item.isEdited ? item.editedPackSizeUnit : item.packSizeUnit);\r\n\r\n const updateEditValues = (modifiedValue, field) => {\r\n if (!quantity) {\r\n return;\r\n }\r\n let orderItem = {\r\n order_item_id: item.oi_id,\r\n item_description: description,\r\n quantity: quantity,\r\n pack_size: merchantUnitQuantity + '/' + merchantUnitSize + ' ' + merchantPackSizeUnit,\r\n merchant_price: item.price,\r\n merchant_unit_price: merchantUnitPrice,\r\n };\r\n\r\n if (field === orderItemFields.quantity) {\r\n orderItem[field] = modifiedValue;\r\n setTotal(Math.round((merchantUnitQuantity * merchantUnitSize * merchantUnitPrice * modifiedValue) * 100) / 100);\r\n }\r\n if (field === orderItemFields.unitPrice) {\r\n orderItem[field] = modifiedValue;\r\n orderItem[orderItemFields.price] = Math.round((merchantUnitQuantity * merchantUnitSize * modifiedValue) * 100) / 100;\r\n setTotal(Math.round((merchantUnitQuantity * merchantUnitSize * modifiedValue * quantity) * 100) / 100);\r\n }\r\n if (field === orderItemFields.unitQuantity || field === orderItemFields.unitSize || field === orderItemFields.packSizeUnit) {\r\n orderItem[orderItemFields.packSize] = merchantUnitQuantity + '/' + merchantUnitSize + ' ' + merchantPackSizeUnit;\r\n orderItem[orderItemFields.price] = Math.round((merchantUnitQuantity * merchantUnitSize * merchantUnitPrice) * 100) / 100;\r\n setTotal(Math.round((merchantUnitQuantity * merchantUnitSize * merchantUnitPrice * quantity) * 100) / 100);\r\n }\r\n if (field === orderItemFields.total) {\r\n orderItem[orderItemFields.price] = Math.round((modifiedValue / quantity) * 100) / 100;\r\n orderItem[orderItemFields.unitPrice] = Math.round((orderItem[orderItemFields.price] / (merchantUnitQuantity * merchantUnitSize)) * 10000) / 10000;;\r\n setMerchantUnitPrice(orderItem[orderItemFields.unitPrice]);\r\n }\r\n\r\n const params = {\r\n items: [orderItem],\r\n };\r\n ordersApi.updateItems(idOrder, params).then((res) => {\r\n getOrdersById();\r\n }).catch(error => {\r\n });\r\n };\r\n\r\n if (isMobile) {\r\n return (\r\n \r\n \r\n \r\n \r\n Electronic Invoice\r\n \r\n \r\n Order Guide\r\n \r\n \r\n Special Request\r\n \r\n \r\n Edited\r\n \r\n {(item.status === 'electronically_received' ? 'Received' : item.status)}\r\n \r\n \r\n \r\n \r\n {item.name}\r\n \r\n \r\n \r\n \r\n {props.editStatus ?\r\n \r\n updateEditValues(description, orderItemFields.description)} />\r\n \r\n :\r\n \r\n {item.item}\r\n \r\n }\r\n \r\n \r\n \r\n \r\n {item.brand}\r\n \r\n \r\n \r\n \r\n {props.editStatus ? \r\n \r\n \r\n updateEditValues(merchantUnitPrice, orderItemFields.unitPrice)} />\r\n \r\n \r\n {item.packSizeUnit}\r\n \r\n \r\n :\r\n \r\n \r\n {numeral(item.unit_price).format('$0,0.00')}\r\n \r\n \r\n }\r\n \r\n \r\n {props.editStatus ?\r\n \r\n \r\n updateEditValues(merchantUnitQuantity, orderItemFields.unitQuantity)} />\r\n \r\n /\r\n \r\n updateEditValues(merchantUnitSize, orderItemFields.unitSize)} />\r\n \r\n \r\n {item.packSizeUnit}\r\n \r\n \r\n :\r\n \r\n \r\n {item.packSize}\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {props.editStatus ?\r\n \r\n \r\n \r\n updateEditValues(quantity, orderItemFields.quantity)} /> \r\n \r\n \r\n {item.unit_measure}\r\n \r\n \r\n updateEditValues(total, orderItemFields.total)} />\r\n \r\n \r\n :\r\n \r\n \r\n \r\n {item.quantity} {item.unit_measure}\r\n \r\n \r\n {numeral(item.price * item.quantity).format('$0,0.00')}\r\n \r\n \r\n }\r\n { rejectItem(props.data) }}>\r\n \r\n \r\n { acceptItem(props.data) }}>\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Electronic Invoice\r\n \r\n \r\n Order Guide\r\n \r\n \r\n Special Request\r\n \r\n \r\n Edited\r\n \r\n {(item.status === 'electronically_received' ? 'Received' : item.status)}\r\n \r\n \r\n \r\n \r\n {item.name}\r\n \r\n \r\n \r\n {props.editStatus ?\r\n \r\n updateEditValues(description, orderItemFields.description)} />\r\n \r\n :\r\n \r\n {item.item}\r\n \r\n }\r\n \r\n \r\n {item.brand}\r\n \r\n \r\n {props.editStatus ?\r\n \r\n Unit Price\r\n \r\n updateEditValues(merchantUnitPrice, orderItemFields.unitPrice)} /> {item.packSizeUnit}\r\n \r\n \r\n updateEditValues(merchantUnitQuantity, orderItemFields.unitQuantity)} /> /\r\n \r\n \r\n updateEditValues(merchantUnitSize, orderItemFields.unitSize)} /> {item.packSizeUnit}\r\n \r\n \r\n updateEditValues(quantity, orderItemFields.quantity)} />\r\n \r\n \r\n updateEditValues(total, orderItemFields.total)} />\r\n \r\n \r\n :\r\n \r\n \r\n ${item.unit_price} {item.packSizeUnit}\r\n \r\n \r\n {item.packSize}\r\n \r\n \r\n {item.quantity} {item.unit_measure}\r\n \r\n \r\n {numeral(item.price * item.quantity).format('$0,0.00')}\r\n \r\n \r\n }\r\n \r\n \r\n { rejectItem(props.data) }}>\r\n \r\n \r\n { acceptItem(props.data) }}>\r\n \r\n \r\n \r\n \r\n\r\n )\r\n}\r\n\r\nexport default OrderReceiveRow;\r\n","import React, { useState } from 'react';\r\nimport { Row, Col, Input, Modal, ModalBody, ModalHeader, ModalFooter, Button } from 'reactstrap';\r\nimport { FaCaretDown, FaCaretUp } from 'react-icons/fa';\r\nimport { colors } from '../../../../../../config/constants';\r\nimport { useDispatch } from 'react-redux';\r\nimport { showModal } from '../../../../../../reducers/modals/modalsActions';\r\nimport { isMobile } from 'react-device-detect';\r\nimport useModal from '../../../../../../SharedComponents/Modals/useModal';\r\nimport ShowIf from '../../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport Select from 'react-select';\r\nimport validate from 'validate.js';\r\nimport useAddCustomItemModal from '../../../../../../SharedComponents/Modals/AddCustomItemModal/useAddCustomItemModal';\r\nimport AddFoodbamItemModal from '../../../../../../SharedComponents/Modals/AddFoodbamItemModal/AddFoodbamItemModal';\r\nimport useOrderReceive from '../../OrderReceive/useOrderReceive';\r\nimport ordersApi from '../../../../../../api/ordersApi';\r\n\r\n\r\nconst AddNewItem = (props) => {\r\n const dispatch = useDispatch();\r\n const {id, selectedOrder, getOrdersById } = props;\r\n const {createCustomItem} = useOrderReceive.useCustom(getOrdersById);\r\n const formProps = useAddCustomItemModal.useForm();\r\n const {description, quantity, unitMeasure, price, packSize, din, brand} = formProps;\r\n const [showMore, setShowMore] = useState(false);\r\n const modalProps = useModal(id, isMobile, true);\r\n const saveIsDisabled = () => {\r\n const data = {\r\n description: formProps.description.value,\r\n price: formProps.price.value,\r\n packSize: {\r\n outerPack: formProps.packSize.outerPack.value,\r\n innerPack: formProps.packSize.innerPack.value,\r\n }\r\n };\r\n const constrains = {\r\n description: {presence: {allowEmpty: false}, length: {minimum: 2}},\r\n price: {presence: {allowEmpty: false}, numericality: true},\r\n \"packSize.outerPack\": {presence: {allowEmpty: false}, numericality: {onlyInteger: true, greaterThanOrEqualTo: 0}},\r\n \"packSize.innerPack\": {presence: {allowEmpty: false}, numericality: {onlyInteger: true, greaterThanOrEqualTo: 0}}\r\n };\r\n return validate(data, constrains) ? true : false;\r\n }\r\n\r\n const clickSearch = () => {\r\n const modalPropsCustom = {\r\n title: 'Add Items to Order ',\r\n initSearch: '',\r\n initItems: selectedOrder.items,\r\n includeSubrecipe: false,\r\n isOrder: true,\r\n idLabel: 'itemDistributorId',\r\n clickCustomCustom : () => {\r\n dispatch(showModal(AddNewItem, props));\r\n },\r\n onAdd : (allItems, newItems)=>{\r\n console.log(allItems);\r\n console.log(newItems);\r\n const itemsNew = [];\r\n newItems.forEach((element, i) => {\r\n const name = i;\r\n itemsNew[name] = element;\r\n });\r\n const items = itemsNew.map(o => { \r\n return {\r\n item_distributor_id: o.itemDistributorId,\r\n quantity: o.quantity\r\n }\r\n })\r\n const params = {\r\n orderId : selectedOrder.id,\r\n items\r\n }\r\n //console.log(params);\r\n ordersApi.bulkCreate(params).then((res) => {\r\n getOrdersById();\r\n }).catch(error => {\r\n });\r\n //console.log(allItems);\r\n //console.log(newItems);\r\n }\r\n }\r\n dispatch(showModal(AddFoodbamItemModal, modalPropsCustom));\r\n modalProps.toggle();\r\n };\r\n\r\n const clickSave = () => {\r\n const data = {\r\n description: formProps.description.value,\r\n quantity : formProps.quantity.value,\r\n unitMeasure: formProps.unitMeasure.value.value,\r\n distributor: formProps.distributor.value,\r\n price: formProps.price.value,\r\n packSize: {\r\n outerPack: formProps.packSize.outerPack.value,\r\n innerPack: formProps.packSize.innerPack.value,\r\n uom: formProps.packSize.uom.value.value\r\n },\r\n din: formProps.din.value,\r\n brand: formProps.brand.value,\r\n order_id: selectedOrder.id\r\n };\r\n createCustomItem(data)\r\n modalProps.toggle();\r\n };\r\n\r\n\r\n return (\r\n \r\n Add New Item\r\n \r\n \r\n Description *\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Quantity *\r\n Price *\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setShowMore(!showMore)}>\r\n \r\n Show Details\r\n \r\n \r\n Hide Details\r\n \r\n \r\n \r\n \r\n DIN\r\n Brand\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Unit of Measure *\r\n Pack Size *\r\n \r\n \r\n \r\n \r\n \r\n /\r\n \r\n \r\n \r\n \r\n \r\n \r\n plusQuantity(valueQuantity)}>\r\n \r\n \r\n \r\n \r\n \r\n Why is this being rejected\r\n \r\n \r\n \r\n \r\n onchangeCheck(1)} />\r\n \r\n \r\n \r\n \r\n onchangeCheck(2)} />\r\n \r\n \r\n \r\n \r\n onchangeCheck(3)} />\r\n \r\n \r\n \r\n \r\n onchangeCheck(4)} />\r\n \r\n \r\n \r\n \r\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 OrderReceiveRejectModal;","import React, { useState } from 'react';\r\nimport { Modal, ModalBody, ModalHeader, Row, Col, ModalFooter, Button, CustomInput } from 'reactstrap';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { colors } from '../../../../../../config/constants';\r\nimport useModal from '../../../../../../SharedComponents/Modals/useModal';\r\nimport useInput from \"../../../../../../SharedComponents/SharedEffects/useInput\";\r\n\r\nconst OrderReceiveCheckedModal = (props) => {\r\n const { id, menu, fullMenu, onSave } = props;\r\n const modalProps = useModal(id, menu, fullMenu);\r\n\r\n const [question1, setQuestion1] = useState(false);\r\n const [question2, setQuestion2] = useState(false);\r\n const [question3, setQuestion3] = useState(false);\r\n const [question4, setQuestion4] = useState(false);\r\n const [question5, setQuestion5] = useState(false);\r\n const { value: comment, set: setComment } = useInput.useText();\r\n\r\n const onChangeChecked = (question, res) => {\r\n switch (question) {\r\n case 1:\r\n setQuestion1(res);\r\n break;\r\n case 2:\r\n setQuestion2(res);\r\n break;\r\n case 3:\r\n setQuestion3(res);\r\n break;\r\n case 4:\r\n setQuestion4(res);\r\n break;\r\n case 5:\r\n setQuestion5(res);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const clickSave = () => {\r\n if (onSave) {\r\n const data = {\r\n question_1: question1,\r\n question_2: question2,\r\n question_3: question3,\r\n question_4: question4,\r\n question_5: question5,\r\n comment: comment\r\n }\r\n onSave(data);\r\n }\r\n modalProps.toggle();\r\n };\r\n\r\n\r\n return (\r\n \r\n Order Checked\r\n \r\n \r\n \r\n Did driver arrive during agreed time?\r\n \r\n \r\n \r\n \r\n onChangeChecked(1, 1)} />\r\n \r\n \r\n onChangeChecked(1, 0)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Were all weighted items verified?\r\n \r\n \r\n \r\n \r\n onChangeChecked(2, 1)} />\r\n \r\n \r\n onChangeChecked(2, 0)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Were there any product substitutions?\r\n \r\n \r\n \r\n \r\n onChangeChecked(3, 1)} />\r\n \r\n \r\n onChangeChecked(3, 0)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Were there any missing items?\r\n \r\n \r\n \r\n \r\n onChangeChecked(4, 1)} />\r\n \r\n \r\n onChangeChecked(4, 0)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Do you have any additional questions?\r\n \r\n \r\n \r\n \r\n onChangeChecked(5, 1)} />\r\n \r\n \r\n onChangeChecked(5, 0)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n\r\n}\r\n\r\nexport default OrderReceiveCheckedModal;","import React from 'react';\r\nimport { useEffect, useState } from \"react\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport {showModal} from '../../../../../reducers/modals/modalsActions';\r\nimport { useDispatch } from 'react-redux';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport ordersApi from '../../../../../api/ordersApi';\r\nimport OrderReceiveRow from './OrderReceiveRow';\r\nimport OrderReceiveRejectModal from '../Modals/OrderReceive/OrderReceiveRejectModal'\r\nimport OrderReceiveCheckedModal from '../Modals/OrderReceive/OrderReceiveCheckedModal';\r\nimport AlertModal from '../../../../../SharedComponents/Modals/AlertModal/AlertModal';\r\n\r\nconst useApi = (props, editStatus) => {\r\n const params = useParams();\r\n const id = parseInt(params.id);\r\n const [orderReceiveList, setOrderReceiveList] = useState([]);\r\n const [selectedOrder, setSelectedOrder] = useState([]);\r\n\r\n const getOrdersById = () => {\r\n ordersApi.getOrdersById(id).then((res) => {\r\n setOrderReceiveList(res.data.items.map(o => { return {\r\n ...o,\r\n receiveChecked: false,\r\n isRejected : false,\r\n isRejectSelected: false,\r\n isAccepted : false\r\n }}));\r\n setSelectedOrder(res.data);\r\n }).catch(error => {\r\n });\r\n };\r\n useEffect(() => {\r\n getOrdersById();\r\n }, []);\r\n\r\n const orderReceiveMap = orderReceiveList.map((c, i) =>\r\n \r\n )\r\n\r\n const acceptAllItems = (allState) => {\r\n if(allState) {\r\n setOrderReceiveList(orderReceiveList.map(o => {\r\n return {\r\n ...o,\r\n receiveChecked: true,\r\n isAccepted : true,\r\n isRejected : false,\r\n isRejectSelected : false,\r\n qtyReduction : '',\r\n statusReceived : 'received',\r\n rejectReason : ''\r\n }\r\n }));\r\n } else {\r\n setOrderReceiveList(orderReceiveList.map(o => {\r\n return {\r\n ...o,\r\n receiveChecked: false,\r\n isAccepted : false,\r\n isRejected : false,\r\n isRejectSelected : false,\r\n qtyReduction : '',\r\n statusReceived : '',\r\n rejectReason : ''\r\n }\r\n }));\r\n }\r\n }\r\n\r\n return { getOrdersById, orderReceiveList: {value: orderReceiveList, set: setOrderReceiveList}, orderReceiveMap, selectedOrder, acceptAllItems }\r\n\r\n}\r\n\r\nconst useRow = (orderReceiveList, editStatus, selectedOrder, getOrdersById) => {\r\n const dispatch = useDispatch();\r\n\r\n const acceptItem = (item) => {\r\n const id = item.oi_id;\r\n orderReceiveList.set(orderReceiveList.value.map(o => {\r\n if (o.oi_id !== id) return o;\r\n return {\r\n ...o,\r\n receiveChecked: !o.isAccepted,\r\n isRejected: false,\r\n statusReceived : 'received',\r\n isAccepted: !o.isAccepted,\r\n qtyReduction: ''\r\n }\r\n }));\r\n }\r\n\r\n const rejectItem = (item) => {\r\n const id = item.oi_id;\r\n orderReceiveList.set(orderReceiveList.value.map(o => {\r\n if (o.oi_id !== id) return o;\r\n return {\r\n ...o,\r\n receiveChecked: !o.isRejected,\r\n isRejectSelected: !o.isRejected,\r\n isRejected: !o.isRejected,\r\n isAccepted: false\r\n }\r\n }));\r\n\r\n const inputPropsRejectItem = {\r\n title: 'Reject',\r\n onSave: preReject,\r\n placeholder: '',\r\n menu: isMobile,\r\n fullMenu: true,\r\n id : id,\r\n item,\r\n selectedOrder : selectedOrder,\r\n getOrdersById: getOrdersById\r\n };\r\n console.log(inputPropsRejectItem);\r\n const selectedItem = orderReceiveList.value.filter(o => o.oi_id === id && o.isRejected === false)[0];\r\n if(selectedItem) dispatch(showModal(OrderReceiveRejectModal, inputPropsRejectItem));\r\n }\r\n\r\n const preReject = (item, close) => {\r\n const id = item.id;\r\n if(close) {\r\n const orl = orderReceiveList.value.map(o => {\r\n if (o.oi_id === id) {\r\n return {\r\n ...o,\r\n isRejectSelected : false\r\n }\r\n }\r\n return {\r\n ...o\r\n }\r\n });\r\n orderReceiveList.set(orl);\r\n } else {\r\n const orl = orderReceiveList.value.map(o => {\r\n if (o.oi_id === id) {\r\n return {\r\n ...o,\r\n id : o.oi_id,\r\n qtyReduction: item.itemQuantity,\r\n receiveChecked: true,\r\n isRejected : true,\r\n isRejectSelected : true,\r\n isAccepted: false,\r\n statusReceived : 'rejected',\r\n rejectReason : item.rejectReason\r\n }\r\n }\r\n return {\r\n ...o\r\n }\r\n });\r\n orderReceiveList.set(orl);\r\n }\r\n }\r\n\r\n return { rejectItem, acceptItem, editStatus, orderReceiveList: {value: orderReceiveList} }\r\n}\r\n\r\nconst useReceive = (orderReceiveList) => {\r\n const params = useParams();\r\n const id = parseInt(params.id);\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const orderChecked = () => {\r\n const orderCheckedEnable = orderReceiveList.every(item => item.receiveChecked === true);\r\n if(!orderCheckedEnable) return;\r\n\r\n const isNotZeroPrice = orderReceiveList.every(item => (item.price * item.quantity !== 0));\r\n if(isNotZeroPrice) {\r\n const inputPropsChecked = {\r\n title: '',\r\n onSave: orderCheckedPreReject,\r\n placeholder: '',\r\n menu: isMobile ? true : false,\r\n fullMenu: true\r\n };\r\n dispatch(showModal(OrderReceiveCheckedModal, inputPropsChecked));\r\n } else {\r\n const props = {\r\n title: 'Not all your items have prices',\r\n message: 'To complete the receiving of this order please enter all your price data.',\r\n btnLabel: 'Got It',\r\n footerClass: 'text-center',\r\n color: 'green'\r\n }\r\n dispatch(showModal(AlertModal, props))\r\n }\r\n }\r\n\r\n const orderCheckedPreReject = (objQuestions) => {\r\n const orderItemArray = orderReceiveList.map(o => {\r\n return {\r\n id: o.oi_id,\r\n qtyReduction: o.qtyReduction\r\n }\r\n })\r\n const objOrderItem = {};\r\n orderItemArray.forEach((element, i) => {\r\n const name = 'OrderItem' + i;\r\n objOrderItem[name] = element;\r\n });\r\n\r\n const orderItemAllArray = orderReceiveList.map(o => {\r\n return {\r\n id: o.oi_id,\r\n qtyReduction: o.qtyReduction,\r\n status: o.statusReceived,\r\n rejectReason: o.rejectReason\r\n }\r\n })\r\n\r\n const objOrderItemAll = {};\r\n orderItemAllArray.forEach((element, i) => {\r\n const name = 'OrderItem' + i;\r\n objOrderItemAll[name] = element;\r\n });\r\n ordersApi.preReject(id, objOrderItem).then((res) => {\r\n history.push({\r\n pathname: `/order-history/receive/${id}/order-complete`,\r\n state: {objOrderItem: objOrderItemAll, objQuestions : objQuestions, resPreReject : res.data }\r\n });\r\n }).catch(error => {\r\n dispatch(showModal(AlertModal, {message: error.data.message}));\r\n });\r\n }\r\n\r\n return {orderChecked, orderCheckedPreReject}\r\n};\r\n\r\nconst useReceiveComplete = (props, customInvoiceId) => {\r\n const params = useParams();\r\n const id = parseInt(params.id);\r\n const history = useHistory();\r\n\r\n const orderRedirect = (obj) => {\r\n if(!obj) {\r\n history.replace(`/order-history/receive/${id}`);\r\n }\r\n }\r\n\r\n const orderComplete = async () => {\r\n const orderItem = {\r\n customInvoiceId : customInvoiceId,\r\n itemList : {\r\n ...props.objOrderItem\r\n }\r\n }\r\n\r\n await ordersApi.checkItems(id, orderItem).then((res) => {\r\n }).catch(error => {\r\n });\r\n\r\n await ordersApi.survey(id, props.objQuestions).then((res) => {\r\n //history.push(`/order-history/receive/${id}`);\r\n history.push('/order-history');\r\n }).catch(error => {\r\n });\r\n }\r\n\r\n return { orderRedirect, orderComplete }\r\n}\r\n\r\nconst useCustom = (getOrdersById) => {\r\n const createCustomItem = (item) => {\r\n const params = {\r\n brand: item.brand,\r\n item_description: item.description,\r\n din: item.din,\r\n unit_quantity: item.packSize.innerPack,\r\n unit_size: item.packSize.outerPack,\r\n pack_size_unit: item.packSize.uom.shorthand,\r\n unit_measure: item.unitMeasure.id,\r\n price: item.price,\r\n quantity: item.quantity,\r\n order_id: item.order_id\r\n }\r\n ordersApi.createCustomItem(params).then((res) => {\r\n getOrdersById();\r\n }).catch(error => {\r\n });\r\n }\r\n\r\n return {createCustomItem }\r\n\r\n}\r\n\r\nexport default {\r\n useApi, useRow, useCustom, useReceive, useReceiveComplete\r\n};\r\n","import React, {Fragment} from 'react';\r\nimport { Card, Row, Col } from \"reactstrap\";\r\nimport { isMobile } from 'react-device-detect';\r\nimport {colors} from '../../../../../config/constants';\r\nimport noImage from '../../../../../assets/images/no-image.png';\r\n\r\n\r\nconst OrderReceiveRow = (props) => {\r\n const selectedOrder = props.selectedOrder;\r\n const item = props.data;\r\n const imageUrl = item.imageUrl ? item.imageUrl : noImage;\r\n\r\n if(isMobile) {\r\n return (\r\n \r\n \r\n \r\n {(item.status === 'electronically_received' ? 'Received' : item.status)}\r\n {item.isSpecial === 1 ? 'Special Request' : 'Order Guide'}\r\n \r\n \r\n \r\n \r\n {item.quantity}\r\n \r\n \r\n {item.name}\r\n \r\n \r\n \r\n \r\n {item.item}\r\n \r\n \r\n \r\n \r\n {selectedOrder ? selectedOrder.distributor : ''}\r\n \r\n \r\n \r\n \r\n {item.packSize}\r\n \r\n \r\n \r\n \r\n \r\n \r\n ${(item.lineItemTotal).toLocaleString('en', {maximumFractionDigits: 2, minimumFractionDigits: 2})}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {item.isSpecial === 1 ? 'Special Request' : 'Order Guide'}\r\n {(item.status === 'electronically_received' ? 'Received' : item.status)}\r\n \r\n \r\n \r\n \r\n {item.quantity}\r\n \r\n \r\n {item.name}\r\n \r\n \r\n \r\n \r\n {item.item}\r\n \r\n \r\n \r\n \r\n {item.brand}\r\n \r\n \r\n {selectedOrder ? selectedOrder.distributor : ''}\r\n \r\n \r\n \r\n \r\n {item.packSize}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ${(item.lineItemTotal).toLocaleString('en', {maximumFractionDigits: 2, minimumFractionDigits: 2})}\r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n}\r\n\r\nexport default OrderReceiveRow;","import React from 'react';\r\nimport { Modal, ModalBody, ModalHeader, Row, Col, Button } from 'reactstrap';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { isMobile } from 'react-device-detect';\r\nimport { IoIosArrowForward } from \"react-icons/io\";\r\nimport {colors} from '../../../../../../config/constants';\r\nimport useModal from '../../../../../../SharedComponents/Modals/useModal';\r\nimport moment from 'moment';\r\n\r\n\r\nconst OrderViewDetailsModal = (props) => {\r\n const { id, title, menu, fullMenu, selectedOrder } = props;\r\n const modalProps = useModal(id, menu, fullMenu);\r\n const history = useHistory();\r\n\r\n const showDetails = () => {\r\n history.push(`/order-history/inventory/${selectedOrder.id}`);\r\n modalProps.toggle();\r\n };\r\n\r\n return (\r\n \r\n {title}\r\n \r\n \r\n \r\n Inventory\r\n \r\n \r\n \r\n \r\n Last Inventory Date\r\n \r\n \r\n {moment(selectedOrder.lastInventoryDate).format(\"MM/DD/YY\")}\r\n \r\n \r\n \r\n \r\n On Hand Total\r\n \r\n \r\n {selectedOrder.onHandTotal}\r\n \r\n \r\n \r\n \r\n \r\n { isMobile ? \r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n Order\r\n \r\n \r\n \r\n \r\n Line Items\r\n \r\n \r\n {selectedOrder.lineItems}\r\n \r\n \r\n \r\n \r\n {selectedOrder.distributor} SubTotal\r\n \r\n \r\n \r\n ${selectedOrder.subtotal}\r\n \r\n \r\n \r\n \r\n Applied Credit\r\n \r\n \r\n ${selectedOrder.usedCredit}\r\n \r\n \r\n \r\n \r\n Rebates Accrued\r\n \r\n \r\n ${selectedOrder.totalRebates}\r\n \r\n \r\n \r\n \r\n Invoice Savings\r\n \r\n \r\n ${selectedOrder.totalSavings}\r\n \r\n \r\n \r\n \r\n Delivery Fee\r\n \r\n \r\n ${selectedOrder.deliveryFee}\r\n \r\n \r\n \r\n \r\n Total\r\n \r\n \r\n ${selectedOrder.total}\r\n \r\n \r\n \r\n \r\n Delivery Details\r\n \r\n \r\n \r\n \r\n Date\r\n \r\n \r\n {moment(selectedOrder.requestedDeliveryDate).format('dddd')}, {moment(selectedOrder.requestedDeliveryDate).format(\"MM/DD/YY\")}\r\n \r\n \r\n \r\n \r\n Time\r\n \r\n \r\n {selectedOrder.requestedDeliveryTime}\r\n \r\n \r\n \r\n \r\n Delivery Notes\r\n \r\n \r\n {selectedOrder.notes}\r\n \r\n \r\n \r\n \r\n )\r\n\r\n}\r\n\r\nexport default OrderViewDetailsModal;","\r\nimport React, { useState } from 'react';\r\nimport { Modal, ModalBody, ModalHeader, Row, Col, ModalFooter, Button, CustomInput } from 'reactstrap';\r\nimport useModal from '../../../../../../SharedComponents/Modals/useModal';\r\nimport { MdCloudDownload } from 'react-icons/md';\r\nimport {colors} from '../../../../../../config/constants';\r\n\r\n\r\n\r\nconst OrderViewDownloadModal = (props) => {\r\n const { id, fullMenu, onSave, titleOption } = props;\r\n const modalProps = useModal(id, true, fullMenu);\r\n const [order, setOrder] = useState(true);\r\n\r\n const clickDownload = () => {\r\n if (onSave) {\r\n onSave(order);\r\n }\r\n modalProps.toggle();\r\n };\r\n\r\n const onChangeOrder = (option, value) => {\r\n switch (option) {\r\n case 1: \r\n setOrder(value);\r\n break;\r\n case 2:\r\n setOrder(value);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return (\r\n \r\n Select...\r\n \r\n \r\n \r\n onChangeOrder(1, true)} />\r\n \r\n \r\n \r\n \r\n onChangeOrder(2, false)} />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n\r\n}\r\n\r\nexport default OrderViewDownloadModal;\r\n\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useParams } from \"react-router-dom\";\r\nimport { useDispatch } from 'react-redux';\r\nimport {showModal} from '../../../../../reducers/modals/modalsActions';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ordersApi from '../../../../../api/ordersApi';\r\nimport OrderViewRow from '../OrderView/OrderViewRow';\r\nimport OrderViewDetailsModal from '../Modals/OrderView/OrderViewDetailsModal';\r\nimport OrderViewDownloadModal from '../Modals/OrderView/OrderViewDownloadModal';\r\n\r\nconst useApi = (props) => {\r\n const params = useParams();\r\n const dispatch = useDispatch();\r\n const id = parseInt(params.id);\r\n const [orderViewList, setOrderViewList] = useState([]);\r\n const [selectedOrder, setSelectedOrder] = useState([]);\r\n const itemsCount = orderViewList.reduce((total, item) => total + item.quantity, 0);\r\n\r\n const getOrdersById = () => {\r\n ordersApi.getOrdersById(id).then((res) => {\r\n setOrderViewList(res.data.items);\r\n setSelectedOrder(res.data);\r\n }).catch(error => {\r\n });\r\n };\r\n useEffect(() => {\r\n getOrdersById();\r\n }, []);\r\n\r\n\r\n const showDetails = () => {\r\n const inputProps = {\r\n title: '',\r\n placeholder: '',\r\n menu: isMobile ? true : false,\r\n fullMenu: true,\r\n selectedOrder\r\n };\r\n\r\n dispatch(showModal(OrderViewDetailsModal, inputProps));\r\n }\r\n\r\n\r\n const openDownload = () => {\r\n const inputPropsDownload = {\r\n onSave : clickDownload,\r\n placeholder: '',\r\n menu: isMobile ? true : false,\r\n fullMenu: true,\r\n titleOption: selectedOrder.invoiceUrl ? 'Invoice PDF': 'Purchase Order',\r\n };\r\n dispatch(showModal(OrderViewDownloadModal, inputPropsDownload));\r\n }\r\n\r\n const clickDownload = (order) => {\r\n if(order) {\r\n const elem = document.createElement('a');\r\n if(selectedOrder.purchaseOrderUrl || selectedOrder.purchaseOrderUrl ) {\r\n elem.href = selectedOrder.invoiceUrl ? selectedOrder.invoiceUrl : selectedOrder.purchaseOrderUrl\r\n elem.target='_blank'\r\n elem.click();\r\n } else {\r\n if(selectedOrder.purchaseOrderUrlExcel) {\r\n elem.href = selectedOrder.purchaseOrderUrlExcel\r\n elem.click();\r\n }\r\n }\r\n } else {\r\n ordersApi.downloadOrder365(id).then((res) => {\r\n if(res.data) {\r\n const elem = document.createElement('a');\r\n elem.href = res.data.order365Url;\r\n elem.click();\r\n }\r\n }).catch(error => {\r\n });\r\n }\r\n \r\n }\r\n\r\n const orderViewMap = orderViewList.map((c, i) => \r\n \r\n )\r\n\r\n return { orderViewList, orderViewMap, selectedOrder, itemsCount, openDownload, showDetails}\r\n\r\n}\r\n\r\n\r\n\r\n\r\nexport default {\r\n useApi\r\n};\r\n","import React, {useState} from 'react';\r\nimport { Container, CardHeader, Row, Col, Card, Button} from 'reactstrap';\r\nimport { FaPen, FaCheck } from 'react-icons/fa';\r\nimport {colors} from '../../../../../config/constants';\r\nimport { isMobile } from 'react-device-detect';\r\nimport {showModal} from '../../../../../reducers/modals/modalsActions';\r\nimport { useDispatch } from 'react-redux';\r\nimport Header from '../../../../../SharedComponents/Header/Header';\r\nimport useOrderReceive from './useOrderReceive';\r\nimport PlusButton from '../../../../../SharedComponents/PlusButton/PlusButton';\r\nimport useModal from '../../../../../SharedComponents/Modals/useModal';\r\nimport AddNewItem from '../Modals/OrderReceive/AddNewItem';\r\nimport { IoIosArrowUp } from \"react-icons/io\";\r\nimport useOrderView from '../OrderView/useOrderView';\r\n\r\nconst OrderReceive = (props) => {\r\n const dispatch = useDispatch();\r\n const { id } = props;\r\n const modalProps = useModal(id, isMobile, true);\r\n const [editStatus, setEditStatus] = useState(false);\r\n const [allState, setAllState] = useState(false);\r\n const {orderReceiveMap, selectedOrder, acceptAllItems, orderReceiveList, getOrdersById} = useOrderReceive.useApi(props, editStatus);\r\n const {orderChecked} = useOrderReceive.useReceive(orderReceiveList.value, getOrdersById);\r\n const {showDetails} = useOrderView.useApi(props);\r\n\r\n const SubHeaderOrderReceive = (\r\n \r\n \r\n On Hand Total: ${selectedOrder ? selectedOrder.onHandTotal : 0}\r\n \r\n \r\n Show Details \r\n \r\n \r\n Order Total: ${selectedOrder ? selectedOrder.total : 0}\r\n \r\n \r\n )\r\n\r\n const clickAll = () => {\r\n setAllState(!allState);\r\n acceptAllItems(!allState)\r\n }\r\n\r\n const clickCustom = () => {\r\n const customModalProps = {\r\n selectedOrder : selectedOrder,\r\n getOrdersById: getOrdersById\r\n };\r\n modalProps.toggle();\r\n dispatch(showModal(AddNewItem, customModalProps));\r\n };\r\n\r\n if(isMobile) {\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n  \r\n \r\n \r\n \r\n \r\n {orderReceiveMap}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n
\r\n {SubHeaderOrderReceive}\r\n
\r\n \r\n {selectedOrder ? selectedOrder.distributor : ''}\r\n ${selectedOrder ? selectedOrder.totalPrice : '0.00'}\r\n \r\n \r\n \r\n \r\n \r\n Item\r\n Pack Size\r\n Quantity\r\n Subtotal\r\n \r\n \r\n \r\n  \r\n \r\n \r\n \r\n \r\n {orderReceiveMap}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Add New 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
\r\n )\r\n\r\n\r\n}\r\n\r\nexport default OrderReceive;","import React from 'react';\r\nimport { Container, CardHeader, Row, Col, Card} from 'reactstrap';\r\nimport { MdCloudDownload } from 'react-icons/md';\r\nimport { IoIosArrowDown } from 'react-icons/io';\r\nimport {colors} from '../../../../../config/constants';\r\nimport { isMobile } from 'react-device-detect';\r\nimport Header from '../../../../../SharedComponents/Header/Header';\r\nimport useOrderView from './useOrderView';\r\n\r\nconst OrderView = (props) => {\r\n const {orderViewMap, selectedOrder, itemsCount, showDetails, openDownload} = useOrderView.useApi(props);\r\n\r\n const SubHeaderOrderView = (\r\n \r\n \r\n On Hand Total: ${selectedOrder ? selectedOrder.onHandTotal : 0}\r\n \r\n \r\n Show Details \r\n \r\n \r\n Order Total: ${selectedOrder ? selectedOrder.total : 0}\r\n \r\n \r\n )\r\n\r\n let title = 'Order ';\r\n if (selectedOrder) {\r\n title = title + `${(selectedOrder.id ? selectedOrder.id : ' ') + ' ' + (selectedOrder.createTimeDisplay ? selectedOrder.createTimeDisplay : '')}`;\r\n title = title + \"\\n\" + `Invoice ${(selectedOrder && selectedOrder.customInvoiceId ? selectedOrder && selectedOrder.customInvoiceId || '': selectedOrder && selectedOrder.id || '')}`;\r\n }\r\n\r\n if (isMobile) {\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Show Details \r\n \r\n \r\n \r\n \r\n On Hand Total {selectedOrder ? selectedOrder.onHandTotal : 0}\r\n \r\n \r\n Order Total {selectedOrder ? selectedOrder.total : 0}\r\n \r\n \r\n \r\n \r\n \r\n Download\r\n \r\n \r\n {orderViewMap}\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n
\r\n {SubHeaderOrderView}\r\n
\r\n \r\n Download\r\n \r\n {orderViewMap}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n SUMMARY\r\n \r\n \r\n \r\n \r\n \r\n \r\n Line Items\r\n \r\n \r\n {selectedOrder ? selectedOrder.lineItems : 0}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Items\r\n \r\n \r\n {itemsCount}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Total Items Price\r\n \r\n \r\n ${selectedOrder ? selectedOrder.totalItemsPrice : 0}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Delivery Fee\r\n \r\n \r\n ${selectedOrder ? selectedOrder.deliveryFee : 0}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Same Day Delivery Fee\r\n \r\n \r\n ${selectedOrder ? selectedOrder.sameDayDeliveryFee : 0}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Special Taxes\r\n \r\n \r\n ${selectedOrder ? selectedOrder.salesTax : 0}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {selectedOrder ? `${selectedOrder.distributor + ' SubTotal'}` : ''}\r\n \r\n \r\n ${selectedOrder ? selectedOrder.subtotal : 0}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Promo\r\n \r\n \r\n ${selectedOrder ? selectedOrder.promoDiscount : 0}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Applied Credit\r\n \r\n \r\n ${selectedOrder ? selectedOrder.usedCredit : 0}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {selectedOrder ? `${selectedOrder.distributor + ' Total'}` : ''}\r\n \r\n \r\n ${selectedOrder ? selectedOrder.total : 0}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n )\r\n}\r\n\r\nexport default OrderView;\r\n","import React from 'react';\r\nimport { Container, Row, Col, Card, Input, Button} from 'reactstrap';\r\nimport { isMobile } from 'react-device-detect';\r\nimport Header from '../../../../../SharedComponents/Header/Header';\r\nimport useInput from '../../../../../SharedComponents/SharedEffects/useInput';\r\nimport useOrderReceive from './useOrderReceive';\r\nimport numeral from 'numeral';\r\nimport moment from 'moment';\r\n\r\nconst OrderReceiveComplete = (props) => {\r\n const stateLocation = props.props.history.location.state;\r\n const resPreReject = stateLocation ? stateLocation.resPreReject : null;\r\n const { value: valueCustomInvoiceId, set: setCustomInvoiceId } = useInput.useText();\r\n const { orderRedirect, orderComplete } = useOrderReceive.useReceiveComplete(stateLocation, valueCustomInvoiceId);\r\n orderRedirect(resPreReject);\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Distributor\r\n \r\n \r\n \r\n \r\n {resPreReject ? resPreReject.distributor : ''}\r\n \r\n \r\n Delivery Date\r\n \r\n \r\n \r\n \r\n Submission Date\r\n \r\n \r\n Delivery Date\r\n \r\n \r\n \r\n \r\n {resPreReject ? moment(resPreReject.submission_date).format(\"MM/DD/YY\") : ''}\r\n \r\n \r\n {resPreReject ? moment(resPreReject.delivery_date).format(\"MM/DD/YY\"): ''}\r\n \r\n \r\n \r\n \r\n Item Count\r\n \r\n \r\n \r\n \r\n \r\n \r\n {resPreReject ? resPreReject.line_items : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Original Total\r\n \r\n \r\n Total Price of Rejected Items\r\n \r\n \r\n \r\n \r\n {resPreReject ? numeral(resPreReject.original_total_price).format('$0,0.00') : ''}\r\n \r\n \r\n {resPreReject ? numeral(resPreReject.credit_refusal).format('$0,0.00'): ''}\r\n \r\n \r\n \r\n \r\n New Total\r\n \r\n \r\n Invoice Number\r\n \r\n \r\n \r\n \r\n {resPreReject ? numeral(resPreReject.new_total_price).format('$0,0.00') : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 OrderReceiveComplete;","import React, {useState, Fragment} from 'react';\r\nimport { Card, Row, Col, Button } from \"reactstrap\";\r\nimport { isMobile } from 'react-device-detect';\r\nimport { IoIosArrowDown, IoIosArrowUp } from \"react-icons/io\";\r\nimport {colors} from '../../../../../config/constants';\r\nimport noImage from '../../../../../assets/images/no-image.png';\r\nimport useOrderInventory from '../OrderInventory/useOrderInventory';\r\nimport moment from 'moment';\r\n\r\n\r\nconst OrderInventoryRow = (props) => {\r\n const { setHover, hover, showDetailsInventory } = useOrderInventory.useRow(props.data);\r\n const item = props.data;\r\n const imageUrl = item.imageUrl ? item.imageUrl : noImage;\r\n const [showDetails, setShowDetails] = useState(true);\r\n\r\n if(isMobile) {\r\n return (\r\n \r\n \r\n \r\n \r\n {item.name}\r\n \r\n \r\n \r\n {item.description}\r\n \r\n \r\n { showDetails &&\r\n \r\n setShowDetails(false)}>\r\n \r\n Show Details \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Par Level\r\n \r\n \r\n {item.parLevel}\r\n \r\n \r\n \r\n \r\n On Hand\r\n \r\n \r\n {item.onHand}\r\n \r\n \r\n \r\n \r\n On Hand Value\r\n \r\n \r\n {item.onHandAmount}\r\n \r\n \r\n \r\n \r\n Last Update Date\r\n \r\n \r\n {moment(item.updateTime).format('dddd')}, {moment(item.updateTime).format(\"MM/DD/YY\")}\r\n \r\n \r\n \r\n }\r\n { !showDetails &&\r\n \r\n setShowDetails(true)}>\r\n \r\n Hide Details \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n DIN\r\n \r\n \r\n {item.din}\r\n \r\n \r\n \r\n \r\n Price\r\n \r\n \r\n ${item.din}\r\n \r\n \r\n \r\n \r\n Brand\r\n \r\n \r\n {item.brand}\r\n \r\n \r\n \r\n \r\n Distributor\r\n \r\n \r\n {item.distributor}\r\n \r\n \r\n \r\n \r\n UOM\r\n \r\n \r\n {item.unitMeasure}\r\n \r\n \r\n \r\n \r\n Pack Size\r\n \r\n \r\n {item.packSize}\r\n \r\n \r\n \r\n \r\n View\r\n \r\n \r\n {item.comparisonView}\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n setHover(true)} onMouseLeave={() => setHover(false)} >\r\n \r\n \r\n {item.name}\r\n \r\n \r\n \r\n \r\n \r\n {item.description}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.parLevel}{item.unitMeasure}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.onHand}{item.unitMeasure}\r\n \r\n \r\n \r\n \r\n \r\n \r\n ${item.onHandAmount ? item.onHandAmount : 0}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {moment(item.updateTime).format('dddd')}, {moment(item.updateTime).format(\"MM/DD/YY\")}\r\n \r\n \r\n \r\n \r\n \r\n { hover &&\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 OrderInventoryRow;","import React from 'react';\r\nimport { Modal, ModalBody, ModalHeader, Row, Col } from 'reactstrap';\r\nimport useModal from '../../../../../../SharedComponents/Modals/useModal';\r\nimport noImage from '../../../../../../assets/images/no-image.png';\r\n\r\nconst OrderInventoryDetailsModal = (props) => {\r\n const { id, title, menu, fullMenu } = props;\r\n const modalProps = useModal(id, menu, fullMenu);\r\n const item = props.data;\r\n const imageUrl = item.imageUrl ? item.imageUrl : noImage;\r\n\r\n return (\r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n {item.name}\r\n \r\n \r\n \r\n \r\n \r\n {item.description}\r\n \r\n \r\n \r\n \r\n DIN\r\n \r\n \r\n {item.din}\r\n \r\n \r\n \r\n \r\n Price\r\n \r\n \r\n ${item.din}\r\n \r\n \r\n \r\n \r\n Brand\r\n \r\n \r\n {item.brand}\r\n \r\n \r\n \r\n \r\n Distributor\r\n \r\n \r\n {item.distributor}\r\n \r\n \r\n \r\n \r\n UOM\r\n \r\n \r\n {item.unitMeasure}\r\n \r\n \r\n \r\n \r\n Pack Size\r\n \r\n \r\n {item.packSize}\r\n \r\n \r\n \r\n \r\n View\r\n \r\n \r\n {item.comparisonView}\r\n \r\n \r\n \r\n \r\n )\r\n\r\n}\r\n\r\nexport default OrderInventoryDetailsModal;","import React, { useEffect, useState } from 'react';\r\nimport { useParams } from \"react-router-dom\";\r\nimport { useDispatch } from 'react-redux';\r\nimport {showModal} from '../../../../../reducers/modals/modalsActions';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ordersApi from '../../../../../api/ordersApi';\r\nimport OrderInvetoryRow from './OrderInventoryRow';\r\nimport OrderViewDetailsModal from '../Modals/OrderView/OrderViewDetailsModal';\r\nimport OrderInventoryDetailsModal from '../Modals/OrderInventory/OrderInventoryDetailsModal';\r\n\r\nconst useApi = (props) => {\r\n const params = useParams();\r\n const dispatch = useDispatch();\r\n const id = parseInt(params.id);\r\n const [orderInventoryList, setOrderInventoryList] = useState([]);\r\n\r\n const inputProps = {\r\n title: '',\r\n placeholder: '',\r\n //menu: isMobile,\r\n fullMenu: true\r\n };\r\n\r\n const getOrdersByInventory = () => {\r\n ordersApi.getOrdersByInventory(id).then((res) => {\r\n setOrderInventoryList(res.data);\r\n }).catch(error => {\r\n });\r\n };\r\n useEffect(() => {\r\n getOrdersByInventory();\r\n }, []);\r\n\r\n \r\n\r\n const showDetails = () => {\r\n dispatch(showModal(OrderViewDetailsModal, inputProps));\r\n }\r\n\r\n const orderInventoryMap = orderInventoryList.map((c, i) =>\r\n \r\n )\r\n\r\n return { orderInventoryList, orderInventoryMap, showDetails}\r\n\r\n}\r\n\r\nconst useRow = (data) => {\r\n \r\n const dispatch = useDispatch();\r\n const [hover, setHover] = useState(false);\r\n\r\n const showDetailsInventory = () => {\r\n const inputPropsInventory = {\r\n title: '',\r\n menu: isMobile ? true : false,\r\n fullMenu: true,\r\n data\r\n };\r\n dispatch(showModal(OrderInventoryDetailsModal, inputPropsInventory));\r\n }\r\n\r\n \r\n\r\n return { setHover, hover, showDetailsInventory }\r\n}\r\n\r\n\r\n\r\n\r\nexport default {\r\n useApi,\r\n useRow\r\n};\r\n","import React from 'react';\r\nimport { Container, Row, Col} from 'reactstrap';\r\nimport { isMobile } from 'react-device-detect';\r\nimport Header from '../../../../../SharedComponents/Header/Header';\r\nimport useOrderInventory from '../OrderInventory/useOrderInventory';\r\n\r\n\r\n\r\nconst OrderInventory = (props) => {\r\n const {orderInventoryMap, selectedOrder} = useOrderInventory.useApi(props);\r\n const SubHeaderOrderView = (\r\n \r\n \r\n Image\r\n \r\n \r\n Item Name\r\n \r\n \r\n Par Level\r\n \r\n \r\n On Hand\r\n \r\n \r\n On Hand Value\r\n \r\n \r\n Last Update Date\r\n \r\n \r\n \r\n \r\n )\r\n\r\n if(isMobile) {\r\n return (\r\n \r\n
\r\n {orderInventoryMap}\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n
\r\n {SubHeaderOrderView}\r\n
\r\n \r\n \r\n {orderInventoryMap}\r\n
\r\n )\r\n}\r\n\r\nexport default OrderInventory;","import React, {Fragment, useState, useEffect} from 'react';\r\nimport { Container, Card, Row, Col } from 'reactstrap';\r\nimport Header from '../../../../../SharedComponents/Header/Header';\r\nimport {colors, orderImageUpload} from '../../../../../config/constants';\r\nimport ordersApi from '../../../../../api/ordersApi';\r\nimport InvoiceImage from './InvoiceImage';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport * as $ from 'jquery';\r\nimport { GoPlus } from 'react-icons/go';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { showModal } from \"../../../../../reducers/modals/modalsActions\";\r\nimport OptionsModal from \"../../../../../SharedComponents/Modals/OptionsModal/OptionsModal\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { IoMdClose } from \"react-icons/io\";\r\n\r\n\r\nconst OrderUploadInvoiceMobile = () => {\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const defaultModalTitle = 'Invoices';\r\n const [images, setImages] = useState([]); \r\n const [openView, setOpenView] = useState(false);\r\n const [imageSrc, setImageSrc] = useState('');\r\n const [modalTitle, setModalTitle] = useState(defaultModalTitle); \r\n const params = history.location.pathname.split('/');\r\n const id = params[params.length-1];\r\n\r\n const getImages = () => {\r\n ordersApi.getInvoiceImages(id)\r\n .then(res => {\r\n const images = res.data;\r\n const functionProps = {getImages, setOpenView, setModalTitle, setImageSrc};\r\n setImages(images.map((image, index) => \r\n \r\n ));\r\n }).catch(error => {console.log(error)});\r\n };\r\n\r\n const newInvoice = () => {\r\n const optionProps = {\r\n title: 'Select',\r\n options: [\r\n {label: 'Take a Photo', onClick: takePhoto},\r\n {label: 'Upload Photo from Library', onClick: uploadPhoto}\r\n ]\r\n }\r\n dispatch(showModal(OptionsModal, optionProps));\r\n };\r\n\r\n const selectFile = () =>{\r\n const file = $('#img-upload').prop('files')[0];\r\n\r\n const typeAllowed = orderImageUpload.allowTypes.filter(type => type === file.type)[0];\r\n const sizeAllowed = (file.size <= orderImageUpload.sizeLimit );\r\n\r\n if (!typeAllowed) {\r\n $('#img-upload').val('');\r\n return;\r\n }\r\n\r\n if (!sizeAllowed) {\r\n $('#img-upload').val('');\r\n return;\r\n }\r\n\r\n ordersApi.uploadInvoiceImage(id, file)\r\n .then(res => {\r\n $('#img-upload').val('');\r\n getImages();\r\n }).catch(error => {console.log(error)});\r\n };\r\n\r\n const uploadPhoto = () => {\r\n $('#img-upload').click();\r\n };\r\n\r\n const takePhoto = () => {\r\n history.push(`/order-history/upload-invoice/${id}/take-photo`);\r\n };\r\n\r\n const closeImage = () =>{\r\n setOpenView(false);\r\n setModalTitle(defaultModalTitle);\r\n };\r\n\r\n const rightButton = {icon: };\r\n\r\n useEffect(() => { \r\n getImages();\r\n }, []);\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n selectFile()} type='file' id='img-upload' accept=\".jpg,.jpeg,.png,.pdf\"/>\r\n {images}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 OrderUploadInvoiceMobile;","import React from 'react';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport { Switch, Route, Redirect } from 'react-router-dom';\r\nimport { Container } from 'reactstrap';\r\nimport Header from '../../../../SharedComponents/Header/Header';\r\nimport SubHeaderOrderHistoryList from './OrderHistoryList/SubHeaderOrderHistoryList';\r\nimport OrderHistoryList from './OrderHistoryList/OrderHistoryList';\r\nimport OrderReceive from './OrderReceive/OrderReceive';\r\nimport OrderView from './OrderView/OrderView';\r\nimport OrderReceiveComplete from './OrderReceive/OrderReceiveComplete';\r\nimport OrderInventory from './OrderInventory/OrderInventory';\r\nimport OrderUploadInvoice from './OrderUpload/OrderUploadInvoiceMobile';\r\nimport TakePhoto from './OrderUpload/TakePhoto';\r\nimport './OrderHistory.scss';\r\n\r\nconst OrderHistory = (props) => {\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 OrderHistory;\r\n","import { useState, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useSelector } from 'react-redux';\r\nimport { limitOptions, sortOptions } from '../../../../config/constants';\r\nimport comparisonViewsApi from '../../../../api/comparisonViewsApi';\r\n\r\nconst useApi = (props) => {\r\n const param = useParams();\r\n // const sort = useSelector(({ items }) => items.inventory.sortBy);\r\n const sort = sortOptions.inventoryView.filter(iv => iv.default)[0]\r\n const [groups, setGroups] = useState([]);\r\n const [page, setPage] = useState(1);\r\n const [loadMore, setLoadMore] = useState(true);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const getGroups = () => {\r\n if (!page){ return; }\r\n const params = {\r\n page: page,\r\n limit: limitOptions.inventoryView,\r\n filterOptions: JSON.stringify({ sort: sort }),\r\n filters: null,\r\n analytics: 1\r\n };\r\n\r\n // dispatch(spinner(false));\r\n setIsLoading(true);\r\n comparisonViewsApi.groups(param.inventory, params)\r\n .then((res) => {\r\n setLoadMore(res._meta.pageCount>page);\r\n setPage( page + 1 );\r\n setGroups([...groups, ...res.data]);\r\n setIsLoading(false);\r\n // dispatch(spinner(true));\r\n }).catch(err => {\r\n // dispatch(spinner(true));\r\n console.error(err)\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if(param.inventory){\r\n setGroups([]);\r\n setLoadMore(true);\r\n setPage(1);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if(loadMore && !isLoading){\r\n getGroups();\r\n }\r\n }, [page, isLoading]);\r\n\r\n return {\r\n groups, setGroups\r\n };\r\n};\r\n\r\n\r\nexport default {\r\n useApi\r\n};\r\n","import React from 'react';\r\nimport { Card, Row, Col } from 'reactstrap';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ShowIf from '../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { FiMenu } from 'react-icons/fi';\r\nimport { colors } from '../../../../config/constants';\r\n\r\nconst GroupRow = ({group, index, dragHandleProps, isDragging }) => {\r\n const { id, name, expand } = group;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {name}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {name}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default GroupRow;\r\n","import React, { useRef } from 'react';\r\nimport { Container, Button } from 'reactstrap';\r\nimport { useParams, useHistory } from 'react-router-dom';\r\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\r\nimport Header from '../../../../SharedComponents/Header/Header';\r\nimport './SortInventory.scss';\r\nimport useSortInventory from './useSortInventory';\r\nimport GroupRow from './GroupRow';\r\nimport useDragDrop from '../../../../SharedComponents/SharedEffects/useDragDrop';\r\nimport comparisonViewsApi from '../../../../api/comparisonViewsApi';\r\n\r\nconst SortInventory = (props) => {\r\n const history = useHistory();\r\n const param = useParams();\r\n const { groups, setGroups } = useSortInventory.useApi(props);\r\n const {sortItems} = useDragDrop.useSort();\r\n\r\n const goPlaceOrderInventory = () => {\r\n history.push('/place-order/inventory');\r\n };\r\n\r\n const save = () => {\r\n const params = [];\r\n groups.map((group, i) => {\r\n params.push(group.id);\r\n });\r\n\r\n comparisonViewsApi.saveSorts(param.inventory, params)\r\n .then((res) => {\r\n goPlaceOrderInventory();\r\n }).catch(err => {\r\n console.error(err)\r\n });\r\n };\r\n\r\n const rightButton = { icon: };\r\n\r\n const isDragging = useRef(false);\r\n let dragApi;\r\n\r\n const onDragEnd = (result) => {\r\n isDragging.current = false;\r\n if (!result.destination || result.destination.index === result.source.index) return;\r\n sortItems(groups, result.source.index, result.destination.index);\r\n setGroups(groups.map((g, i) => {\r\n return { ...g, sort: i }\r\n })\r\n );\r\n };\r\n\r\n const cancelDragSensor = (api) => {\r\n dragApi = api;\r\n };\r\n\r\n\r\n return (\r\n \r\n
\r\n\r\n \r\n isDragging.current = true}>\r\n \r\n {(provided, snapshot) => {\r\n return (\r\n
\r\n {\r\n groups.map((group, i) =>\r\n \r\n {(provided, snapshot) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }}\r\n
\r\n )\r\n }\r\n {provided.placeholder}\r\n
\r\n );\r\n }}\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default SortInventory;\r\n","import React, { useEffect, Fragment, useState, useMemo } from 'react';\r\nimport timestampedInventoryApi from '../../../../../api/timestampedInventoryApi';\r\nimport { ListGroupItem, Row, Col } from 'reactstrap';\r\nimport moment from 'moment';\r\nimport numeral from 'numeral';\r\nimport './Inventories.scss';\r\nimport { MdRemoveRedEye, MdCloudDownload, MdKeyboardArrowRight } from 'react-icons/md';\r\nimport { useHistory } from 'react-router-dom';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { isMobile } from 'react-device-detect';\r\nimport InfiniteScroll from 'react-infinite-scroller';\r\nimport { setActiveInventoryEdit } from '../../../../../reducers/user/userAction';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nconst Inventories = (props) => {\r\n\r\n\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n dispatch(setActiveInventoryEdit(false));\r\n }, [])\r\n const [listInventories, setListInventories] = useState([]);\r\n const history = useHistory();\r\n const [page, setPage] = useState(1);\r\n const [loadMore, setLoadMore] = useState(true);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const completeInventory = (oPage) => {\r\n setIsLoading(true);\r\n timestampedInventoryApi.getInventoriesComplete(oPage)\r\n .then(res => {\r\n setIsLoading(false);\r\n const loadMoreNew = res._meta.pageCount > res._meta.currentPage;\r\n const pageNew = loadMoreNew ? page + 1 : 1;\r\n setListInventories(listInventories.concat(res.data));\r\n setPage(pageNew);\r\n if (res._meta.pageCount - 1 == res._meta.currentPage) {\r\n setLoadMore(false);\r\n };\r\n })\r\n .catch(err => console.log(err));\r\n\r\n };\r\n\r\n const getItemsInventory = (itemInventory) => {\r\n localStorage.setItem('itemInventory', JSON.stringify(itemInventory))\r\n history.push(`/inventory-view/inventories-detail`);\r\n };\r\n\r\n const downloadSpreadsheet = (item) => {\r\n var aElement = document.createElement('a');\r\n aElement.href = item.file_url + '?t=' + (new Date()).getTime();\r\n aElement.click();\r\n };\r\n\r\n const listInventoriesGroup = useMemo(() => listInventories.map((item) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {moment(item.start_date).format('LL')}\r\n \r\n \r\n {moment(item.completed_date).format('LL')}\r\n \r\n \r\n {numeral(item.total_on_hand_value).format('$0,0.00')} {item.unitMeasure}\r\n \r\n \r\n \r\n getItemsInventory(item)}>\r\n \r\n

View

\r\n \r\n downloadSpreadsheet(item)}>\r\n \r\n

Download

\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Start Date\r\n

{moment(item.start_date).format('LL')}

\r\n
\r\n
\r\n Complete Date\r\n

{moment(item.completed_date).format('LL')}

\r\n
\r\n
\r\n Total On Hand Value\r\n
getItemsInventory(item)}>\r\n

{numeral(item.total_on_hand_value).format('$0,0.00')} {item.unitMeasure}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n );\r\n }), [listInventories]);\r\n\r\n useEffect(() => {\r\n completeInventory(page);\r\n }, []);\r\n\r\n\r\n return (\r\n \r\n\r\n
\r\n \r\n \r\n \r\n Start Date\r\n Complete Date\r\n Total On Hand Value\r\n \r\n \r\n \r\n\r\n \r\n { completeInventory(page) }}\r\n hasMore={loadMore && !isLoading}\r\n useWindow={false}\r\n >\r\n\r\n {listInventoriesGroup}\r\n \r\n\r\n
\r\n
\r\n\r\n );\r\n};\r\n\r\nexport default Inventories;\r\n","import React, { Fragment, useState, useContext, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Col, Input } from 'reactstrap';\r\nimport MinusButton from '../MinusButton/MinusButton';\r\nimport PlusButton from '../PlusButton/PlusButton';\r\nimport { isMobile } from 'react-device-detect';\r\nimport useConversion from '../Conversion/useConversion';\r\nimport { onHandTypes } from '../../config/constants';\r\nimport { InventoryContext } from \"../../Views/MainApp/Views/PlaceOrder/PlaceOrderInventory/PlaceOrderInventoryItem/context/InventoryContext\";\r\nimport useOnHandItemInterface from './useOnHandItemInterface';\r\nimport { cloneWith } from 'lodash';\r\nimport { useSelector } from 'react-redux';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\n\r\nconst OnHandItemReview = ({ onHandType, item, isCustomPackSize, unitToConvert, comparisonViewId, groupId, groupTotalProps, type }) => {\r\n\r\n const { disabled } = useOnHandItemInterface.useInputConnection();\r\n const { unitQuantity, unitSize, packSizeUom, customPackSize, packSize } = item;\r\n const onHandProps = { comparisonViewId, groupId, onHandType, ...item, unitToConvert };\r\n const isActiveInventoryEdit = useSelector(({ user }) => user.isActiveInventoryEdit);\r\n // const isActiveInventoryEdit = true;\r\n\r\n const inventoryContext = useContext(InventoryContext);\r\n const { OH, OHUom, OHPack } = inventoryContext;\r\n\r\n\r\n const getHandBase = (onHandType) => {\r\n switch (onHandType) {\r\n case onHandTypes.cs: return OH; break;\r\n case onHandTypes.pack: return OHPack; break;\r\n case onHandTypes.uom: return OHUom; break;\r\n default: break;\r\n }\r\n };\r\n // let onHandBase = onHandType === onHandTypes.cs ? OH : OHUom;\r\n let onHandBase = getHandBase(onHandType);\r\n\r\n onHandBase = (onHandBase === undefined || onHandBase === null || onHandBase === '') ? 0 : onHandBase;\r\n const [onHandAmount, setOnHandAmount] = useState(onHandBase);\r\n\r\n const { updateOnHand, updateTotalInit, updateOnHandEdit } = useOnHandItemInterface.useOnHandUpdate(onHandProps, setOnHandAmount, groupTotalProps);\r\n const { valid } = useOnHandItemInterface.useOnHandValidate()\r\n\r\n let finalPackSize = isCustomPackSize ? customPackSize : packSize;\r\n let finalPackSizeUom = packSizeUom;\r\n\r\n if (unitToConvert.label !== 'Original') {\r\n finalPackSize = useConversion.usePackSize(unitQuantity, unitSize, packSizeUom, unitToConvert.value);\r\n finalPackSizeUom = finalPackSize ? unitToConvert.label : finalPackSizeUom;\r\n };\r\n\r\n\r\n const handleKeypress = (e) => {\r\n if (e.charCode === 13) {\r\n if (isActiveInventoryEdit) {\r\n updateOnHandEdit(onHandAmount, onHandAmount, OH, OHUom, OHPack, item.inventoryId, item.itemId);\r\n } else {\r\n updateOnHand(onHandAmount, onHandAmount, OH, OHUom, OHPack, onHandProps);\r\n }\r\n }\r\n };\r\n\r\n const onHandHandler = (e) => {\r\n if (!valid(e.target.value)) { return; }\r\n if (isActiveInventoryEdit) {\r\n updateOnHandEdit(e.target.value, onHandAmount, OH, OHUom, OHPack, item.inventoryId, item.itemId);\r\n } else {\r\n updateOnHand(e.target.value, onHandAmount, OH, OHUom, OHPack, onHandProps);\r\n\r\n }\r\n };\r\n\r\n const onHandClick = (newOnHandAmount) => {\r\n // saveItem();\r\n if (!valid(newOnHandAmount)) { return; }\r\n if (isActiveInventoryEdit) {\r\n updateOnHandEdit(newOnHandAmount, onHandAmount, OH, OHUom, OHPack, item.inventoryId, item.itemId);\r\n } else {\r\n updateOnHand(newOnHandAmount, onHandAmount, OH, OHUom, OHPack, onHandProps);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n updateTotalInit(OH, OHUom, OHPack);\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n { onHandClick(parseFloat(onHandAmount) - 1) }} isBlue isActive={onHandAmount > 0} disabled={disabled} />\r\n \r\n \r\n\r\n \r\n \r\n { onHandClick(parseFloat(onHandAmount) - 1) }} isBlue isActive={onHandAmount > 0} disabled={disabled} />\r\n \r\n \r\n\r\n \r\n \r\n \r\n {/*\r\n \r\n \r\n {onHandType === onHandTypes.cs ? item.unitMeasure : (onHandType == 'pack' ? `${finalPackSizeUom}` : finalPackSizeUom)}\r\n \r\n */}\r\n\r\n \r\n \r\n { onHandClick(parseFloat(onHandAmount) + 1) }} isBlue isActive={onHandAmount > 0} disabled={disabled} />\r\n \r\n \r\n\r\n \r\n \r\n { onHandClick(parseFloat(onHandAmount) + 1) }} isBlue isActive={onHandAmount > 0} disabled={disabled} />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\n\r\nOnHandItemReview.propTypes = {\r\n onHandType: PropTypes.string\r\n};\r\n\r\nOnHandItemReview.defaultProps = {\r\n onHandType: onHandTypes.cs\r\n};\r\n\r\nexport default OnHandItemReview;\r\n","import React, { Fragment, useContext } from 'react';\r\nimport { ListGroupItem } from 'reactstrap';\r\nimport numeral from 'numeral';\r\nimport OnHandItemReview from '../../../../../SharedComponents/OnHandItem/OnHandItemReview';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { InventoryContext } from '../../PlaceOrder/PlaceOrderInventory/PlaceOrderInventoryItem/context/InventoryContext';\r\nimport { useSelector } from 'react-redux';\r\n\r\n\r\nconst ListItemsGroupInventoryDetail = (props) => {\r\n const { item, unitToConvert, comparisonViewId, groupId, groupTotalProps } = props;\r\n const isCustomPackSize = item.customPackSize ? !(item.customPackSize === item.packSize) : false;\r\n const finalPackSize = isCustomPackSize ? item.customPackSize : item.packSize;\r\n const finalPackSizeUom = (unitToConvert.label !== 'Original') ? unitToConvert.label : item.packSizeUom;\r\n const inventoryContext = useContext(InventoryContext);\r\n const isActiveInventoryEdit = useSelector(({ user }) => user.isActiveInventoryEdit);\r\n\r\n const {\r\n totalOH,\r\n totalOHAmount,\r\n collectiveOH,\r\n collectiveOHUom,\r\n totalCase,\r\n totalPack,\r\n totalUnit,\r\n } = inventoryContext;\r\n\r\n\r\n\r\n return (\r\n \r\n \r\n
\r\n\r\n {/*
\r\n
*/}\r\n \r\n
\r\n {item.description}\r\n
\r\n

{item.distributor}

\r\n

{numeral(item.price).format('$0,0.00')} {item.unitMeasure}

\r\n

{finalPackSize}

\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n {item.description}\r\n

{numeral(totalOHAmount).format('$0,0.00')}

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

{item.distributor}

\r\n

{numeral(item.price).format('$0,0.00')} {item.unitMeasure}

\r\n

{finalPackSize}

\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n Case\r\n ({numeral(totalCase).format('$0,0.00')})\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n Pack\r\n ({numeral(totalPack).format('$0,0.00')})\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n Unit\r\n ({numeral(totalUnit).format('$0,0.00')})\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n

{numeral(totalOHAmount).format('$0,0.00')}

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

\r\n Case ({numeral(totalCase).format('$0,0.00')})\r\n

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

\r\n Pack ({numeral(totalPack).format('$0,0.00')})\r\n

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

\r\n Unit ({numeral(totalUnit).format('$0,0.00')})\r\n

\r\n
\r\n
\r\n \r\n
\r\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 ListItemsGroupInventoryDetail;\r\n","import React, { Fragment, useState, useMemo, useEffect } from 'react';\r\nimport { ListGroupItem, Collapse } from 'reactstrap';\r\nimport { MdExpandMore, MdExpandLess } from 'react-icons/md';\r\nimport numeral from 'numeral';\r\nimport ListItemsGroupInventoryDetail from './ListItemsGroupInventoryDetail';\r\nimport { useSelector } from 'react-redux';\r\nimport usePlaceOrderInventory from '../../PlaceOrder/PlaceOrderInventory/usePlaceOrderInventory';\r\nimport { InventoryContextProvider } from '../../PlaceOrder/PlaceOrderInventory/PlaceOrderInventoryItem/context/InventoryContext';\r\n\r\nconst ListGroupInventoryDetail = (props) => {\r\n\r\n\r\n const { listItems, getInventoryItems, setTotalComparisonView, showOnlyMissingHv, setUpdateComparisonView } = props;\r\n const expandAll = useSelector(({ inventoryView }) => inventoryView.isExpand);\r\n const [isOpenItems, setIsOpenItems] = useState(false);\r\n const convertProps = usePlaceOrderInventory.useConversion(listItems, getInventoryItems);\r\n const toggleItems = () => setIsOpenItems(!isOpenItems);\r\n const textSearchValue = useSelector(({ inventoryView }) => inventoryView.textSearchValue);\r\n\r\n const [totalOnHandAmt, setTotalOnHandAmt] = useState(listItems.totalOnHandAmount);\r\n const [totalGroupSpent, setTotalGroupSpent] = useState(listItems.purchased);\r\n const [totalOnHandAmtShowOnlyMissing, setTotalOnHandAmtShowOnlyMissing] = useState(listItems.totalOnHandAmount);\r\n\r\n const comparisonViewId = listItems.comparisonViewId;\r\n const id = listItems.id;\r\n\r\n const groupTotalProps = {\r\n totalOnHandAmt,\r\n setTotalOnHandAmt,\r\n totalGroupSpent,\r\n setTotalGroupSpent,\r\n comparisonViewId, id,\r\n setTotalComparisonView,\r\n showOnlyMissingHv,\r\n totalOnHandAmtShowOnlyMissing,\r\n setTotalOnHandAmtShowOnlyMissing,\r\n };\r\n\r\n\r\n useEffect(() => {\r\n setIsOpenItems(expandAll);\r\n }, [expandAll])\r\n\r\n\r\n const listItemByGroup = useMemo(() => listItems.items\r\n .filter(item => String(item.description).toLowerCase().includes(textSearchValue.toLowerCase()))\r\n .map((item, index) => {\r\n\r\n const onHand = item.onHand == null ? 0 : item.onHand;\r\n const onHandPack = item.onHandPack == null ? 0 : item.onHandPack;\r\n const onHandUom = item.onHandUom == null ? 0 : item.onHandUom;\r\n if (showOnlyMissingHv) {\r\n return (\r\n\r\n onHand == 0 && onHandPack == 0 && onHandUom == 0 &&\r\n \r\n \r\n \r\n\r\n\r\n );\r\n } else {\r\n return (\r\n \r\n \r\n \r\n\r\n\r\n );\r\n }\r\n\r\n\r\n }), [listItems, textSearchValue, showOnlyMissingHv, groupTotalProps]);\r\n\r\n return (\r\n \r\n\r\n {/* List Group */}\r\n\r\n \r\n
\r\n {listItems.name}\r\n
\r\n

{numeral(listItems.totalOnHandAmount).format('$0,0.00')}

\r\n {\r\n isOpenItems ?\r\n \r\n :\r\n \r\n }\r\n
\r\n
\r\n
\r\n\r\n\r\n {/* List items Groups */}\r\n \r\n {listItemByGroup}\r\n \r\n\r\n {/* */}\r\n\r\n
\r\n );\r\n};\r\n\r\nexport default ListGroupInventoryDetail;\r\n","import React, { Fragment, useState, useMemo, useEffect } from 'react';\r\nimport { ListGroupItem, Collapse } from 'reactstrap';\r\nimport { MdExpandMore, MdExpandLess } from 'react-icons/md';\r\nimport numeral from 'numeral';\r\nimport { useSelector } from 'react-redux';\r\nimport ListGroupInventoryDetail from './ListGroupInventoryDetail';\r\n\r\nconst ListComparisonViewDetail = (props) => {\r\n\r\n const { listGroups, getInventoryItems, showOnlyMissingHv } = props;\r\n\r\n const [isOpen, setIsOpen] = useState(false);\r\n const initTotalComparisonView = listGroups.groups.length > 0 ? listGroups.groups[0].comparisonViewTotalOnHandAmount : 0;\r\n const [totalComparisonView, setTotalComparisonView] = useState(initTotalComparisonView);\r\n const expandAll = useSelector(({ inventoryView }) => inventoryView.isExpand);\r\n const textSearchValue = useSelector(({ inventoryView }) => inventoryView.textSearchValue);\r\n\r\n const toggle = () => setIsOpen(!isOpen);\r\n\r\n\r\n useEffect(() => {\r\n setIsOpen(expandAll);\r\n }, [expandAll])\r\n\r\n\r\n const listGroupsItems = useMemo(() => listGroups.groups.map((item) => {\r\n const ifExist = item.items.some(i => String(i.description).toLowerCase().includes(textSearchValue.toLowerCase()));\r\n return (\r\n ifExist &&\r\n \r\n );\r\n\r\n }), [listGroups, showOnlyMissingHv, textSearchValue]);\r\n\r\n\r\n return (\r\n \r\n \r\n
\r\n

{listGroups.name}

\r\n
\r\n

{numeral(listGroups.totalOnHandAmount).format('$0,0.00')}

\r\n\r\n\r\n {\r\n isOpen ?\r\n \r\n :\r\n \r\n }\r\n
\r\n
\r\n
\r\n\r\n {/* List Group */}\r\n \r\n {listGroupsItems}\r\n \r\n\r\n {/* */}\r\n\r\n
\r\n );\r\n};\r\n\r\nexport default ListComparisonViewDetail;\r\n","import React, { Fragment, useState } from 'react';\r\nimport { Row, Col, Button, Container } from 'reactstrap';\r\nimport InputSearch from '../../../../../SharedComponents/InputSearch/InputSearch';\r\nimport Select from 'react-select';\r\nimport CustomInput from 'reactstrap/lib/CustomInput';\r\nimport { MdFullscreen, MdFullscreenExit } from 'react-icons/md';\r\nimport { mobileClassName, colors } from '../../../../../config/constants';\r\nimport { useDispatch } from 'react-redux';\r\nimport { saveExpandAll, textSearchInventory } from '../../../../../reducers/inventoyView/inventoryViewActions';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { FaSortAmountDown, FaRegClipboard } from 'react-icons/fa';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nconst HeaderReviewInventory = (props) => {\r\n\r\n const { setShowOnlyMissingHv, search, showOnlyMissing } = props;\r\n const dispatch = useDispatch();\r\n const [showItemHand, setShowItemHand] = useState(false);\r\n const [expandAll, setExpandAll] = useState(false);\r\n const history = useHistory();\r\n const options = [\r\n { value: true, label: 'A-Z' },\r\n { value: false, label: 'Z-A' },\r\n ];\r\n\r\n const onSelectSort = (value) => {\r\n // dispatch(setAlphaSort(value));\r\n };\r\n\r\n const onSearch = (params) => {\r\n setExpandAll(true);\r\n dispatch(saveExpandAll(true));\r\n dispatch(textSearchInventory(search.value));\r\n };\r\n\r\n\r\n const changeCheckItemHand = () => {\r\n setShowItemHand(!showItemHand)\r\n setShowOnlyMissingHv(!showItemHand)\r\n };\r\n\r\n const clickExpand = () => {\r\n setExpandAll(!expandAll);\r\n const newExpand = !expandAll;\r\n dispatch(saveExpandAll(newExpand));\r\n };\r\n\r\n const onClear = () => {\r\n search.clearValue();\r\n dispatch(textSearchInventory(''));\r\n };\r\n\r\n const goToInventoryView = (params) => {\r\n history.push('/place-order/inventory');\r\n };\r\n\r\n\r\n\r\n // \r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Sort generic items by:\r\n \r\n setName(e.target.value)} />\r\n \r\n \r\n \r\n setEmail(e.target.value)} />\r\n \r\n \r\n setPhone(e.target.value)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setUsername(e.target.value)} />\r\n \r\n \r\n Website Password\r\n \r\n \r\n setPassword(e.target.value)} />\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default UserInputsModal;\r\n\r\n","import React, { useEffect, useState, Fragment } from 'react';\r\nimport { Container, Card, Row, Col, Button, Input } from 'reactstrap';\r\nimport useDistributor from '../useDistributor';\r\nimport { isMobile } from 'react-device-detect';\r\nimport Header from '../../../../../SharedComponents/Header/Header';\r\nimport distributorApi from '../../../../../api/distributorsApi';\r\nimport { useParams } from \"react-router-dom\";\r\nimport DsrRow from './DsrRow';\r\nimport QuestionModal from '../../../../../SharedComponents/Modals/QuestionModal/QuestionModal';\r\nimport UserInputsModal from '../../../../../SharedComponents/Modals/UserInputsModal/UserInputsModal';\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport { useDispatch } from 'react-redux';\r\nimport { RiAccountBoxLine } from 'react-icons/ri';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { FaQuestionCircle } from 'react-icons/fa';\r\nimport IconTooltipSolid from '../../../../../SharedComponents/iconTooltip/IconTooltipSolid';\r\n\r\n\r\nconst DistributorDetail = (props) => {\r\n const [distributor, setDistributor] = useState([]);\r\n const [dsrsMap, setDsrsMap] = useState([]);\r\n const [dsrsMapD, setDsrsMapD] = useState([]);\r\n\r\n const params = useParams();\r\n const id = parseInt(params.id);\r\n const { updateDist, sendInvite } = useDistributor.useRow({ id });\r\n const dispatch = useDispatch();\r\n const [nameShowISR, setNameShowISR] = useState('Show');\r\n\r\n useEffect(() => {\r\n getDistributors();\r\n }, []);\r\n\r\n const getDistributors = () => {\r\n distributorApi.getByIdExpanded(id).then((res) => {\r\n setDistributor(res.data);\r\n }).catch(error => {\r\n });\r\n };\r\n\r\n const showModalUserInputs = () => {\r\n const props = {\r\n header: `If your username and/or password has changed ${distributor.nickname}`,\r\n usernameP: distributor.skyloader.username,\r\n onOk: (username, password) => {\r\n distributorApi.updateUserPassDistributor(id,\r\n {\r\n username,\r\n password\r\n }).then((res) => {\r\n console.log(res)\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n }\r\n };\r\n dispatch(showModal(UserInputsModal, props));\r\n }\r\n\r\n const confirmUpdate = () => {\r\n const qProps = {\r\n message: `Are you sure you want to update your login information for ${distributor.nickname}?`,\r\n menu: isMobile ? true : false,\r\n leftButton: {\r\n title: 'Cancel',\r\n color: 'green',\r\n type: 'outline'\r\n // onClick: () => goBack()\r\n },\r\n rightButton: {\r\n title: 'Proceed',\r\n color: 'green',\r\n onClick: () => showModalUserInputs()\r\n }\r\n\r\n };\r\n dispatch(showModal(QuestionModal, qProps));\r\n\r\n }\r\n\r\n const addDist = () => {\r\n const params = {\r\n name: \"\",\r\n email: \"\",\r\n phone: \"\",\r\n is_primary: true\r\n }\r\n distributorApi.saveDistributor(id, params)\r\n .then(res => getDistributors())\r\n .catch(err => console.log(err))\r\n }\r\n\r\n const deleteDist = (idDis, params) => {\r\n distributorApi.deleteDistributor(id, idDis, params)\r\n .then(res => getDistributors())\r\n .catch(err => console.log(err))\r\n }\r\n\r\n const showISR = () => setNameShowISR(nameShowISR === 'Show' ? 'Hide' : 'Show');\r\n\r\n\r\n useEffect(() => {\r\n if (!distributor) { return; }\r\n if (!distributor.dsrs) { return; }\r\n if (distributor.dsrs.length === 0) { return; }\r\n\r\n const resultDsrs = distributor.dsrs.reduce((acc, dsr) => {\r\n console.log(distributor.is_dsr_editable)\r\n dsr.is_deleted ? acc.isDeleted.push(\r\n \r\n ) : acc.isNotDeleted.push(\r\n \r\n );\r\n return acc;\r\n }, { isDeleted: [], isNotDeleted: [] });\r\n\r\n setDsrsMap(resultDsrs.isNotDeleted);\r\n setDsrsMapD(resultDsrs.isDeleted);\r\n\r\n }, [distributor]);\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n Distributor\r\n Distributor Customer Number\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!distributor.skyloader ? '' :\r\n (!distributor.skyloader.useSkyloader ? '' :\r\n \r\n \r\n Website Username\r\n Website Password\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n
\r\n \r\n \r\n

\r\n Distributor Sales Rep Information

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Name\r\n Email\r\n Phone Number\r\n Receive Order\r\n Permissions\r\n \r\n

\r\n Unlimited :

Provides selected rep unilmited access to\r\n update order guide pricing.

\r\n Commonly used for your Primary Dsitributor sales rep.

\r\n Limited :

Provides rep temporary access to update order guide pricing.\r\n Must select date range.\r\n Commonly used to provide an alternate

\r\n Distributor. Sales Rep access to update

\r\n order guide pricing.

\r\n No Access : No Access.\r\n

\r\n
\r\n \r\n \r\n
\r\n
\r\n {dsrsMap}\r\n \r\n \r\n

\r\n Inactive Sales Reps

\r\n
\r\n {dsrsMapD}\r\n\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default DistributorDetail;","import axios from 'axios';\r\n\r\nconst getAllowedChildren = (distributorId) => {\r\n return axios.get(`/merchant/${distributorId}/allowed-children`);\r\n};\r\n\r\n\r\nexport default {\r\n getAllowedChildren,\r\n};","import axios from 'axios';\r\n\r\nconst getOrderGuideByDistributor = (params) => {\r\n return axios.get('/order-guides/get-by-distributor', {params});\r\n};\r\n\r\nconst getOrderGuideDetail = (id, params) => {\r\n return axios.get(`/order-guides/${id}/items`, {params});\r\n};\r\n\r\nconst downloadOrderGuide = (id) => {\r\n return axios.get(`/order-guides/${id}/download`);\r\n};\r\n\r\nconst frontUpload = (params) => {\r\n const formData = new FormData();\r\n formData.append('file', params.file);\r\n formData.append('merchantIds', JSON.stringify(params.merchantIds));\r\n formData.append('distributor_id', params.distributor_id);\r\n formData.append('fastResponse', params.fastResponse);\r\n formData.append('start_date', params.start_date);\r\n formData.append('end_date', params.end_date);\r\n return axios.post('order-guides/front-upload', formData, { headers: { 'Content-Type': 'multipart/form-data' } });\r\n}\r\n\r\nconst getMatchingTemplates = (distributorId, file) => {\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n formData.append('distributor_id', distributorId);\r\n return axios.post('distributor-order-guides/check-for-template', formData, { headers: { 'Content-Type': 'multipart/form-data' } });\r\n}\r\n\r\nconst uploadTemplate = (distributorId, file, merchantIds) => {\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n formData.append('merchantIds', JSON.stringify(merchantIds));\r\n return axios.post(`distributor-order-guides/upload-template/${distributorId}`, formData, { headers: { 'Content-Type': 'multipart/form-data' } });\r\n}\r\n\r\n\r\nexport default {\r\n getOrderGuideByDistributor,\r\n getOrderGuideDetail,\r\n downloadOrderGuide,\r\n frontUpload,\r\n getMatchingTemplates,\r\n uploadTemplate\r\n};","\r\nimport React from 'react';\r\nimport { Card, Row, Col } from \"reactstrap\";\r\nimport { isMobile } from 'react-device-detect';\r\n\r\nconst OrderGuideDetailRow = (props) => {\r\n const { data } = props;\r\n if (isMobile) { \r\n return (\r\n \r\n \r\n \r\n \r\n DIN\r\n \r\n \r\n {data.din}\r\n \r\n \r\n \r\n \r\n Description\r\n \r\n \r\n {data.name}\r\n \r\n \r\n \r\n \r\n UOM\r\n \r\n \r\n {data.unit_measure}\r\n \r\n \r\n \r\n \r\n UOM Price\r\n \r\n \r\n {data.price}\r\n \r\n \r\n \r\n \r\n Packsize\r\n \r\n \r\n {data.pack_size}\r\n \r\n \r\n \r\n \r\n Unit Price\r\n \r\n \r\n {data.unit_price}\r\n \r\n \r\n \r\n \r\n Catch Weight\r\n \r\n \r\n {data.is_catch_weight ? 'Yes' : 'No'}\r\n \r\n \r\n \r\n \r\n Brand\r\n \r\n \r\n {data.brand}\r\n \r\n \r\n \r\n \r\n )\r\n\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {data.din}\r\n \r\n \r\n {data.name}\r\n \r\n \r\n {data.unit_measure}\r\n \r\n \r\n ${data.price}\r\n \r\n \r\n {data.pack_size}\r\n \r\n \r\n {data.unit_price}\r\n \r\n \r\n {data.is_catch_weight ? 'Yes' : 'No'}\r\n \r\n \r\n {data.brand}\r\n \r\n \r\n \r\n )\r\n\r\n}\r\n\r\nexport default OrderGuideDetailRow","import React, {useState, useEffect, Fragment} from 'react';\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Row, Col, Button, CustomInput } from 'reactstrap';\r\nimport useModal from '../../../../../SharedComponents/Modals/useModal';\r\nimport '../Distributor.scss';\r\nimport DatePicker from 'react-datepicker';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport moment from 'moment';\r\nimport { OGExpirationDays,colors } from '../../../../../config/constants';\r\nimport ShowIf from '../../../../../SharedComponents/ShowIf/ShowIf';\r\nimport { MdCloudUpload, MdDelete } from 'react-icons/md';\r\nimport * as $ from 'jquery';\r\nimport excelIcon from '../../../../../assets/images/excel-icon.jpg';\r\n\r\nconst UploadOgModal = (props) => {\r\n const { id, title, distributor, onOk, btnSize, color, allMerchants } = props;\r\n const modalprops = useModal(id);\r\n \r\n const [merchants, setMerchants] = useState(allMerchants);\r\n const [startDate, setStartDate] = useState(new Date());\r\n const [endDate, setEndDate] = useState(moment(new Date()).add(OGExpirationDays, 'days').toDate());\r\n const [showSelectedFile, setShowSelectedFile] = useState(false);\r\n const [file, setFile] = useState(null);\r\n\r\n const updateMerchantSelected = (merchantId) => {\r\n const updatedMerchants = merchants.map((m, index) => {\r\n if (m.id !== merchantId) return m;\r\n return {\r\n ...m,\r\n value: !m.value\r\n };\r\n });\r\n setMerchants(updatedMerchants);\r\n};\r\n\r\n const allMerchantsMap = merchants.map((m, index) => \r\n \r\n updateMerchantSelected(m.id)} label={m.nickname} />\r\n \r\n );\r\n \r\n const onCancel = () => {\r\n modalprops.toggle();\r\n };\r\n\r\n const onClickOk = () => {\r\n const selectedMerchants = merchants.filter(m => (m.value));\r\n onOk(startDate, endDate, file, selectedMerchants);\r\n modalprops.toggle();\r\n };\r\n\r\n const openFileDialog = () => {\r\n $('#file-upload').click();\r\n };\r\n\r\n const select = () => {\r\n const newFile = $('#file-upload').prop('files')[0];\r\n if(newFile){\r\n setFile(newFile);\r\n setShowSelectedFile(true);\r\n }else{\r\n setFile(null);\r\n setShowSelectedFile(false);\r\n } \r\n };\r\n\r\n const deleteFile = () => {\r\n setFile(null);\r\n setShowSelectedFile(false); \r\n };\r\n\r\n useEffect(() => {\r\n const newEndDate = moment(startDate).add(OGExpirationDays, 'days');\r\n setEndDate(moment(newEndDate).toDate());\r\n}, [startDate]);\r\n\r\n return (\r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n Select Locations \r\n \r\n \r\n \r\n

\r\n Please select the locations you would like to upload an order guide for.\r\n

\r\n

\r\n If you would like to load individual files for each location, please unselect the locations that do not apply to the file you are about to upload.\r\n

\r\n \r\n Accepted files: .xlsx, .xls, .csv\r\n {allMerchantsMap} \r\n
\r\n \r\n Distributor \r\n \r\n \r\n {distributor.nickname} \r\n \r\n \r\n Order Guide Date \r\n \r\n setStartDate(date)} \r\n minDate={moment().toDate()}/>\r\n \r\n \r\n \r\n Next Price Change \r\n \r\n setEndDate(date)} \r\n minDate={moment(startDate).toDate()}/>\r\n \r\n \r\n \r\n Attach File \r\n \r\n \r\n \r\n \r\n
\r\n Click here\r\n \r\n
\r\n select()} type='file' id='file-upload' accept=\".xls,.xlsx,.csv\"/>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {file ? file.name : ''}\r\n \r\n \r\n deleteFile()} style={{fontSize:'20px'}}/>\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nUploadOgModal.defaultProps = {\r\n footerClass: '',\r\n btnSize: 'sm',\r\n color: 'green'\r\n};\r\n\r\nexport default UploadOgModal;\r\n","import React, {useState} from 'react';\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Row, Col, Button, CustomInput } from 'reactstrap';\r\nimport useModal from '../../../../../SharedComponents/Modals/useModal';\r\nimport './OrderGuideUpload.scss';\r\nimport { MdCloudQueue } from 'react-icons/md';\r\nimport { colors } from '../../../../../config/constants';\r\n\r\nconst NoTemplateModal = (props) => {\r\n const { id, onOk, btnLabel, btnSize, footerClass, color } = props;\r\n const modalprops = useModal(id);\r\n\r\n const onCancel = () => {\r\n modalprops.toggle();\r\n };\r\n\r\n const onClickOk = () => {\r\n onOk();\r\n modalprops.toggle();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n X \r\n
\r\n \r\n
\r\n \r\n \r\n An approved template was not found for this order guide. Please review the order guides under Price Update History for successful uploads, and resubmit using the approved template.\r\n \r\n \r\n \r\n \r\n Or you can request a new template which can take up to 3 days to approve.\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nNoTemplateModal.defaultProps = {\r\n footerClass: '',\r\n btnLabel: 'Ok!',\r\n btnSize: 'sm',\r\n color: 'green'\r\n};\r\n\r\nexport default NoTemplateModal;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useParams } from \"react-router-dom\";\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { showModal } from '../../../../../reducers/modals/modalsActions';\r\nimport merchantApi from '../../../../../api/merchantApi';\r\nimport orderGuideApi from '../../../../../api/orderGuideApi';\r\nimport OrderGuideDetailRow from './OrderGuideDetailRow';\r\nimport UploadOgModal from './UploadOgModal';\r\nimport NoTemplateModal from './NoTemplateModal';\r\nimport AlertModal from \"../../../../../SharedComponents/Modals/AlertModal/AlertModal\";\r\nimport moment from 'moment';\r\nimport { OGExpirationDays,colors } from '../../../../../config/constants';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { debounce } from 'lodash';\r\n\r\nconst useApi = (props) => {\r\n const {ogId, distributor, merchant} = props;\r\n const id = ogId;\r\n const dispatch = useDispatch();\r\n const history = useHistory(); \r\n const [orderGuideDetailList, setOrderGuideDetailList] = useState([]); \r\n const [hasMore, setHasMore] = useState(true);\r\n const [pageCount, setPageCount] = useState(1);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const getOrderGuideDetail = () => {\r\n if(!id){ return; }\r\n\r\n setIsLoading(true);\r\n const params = {\r\n page : pageCount,\r\n limit : 20\r\n };\r\n orderGuideApi.getOrderGuideDetail(id, params)\r\n .then((res) => {\r\n setOrderGuideDetailList(orderGuideDetailList.concat(res.data));\r\n if (res._meta.currentPage < res._meta.pageCount ) { \r\n setHasMore(true);\r\n setPageCount(pageCount + 1);\r\n } else {\r\n setHasMore(false);\r\n }\r\n setIsLoading(false);\r\n })\r\n .catch(error => {\r\n });\r\n \r\n };\r\n\r\n const downloadOG = () => {\r\n if(!id){\r\n const alertProps = {\r\n title: 'Alert',\r\n message: 'No order guide detected',\r\n };\r\n dispatch(showModal(AlertModal, alertProps));\r\n return;\r\n }\r\n\r\n orderGuideApi.downloadOrderGuide(id).then((res) => {\r\n if(res.data) {\r\n const excelElement = document.createElement('a');\r\n excelElement.href = res.data;\r\n excelElement.click();\r\n }\r\n }).catch(error => {\r\n }); \r\n \r\n }\r\n\r\n const showUploadModal = () => {\r\n merchantApi.getAllowedChildren(distributor.id).then((res) => {\r\n const queriedMerchants = res.data;\r\n const allMerchants = queriedMerchants.map(m => {\r\n return { \r\n id: m.id,\r\n nickname: m.nickname, \r\n value: true,\r\n }\r\n });\r\n \r\n const modalProps = {\r\n title: 'UPLOAD ORDER GUIDE',\r\n distributor: distributor,\r\n merchant: merchant,\r\n onOk: preupload,\r\n allMerchants: allMerchants,\r\n };\r\n dispatch(showModal(UploadOgModal, modalProps));\r\n })\r\n .catch(error => {\r\n });\r\n \r\n \r\n };\r\n\r\n const preupload = (startDate, endDate, file, merchants) => {\r\n\r\n orderGuideApi.getMatchingTemplates(distributor.id, file).then((res) => {\r\n const template = res.data;\r\n if(!!template){\r\n if(template.length===0){\r\n dispatch(showModal(NoTemplateModal, { onOk: () => requestTemplate(file, merchants) }));\r\n }else{ \r\n delayedClickUpload(startDate, endDate, file, merchants);\r\n } \r\n }else{\r\n dispatch(showModal(NoTemplateModal, { onOk: () => requestTemplate(file, merchants) }));\r\n }\r\n })\r\n .catch(error => {\r\n });\r\n };\r\n\r\n const requestTemplate = (file, merchants) => {\r\n const merchantIds = merchants.map((m) => {return m.id });\r\n\r\n orderGuideApi.uploadTemplate(distributor.id, file, merchantIds).then((res) => {\r\n const template = res.data;\r\n const alertProps = {\r\n title: 'Confirmation',\r\n message: 'Successful request',\r\n onOk : resetUpload(),\r\n };\r\n dispatch(showModal(AlertModal, alertProps));\r\n })\r\n .catch((error) => {\r\n const res = error;\r\n const alertProps = {\r\n title: 'Error!',\r\n message: (!!res.data) ? res.data.message : 'There was an error while submiting your template'\r\n };\r\n dispatch(showModal(AlertModal, alertProps));\r\n });\r\n };\r\n\r\n const uploadOG = (startDate, endDate, file, merchants) => {\r\n const merchantIds = merchants.map((m) => {return m.id });\r\n const params = {\r\n file : file,\r\n fastResponse : 1,\r\n merchantIds : merchantIds,\r\n distributor_id : distributor.id,\r\n start_date : moment(startDate).format('YYYY-MM-DD'),\r\n end_date : moment(endDate).format('YYYY-MM-DD'),\r\n };\r\n \r\n orderGuideApi.frontUpload(params).then((res) => {\r\n const result = res.data;\r\n const alertProps = {\r\n title: 'Confirmation',\r\n onOk : resetUpload(),\r\n message: result.message\r\n };\r\n dispatch(showModal(AlertModal, alertProps));\r\n })\r\n .catch((error) => {\r\n const res = error;\r\n const alertProps = {\r\n title: 'Error!',\r\n message: (!!res.data) ? res.data.message : 'There was an error while uploading your file'\r\n };\r\n dispatch(showModal(AlertModal, alertProps));\r\n });\r\n }\r\n\r\n const delayedClickUpload = debounce(\r\n (startDate, endDate, file, merchants) => {\r\n uploadOG(startDate, endDate, file, merchants)\r\n } \r\n , 1500);\r\n\r\n const resetUpload = () => {\r\n setTimeout(() => {\r\n history.push('/distributor');\r\n }, 2000);\r\n };\r\n \r\n useEffect(() => {\r\n getOrderGuideDetail();\r\n }, []);\r\n \r\n const orderGuideDetailMap = orderGuideDetailList.map((c, i) => \r\n \r\n )\r\n \r\n \r\n return { orderGuideDetailList, orderGuideDetailMap, getOrderGuideDetail, downloadOG, uploadOG, preupload, hasMore, pageCount, isLoading, showUploadModal};\r\n\r\n}\r\n\r\n\r\nexport default {\r\n useApi\r\n};","import React, {useEffect,useState,Fragment} from 'react';\r\nimport { Switch, Route, Redirect } from 'react-router-dom';\r\nimport { Container, Row, Col, Card, Button } from 'reactstrap';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { MdCloudDownload, MdCloudUpload } from 'react-icons/md';\r\nimport { colors } from \"../../../../../config/constants\";\r\nimport useOrderGuideDetail from './useOrderGuideDetail';\r\nimport Header from '../../../../../SharedComponents/Header/Header';\r\nimport InfiniteScroll from 'react-infinite-scroller';\r\nimport { useParams } from \"react-router-dom\";\r\nimport distributorApi from '../../../../../api/distributorsApi';\r\nimport IconBadgeSolid from '../../../../../SharedComponents/IconBadge/IconBadgeSolid';\r\nimport { FaInfo } from 'react-icons/fa';\r\nimport { color } from 'highcharts';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst OrderGuideDetail = (props) => {\r\n const [distributor, setDistributor] = useState([]);\r\n const merchant = useSelector(({ user }) => user.activeLocation);\r\n const params = useParams();\r\n const id = parseInt(params.id);\r\n const ogId = parseInt(!params.ogId ? null : params.ogId);\r\n \r\n const {orderGuideDetailMap, downloadOG, showUploadModal, hasMore, isLoading, getOrderGuideDetail, orderGuideDetailList } = useOrderGuideDetail.useApi({ogId, distributor, merchant});\r\n const leftButtonUpload = isMobile ? null : { icon: [ \r\n \r\n ]}\r\n const rightButtonDownload = isMobile ? null : { icon: [ \r\n \r\n ]}\r\n\r\n const SubHeaderOrderGuideDetail= (\r\n \r\n Item Code \r\n Item Description \r\n Unit of Measure \r\n \r\n CS or EA \r\n \r\n \r\n Unit of Measure Price \r\n Packsize \r\n Unit Price \r\n Catch Weight \r\n Brand \r\n \r\n )\r\n\r\n useEffect(() => {\r\n distributorApi.getById(id).then((res) => {\r\n setDistributor(res.data);\r\n }).catch(error => {\r\n });\r\n }, []);\r\n\r\n return (\r\n \r\n
\r\n { !isMobile ? SubHeaderOrderGuideDetail : null}\r\n
\r\n \r\n \r\n {orderGuideDetailMap}\r\n \r\n \r\n { orderGuideDetailList.length === 0 && !isLoading &&\r\n \r\n \r\n No Items Found.\r\n \r\n \r\n }\r\n
\r\n )\r\n\r\n}\r\n\r\nexport default OrderGuideDetail;","\r\nimport React from 'react';\r\nimport { Switch, Route, Redirect } from 'react-router-dom';\r\nimport { Container } from 'reactstrap';\r\nimport DistributorList from './DistributorList/DistributorList';\r\nimport DistributorDetail from './DistributorDetail/DistributorDetail';\r\nimport OrderGuideDetail from './OrderGuideDetail/OrderGuideDetail';\r\n\r\n\r\nconst Distributor = () => {\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n\r\n}\r\n\r\nexport default Distributor;","import React from 'react';\r\nimport { Switch, Route, Redirect } from 'react-router-dom';\r\nimport { Col } from 'reactstrap';\r\nimport Analytics from './Views/Analytics/Analytics';\r\nimport PlaceOrder from './Views/PlaceOrder/PlaceOrder';\r\nimport RecipeCosting from './Views/RecipeCosting/RecipeCosting';\r\nimport Pos from './Views/Pos/Pos';\r\nimport ManageCards from './Views/ManageCards/ManageCards';\r\nimport Help from './Views/Help/Help';\r\nimport Accounting from './Views/Accounting/Accounting';\r\nimport CheckoutOrdering from './Views/CheckoutOrdering/CheckoutOrdering';\r\nimport ShoppingLists from './Views/ShoppingLists/ShoppingLists';\r\nimport SpecialRequest from './Views/SpecialRequest/SpecialRequest';\r\nimport OrderHistory from './Views/OrderHistory/OrderHistory';\r\nimport SortInventory from './Views/SortInventory/SortInventory';\r\nimport { isMobile } from 'react-device-detect';\r\nimport { useSelector } from 'react-redux';\r\nimport InventoryView from './Views/InventoryView/InventoryView';\r\nimport Distributor from './Views/Distributor/Distributor';\r\n\r\nconst MainAppRouter = (props) => {\r\n const { isSidebarOpen } = props;\r\n const activeLocation = useSelector(({user}) => user.activeLocation);\r\n return (\r\n \r\n \r\n {\r\n !isMobile && activeLocation.display_accounting ?\r\n \r\n : null\r\n }\r\n \r\n \r\n \r\n {\r\n activeLocation.display_recipe_costing ?\r\n \r\n : null\r\n }\r\n \r\n {\r\n isMobile ?\r\n null\r\n : \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MainAppRouter;\r\n","import { closeSidebar, toggleSidebar } from '../../reducers/userInterface/userInterfaceActions';\r\nimport { useRef, useState } from 'react';\r\nimport { changeTourMoral } from '../../reducers/modals/modalsActions';\r\nimport { isMobile } from \"react-device-detect\";\r\n\r\nconst useActions = (dispatch) => {\r\n const clickClose = () => {\r\n dispatch(closeSidebar());\r\n };\r\n\r\n const [openModalWC, setOpenModalWC] = useState(false);\r\n\r\n const tourElement = useRef();\r\n\r\n const goToNextTourModal = () => {\r\n dispatch(changeTourMoral(2));\r\n setOpenModalWC(!openModalWC);\r\n }\r\n const clickMenu = () => {\r\n dispatch(toggleSidebar());\r\n };\r\n\r\n const startTour = () => {\r\n setOpenModalWC(!openModalWC);\r\n if (!openModalWC && isMobile)\r\n clickMenu();\r\n };\r\n const skipDemo = () => {\r\n setOpenModalWC(false);\r\n dispatch(changeTourMoral(1));\r\n }\r\n\r\n return {\r\n clickClose,\r\n openModalWC,\r\n startTour,\r\n tourElement,\r\n goToNextTourModal,\r\n skipDemo,\r\n\r\n };\r\n};\r\n\r\nexport default {\r\n useActions\r\n};\r\n","import React from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\nimport { MdArrowDropUp, MdClose, MdArrowDropDown } from 'react-icons/md';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport useSidebar from './useSidebar';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\n\r\nconst SidebarHeader = ({isLocationOpen, noLocations}) => {\r\n\r\n const dispatch = useDispatch();\r\n const { clickClose } = useSidebar.useActions(dispatch);\r\n\r\n const activeLocation = useSelector(({user}) => user.activeLocation);\r\n let logoUrl;\r\n if (activeLocation && activeLocation.company && activeLocation.company.nickname == 'FoodBam') {\r\n logoUrl = 'https://diningalliance.s3.amazonaws.com/organization/default.png';\r\n } else {\r\n logoUrl = activeLocation && activeLocation.company && activeLocation.company.favico;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {activeLocation && activeLocation.nickname}\r\n \r\n \r\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 SidebarHeader;\r\n","import React, { useEffect, useState } from 'react'\r\nimport useModal from '../useModal';\r\nimport { modalTourInventoryViewClassName } from '../../../config/constants';\r\nimport { Modal, ModalBody, Button } from 'reactstrap';\r\nimport inventTutoImg1 from '../../../assets/images/inventory-tutorial-1.png';\r\nimport inventTutoImg2 from '../../../assets/images/inventory-tutorial-2.png';\r\nimport inventTutoImg3 from '../../../assets/images/inventory-tutorial-3.png';\r\nimport inventTutoImg4 from '../../../assets/images/inventory-tutorial-4.png';\r\nimport inventTutoImg5 from '../../../assets/images/inventory-tutorial-5.png';\r\nimport inventTutoImg6 from '../../../assets/images/inventory-tutorial-6.png';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\nimport { useDispatch } from 'react-redux';\r\nimport { toggleSidebar } from '../../../reducers/userInterface/userInterfaceActions';\r\n\r\n\r\n\r\nconst WhatInventoryViewModal = (props) => {\r\n const { id } = props;\r\n const modalProps = useModal(id);\r\n const dispatch = useDispatch();\r\n\r\n const [numInventoryTutorialView, setNumInventoryTutorialView] = useState(1);\r\n let params = {\r\n inventTutoImg: '',\r\n firstText: '',\r\n secondText: ''\r\n }\r\n const [paramsInventoryTutorialView, setParamsInventoryTutorialView] = useState(params);\r\n\r\n const nextView = () => {\r\n setNumInventoryTutorialView(numInventoryTutorialView + 1)\r\n };\r\n\r\n const backView = () => {\r\n setNumInventoryTutorialView(numInventoryTutorialView - 1)\r\n };\r\n\r\n const clickMenu = () => {\r\n dispatch(toggleSidebar());\r\n };\r\n\r\n\r\n\r\n useEffect(() => {\r\n switch (numInventoryTutorialView) {\r\n case 1:\r\n params.inventTutoImg = inventTutoImg1;\r\n params.firstText = `This little piggy went to the market`;\r\n params.secondText = `We want you to know what you are really getting. In this section you can build
\r\n a view that will allow you to compare items across multiple distributors. Look
\r\n at all your options for purcharsing a product in one quick view.`\r\n break;\r\n\r\n case 2:\r\n params.inventTutoImg = inventTutoImg2;\r\n params.firstText = `Organize your digital walk-in`;\r\n params.secondText = `Create your own title for the products you want to compare or group
\r\n together and organize your comparison view the way you have
\r\n organized your walk-ins or storage area. Cheers to easy ordering!`\r\n break;\r\n\r\n case 3:\r\n params.inventTutoImg = inventTutoImg3;\r\n params.firstText = `Now, Connect the dots`;\r\n params.secondText = `Link relevant products from different distributors to a
\r\n generic item name to keep them all in one place.
\r\n Let's get organized here!`\r\n break;\r\n\r\n case 4:\r\n params.inventTutoImg = inventTutoImg4;\r\n params.firstText = `Look both ways before you cross the street`;\r\n params.secondText = `Now that you have products in one spot, check out the prices that are most beneficial
\r\n to your kitchen at any given moment. See what prices are coming in each direction so you
\r\n make the best purcharse. HINT: Lowest price is always on the left hand side.`\r\n break;\r\n\r\n\r\n case 5:\r\n params.inventTutoImg = inventTutoImg5;\r\n params.firstText = `The Baked Good`;\r\n params.secondText = `See what was cooking this whole time. Check the prices and changes from all vendors over a period
\r\n of time. Look month to month to see how the product pricing has fluctuated. Foodbam can
\r\n negotiate contact pricing, if you see too much fluctuation from your vendor - call us so we can help!`\r\n break;\r\n\r\n case 6:\r\n params.inventTutoImg = inventTutoImg6;\r\n params.firstText = `The Final Frontier`;\r\n params.secondText = `1. \"Edit\" - edit generic items or link/unlink items.
\r\n 2. \"Purchase\" - put that stuff in your cart and checkout!
\r\n 3. \"Analytics\" - see how your pricing has been trending overtime.`\r\n break;\r\n\r\n default:\r\n modalProps.toggle();\r\n clickMenu();\r\n setNumInventoryTutorialView(1)\r\n break;\r\n }\r\n\r\n setParamsInventoryTutorialView(params);\r\n\r\n }, [numInventoryTutorialView])\r\n return (\r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n {paramsInventoryTutorialView.firstText}\r\n
\r\n\r\n
\r\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 WhatInventoryViewModal\r\n","import React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Link, NavLink } from 'react-router-dom';\r\nimport { Row, Col } from 'reactstrap';\r\nimport { IoMdCard } from 'react-icons/io';\r\nimport { MdTrendingUp } from 'react-icons/md';\r\nimport { isMobile } from 'react-device-detect';\r\nimport useSidebar from './useSidebar';\r\nimport WelComeTourModal from '../../SharedComponents/Modals/WelComeTourModal/WelcomeTourModal';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\nimport WhatInventoryViewModal from '../Modals/WhatInventoryViewModal/WhatInventoryViewModal';\r\nimport { showModal } from '../../reducers/modals/modalsActions';\r\nimport useGoTo from '../GoTo/useGoTo';\r\n\r\nconst SidebarBody = () => {\r\n const dispatch = useDispatch();\r\n const activeLocation = useSelector(({ user }) => user.activeLocation);\r\n const { addSpecialRequest } = useGoTo.useActions();\r\n const companyLogoUrl = activeLocation && activeLocation.company && activeLocation.company.logo_url;\r\n\r\n const {\r\n clickClose,\r\n openModalWC,\r\n startTour,\r\n tourElement,\r\n goToNextTourModal,\r\n skipDemo } = useSidebar.useActions(dispatch);\r\n\r\n const colorOrderPlace = openModalWC ? '#6ed79a' : '';\r\n\r\n const startTourComparison = () => {\r\n dispatch(showModal(WhatInventoryViewModal));\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n

Dashboard

\r\n
    \r\n
  • \r\n Analytics\r\n
  • \r\n
\r\n
\r\n

SHOP

\r\n
    \r\n
  • Place Order
  • \r\n \r\n \r\n
  • Accounting
  • \r\n
    \r\n\r\n
  • Order History
  • \r\n \r\n \r\n
  • Inventories
  • \r\n
    \r\n \r\n \r\n
  • POS
  • \r\n
    \r\n \r\n
  • Recipe Costing
  • \r\n
    \r\n
\r\n

Settings

\r\n
    \r\n
  • Distributor
  • \r\n
  • Shopping Lists
  • \r\n
  • Help / Report Issue
  • \r\n
  • \r\n Manage Card\r\n
  • \r\n
  • Log Out
  • \r\n
\r\n

HOW IT WORKS

\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Can't find what you're looking for?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 SidebarBody;\r\n","import axios from \"axios\";\r\n\r\nconst merchantLogin = (params) => {\r\n return axios.post('users/merchant-login', params);\r\n};\r\n\r\nconst currentuser = () => {\r\n return axios.get('users/current-user');\r\n};\r\n\r\nconst requestPasswordReset = (email) => {\r\n return axios.post('users/request-password-reset', {email});\r\n};\r\n\r\nconst resetPassword = (token, params) => { \r\n return axios.post('users/reset-password', params, {params: {token}});\r\n \r\n};\r\n\r\nconst changeLocation = (activeLocationId, id) => {\r\n const params = {\r\n active_location_id: activeLocationId,\r\n id: id\r\n }\r\n return axios.put(`users/${id}`, params);\r\n};\r\n\r\nexport default {\r\n merchantLogin,\r\n currentuser,\r\n requestPasswordReset,\r\n resetPassword,\r\n changeLocation\r\n};\r\n","import axios from \"axios\";\r\n\r\nconst post = (params) => {\r\n return axios.post('authenticate', params);\r\n};\r\n\r\nexport default {\r\n post\r\n};","\r\n\r\nconst useActions = () => {\r\n const identifyFullStory = (id, name, email) =>{\r\n if(window['_fs_namespace']){\r\n window[window['_fs_namespace']].identify(id,{\r\n displayName : name,\r\n email : email\r\n });\r\n }\r\n };\r\n\r\n return { identifyFullStory }\r\n};\r\n\r\nexport default {\r\n useActions\r\n};","import { useState } from \"react\";\r\nimport validate from 'validate.js';\r\nimport useInput from \"../../SharedComponents/SharedEffects/useInput\";\r\nimport authenticateApi from \"../../api/authenticateApi\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { setUserData, setUserActiveLocation } from \"../../reducers/user/userAction\";\r\nimport { saveInventoryOnHandTotal } from '../../reducers/items/itemsActions';\r\nimport { localStorageConst, placeOrderViews } from '../../config/constants';\r\nimport { saveView } from '../../reducers/items/itemsActions';\r\nimport { saveConnection } from '../../reducers/connection/connectionActions';\r\nimport useFullStory from '../../SharedComponents/FullStory/useFullStory';\r\n\r\nconst useLogin = () => {\r\n const dispatch = useDispatch();\r\n const {identifyFullStory} = useFullStory.useActions();\r\n\r\n const doLogin = (data) => {\r\n if (!data.authKey) {\r\n data.authKey = localStorage.getItem(localStorageConst.keys.authKey);\r\n }\r\n const activeLocation = JSON.stringify(data.activeLocation);\r\n const locations = JSON.stringify(data.locations);\r\n dispatch(setUserActiveLocation(data.activeLocation));\r\n dispatch(saveInventoryOnHandTotal(data.activeLocation ? data.activeLocation.onHandTotal : 0));\r\n localStorage.setItem(localStorageConst.keys.userName, data.firstName +' '+ data.lastName);\r\n localStorage.setItem(localStorageConst.keys.authKey, data.authKey);\r\n localStorage.setItem(localStorageConst.keys.currentRole, data.currentRole);\r\n localStorage.setItem(localStorageConst.keys.activeLocation, activeLocation);\r\n localStorage.setItem(localStorageConst.keys.locations, locations);\r\n dispatch(setUserData(data));\r\n const defaultView = data && data.activeLocation && data.activeLocation.display_comparison_view ? placeOrderViews.inventory : placeOrderViews.list;\r\n localStorage.setItem(localStorageConst.keys.view, defaultView);\r\n dispatch(saveView(defaultView));\r\n localStorage.setItem(localStorageConst.keys.connection, true);\r\n dispatch(saveConnection(true));\r\n\r\n identifyFullStory(data.activeLocation.id, data.activeLocation.nickname, data.email);\r\n };\r\n\r\n return { doLogin };\r\n}\r\n\r\nconst useForm = () => {\r\n const companyId = useSelector(state => state.company.id);\r\n const [error, setError] = useState({});\r\n const { set : setEmail, value: email } = useInput.useText();\r\n const { set : setPassword, value: password } = useInput.useText();\r\n const { doLogin } = useLogin();\r\n\r\n const onSubmit = (e) => {\r\n e.preventDefault();\r\n const form = {\r\n email: email,\r\n password: password\r\n };\r\n const constrains = {\r\n email: {\r\n presence: {\r\n allowEmpty: false\r\n },\r\n email: true\r\n },\r\n password: {\r\n presence: {\r\n allowEmpty: false\r\n }\r\n }\r\n };\r\n const result = validate(form, constrains);\r\n setError(result ? result : {});\r\n if (!result) {\r\n const params = {\r\n secret: \"asd123\",\r\n email, password,\r\n company_id: companyId\r\n };\r\n authenticateApi.post(params).then(({data}) => {\r\n doLogin(data);\r\n }).catch(err => {\r\n console.error(err);\r\n const status = err.code;\r\n if (status === 400) {\r\n setError({error: err.data.message});\r\n } else {\r\n setError({error: 'Something went wrong.'});\r\n }\r\n });\r\n }\r\n };\r\n\r\n return { error, onSubmit, setEmail, setPassword, password, email }\r\n};\r\n\r\nexport default {\r\n useForm, useLogin\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Container, Row, Col } from 'reactstrap';\r\nimport SidebarHeader from './SidebarHeader';\r\nimport SidebarBody from './SidebarBody';\r\nimport SidebarFooter from './SidebarFooter';\r\nimport { connect, useSelector, useDispatch } from 'react-redux';\r\nimport './Sidebar.scss';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\nimport usersApi from '../../api/usersApi';\r\nimport useLogin from '../../Views/Login/useLogin';\r\nimport { FaCheck } from 'react-icons/fa';\r\nimport { colors } from '../../config/constants';\r\nimport useGoto from '../GoTo/useGoTo';\r\nimport { clearItemsData } from '../../reducers/items/itemsActions';\r\n\r\nconst Sidebar = (props) => {\r\n const dispatch = useDispatch();\r\n const [isLocationOpen, setIsLocationOpen] = useState(false);\r\n const { doLogin } = useLogin.useLogin();\r\n const {placeOrderDefault} = useGoto.useActions();\r\n const open = useSelector(state => state.userInterface.isSidebarOpen);\r\n const locations = useSelector(({user}) => user.locations);\r\n const userId = useSelector(({user}) => user.id);\r\n const activeLocation = useSelector(({user}) => user.activeLocation);\r\n\r\n const changeLocation = (locId) => {\r\n if (activeLocation.id !== locId) {\r\n usersApi.changeLocation(locId, userId).then(({data}) => {\r\n dispatch(clearItemsData([]));\r\n doLogin(data);\r\n placeOrderDefault();\r\n });\r\n }\r\n };\r\n\r\n const locationsMap = locations.map(l => {\r\n return (\r\n changeLocation(l.id)}>\r\n {l.nickname}\r\n \r\n \r\n \r\n \r\n );\r\n });\r\n\r\n return (\r\n \r\n \r\n setIsLocationOpen(!isLocationOpen)}} noLocations={locations.length === 0} />\r\n \r\n {/* */}\r\n \r\n \r\n \r\n {locationsMap}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n const { userInterface } = state;\r\n return {\r\n open: userInterface.isSidebarOpen\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(Sidebar);\r\n","import React, {useEffect} from 'react';\r\nimport { Container, Row } from 'reactstrap';\r\nimport MainAppRouter from './MainAppRouter';\r\nimport Sidebar from '../../SharedComponents/Sidebar/Sidebar';\r\nimport './MainApp.scss';\r\nimport { useSelector } from 'react-redux';\r\nimport useShoppingCart from '../../SharedComponents/ShoppingCart/useShoppingCart';\r\nimport useShoppingCartInterface from '../../SharedComponents/ShoppingCart/useShoppingCartInterface';\r\n\r\nconst MainApp = () => {\r\n const isSidebarOpen = useSelector(state => state.userInterface.isSidebarOpen);\r\n const activeLocation = useSelector(({user}) => user.activeLocation);\r\n // const { getCartItems } = useShoppingCart.useCartItems();\r\n const { getCartItemsInterface } = useShoppingCartInterface.useCartItems();\r\n \r\n\r\n useEffect(() => {\r\n // getCartItems();\r\n getCartItemsInterface();\r\n }, [activeLocation]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MainApp;","import React from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\n\r\nconst LoginHeader = ({logo}) => {\r\n return (\r\n \r\n \r\n Company Logo\r\n \r\n \r\n )\r\n};\r\n\r\nexport default LoginHeader;","import React, { Fragment } from 'react';\r\nimport { Col, Input } from 'reactstrap';\r\n\r\nconst LoginFormInput = (props) => {\r\n const { label, placeholder, type,\r\n set, value, error } = props;\r\n\r\n return (\r\n \r\n {label}\r\n \r\n \r\n \r\n {error}\r\n \r\n );\r\n};\r\n\r\nexport default LoginFormInput;","import React, { useState } from 'react';\r\nimport useModal from '../useModal';\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Row, Col, Alert, Input, Button } from 'reactstrap';\r\nimport validate from 'validate.js';\r\nimport ShowIf from '../../ShowIf/ShowIf';\r\nimport useInput from '../../../SharedComponents/SharedEffects/useInput';\r\nimport usersApi from '../../../api/usersApi';\r\nimport './ForgotPasswordModal.scss';\r\n\r\nconst ForgotPasswordModal = (props) => {\r\n\r\n const { id } = props;\r\n const modalProps = useModal(id);\r\n\r\n const [errorMessage, setErrorMessage] = useState('');\r\n const [successMsg, setSuccessMsg] = useState('');\r\n\r\n const email = useInput.useText('');\r\n\r\n const validateForm = () => {\r\n const data = {\r\n email: email.value\r\n };\r\n const constrains = {\r\n email: { presence: { allowEmpty: false }, email: true },\r\n };\r\n\r\n const result = validate(data, constrains);\r\n return !!!result;\r\n };\r\n\r\n const requestPasswordReset = () => {\r\n if (!validateForm()) {\r\n setErrorMessage('Please enter a correct email.');\r\n return;\r\n }\r\n setErrorMessage('');\r\n usersApi.requestPasswordReset(email.value)\r\n .then(() => {\r\n setSuccessMsg(\"You\\'ll recieve an email shortly with instructions on how to reset your password.\");\r\n setTimeout(() => {\r\n modalProps.toggle();\r\n }, 5000);\r\n })\r\n .catch(error => {\r\n if (error.code === 400) {\r\n setErrorMessage(error.data.message);\r\n }\r\n console.log('usersApi requestPasswordReset Error:', error);\r\n });\r\n };\r\n\r\n return (\r\n \r\n Forgot Password\r\n \r\n \r\n \r\n \r\n {errorMessage}\r\n \r\n \r\n \r\n \r\n {successMsg}\r\n \r\n \r\n \r\n An email with a link to reset your password will be sent to your email address\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Back to modalProps.toggle()}>Login\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ForgotPasswordModal;\r\n","import React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\nimport { Col, Button, Form } from 'reactstrap';\r\nimport LoginFormInput from './LoginFormInput';\r\nimport { showModal } from '../../reducers/modals/modalsActions';\r\nimport ForgotPasswordModal from '../../SharedComponents/Modals/ForgotPasswordModal/ForgotPasswordModal';\r\n\r\nconst LoginForm = (props) => {\r\n const { setEmail, email, setPassword, password, onSubmit, error } = props;\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const goToContactUs = () => {\r\n window.location.href = 'https://foodbam.com/contact-us/';\r\n };\r\n\r\n const goToSignUp = () => {\r\n history.push('/sign-up/1');\r\n };\r\n\r\n return (\r\n
\r\n \r\n

Sign In

\r\n \r\n \r\n \r\n \r\n \r\n \r\n {error.error ? error.error : ''}\r\n dispatch(showModal(ForgotPasswordModal))}>FORGOT PASSWORD\r\n Don{\"'\"}t have an account yet\r\n SIGN UP\r\n Have a question? Contact Us\r\n \r\n );\r\n};\r\n\r\nexport default LoginForm;\r\n","import React from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport { useSelector } from 'react-redux';\r\nimport './Login.scss';\r\nimport LoginHeader from './LoginHeader';\r\nimport LoginForm from './LoginForm';\r\nimport useLogin from './useLogin';\r\n\r\nconst Login = (props) => {\r\n const logo = useSelector(state => state.company.logo);\r\n const formProps = useLogin.useForm();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Login;","import useLogout from './useLogout';\r\n\r\nconst Logout = (props) => {\r\n useLogout();\r\n return null;\r\n};\r\n\r\nexport default Logout;","import { useHistory } from \"react-router-dom\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { clearUserData } from \"../../reducers/user/userAction\";\r\nimport { clearAllItemsData } from \"../../reducers/items/itemsActions\";\r\nimport { clearCartData } from \"../../reducers/cart/cartActions\";\r\nimport { localStorageConst, fullstory } from '../../config/constants';\r\nimport comparisonViewsApi from '../../api/comparisonViewsApi';\r\nimport useConnection from '../../SharedComponents/OfflineMode/useConnection'\r\n\r\nexport default () => {\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const { getConnectionState } = useConnection.useMode();\r\n const inventoryList = parseInt(JSON.parse(localStorage.getItem(localStorageConst.keys.inventoryList)));\r\n const inventoryItemsToSync = parseInt(JSON.parse(localStorage.getItem(localStorageConst.keys.inventoryItemsToSync)));\r\n\r\n // Checking if user clicked Go offline\r\n // console.log({inventoryList,inventoryItemsToSync});\r\n if(!getConnectionState()){\r\n if(Number.isFinite(inventoryList)){\r\n comparisonViewsApi.takeInventory(inventoryList, 0)\r\n .then((res) => { /*console.log('res',res);*/ })\r\n .catch(error => { console.log(`Error updating inventoryList ${error}`); });\r\n }\r\n }\r\n\r\n localStorage.clear();\r\n dispatch(clearAllItemsData());\r\n dispatch(clearCartData());\r\n dispatch(clearUserData());\r\n\r\n localStorage.removeItem(localStorageConst.keys.cartItems);\r\n localStorage.removeItem(localStorageConst.keys.lastModifiedCart);\r\n localStorage.removeItem(localStorageConst.keys.savingOptions);\r\n localStorage.removeItem(localStorageConst.keys.view);\r\n localStorage.removeItem(localStorageConst.keys.listSelected);\r\n localStorage.removeItem(localStorageConst.keys.listItems);\r\n localStorage.removeItem(localStorageConst.keys.listItemsPage);\r\n localStorage.removeItem(localStorageConst.keys.inventoryItems);\r\n localStorage.removeItem(localStorageConst.keys.inventoryItemsPage);\r\n localStorage.removeItem(localStorageConst.keys.connection);\r\n localStorage.removeItem(fullstory.localstorage);\r\n \r\n\r\n history.push('/login');\r\n\r\n};","import React from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\nimport ShowIf from '../../SharedComponents/ShowIf/ShowIf';\r\nimport { isMobile } from 'react-device-detect';\r\n\r\nconst AdminLoginHeader = ({logo}) => {\r\n return (\r\n \r\n \r\n \r\n Company Logo\r\n \r\n \r\n \r\n

Login As

\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n};\r\n\r\nexport default AdminLoginHeader;","import React, { Fragment } from 'react';\r\nimport { Col } from 'reactstrap';\r\nimport Select from 'react-select';\r\n\r\nconst AdminLoginFormDropdown = (props) => {\r\n const { label, placeholder,\r\n setSearch, set, options, isDisabled }\r\n = props;\r\n\r\n return (\r\n \r\n \r\n
{label}
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {error}\r\n
\r\n );\r\n};\r\n\r\nexport default ChangePasswordFormInput;","import React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\nimport { Col, Button, Form } from 'reactstrap';\r\nimport ChangePasswordFormInput from './ChangePasswordFormInput';\r\nimport { showModal } from '../../reducers/modals/modalsActions';\r\nimport AlertModal from '../../SharedComponents/Modals/AlertModal/AlertModal';\r\n\r\nconst ChangePasswordForm = (props) => {\r\n const { setPassword, password, setConfirmPassword, confirmPassword, onSubmit, error } = props;\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const goToContactUs = () => {\r\n window.location.href = 'https://foodbam.com/contact-us/';\r\n };\r\n\r\n const goToSignUp = () => {\r\n history.push('/sign-up/1');\r\n };\r\n\r\n return (\r\n
\r\n \r\n

Reset Password

\r\n \r\n \r\n \r\n \r\n \r\n \r\n {error.error ? error.error : ''}\r\n \r\n Don{\"'\"}t have an account yet\r\n SIGN UP\r\n Have a question? Contact Us\r\n \r\n );\r\n};\r\n\r\nexport default ChangePasswordForm;\r\n","import { useState } from \"react\";\r\nimport validate from 'validate.js';\r\nimport useInput from \"../../SharedComponents/SharedEffects/useInput\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useDispatch } from 'react-redux';\r\nimport usersApi from \"../../api/usersApi\";\r\nimport AlertModal from '../../SharedComponents/Modals/AlertModal/AlertModal';\r\nimport { showModal } from '../../reducers/modals/modalsActions';\r\n\r\nconst useForm = (tokenSecret) => {\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const [error, setError] = useState({});\r\n const { set : setPassword, value: password } = useInput.useText();\r\n const { set : setConfirmPassword, value: confirmPassword } = useInput.useText();\r\n const { set : setToken, value: token } = useInput.useText(tokenSecret);\r\n\r\n const goToLogin = () => {\r\n history.push('/login');\r\n };\r\n\r\n const onSubmit = (e) => {\r\n e.preventDefault();\r\n const form = {\r\n token: token,\r\n password: password,\r\n confirmPassword: confirmPassword\r\n };\r\n const constrains = {\r\n token: {\r\n presence: {\r\n allowEmpty: false\r\n }\r\n },\r\n password: {\r\n presence: {\r\n allowEmpty: false\r\n }\r\n },\r\n confirmPassword: {\r\n presence: {\r\n allowEmpty: false\r\n },\r\n equality: \"password\"\r\n }\r\n };\r\n \r\n const result = validate(form, constrains);\r\n setError(result ? result : {});\r\n\r\n if (!result) { \r\n const params = {\r\n password: password,\r\n password_repeat: confirmPassword\r\n };\r\n usersApi.resetPassword(token, params).then(({data}) => {\r\n dispatch(showModal(AlertModal, {message: data.message, onOk: () => goToLogin() })); \r\n }).catch(err => {\r\n console.error(err);\r\n const status = err.code;\r\n if (status === 400) {\r\n setError({error: err.data.message});\r\n } else {\r\n setError({error: 'Something went wrong.'});\r\n }\r\n });\r\n }\r\n };\r\n\r\n return { error, onSubmit, setPassword, password, setConfirmPassword, confirmPassword }\r\n};\r\n\r\nexport default {\r\n useForm\r\n};\r\n","import React from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport { useSelector } from 'react-redux';\r\nimport './ChangePassword.scss';\r\nimport ChangePasswordHeader from './ChangePasswordHeader';\r\nimport ChangePasswordForm from './ChangePasswordForm';\r\nimport useChangePassword from './useChangePassword';\r\n\r\nconst ChangePassword = (props) => {\r\n const logo = useSelector(state => state.company.logo);\r\n const { match } = props;\r\n const { token } = match.params;\r\n const formProps = useChangePassword.useForm(token);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ChangePassword;","import React from 'react';\r\nimport { Switch, Route, Redirect } from 'react-router-dom';\r\nimport MainApp from '../MainApp/MainApp';\r\nimport Login from '../Login/Login';\r\nimport Logout from '../Logout/Logout';\r\nimport AdminLogin from '../AdminLogin/AdminLogin';\r\nimport useAuthenticationRouter from './useAuthenticationRouter';\r\nimport SignUp from '../SignUp/SignUp';\r\nimport ChangePassword from '../ChangePassword/ChangePassword';\r\n\r\nconst AuthenticationRouter = () => {\r\n const { isLogin, currentRole } = useAuthenticationRouter();\r\n\r\n if (isLogin) {\r\n if (currentRole === 'Foodbam Admin') {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AuthenticationRouter;","import React, { Fragment } from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst Modals = () => {\r\n const modals = useSelector(state => state.modals.modals);\r\n const modalsMap = modals.map( m => \r\n \r\n );\r\n return (\r\n \r\n {modalsMap}\r\n \r\n );\r\n};\r\n\r\nexport default Modals;","import React from 'react';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\nimport { useSelector } from 'react-redux';\r\nimport './Spinner.scss';\r\n\r\nconst SpinnerOnline = () => {\r\n const show = useSelector(state => state.userInterface.spinner);\r\n const image = useSelector(state => state.company.spinner);\r\n\r\n return (\r\n \r\n
\r\n
\r\n spinner\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default SpinnerOnline;","import React from 'react';\r\nimport ShowIf from '../ShowIf/ShowIf';\r\nimport { useSelector } from 'react-redux';\r\nimport './Spinner.scss';\r\nimport { FaSpinner } from 'react-icons/fa';\r\nimport { colors } from '../../config/constants';\r\n\r\nconst SpinnerOffline = () => {\r\n const show = useSelector(state => state.userInterface.spinner);\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default SpinnerOffline;\r\n","import React from 'react';\r\nimport useConnection from '../OfflineMode/useConnection';\r\nimport SpinnerOnline from './SpinnerOnline';\r\nimport SpinnerOffline from './SpinnerOffline';\r\nimport './Spinner.scss';\r\n\r\nconst Spinner = () => {\r\n let {status} = useConnection.useStatus();\r\n\r\n return (\r\n status ? : \r\n );\r\n};\r\n\r\nexport default Spinner;","import '../../config/api';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport api from '../../config/api';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useState, useEffect } from 'react';\r\nimport useLogin from '../../Views/Login/useLogin';\r\nimport usersApi from '../../api/usersApi';\r\n\r\nconst useApi = () => {\r\n const [mount, setMount] = useState(false);\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const isLogin = useSelector(state => state.user.isLogin);\r\n const currentRole = useSelector(state => state.user.currentRole);\r\n const { doLogin } = useLogin.useLogin();\r\n \r\n if (!mount) {\r\n api(dispatch, history);\r\n if (isLogin && currentRole !== 'Foodbam Admin') {\r\n usersApi.currentuser().then(({data}) => {\r\n doLogin(data);\r\n }).catch(err => {\r\n console.error('UsersApi currentUser error:', err);\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setMount(true);\r\n }, []);\r\n\r\n return { mount };\r\n};\r\n\r\nexport default useApi;","import axios from \"axios\";\r\nimport { spinner } from \"../reducers/userInterface/userInterfaceActions\";\r\nimport { showModal } from \"../reducers/modals/modalsActions\";\r\nimport AlertModal from \"../SharedComponents/Modals/AlertModal/AlertModal\";\r\n\r\nexport default (dispatch, history) => {\r\n axios.defaults.baseURL = process.env.REACT_APP_API_URL;\r\n axios.defaults.headers['Pragma'] = 'no-cache';\r\n axios.defaults.headers.post['Content-Type'] = 'application/json; charset=UTF-8';\r\n\r\n axios.interceptors.request.use(config => {\r\n dispatch(spinner(true));\r\n const authKey = localStorage.getItem('authKey') ? localStorage.getItem('authKey') : 'g31cr6dupg0qxvvIcGVm1UnIBXcHhVDB';\r\n config.headers['Authorization'] = `Bearer ${authKey}`;\r\n return config;\r\n }, error => {\r\n return Promise.reject(error);\r\n });\r\n\r\n\r\n axios.interceptors.response.use(response => {\r\n dispatch(spinner(false));\r\n return response.data;\r\n }, error => {\r\n dispatch(spinner(false));\r\n if (error.response && error.response.status === 401) {\r\n const props = {\r\n message: 'Please login with proper credentials.',\r\n onOk: () => {\r\n history.push('/logout');\r\n }\r\n };\r\n dispatch(showModal(AlertModal, props));\r\n }\r\n if (error.response) {\r\n return Promise.reject(error.response.data);\r\n } else {\r\n return Promise.reject(error);\r\n }\r\n });\r\n};","import { useDispatch } from \"react-redux\";\r\nimport { setSize } from \"../../reducers/userInterface/userInterfaceActions\";\r\nimport { useEffect } from \"react\";\r\nlet innerHeight = require('ios-inner-height');\r\n\r\nconst useResizeListener = () => {\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n const updateDimensions = () => {\r\n dispatch(setSize(window.screen.width, innerHeight()));\r\n };\r\n updateDimensions();\r\n window.addEventListener('resize', updateDimensions);\r\n return () => {\r\n window.removeEventListener('resize', updateDimensions);\r\n }\r\n }, []);\r\n};\r\n\r\nexport default useResizeListener;","import React from 'react';\r\nimport './App.scss';\r\nimport AuthenticationRouter from '../AuthenticationRouter/AuthenticationRouter';\r\nimport Modals from '../../SharedComponents/Modals/Modals';\r\nimport Spinner from '../../SharedComponents/Spinner/Spinner';\r\nimport useApi from '../../SharedComponents/SharedEffects/useApi';\r\nimport useResizeListener from '../../SharedComponents/SharedEffects/useResizeListener';\r\nimport useTouch from '../../SharedComponents/SharedEffects/useTouch';\r\nimport initFullStory from '../../SharedComponents/FullStory/FullStory';\r\nimport db from '../../local/db';\r\n\r\n\r\nfunction App() {\r\n if (process.env.REACT_APP_ENVIRONMENT === 'production') {\r\n initFullStory();\r\n }\r\n useApi();\r\n useResizeListener();\r\n useTouch.useMove();\r\n db.open();\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default App;","import {fullstory} from '../../config/constants';\r\n\r\nexport default () => {\r\n\r\n window['_fs_debug'] = fullstory.debug;\r\n window['_fs_host'] = fullstory.host;\r\n window['_fs_script'] = fullstory.script;\r\n window['_fs_org'] = fullstory.org;\r\n window['_fs_namespace'] = fullstory.namespace;\r\n (function(m,n,e,t,l,o,g,y){if (e in m) {if(m.console && m.console.log) { m.console.log('FullStory namespace conflict. Please set window[\"_fs_namespace\"].');} return;}g=m[e]=function(a,b,s){g.q?g.q.push([a,b,s]):g._api(a,b,s);};g.q=[];o=n.createElement(t);o.async=1;o.crossOrigin='anonymous';o.src='https://'+window['_fs_script'];y=n.getElementsByTagName(t)[0];y.parentNode.insertBefore(o,y);g.identify=function(i,v,s){g(l,{uid:i},s);if(v)g(l,v,s)};g.setUserVars=function(v,s){g(l,v,s)};g.event=function(i,v,s){g('event',{n:i,p:v},s)};g.anonymize=function(){g.identify(!!0)};g.shutdown=function(){g(\"rec\",!1)};g.restart=function(){g(\"rec\",!0)};g.log = function(a,b){g(\"log\",[a,b])};g.consent=function(a){g(\"consent\",!arguments.length||a)};g.identifyAccount=function(i,v){o='account';v=v||{};v.acctId=i;g(o,v)};g.clearUserCookie=function(){};g.setVars=function(n, p){g('setVars',[n,p]);};g._w={};y='XMLHttpRequest';g._w[y]=m[y];y='fetch';g._w[y]=m[y];if(m[y])m[y]=function(){return g._w[y].apply(this,arguments)};g._v=\"1.3.0\";})(window,document,window['_fs_namespace'],'script','user');\r\n\r\n}\r\n","let innerHeight = require('ios-inner-height');\r\n\r\nexport default function reducer(state = {\r\n spinner: 0,\r\n isSidebarOpen: false,\r\n size: {\r\n width: window.innerWidth,\r\n height: innerHeight()\r\n }\r\n}, action) {\r\n switch (action.type) {\r\n case 'SET_SPINNER':\r\n return { ...state, spinner: action.payload ? state.spinner + 1 : state.spinner - 1};\r\n case 'TOGGLE_SIDEBAR':\r\n return { ...state, isSidebarOpen: !state.isSidebarOpen };\r\n case 'CLOSE_SIDEBAR':\r\n return { ...state, isSidebarOpen: false };\r\n case 'SET_SIZE':\r\n return { ...state, size: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n","const p = process.env;\r\nexport default function reducer(state = {\r\n id: p.REACT_APP_COMPANY_ID,\r\n title: p.REACT_APP_COMPANY_TITLE,\r\n desription: p.REACT_APP_COMPANY_DESCRIPTION,\r\n domain: p.REACT_APP_COMPANY_DOMAIN,\r\n website: p.REACT_APP_COMPANY_WEBSITE,\r\n logo: p.REACT_APP_COMPANY_LOGO,\r\n spinner: p.REACT_APP_COMPANY_SPINNER,\r\n favicon: p.REACT_APP_COMPANY_FAVICON,\r\n colors: {\r\n main: p.REACT_APP_COMPANY_MAIN_COLOR,\r\n secondary: p.REACT_APP_COMPANY_SECONDARY_COLOR,\r\n }\r\n}, action) {\r\n switch (action.type) {\r\n case 'SET_PROPERTY':\r\n return {\r\n ...state,\r\n [action.payload.name]: action.payload.value\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { createStore } from 'redux';\r\nimport { combineReducers } from 'redux';\r\nimport connection from './connection/connectionReducer';\r\nimport sync from './sync/syncReducer';\r\nimport userInterface from './userInterface/userInterfaceReducer';\r\nimport company from './company/companyReducer';\r\nimport user from './user/userReducer';\r\nimport modals from './modals/modalsReducer';\r\nimport items from './items/itemsReducer';\r\nimport cart from './cart/cartReducer';\r\nimport distributors from './distributors/distributorsReducer';\r\nimport header from './header/headerReducer';\r\nimport recipeCosting from './recipeCosting/recipeCostingReducer';\r\nimport reviewOrder from './reviewOrder/reviewOrderReduces';\r\nimport groupEvent from './groupEvent/groupEventReducer';\r\nimport inventoryView from './inventoyView/inventoryViewReducer';\r\nimport groups from './groups/groupsReducer';\r\nimport orders from './orders/ordersReducer';\r\nimport shoppingLists from './shoppingLists/shoppingListsReducer';\r\n\r\n\r\nconst reducer = combineReducers({\r\n // Add Reducers here\r\n connection, sync, userInterface, company, user, modals,\r\n items, cart, distributors, header,\r\n recipeCosting, reviewOrder, groupEvent, inventoryView,\r\n groups, orders, shoppingLists\r\n});\r\n\r\nexport default createStore(reducer);\r\n","export default function reducer(state = {\r\n online: true,\r\n open: false,\r\n modal: null\r\n}, action) {\r\n switch (action.type) {\r\n case 'SET_CONNECTION':\r\n return {\r\n ...state, \r\n online: action.payload\r\n };\r\n case 'SET_OPEN':\r\n return {\r\n ...state, \r\n open: action.payload\r\n };\r\n case 'SET_MODAL':\r\n return {\r\n ...state, \r\n modal: action.payload\r\n };\r\n default:\r\n return state;\r\n }\r\n};","export default function reducer(state = {\r\n openSync: true,\r\n modalSync: null,\r\n syncInventory: false,\r\n}, action) {\r\n switch (action.type) {\r\n case 'SET_OPEN_SYNC':\r\n return {\r\n ...state, \r\n openSync: action.payload\r\n };\r\n case 'SET_MODAL_SYNC':\r\n return {\r\n ...state, \r\n modalSync: action.payload\r\n };\r\n case 'SET_SYNC_INVENTORY':\r\n return {\r\n ...state, \r\n syncInventory: action.payload\r\n };\r\n default:\r\n return state;\r\n }\r\n};","export default function reducer(state = {\r\n authKey: localStorage.getItem('authKey') ? localStorage.getItem('authKey') : 'g31cr6dupg0qxvvIcGVm1UnIBXcHhVDB',\r\n isLogin: localStorage.getItem('authKey') ? true : false,\r\n currentRole: localStorage.getItem('currentRole') ? localStorage.getItem('currentRole') : null,\r\n activeLocation: localStorage.getItem('activeLocation') ? JSON.parse(localStorage.getItem('activeLocation')) : {},\r\n locations: localStorage.getItem('locations') ? JSON.parse(localStorage.getItem('locations')) : [],\r\n isActiveInventoryEdit: false\r\n}, action) {\r\n switch (action.type) {\r\n case 'SET_USER_DATA':\r\n return {\r\n ...action.payload,\r\n activeLocation: state.activeLocation ? state.activeLocation : {},\r\n locations: action.payload.locations ? action.payload.locations : [],\r\n isLogin: true\r\n };\r\n case 'CLEAR_USER_DATA':\r\n return {\r\n authKey: 'g31cr6dupg0qxvvIcGVm1UnIBXcHhVDB',\r\n currentRole: null,\r\n isLogin: false,\r\n activeLocation: {},\r\n locations: []\r\n };\r\n case 'SET_USER_ACTIVE_LOCATION':\r\n return {\r\n ...state,\r\n activeLocation: action.payload ? action.payload : {}\r\n };\r\n case 'SET_ACTIVE_INVENTORY':\r\n return {\r\n ...state,\r\n activeLocation: {\r\n ...state.activeLocation,\r\n activeInventory: action.payload\r\n }\r\n };\r\n case 'SET_ACTIVE_INVENTORY_EDIT':\r\n return {\r\n ...state,\r\n isActiveInventoryEdit: action.payload\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","export default function reducer(state = {\r\n modals: [],\r\n numTourModal: 1,\r\n}, action) {\r\n switch (action.type) {\r\n case 'ADD_MODAL':\r\n action.payload.id = action.payload.id + '-' + state.modals.length + 1\r\n return {\r\n ...state,\r\n modals: [...state.modals, action.payload]\r\n };\r\n case 'REMOVE_MODAL':\r\n return {\r\n ...state,\r\n modals: state.modals.filter(m => m.id !== action.payload)\r\n };\r\n\r\n case 'NEXT_TOUR_MODAL':\r\n return {\r\n ...state,\r\n numTourModal: action.payload\r\n };\r\n default:\r\n return state;\r\n }\r\n};","import { sortOptions, inventoryOptions } from \"../../config/constants\";\r\n\r\nexport default function reducer(state = {\r\n view: '',\r\n inventory: {\r\n items: [],\r\n pageCount: 1,\r\n totalPageCount: 1,\r\n list: [],\r\n listSelected: null,\r\n sortBy: localStorage.getItem('inventorySortBySelected') ? JSON.parse(localStorage.getItem('inventorySortBySelected')) : sortOptions.inventoryView.filter(iv => iv.default)[0],\r\n onHandTotal: 0,\r\n search: '',\r\n options: [\r\n { id: 1 , name: inventoryOptions.keys.rearrange, disabled: false },\r\n { id: 2 , name: inventoryOptions.keys.expand, disabled: false }\r\n ]\r\n },\r\n list: {\r\n items: [],\r\n pageCount: 1,\r\n loadMore: true,\r\n isLoading: false,\r\n sortByOptions:sortOptions.listView,\r\n sortBy: sortOptions.listView.filter(lw => lw.default === 1)[0],\r\n product: 'ALL',\r\n search: '',\r\n filters: {\r\n purchasedOnly: false,\r\n distributorIds: [],\r\n shoppingIds: [],\r\n pastOrderIds: [],\r\n }\r\n }\r\n}, action) {\r\n switch (action.type) {\r\n case 'SET_VIEW':\r\n return {\r\n ...state,\r\n view: action.payload\r\n };\r\n case 'SET_INVENTORY_LIST':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n list:action.payload[0],\r\n listSelected: action.payload[1] ? action.payload[1] : state.inventory.listSelected\r\n }\r\n };\r\n case 'SET_INVENTORY_LIST_SELECTED':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n listSelected: action.payload\r\n }\r\n };\r\n case 'SET_INVENTORY_OPTIONS_REARRANGE':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n options: state.inventory.options.map(o => {\r\n if (o.name !== inventoryOptions.keys.rearrange) return o;\r\n return {\r\n ...o,\r\n ...action.payload\r\n };\r\n })\r\n }\r\n };\r\n\r\n case 'INSERT_INVENTORY_LIST':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n list: state.inventory.list.slice(state.inventory.list.length,0,action.payload.list)\r\n }\r\n };\r\n case 'EDIT_INVENTORY_LIST':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n list: state.inventory.list.map(l => {\r\n if (l.id !== action.payload.listId) return l;\r\n return {\r\n ...l,\r\n ...action.payload.value\r\n };\r\n })\r\n }\r\n };\r\n case 'REMOVE_INVENTORY_LIST':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n list: state.inventory.list.filter(l => l.id !== action.payload)\r\n }\r\n };\r\n \r\n case 'SET_INVENTORY_ITEMS':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n items: action.payload\r\n }\r\n };\r\n case 'SET_INVENTORY_ITEMS_PAGE':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n pageCount: action.payload\r\n }\r\n };\r\n case 'SET_INVENTORY_ITEMS_PAGE_TOTAL':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n totalPageCount: action.payload\r\n }\r\n };\r\n case 'INSERT_INVENTORY_GROUP':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n items: [\r\n ...state.inventory.items.slice(0, action.payload.index),\r\n action.payload.group,\r\n ...state.inventory.items.slice(action.payload.index)\r\n ]\r\n }\r\n };\r\n case 'REMOVE_INVENTORY_GROUP':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n items: state.inventory.items.filter(g => g.id !== action.payload)\r\n }\r\n };\r\n case 'EDIT_ONE_INVENTORY_GROUP':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n items: state.inventory.items.map(g => {\r\n if (g.id !== action.payload.groupId) return g;\r\n return {\r\n ...g,\r\n ...action.payload.value\r\n };\r\n })\r\n }\r\n };\r\n case 'SORT_INVENTORY_GROUPS':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n items: state.inventory.items.sort((a, b) => {\r\n return a.sort > b.sort ? 1 : -1\r\n })\r\n .map( (g, i) => {\r\n return {\r\n ...g,\r\n sort: i\r\n }\r\n })\r\n }\r\n };\r\n case 'SORT_INVENTORY_GROUPS_NEW':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n items: state.inventory.items.sort((a, b) => {\r\n return a.sort > b.sort ? 1 : -1\r\n })\r\n .map( (g, i) => {\r\n if(i >= action.payload.index){ i++; }\r\n return {\r\n ...g,\r\n sort: i\r\n }\r\n })\r\n }\r\n };\r\n case 'REMOVE_INVENTORY_GROUP_ITEM':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n items: state.inventory.items.map(g => {\r\n if (g.id !== action.payload.groupId) return g;\r\n return {\r\n ...g,\r\n items: g.items.filter(i => i[action.payload.idLabel] !== action.payload.itemId)\r\n }\r\n })\r\n }\r\n };\r\n case 'EDIT_ONE_INVENTORY_GROUP_ITEM':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n items: state.inventory.items.map(g => {\r\n if (g.id !== action.payload.groupId) return g;\r\n return {\r\n ...g,\r\n items: g.items.map(i => {\r\n if (i[action.payload.idLabel] !== action.payload.itemId) return i;\r\n return {\r\n ...i,\r\n ...action.payload.value\r\n };\r\n })\r\n };\r\n })\r\n }\r\n };\r\n case 'SET_INVENTORY_SORT':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n sortBy: action.payload\r\n }\r\n };\r\n case 'SET_INVENTORY_SEARCH':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n search: action.payload\r\n }\r\n };\r\n case 'SET_ON_HAND_TOTAL':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n onHandTotal: action.payload\r\n }\r\n };\r\n case 'SET_LIST_ITEMS':\r\n return {\r\n ...state,\r\n list: {\r\n ...state.list,\r\n items: action.payload\r\n }\r\n };\r\n case 'SET_LIST_PAGE_COUNT':\r\n return {\r\n ...state,\r\n list: {\r\n ...state.list,\r\n pageCount: action.payload\r\n }\r\n };\r\n case 'SET_LIST_LOAD_MORE':\r\n return {\r\n ...state,\r\n list: {\r\n ...state.list,\r\n loadMore: action.payload\r\n }\r\n };\r\n case 'SET_LIST_IS_LOADING':\r\n return {\r\n ...state,\r\n list: {\r\n ...state.list,\r\n isLoading: action.payload\r\n }\r\n };\r\n case 'SET_LIST_SEARCH':\r\n return {\r\n ...state,\r\n list: {\r\n ...state.list,\r\n search: action.payload\r\n }\r\n };\r\n case 'SET_LIST_SORT':\r\n return {\r\n ...state,\r\n list: {\r\n ...state.list,\r\n sortBy: action.payload\r\n }\r\n };\r\n case 'SET_LIST_SORT_OPTIONS':\r\n return {\r\n ...state,\r\n list: {\r\n ...state.list,\r\n sortByOptions: action.payload\r\n }\r\n };\r\n case 'SET_LIST_FILTERS':\r\n return {\r\n ...state,\r\n list: {\r\n ...state.list,\r\n filters: {\r\n purchasedOnly: action.payload.purchasedOnly,\r\n distributorIds: action.payload.distributorIds,\r\n shoppingIds: action.payload.shoppingIds,\r\n pastOrderIds: action.payload.pastOrderIds\r\n }\r\n }\r\n };\r\n \r\n case 'CLEAR_ITEMS_DATA':\r\n return {\r\n ...state,\r\n inventory: {\r\n ...state.inventory,\r\n items: [],\r\n pageCount: 1,\r\n totalPageCount: 1,\r\n sortBy: sortOptions.inventoryView.filter(iv => iv.default)[0],\r\n // onHandTotal: 0,\r\n search: '',\r\n options: [\r\n { id: 1 , name: inventoryOptions.keys.rearrange, disabled: false },\r\n { id: 2 , name: inventoryOptions.keys.expand, disabled: false }\r\n ]\r\n },\r\n list: {\r\n ...state.list,\r\n items: [],\r\n pageCount: 1,\r\n loadMore: true,\r\n isLoading: false,\r\n sortByOptions:sortOptions.listView,\r\n sortBy: sortOptions.listView.filter(lw => lw.default === 1)[0],\r\n product: 'ALL',\r\n search: '',\r\n filters: {\r\n purchasedOnly: false,\r\n distributorIds: [],\r\n shoppingIds: [],\r\n pastOrderIds: [],\r\n }\r\n }\r\n };\r\n\r\n case 'CLEAR_ALL_ITEMS_DATA':\r\n return {\r\n view: '',\r\n inventory: {\r\n items: [],\r\n pageCount: 1,\r\n totalPageCount: 1,\r\n list: [],\r\n listSelected: null,\r\n sortBy: sortOptions.inventoryView.filter(iv => iv.default)[0],\r\n onHandTotal: 0,\r\n search: '',\r\n options: [\r\n { id: 1 , name: inventoryOptions.keys.rearrange, disabled: false },\r\n { id: 2 , name: inventoryOptions.keys.expand, disabled: false }\r\n ]\r\n },\r\n list: {\r\n items: [],\r\n pageCount: 1,\r\n loadMore: true,\r\n isLoading: false,\r\n sortByOptions:sortOptions.listView,\r\n sortBy: sortOptions.listView.filter(lw => lw.default === 1)[0],\r\n product: 'ALL',\r\n search: '',\r\n filters: {\r\n purchasedOnly: false,\r\n distributorIds: [],\r\n shoppingIds: [],\r\n pastOrderIds: [],\r\n }\r\n }\r\n };\r\n \r\n default:\r\n return state;\r\n }\r\n};","export default function reducer(state = {\r\n cartItems: [],\r\n cartItemsByDistributor: [], \r\n cartCount: 0,\r\n lastModified: '',\r\n unsyncedItems: [],\r\n animation: {type:null, data:null},\r\n orderTotal : 0,\r\n savingOptions : []\r\n}, action) {\r\n switch (action.type) {\r\n case 'SET_CART_ITEMS':\r\n return {\r\n ...state, \r\n cartItems: action.payload\r\n };\r\n case 'SET_CART_DISTRIBUTOR':\r\n return {\r\n ...state, \r\n cartItemsByDistributor: action.payload\r\n };\r\n case 'SET_CART_COUNT':\r\n return {\r\n ...state, \r\n cartCount: action.payload\r\n };\r\n case 'SET_LAST_MODIFIED':\r\n return {\r\n ...state, \r\n lastModified: action.payload\r\n };\r\n case 'SET_UNSYNCED_ITEMS':\r\n return {\r\n ...state, \r\n unsyncedItems: action.payload\r\n };\r\n case 'SET_ANIMATION':\r\n return {\r\n ...state, \r\n animation: action.payload\r\n };\r\n case 'SET_ORDER_TOTAL':\r\n return {\r\n ...state, \r\n orderTotal: action.payload\r\n };\r\n case 'SET_SAVING_OPTIONS':\r\n return {\r\n ...state, \r\n savingOptions: action.payload\r\n };\r\n case 'CLEAR_CART_DATA':\r\n return {\r\n cartItems: [],\r\n cartItemsByDistributor: [], \r\n cartCount: 0,\r\n lastModified: '',\r\n unsyncedItems: [],\r\n animation: {type:null, data:null},\r\n orderTotal : 0,\r\n savingOptions : [] \r\n };\r\n default:\r\n return state;\r\n }\r\n};","\r\nexport default function reducer(state = {\r\n list: []\r\n}, action) {\r\n switch (action.type) {\r\n case 'SET_DISTRIBUTOR_LIST':\r\n return {\r\n ...state,\r\n list: action.payload\r\n }\r\n default:\r\n return state;\r\n }\r\n};","import { isMobile } from \"react-device-detect\";\r\n\r\nexport default function reducer(state = {\r\n index : 3,\r\n contents: {\r\n showMenu: isMobile ? true : false,\r\n showLogo: false,\r\n showBack: false,\r\n showCart: isMobile ? true : false,\r\n showReviewOrder: isMobile ? false : true,\r\n title: isMobile ? 'Review Order' : '',\r\n showDet_ReviewOrder: false\r\n },\r\n}, action) {\r\n switch (action.type) {\r\n case 'SET_HEADER_CONTENTS_REVIEW_ORDER':\r\n return {\r\n ...state,\r\n contents: action.payload\r\n };\r\n case 'SET_HEADER_INDEX_REVIEW_ORDER':\r\n return {\r\n ...state,\r\n index: action.payload\r\n };\r\n default:\r\n return state;\r\n }\r\n};","export default function reducer(state = {\r\n menuList: [],\r\n recipeList: [],\r\n recipeListPage: 1,\r\n recipeListIsLoading: false,\r\n recipeListLoadMore: false,\r\n alphaSort: { value: true, label: 'A-Z' },\r\n recipeInfo: {\r\n id: null,\r\n recipeName: '',\r\n menuCategory: null,\r\n menuPrice: 0,\r\n isSubrecipe: false,\r\n isSubrecipeUsed: false,\r\n recipeYield: '',\r\n recipeYieldUom: '',\r\n description: '',\r\n procedure: '',\r\n totalCost: 0,\r\n marginGrossProfit: 0,\r\n foodCostPercent: 0,\r\n hasInactiveItems: 0\r\n },\r\n ingredientsList: []\r\n}, action) {\r\n switch(action.type) {\r\n case 'SET_MENU_LIST':\r\n return {\r\n ...state,\r\n menuList: action.payload.map(m => {\r\n return {\r\n label: m.name,\r\n value: m.id\r\n }\r\n })\r\n };\r\n case 'SET_RECIPE_LIST':\r\n const uniqueRecipeIds = new Set();\r\n return {\r\n ...state,\r\n recipeList: action.payload.filter((r) => {\r\n const isInSet = uniqueRecipeIds.has(r.id);\r\n uniqueRecipeIds.add(r.id);\r\n return !isInSet;\r\n })\r\n };\r\n case 'SET_RECIPE_LIST_PAGE':\r\n return {\r\n ...state,\r\n recipeListPage: action.payload\r\n };\r\n case 'SET_RECIPE_LIST_IS_LOADING':\r\n return {\r\n ...state,\r\n recipeListIsLoading: action.payload\r\n };\r\n case 'SET_RECIPE_LIST_LOAD_MORE':\r\n return {\r\n ...state,\r\n recipeListLoadMore: action.payload\r\n };\r\n case 'SET_INGREDIENTS_LIST':\r\n return {\r\n ...state,\r\n ingredientsList: action.payload.map(i => {\r\n return {\r\n ...i,\r\n item: i.item !== undefined ? i.item : {}\r\n }\r\n })\r\n };\r\n case 'SET_RECIPE_INFO':\r\n const ap = action.payload;\r\n const s = state.recipeInfo;\r\n return {\r\n ...state,\r\n recipeInfo: {\r\n id: ap.id !== undefined ? ap.id : s.id,\r\n recipeName: ap.recipeName !== undefined ? ap.recipeName : s.recipeName,\r\n menuCategory: ap.menuCategory !== undefined ? ap.menuCategory : s.menuCategory,\r\n menuPrice: ap.menuPrice !== undefined ? ap.menuPrice : s.menuPrice,\r\n isSubrecipe: ap.isSubrecipe !== undefined ? ap.isSubrecipe : s.isSubrecipe,\r\n isSubrecipeUsed: ap.isSubrecipeUsed !== undefined ? ap.isSubrecipeUsed : s.isSubrecipeUsed,\r\n recipeYield: ap.recipeYield !== undefined ? ap.recipeYield : s.recipeYield,\r\n recipeYieldUom: ap.recipeYieldUom !== undefined ? ap.recipeYieldUom : s.recipeYieldUom,\r\n description: ap.description !== undefined ? ap.description : s.description,\r\n procedure: ap.procedure !== undefined ? ap.procedure : s.procedure,\r\n totalCost: ap.totalCost !== undefined ? ap.totalCost : s.totalCost,\r\n marginGrossProfit: ap.marginGrossProfit !== undefined ? ap.marginGrossProfit : s.marginGrossProfit,\r\n foodCostPercent: ap.foodCostPercent !== undefined ? ap.foodCostPercent : s.foodCostPercent,\r\n hasInactiveItems: ap.hasInactiveItems !== undefined ? ap.hasInactiveItems : s.hasInactiveItems\r\n }\r\n };\r\n case 'SET_ALPHA_SORT':\r\n return {\r\n ...state,\r\n alphaSort: action.payload\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","export default function reducer(state = {\r\n values: null,\r\n}, action) {\r\n switch (action.type) {\r\n case 'SET_VALUES_CHECKOUT':\r\n return {\r\n ...state,\r\n values: action.payload\r\n };\r\n default:\r\n return state;\r\n }\r\n};","export default function reducer(state = {\r\n values: []\r\n }, action) {\r\n switch (action.type) {\r\n case 'SET_AMOUNT_ITEM_GROUP':\r\n return {\r\n ...state,\r\n values: action.payload\r\n }\r\n default:\r\n return state;\r\n }\r\n };","export default function reducer(state = {\r\n isExpand: false,\r\n textSearchValue: '',\r\n updateInventoryEditAll: false\r\n}, action) {\r\n switch (action.type) {\r\n case 'SET_EXPAND_ALL':\r\n return {\r\n ...state,\r\n isExpand: action.payload\r\n };\r\n case 'SET_TEXT_SEARCH_INVENTORY':\r\n return {\r\n ...state,\r\n textSearchValue: action.payload\r\n };\r\n case 'SET_UPDATE_INVENTORY_EDIT_ALL':\r\n return {\r\n ...state,\r\n updateInventoryEditAll: action.payload\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};","import { sortOptions } from \"../../config/constants\";\r\n\r\nexport default function reducer(state = {\r\n isExpand: false,\r\n groups: [],\r\n list: [],\r\n listSelected: null,\r\n sortBy: sortOptions.inventoryView.filter(iv => iv.default)[0],\r\n onHandTotal: 0,\r\n search: ''\r\n\r\n}, action) {\r\n switch (action.type) {\r\n case 'SET_GROUPS':\r\n return {\r\n ...state,\r\n groups: action.payload\r\n }\r\n case 'SET_LIST':\r\n return {\r\n ...state,\r\n list: action.payload\r\n }\r\n case 'SET_LIST_SELECTED':\r\n return {\r\n ...state,\r\n listSelected: action.payload\r\n }\r\n case 'SET_SORT_BY':\r\n return {\r\n ...state,\r\n sortBy: action.payload\r\n }\r\n case 'SET_SEARCH':\r\n return {\r\n ...state,\r\n search: action.payload\r\n }\r\n case 'CLEAR_GROUPS_DATA':\r\n return {\r\n isExpand: false,\r\n groups: [],\r\n list: [],\r\n listSelected: null,\r\n sortBy: sortOptions.inventoryView.filter(iv => iv.default)[0],\r\n onHandTotal: 0,\r\n search: '' \r\n };\r\n case 'EDIT_ONE_GROUP_ITEM':\r\n return {\r\n ...state,\r\n groups: state.groups.map(g => {\r\n if (g.id !== action.payload.groupId) return g;\r\n return {\r\n ...g,\r\n items: g.items.map(i => {\r\n if (i[action.payload.idLabel] !== action.payload.itemId) return i;\r\n return {\r\n ...i,\r\n ...action.payload.value\r\n };\r\n })\r\n };\r\n })\r\n };\r\n default:\r\n return state;\r\n }\r\n};","\r\nexport default function reducer(state = {\r\n list: [],\r\n pageCount: 1,\r\n\r\n}, action) {\r\n switch (action.type) {\r\n case 'SET_LIST':\r\n return {\r\n ...state,\r\n list: action.payload\r\n }; \r\n \r\n case 'SET_COUNT':\r\n return {\r\n ...state,\r\n pageCount: action.payload\r\n }; \r\n\r\n case 'CLEAR_LIST':\r\n return {\r\n list: [],\r\n pageCount: 1,\r\n };\r\n \r\n default:\r\n return state;\r\n }\r\n};","import { sortOptions } from \"../../config/constants\";\r\n\r\nexport default function reducer(state = {\r\n filters: {\r\n purchasedOnly: false,\r\n distributorIds: [],\r\n shoppingIds: [],\r\n pastOrderIds: [],\r\n }\r\n}, action) {\r\n switch (action.type) {\r\n case 'SET_SHOPPING_LISTS_FILTERS':\r\n return {\r\n ...state,\r\n filters: {\r\n purchasedOnly: action.payload.purchasedOnly,\r\n distributorIds: action.payload.distributorIds,\r\n shoppingIds: action.payload.shoppingIds,\r\n pastOrderIds: action.payload.pastOrderIds\r\n }\r\n };\r\n\r\n case 'CLEAR_SHOPPING_LISTS_FILTERS':\r\n return {\r\n ...state,\r\n filters: {\r\n purchasedOnly: false,\r\n distributorIds: [],\r\n shoppingIds: [],\r\n pastOrderIds: [],\r\n }\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import validate from 'validate.js';\r\n\r\nvalidate.validators.fraction = function(value, options) {\r\n const num = value ? value.toString() : '';\r\n if (options.strict) {\r\n if (num.match(/^[.][0-9]+$/)) {\r\n return null;\r\n } else if (num.match(/[0-9]+$/)) {\r\n return null;\r\n } else if (num.match(/^[0-9]+[.][0-9]+$/)) {\r\n return null;\r\n } else if (num.match(/[0-9]+[/][0-9]+$/)) {\r\n return null;\r\n }\r\n } else {\r\n // While typing\r\n if (num === '') {\r\n return null;\r\n } else if (num.match(/^[0-9]+$/)) {\r\n return null;\r\n } else if (num.match(/^[0-9]+[.]$/)) {\r\n return null;\r\n } else if (num.match(/^[0-9]+[.][0-9]+$/)) {\r\n return null;\r\n } else if (num.match(/^[0-9]+[/]$/)) {\r\n return null;\r\n } else if (num.match(/^[0-9]+[/][0-9]+$/)) {\r\n return null;\r\n } else if (num.match(/^[.]+$/)) {\r\n return null;\r\n } else if (num.match(/^[.][0-9]+$/)) {\r\n return null;\r\n }\r\n }\r\n return \"is not a fraction or number\";\r\n};\r\n\r\nvalidate.validators.array = function(value, options, keyName) {\r\n const result = [];\r\n const { length, key, ...rest } = options;\r\n if (value.length < length) {\r\n return `needs at least ${length} active`;\r\n }\r\n for (let i = 0; i < value.length; i++) {\r\n const v = value[i];\r\n const r = validate(v, rest, {format: \"flat\"});\r\n if (r) {\r\n if (key) {\r\n result.push(r.map(e => e + ' for ' + v[key]));\r\n } else {\r\n result.push(r);\r\n }\r\n }\r\n };\r\n\r\n return result.length === 0 ? null : result\r\n};","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport OfflineMode from './SharedComponents/OfflineMode/OfflineMode';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport { HashRouter } from 'react-router-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { StripeProvider } from 'react-stripe-elements';\r\nimport App from './Views/App/App';\r\nimport store from './reducers/store';\r\nimport * as $ from 'jquery';\r\nimport './config/customValidations';\r\nimport './config/scss/combinedScss.scss';\r\n\r\nwindow.jQuery = window.$ = $;\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n, document.getElementById('root'));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}